sdl-mcp 0.10.2 → 0.10.4
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/README.md +129 -87
- package/config/sdlmcp.config.example.json +35 -7
- package/config/sdlmcp.config.schema.json +171 -8
- package/dist/.tsbuildinfo +1 -1
- package/dist/agent/context-engine.d.ts +40 -4
- package/dist/agent/context-engine.d.ts.map +1 -1
- package/dist/agent/context-engine.js +343 -174
- package/dist/agent/context-engine.js.map +1 -1
- package/dist/agent/context-ranking.d.ts +42 -0
- package/dist/agent/context-ranking.d.ts.map +1 -0
- package/dist/agent/context-ranking.js +486 -0
- package/dist/agent/context-ranking.js.map +1 -0
- package/dist/agent/context-seeding.d.ts +41 -0
- package/dist/agent/context-seeding.d.ts.map +1 -0
- package/dist/agent/context-seeding.js +302 -0
- package/dist/agent/context-seeding.js.map +1 -0
- package/dist/agent/executor.d.ts +13 -10
- package/dist/agent/executor.d.ts.map +1 -1
- package/dist/agent/executor.js +262 -98
- package/dist/agent/executor.js.map +1 -1
- package/dist/agent/planner.d.ts +14 -4
- package/dist/agent/planner.d.ts.map +1 -1
- package/dist/agent/planner.js +141 -48
- package/dist/agent/planner.js.map +1 -1
- package/dist/agent/types.d.ts +40 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/cli/argParsing.d.ts +1 -1
- package/dist/cli/argParsing.d.ts.map +1 -1
- package/dist/cli/argParsing.js.map +1 -1
- package/dist/cli/commands/benchmark.d.ts +1 -10
- package/dist/cli/commands/benchmark.d.ts.map +1 -1
- package/dist/cli/commands/benchmark.js +2 -2
- package/dist/cli/commands/benchmark.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +65 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/health.js +1 -1
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +191 -17
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +1 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +8 -0
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/tool-actions.d.ts.map +1 -1
- package/dist/cli/commands/tool-actions.js +829 -160
- package/dist/cli/commands/tool-actions.js.map +1 -1
- package/dist/cli/transport/http.d.ts +8 -2
- package/dist/cli/transport/http.d.ts.map +1 -1
- package/dist/cli/transport/http.js +78 -23
- package/dist/cli/transport/http.js.map +1 -1
- package/dist/cli/types.d.ts +2 -1
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/code/hotpath.d.ts +7 -0
- package/dist/code/hotpath.d.ts.map +1 -1
- package/dist/code/hotpath.js +30 -9
- package/dist/code/hotpath.js.map +1 -1
- package/dist/code/skeleton.d.ts.map +1 -1
- package/dist/code/skeleton.js +39 -11
- package/dist/code/skeleton.js.map +1 -1
- package/dist/code-mode/action-catalog.d.ts +4 -0
- package/dist/code-mode/action-catalog.d.ts.map +1 -1
- package/dist/code-mode/action-catalog.js +98 -27
- package/dist/code-mode/action-catalog.js.map +1 -1
- package/dist/code-mode/etag-cache.d.ts +2 -0
- package/dist/code-mode/etag-cache.d.ts.map +1 -1
- package/dist/code-mode/etag-cache.js +55 -0
- package/dist/code-mode/etag-cache.js.map +1 -1
- package/dist/code-mode/index.d.ts.map +1 -1
- package/dist/code-mode/index.js +24 -6
- package/dist/code-mode/index.js.map +1 -1
- package/dist/code-mode/manual-generator.d.ts +8 -0
- package/dist/code-mode/manual-generator.d.ts.map +1 -1
- package/dist/code-mode/manual-generator.js +79 -9
- package/dist/code-mode/manual-generator.js.map +1 -1
- package/dist/code-mode/transforms.d.ts.map +1 -1
- package/dist/code-mode/transforms.js +27 -7
- package/dist/code-mode/transforms.js.map +1 -1
- package/dist/code-mode/workflow-budget.d.ts +14 -0
- package/dist/code-mode/workflow-budget.d.ts.map +1 -1
- package/dist/code-mode/workflow-budget.js +32 -4
- package/dist/code-mode/workflow-budget.js.map +1 -1
- package/dist/code-mode/workflow-executor.d.ts.map +1 -1
- package/dist/code-mode/workflow-executor.js +8 -0
- package/dist/code-mode/workflow-executor.js.map +1 -1
- package/dist/code-mode/workflow-parser.d.ts.map +1 -1
- package/dist/code-mode/workflow-parser.js +8 -6
- package/dist/code-mode/workflow-parser.js.map +1 -1
- package/dist/config/loadConfig.d.ts.map +1 -1
- package/dist/config/loadConfig.js +21 -0
- package/dist/config/loadConfig.js.map +1 -1
- package/dist/config/memory-config.d.ts +26 -0
- package/dist/config/memory-config.d.ts.map +1 -0
- package/dist/config/memory-config.js +74 -0
- package/dist/config/memory-config.js.map +1 -0
- package/dist/config/types.d.ts +123 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +107 -10
- package/dist/config/types.js.map +1 -1
- package/dist/db/ladybug-algorithms.d.ts +98 -0
- package/dist/db/ladybug-algorithms.d.ts.map +1 -0
- package/dist/db/ladybug-algorithms.js +283 -0
- package/dist/db/ladybug-algorithms.js.map +1 -0
- package/dist/db/ladybug-clusters.d.ts +6 -0
- package/dist/db/ladybug-clusters.d.ts.map +1 -1
- package/dist/db/ladybug-clusters.js +24 -11
- package/dist/db/ladybug-clusters.js.map +1 -1
- package/dist/db/ladybug-edges.d.ts +15 -0
- package/dist/db/ladybug-edges.d.ts.map +1 -1
- package/dist/db/ladybug-edges.js +55 -2
- package/dist/db/ladybug-edges.js.map +1 -1
- package/dist/db/ladybug-feedback.d.ts.map +1 -1
- package/dist/db/ladybug-feedback.js +10 -2
- package/dist/db/ladybug-feedback.js.map +1 -1
- package/dist/db/ladybug-memory.d.ts +1 -0
- package/dist/db/ladybug-memory.d.ts.map +1 -1
- package/dist/db/ladybug-memory.js +7 -3
- package/dist/db/ladybug-memory.js.map +1 -1
- package/dist/db/ladybug-metrics.d.ts +12 -0
- package/dist/db/ladybug-metrics.d.ts.map +1 -1
- package/dist/db/ladybug-metrics.js +43 -0
- package/dist/db/ladybug-metrics.js.map +1 -1
- package/dist/db/ladybug-processes.d.ts +8 -0
- package/dist/db/ladybug-processes.d.ts.map +1 -1
- package/dist/db/ladybug-processes.js +35 -0
- package/dist/db/ladybug-processes.js.map +1 -1
- package/dist/db/ladybug-queries.d.ts +4 -0
- package/dist/db/ladybug-queries.d.ts.map +1 -1
- package/dist/db/ladybug-queries.js +7 -0
- package/dist/db/ladybug-queries.js.map +1 -1
- package/dist/db/ladybug-repos.d.ts +4 -0
- package/dist/db/ladybug-repos.d.ts.map +1 -1
- package/dist/db/ladybug-repos.js +3 -0
- package/dist/db/ladybug-repos.js.map +1 -1
- package/dist/db/ladybug-schema.d.ts +8 -1
- package/dist/db/ladybug-schema.d.ts.map +1 -1
- package/dist/db/ladybug-schema.js +103 -4
- package/dist/db/ladybug-schema.js.map +1 -1
- package/dist/db/ladybug-scip.d.ts +165 -0
- package/dist/db/ladybug-scip.d.ts.map +1 -0
- package/dist/db/ladybug-scip.js +451 -0
- package/dist/db/ladybug-scip.js.map +1 -0
- package/dist/db/ladybug-shadow-clusters.d.ts +62 -0
- package/dist/db/ladybug-shadow-clusters.d.ts.map +1 -0
- package/dist/db/ladybug-shadow-clusters.js +137 -0
- package/dist/db/ladybug-shadow-clusters.js.map +1 -0
- package/dist/db/ladybug-symbol-embeddings.d.ts +1 -1
- package/dist/db/ladybug-symbol-embeddings.d.ts.map +1 -1
- package/dist/db/ladybug-symbol-embeddings.js +12 -6
- package/dist/db/ladybug-symbol-embeddings.js.map +1 -1
- package/dist/db/ladybug-symbols.d.ts +18 -2
- package/dist/db/ladybug-symbols.d.ts.map +1 -1
- package/dist/db/ladybug-symbols.js +166 -34
- package/dist/db/ladybug-symbols.js.map +1 -1
- package/dist/db/ladybug.d.ts +6 -0
- package/dist/db/ladybug.d.ts.map +1 -1
- package/dist/db/ladybug.js +84 -5
- package/dist/db/ladybug.js.map +1 -1
- package/dist/db/migrations/index.d.ts.map +1 -1
- package/dist/db/migrations/index.js +15 -1
- package/dist/db/migrations/index.js.map +1 -1
- package/dist/db/migrations/m010-add-jina-code-embedding.d.ts +5 -0
- package/dist/db/migrations/m010-add-jina-code-embedding.d.ts.map +1 -0
- package/dist/db/migrations/m010-add-jina-code-embedding.js +30 -0
- package/dist/db/migrations/m010-add-jina-code-embedding.js.map +1 -0
- package/dist/db/migrations/m011-add-centrality-and-shadow-clusters.d.ts +5 -0
- package/dist/db/migrations/m011-add-centrality-and-shadow-clusters.d.ts.map +1 -0
- package/dist/db/migrations/m011-add-centrality-and-shadow-clusters.js +65 -0
- package/dist/db/migrations/m011-add-centrality-and-shadow-clusters.js.map +1 -0
- package/dist/db/migrations/m012-add-symbol-repo-id-for-algo-projections.d.ts +5 -0
- package/dist/db/migrations/m012-add-symbol-repo-id-for-algo-projections.d.ts.map +1 -0
- package/dist/db/migrations/m012-add-symbol-repo-id-for-algo-projections.js +45 -0
- package/dist/db/migrations/m012-add-symbol-repo-id-for-algo-projections.js.map +1 -0
- package/dist/db/migrations/m013-semantic-vector-array-storage.d.ts +20 -0
- package/dist/db/migrations/m013-semantic-vector-array-storage.d.ts.map +1 -0
- package/dist/db/migrations/m013-semantic-vector-array-storage.js +68 -0
- package/dist/db/migrations/m013-semantic-vector-array-storage.js.map +1 -0
- package/dist/db/schema.d.ts +8 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/delta/blastRadius.d.ts +33 -0
- package/dist/delta/blastRadius.d.ts.map +1 -1
- package/dist/delta/blastRadius.js +94 -0
- package/dist/delta/blastRadius.js.map +1 -1
- package/dist/domain/errors.d.ts +16 -0
- package/dist/domain/errors.d.ts.map +1 -1
- package/dist/domain/errors.js +28 -0
- package/dist/domain/errors.js.map +1 -1
- package/dist/domain/repositories/symbol-repository.d.ts +13 -0
- package/dist/domain/repositories/symbol-repository.d.ts.map +1 -1
- package/dist/domain/repositories/symbol-repository.js.map +1 -1
- package/dist/domain/types.d.ts +20 -1
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/domain/types.js +13 -2
- package/dist/domain/types.js.map +1 -1
- package/dist/gateway/descriptions.d.ts +9 -0
- package/dist/gateway/descriptions.d.ts.map +1 -1
- package/dist/gateway/descriptions.js +20 -3
- package/dist/gateway/descriptions.js.map +1 -1
- package/dist/gateway/index.js +2 -2
- package/dist/gateway/index.js.map +1 -1
- package/dist/gateway/router.d.ts +0 -8
- package/dist/gateway/router.d.ts.map +1 -1
- package/dist/gateway/router.js +32 -3
- package/dist/gateway/router.js.map +1 -1
- package/dist/gateway/schemas.d.ts +13 -4
- package/dist/gateway/schemas.d.ts.map +1 -1
- package/dist/gateway/schemas.js +20 -0
- package/dist/gateway/schemas.js.map +1 -1
- package/dist/gateway/thin-schemas.d.ts.map +1 -1
- package/dist/gateway/thin-schemas.js +3 -1
- package/dist/gateway/thin-schemas.js.map +1 -1
- package/dist/graph/buildGraph.d.ts +9 -0
- package/dist/graph/buildGraph.d.ts.map +1 -1
- package/dist/graph/buildGraph.js +9 -30
- package/dist/graph/buildGraph.js.map +1 -1
- package/dist/graph/cluster.d.ts.map +1 -1
- package/dist/graph/cluster.js +13 -0
- package/dist/graph/cluster.js.map +1 -1
- package/dist/graph/graphSnapshotCache.d.ts.map +1 -1
- package/dist/graph/graphSnapshotCache.js +13 -0
- package/dist/graph/graphSnapshotCache.js.map +1 -1
- package/dist/graph/metrics.d.ts +20 -6
- package/dist/graph/metrics.d.ts.map +1 -1
- package/dist/graph/metrics.js +107 -39
- package/dist/graph/metrics.js.map +1 -1
- package/dist/graph/overview.d.ts.map +1 -1
- package/dist/graph/overview.js +109 -11
- package/dist/graph/overview.js.map +1 -1
- package/dist/graph/prefetch.d.ts.map +1 -1
- package/dist/graph/prefetch.js +7 -3
- package/dist/graph/prefetch.js.map +1 -1
- package/dist/graph/score.d.ts +76 -0
- package/dist/graph/score.d.ts.map +1 -1
- package/dist/graph/score.js +98 -0
- package/dist/graph/score.js.map +1 -1
- package/dist/graph/slice/beam-score-worker.d.ts +2 -1
- package/dist/graph/slice/beam-score-worker.d.ts.map +1 -1
- package/dist/graph/slice/beam-score-worker.js +3 -149
- package/dist/graph/slice/beam-score-worker.js.map +1 -1
- package/dist/graph/slice/beam-search-engine.d.ts +2 -2
- package/dist/graph/slice/beam-search-engine.d.ts.map +1 -1
- package/dist/graph/slice/beam-search-engine.js +57 -14
- package/dist/graph/slice/beam-search-engine.js.map +1 -1
- package/dist/graph/slice/result.d.ts +3 -0
- package/dist/graph/slice/result.d.ts.map +1 -1
- package/dist/graph/slice/result.js +4 -0
- package/dist/graph/slice/result.js.map +1 -1
- package/dist/graph/slice.d.ts.map +1 -1
- package/dist/graph/slice.js +1 -0
- package/dist/graph/slice.js.map +1 -1
- package/dist/indexer/cluster-orchestrator.d.ts +4 -0
- package/dist/indexer/cluster-orchestrator.d.ts.map +1 -1
- package/dist/indexer/cluster-orchestrator.js +380 -87
- package/dist/indexer/cluster-orchestrator.js.map +1 -1
- package/dist/indexer/edge-builder/cleanup.js +19 -16
- package/dist/indexer/edge-builder/cleanup.js.map +1 -1
- package/dist/indexer/edge-builder/telemetry.d.ts +44 -0
- package/dist/indexer/edge-builder/telemetry.d.ts.map +1 -1
- package/dist/indexer/edge-builder/telemetry.js +130 -0
- package/dist/indexer/edge-builder/telemetry.js.map +1 -1
- package/dist/indexer/edge-builder/unresolved-imports.d.ts +8 -2
- package/dist/indexer/edge-builder/unresolved-imports.d.ts.map +1 -1
- package/dist/indexer/edge-builder/unresolved-imports.js +100 -55
- package/dist/indexer/edge-builder/unresolved-imports.js.map +1 -1
- package/dist/indexer/embeddings.d.ts.map +1 -1
- package/dist/indexer/embeddings.js +16 -4
- package/dist/indexer/embeddings.js.map +1 -1
- package/dist/indexer/indexer-init.d.ts +19 -1
- package/dist/indexer/indexer-init.d.ts.map +1 -1
- package/dist/indexer/indexer-init.js +10 -15
- package/dist/indexer/indexer-init.js.map +1 -1
- package/dist/indexer/indexer-memory.d.ts.map +1 -1
- package/dist/indexer/indexer-memory.js +8 -0
- package/dist/indexer/indexer-memory.js.map +1 -1
- package/dist/indexer/indexer-pass1.d.ts.map +1 -1
- package/dist/indexer/indexer-pass1.js +27 -0
- package/dist/indexer/indexer-pass1.js.map +1 -1
- package/dist/indexer/indexer-pass2.d.ts +3 -0
- package/dist/indexer/indexer-pass2.d.ts.map +1 -1
- package/dist/indexer/indexer-pass2.js +7 -5
- package/dist/indexer/indexer-pass2.js.map +1 -1
- package/dist/indexer/indexer.d.ts +42 -1
- package/dist/indexer/indexer.d.ts.map +1 -1
- package/dist/indexer/indexer.js +291 -78
- package/dist/indexer/indexer.js.map +1 -1
- package/dist/indexer/metrics-updater.d.ts +7 -2
- package/dist/indexer/metrics-updater.d.ts.map +1 -1
- package/dist/indexer/metrics-updater.js +81 -33
- package/dist/indexer/metrics-updater.js.map +1 -1
- package/dist/indexer/model-downloader.d.ts.map +1 -1
- package/dist/indexer/model-downloader.js +40 -6
- package/dist/indexer/model-downloader.js.map +1 -1
- package/dist/indexer/model-registry.d.ts +16 -0
- package/dist/indexer/model-registry.d.ts.map +1 -1
- package/dist/indexer/model-registry.js +42 -4
- package/dist/indexer/model-registry.js.map +1 -1
- package/dist/indexer/parser/early-exit.d.ts.map +1 -1
- package/dist/indexer/parser/early-exit.js +24 -3
- package/dist/indexer/parser/early-exit.js.map +1 -1
- package/dist/indexer/parser/helpers.d.ts +3 -8
- package/dist/indexer/parser/helpers.d.ts.map +1 -1
- package/dist/indexer/parser/helpers.js +2 -1
- package/dist/indexer/parser/helpers.js.map +1 -1
- package/dist/indexer/parser/parse-and-extract.d.ts.map +1 -1
- package/dist/indexer/parser/parse-and-extract.js +8 -1
- package/dist/indexer/parser/parse-and-extract.js.map +1 -1
- package/dist/indexer/parser/process-file.d.ts.map +1 -1
- package/dist/indexer/parser/process-file.js +12 -0
- package/dist/indexer/parser/process-file.js.map +1 -1
- package/dist/indexer/parser/rust-process-file.d.ts +2 -8
- package/dist/indexer/parser/rust-process-file.d.ts.map +1 -1
- package/dist/indexer/parser/rust-process-file.js +47 -1
- package/dist/indexer/parser/rust-process-file.js.map +1 -1
- package/dist/indexer/parser/types.d.ts +2 -0
- package/dist/indexer/parser/types.d.ts.map +1 -1
- package/dist/indexer/pass2/barrel-walker.d.ts +77 -0
- package/dist/indexer/pass2/barrel-walker.d.ts.map +1 -0
- package/dist/indexer/pass2/barrel-walker.js +112 -0
- package/dist/indexer/pass2/barrel-walker.js.map +1 -0
- package/dist/indexer/pass2/confidence.d.ts +74 -0
- package/dist/indexer/pass2/confidence.d.ts.map +1 -0
- package/dist/indexer/pass2/confidence.js +173 -0
- package/dist/indexer/pass2/confidence.js.map +1 -0
- package/dist/indexer/pass2/resolvers/c-pass2-resolver.d.ts.map +1 -1
- package/dist/indexer/pass2/resolvers/c-pass2-resolver.js +13 -6
- package/dist/indexer/pass2/resolvers/c-pass2-resolver.js.map +1 -1
- package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.d.ts.map +1 -1
- package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.js +22 -12
- package/dist/indexer/pass2/resolvers/cpp-pass2-resolver.js.map +1 -1
- package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.d.ts.map +1 -1
- package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.js +31 -13
- package/dist/indexer/pass2/resolvers/csharp-pass2-resolver.js.map +1 -1
- package/dist/indexer/pass2/resolvers/go-pass2-resolver.d.ts.map +1 -1
- package/dist/indexer/pass2/resolvers/go-pass2-resolver.js +23 -9
- package/dist/indexer/pass2/resolvers/go-pass2-resolver.js.map +1 -1
- package/dist/indexer/pass2/resolvers/java-pass2-resolver.d.ts +64 -0
- package/dist/indexer/pass2/resolvers/java-pass2-resolver.d.ts.map +1 -1
- package/dist/indexer/pass2/resolvers/java-pass2-resolver.js +276 -28
- package/dist/indexer/pass2/resolvers/java-pass2-resolver.js.map +1 -1
- package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.d.ts.map +1 -1
- package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.js +27 -9
- package/dist/indexer/pass2/resolvers/kotlin-pass2-resolver.js.map +1 -1
- package/dist/indexer/pass2/resolvers/php-pass2-resolver.d.ts.map +1 -1
- package/dist/indexer/pass2/resolvers/php-pass2-resolver.js +33 -15
- package/dist/indexer/pass2/resolvers/php-pass2-resolver.js.map +1 -1
- package/dist/indexer/pass2/resolvers/python-pass2-helpers.d.ts +67 -0
- package/dist/indexer/pass2/resolvers/python-pass2-helpers.d.ts.map +1 -0
- package/dist/indexer/pass2/resolvers/python-pass2-helpers.js +180 -0
- package/dist/indexer/pass2/resolvers/python-pass2-helpers.js.map +1 -0
- package/dist/indexer/pass2/resolvers/python-pass2-resolver.d.ts.map +1 -1
- package/dist/indexer/pass2/resolvers/python-pass2-resolver.js +256 -8
- package/dist/indexer/pass2/resolvers/python-pass2-resolver.js.map +1 -1
- package/dist/indexer/pass2/resolvers/rust-pass2-resolver.d.ts +93 -1
- package/dist/indexer/pass2/resolvers/rust-pass2-resolver.d.ts.map +1 -1
- package/dist/indexer/pass2/resolvers/rust-pass2-resolver.js +470 -15
- package/dist/indexer/pass2/resolvers/rust-pass2-resolver.js.map +1 -1
- package/dist/indexer/pass2/resolvers/shell-pass2-helpers.d.ts +32 -0
- package/dist/indexer/pass2/resolvers/shell-pass2-helpers.d.ts.map +1 -0
- package/dist/indexer/pass2/resolvers/shell-pass2-helpers.js +71 -0
- package/dist/indexer/pass2/resolvers/shell-pass2-helpers.js.map +1 -0
- package/dist/indexer/pass2/resolvers/shell-pass2-resolver.d.ts.map +1 -1
- package/dist/indexer/pass2/resolvers/shell-pass2-resolver.js +19 -5
- package/dist/indexer/pass2/resolvers/shell-pass2-resolver.js.map +1 -1
- package/dist/indexer/pass2/scope-walker.d.ts +70 -0
- package/dist/indexer/pass2/scope-walker.d.ts.map +1 -0
- package/dist/indexer/pass2/scope-walker.js +130 -0
- package/dist/indexer/pass2/scope-walker.js.map +1 -0
- package/dist/indexer/rustIndexer.d.ts.map +1 -1
- package/dist/indexer/rustIndexer.js +23 -4
- package/dist/indexer/rustIndexer.js.map +1 -1
- package/dist/indexer/scanner.d.ts +1 -0
- package/dist/indexer/scanner.d.ts.map +1 -1
- package/dist/indexer/scanner.js +17 -8
- package/dist/indexer/scanner.js.map +1 -1
- package/dist/indexer/summaries.d.ts.map +1 -1
- package/dist/indexer/summaries.js +614 -99
- package/dist/indexer/summaries.js.map +1 -1
- package/dist/indexer/symbol-map-cache.d.ts +29 -0
- package/dist/indexer/symbol-map-cache.d.ts.map +1 -0
- package/dist/indexer/symbol-map-cache.js +152 -0
- package/dist/indexer/symbol-map-cache.js.map +1 -0
- package/dist/indexer/ts/tsParser.d.ts +6 -3
- package/dist/indexer/ts/tsParser.d.ts.map +1 -1
- package/dist/indexer/ts/tsParser.js +149 -27
- package/dist/indexer/ts/tsParser.js.map +1 -1
- package/dist/indexer/watcher.d.ts.map +1 -1
- package/dist/indexer/watcher.js +12 -1
- package/dist/indexer/watcher.js.map +1 -1
- package/dist/live-index/checkpoint-service.d.ts +15 -0
- package/dist/live-index/checkpoint-service.d.ts.map +1 -1
- package/dist/live-index/checkpoint-service.js +74 -0
- package/dist/live-index/checkpoint-service.js.map +1 -1
- package/dist/live-index/coordinator.d.ts.map +1 -1
- package/dist/live-index/coordinator.js +29 -1
- package/dist/live-index/coordinator.js.map +1 -1
- package/dist/live-index/file-patcher.d.ts +3 -0
- package/dist/live-index/file-patcher.d.ts.map +1 -1
- package/dist/live-index/file-patcher.js +86 -15
- package/dist/live-index/file-patcher.js.map +1 -1
- package/dist/live-index/overlay-reader.d.ts +1 -1
- package/dist/live-index/overlay-reader.d.ts.map +1 -1
- package/dist/live-index/overlay-reader.js +2 -2
- package/dist/live-index/overlay-reader.js.map +1 -1
- package/dist/live-index/symbol-diff.d.ts +74 -0
- package/dist/live-index/symbol-diff.d.ts.map +1 -0
- package/dist/live-index/symbol-diff.js +190 -0
- package/dist/live-index/symbol-diff.js.map +1 -0
- package/dist/mcp/context-response-projection.d.ts +18 -0
- package/dist/mcp/context-response-projection.d.ts.map +1 -0
- package/dist/mcp/context-response-projection.js +56 -0
- package/dist/mcp/context-response-projection.js.map +1 -0
- package/dist/mcp/hooks/memory-hint.d.ts.map +1 -1
- package/dist/mcp/hooks/memory-hint.js +16 -4
- package/dist/mcp/hooks/memory-hint.js.map +1 -1
- package/dist/mcp/savings-meter.d.ts +7 -0
- package/dist/mcp/savings-meter.d.ts.map +1 -1
- package/dist/mcp/savings-meter.js +34 -7
- package/dist/mcp/savings-meter.js.map +1 -1
- package/dist/mcp/telemetry.d.ts +16 -0
- package/dist/mcp/telemetry.d.ts.map +1 -1
- package/dist/mcp/telemetry.js.map +1 -1
- package/dist/mcp/token-usage.d.ts.map +1 -1
- package/dist/mcp/token-usage.js +25 -5
- package/dist/mcp/token-usage.js.map +1 -1
- package/dist/mcp/tool-call-formatter.d.ts.map +1 -1
- package/dist/mcp/tool-call-formatter.js +13 -1
- package/dist/mcp/tool-call-formatter.js.map +1 -1
- package/dist/mcp/tools/agent-feedback.d.ts.map +1 -1
- package/dist/mcp/tools/agent-feedback.js +1 -2
- package/dist/mcp/tools/agent-feedback.js.map +1 -1
- package/dist/mcp/tools/buffer.d.ts.map +1 -1
- package/dist/mcp/tools/buffer.js +5 -1
- package/dist/mcp/tools/buffer.js.map +1 -1
- package/dist/mcp/tools/code.d.ts.map +1 -1
- package/dist/mcp/tools/code.js +27 -6
- package/dist/mcp/tools/code.js.map +1 -1
- package/dist/mcp/tools/context.d.ts.map +1 -1
- package/dist/mcp/tools/context.js +78 -1
- package/dist/mcp/tools/context.js.map +1 -1
- package/dist/mcp/tools/delta.d.ts.map +1 -1
- package/dist/mcp/tools/delta.js +76 -6
- package/dist/mcp/tools/delta.js.map +1 -1
- package/dist/mcp/tools/file-read.d.ts.map +1 -1
- package/dist/mcp/tools/file-read.js +44 -10
- package/dist/mcp/tools/file-read.js.map +1 -1
- package/dist/mcp/tools/info.d.ts +4 -2
- package/dist/mcp/tools/info.d.ts.map +1 -1
- package/dist/mcp/tools/info.js +30 -3
- package/dist/mcp/tools/info.js.map +1 -1
- package/dist/mcp/tools/memory.d.ts.map +1 -1
- package/dist/mcp/tools/memory.js +85 -51
- package/dist/mcp/tools/memory.js.map +1 -1
- package/dist/mcp/tools/policy.d.ts.map +1 -1
- package/dist/mcp/tools/policy.js +19 -15
- package/dist/mcp/tools/policy.js.map +1 -1
- package/dist/mcp/tools/prRisk.d.ts.map +1 -1
- package/dist/mcp/tools/prRisk.js +184 -26
- package/dist/mcp/tools/prRisk.js.map +1 -1
- package/dist/mcp/tools/repo.d.ts.map +1 -1
- package/dist/mcp/tools/repo.js +128 -36
- package/dist/mcp/tools/repo.js.map +1 -1
- package/dist/mcp/tools/runtime.d.ts.map +1 -1
- package/dist/mcp/tools/runtime.js +50 -12
- package/dist/mcp/tools/runtime.js.map +1 -1
- package/dist/mcp/tools/scip.d.ts +10 -0
- package/dist/mcp/tools/scip.d.ts.map +1 -0
- package/dist/mcp/tools/scip.js +46 -0
- package/dist/mcp/tools/scip.js.map +1 -0
- package/dist/mcp/tools/slice-wire-format.d.ts +7 -5
- package/dist/mcp/tools/slice-wire-format.d.ts.map +1 -1
- package/dist/mcp/tools/slice-wire-format.js +14 -6
- package/dist/mcp/tools/slice-wire-format.js.map +1 -1
- package/dist/mcp/tools/slice.d.ts.map +1 -1
- package/dist/mcp/tools/slice.js +44 -10
- package/dist/mcp/tools/slice.js.map +1 -1
- package/dist/mcp/tools/summary.d.ts.map +1 -1
- package/dist/mcp/tools/summary.js +5 -2
- package/dist/mcp/tools/summary.js.map +1 -1
- package/dist/mcp/tools/symbol.d.ts +7 -21
- package/dist/mcp/tools/symbol.d.ts.map +1 -1
- package/dist/mcp/tools/symbol.js +160 -162
- package/dist/mcp/tools/symbol.js.map +1 -1
- package/dist/mcp/tools/tool-descriptors.d.ts.map +1 -1
- package/dist/mcp/tools/tool-descriptors.js +17 -3
- package/dist/mcp/tools/tool-descriptors.js.map +1 -1
- package/dist/mcp/tools.d.ts +152 -43
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +165 -19
- package/dist/mcp/tools.js.map +1 -1
- package/dist/memory/surface.d.ts +7 -0
- package/dist/memory/surface.d.ts.map +1 -1
- package/dist/memory/surface.js +43 -1
- package/dist/memory/surface.js.map +1 -1
- package/dist/retrieval/fallback.d.ts.map +1 -1
- package/dist/retrieval/fallback.js +35 -1
- package/dist/retrieval/fallback.js.map +1 -1
- package/dist/retrieval/feedback-boost.d.ts +3 -1
- package/dist/retrieval/feedback-boost.d.ts.map +1 -1
- package/dist/retrieval/feedback-boost.js +4 -2
- package/dist/retrieval/feedback-boost.js.map +1 -1
- package/dist/retrieval/index-lifecycle.d.ts +5 -15
- package/dist/retrieval/index-lifecycle.d.ts.map +1 -1
- package/dist/retrieval/index-lifecycle.js +45 -21
- package/dist/retrieval/index-lifecycle.js.map +1 -1
- package/dist/retrieval/model-mapping.d.ts +4 -1
- package/dist/retrieval/model-mapping.d.ts.map +1 -1
- package/dist/retrieval/model-mapping.js +7 -2
- package/dist/retrieval/model-mapping.js.map +1 -1
- package/dist/retrieval/orchestrator.d.ts.map +1 -1
- package/dist/retrieval/orchestrator.js +86 -28
- package/dist/retrieval/orchestrator.js.map +1 -1
- package/dist/retrieval/types.d.ts +11 -1
- package/dist/retrieval/types.d.ts.map +1 -1
- package/dist/runtime/executor.d.ts.map +1 -1
- package/dist/runtime/executor.js +96 -110
- package/dist/runtime/executor.js.map +1 -1
- package/dist/runtime/runtimes.d.ts +13 -0
- package/dist/runtime/runtimes.d.ts.map +1 -1
- package/dist/runtime/runtimes.js +73 -18
- package/dist/runtime/runtimes.js.map +1 -1
- package/dist/scip/decoder-factory.d.ts +16 -0
- package/dist/scip/decoder-factory.d.ts.map +1 -0
- package/dist/scip/decoder-factory.js +38 -0
- package/dist/scip/decoder-factory.js.map +1 -0
- package/dist/scip/decoder-rust.d.ts +29 -0
- package/dist/scip/decoder-rust.d.ts.map +1 -0
- package/dist/scip/decoder-rust.js +189 -0
- package/dist/scip/decoder-rust.js.map +1 -0
- package/dist/scip/decoder-ts.d.ts +27 -0
- package/dist/scip/decoder-ts.d.ts.map +1 -0
- package/dist/scip/decoder-ts.js +184 -0
- package/dist/scip/decoder-ts.js.map +1 -0
- package/dist/scip/edge-builder.d.ts +84 -0
- package/dist/scip/edge-builder.d.ts.map +1 -0
- package/dist/scip/edge-builder.js +177 -0
- package/dist/scip/edge-builder.js.map +1 -0
- package/dist/scip/external-symbols.d.ts +38 -0
- package/dist/scip/external-symbols.d.ts.map +1 -0
- package/dist/scip/external-symbols.js +105 -0
- package/dist/scip/external-symbols.js.map +1 -0
- package/dist/scip/ingestion.d.ts +63 -0
- package/dist/scip/ingestion.d.ts.map +1 -0
- package/dist/scip/ingestion.js +560 -0
- package/dist/scip/ingestion.js.map +1 -0
- package/dist/scip/kind-mapping.d.ts +119 -0
- package/dist/scip/kind-mapping.d.ts.map +1 -0
- package/dist/scip/kind-mapping.js +405 -0
- package/dist/scip/kind-mapping.js.map +1 -0
- package/dist/scip/proto/scip_pb.d.ts +420 -0
- package/dist/scip/proto/scip_pb.d.ts.map +1 -0
- package/dist/scip/proto/scip_pb.js +779 -0
- package/dist/scip/proto/scip_pb.js.map +1 -0
- package/dist/scip/scip-io-runner.d.ts +152 -0
- package/dist/scip/scip-io-runner.d.ts.map +1 -0
- package/dist/scip/scip-io-runner.js +870 -0
- package/dist/scip/scip-io-runner.js.map +1 -0
- package/dist/scip/symbol-matcher.d.ts +65 -0
- package/dist/scip/symbol-matcher.d.ts.map +1 -0
- package/dist/scip/symbol-matcher.js +198 -0
- package/dist/scip/symbol-matcher.js.map +1 -0
- package/dist/scip/types.d.ts +115 -0
- package/dist/scip/types.d.ts.map +1 -0
- package/dist/scip/types.js +2 -0
- package/dist/scip/types.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +40 -14
- package/dist/server.js.map +1 -1
- package/dist/services/card-builder.d.ts +7 -0
- package/dist/services/card-builder.d.ts.map +1 -1
- package/dist/services/card-builder.js +54 -7
- package/dist/services/card-builder.js.map +1 -1
- package/dist/services/health.d.ts +1 -1
- package/dist/services/health.d.ts.map +1 -1
- package/dist/services/health.js +1 -1
- package/dist/services/health.js.map +1 -1
- package/dist/services/summary.d.ts.map +1 -1
- package/dist/services/summary.js +71 -13
- package/dist/services/summary.js.map +1 -1
- package/dist/ts/mapping.d.ts +2 -13
- package/dist/ts/mapping.d.ts.map +1 -1
- package/dist/ts/mapping.js.map +1 -1
- package/dist/ui/graph.d.ts +2 -0
- package/dist/ui/graph.d.ts.map +1 -0
- package/dist/ui/graph.js +227 -0
- package/dist/ui/graph.js.map +1 -0
- package/dist/util/conditional-response.d.ts +16 -0
- package/dist/util/conditional-response.d.ts.map +1 -0
- package/dist/util/conditional-response.js +20 -0
- package/dist/util/conditional-response.js.map +1 -0
- package/dist/util/hashing.d.ts +2 -0
- package/dist/util/hashing.d.ts.map +1 -1
- package/dist/util/hashing.js +8 -4
- package/dist/util/hashing.js.map +1 -1
- package/dist/util/resolve-symbol-ref.d.ts +1 -0
- package/dist/util/resolve-symbol-ref.d.ts.map +1 -1
- package/dist/util/resolve-symbol-ref.js +15 -2
- package/dist/util/resolve-symbol-ref.js.map +1 -1
- package/dist/util/symbol-relevance.d.ts +30 -0
- package/dist/util/symbol-relevance.d.ts.map +1 -0
- package/dist/util/symbol-relevance.js +131 -0
- package/dist/util/symbol-relevance.js.map +1 -0
- package/dist/util/type-name.d.ts +12 -0
- package/dist/util/type-name.d.ts.map +1 -0
- package/dist/util/type-name.js +37 -0
- package/dist/util/type-name.js.map +1 -0
- package/package.json +8 -5
- package/dist/agent/index.d.ts +0 -9
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/agent/index.js +0 -8
- package/dist/agent/index.js.map +0 -1
- package/dist/indexer/pass2/context.d.ts +0 -3
- package/dist/indexer/pass2/context.d.ts.map +0 -1
- package/dist/indexer/pass2/context.js +0 -4
- package/dist/indexer/pass2/context.js.map +0 -1
- package/dist/indexer/treesitter/types.d.ts +0 -19
- package/dist/indexer/treesitter/types.d.ts.map +0 -1
- package/dist/indexer/treesitter/types.js +0 -7
- package/dist/indexer/treesitter/types.js.map +0 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
### **Cards-first code context for AI coding agents**
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
_Stop feeding entire files into the context window.<br/>Start giving agents exactly the code intelligence they need._
|
|
11
11
|
|
|
12
12
|
<br/>
|
|
13
13
|
|
|
@@ -19,10 +19,6 @@
|
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
22
|
<br/>
|
|
27
23
|
|
|
28
24
|
## What's the problem?
|
|
@@ -46,7 +42,7 @@ flowchart TD
|
|
|
46
42
|
Codebase["Your Codebase"]
|
|
47
43
|
Indexer["Indexer<br/>12 languages<br/>Rust native or Tree-sitter fallback"]
|
|
48
44
|
Graph["LadybugDB graph<br/>symbols, edges, metrics, versions"]
|
|
49
|
-
MCP["
|
|
45
|
+
MCP["38 unique MCP tool surfaces<br/>flat, gateway, and code-mode"]
|
|
50
46
|
CLI["13 CLI commands"]
|
|
51
47
|
HTTP["HTTP API and graph UI"]
|
|
52
48
|
Agent["AI coding agent<br/>Claude Code, Claude Desktop, Cursor, Windsurf, Codex, Gemini"]
|
|
@@ -109,13 +105,14 @@ flowchart TB
|
|
|
109
105
|
|
|
110
106
|
> **Most questions are answered at Rungs 1-2** without ever reading raw code. That's where the token savings come from.
|
|
111
107
|
|
|
112
|
-
| Scenario
|
|
113
|
-
|
|
114
|
-
| "What does `parseConfig` accept?"
|
|
115
|
-
| "Show me the shape of `AuthService`" |
|
|
116
|
-
| "Where is `this.cache` set?"
|
|
108
|
+
| Scenario | Reading the file | Using the Ladder | Savings |
|
|
109
|
+
| :----------------------------------- | :--------------: | :--------------: | :-----: |
|
|
110
|
+
| "What does `parseConfig` accept?" | ~2,000 tok | ~100 tok | **20x** |
|
|
111
|
+
| "Show me the shape of `AuthService`" | ~4,000 tok | ~300 tok | **13x** |
|
|
112
|
+
| "Where is `this.cache` set?" | ~2,000 tok | ~500 tok | **4x** |
|
|
117
113
|
|
|
118
114
|
**Why it matters:**
|
|
115
|
+
|
|
119
116
|
- **4–20x token savings** on typical code understanding queries
|
|
120
117
|
- Most questions answered at Rungs 1–2 without ever reading raw code
|
|
121
118
|
- Controlled escalation prevents agents from over-consuming context
|
|
@@ -133,7 +130,7 @@ flowchart TB
|
|
|
133
130
|
|
|
134
131
|
### Symbol Cards — The Atoms of Understanding
|
|
135
132
|
|
|
136
|
-
Every function, class, interface, type, and variable becomes a **Symbol Card**: a compact metadata record (~100 tokens) containing everything an agent needs to
|
|
133
|
+
Every function, class, interface, type, and variable becomes a **Symbol Card**: a compact metadata record (~100 tokens) containing everything an agent needs to _understand_ a symbol without reading its code.
|
|
137
134
|
|
|
138
135
|
```mermaid
|
|
139
136
|
flowchart TB
|
|
@@ -155,10 +152,12 @@ flowchart TB
|
|
|
155
152
|
Cards include **confidence-scored call resolution** (the pass-2 resolver traces imports, aliases, barrel re-exports, and tagged templates to produce accurate dependency edges), **community detection** (cluster membership), and **call-chain tracing** (process participation with entry/intermediate/exit roles).
|
|
156
153
|
|
|
157
154
|
**Why it matters:**
|
|
155
|
+
|
|
158
156
|
- **~100 tokens per symbol** vs. ~2,000 tokens to read the full file
|
|
159
157
|
- Confidence-scored dependency edges trace real call relationships across files
|
|
160
158
|
- Community detection and call-chain tracing reveal architectural structure
|
|
161
159
|
- ETag-based conditional requests avoid re-fetching unchanged symbols
|
|
160
|
+
- Workflow ETag caching now seeds `slice.build` with `knownCardEtags` so repeated slice builds can skip unchanged cards
|
|
162
161
|
|
|
163
162
|
[Indexing & Language Support Deep Dive →](./docs/feature-deep-dives/indexing-languages.md)
|
|
164
163
|
|
|
@@ -166,7 +165,7 @@ Cards include **confidence-scored call resolution** (the pass-2 resolver traces
|
|
|
166
165
|
|
|
167
166
|
### Graph Slicing — The Right Context for Every Task
|
|
168
167
|
|
|
169
|
-
Instead of reading files in the same directory, SDL-MCP follows the
|
|
168
|
+
Instead of reading files in the same directory, SDL-MCP follows the _dependency graph_. Starting from symbols relevant to your task, it traverses weighted edges (call: 1.0, config: 0.8, import: 0.6), scores each symbol by relevance, and returns the N most important within a token budget.
|
|
170
169
|
|
|
171
170
|
```mermaid
|
|
172
171
|
flowchart TD
|
|
@@ -183,6 +182,7 @@ flowchart TD
|
|
|
183
182
|
Slices have handles, leases, refresh (delta-only updates), and spillover (paged overflow). You can also skip the symbol search entirely — pass a `taskText` string and SDL-MCP auto-discovers the relevant entry symbols.
|
|
184
183
|
|
|
185
184
|
**Why it matters:**
|
|
185
|
+
|
|
186
186
|
- Follows the **dependency graph**, not directory boundaries, for cross-cutting context
|
|
187
187
|
- Weighted edge scoring (call > config > import) prioritizes the most relevant symbols
|
|
188
188
|
- Token-budgeted: returns only what fits within your budget (~800 tokens vs. ~16,000 for raw files)
|
|
@@ -194,7 +194,7 @@ Slices have handles, leases, refresh (delta-only updates), and spillover (paged
|
|
|
194
194
|
|
|
195
195
|
### Delta Packs & Blast Radius — Semantic Change Intelligence
|
|
196
196
|
|
|
197
|
-
`git diff` tells you what lines changed. SDL-MCP tells you what that change
|
|
197
|
+
`git diff` tells you what lines changed. SDL-MCP tells you what that change _means_ and who's affected.
|
|
198
198
|
|
|
199
199
|
```mermaid
|
|
200
200
|
flowchart TD
|
|
@@ -223,6 +223,7 @@ flowchart TD
|
|
|
223
223
|
**PR risk analysis** (`sdl.pr.risk.analyze`) wraps this into a scored assessment with findings, evidence, and test recommendations. **Fan-in trend analysis** detects "amplifier" symbols whose growing dependency count means changes ripple further over time.
|
|
224
224
|
|
|
225
225
|
**Why it matters:**
|
|
226
|
+
|
|
226
227
|
- Semantic diffs show what a change **means**, not just what lines moved
|
|
227
228
|
- Ranked blast radius identifies which dependent symbols are most at risk
|
|
228
229
|
- Fan-in trend analysis detects "amplifier" symbols whose changes ripple further over time
|
|
@@ -234,7 +235,7 @@ flowchart TD
|
|
|
234
235
|
|
|
235
236
|
### Live Indexing — Real-Time Code Intelligence
|
|
236
237
|
|
|
237
|
-
SDL-MCP doesn't wait for you to save. As you type in your editor, buffer updates are pushed to an in-memory overlay store, parsed in the background, and merged with the durable database. Search, cards, and slices reflect your
|
|
238
|
+
SDL-MCP doesn't wait for you to save. As you type in your editor, buffer updates are pushed to an in-memory overlay store, parsed in the background, and merged with the durable database. Search, cards, and slices reflect your _current_ code, not your last save.
|
|
238
239
|
|
|
239
240
|
```mermaid
|
|
240
241
|
flowchart LR
|
|
@@ -246,6 +247,7 @@ flowchart LR
|
|
|
246
247
|
```
|
|
247
248
|
|
|
248
249
|
**Why it matters:**
|
|
250
|
+
|
|
249
251
|
- Search, cards, and slices reflect **unsaved editor changes** in real time
|
|
250
252
|
- No manual re-index needed during active development
|
|
251
253
|
- Background AST parsing with in-memory overlay keeps queries fast
|
|
@@ -257,15 +259,17 @@ flowchart LR
|
|
|
257
259
|
### Governance & Policy — Controlled Access
|
|
258
260
|
|
|
259
261
|
Raw code access (Rung 4) is **policy-gated**. Agents must provide:
|
|
262
|
+
|
|
260
263
|
- A **reason** explaining why they need raw code
|
|
261
264
|
- **Identifiers** they expect to find in the code
|
|
262
265
|
- An **expected line count** within configured limits
|
|
263
266
|
|
|
264
267
|
Requests that don't meet policy are denied with actionable guidance ("try `getHotPath` with these identifiers instead"). Every access is audit-logged.
|
|
265
268
|
|
|
266
|
-
The sandboxed runtime execution tool (`sdl.runtime.execute`) has its own governance layer:
|
|
269
|
+
The sandboxed runtime execution tool (`sdl.runtime.execute`) has its own governance layer: enabled by default, but still guarded by executable allowlisting, CWD jailing, environment scrubbing, concurrency limits, and timeout enforcement. The `outputMode` parameter (`"minimal"` | `"summary"` | `"intent"`) defaults to `"minimal"` for ~95% token savings, with `sdl.runtime.queryOutput` enabling on-demand output retrieval when needed.
|
|
267
270
|
|
|
268
271
|
**Why it matters:**
|
|
272
|
+
|
|
269
273
|
- Proof-of-need gating prevents agents from wastefully reading raw code
|
|
270
274
|
- Denied requests include **actionable next-best-action** guidance
|
|
271
275
|
- Full audit logging of every code access decision
|
|
@@ -284,6 +288,7 @@ The feedback loop (`sdl.agent.feedback`) records which symbols were useful and w
|
|
|
284
288
|
`sdl.context.summary` generates portable, token-bounded context briefings in markdown, JSON, or clipboard format for use outside MCP environments.
|
|
285
289
|
|
|
286
290
|
**Why it matters:**
|
|
291
|
+
|
|
287
292
|
- Task-shaped context retrieval plans the **right Iris Gate path** within a token budget
|
|
288
293
|
- Feedback loop records what was useful/missing, improving future slice quality
|
|
289
294
|
- Portable context summaries export findings for use outside MCP environments
|
|
@@ -297,6 +302,7 @@ The feedback loop (`sdl.agent.feedback`) records which symbols were useful and w
|
|
|
297
302
|
Run tests, linters, and scripts through SDL-MCP's governance layer instead of uncontrolled shell access. 16 runtimes (Node.js, Python, Go, Java, Rust, Shell, and more), code-mode or args-mode, smart output summarization with keyword-matched excerpts, and gzip artifact persistence.
|
|
298
303
|
|
|
299
304
|
**Why it matters:**
|
|
305
|
+
|
|
300
306
|
- Run tests, linters, and scripts **under governance** instead of uncontrolled shell access
|
|
301
307
|
- 16 runtimes supported (Node, Python, Go, Java, Rust, Shell, and more)
|
|
302
308
|
- Executable allowlisting, CWD jailing, timeout enforcement, and environment scrubbing
|
|
@@ -306,9 +312,9 @@ Run tests, linters, and scripts through SDL-MCP's governance layer instead of un
|
|
|
306
312
|
|
|
307
313
|
---
|
|
308
314
|
|
|
309
|
-
### Development Memories — Cross-Session Knowledge Persistence
|
|
315
|
+
### Development Memories — Cross-Session Knowledge Persistence (Opt-In)
|
|
310
316
|
|
|
311
|
-
Agents forget everything between sessions. SDL-MCP fixes this with
|
|
317
|
+
Agents forget everything between sessions. SDL-MCP fixes this with an **opt-in graph-backed memory system** that lets agents store decisions, bugfix context, and task notes linked directly to the symbols and files they relate to. Memory is **disabled by default** and must be explicitly enabled in the configuration. When enabled, memories are stored both in the graph database (for fast querying) and as checked-in markdown files (for version control and team sharing).
|
|
312
318
|
|
|
313
319
|
```mermaid
|
|
314
320
|
flowchart LR
|
|
@@ -322,11 +328,13 @@ flowchart LR
|
|
|
322
328
|
Graph --> Recall["Relevant memory surfaced<br/>race condition fix in authenticate()"]
|
|
323
329
|
```
|
|
324
330
|
|
|
325
|
-
|
|
331
|
+
When enabled, memories are **automatically surfaced** inside graph slices — when an agent builds a slice touching symbols with linked memories, those memories appear alongside the cards. During re-indexing, memories linked to changed symbols are **flagged as stale**, prompting agents to review and update them. Four MCP tools (`store`, `query`, `remove`, `surface`) provide full CRUD plus intelligent ranking by confidence, recency, and symbol overlap. Memory tools are only available when memory is enabled in the configuration.
|
|
326
332
|
|
|
327
333
|
**Why it matters:**
|
|
334
|
+
|
|
328
335
|
- Structured knowledge **persists across sessions**, linked directly to symbols and files
|
|
329
|
-
-
|
|
336
|
+
- Opt-in and disabled by default — enable via `"memory": { "enabled": true }` in config
|
|
337
|
+
- When enabled, automatically surfaced inside graph slices when touching related symbols
|
|
330
338
|
- Stale memories flagged when linked symbols change during re-indexing
|
|
331
339
|
- Dual storage: graph DB for fast querying + markdown files for version control and team sharing
|
|
332
340
|
|
|
@@ -334,6 +342,31 @@ Memories are **automatically surfaced** inside graph slices — when an agent bu
|
|
|
334
342
|
|
|
335
343
|
---
|
|
336
344
|
|
|
345
|
+
### SCIP Integration — Compiler-Grade Cross-References
|
|
346
|
+
|
|
347
|
+
Tree-sitter gives SDL-MCP fast, syntax-level symbol extraction across 11 languages. SCIP (Source Code Intelligence Protocol) supplements this with **compiler-grade cross-references** from tools like scip-typescript, scip-go, and rust-analyzer. Generate a `.scip` index file, point SDL-MCP at it, and heuristic edges are upgraded to exact compiler-verified edges, external dependency symbols become first-class graph nodes, and new `implements` edges reveal interface/trait relationships that syntax analysis cannot discover.
|
|
348
|
+
|
|
349
|
+
```mermaid
|
|
350
|
+
flowchart LR
|
|
351
|
+
Compiler["Compiler / Type Checker"] --> SCIP[".scip index file"]
|
|
352
|
+
SCIP --> Ingest["sdl.scip.ingest"]
|
|
353
|
+
Ingest --> Upgrade["Heuristic edges → exact edges"]
|
|
354
|
+
Ingest --> External["External dependency nodes"]
|
|
355
|
+
Ingest --> Implements["implements edges"]
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
**Why it matters:**
|
|
359
|
+
|
|
360
|
+
- Upgrades heuristic call resolution to **compiler-verified exact edges** (confidence 0.95)
|
|
361
|
+
- External dependencies (npm packages, Go modules, crate deps) become searchable graph nodes
|
|
362
|
+
- Interface/trait implementations tracked via `implements` edges
|
|
363
|
+
- Auto-ingest on `sdl.index.refresh` keeps SCIP data current with zero manual steps
|
|
364
|
+
- Complementary: tree-sitter provides structure, SCIP provides semantic precision
|
|
365
|
+
|
|
366
|
+
[SCIP Integration Deep Dive →](./docs/feature-deep-dives/scip-integration.md)
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
337
370
|
### CLI Tool Access — No MCP Server Required
|
|
338
371
|
|
|
339
372
|
Access all 32 flat SDL action tools directly from the command line with `sdl-mcp tool`. No MCP server, transport, or SDK is required.
|
|
@@ -352,6 +385,7 @@ echo '{"repoId":"my-repo"}' | sdl-mcp tool symbol.search --query "auth"
|
|
|
352
385
|
Features include typed argument coercion (string, number, boolean, string[], json), budget flag merging, stdin JSON piping with CLI-flags-win precedence, auto-resolved `repoId` from cwd, four output formats (json, json-compact, pretty, table), typo suggestions, and per-action `--help`. The CLI dispatches through the same gateway router and Zod schemas as the MCP server — identical code paths, identical validation.
|
|
353
386
|
|
|
354
387
|
**Why it matters:**
|
|
388
|
+
|
|
355
389
|
- All MCP tool actions accessible from **any terminal** — no server, transport, or SDK required
|
|
356
390
|
- Same code paths and Zod validation as the MCP server — identical behavior
|
|
357
391
|
- Four output formats (json, json-compact, pretty, table) for scripting and CI pipelines
|
|
@@ -374,6 +408,7 @@ flowchart LR
|
|
|
374
408
|
Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "symbol.search", repoId: "x", query: "auth" }`) and routes to the same handlers with double Zod validation. Thin wire schemas in `tools/list` keep the registration compact while full validation happens server-side. Legacy flat tool names are optionally emitted alongside for backward compatibility.
|
|
375
409
|
|
|
376
410
|
**Why it matters:**
|
|
411
|
+
|
|
377
412
|
- Large reduction in `tools/list` overhead for gateway-first agents
|
|
378
413
|
- 32 flat action tools consolidated into 4 namespace-scoped tools for simpler agent selection
|
|
379
414
|
- Fewer tool choices means faster and more accurate tool dispatch by the agent
|
|
@@ -387,14 +422,14 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
|
|
|
387
422
|
|
|
388
423
|
<br/>
|
|
389
424
|
|
|
390
|
-
## All
|
|
425
|
+
## All 38 Unique Tool Surfaces at a Glance
|
|
391
426
|
|
|
392
427
|
<table>
|
|
393
428
|
<tr><th>Category</th><th>Tool</th><th>One-Line Description</th></tr>
|
|
394
429
|
<tr><td rowspan="4"><strong>Repository</strong></td>
|
|
395
430
|
<td><code>sdl.repo.register</code></td><td>Register a codebase for indexing</td></tr>
|
|
396
431
|
<tr><td><code>sdl.repo.status</code></td><td>Health, versions, watcher, prefetch, live-index stats</td></tr>
|
|
397
|
-
<tr><td><code>sdl.repo.overview</code></td><td>Codebase summary: stats, directories, hotspots, clusters</td></tr>
|
|
432
|
+
<tr><td><code>sdl.repo.overview</code></td><td>Codebase summary: stats, directories, hotspots, clusters, with conditional ETag fetch support</td></tr>
|
|
398
433
|
<tr><td><code>sdl.index.refresh</code></td><td>Trigger full or incremental re-indexing</td></tr>
|
|
399
434
|
|
|
400
435
|
<tr><td rowspan="3"><strong>Live Buffer</strong></td>
|
|
@@ -413,8 +448,8 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
|
|
|
413
448
|
<tr><td><code>sdl.slice.spillover.get</code></td><td>Page through overflow symbols beyond the budget</td></tr>
|
|
414
449
|
|
|
415
450
|
<tr><td rowspan="3"><strong>Code Access</strong></td>
|
|
416
|
-
<td><code>sdl.code.getSkeleton</code></td><td>Signatures + control flow, bodies elided</td></tr>
|
|
417
|
-
<tr><td><code>sdl.code.getHotPath</code></td><td>Lines matching specific identifiers + context</td></tr>
|
|
451
|
+
<td><code>sdl.code.getSkeleton</code></td><td>Signatures + control flow, bodies elided, with conditional ETag fetch support</td></tr>
|
|
452
|
+
<tr><td><code>sdl.code.getHotPath</code></td><td>Lines matching specific identifiers + context, with conditional ETag fetch support</td></tr>
|
|
418
453
|
<tr><td><code>sdl.code.needWindow</code></td><td>Full source code (policy-gated, requires justification)</td></tr>
|
|
419
454
|
|
|
420
455
|
<tr><td><strong>Deltas</strong></td>
|
|
@@ -428,10 +463,10 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
|
|
|
428
463
|
<td><code>sdl.pr.risk.analyze</code></td><td>Scored PR risk with findings and test recommendations</td></tr>
|
|
429
464
|
|
|
430
465
|
<tr><td><strong>Context</strong></td>
|
|
431
|
-
<td><code>sdl.context.summary</code></td><td>Token-bounded portable briefing (markdown/JSON/clipboard)</td></tr>
|
|
466
|
+
<td><code>sdl.context.summary</code></td><td>Token-bounded portable briefing (markdown/JSON/clipboard) with conditional ETag fetch support</td></tr>
|
|
432
467
|
|
|
433
468
|
<tr><td rowspan="3"><strong>Agent</strong></td>
|
|
434
|
-
<td><code>sdl.agent.context</code></td><td>Task-shaped context retrieval with budget-controlled rung planning</td></tr>
|
|
469
|
+
<td><code>sdl.agent.context</code></td><td>Task-shaped context retrieval with budget-controlled rung planning and conditional ETag fetch support</td></tr>
|
|
435
470
|
<tr><td><code>sdl.agent.feedback</code></td><td>Record which symbols were useful or missing</td></tr>
|
|
436
471
|
<tr><td><code>sdl.agent.feedback.query</code></td><td>Query aggregated feedback statistics</td></tr>
|
|
437
472
|
|
|
@@ -450,6 +485,12 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
|
|
|
450
485
|
<tr><td><code>sdl.workflow</code></td><td>Multi-step operations with budget tracking, ETag caching, and transforms</td></tr>
|
|
451
486
|
<tr><td><code>sdl.manual</code></td><td>Self-documentation — query usage guide, action schemas, output format reference</td></tr>
|
|
452
487
|
|
|
488
|
+
<tr><td><strong>SCIP</strong></td>
|
|
489
|
+
<td><code>sdl.scip.ingest</code></td><td>Ingest a pre-built SCIP index for compiler-grade cross-references (with dry-run support)</td></tr>
|
|
490
|
+
|
|
491
|
+
<tr><td><strong>File</strong></td>
|
|
492
|
+
<td><code>sdl.file.read</code></td><td>Read non-indexed files (configs, docs, templates) with line-range, search, or JSON-path modes</td></tr>
|
|
493
|
+
|
|
453
494
|
<tr><td rowspan="3"><strong>Meta</strong></td>
|
|
454
495
|
<td><code>sdl.info</code></td><td>Runtime diagnostics — version, Node.js, platform, database, config paths</td></tr>
|
|
455
496
|
<tr><td><code>sdl.usage.stats</code></td><td>Session and lifetime token savings statistics</td></tr>
|
|
@@ -466,21 +507,21 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
|
|
|
466
507
|
|
|
467
508
|
## CLI Commands
|
|
468
509
|
|
|
469
|
-
| Command
|
|
470
|
-
|
|
471
|
-
| `sdl-mcp init`
|
|
472
|
-
| `sdl-mcp doctor`
|
|
473
|
-
| `sdl-mcp index`
|
|
474
|
-
| `sdl-mcp serve`
|
|
475
|
-
| `sdl-mcp tool`
|
|
476
|
-
| `sdl-mcp info`
|
|
477
|
-
| `sdl-mcp summary`
|
|
478
|
-
| `sdl-mcp health`
|
|
479
|
-
| `sdl-mcp benchmark` | Run CI regression benchmarks
|
|
480
|
-
| `sdl-mcp export`
|
|
481
|
-
| `sdl-mcp import`
|
|
482
|
-
| `sdl-mcp pull`
|
|
483
|
-
| `sdl-mcp version`
|
|
510
|
+
| Command | Description |
|
|
511
|
+
| :------------------ | :--------------------------------------------------------------------------------------------- |
|
|
512
|
+
| `sdl-mcp init` | Bootstrap config, detect repo/languages, optionally auto-index |
|
|
513
|
+
| `sdl-mcp doctor` | Validate runtime, config, DB, grammars, repo access |
|
|
514
|
+
| `sdl-mcp index` | Index repositories (with optional `--watch` mode) |
|
|
515
|
+
| `sdl-mcp serve` | Start MCP server (`--stdio` or `--http`) |
|
|
516
|
+
| `sdl-mcp tool` | Access all 35 MCP tool actions directly ([docs](./docs/feature-deep-dives/cli-tool-access.md)) |
|
|
517
|
+
| `sdl-mcp info` | Runtime diagnostics — version, Node.js, platform, database, config |
|
|
518
|
+
| `sdl-mcp summary` | Generate copy/paste context summaries from the CLI |
|
|
519
|
+
| `sdl-mcp health` | Compute composite health score with badge/JSON output |
|
|
520
|
+
| `sdl-mcp benchmark` | Run CI regression benchmarks |
|
|
521
|
+
| `sdl-mcp export` | Export sync artifact |
|
|
522
|
+
| `sdl-mcp import` | Import sync artifact |
|
|
523
|
+
| `sdl-mcp pull` | Pull by version/commit with fallback |
|
|
524
|
+
| `sdl-mcp version` | Show version and environment info |
|
|
484
525
|
|
|
485
526
|
[CLI Reference →](./docs/cli-reference.md) · [Configuration Reference →](./docs/configuration-reference.md)
|
|
486
527
|
|
|
@@ -494,15 +535,15 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
|
|
|
494
535
|
|
|
495
536
|
SDL-MCP works with any MCP-compatible client:
|
|
496
537
|
|
|
497
|
-
| Client
|
|
498
|
-
|
|
499
|
-
| **Claude Code**
|
|
500
|
-
| **Claude Desktop** | stdio
|
|
501
|
-
| **Cursor**
|
|
502
|
-
| **Windsurf**
|
|
503
|
-
| **Codex CLI**
|
|
504
|
-
| **Gemini CLI**
|
|
505
|
-
| **OpenCode**
|
|
538
|
+
| Client | Transport | Setup |
|
|
539
|
+
| :----------------- | :----------- | :---------------------------------- |
|
|
540
|
+
| **Claude Code** | stdio | `sdl-mcp init --client claude-code` |
|
|
541
|
+
| **Claude Desktop** | stdio | `sdl-mcp init --client claude-code` |
|
|
542
|
+
| **Cursor** | stdio | Standard MCP server config |
|
|
543
|
+
| **Windsurf** | stdio | Standard MCP server config |
|
|
544
|
+
| **Codex CLI** | stdio | `sdl-mcp init --client codex` |
|
|
545
|
+
| **Gemini CLI** | stdio | `sdl-mcp init --client gemini` |
|
|
546
|
+
| **OpenCode** | stdio | `sdl-mcp init --client opencode` |
|
|
506
547
|
| **Any MCP client** | stdio / http | `sdl-mcp serve --stdio` or `--http` |
|
|
507
548
|
|
|
508
549
|
A **VSCode extension** (`sdl-mcp-vscode/`) provides live buffer integration for real-time indexing of unsaved edits.
|
|
@@ -515,15 +556,15 @@ A **VSCode extension** (`sdl-mcp-vscode/`) provides live buffer integration for
|
|
|
515
556
|
|
|
516
557
|
## Tech Stack
|
|
517
558
|
|
|
518
|
-
| Component
|
|
519
|
-
|
|
520
|
-
| Runtime
|
|
521
|
-
| Graph Database
|
|
522
|
-
| Indexer (default)
|
|
523
|
-
| Indexer (fallback) | tree-sitter + tree-sitter-typescript
|
|
524
|
-
| MCP SDK
|
|
525
|
-
| Validation
|
|
526
|
-
| Transports
|
|
559
|
+
| Component | Technology |
|
|
560
|
+
| :----------------- | :----------------------------------------- |
|
|
561
|
+
| Runtime | Node.js 24+ / TypeScript 5.9+ (strict ESM) |
|
|
562
|
+
| Graph Database | LadybugDB (embedded, single-file) |
|
|
563
|
+
| Indexer (default) | Rust via napi-rs (multi-threaded) |
|
|
564
|
+
| Indexer (fallback) | tree-sitter + tree-sitter-typescript |
|
|
565
|
+
| MCP SDK | @modelcontextprotocol/sdk |
|
|
566
|
+
| Validation | Zod schemas for all payloads |
|
|
567
|
+
| Transports | stdio (agents) · HTTP (dev/network) |
|
|
527
568
|
|
|
528
569
|
<br/>
|
|
529
570
|
|
|
@@ -560,37 +601,38 @@ flowchart TD
|
|
|
560
601
|
|
|
561
602
|
## Documentation
|
|
562
603
|
|
|
563
|
-
| Document
|
|
564
|
-
|
|
565
|
-
| [Getting Started](./docs/getting-started.md)
|
|
566
|
-
| [MCP Tools Reference](./docs/mcp-tools-detailed.md)
|
|
567
|
-
| [CLI Reference](./docs/cli-reference.md)
|
|
568
|
-
| [Configuration Reference](./docs/configuration-reference.md)
|
|
569
|
-
| [Agent Workflows](./docs/agent-workflows.md)
|
|
570
|
-
| [Architecture](./docs/architecture.md)
|
|
571
|
-
| [Iris Gate Ladder](./docs/feature-deep-dives/iris-gate-ladder.md) | Context escalation methodology
|
|
572
|
-
| [Troubleshooting](./docs/troubleshooting.md)
|
|
604
|
+
| Document | Description |
|
|
605
|
+
| :---------------------------------------------------------------- | :------------------------------------------------------------------------------ |
|
|
606
|
+
| [Getting Started](./docs/getting-started.md) | Installation, 5-minute setup, MCP client config |
|
|
607
|
+
| [MCP Tools Reference](./docs/mcp-tools-detailed.md) | Detailed docs for all 37 unique tool surfaces (parameters, responses, examples) |
|
|
608
|
+
| [CLI Reference](./docs/cli-reference.md) | All CLI commands and options |
|
|
609
|
+
| [Configuration Reference](./docs/configuration-reference.md) | Every config option with defaults and guidance |
|
|
610
|
+
| [Agent Workflows](./docs/agent-workflows.md) | Workflow instructions for CLAUDE.md / AGENTS.md |
|
|
611
|
+
| [Architecture](./docs/architecture.md) | Tech stack, data flow, component diagram |
|
|
612
|
+
| [Iris Gate Ladder](./docs/feature-deep-dives/iris-gate-ladder.md) | Context escalation methodology |
|
|
613
|
+
| [Troubleshooting](./docs/troubleshooting.md) | Common issues and fixes |
|
|
573
614
|
|
|
574
615
|
### Feature Deep Dives
|
|
575
616
|
|
|
576
|
-
| Topic
|
|
577
|
-
|
|
578
|
-
| [Iris Gate Ladder](./docs/feature-deep-dives/iris-gate-ladder.md)
|
|
579
|
-
| [Graph Slicing](./docs/feature-deep-dives/graph-slicing.md)
|
|
580
|
-
| [Delta & Blast Radius](./docs/feature-deep-dives/delta-blast-radius.md)
|
|
581
|
-
| [Live Indexing](./docs/feature-deep-dives/live-indexing.md)
|
|
582
|
-
| [Governance & Policy](./docs/feature-deep-dives/governance-policy.md)
|
|
583
|
-
| [Agent Context](./docs/feature-deep-dives/agent-context.md)
|
|
584
|
-
| [Context Modes](./docs/feature-deep-dives/context-modes.md)
|
|
585
|
-
| [Indexing & Languages](./docs/feature-deep-dives/indexing-languages.md)
|
|
586
|
-
| [Runtime Execution](./docs/feature-deep-dives/runtime-execution.md)
|
|
587
|
-
| [CLI Tool Access](./docs/feature-deep-dives/cli-tool-access.md)
|
|
588
|
-
| [Tool Gateway](./docs/feature-deep-dives/tool-gateway.md)
|
|
589
|
-
| [Semantic Engine](./docs/feature-deep-dives/semantic-engine.md)
|
|
590
|
-
| [Semantic Embeddings Setup](./docs/feature-deep-dives/semantic-embeddings-setup.md) | Dependencies, model installation, provider configuration, tier-by-tier setup
|
|
591
|
-
| [Code Mode](./docs/feature-deep-dives/code-mode.md)
|
|
592
|
-
| [Development Memories](./docs/feature-deep-dives/development-memories.md)
|
|
593
|
-
| [
|
|
617
|
+
| Topic | What You'll Learn |
|
|
618
|
+
| :---------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------ |
|
|
619
|
+
| [Iris Gate Ladder](./docs/feature-deep-dives/iris-gate-ladder.md) | Four-rung context escalation with token savings analysis |
|
|
620
|
+
| [Graph Slicing](./docs/feature-deep-dives/graph-slicing.md) | BFS/beam search, edge weights, wire formats, auto-discovery |
|
|
621
|
+
| [Delta & Blast Radius](./docs/feature-deep-dives/delta-blast-radius.md) | Semantic diffs, ranked impact analysis, PR risk scoring |
|
|
622
|
+
| [Live Indexing](./docs/feature-deep-dives/live-indexing.md) | Real-time editor buffer integration and overlay architecture |
|
|
623
|
+
| [Governance & Policy](./docs/feature-deep-dives/governance-policy.md) | Proof-of-need gating, audit logging, runtime sandboxing |
|
|
624
|
+
| [Agent Context](./docs/feature-deep-dives/agent-context.md) | Task-shaped context retrieval, feedback loops, portable context summaries |
|
|
625
|
+
| [Context Modes](./docs/feature-deep-dives/context-modes.md) | Precise vs broad retrieval, adaptive symbol ranking, benchmark trade-offs |
|
|
626
|
+
| [Indexing & Languages](./docs/feature-deep-dives/indexing-languages.md) | Rust/TS engines, two-pass architecture, 12-language support |
|
|
627
|
+
| [Runtime Execution](./docs/feature-deep-dives/runtime-execution.md) | Sandboxed subprocess execution with governance |
|
|
628
|
+
| [CLI Tool Access](./docs/feature-deep-dives/cli-tool-access.md) | Direct CLI access to all tool actions, output formats, stdin piping, scripting |
|
|
629
|
+
| [Tool Gateway](./docs/feature-deep-dives/tool-gateway.md) | 35→4 tool consolidation, token reduction, thin schemas, migration guide |
|
|
630
|
+
| [Semantic Engine](./docs/feature-deep-dives/semantic-engine.md) | Pass-2 call resolution, embedding search, LLM summaries, confidence scoring |
|
|
631
|
+
| [Semantic Embeddings Setup](./docs/feature-deep-dives/semantic-embeddings-setup.md) | Dependencies, model installation, provider configuration, tier-by-tier setup |
|
|
632
|
+
| [Code Mode](./docs/feature-deep-dives/code-mode.md) | `sdl.context`, `sdl.workflow`, action discovery, manual reference, one-call workflows |
|
|
633
|
+
| [Development Memories](./docs/feature-deep-dives/development-memories.md) | Graph-backed cross-session memory, file sync, staleness detection, auto-surfacing |
|
|
634
|
+
| [SCIP Integration](./docs/feature-deep-dives/scip-integration.md) | Compiler-grade cross-references, external deps, implements edges, auto-ingest |
|
|
635
|
+
| [Token Savings Meter](./docs/feature-deep-dives/token-savings-meter.md) | Per-call meter, session summaries, lifetime tracking, `sdl.usage.stats` |
|
|
594
636
|
|
|
595
637
|
<br/>
|
|
596
638
|
|
|
@@ -32,7 +32,12 @@
|
|
|
32
32
|
"includeNodeModulesTypes": true,
|
|
33
33
|
"packageJsonPath": null,
|
|
34
34
|
"tsconfigPath": null,
|
|
35
|
-
"workspaceGlobs": null
|
|
35
|
+
"workspaceGlobs": null,
|
|
36
|
+
"memory": {
|
|
37
|
+
"enabled": true,
|
|
38
|
+
"surfacingEnabled": true,
|
|
39
|
+
"fileSyncEnabled": false
|
|
40
|
+
}
|
|
36
41
|
}
|
|
37
42
|
],
|
|
38
43
|
"graphDatabase": {
|
|
@@ -118,7 +123,8 @@
|
|
|
118
123
|
"vector": {
|
|
119
124
|
"enabled": true,
|
|
120
125
|
"topK": 75,
|
|
121
|
-
"
|
|
126
|
+
"efc": 200,
|
|
127
|
+
"efs": 200,
|
|
122
128
|
"indexes": {
|
|
123
129
|
"all-MiniLM-L6-v2": {
|
|
124
130
|
"indexName": "symbol_vec_minilm_l6_v2"
|
|
@@ -160,11 +166,8 @@
|
|
|
160
166
|
"toolQueueTimeoutMs": 30000
|
|
161
167
|
},
|
|
162
168
|
"runtime": {
|
|
163
|
-
"enabled":
|
|
164
|
-
"allowedRuntimes": [
|
|
165
|
-
"node",
|
|
166
|
-
"python"
|
|
167
|
-
],
|
|
169
|
+
"enabled": true,
|
|
170
|
+
"allowedRuntimes": ["node", "typescript", "python", "shell"],
|
|
168
171
|
"allowedExecutables": [],
|
|
169
172
|
"maxDurationMs": 30000,
|
|
170
173
|
"maxStdoutBytes": 1048576,
|
|
@@ -194,5 +197,30 @@
|
|
|
194
197
|
},
|
|
195
198
|
"security": {
|
|
196
199
|
"allowedRepoRoots": []
|
|
200
|
+
},
|
|
201
|
+
"scip": {
|
|
202
|
+
"enabled": false,
|
|
203
|
+
"indexes": [
|
|
204
|
+
{
|
|
205
|
+
"path": "index.scip",
|
|
206
|
+
"label": "typescript"
|
|
207
|
+
}
|
|
208
|
+
],
|
|
209
|
+
"externalSymbols": {
|
|
210
|
+
"enabled": true,
|
|
211
|
+
"maxPerIndex": 10000
|
|
212
|
+
},
|
|
213
|
+
"confidence": 0.95,
|
|
214
|
+
"autoIngestOnRefresh": true,
|
|
215
|
+
"generator": {
|
|
216
|
+
"enabled": false,
|
|
217
|
+
"binary": "scip-io",
|
|
218
|
+
"args": [],
|
|
219
|
+
"autoInstall": true,
|
|
220
|
+
"timeoutMs": 600000
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
"memory": {
|
|
224
|
+
"enabled": false
|
|
197
225
|
}
|
|
198
226
|
}
|