sdl-mcp 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +132 -0
- package/config/benchmark.ci.config.json +86 -0
- package/config/benchmark.ci.windows.config.json +86 -0
- package/config/benchmark.config.example.json +86 -0
- package/config/benchmark.config.json +86 -0
- package/config/sdlmcp.config.example.json +139 -0
- package/config/sdlmcp.config.json +48 -0
- package/config/sdlmcp.config.schema.json +381 -0
- package/dist/agent/evidence.d.ts +18 -0
- package/dist/agent/evidence.d.ts.map +1 -0
- package/dist/agent/evidence.js +107 -0
- package/dist/agent/evidence.js.map +1 -0
- package/dist/agent/executor.d.ts +28 -0
- package/dist/agent/executor.d.ts.map +1 -0
- package/dist/agent/executor.js +261 -0
- package/dist/agent/executor.js.map +1 -0
- package/dist/agent/index.d.ts +6 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +6 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/orchestrator.d.ts +14 -0
- package/dist/agent/orchestrator.d.ts.map +1 -0
- package/dist/agent/orchestrator.js +108 -0
- package/dist/agent/orchestrator.js.map +1 -0
- package/dist/agent/planner.d.ts +21 -0
- package/dist/agent/planner.d.ts.map +1 -0
- package/dist/agent/planner.js +153 -0
- package/dist/agent/planner.js.map +1 -0
- package/dist/agent/types.d.ts +86 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +2 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/benchmark/index.d.ts +4 -0
- package/dist/benchmark/index.d.ts.map +1 -0
- package/dist/benchmark/index.js +4 -0
- package/dist/benchmark/index.js.map +1 -0
- package/dist/benchmark/regression.d.ts +40 -0
- package/dist/benchmark/regression.d.ts.map +1 -0
- package/dist/benchmark/regression.js +199 -0
- package/dist/benchmark/regression.js.map +1 -0
- package/dist/benchmark/smoothing.d.ts +40 -0
- package/dist/benchmark/smoothing.d.ts.map +1 -0
- package/dist/benchmark/smoothing.js +121 -0
- package/dist/benchmark/smoothing.js.map +1 -0
- package/dist/benchmark/threshold.d.ts +64 -0
- package/dist/benchmark/threshold.d.ts.map +1 -0
- package/dist/benchmark/threshold.js +173 -0
- package/dist/benchmark/threshold.js.map +1 -0
- package/dist/cli/argParsing.d.ts +34 -0
- package/dist/cli/argParsing.d.ts.map +1 -0
- package/dist/cli/argParsing.js +329 -0
- package/dist/cli/argParsing.js.map +1 -0
- package/dist/cli/commands/benchmark.d.ts +16 -0
- package/dist/cli/commands/benchmark.d.ts.map +1 -0
- package/dist/cli/commands/benchmark.js +412 -0
- package/dist/cli/commands/benchmark.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +3 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +218 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/export.d.ts +12 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +70 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/import.d.ts +10 -0
- package/dist/cli/commands/import.d.ts.map +1 -0
- package/dist/cli/commands/import.js +40 -0
- package/dist/cli/commands/import.js.map +1 -0
- package/dist/cli/commands/index.d.ts +3 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +89 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +221 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/pull.d.ts +11 -0
- package/dist/cli/commands/pull.d.ts.map +1 -0
- package/dist/cli/commands/pull.js +47 -0
- package/dist/cli/commands/pull.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +3 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +72 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/version.d.ts +3 -0
- package/dist/cli/commands/version.d.ts.map +1 -0
- package/dist/cli/commands/version.js +24 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +213 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/logging.d.ts +10 -0
- package/dist/cli/logging.d.ts.map +1 -0
- package/dist/cli/logging.js +48 -0
- package/dist/cli/logging.js.map +1 -0
- package/dist/cli/transport/http.d.ts +3 -0
- package/dist/cli/transport/http.d.ts.map +1 -0
- package/dist/cli/transport/http.js +106 -0
- package/dist/cli/transport/http.js.map +1 -0
- package/dist/cli/transport/stdio.d.ts +3 -0
- package/dist/cli/transport/stdio.d.ts.map +1 -0
- package/dist/cli/transport/stdio.js +6 -0
- package/dist/cli/transport/stdio.js.map +1 -0
- package/dist/cli/types.d.ts +41 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/code/gate.d.ts +11 -0
- package/dist/code/gate.d.ts.map +1 -0
- package/dist/code/gate.js +134 -0
- package/dist/code/gate.js.map +1 -0
- package/dist/code/hotpath.d.ts +17 -0
- package/dist/code/hotpath.d.ts.map +1 -0
- package/dist/code/hotpath.js +200 -0
- package/dist/code/hotpath.js.map +1 -0
- package/dist/code/redact.d.ts +19 -0
- package/dist/code/redact.d.ts.map +1 -0
- package/dist/code/redact.js +92 -0
- package/dist/code/redact.js.map +1 -0
- package/dist/code/skeleton.d.ts +32 -0
- package/dist/code/skeleton.d.ts.map +1 -0
- package/dist/code/skeleton.js +610 -0
- package/dist/code/skeleton.js.map +1 -0
- package/dist/code/windows.d.ts +18 -0
- package/dist/code/windows.d.ts.map +1 -0
- package/dist/code/windows.js +236 -0
- package/dist/code/windows.js.map +1 -0
- package/dist/config/constants.d.ts +340 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +379 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/loadConfig.d.ts +3 -0
- package/dist/config/loadConfig.d.ts.map +1 -0
- package/dist/config/loadConfig.js +71 -0
- package/dist/config/loadConfig.js.map +1 -0
- package/dist/config/types.d.ts +509 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +139 -0
- package/dist/config/types.js.map +1 -0
- package/dist/db/db.d.ts +4 -0
- package/dist/db/db.d.ts.map +1 -0
- package/dist/db/db.js +47 -0
- package/dist/db/db.js.map +1 -0
- package/dist/db/migrations.d.ts +15 -0
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/migrations.js +81 -0
- package/dist/db/migrations.js.map +1 -0
- package/dist/db/queries.d.ts +440 -0
- package/dist/db/queries.d.ts.map +1 -0
- package/dist/db/queries.js +1054 -0
- package/dist/db/queries.js.map +1 -0
- package/dist/db/schema.d.ts +132 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +2 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/delta/blastRadius.d.ts +24 -0
- package/dist/delta/blastRadius.d.ts.map +1 -0
- package/dist/delta/blastRadius.js +239 -0
- package/dist/delta/blastRadius.js.map +1 -0
- package/dist/delta/diff.d.ts +16 -0
- package/dist/delta/diff.d.ts.map +1 -0
- package/dist/delta/diff.js +236 -0
- package/dist/delta/diff.js.map +1 -0
- package/dist/delta/versioning.d.ts +11 -0
- package/dist/delta/versioning.d.ts.map +1 -0
- package/dist/delta/versioning.js +68 -0
- package/dist/delta/versioning.js.map +1 -0
- package/dist/graph/buildGraph.d.ts +12 -0
- package/dist/graph/buildGraph.d.ts.map +1 -0
- package/dist/graph/buildGraph.js +81 -0
- package/dist/graph/buildGraph.js.map +1 -0
- package/dist/graph/cache.d.ts +111 -0
- package/dist/graph/cache.d.ts.map +1 -0
- package/dist/graph/cache.js +237 -0
- package/dist/graph/cache.js.map +1 -0
- package/dist/graph/metrics.d.ts +12 -0
- package/dist/graph/metrics.d.ts.map +1 -0
- package/dist/graph/metrics.js +253 -0
- package/dist/graph/metrics.js.map +1 -0
- package/dist/graph/minHeap.d.ts +91 -0
- package/dist/graph/minHeap.d.ts.map +1 -0
- package/dist/graph/minHeap.js +159 -0
- package/dist/graph/minHeap.js.map +1 -0
- package/dist/graph/overview.d.ts +22 -0
- package/dist/graph/overview.d.ts.map +1 -0
- package/dist/graph/overview.js +379 -0
- package/dist/graph/overview.js.map +1 -0
- package/dist/graph/score.d.ts +27 -0
- package/dist/graph/score.d.ts.map +1 -0
- package/dist/graph/score.js +214 -0
- package/dist/graph/score.js.map +1 -0
- package/dist/graph/slice.d.ts +51 -0
- package/dist/graph/slice.d.ts.map +1 -0
- package/dist/graph/slice.js +1047 -0
- package/dist/graph/slice.js.map +1 -0
- package/dist/graph/sliceCache.d.ts +33 -0
- package/dist/graph/sliceCache.d.ts.map +1 -0
- package/dist/graph/sliceCache.js +140 -0
- package/dist/graph/sliceCache.js.map +1 -0
- package/dist/indexer/adapter/BaseAdapter.d.ts +29 -0
- package/dist/indexer/adapter/BaseAdapter.d.ts.map +1 -0
- package/dist/indexer/adapter/BaseAdapter.js +97 -0
- package/dist/indexer/adapter/BaseAdapter.js.map +1 -0
- package/dist/indexer/adapter/LanguageAdapter.d.ts +20 -0
- package/dist/indexer/adapter/LanguageAdapter.d.ts.map +1 -0
- package/dist/indexer/adapter/LanguageAdapter.js +2 -0
- package/dist/indexer/adapter/LanguageAdapter.js.map +1 -0
- package/dist/indexer/adapter/adapters.d.ts +57 -0
- package/dist/indexer/adapter/adapters.d.ts.map +1 -0
- package/dist/indexer/adapter/adapters.js +129 -0
- package/dist/indexer/adapter/adapters.js.map +1 -0
- package/dist/indexer/adapter/c.d.ts +18 -0
- package/dist/indexer/adapter/c.d.ts.map +1 -0
- package/dist/indexer/adapter/c.js +443 -0
- package/dist/indexer/adapter/c.js.map +1 -0
- package/dist/indexer/adapter/cpp.d.ts +18 -0
- package/dist/indexer/adapter/cpp.d.ts.map +1 -0
- package/dist/indexer/adapter/cpp.js +493 -0
- package/dist/indexer/adapter/cpp.js.map +1 -0
- package/dist/indexer/adapter/csharp.d.ts +48 -0
- package/dist/indexer/adapter/csharp.d.ts.map +1 -0
- package/dist/indexer/adapter/csharp.js +638 -0
- package/dist/indexer/adapter/csharp.js.map +1 -0
- package/dist/indexer/adapter/go.d.ts +14 -0
- package/dist/indexer/adapter/go.d.ts.map +1 -0
- package/dist/indexer/adapter/go.js +400 -0
- package/dist/indexer/adapter/go.js.map +1 -0
- package/dist/indexer/adapter/index.d.ts +14 -0
- package/dist/indexer/adapter/index.d.ts.map +1 -0
- package/dist/indexer/adapter/index.js +13 -0
- package/dist/indexer/adapter/index.js.map +1 -0
- package/dist/indexer/adapter/java.d.ts +14 -0
- package/dist/indexer/adapter/java.d.ts.map +1 -0
- package/dist/indexer/adapter/java.js +391 -0
- package/dist/indexer/adapter/java.js.map +1 -0
- package/dist/indexer/adapter/kotlin.d.ts +18 -0
- package/dist/indexer/adapter/kotlin.d.ts.map +1 -0
- package/dist/indexer/adapter/kotlin.js +599 -0
- package/dist/indexer/adapter/kotlin.js.map +1 -0
- package/dist/indexer/adapter/php.d.ts +18 -0
- package/dist/indexer/adapter/php.d.ts.map +1 -0
- package/dist/indexer/adapter/php.js +574 -0
- package/dist/indexer/adapter/php.js.map +1 -0
- package/dist/indexer/adapter/plugin/index.d.ts +3 -0
- package/dist/indexer/adapter/plugin/index.d.ts.map +1 -0
- package/dist/indexer/adapter/plugin/index.js +3 -0
- package/dist/indexer/adapter/plugin/index.js.map +1 -0
- package/dist/indexer/adapter/plugin/loader.d.ts +13 -0
- package/dist/indexer/adapter/plugin/loader.d.ts.map +1 -0
- package/dist/indexer/adapter/plugin/loader.js +154 -0
- package/dist/indexer/adapter/plugin/loader.js.map +1 -0
- package/dist/indexer/adapter/plugin/types.d.ts +76 -0
- package/dist/indexer/adapter/plugin/types.d.ts.map +1 -0
- package/dist/indexer/adapter/plugin/types.js +47 -0
- package/dist/indexer/adapter/plugin/types.js.map +1 -0
- package/dist/indexer/adapter/python.d.ts +14 -0
- package/dist/indexer/adapter/python.d.ts.map +1 -0
- package/dist/indexer/adapter/python.js +511 -0
- package/dist/indexer/adapter/python.js.map +1 -0
- package/dist/indexer/adapter/registry.d.ts +17 -0
- package/dist/indexer/adapter/registry.d.ts.map +1 -0
- package/dist/indexer/adapter/registry.js +134 -0
- package/dist/indexer/adapter/registry.js.map +1 -0
- package/dist/indexer/adapter/rust.d.ts +18 -0
- package/dist/indexer/adapter/rust.d.ts.map +1 -0
- package/dist/indexer/adapter/rust.js +709 -0
- package/dist/indexer/adapter/rust.js.map +1 -0
- package/dist/indexer/adapter/shell.d.ts +18 -0
- package/dist/indexer/adapter/shell.d.ts.map +1 -0
- package/dist/indexer/adapter/shell.js +345 -0
- package/dist/indexer/adapter/shell.js.map +1 -0
- package/dist/indexer/adapter/typescript.d.ts +14 -0
- package/dist/indexer/adapter/typescript.d.ts.map +1 -0
- package/dist/indexer/adapter/typescript.js +31 -0
- package/dist/indexer/adapter/typescript.js.map +1 -0
- package/dist/indexer/configEdges.d.ts +30 -0
- package/dist/indexer/configEdges.d.ts.map +1 -0
- package/dist/indexer/configEdges.js +260 -0
- package/dist/indexer/configEdges.js.map +1 -0
- package/dist/indexer/fileScanner.d.ts +16 -0
- package/dist/indexer/fileScanner.d.ts.map +1 -0
- package/dist/indexer/fileScanner.js +90 -0
- package/dist/indexer/fileScanner.js.map +1 -0
- package/dist/indexer/fingerprints.d.ts +23 -0
- package/dist/indexer/fingerprints.d.ts.map +1 -0
- package/dist/indexer/fingerprints.js +97 -0
- package/dist/indexer/fingerprints.js.map +1 -0
- package/dist/indexer/indexer.d.ts +58 -0
- package/dist/indexer/indexer.d.ts.map +1 -0
- package/dist/indexer/indexer.js +1229 -0
- package/dist/indexer/indexer.js.map +1 -0
- package/dist/indexer/summaries.d.ts +5 -0
- package/dist/indexer/summaries.d.ts.map +1 -0
- package/dist/indexer/summaries.js +331 -0
- package/dist/indexer/summaries.js.map +1 -0
- package/dist/indexer/treesitter/extractCalls.d.ts +40 -0
- package/dist/indexer/treesitter/extractCalls.d.ts.map +1 -0
- package/dist/indexer/treesitter/extractCalls.js +561 -0
- package/dist/indexer/treesitter/extractCalls.js.map +1 -0
- package/dist/indexer/treesitter/extractImports.d.ts +12 -0
- package/dist/indexer/treesitter/extractImports.d.ts.map +1 -0
- package/dist/indexer/treesitter/extractImports.js +184 -0
- package/dist/indexer/treesitter/extractImports.js.map +1 -0
- package/dist/indexer/treesitter/extractSymbols.d.ts +24 -0
- package/dist/indexer/treesitter/extractSymbols.d.ts.map +1 -0
- package/dist/indexer/treesitter/extractSymbols.js +389 -0
- package/dist/indexer/treesitter/extractSymbols.js.map +1 -0
- package/dist/indexer/treesitter/grammarLoader.d.ts +6 -0
- package/dist/indexer/treesitter/grammarLoader.d.ts.map +1 -0
- package/dist/indexer/treesitter/grammarLoader.js +125 -0
- package/dist/indexer/treesitter/grammarLoader.js.map +1 -0
- package/dist/indexer/treesitter/symbolUtils.d.ts +4 -0
- package/dist/indexer/treesitter/symbolUtils.d.ts.map +1 -0
- package/dist/indexer/treesitter/symbolUtils.js +26 -0
- package/dist/indexer/treesitter/symbolUtils.js.map +1 -0
- package/dist/indexer/treesitter/tsTreesitter.d.ts +9 -0
- package/dist/indexer/treesitter/tsTreesitter.d.ts.map +1 -0
- package/dist/indexer/treesitter/tsTreesitter.js +54 -0
- package/dist/indexer/treesitter/tsTreesitter.js.map +1 -0
- package/dist/indexer/treesitter/types.d.ts +19 -0
- package/dist/indexer/treesitter/types.d.ts.map +1 -0
- package/dist/indexer/treesitter/types.js +7 -0
- package/dist/indexer/treesitter/types.js.map +1 -0
- package/dist/indexer/ts/tsParser.d.ts +20 -0
- package/dist/indexer/ts/tsParser.d.ts.map +1 -0
- package/dist/indexer/ts/tsParser.js +114 -0
- package/dist/indexer/ts/tsParser.js.map +1 -0
- package/dist/indexer/worker.d.ts +2 -0
- package/dist/indexer/worker.d.ts.map +1 -0
- package/dist/indexer/worker.js +59 -0
- package/dist/indexer/worker.js.map +1 -0
- package/dist/indexer/workerPool.d.ts +20 -0
- package/dist/indexer/workerPool.d.ts.map +1 -0
- package/dist/indexer/workerPool.js +93 -0
- package/dist/indexer/workerPool.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +111 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp/errors.d.ts +40 -0
- package/dist/mcp/errors.d.ts.map +1 -0
- package/dist/mcp/errors.js +66 -0
- package/dist/mcp/errors.js.map +1 -0
- package/dist/mcp/resources.d.ts +24 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +140 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/telemetry.d.ts +67 -0
- package/dist/mcp/telemetry.d.ts.map +1 -0
- package/dist/mcp/telemetry.js +128 -0
- package/dist/mcp/telemetry.js.map +1 -0
- package/dist/mcp/tools/agent.d.ts +241 -0
- package/dist/mcp/tools/agent.d.ts.map +1 -0
- package/dist/mcp/tools/agent.js +113 -0
- package/dist/mcp/tools/agent.js.map +1 -0
- package/dist/mcp/tools/code.d.ts +32 -0
- package/dist/mcp/tools/code.d.ts.map +1 -0
- package/dist/mcp/tools/code.js +388 -0
- package/dist/mcp/tools/code.js.map +1 -0
- package/dist/mcp/tools/delta.d.ts +12 -0
- package/dist/mcp/tools/delta.d.ts.map +1 -0
- package/dist/mcp/tools/delta.js +82 -0
- package/dist/mcp/tools/delta.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +3 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +35 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/policy.d.ts +20 -0
- package/dist/mcp/tools/policy.d.ts.map +1 -0
- package/dist/mcp/tools/policy.js +67 -0
- package/dist/mcp/tools/policy.js.map +1 -0
- package/dist/mcp/tools/prRisk.d.ts +34 -0
- package/dist/mcp/tools/prRisk.d.ts.map +1 -0
- package/dist/mcp/tools/prRisk.js +304 -0
- package/dist/mcp/tools/prRisk.js.map +1 -0
- package/dist/mcp/tools/repo.d.ts +46 -0
- package/dist/mcp/tools/repo.d.ts.map +1 -0
- package/dist/mcp/tools/repo.js +224 -0
- package/dist/mcp/tools/repo.js.map +1 -0
- package/dist/mcp/tools/slice.d.ts +44 -0
- package/dist/mcp/tools/slice.d.ts.map +1 -0
- package/dist/mcp/tools/slice.js +688 -0
- package/dist/mcp/tools/slice.js.map +1 -0
- package/dist/mcp/tools/symbol.d.ts +21 -0
- package/dist/mcp/tools/symbol.d.ts.map +1 -0
- package/dist/mcp/tools/symbol.js +416 -0
- package/dist/mcp/tools/symbol.js.map +1 -0
- package/dist/mcp/tools.d.ts +6003 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +932 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/types.d.ts +500 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +2 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/policy/engine.d.ts +21 -0
- package/dist/policy/engine.d.ts.map +1 -0
- package/dist/policy/engine.js +477 -0
- package/dist/policy/engine.js.map +1 -0
- package/dist/policy/types.d.ts +73 -0
- package/dist/policy/types.d.ts.map +1 -0
- package/dist/policy/types.js +12 -0
- package/dist/policy/types.js.map +1 -0
- package/dist/server.d.ts +17 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +136 -0
- package/dist/server.js.map +1 -0
- package/dist/sync/pull.d.ts +4 -0
- package/dist/sync/pull.d.ts.map +1 -0
- package/dist/sync/pull.js +113 -0
- package/dist/sync/pull.js.map +1 -0
- package/dist/sync/sync.d.ts +6 -0
- package/dist/sync/sync.d.ts.map +1 -0
- package/dist/sync/sync.js +244 -0
- package/dist/sync/sync.js.map +1 -0
- package/dist/sync/types.d.ts +136 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +2 -0
- package/dist/sync/types.js.map +1 -0
- package/dist/ts/diagnostics.d.ts +61 -0
- package/dist/ts/diagnostics.d.ts.map +1 -0
- package/dist/ts/diagnostics.js +259 -0
- package/dist/ts/diagnostics.js.map +1 -0
- package/dist/ts/mapping.d.ts +27 -0
- package/dist/ts/mapping.d.ts.map +1 -0
- package/dist/ts/mapping.js +68 -0
- package/dist/ts/mapping.js.map +1 -0
- package/dist/util/asyncFs.d.ts +103 -0
- package/dist/util/asyncFs.d.ts.map +1 -0
- package/dist/util/asyncFs.js +133 -0
- package/dist/util/asyncFs.js.map +1 -0
- package/dist/util/concurrency.d.ts +77 -0
- package/dist/util/concurrency.d.ts.map +1 -0
- package/dist/util/concurrency.js +146 -0
- package/dist/util/concurrency.js.map +1 -0
- package/dist/util/depLabels.d.ts +3 -0
- package/dist/util/depLabels.d.ts.map +1 -0
- package/dist/util/depLabels.js +19 -0
- package/dist/util/depLabels.js.map +1 -0
- package/dist/util/findPackageRoot.d.ts +7 -0
- package/dist/util/findPackageRoot.d.ts.map +1 -0
- package/dist/util/findPackageRoot.js +21 -0
- package/dist/util/findPackageRoot.js.map +1 -0
- package/dist/util/hashing.d.ts +9 -0
- package/dist/util/hashing.d.ts.map +1 -0
- package/dist/util/hashing.js +37 -0
- package/dist/util/hashing.js.map +1 -0
- package/dist/util/logger.d.ts +14 -0
- package/dist/util/logger.d.ts.map +1 -0
- package/dist/util/logger.js +51 -0
- package/dist/util/logger.js.map +1 -0
- package/dist/util/paths.d.ts +6 -0
- package/dist/util/paths.d.ts.map +1 -0
- package/dist/util/paths.js +79 -0
- package/dist/util/paths.js.map +1 -0
- package/dist/util/time.d.ts +4 -0
- package/dist/util/time.d.ts.map +1 -0
- package/dist/util/time.js +20 -0
- package/dist/util/time.js.map +1 -0
- package/dist/util/tokenize.d.ts +5 -0
- package/dist/util/tokenize.d.ts.map +1 -0
- package/dist/util/tokenize.js +30 -0
- package/dist/util/tokenize.js.map +1 -0
- package/dist/util/truncation.d.ts +38 -0
- package/dist/util/truncation.d.ts.map +1 -0
- package/dist/util/truncation.js +259 -0
- package/dist/util/truncation.js.map +1 -0
- package/migrations/.gitkeep +1 -0
- package/migrations/0001_init.sql +61 -0
- package/migrations/0002_edges_indexes.sql +2 -0
- package/migrations/0003_versions.sql +22 -0
- package/migrations/0004_metrics_audit.sql +23 -0
- package/migrations/0005_slice_handles.sql +15 -0
- package/migrations/0006_content_addressed.sql +29 -0
- package/migrations/0007_add_language_to_symbols.sql +28 -0
- package/migrations/0008_performance_indexes.sql +21 -0
- package/migrations/0009_fix_edge_fks.sql +37 -0
- package/migrations/0010_standardize_fks.sql +35 -0
- package/migrations/0011_add_directory_column.sql +20 -0
- package/migrations/0012_symbol_references.sql +16 -0
- package/migrations/0013_sync_artifacts.sql +17 -0
- package/package.json +107 -0
- package/templates/CLAUDE.md.template +179 -0
- package/templates/README.md +228 -0
- package/templates/claude-code.json +54 -0
- package/templates/codex.json +55 -0
- package/templates/gemini.json +66 -0
- package/templates/opencode.json +90 -0
- package/templates/plugin-template/LICENSE +21 -0
- package/templates/plugin-template/README.md +309 -0
- package/templates/plugin-template/index.ts +160 -0
- package/templates/plugin-template/package.json +31 -0
- package/templates/plugin-template/test/plugin.test.ts +186 -0
- package/templates/plugin-template/tsconfig.json +21 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Min-heap data structure for efficient priority queue operations.
|
|
3
|
+
* Used in beam search to maintain sorted frontier with O(log n) operations.
|
|
4
|
+
*
|
|
5
|
+
* @template T - Type of items in the heap (must have a numeric score property)
|
|
6
|
+
*/
|
|
7
|
+
export class MinHeap {
|
|
8
|
+
heap = [];
|
|
9
|
+
/**
|
|
10
|
+
* Insert an item into the heap.
|
|
11
|
+
* Time complexity: O(log n)
|
|
12
|
+
*
|
|
13
|
+
* @param item - Item to insert (must have a score property)
|
|
14
|
+
*/
|
|
15
|
+
insert(item) {
|
|
16
|
+
this.heap.push(item);
|
|
17
|
+
this.bubbleUp(this.heap.length - 1);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Remove and return the item with the lowest score.
|
|
21
|
+
* Time complexity: O(log n)
|
|
22
|
+
*
|
|
23
|
+
* @returns Item with minimum score, or undefined if heap is empty
|
|
24
|
+
*/
|
|
25
|
+
extractMin() {
|
|
26
|
+
if (this.heap.length === 0) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
if (this.heap.length === 1) {
|
|
30
|
+
return this.heap.pop();
|
|
31
|
+
}
|
|
32
|
+
const min = this.heap[0];
|
|
33
|
+
const last = this.heap.pop();
|
|
34
|
+
this.heap[0] = last;
|
|
35
|
+
this.bubbleDown(0);
|
|
36
|
+
return min;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Peek at the item with the lowest score without removing it.
|
|
40
|
+
* Time complexity: O(1)
|
|
41
|
+
*
|
|
42
|
+
* @returns Item with minimum score, or undefined if heap is empty
|
|
43
|
+
*/
|
|
44
|
+
peek() {
|
|
45
|
+
return this.heap[0];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Check if the heap is empty.
|
|
49
|
+
* Time complexity: O(1)
|
|
50
|
+
*
|
|
51
|
+
* @returns true if heap has no items
|
|
52
|
+
*/
|
|
53
|
+
isEmpty() {
|
|
54
|
+
return this.heap.length === 0;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get the number of items in the heap.
|
|
58
|
+
* Time complexity: O(1)
|
|
59
|
+
*
|
|
60
|
+
* @returns Number of items in the heap
|
|
61
|
+
*/
|
|
62
|
+
size() {
|
|
63
|
+
return this.heap.length;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Convert heap to array sorted by score (lowest to highest).
|
|
67
|
+
* This is a destructive operation - empties the heap.
|
|
68
|
+
*
|
|
69
|
+
* @returns Array of items sorted by score (lowest to highest)
|
|
70
|
+
*/
|
|
71
|
+
toArray() {
|
|
72
|
+
const sorted = [];
|
|
73
|
+
while (!this.isEmpty()) {
|
|
74
|
+
sorted.push(this.extractMin());
|
|
75
|
+
}
|
|
76
|
+
return sorted;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get items as array in heap order (not sorted).
|
|
80
|
+
* This is non-destructive.
|
|
81
|
+
*
|
|
82
|
+
* @returns Copy of internal heap array
|
|
83
|
+
*/
|
|
84
|
+
toHeapArray() {
|
|
85
|
+
return [...this.heap];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Clear all items from the heap.
|
|
89
|
+
*/
|
|
90
|
+
clear() {
|
|
91
|
+
this.heap = [];
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Move item at index up to restore heap property.
|
|
95
|
+
*
|
|
96
|
+
* @param index - Index of item to bubble up
|
|
97
|
+
*/
|
|
98
|
+
bubbleUp(index) {
|
|
99
|
+
while (index > 0) {
|
|
100
|
+
const parentIndex = Math.floor((index - 1) / 2);
|
|
101
|
+
if (this.compare(this.heap[parentIndex], this.heap[index]) <= 0) {
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
this.swap(parentIndex, index);
|
|
105
|
+
index = parentIndex;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Move item at index down to restore heap property.
|
|
110
|
+
*
|
|
111
|
+
* @param index - Index of item to bubble down
|
|
112
|
+
*/
|
|
113
|
+
bubbleDown(index) {
|
|
114
|
+
const length = this.heap.length;
|
|
115
|
+
for (;;) {
|
|
116
|
+
let smallest = index;
|
|
117
|
+
const left = 2 * index + 1;
|
|
118
|
+
const right = 2 * index + 2;
|
|
119
|
+
if (left < length &&
|
|
120
|
+
this.compare(this.heap[left], this.heap[smallest]) < 0) {
|
|
121
|
+
smallest = left;
|
|
122
|
+
}
|
|
123
|
+
if (right < length &&
|
|
124
|
+
this.compare(this.heap[right], this.heap[smallest]) < 0) {
|
|
125
|
+
smallest = right;
|
|
126
|
+
}
|
|
127
|
+
if (smallest === index) {
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
this.swap(smallest, index);
|
|
131
|
+
index = smallest;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Swap two items in the heap array.
|
|
136
|
+
*
|
|
137
|
+
* @param i - First index
|
|
138
|
+
* @param j - Second index
|
|
139
|
+
*/
|
|
140
|
+
swap(i, j) {
|
|
141
|
+
[this.heap[i], this.heap[j]] = [this.heap[j], this.heap[i]];
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Compare two heap items with deterministic tie-breakers.
|
|
145
|
+
* Lower score is better; ties are broken by priority and then insertion sequence.
|
|
146
|
+
*/
|
|
147
|
+
compare(a, b) {
|
|
148
|
+
if (a.score !== b.score)
|
|
149
|
+
return a.score - b.score;
|
|
150
|
+
const aPriority = a.priority ?? 0;
|
|
151
|
+
const bPriority = b.priority ?? 0;
|
|
152
|
+
if (aPriority !== bPriority)
|
|
153
|
+
return aPriority - bPriority;
|
|
154
|
+
const aSequence = a.sequence ?? 0;
|
|
155
|
+
const bSequence = b.sequence ?? 0;
|
|
156
|
+
return aSequence - bSequence;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=minHeap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minHeap.js","sourceRoot":"","sources":["../../src/graph/minHeap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,OAAO;IAGV,IAAI,GAAQ,EAAE,CAAC;IAEvB;;;;;OAKG;IACH,MAAM,CAAC,IAAO;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAG,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACL,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAG,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACK,QAAQ,CAAC,KAAa;QAC5B,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChE,MAAM;YACR,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC9B,KAAK,GAAG,WAAW,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,KAAa;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,SAAS,CAAC;YACR,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAE5B,IACE,IAAI,GAAG,MAAM;gBACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EACtD,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YAED,IACE,KAAK,GAAG,MAAM;gBACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EACvD,CAAC;gBACD,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;YAED,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvB,MAAM;YACR,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC3B,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,IAAI,CAAC,CAAS,EAAE,CAAS;QAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACK,OAAO,CAAC,CAAI,EAAE,CAAI;QACxB,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAClD,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;QAClC,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,GAAG,SAAS,CAAC;QAC1D,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;QAClC,OAAO,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Repository Overview Builder
|
|
3
|
+
*
|
|
4
|
+
* Generates token-efficient codebase overviews by aggregating symbol data
|
|
5
|
+
* at the directory level. This provides 10-50x token reduction compared to
|
|
6
|
+
* rendering all symbols as full cards.
|
|
7
|
+
*
|
|
8
|
+
* Key features:
|
|
9
|
+
* - Progressive detail levels (stats, directories, full)
|
|
10
|
+
* - Directory-level symbol aggregation
|
|
11
|
+
* - Hotspot analysis (most depended, most changed)
|
|
12
|
+
* - Token efficiency metrics
|
|
13
|
+
*/
|
|
14
|
+
import type { RepoOverview, RepoOverviewRequest } from "../mcp/types.js";
|
|
15
|
+
/**
|
|
16
|
+
* Builds a repository overview with configurable detail level.
|
|
17
|
+
*
|
|
18
|
+
* @param request - Overview request parameters
|
|
19
|
+
* @returns Repository overview with stats, directories, and optionally hotspots
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildRepoOverview(request: RepoOverviewRequest): RepoOverview;
|
|
22
|
+
//# sourceMappingURL=overview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overview.d.ts","sourceRoot":"","sources":["../../src/graph/overview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EAMpB,MAAM,iBAAiB,CAAC;AAuGzB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAkE5E"}
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Repository Overview Builder
|
|
3
|
+
*
|
|
4
|
+
* Generates token-efficient codebase overviews by aggregating symbol data
|
|
5
|
+
* at the directory level. This provides 10-50x token reduction compared to
|
|
6
|
+
* rendering all symbols as full cards.
|
|
7
|
+
*
|
|
8
|
+
* Key features:
|
|
9
|
+
* - Progressive detail levels (stats, directories, full)
|
|
10
|
+
* - Directory-level symbol aggregation
|
|
11
|
+
* - Hotspot analysis (most depended, most changed)
|
|
12
|
+
* - Token efficiency metrics
|
|
13
|
+
*/
|
|
14
|
+
import * as db from "../db/queries.js";
|
|
15
|
+
import { SYMBOL_TOKEN_MAX } from "../config/constants.js";
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Constants
|
|
18
|
+
// ============================================================================
|
|
19
|
+
/**
|
|
20
|
+
* Estimated tokens for a compact symbol reference.
|
|
21
|
+
* Much smaller than full SymbolCard (~135 tokens).
|
|
22
|
+
*/
|
|
23
|
+
const COMPACT_SYMBOL_REF_TOKENS = 15;
|
|
24
|
+
/**
|
|
25
|
+
* Estimated tokens for directory summary header.
|
|
26
|
+
*/
|
|
27
|
+
const DIRECTORY_SUMMARY_HEADER_TOKENS = 25;
|
|
28
|
+
/**
|
|
29
|
+
* Estimated tokens per export name in directory summary.
|
|
30
|
+
*/
|
|
31
|
+
const EXPORT_NAME_TOKENS = 2;
|
|
32
|
+
/**
|
|
33
|
+
* Default maximum directories to include in overview.
|
|
34
|
+
*/
|
|
35
|
+
const DEFAULT_MAX_DIRECTORIES = 50;
|
|
36
|
+
/**
|
|
37
|
+
* Default maximum exports to list per directory.
|
|
38
|
+
*/
|
|
39
|
+
const DEFAULT_MAX_EXPORTS_PER_DIRECTORY = 10;
|
|
40
|
+
/**
|
|
41
|
+
* Default maximum top symbols to include in hotspots.
|
|
42
|
+
*/
|
|
43
|
+
const DEFAULT_MAX_HOTSPOT_SYMBOLS = 10;
|
|
44
|
+
// ============================================================================
|
|
45
|
+
// Helper Functions
|
|
46
|
+
// ============================================================================
|
|
47
|
+
/**
|
|
48
|
+
* Creates empty SymbolCountsByKind object.
|
|
49
|
+
*/
|
|
50
|
+
function emptySymbolCounts() {
|
|
51
|
+
return {
|
|
52
|
+
function: 0,
|
|
53
|
+
class: 0,
|
|
54
|
+
interface: 0,
|
|
55
|
+
type: 0,
|
|
56
|
+
method: 0,
|
|
57
|
+
variable: 0,
|
|
58
|
+
module: 0,
|
|
59
|
+
constructor: 0,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Converts a TopSymbolRow to CompactSymbolRef.
|
|
64
|
+
*/
|
|
65
|
+
function toCompactRef(row) {
|
|
66
|
+
let signature;
|
|
67
|
+
if (row.signature_json) {
|
|
68
|
+
try {
|
|
69
|
+
const sig = JSON.parse(row.signature_json);
|
|
70
|
+
if (sig.name) {
|
|
71
|
+
const params = sig.params
|
|
72
|
+
? `(${sig.params.map((p) => p.name).join(", ")})`
|
|
73
|
+
: "()";
|
|
74
|
+
const ret = sig.returns ? `: ${sig.returns}` : "";
|
|
75
|
+
signature = `${sig.name}${params}${ret}`;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// Ignore parse errors
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
symbolId: row.symbol_id,
|
|
84
|
+
name: row.name,
|
|
85
|
+
kind: row.kind,
|
|
86
|
+
exported: row.exported === 1,
|
|
87
|
+
signature,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Estimates token count for a directory summary.
|
|
92
|
+
*/
|
|
93
|
+
function estimateDirectorySummaryTokens(summary) {
|
|
94
|
+
let tokens = DIRECTORY_SUMMARY_HEADER_TOKENS;
|
|
95
|
+
tokens += summary.exports.length * EXPORT_NAME_TOKENS;
|
|
96
|
+
tokens += summary.topByFanIn.length * COMPACT_SYMBOL_REF_TOKENS;
|
|
97
|
+
tokens += summary.topByChurn.length * COMPACT_SYMBOL_REF_TOKENS;
|
|
98
|
+
return tokens;
|
|
99
|
+
}
|
|
100
|
+
// ============================================================================
|
|
101
|
+
// Main Builder
|
|
102
|
+
// ============================================================================
|
|
103
|
+
/**
|
|
104
|
+
* Builds a repository overview with configurable detail level.
|
|
105
|
+
*
|
|
106
|
+
* @param request - Overview request parameters
|
|
107
|
+
* @returns Repository overview with stats, directories, and optionally hotspots
|
|
108
|
+
*/
|
|
109
|
+
export function buildRepoOverview(request) {
|
|
110
|
+
const { repoId, level, includeHotspots = level === "full", directories: directoryFilter, maxDirectories = DEFAULT_MAX_DIRECTORIES, maxExportsPerDirectory = DEFAULT_MAX_EXPORTS_PER_DIRECTORY, } = request;
|
|
111
|
+
// Get current version
|
|
112
|
+
const latestVersion = db.getLatestVersion(repoId);
|
|
113
|
+
const versionId = latestVersion?.version_id ?? "0";
|
|
114
|
+
// Always build stats
|
|
115
|
+
const stats = buildRepoStats(repoId);
|
|
116
|
+
// Build directory summaries if requested
|
|
117
|
+
const directorySummaries = [];
|
|
118
|
+
if (level === "directories" || level === "full") {
|
|
119
|
+
const summaries = buildDirectorySummaries(repoId, maxDirectories, maxExportsPerDirectory, directoryFilter);
|
|
120
|
+
directorySummaries.push(...summaries);
|
|
121
|
+
}
|
|
122
|
+
// Build hotspots if requested
|
|
123
|
+
let hotspots;
|
|
124
|
+
if (includeHotspots || level === "full") {
|
|
125
|
+
hotspots = buildCodebaseHotspots(repoId);
|
|
126
|
+
}
|
|
127
|
+
// Identify architectural layers from directory structure
|
|
128
|
+
const layers = identifyArchitecturalLayers(directorySummaries);
|
|
129
|
+
// Find entry points
|
|
130
|
+
const entryPoints = findEntryPoints(repoId);
|
|
131
|
+
// Calculate token metrics
|
|
132
|
+
const fullCardsEstimate = stats.symbolCount * SYMBOL_TOKEN_MAX;
|
|
133
|
+
const overviewTokens = calculateOverviewTokens(stats, directorySummaries, hotspots);
|
|
134
|
+
const compressionRatio = fullCardsEstimate > 0 ? fullCardsEstimate / overviewTokens : 1;
|
|
135
|
+
return {
|
|
136
|
+
repoId,
|
|
137
|
+
versionId,
|
|
138
|
+
generatedAt: new Date().toISOString(),
|
|
139
|
+
stats,
|
|
140
|
+
directories: directorySummaries,
|
|
141
|
+
hotspots,
|
|
142
|
+
layers: layers.length > 0 ? layers : undefined,
|
|
143
|
+
entryPoints: entryPoints.length > 0 ? entryPoints : undefined,
|
|
144
|
+
tokenMetrics: {
|
|
145
|
+
fullCardsEstimate,
|
|
146
|
+
overviewTokens,
|
|
147
|
+
compressionRatio,
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Builds high-level repository statistics.
|
|
153
|
+
*/
|
|
154
|
+
function buildRepoStats(repoId) {
|
|
155
|
+
const totals = db.getRepoTotals(repoId);
|
|
156
|
+
const edgesByType = db.getEdgeCountsByType(repoId);
|
|
157
|
+
const dirAggregates = db.getDirectoryAggregates(repoId);
|
|
158
|
+
// Aggregate symbol counts by kind across all directories
|
|
159
|
+
const byKind = emptySymbolCounts();
|
|
160
|
+
for (const dir of dirAggregates) {
|
|
161
|
+
byKind.function += dir.function_count;
|
|
162
|
+
byKind.class += dir.class_count;
|
|
163
|
+
byKind.interface += dir.interface_count;
|
|
164
|
+
byKind.type += dir.type_count;
|
|
165
|
+
byKind.method += dir.method_count;
|
|
166
|
+
byKind.variable += dir.variable_count;
|
|
167
|
+
byKind.module += dir.module_count;
|
|
168
|
+
byKind.constructor += dir.constructor_count;
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
fileCount: totals.fileCount,
|
|
172
|
+
symbolCount: totals.symbolCount,
|
|
173
|
+
edgeCount: totals.edgeCount,
|
|
174
|
+
exportedSymbolCount: totals.exportedCount,
|
|
175
|
+
byKind,
|
|
176
|
+
byEdgeType: edgesByType,
|
|
177
|
+
avgSymbolsPerFile: totals.fileCount > 0
|
|
178
|
+
? Math.round((totals.symbolCount / totals.fileCount) * 10) / 10
|
|
179
|
+
: 0,
|
|
180
|
+
avgEdgesPerSymbol: totals.symbolCount > 0
|
|
181
|
+
? Math.round((totals.edgeCount / totals.symbolCount) * 10) / 10
|
|
182
|
+
: 0,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Builds directory-level summaries.
|
|
187
|
+
*/
|
|
188
|
+
function buildDirectorySummaries(repoId, maxDirectories, maxExportsPerDirectory, directoryFilter) {
|
|
189
|
+
const dirAggregates = db.getDirectoryAggregates(repoId);
|
|
190
|
+
const exportedSymbols = db.getExportedSymbolsByDirectory(repoId, maxExportsPerDirectory);
|
|
191
|
+
const topByFanIn = db.getTopSymbolsByFanIn(repoId, DEFAULT_MAX_HOTSPOT_SYMBOLS * 2);
|
|
192
|
+
const topByChurn = db.getTopSymbolsByChurn(repoId, DEFAULT_MAX_HOTSPOT_SYMBOLS * 2);
|
|
193
|
+
// Group exported symbols by directory
|
|
194
|
+
const exportsByDir = new Map();
|
|
195
|
+
for (const exp of exportedSymbols) {
|
|
196
|
+
const dir = exp.directory;
|
|
197
|
+
if (!exportsByDir.has(dir)) {
|
|
198
|
+
exportsByDir.set(dir, []);
|
|
199
|
+
}
|
|
200
|
+
exportsByDir.get(dir).push(exp.name);
|
|
201
|
+
}
|
|
202
|
+
// Group top symbols by directory
|
|
203
|
+
const topFanInByDir = new Map();
|
|
204
|
+
for (const sym of topByFanIn) {
|
|
205
|
+
const dir = sym.directory;
|
|
206
|
+
if (!topFanInByDir.has(dir)) {
|
|
207
|
+
topFanInByDir.set(dir, []);
|
|
208
|
+
}
|
|
209
|
+
const refs = topFanInByDir.get(dir);
|
|
210
|
+
if (refs.length < 3) {
|
|
211
|
+
refs.push(toCompactRef(sym));
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
const topChurnByDir = new Map();
|
|
215
|
+
for (const sym of topByChurn) {
|
|
216
|
+
const dir = sym.directory;
|
|
217
|
+
if (!topChurnByDir.has(dir)) {
|
|
218
|
+
topChurnByDir.set(dir, []);
|
|
219
|
+
}
|
|
220
|
+
const refs = topChurnByDir.get(dir);
|
|
221
|
+
if (refs.length < 3) {
|
|
222
|
+
refs.push(toCompactRef(sym));
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// Build summaries
|
|
226
|
+
const summaries = [];
|
|
227
|
+
const allDirectories = new Set();
|
|
228
|
+
for (const agg of dirAggregates) {
|
|
229
|
+
// Apply directory filter if specified
|
|
230
|
+
if (directoryFilter && directoryFilter.length > 0) {
|
|
231
|
+
const matches = directoryFilter.some((pattern) => {
|
|
232
|
+
if (pattern.includes("*")) {
|
|
233
|
+
const regex = new RegExp("^" + pattern.replace(/\*/g, ".*") + "$");
|
|
234
|
+
return regex.test(agg.directory);
|
|
235
|
+
}
|
|
236
|
+
return agg.directory.startsWith(pattern);
|
|
237
|
+
});
|
|
238
|
+
if (!matches)
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
allDirectories.add(agg.directory);
|
|
242
|
+
const summary = {
|
|
243
|
+
path: agg.directory || "(root)",
|
|
244
|
+
fileCount: agg.file_count,
|
|
245
|
+
symbolCount: agg.symbol_count,
|
|
246
|
+
exportedCount: agg.exported_count,
|
|
247
|
+
byKind: {
|
|
248
|
+
function: agg.function_count,
|
|
249
|
+
class: agg.class_count,
|
|
250
|
+
interface: agg.interface_count,
|
|
251
|
+
type: agg.type_count,
|
|
252
|
+
method: agg.method_count,
|
|
253
|
+
variable: agg.variable_count,
|
|
254
|
+
module: agg.module_count,
|
|
255
|
+
constructor: agg.constructor_count,
|
|
256
|
+
},
|
|
257
|
+
exports: exportsByDir.get(agg.directory) ?? [],
|
|
258
|
+
topByFanIn: topFanInByDir.get(agg.directory) ?? [],
|
|
259
|
+
topByChurn: topChurnByDir.get(agg.directory) ?? [],
|
|
260
|
+
estimatedFullTokens: agg.symbol_count * SYMBOL_TOKEN_MAX,
|
|
261
|
+
summaryTokens: 0, // Will be calculated below
|
|
262
|
+
};
|
|
263
|
+
summary.summaryTokens = estimateDirectorySummaryTokens(summary);
|
|
264
|
+
summaries.push(summary);
|
|
265
|
+
if (summaries.length >= maxDirectories)
|
|
266
|
+
break;
|
|
267
|
+
}
|
|
268
|
+
// Add subdirectories info
|
|
269
|
+
for (const summary of summaries) {
|
|
270
|
+
const subdirs = Array.from(allDirectories).filter((d) => {
|
|
271
|
+
if (d === summary.path)
|
|
272
|
+
return false;
|
|
273
|
+
const parent = summary.path === "(root)" ? "" : summary.path;
|
|
274
|
+
if (!d.startsWith(parent))
|
|
275
|
+
return false;
|
|
276
|
+
const remainder = d.slice(parent.length);
|
|
277
|
+
// Only immediate children
|
|
278
|
+
const parts = remainder.split("/").filter(Boolean);
|
|
279
|
+
return parts.length === 1;
|
|
280
|
+
});
|
|
281
|
+
if (subdirs.length > 0) {
|
|
282
|
+
summary.subdirectories = subdirs;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return summaries;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Builds codebase hotspot analysis.
|
|
289
|
+
*/
|
|
290
|
+
function buildCodebaseHotspots(repoId) {
|
|
291
|
+
const topByFanIn = db.getTopSymbolsByFanIn(repoId, DEFAULT_MAX_HOTSPOT_SYMBOLS);
|
|
292
|
+
const topByChurn = db.getTopSymbolsByChurn(repoId, DEFAULT_MAX_HOTSPOT_SYMBOLS);
|
|
293
|
+
const largestFiles = db.getFilesBySymbolCount(repoId, DEFAULT_MAX_HOTSPOT_SYMBOLS);
|
|
294
|
+
const mostConnected = db.getFilesByEdgeCount(repoId, DEFAULT_MAX_HOTSPOT_SYMBOLS);
|
|
295
|
+
return {
|
|
296
|
+
mostDepended: topByFanIn.map(toCompactRef),
|
|
297
|
+
mostChanged: topByChurn.map(toCompactRef),
|
|
298
|
+
largestFiles: largestFiles.map((f) => ({
|
|
299
|
+
file: f.rel_path,
|
|
300
|
+
symbolCount: f.symbol_count,
|
|
301
|
+
})),
|
|
302
|
+
mostConnected: mostConnected.map((f) => ({
|
|
303
|
+
file: f.rel_path,
|
|
304
|
+
edgeCount: f.edge_count,
|
|
305
|
+
})),
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Identifies architectural layers from directory structure.
|
|
310
|
+
*/
|
|
311
|
+
function identifyArchitecturalLayers(directories) {
|
|
312
|
+
const layers = [];
|
|
313
|
+
const layerPatterns = [
|
|
314
|
+
{ pattern: /^src\/?(api|routes|controllers|handlers)\/?/, layer: "API" },
|
|
315
|
+
{ pattern: /^src\/?(services|domain|core)\/?/, layer: "Service" },
|
|
316
|
+
{ pattern: /^src\/?(db|data|models|entities|repositories)\/?/, layer: "Data" },
|
|
317
|
+
{ pattern: /^src\/?(utils?|helpers?|lib|common)\/?/, layer: "Utilities" },
|
|
318
|
+
{ pattern: /^src\/?(cli|commands)\/?/, layer: "CLI" },
|
|
319
|
+
{ pattern: /^src\/?(config|settings)\/?/, layer: "Configuration" },
|
|
320
|
+
{ pattern: /^src\/?(mcp|protocol)\/?/, layer: "Protocol" },
|
|
321
|
+
{ pattern: /^src\/?(indexer|parser|analyzer)\/?/, layer: "Indexer" },
|
|
322
|
+
{ pattern: /^src\/?(graph|slice)\/?/, layer: "Graph" },
|
|
323
|
+
{ pattern: /^tests?\/?/, layer: "Tests" },
|
|
324
|
+
];
|
|
325
|
+
for (const dir of directories) {
|
|
326
|
+
for (const { pattern, layer } of layerPatterns) {
|
|
327
|
+
if (pattern.test(dir.path) && !layers.includes(layer)) {
|
|
328
|
+
layers.push(layer);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
return layers;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Finds entry point files.
|
|
336
|
+
*/
|
|
337
|
+
function findEntryPoints(repoId) {
|
|
338
|
+
const entryPatterns = [
|
|
339
|
+
"main.ts",
|
|
340
|
+
"index.ts",
|
|
341
|
+
"server.ts",
|
|
342
|
+
"app.ts",
|
|
343
|
+
"cli.ts",
|
|
344
|
+
"main.js",
|
|
345
|
+
"index.js",
|
|
346
|
+
"server.js",
|
|
347
|
+
"app.js",
|
|
348
|
+
"cli.js",
|
|
349
|
+
];
|
|
350
|
+
const files = db.getFilesByRepo(repoId);
|
|
351
|
+
const entryPoints = [];
|
|
352
|
+
for (const file of files) {
|
|
353
|
+
const fileName = file.rel_path.split("/").pop() ?? "";
|
|
354
|
+
if (entryPatterns.includes(fileName)) {
|
|
355
|
+
entryPoints.push(file.rel_path);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
return entryPoints;
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Calculates total token count for overview.
|
|
362
|
+
*/
|
|
363
|
+
function calculateOverviewTokens(_stats, directories, hotspots) {
|
|
364
|
+
// Base stats section (stats overhead is fixed)
|
|
365
|
+
let tokens = 50;
|
|
366
|
+
// Directory summaries
|
|
367
|
+
for (const dir of directories) {
|
|
368
|
+
tokens += dir.summaryTokens;
|
|
369
|
+
}
|
|
370
|
+
// Hotspots
|
|
371
|
+
if (hotspots) {
|
|
372
|
+
tokens += hotspots.mostDepended.length * COMPACT_SYMBOL_REF_TOKENS;
|
|
373
|
+
tokens += hotspots.mostChanged.length * COMPACT_SYMBOL_REF_TOKENS;
|
|
374
|
+
tokens += hotspots.largestFiles.length * 5;
|
|
375
|
+
tokens += hotspots.mostConnected.length * 5;
|
|
376
|
+
}
|
|
377
|
+
return tokens;
|
|
378
|
+
}
|
|
379
|
+
//# sourceMappingURL=overview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overview.js","sourceRoot":"","sources":["../../src/graph/overview.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { SymbolRow, MetricsRow, FileRow } from "../db/schema.js";
|
|
2
|
+
export interface SliceContext {
|
|
3
|
+
query: string;
|
|
4
|
+
queryTokens?: string[];
|
|
5
|
+
stackTrace?: string;
|
|
6
|
+
failingTestPath?: string;
|
|
7
|
+
editedFiles?: string[];
|
|
8
|
+
entrySymbols?: string[];
|
|
9
|
+
edgeWeights?: {
|
|
10
|
+
call: number;
|
|
11
|
+
import: number;
|
|
12
|
+
config: number;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export interface ScoreResult {
|
|
16
|
+
symbolId: string;
|
|
17
|
+
score: number;
|
|
18
|
+
factors: Map<string, number>;
|
|
19
|
+
}
|
|
20
|
+
export declare function calculateQueryOverlap(symbol: SymbolRow, query: string, queryTokens?: string[]): number;
|
|
21
|
+
export declare function calculateStacktraceLocality(symbol: SymbolRow, stackTrace: string): number;
|
|
22
|
+
export declare function calculateHotness(metrics: MetricsRow | null): number;
|
|
23
|
+
export declare function scoreSymbol(symbol: SymbolRow, context: SliceContext): number;
|
|
24
|
+
export declare function scoreSymbolWithMetrics(symbol: SymbolRow, context: SliceContext, metrics: MetricsRow | null, file: FileRow | undefined): number;
|
|
25
|
+
export declare function normalizeScores(scores: number[]): number[];
|
|
26
|
+
export declare function combineScores(scores: Map<string, number>, weights: Map<string, number>): number;
|
|
27
|
+
//# sourceMappingURL=score.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../src/graph/score.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAItE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EAAE,GACrB,MAAM,CAgBR;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CA4BR;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,GAAG,MAAM,CAiBnE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,CAoC5E;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,UAAU,GAAG,IAAI,EAC1B,IAAI,EAAE,OAAO,GAAG,SAAS,GACxB,MAAM,CA8BR;AAkID,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAY1D;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,CAWR"}
|