sdl-mcp 0.10.0 → 0.10.2
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 +123 -173
- package/config/sdlmcp.config.example.json +5 -13
- package/config/sdlmcp.config.schema.json +28 -77
- package/dist/.tsbuildinfo +1 -1
- package/dist/agent/context-engine.d.ts +22 -0
- package/dist/agent/context-engine.d.ts.map +1 -0
- package/dist/agent/{orchestrator.js → context-engine.js} +229 -19
- package/dist/agent/context-engine.js.map +1 -0
- package/dist/agent/executor.d.ts +21 -0
- package/dist/agent/executor.d.ts.map +1 -1
- package/dist/agent/executor.js +222 -59
- package/dist/agent/executor.js.map +1 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +1 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/planner.d.ts +1 -1
- package/dist/agent/planner.d.ts.map +1 -1
- package/dist/agent/planner.js +69 -3
- package/dist/agent/planner.js.map +1 -1
- package/dist/agent/types.d.ts +13 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +1 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +161 -29
- 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 +35 -1
- 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 +62 -8
- package/dist/cli/commands/tool-actions.js.map +1 -1
- package/dist/cli/transport/http.d.ts.map +1 -1
- package/dist/cli/transport/http.js +39 -6
- package/dist/cli/transport/http.js.map +1 -1
- package/dist/code/gate.d.ts.map +1 -1
- package/dist/code/gate.js +17 -9
- package/dist/code/gate.js.map +1 -1
- package/dist/code/hotpath.d.ts +1 -1
- package/dist/code/hotpath.d.ts.map +1 -1
- package/dist/code/hotpath.js +16 -2
- package/dist/code/hotpath.js.map +1 -1
- package/dist/code/skeleton.d.ts +1 -1
- package/dist/code/skeleton.d.ts.map +1 -1
- package/dist/code/skeleton.js +53 -6
- package/dist/code/skeleton.js.map +1 -1
- package/dist/code/windows.d.ts +2 -1
- package/dist/code/windows.d.ts.map +1 -1
- package/dist/code/windows.js +18 -5
- package/dist/code/windows.js.map +1 -1
- package/dist/code-mode/action-catalog.d.ts +7 -4
- package/dist/code-mode/action-catalog.d.ts.map +1 -1
- package/dist/code-mode/action-catalog.js +167 -22
- package/dist/code-mode/action-catalog.js.map +1 -1
- package/dist/code-mode/descriptions.d.ts +2 -1
- package/dist/code-mode/descriptions.d.ts.map +1 -1
- package/dist/code-mode/descriptions.js +17 -11
- package/dist/code-mode/descriptions.js.map +1 -1
- package/dist/code-mode/etag-cache.d.ts +5 -5
- package/dist/code-mode/etag-cache.d.ts.map +1 -1
- package/dist/code-mode/etag-cache.js +17 -16
- package/dist/code-mode/etag-cache.js.map +1 -1
- package/dist/code-mode/index.d.ts +4 -3
- package/dist/code-mode/index.d.ts.map +1 -1
- package/dist/code-mode/index.js +118 -67
- package/dist/code-mode/index.js.map +1 -1
- package/dist/code-mode/ladder-validator.d.ts +2 -2
- package/dist/code-mode/ladder-validator.d.ts.map +1 -1
- package/dist/code-mode/ladder-validator.js.map +1 -1
- package/dist/code-mode/manual-generator.d.ts.map +1 -1
- package/dist/code-mode/manual-generator.js +64 -27
- package/dist/code-mode/manual-generator.js.map +1 -1
- package/dist/code-mode/ref-resolver.d.ts.map +1 -1
- package/dist/code-mode/ref-resolver.js +75 -24
- package/dist/code-mode/ref-resolver.js.map +1 -1
- package/dist/code-mode/transforms.d.ts +1 -1
- package/dist/code-mode/transforms.d.ts.map +1 -1
- package/dist/code-mode/transforms.js +59 -14
- package/dist/code-mode/transforms.js.map +1 -1
- package/dist/code-mode/types.d.ts +31 -19
- package/dist/code-mode/types.d.ts.map +1 -1
- package/dist/code-mode/types.js +16 -10
- package/dist/code-mode/types.js.map +1 -1
- package/dist/code-mode/{chain-budget.d.ts → workflow-budget.d.ts} +4 -4
- package/dist/code-mode/workflow-budget.d.ts.map +1 -0
- package/dist/code-mode/{chain-budget.js → workflow-budget.js} +19 -18
- package/dist/code-mode/workflow-budget.js.map +1 -0
- package/dist/code-mode/workflow-executor.d.ts +11 -0
- package/dist/code-mode/workflow-executor.d.ts.map +1 -0
- package/dist/code-mode/{chain-executor.js → workflow-executor.js} +169 -81
- package/dist/code-mode/workflow-executor.js.map +1 -0
- package/dist/code-mode/workflow-parser.d.ts +31 -0
- package/dist/code-mode/workflow-parser.d.ts.map +1 -0
- package/dist/code-mode/{chain-parser.js → workflow-parser.js} +24 -17
- package/dist/code-mode/workflow-parser.js.map +1 -0
- package/dist/code-mode/workflow-truncation.d.ts +32 -0
- package/dist/code-mode/workflow-truncation.d.ts.map +1 -0
- package/dist/code-mode/workflow-truncation.js +121 -0
- package/dist/code-mode/workflow-truncation.js.map +1 -0
- package/dist/config/constants.d.ts +1 -1
- package/dist/config/constants.js +1 -1
- package/dist/config/types.d.ts +6 -6
- package/dist/config/types.js +12 -12
- package/dist/config/types.js.map +1 -1
- package/dist/db/graph-db-path.d.ts.map +1 -1
- package/dist/db/graph-db-path.js +4 -0
- package/dist/db/graph-db-path.js.map +1 -1
- package/dist/db/ladybug-memory.d.ts.map +1 -1
- package/dist/db/ladybug-memory.js +13 -3
- package/dist/db/ladybug-memory.js.map +1 -1
- package/dist/db/ladybug-repos.d.ts +5 -0
- package/dist/db/ladybug-repos.d.ts.map +1 -1
- package/dist/db/ladybug-repos.js +27 -0
- package/dist/db/ladybug-repos.js.map +1 -1
- package/dist/db/ladybug-symbols.d.ts +4 -2
- package/dist/db/ladybug-symbols.d.ts.map +1 -1
- package/dist/db/ladybug-symbols.js +70 -19
- package/dist/db/ladybug-symbols.js.map +1 -1
- package/dist/db/ladybug-versions.js +1 -1
- package/dist/db/schema.d.ts +17 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/delta/blastRadius.d.ts +1 -1
- package/dist/delta/blastRadius.d.ts.map +1 -1
- package/dist/delta/diff.d.ts +1 -1
- package/dist/delta/diff.d.ts.map +1 -1
- package/dist/delta/diff.js +14 -6
- package/dist/delta/diff.js.map +1 -1
- package/dist/delta/versioning.d.ts +1 -1
- package/dist/delta/versioning.d.ts.map +1 -1
- package/dist/domain/types.d.ts +12 -2
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/domain/types.js.map +1 -1
- package/dist/gateway/descriptions.js +1 -1
- package/dist/gateway/descriptions.js.map +1 -1
- package/dist/gateway/index.d.ts.map +1 -1
- package/dist/gateway/index.js +2 -0
- package/dist/gateway/index.js.map +1 -1
- package/dist/gateway/legacy.js +3 -3
- package/dist/gateway/legacy.js.map +1 -1
- package/dist/gateway/router.d.ts.map +1 -1
- package/dist/gateway/router.js +10 -5
- package/dist/gateway/router.js.map +1 -1
- package/dist/gateway/schemas.d.ts +19 -4
- package/dist/gateway/schemas.d.ts.map +1 -1
- package/dist/gateway/schemas.js +19 -6
- package/dist/gateway/schemas.js.map +1 -1
- package/dist/graph/buildGraph.d.ts +2 -1
- package/dist/graph/buildGraph.d.ts.map +1 -1
- package/dist/graph/buildGraph.js.map +1 -1
- package/dist/graph/cache.d.ts +1 -1
- package/dist/graph/cache.d.ts.map +1 -1
- package/dist/graph/graphSnapshotCache.d.ts +1 -1
- package/dist/graph/graphSnapshotCache.d.ts.map +1 -1
- package/dist/graph/overview.js +32 -6
- package/dist/graph/overview.js.map +1 -1
- package/dist/graph/slice/beam-search-engine.d.ts +1 -1
- package/dist/graph/slice/beam-search-engine.d.ts.map +1 -1
- package/dist/graph/slice/beam-search-engine.js.map +1 -1
- package/dist/graph/slice/result.d.ts +1 -1
- package/dist/graph/slice/result.d.ts.map +1 -1
- package/dist/graph/slice/slice-serializer.d.ts +1 -1
- package/dist/graph/slice/slice-serializer.d.ts.map +1 -1
- package/dist/graph/slice/start-node-resolver.d.ts +1 -1
- package/dist/graph/slice/start-node-resolver.d.ts.map +1 -1
- package/dist/graph/slice/start-node-resolver.js +56 -0
- package/dist/graph/slice/start-node-resolver.js.map +1 -1
- package/dist/graph/slice.d.ts +1 -1
- package/dist/graph/slice.d.ts.map +1 -1
- package/dist/graph/slice.js +23 -0
- package/dist/graph/slice.js.map +1 -1
- package/dist/graph/sliceCache.d.ts +1 -1
- package/dist/graph/sliceCache.d.ts.map +1 -1
- package/dist/indexer/adapter/LanguageAdapter.d.ts +1 -1
- package/dist/indexer/adapter/LanguageAdapter.d.ts.map +1 -1
- package/dist/indexer/cluster-orchestrator.d.ts.map +1 -1
- package/dist/indexer/cluster-orchestrator.js +93 -6
- package/dist/indexer/cluster-orchestrator.js.map +1 -1
- package/dist/indexer/edge-builder/symbol-index.d.ts +1 -1
- package/dist/indexer/edge-builder/symbol-index.d.ts.map +1 -1
- package/dist/indexer/edge-builder/symbol-mapping.d.ts +1 -1
- package/dist/indexer/edge-builder/symbol-mapping.d.ts.map +1 -1
- package/dist/indexer/edge-builder/telemetry.d.ts +1 -1
- package/dist/indexer/edge-builder/telemetry.d.ts.map +1 -1
- package/dist/indexer/edge-builder/types.d.ts +1 -1
- package/dist/indexer/edge-builder/types.d.ts.map +1 -1
- package/dist/indexer/edge-confidence.d.ts +1 -1
- package/dist/indexer/edge-confidence.d.ts.map +1 -1
- package/dist/indexer/embeddings.d.ts +0 -10
- package/dist/indexer/embeddings.d.ts.map +1 -1
- package/dist/indexer/embeddings.js +1 -123
- package/dist/indexer/embeddings.js.map +1 -1
- package/dist/indexer/indexer-init.d.ts +1 -1
- package/dist/indexer/indexer-init.d.ts.map +1 -1
- package/dist/indexer/indexer-version.d.ts.map +1 -1
- package/dist/indexer/indexer-version.js +27 -9
- package/dist/indexer/indexer-version.js.map +1 -1
- package/dist/indexer/indexer.d.ts.map +1 -1
- package/dist/indexer/indexer.js +34 -5
- package/dist/indexer/indexer.js.map +1 -1
- package/dist/indexer/metrics-updater.d.ts.map +1 -1
- package/dist/indexer/metrics-updater.js +16 -35
- package/dist/indexer/metrics-updater.js.map +1 -1
- package/dist/indexer/parser/build-rows.js +2 -2
- package/dist/indexer/parser/build-rows.js.map +1 -1
- package/dist/indexer/pass2/resolvers/rust-pass2-resolver.d.ts +1 -1
- package/dist/indexer/pass2/resolvers/rust-pass2-resolver.d.ts.map +1 -1
- package/dist/indexer/summaries.d.ts +33 -2
- package/dist/indexer/summaries.d.ts.map +1 -1
- package/dist/indexer/summaries.js +473 -106
- package/dist/indexer/summaries.js.map +1 -1
- package/dist/indexer/ts/tsParser.d.ts +6 -1
- package/dist/indexer/ts/tsParser.d.ts.map +1 -1
- package/dist/indexer/ts/tsParser.js +8 -0
- package/dist/indexer/ts/tsParser.js.map +1 -1
- package/dist/live-index/coordinator.d.ts.map +1 -1
- package/dist/live-index/coordinator.js +12 -8
- package/dist/live-index/coordinator.js.map +1 -1
- package/dist/live-index/debounce.d.ts.map +1 -1
- package/dist/live-index/debounce.js +5 -0
- package/dist/live-index/debounce.js.map +1 -1
- package/dist/live-index/overlay-merge.d.ts.map +1 -1
- package/dist/live-index/overlay-merge.js +5 -0
- package/dist/live-index/overlay-merge.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 +8 -2
- package/dist/live-index/overlay-reader.js.map +1 -1
- package/dist/live-index/reconcile-worker.d.ts.map +1 -1
- package/dist/live-index/reconcile-worker.js +0 -4
- package/dist/live-index/reconcile-worker.js.map +1 -1
- package/dist/main.js +21 -3
- package/dist/main.js.map +1 -1
- package/dist/mcp/hooks/memory-hint.js +5 -5
- package/dist/mcp/hooks/memory-hint.js.map +1 -1
- package/dist/mcp/telemetry.d.ts +1 -1
- package/dist/mcp/telemetry.d.ts.map +1 -1
- package/dist/mcp/token-accumulator.js +2 -2
- package/dist/mcp/token-accumulator.js.map +1 -1
- package/dist/mcp/token-usage.d.ts +0 -5
- package/dist/mcp/token-usage.d.ts.map +1 -1
- package/dist/mcp/token-usage.js +6 -1
- package/dist/mcp/token-usage.js.map +1 -1
- package/dist/mcp/tool-call-formatter.d.ts +1 -1
- package/dist/mcp/tool-call-formatter.d.ts.map +1 -1
- package/dist/mcp/tool-call-formatter.js +114 -104
- package/dist/mcp/tool-call-formatter.js.map +1 -1
- package/dist/mcp/tool-presentation.d.ts.map +1 -1
- package/dist/mcp/tool-presentation.js +1 -2
- package/dist/mcp/tool-presentation.js.map +1 -1
- package/dist/mcp/tools/code.d.ts.map +1 -1
- package/dist/mcp/tools/code.js +131 -35
- package/dist/mcp/tools/code.js.map +1 -1
- package/dist/mcp/tools/context.d.ts +3 -0
- package/dist/mcp/tools/context.d.ts.map +1 -0
- package/dist/mcp/tools/context.js +34 -0
- package/dist/mcp/tools/context.js.map +1 -0
- package/dist/mcp/tools/delta.d.ts.map +1 -1
- package/dist/mcp/tools/delta.js +110 -22
- package/dist/mcp/tools/delta.js.map +1 -1
- package/dist/mcp/tools/file-read.d.ts +3 -0
- package/dist/mcp/tools/file-read.d.ts.map +1 -0
- package/dist/mcp/tools/file-read.js +268 -0
- package/dist/mcp/tools/file-read.js.map +1 -0
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +5 -60
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/memory.d.ts.map +1 -1
- package/dist/mcp/tools/memory.js +67 -65
- package/dist/mcp/tools/memory.js.map +1 -1
- package/dist/mcp/tools/prRisk.d.ts +92 -17
- package/dist/mcp/tools/prRisk.d.ts.map +1 -1
- package/dist/mcp/tools/prRisk.js +148 -19
- 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 +102 -28
- 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 +57 -6
- package/dist/mcp/tools/runtime.js.map +1 -1
- package/dist/mcp/tools/slice-wire-format.d.ts +58 -2
- package/dist/mcp/tools/slice-wire-format.d.ts.map +1 -1
- package/dist/mcp/tools/slice-wire-format.js +118 -0
- 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 +24 -10
- package/dist/mcp/tools/slice.js.map +1 -1
- package/dist/mcp/tools/symbol.d.ts +30 -0
- package/dist/mcp/tools/symbol.d.ts.map +1 -1
- package/dist/mcp/tools/symbol.js +257 -80
- package/dist/mcp/tools/symbol.js.map +1 -1
- package/dist/mcp/tools/tool-descriptors.d.ts +42 -0
- package/dist/mcp/tools/tool-descriptors.d.ts.map +1 -0
- package/dist/mcp/tools/tool-descriptors.js +249 -0
- package/dist/mcp/tools/tool-descriptors.js.map +1 -0
- package/dist/mcp/tools/usage.js +2 -2
- package/dist/mcp/tools/usage.js.map +1 -1
- package/dist/mcp/tools.d.ts +189 -14
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +90 -18
- package/dist/mcp/tools.js.map +1 -1
- package/dist/retrieval/fallback.d.ts +1 -1
- package/dist/retrieval/fallback.d.ts.map +1 -1
- package/dist/retrieval/fallback.js +3 -7
- package/dist/retrieval/fallback.js.map +1 -1
- package/dist/retrieval/task-query-ranking.d.ts +9 -0
- package/dist/retrieval/task-query-ranking.d.ts.map +1 -0
- package/dist/retrieval/task-query-ranking.js +89 -0
- package/dist/retrieval/task-query-ranking.js.map +1 -0
- package/dist/runtime/artifacts.d.ts.map +1 -1
- package/dist/runtime/artifacts.js +20 -0
- package/dist/runtime/artifacts.js.map +1 -1
- package/dist/runtime/runtimes.d.ts.map +1 -1
- package/dist/runtime/runtimes.js +4 -0
- package/dist/runtime/runtimes.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +51 -59
- package/dist/server.js.map +1 -1
- package/dist/services/card-builder.d.ts.map +1 -1
- package/dist/services/card-builder.js +23 -10
- package/dist/services/card-builder.js.map +1 -1
- package/dist/services/summary.d.ts.map +1 -1
- package/dist/services/summary.js +203 -18
- package/dist/services/summary.js.map +1 -1
- package/dist/sync/types.d.ts +1 -1
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/ts/mapping.d.ts +1 -1
- package/dist/ts/mapping.d.ts.map +1 -1
- package/dist/util/resolve-symbol-ref.d.ts.map +1 -1
- package/dist/util/resolve-symbol-ref.js +66 -4
- package/dist/util/resolve-symbol-ref.js.map +1 -1
- package/package.json +5 -3
- package/templates/AGENTS.md.template +39 -10
- package/templates/CLAUDE.md.template +32 -7
- package/templates/CODEX.md.template +33 -5
- package/templates/GEMINI.md.template +33 -5
- package/templates/OPENCODE.md.template +32 -4
- package/config/sdlmcp.config.json.sample +0 -73
- package/dist/agent/orchestrator.d.ts +0 -15
- package/dist/agent/orchestrator.d.ts.map +0 -1
- package/dist/agent/orchestrator.js.map +0 -1
- package/dist/code-mode/chain-budget.d.ts.map +0 -1
- package/dist/code-mode/chain-budget.js.map +0 -1
- package/dist/code-mode/chain-executor.d.ts +0 -11
- package/dist/code-mode/chain-executor.d.ts.map +0 -1
- package/dist/code-mode/chain-executor.js.map +0 -1
- package/dist/code-mode/chain-parser.d.ts +0 -28
- package/dist/code-mode/chain-parser.d.ts.map +0 -1
- package/dist/code-mode/chain-parser.js.map +0 -1
- package/dist/experiments/event-log-replay.d.ts +0 -118
- package/dist/experiments/event-log-replay.d.ts.map +0 -1
- package/dist/experiments/event-log-replay.js +0 -161
- package/dist/experiments/event-log-replay.js.map +0 -1
- package/dist/indexer/ann-index.d.ts +0 -111
- package/dist/indexer/ann-index.d.ts.map +0 -1
- package/dist/indexer/ann-index.js +0 -502
- package/dist/indexer/ann-index.js.map +0 -1
- package/dist/indexer/summary-transfer.d.ts +0 -35
- package/dist/indexer/summary-transfer.d.ts.map +0 -1
- package/dist/indexer/summary-transfer.js +0 -184
- package/dist/indexer/summary-transfer.js.map +0 -1
- package/dist/mcp/tools/agent.d.ts +0 -3
- package/dist/mcp/tools/agent.d.ts.map +0 -1
- package/dist/mcp/tools/agent.js +0 -34
- package/dist/mcp/tools/agent.js.map +0 -1
package/README.md
CHANGED
|
@@ -41,29 +41,21 @@ SDL-MCP fixes this. It indexes your codebase into a searchable **symbol graph**
|
|
|
41
41
|
|
|
42
42
|
## How it works — in 30 seconds
|
|
43
43
|
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
│ │ │
|
|
60
|
-
▼ ▼ ▼
|
|
61
|
-
35 MCP 13 CLI HTTP API
|
|
62
|
-
Tools Commands (dev/network)
|
|
63
|
-
│
|
|
64
|
-
▼
|
|
65
|
-
AI Coding Agent
|
|
66
|
-
(Claude Code, Claude Desktop, Cursor, Windsurf, any MCP client)
|
|
44
|
+
```mermaid
|
|
45
|
+
flowchart TD
|
|
46
|
+
Codebase["Your Codebase"]
|
|
47
|
+
Indexer["Indexer<br/>12 languages<br/>Rust native or Tree-sitter fallback"]
|
|
48
|
+
Graph["LadybugDB graph<br/>symbols, edges, metrics, versions"]
|
|
49
|
+
MCP["34 flat MCP tools<br/>plus optional gateway and code-mode surfaces"]
|
|
50
|
+
CLI["13 CLI commands"]
|
|
51
|
+
HTTP["HTTP API and graph UI"]
|
|
52
|
+
Agent["AI coding agent<br/>Claude Code, Claude Desktop, Cursor, Windsurf, Codex, Gemini"]
|
|
53
|
+
|
|
54
|
+
Codebase --> Indexer --> Graph
|
|
55
|
+
Graph --> MCP
|
|
56
|
+
Graph --> CLI
|
|
57
|
+
Graph --> HTTP
|
|
58
|
+
MCP --> Agent
|
|
67
59
|
```
|
|
68
60
|
|
|
69
61
|
1. **Index once** — SDL-MCP parses every symbol in your repo and stores it as a compact metadata record (a "Symbol Card") in a graph database
|
|
@@ -105,24 +97,14 @@ Point your MCP client at the server and the agent gains access to all SDL-MCP to
|
|
|
105
97
|
|
|
106
98
|
The core innovation. Named after the adjustable aperture that controls light flow in optics, the Iris Gate Ladder lets agents dial their context "aperture" from a pinhole to wide-open.
|
|
107
99
|
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
Signatures + control flow, bodies replaced with /* ... */
|
|
117
|
-
"What's the shape of this class?"
|
|
118
|
-
|
|
119
|
-
~600 RUNG 3 ▸ Hot-Path Excerpt
|
|
120
|
-
Only lines matching specific identifiers + context
|
|
121
|
-
"Where exactly is `this.cache` initialized?"
|
|
122
|
-
|
|
123
|
-
~2,000 RUNG 4 ▸ Raw Code Window Policy-gated
|
|
124
|
-
Full source code, requires justification
|
|
125
|
-
"I need to rewrite this error handler"
|
|
100
|
+
```mermaid
|
|
101
|
+
flowchart TB
|
|
102
|
+
R1["~100 tokens<br/>Rung 1: Symbol Card<br/>Name, signature, summary, dependencies, metrics"]
|
|
103
|
+
R2["~300 tokens<br/>Rung 2: Skeleton IR<br/>Signatures and control flow with bodies elided"]
|
|
104
|
+
R3["~600 tokens<br/>Rung 3: Hot-Path Excerpt<br/>Identifier-focused lines with context"]
|
|
105
|
+
R4["~2,000 tokens<br/>Rung 4: Raw Code Window<br/>Policy-gated full source"]
|
|
106
|
+
|
|
107
|
+
R1 --> R2 --> R3 --> R4
|
|
126
108
|
```
|
|
127
109
|
|
|
128
110
|
> **Most questions are answered at Rungs 1-2** without ever reading raw code. That's where the token savings come from.
|
|
@@ -153,26 +135,21 @@ The core innovation. Named after the adjustable aperture that controls light flo
|
|
|
153
135
|
|
|
154
136
|
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.
|
|
155
137
|
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
│ Cluster: auth-module (8 members) │
|
|
172
|
-
│ Process: request-pipeline (intermediate, depth 1) │
|
|
173
|
-
│ Test: auth.test.ts (distance: 1, proximity: 0.9)│
|
|
174
|
-
│ ETag: a7f3c2... (for conditional requests) │
|
|
175
|
-
└─────────────────────────────────────────────────────────┘
|
|
138
|
+
```mermaid
|
|
139
|
+
flowchart TB
|
|
140
|
+
Card["Symbol Card: validateToken"]
|
|
141
|
+
Kind["Kind: function (exported)"]
|
|
142
|
+
File["File: src/auth/jwt.ts:42-67"]
|
|
143
|
+
Signature["Signature: (token: string, opts?: ValidateOpts) -> Promise<DecodedToken>"]
|
|
144
|
+
Summary["Summary: validates JWT signature and expiration"]
|
|
145
|
+
Invariants["Invariants: throws on expired token"]
|
|
146
|
+
SideEffects["Side effects: logs to audit trail"]
|
|
147
|
+
Deps["Dependencies: verifySignature, checkExpiry, jsonwebtoken, AuditLogger"]
|
|
148
|
+
Metrics["Metrics: fan-in 12, fan-out 4, churn 3/30d"]
|
|
149
|
+
Context["Context: auth-module, request-pipeline, auth.test.ts"]
|
|
150
|
+
ETag["ETag: a7f3c2..."]
|
|
151
|
+
|
|
152
|
+
Card --> Kind --> File --> Signature --> Summary --> Invariants --> SideEffects --> Deps --> Metrics --> Context --> ETag
|
|
176
153
|
```
|
|
177
154
|
|
|
178
155
|
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).
|
|
@@ -191,23 +168,16 @@ Cards include **confidence-scored call resolution** (the pass-2 resolver traces
|
|
|
191
168
|
|
|
192
169
|
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.
|
|
193
170
|
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
hashPassword getUserById envLoader
|
|
205
|
-
│
|
|
206
|
-
◆ frontier
|
|
207
|
-
(outside budget)
|
|
208
|
-
|
|
209
|
-
8 cards returned · ~800 tokens
|
|
210
|
-
vs. reading 8 files · ~16,000 tokens
|
|
171
|
+
```mermaid
|
|
172
|
+
flowchart TD
|
|
173
|
+
Task["Task: Fix the auth middleware"] --> Slice["sdl.slice.build"]
|
|
174
|
+
Slice --> Auth["authenticate"]
|
|
175
|
+
Slice --> Validate["validateToken"]
|
|
176
|
+
Slice --> Config["JwtConfig"]
|
|
177
|
+
Auth --> Hash["hashPassword"]
|
|
178
|
+
Validate --> User["getUserById"]
|
|
179
|
+
Config --> Env["envLoader"]
|
|
180
|
+
Env -. frontier outside budget .-> Frontier["spillover frontier"]
|
|
211
181
|
```
|
|
212
182
|
|
|
213
183
|
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.
|
|
@@ -226,19 +196,28 @@ Slices have handles, leases, refresh (delta-only updates), and spillover (paged
|
|
|
226
196
|
|
|
227
197
|
`git diff` tells you what lines changed. SDL-MCP tells you what that change *means* and who's affected.
|
|
228
198
|
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
199
|
+
```mermaid
|
|
200
|
+
flowchart TD
|
|
201
|
+
Change["Modified validateToken() signature"]
|
|
202
|
+
Sig["signatureDiff<br/>added options?: object"]
|
|
203
|
+
Inv["invariantDiff<br/>added throws on expired"]
|
|
204
|
+
Fx["sideEffectDiff<br/>added logs to audit trail"]
|
|
205
|
+
Blast["Blast radius"]
|
|
206
|
+
A1["authenticate()<br/>distance 1"]
|
|
207
|
+
A2["refreshSession()<br/>distance 1"]
|
|
208
|
+
A3["AuthMiddleware<br/>distance 2"]
|
|
209
|
+
A4["auth.test.ts<br/>re-run recommended"]
|
|
210
|
+
|
|
211
|
+
Change --> Sig
|
|
212
|
+
Change --> Inv
|
|
213
|
+
Change --> Fx
|
|
214
|
+
Sig --> Blast
|
|
215
|
+
Inv --> Blast
|
|
216
|
+
Fx --> Blast
|
|
217
|
+
Blast --> A1
|
|
218
|
+
Blast --> A2
|
|
219
|
+
Blast --> A3
|
|
220
|
+
Blast --> A4
|
|
242
221
|
```
|
|
243
222
|
|
|
244
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.
|
|
@@ -257,13 +236,13 @@ Slices have handles, leases, refresh (delta-only updates), and spillover (paged
|
|
|
257
236
|
|
|
258
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 *current* code, not your last save.
|
|
259
238
|
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
239
|
+
```mermaid
|
|
240
|
+
flowchart LR
|
|
241
|
+
Editor["Editor keystrokes"] --> Push["sdl.buffer.push"]
|
|
242
|
+
Push --> Overlay["Overlay store"]
|
|
243
|
+
Overlay --> Reads["Merged reads<br/>search, cards, slices"]
|
|
244
|
+
Overlay --> Persist["save / idle checkpoint"]
|
|
245
|
+
Persist --> DB["LadybugDB durable graph"]
|
|
267
246
|
```
|
|
268
247
|
|
|
269
248
|
**Why it matters:**
|
|
@@ -296,20 +275,20 @@ The sandboxed runtime execution tool (`sdl.runtime.execute`) has its own governa
|
|
|
296
275
|
|
|
297
276
|
---
|
|
298
277
|
|
|
299
|
-
### Agent
|
|
278
|
+
### Agent Context — Task-Shaped Retrieval
|
|
300
279
|
|
|
301
|
-
`sdl.agent.
|
|
280
|
+
`sdl.agent.context` is SDL-MCP's task-shaped context engine. Give it a task type (`debug`, `review`, `implement`, `explain`), a description, and a budget — it selects the right Iris Gate rungs, collects evidence, and returns context tuned to the job. In Code Mode, `sdl.context` provides the same retrieval surface without dropping into `sdl.workflow`.
|
|
302
281
|
|
|
303
282
|
The feedback loop (`sdl.agent.feedback`) records which symbols were useful and which were missing, improving future slice quality.
|
|
304
283
|
|
|
305
284
|
`sdl.context.summary` generates portable, token-bounded context briefings in markdown, JSON, or clipboard format for use outside MCP environments.
|
|
306
285
|
|
|
307
286
|
**Why it matters:**
|
|
308
|
-
-
|
|
287
|
+
- Task-shaped context retrieval plans the **right Iris Gate path** within a token budget
|
|
309
288
|
- Feedback loop records what was useful/missing, improving future slice quality
|
|
310
289
|
- Portable context summaries export findings for use outside MCP environments
|
|
311
290
|
|
|
312
|
-
[Agent
|
|
291
|
+
[Agent Context Deep Dive →](./docs/feature-deep-dives/agent-context.md) · [Context Modes →](./docs/feature-deep-dives/context-modes.md)
|
|
313
292
|
|
|
314
293
|
---
|
|
315
294
|
|
|
@@ -331,21 +310,16 @@ Run tests, linters, and scripts through SDL-MCP's governance layer instead of un
|
|
|
331
310
|
|
|
332
311
|
Agents forget everything between sessions. SDL-MCP fixes this with a **graph-backed memory system** that lets agents store decisions, bugfix context, and task notes linked directly to the symbols and files they relate to. Memories are stored both in the graph database (for fast querying) and as checked-in markdown files (for version control and team sharing).
|
|
333
312
|
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
│ ├── MEMORY_OF ──▶ authenticate() │
|
|
345
|
-
│ └── HAS_MEMORY ◀── Repo ▼
|
|
346
|
-
│ "Previous fix: race condition
|
|
347
|
-
└──▶ .sdl-memory/bugfixes/a1b2c3.md in authenticate() — mutex added"
|
|
348
|
-
(YAML frontmatter + markdown)
|
|
313
|
+
```mermaid
|
|
314
|
+
flowchart LR
|
|
315
|
+
Session1["Agent session 1<br/>records bugfix memory"] --> Store["sdl.memory.store"]
|
|
316
|
+
Store --> Graph["LadybugDB memory node"]
|
|
317
|
+
Store --> Files[".sdl-memory/bugfixes/<id>.md"]
|
|
318
|
+
Graph --> Link1["MEMORY_OF -> authenticate()"]
|
|
319
|
+
Graph --> Link2["HAS_MEMORY -> repo"]
|
|
320
|
+
Session2["Agent session 2"] --> Surface["sdl.memory.surface"]
|
|
321
|
+
Surface --> Graph
|
|
322
|
+
Graph --> Recall["Relevant memory surfaced<br/>race condition fix in authenticate()"]
|
|
349
323
|
```
|
|
350
324
|
|
|
351
325
|
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.
|
|
@@ -362,7 +336,7 @@ Memories are **automatically surfaced** inside graph slices — when an agent bu
|
|
|
362
336
|
|
|
363
337
|
### CLI Tool Access — No MCP Server Required
|
|
364
338
|
|
|
365
|
-
Access all
|
|
339
|
+
Access all 32 flat SDL action tools directly from the command line with `sdl-mcp tool`. No MCP server, transport, or SDK is required.
|
|
366
340
|
|
|
367
341
|
```bash
|
|
368
342
|
# Search for symbols
|
|
@@ -389,20 +363,19 @@ Features include typed argument coercion (string, number, boolean, string[], jso
|
|
|
389
363
|
|
|
390
364
|
### Tool Gateway — 81% Token Reduction
|
|
391
365
|
|
|
392
|
-
The tool gateway consolidates
|
|
366
|
+
The tool gateway consolidates the 32 flat SDL action tools into **4 namespace-scoped tools** (`sdl.query`, `sdl.code`, `sdl.repo`, `sdl.agent`), reducing `tools/list` overhead from the full flat schema surface to a compact gateway surface.
|
|
393
367
|
|
|
394
|
-
```
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
~3,029 tokens saved per conversation
|
|
368
|
+
```mermaid
|
|
369
|
+
flowchart LR
|
|
370
|
+
Before["Flat mode<br/>32 flat action tools<br/>plus universal discovery/info"] --> After["Gateway mode<br/>4 namespace tools<br/>plus universal discovery/info"]
|
|
371
|
+
After --> Savings["Smaller tools/list payload<br/>lower agent startup overhead"]
|
|
399
372
|
```
|
|
400
373
|
|
|
401
374
|
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.
|
|
402
375
|
|
|
403
376
|
**Why it matters:**
|
|
404
|
-
-
|
|
405
|
-
-
|
|
377
|
+
- Large reduction in `tools/list` overhead for gateway-first agents
|
|
378
|
+
- 32 flat action tools consolidated into 4 namespace-scoped tools for simpler agent selection
|
|
406
379
|
- Fewer tool choices means faster and more accurate tool dispatch by the agent
|
|
407
380
|
- Backward-compatible: legacy flat tool names optionally emitted alongside
|
|
408
381
|
|
|
@@ -414,7 +387,7 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
|
|
|
414
387
|
|
|
415
388
|
<br/>
|
|
416
389
|
|
|
417
|
-
## All
|
|
390
|
+
## All 36 Unique Tool Surfaces at a Glance
|
|
418
391
|
|
|
419
392
|
<table>
|
|
420
393
|
<tr><th>Category</th><th>Tool</th><th>One-Line Description</th></tr>
|
|
@@ -458,7 +431,7 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
|
|
|
458
431
|
<td><code>sdl.context.summary</code></td><td>Token-bounded portable briefing (markdown/JSON/clipboard)</td></tr>
|
|
459
432
|
|
|
460
433
|
<tr><td rowspan="3"><strong>Agent</strong></td>
|
|
461
|
-
<td><code>sdl.agent.
|
|
434
|
+
<td><code>sdl.agent.context</code></td><td>Task-shaped context retrieval with budget-controlled rung planning</td></tr>
|
|
462
435
|
<tr><td><code>sdl.agent.feedback</code></td><td>Record which symbols were useful or missing</td></tr>
|
|
463
436
|
<tr><td><code>sdl.agent.feedback.query</code></td><td>Query aggregated feedback statistics</td></tr>
|
|
464
437
|
|
|
@@ -472,8 +445,9 @@ Each gateway tool accepts an `action` discriminator field (e.g., `{ action: "sym
|
|
|
472
445
|
<tr><td><code>sdl.memory.remove</code></td><td>Soft-delete a memory from graph and optionally from disk</td></tr>
|
|
473
446
|
<tr><td><code>sdl.memory.surface</code></td><td>Auto-surface relevant memories for a task context</td></tr>
|
|
474
447
|
|
|
475
|
-
<tr><td rowspan="
|
|
476
|
-
<td><code>sdl.
|
|
448
|
+
<tr><td rowspan="3"><strong>Code Mode</strong></td>
|
|
449
|
+
<td><code>sdl.context</code></td><td>Code Mode task-shaped context retrieval for explain/debug/review/implement work</td></tr>
|
|
450
|
+
<tr><td><code>sdl.workflow</code></td><td>Multi-step operations with budget tracking, ETag caching, and transforms</td></tr>
|
|
477
451
|
<tr><td><code>sdl.manual</code></td><td>Self-documentation — query usage guide, action schemas, output format reference</td></tr>
|
|
478
452
|
|
|
479
453
|
<tr><td rowspan="3"><strong>Meta</strong></td>
|
|
@@ -559,46 +533,21 @@ A **VSCode extension** (`sdl-mcp-vscode/`) provides live buffer integration for
|
|
|
559
533
|
|
|
560
534
|
## System Architecture
|
|
561
535
|
|
|
562
|
-
```
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
│ getCard │ │refresh│ │skel│ │blast│ │feedbk│ │ query │
|
|
578
|
-
│ getCards │ │spill. │ │hot │ │risk │ │chain │ │ surface │
|
|
579
|
-
└────┬─────┘ └───┬───┘ └─┬──┘ └──┬──┘ └──┬───┘ └──┬─────┘
|
|
580
|
-
│ │ │ │ │ │
|
|
581
|
-
┌────▼───────────▼───────▼───────▼───────▼────────▼───────┐
|
|
582
|
-
│ Policy Engine │
|
|
583
|
-
│ Proof-of-need gating · Token budgets · Audit logging │
|
|
584
|
-
└──────────────────────────┬──────────────────────────────┘
|
|
585
|
-
│
|
|
586
|
-
┌──────────────────────────▼──────────────────────────────┐
|
|
587
|
-
│ LadybugDB (Graph) │
|
|
588
|
-
│ Symbols · Edges · Files · Versions · Clusters · │
|
|
589
|
-
│ Processes · Memories · Metrics │
|
|
590
|
-
└──────────────────────────▲──────────────────────────────┘
|
|
591
|
-
│
|
|
592
|
-
┌──────────────────────────┴──────────────────────────────┐
|
|
593
|
-
│ Indexer Pipeline │
|
|
594
|
-
│ ┌─────────────────┐ ┌────────────────────────────┐ │
|
|
595
|
-
│ │ Rust (napi-rs) │ or │ Tree-sitter (TS fallback) │ │
|
|
596
|
-
│ │ default engine │ │ 11 language grammars │ │
|
|
597
|
-
│ └────────┬────────┘ └──────────┬─────────────────┘ │
|
|
598
|
-
│ │ Pass 1: Symbols + Imports + Calls │
|
|
599
|
-
│ │ Pass 2: Cross-file call resolution │
|
|
600
|
-
│ │ Semantic: Embeddings + LLM summaries │
|
|
601
|
-
└───────────┴──────────────────────────────────────────────┘
|
|
536
|
+
```mermaid
|
|
537
|
+
flowchart TD
|
|
538
|
+
Clients["MCP clients<br/>Claude Code, Claude Desktop, Cursor, Windsurf, Codex, Gemini"]
|
|
539
|
+
Gateway["Tool gateway<br/>sdl.query, sdl.code, sdl.repo, sdl.agent"]
|
|
540
|
+
Flat["Flat tools and optional code-mode surfaces"]
|
|
541
|
+
Policy["Policy engine<br/>proof-of-need, budgets, audit logging"]
|
|
542
|
+
Graph["LadybugDB graph<br/>symbols, edges, files, versions, memories"]
|
|
543
|
+
Indexer["Indexer pipeline<br/>Rust native or Tree-sitter fallback<br/>pass 1, pass 2, semantic enrichment"]
|
|
544
|
+
|
|
545
|
+
Clients --> Gateway
|
|
546
|
+
Clients --> Flat
|
|
547
|
+
Gateway --> Policy
|
|
548
|
+
Flat --> Policy
|
|
549
|
+
Policy --> Graph
|
|
550
|
+
Indexer --> Graph
|
|
602
551
|
```
|
|
603
552
|
|
|
604
553
|
[Full Architecture Documentation →](./docs/architecture.md)
|
|
@@ -614,7 +563,7 @@ A **VSCode extension** (`sdl-mcp-vscode/`) provides live buffer integration for
|
|
|
614
563
|
| Document | Description |
|
|
615
564
|
|:---------|:------------|
|
|
616
565
|
| [Getting Started](./docs/getting-started.md) | Installation, 5-minute setup, MCP client config |
|
|
617
|
-
| [MCP Tools Reference](./docs/mcp-tools-detailed.md) | Detailed docs for all
|
|
566
|
+
| [MCP Tools Reference](./docs/mcp-tools-detailed.md) | Detailed docs for all 36 unique tool surfaces (parameters, responses, examples) |
|
|
618
567
|
| [CLI Reference](./docs/cli-reference.md) | All CLI commands and options |
|
|
619
568
|
| [Configuration Reference](./docs/configuration-reference.md) | Every config option with defaults and guidance |
|
|
620
569
|
| [Agent Workflows](./docs/agent-workflows.md) | Workflow instructions for CLAUDE.md / AGENTS.md |
|
|
@@ -631,14 +580,15 @@ A **VSCode extension** (`sdl-mcp-vscode/`) provides live buffer integration for
|
|
|
631
580
|
| [Delta & Blast Radius](./docs/feature-deep-dives/delta-blast-radius.md) | Semantic diffs, ranked impact analysis, PR risk scoring |
|
|
632
581
|
| [Live Indexing](./docs/feature-deep-dives/live-indexing.md) | Real-time editor buffer integration and overlay architecture |
|
|
633
582
|
| [Governance & Policy](./docs/feature-deep-dives/governance-policy.md) | Proof-of-need gating, audit logging, runtime sandboxing |
|
|
634
|
-
| [Agent
|
|
583
|
+
| [Agent Context](./docs/feature-deep-dives/agent-context.md) | Task-shaped context retrieval, feedback loops, portable context summaries |
|
|
584
|
+
| [Context Modes](./docs/feature-deep-dives/context-modes.md) | Precise vs broad retrieval, adaptive symbol ranking, benchmark trade-offs |
|
|
635
585
|
| [Indexing & Languages](./docs/feature-deep-dives/indexing-languages.md) | Rust/TS engines, two-pass architecture, 12-language support |
|
|
636
586
|
| [Runtime Execution](./docs/feature-deep-dives/runtime-execution.md) | Sandboxed subprocess execution with governance |
|
|
637
587
|
| [CLI Tool Access](./docs/feature-deep-dives/cli-tool-access.md) | Direct CLI access to all tool actions, output formats, stdin piping, scripting |
|
|
638
588
|
| [Tool Gateway](./docs/feature-deep-dives/tool-gateway.md) | 35→4 tool consolidation, token reduction, thin schemas, migration guide |
|
|
639
589
|
| [Semantic Engine](./docs/feature-deep-dives/semantic-engine.md) | Pass-2 call resolution, embedding search, LLM summaries, confidence scoring |
|
|
640
590
|
| [Semantic Embeddings Setup](./docs/feature-deep-dives/semantic-embeddings-setup.md) | Dependencies, model installation, provider configuration, tier-by-tier setup |
|
|
641
|
-
| [Code Mode](./docs/feature-deep-dives/code-mode.md) |
|
|
591
|
+
| [Code Mode](./docs/feature-deep-dives/code-mode.md) | `sdl.context`, `sdl.workflow`, action discovery, manual reference, one-call workflows |
|
|
642
592
|
| [Development Memories](./docs/feature-deep-dives/development-memories.md) | Graph-backed cross-session memory, file sync, staleness detection, auto-surfacing |
|
|
643
593
|
| [Token Savings Meter](./docs/feature-deep-dives/token-savings-meter.md) | Per-call meter, session summaries, lifetime tracking, `sdl.usage.stats` |
|
|
644
594
|
|
|
@@ -96,7 +96,6 @@
|
|
|
96
96
|
},
|
|
97
97
|
"semantic": {
|
|
98
98
|
"enabled": true,
|
|
99
|
-
"alpha": 0.6,
|
|
100
99
|
"provider": "local",
|
|
101
100
|
"model": "all-MiniLM-L6-v2",
|
|
102
101
|
"modelCacheDir": null,
|
|
@@ -107,15 +106,8 @@
|
|
|
107
106
|
"summaryApiBaseUrl": null,
|
|
108
107
|
"summaryMaxConcurrency": 5,
|
|
109
108
|
"summaryBatchSize": 20,
|
|
110
|
-
"ann": {
|
|
111
|
-
"enabled": true,
|
|
112
|
-
"m": 16,
|
|
113
|
-
"efConstruction": 200,
|
|
114
|
-
"efSearch": 50,
|
|
115
|
-
"maxElements": 200000
|
|
116
|
-
},
|
|
117
109
|
"retrieval": {
|
|
118
|
-
"mode": "
|
|
110
|
+
"mode": "hybrid",
|
|
119
111
|
"extensionsOptional": true,
|
|
120
112
|
"fts": {
|
|
121
113
|
"enabled": true,
|
|
@@ -185,7 +177,7 @@
|
|
|
185
177
|
},
|
|
186
178
|
"gateway": {
|
|
187
179
|
"enabled": true,
|
|
188
|
-
"emitLegacyTools":
|
|
180
|
+
"emitLegacyTools": false
|
|
189
181
|
},
|
|
190
182
|
"httpAuth": {
|
|
191
183
|
"enabled": false,
|
|
@@ -194,9 +186,9 @@
|
|
|
194
186
|
"codeMode": {
|
|
195
187
|
"enabled": true,
|
|
196
188
|
"exclusive": true,
|
|
197
|
-
"
|
|
198
|
-
"
|
|
199
|
-
"
|
|
189
|
+
"maxWorkflowSteps": 20,
|
|
190
|
+
"maxWorkflowTokens": 50000,
|
|
191
|
+
"maxWorkflowDurationMs": 60000,
|
|
200
192
|
"ladderValidation": "warn",
|
|
201
193
|
"etagCaching": true
|
|
202
194
|
},
|