sdl-mcp 0.11.10 → 0.11.12

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.
Files changed (94) hide show
  1. package/README.md +3 -2
  2. package/config/benchmark.ci.config.json +6 -4
  3. package/config/sdlmcp.config.example.json +6 -6
  4. package/config/sdlmcp.config.schema.json +10 -10
  5. package/dist/.tsbuildinfo +1 -1
  6. package/dist/cli/commands/benchmark.d.ts.map +1 -1
  7. package/dist/cli/commands/benchmark.js +4 -3
  8. package/dist/cli/commands/benchmark.js.map +1 -1
  9. package/dist/cli/commands/enforcement-bootstrap.d.ts +3 -4
  10. package/dist/cli/commands/enforcement-bootstrap.d.ts.map +1 -1
  11. package/dist/cli/commands/enforcement-bootstrap.js +19 -19
  12. package/dist/cli/commands/enforcement-bootstrap.js.map +1 -1
  13. package/dist/cli/commands/init.d.ts +1 -1
  14. package/dist/cli/commands/init.d.ts.map +1 -1
  15. package/dist/cli/commands/init.js +68 -27
  16. package/dist/cli/commands/init.js.map +1 -1
  17. package/dist/cli/setup-wizard/config-diff.js +2 -2
  18. package/dist/cli/setup-wizard/config-diff.js.map +1 -1
  19. package/dist/cli/setup-wizard/recommendations.js +1 -1
  20. package/dist/cli/setup-wizard/recommendations.js.map +1 -1
  21. package/dist/code-mode/manual-generator.js +1 -1
  22. package/dist/config/loadConfig.d.ts.map +1 -1
  23. package/dist/config/loadConfig.js +6 -2
  24. package/dist/config/loadConfig.js.map +1 -1
  25. package/dist/config/types.d.ts +27 -0
  26. package/dist/config/types.d.ts.map +1 -1
  27. package/dist/config/types.js +21 -10
  28. package/dist/config/types.js.map +1 -1
  29. package/dist/gateway/schemas.d.ts +2 -0
  30. package/dist/gateway/schemas.d.ts.map +1 -1
  31. package/dist/gateway/schemas.js +1 -1
  32. package/dist/gateway/schemas.js.map +1 -1
  33. package/dist/indexer/fileScanner.d.ts.map +1 -1
  34. package/dist/indexer/fileScanner.js +20 -0
  35. package/dist/indexer/fileScanner.js.map +1 -1
  36. package/dist/indexer/indexer.d.ts +1 -0
  37. package/dist/indexer/indexer.d.ts.map +1 -1
  38. package/dist/indexer/indexer.js +24 -83
  39. package/dist/indexer/indexer.js.map +1 -1
  40. package/dist/indexer/language-packs.d.ts.map +1 -1
  41. package/dist/indexer/language-packs.js +203 -6
  42. package/dist/indexer/language-packs.js.map +1 -1
  43. package/dist/indexer/language.d.ts.map +1 -1
  44. package/dist/indexer/language.js +22 -0
  45. package/dist/indexer/language.js.map +1 -1
  46. package/dist/indexer/provider-first/executor.js +18 -0
  47. package/dist/indexer/provider-first/executor.js.map +1 -1
  48. package/dist/indexer/provider-first/materializer.d.ts +2 -0
  49. package/dist/indexer/provider-first/materializer.d.ts.map +1 -1
  50. package/dist/indexer/provider-first/materializer.js +82 -0
  51. package/dist/indexer/provider-first/materializer.js.map +1 -1
  52. package/dist/indexer/provider-first/shadow-finalization.d.ts +1 -0
  53. package/dist/indexer/provider-first/shadow-finalization.d.ts.map +1 -1
  54. package/dist/indexer/provider-first/shadow-finalization.js +49 -9
  55. package/dist/indexer/provider-first/shadow-finalization.js.map +1 -1
  56. package/dist/indexer/provider-first/source-call-proof.d.ts.map +1 -1
  57. package/dist/indexer/provider-first/source-call-proof.js +25 -0
  58. package/dist/indexer/provider-first/source-call-proof.js.map +1 -1
  59. package/dist/indexer/treesitter/grammarLoader.d.ts +1 -1
  60. package/dist/indexer/treesitter/grammarLoader.d.ts.map +1 -1
  61. package/dist/indexer/treesitter/grammarLoader.js +28 -4
  62. package/dist/indexer/treesitter/grammarLoader.js.map +1 -1
  63. package/dist/indexer/watcher.d.ts +12 -0
  64. package/dist/indexer/watcher.d.ts.map +1 -1
  65. package/dist/indexer/watcher.js +62 -2
  66. package/dist/indexer/watcher.js.map +1 -1
  67. package/dist/mcp/dispatch-limiter.d.ts +1 -0
  68. package/dist/mcp/dispatch-limiter.d.ts.map +1 -1
  69. package/dist/mcp/dispatch-limiter.js +35 -2
  70. package/dist/mcp/dispatch-limiter.js.map +1 -1
  71. package/dist/mcp/savings-meter.d.ts +1 -1
  72. package/dist/mcp/savings-meter.d.ts.map +1 -1
  73. package/dist/mcp/savings-meter.js +3 -3
  74. package/dist/mcp/savings-meter.js.map +1 -1
  75. package/dist/mcp/server-instructions.js +1 -1
  76. package/dist/mcp/server-instructions.js.map +1 -1
  77. package/dist/mcp/tools/repo.d.ts.map +1 -1
  78. package/dist/mcp/tools/repo.js +9 -0
  79. package/dist/mcp/tools/repo.js.map +1 -1
  80. package/dist/mcp/tools/search-edit/structural.d.ts.map +1 -1
  81. package/dist/mcp/tools/search-edit/structural.js +114 -3
  82. package/dist/mcp/tools/search-edit/structural.js.map +1 -1
  83. package/dist/mcp/tools/usage.d.ts.map +1 -1
  84. package/dist/mcp/tools/usage.js +12 -23
  85. package/dist/mcp/tools/usage.js.map +1 -1
  86. package/dist/mcp/tools.d.ts +2 -0
  87. package/dist/mcp/tools.d.ts.map +1 -1
  88. package/dist/mcp/tools.js +1 -1
  89. package/dist/mcp/tools.js.map +1 -1
  90. package/dist/semantic/providers/lsp/client.d.ts.map +1 -1
  91. package/dist/semantic/providers/lsp/client.js +28 -12
  92. package/dist/semantic/providers/lsp/client.js.map +1 -1
  93. package/package.json +5 -5
  94. package/templates/SDL.md +3 -2
package/README.md CHANGED
@@ -16,12 +16,13 @@ _Stop feeding entire files into the context window.<br/>Start giving agents exac
16
16
  ![GitHub commit activity](https://img.shields.io/github/commit-activity/w/GlitterKill/sdl-mcp?style=for-the-badge)<br/>
17
17
  [![RoastMyCode: A](https://roastmycode.ai/badge/GlitterKill/sdl-mcp)](https://roastmycode.ai/roast/latest/GlitterKill/sdl-mcp)
18
18
 
19
- </div>
20
-
21
19
  ---
22
20
 
23
21
  <br/>
24
22
 
23
+ [SDL Token Savings](https://github.com/user-attachments/assets/cdf535a0-dc6e-4c63-ba52-646acfab8999)
24
+ </div>
25
+
25
26
  ## What's the problem?
26
27
 
27
28
  Every time an AI coding agent reads a file to answer a question, it consumes thousands of tokens. Most of those tokens are irrelevant to the task. The agent doesn't need 500 lines of a file to know that `validateToken` takes a `string` and returns a `Promise<User>` — but it reads them anyway, because that's all it has.
@@ -23,14 +23,16 @@
23
23
  "allowableDecreasePercent": 5
24
24
  },
25
25
  "edgesPerSymbol": {
26
- "minValue": 1,
26
+ "minValue": 0.5,
27
27
  "trend": "higher-is-better",
28
- "allowableDecreasePercent": 5
28
+ "allowableDecreasePercent": 5,
29
+ "_comment": "Provider-first SCIP on locked zod-oss produced ~0.53 edges/symbol on hosted Linux after semantic enrichment became default; keep a nonzero quality floor without requiring the legacy edge-density shape."
29
30
  },
30
31
  "graphConnectivity": {
31
- "minValue": 0.3,
32
+ "minValue": 0.28,
32
33
  "trend": "higher-is-better",
33
- "allowableDecreasePercent": 5
34
+ "allowableDecreasePercent": 5,
35
+ "_comment": "Provider-first SCIP on locked zod-oss produced ~0.288 graph connectivity on hosted Linux; keep this just below the observed value to catch material connectivity regressions."
34
36
  },
35
37
  "exportedSymbolRatio": {
36
38
  "minValue": 0.2,
@@ -202,7 +202,7 @@
202
202
  }
203
203
  },
204
204
  "semanticEnrichment": {
205
- "enabled": false,
205
+ "enabled": true,
206
206
  "autoRunOnIndexRefresh": false,
207
207
  "installPolicy": "never",
208
208
  "cacheDir": null,
@@ -212,7 +212,7 @@
212
212
  "providers": {
213
213
  "scip": {
214
214
  "enabled": true,
215
- "indexes": []
215
+ "indexes": [{ "path": "index.scip" }]
216
216
  },
217
217
  "lsp": {
218
218
  "enabled": true,
@@ -315,7 +315,7 @@
315
315
  "allowedRepoRoots": []
316
316
  },
317
317
  "scip": {
318
- "enabled": false,
318
+ "enabled": true,
319
319
  "indexes": [
320
320
  {
321
321
  "path": "index.scip",
@@ -329,11 +329,11 @@
329
329
  "confidence": 0.95,
330
330
  "autoIngestOnRefresh": true,
331
331
  "generator": {
332
- "enabled": false,
332
+ "enabled": true,
333
333
  "binary": "scip-io",
334
- "args": [],
334
+ "args": ["--include-additional-configs", "--timeout", "3600"],
335
335
  "autoInstall": true,
336
- "timeoutMs": 600000,
336
+ "timeoutMs": 18000000,
337
337
  "cleanupAfterIngest": true,
338
338
  "cacheGeneratedIndexes": true
339
339
  }
@@ -1095,7 +1095,7 @@
1095
1095
  "type": "object",
1096
1096
  "description": "Provider-backed graph precision enrichment. Separate from semantic embeddings/retrieval.",
1097
1097
  "properties": {
1098
- "enabled": { "type": "boolean", "default": false },
1098
+ "enabled": { "type": "boolean", "default": true },
1099
1099
  "autoRunOnIndexRefresh": {
1100
1100
  "type": "boolean",
1101
1101
  "default": false,
@@ -1238,7 +1238,7 @@
1238
1238
  }
1239
1239
  },
1240
1240
  "default": {
1241
- "enabled": false,
1241
+ "enabled": true,
1242
1242
  "autoRunOnIndexRefresh": false,
1243
1243
  "installPolicy": "never",
1244
1244
  "cacheDir": null,
@@ -1792,7 +1792,7 @@
1792
1792
  "type": "object",
1793
1793
  "description": "SCIP index ingestion configuration",
1794
1794
  "properties": {
1795
- "enabled": { "type": "boolean", "default": false },
1795
+ "enabled": { "type": "boolean", "default": true },
1796
1796
  "indexes": {
1797
1797
  "type": "array",
1798
1798
  "items": {
@@ -1803,7 +1803,7 @@
1803
1803
  },
1804
1804
  "required": ["path"]
1805
1805
  },
1806
- "default": []
1806
+ "default": [{ "path": "index.scip" }]
1807
1807
  },
1808
1808
  "externalSymbols": {
1809
1809
  "type": "object",
@@ -1835,19 +1835,19 @@
1835
1835
  "type": "object",
1836
1836
  "description": "Auto-generate index.scip via the scip-io CLI before each refresh. Has no effect unless scip.enabled is also true. When enabled and the binary is missing, sdl-mcp downloads it from GitHub releases into ~/.sdl-mcp/bin/ with mandatory SHA-256 verification against the release's SHA256SUMS.txt; installs are refused if the checksum file is absent.",
1837
1837
  "properties": {
1838
- "enabled": { "type": "boolean", "default": false },
1838
+ "enabled": { "type": "boolean", "default": true },
1839
1839
  "binary": { "type": "string", "default": "scip-io" },
1840
1840
  "args": {
1841
1841
  "type": "array",
1842
1842
  "items": { "type": "string" },
1843
- "default": []
1843
+ "default": ["--include-additional-configs", "--timeout", "3600"]
1844
1844
  },
1845
1845
  "autoInstall": { "type": "boolean", "default": true },
1846
1846
  "timeoutMs": {
1847
1847
  "type": "integer",
1848
1848
  "minimum": 1000,
1849
1849
  "maximum": 18000000,
1850
- "default": 600000
1850
+ "default": 18000000
1851
1851
  },
1852
1852
  "cleanupAfterIngest": {
1853
1853
  "type": "boolean",
@@ -1861,11 +1861,11 @@
1861
1861
  }
1862
1862
  },
1863
1863
  "default": {
1864
- "enabled": false,
1864
+ "enabled": true,
1865
1865
  "binary": "scip-io",
1866
- "args": [],
1866
+ "args": ["--include-additional-configs", "--timeout", "3600"],
1867
1867
  "autoInstall": true,
1868
- "timeoutMs": 600000,
1868
+ "timeoutMs": 18000000,
1869
1869
  "cleanupAfterIngest": true,
1870
1870
  "cacheGeneratedIndexes": true
1871
1871
  }