You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Walks the filesystem for build files (pom.xml, package.json, go.mod, Cargo.toml, pyproject.toml, …); emits one SERVICE node per module + CONTAINS edges. Path-qualified IDs (PR #151).
Each registers itself in init() with detector.RegisterDefault(NewMyDetector()). The category subdirectory must also be blank-imported in internal/cli/detectors_register.go.
Category
Path
Headcount (approx)
auth
internal/detector/auth/
OAuth/JWT/SSO scanners
frontend
internal/detector/frontend/
React, Vue, Svelte, Angular, routes
iac
internal/detector/iac/
Terraform, Bicep, Dockerfile, CloudFormation
jvm/java
internal/detector/jvm/java/
~37 — Spring REST, Spring Security, ActiveMQ, gRPC, JPA, Quarkus, …
jvm/kotlin
internal/detector/jvm/kotlin/
Ktor routes, Kotlin structures
jvm/scala
internal/detector/jvm/scala/
Scala structures
python
internal/detector/python/
FastAPI, Flask, Django, SQLAlchemy, Pydantic
typescript
internal/detector/typescript/
TS / JS / Node frameworks
golang
internal/detector/golang/
gin, echo, chi, gRPC server
systems/cpp
internal/detector/systems/cpp/
C/C++ structures
systems/rust
internal/detector/systems/rust/
Rust / Cargo / actix / axum
csharp
internal/detector/csharp/
ASP.NET Core, EF Core, Azure SDK
markup
internal/detector/markup/
Markdown
proto
internal/detector/proto/
gRPC .proto files
sql
internal/detector/sql/
Migrations, raw SQL
structured
internal/detector/structured/
YAML, JSON, TOML, K8s, Helm, OpenAPI
script/shell
internal/detector/script/shell/
PowerShell, Bash
generic
internal/detector/generic/
Cross-language detectors (imports, references)
base
internal/detector/base/
Not detectors. Shared helpers — RegexDetectorDefaultConfidence, StructuredDetectorDefaultConfidence, EnsureFileAnchor, EnsureExternalAnchor, etc. Used by every detector category.
CreateIndexes() builds two FTS indexes via CALL CREATE_FTS_INDEX. SearchByLabel / SearchLexical route through QUERY_FTS_INDEX with CONTAINS fallback for pre-enrich graphs.
5-file fixture used by index_test.go and as a smoke target. README.md is content — it's part of the fixture, not project docs.
testdata/fixture-multi-lang/
Multi-service polyglot fixture used by the perf-gate workflow + multi-language enrich tests.
Why the directory structure matters
internal/ is Go-stdlib-enforced — nothing outside github.com/randomcodespace/codeiq/... can import from it. This is why every public surface (CLI subcommands, MCP tools) is a thin wrapper around internal/ packages.
Detector registration is a choke point (detectors_register.go). The Go linker drops unimported packages even if they have init() functions — without the blank import, the detector ships dead.
One CodeNode table for all 34 NodeKinds simplifies Cypher (no UNION over per-label tables) at the cost of label-index optimizations Kuzu could theoretically apply. See 02-architecture.md tradeoffs.