sdl-mcp 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (496) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +132 -0
  3. package/config/benchmark.ci.config.json +86 -0
  4. package/config/benchmark.ci.windows.config.json +86 -0
  5. package/config/benchmark.config.example.json +86 -0
  6. package/config/benchmark.config.json +86 -0
  7. package/config/sdlmcp.config.example.json +139 -0
  8. package/config/sdlmcp.config.json +48 -0
  9. package/config/sdlmcp.config.schema.json +381 -0
  10. package/dist/agent/evidence.d.ts +18 -0
  11. package/dist/agent/evidence.d.ts.map +1 -0
  12. package/dist/agent/evidence.js +107 -0
  13. package/dist/agent/evidence.js.map +1 -0
  14. package/dist/agent/executor.d.ts +28 -0
  15. package/dist/agent/executor.d.ts.map +1 -0
  16. package/dist/agent/executor.js +261 -0
  17. package/dist/agent/executor.js.map +1 -0
  18. package/dist/agent/index.d.ts +6 -0
  19. package/dist/agent/index.d.ts.map +1 -0
  20. package/dist/agent/index.js +6 -0
  21. package/dist/agent/index.js.map +1 -0
  22. package/dist/agent/orchestrator.d.ts +14 -0
  23. package/dist/agent/orchestrator.d.ts.map +1 -0
  24. package/dist/agent/orchestrator.js +108 -0
  25. package/dist/agent/orchestrator.js.map +1 -0
  26. package/dist/agent/planner.d.ts +21 -0
  27. package/dist/agent/planner.d.ts.map +1 -0
  28. package/dist/agent/planner.js +153 -0
  29. package/dist/agent/planner.js.map +1 -0
  30. package/dist/agent/types.d.ts +86 -0
  31. package/dist/agent/types.d.ts.map +1 -0
  32. package/dist/agent/types.js +2 -0
  33. package/dist/agent/types.js.map +1 -0
  34. package/dist/benchmark/index.d.ts +4 -0
  35. package/dist/benchmark/index.d.ts.map +1 -0
  36. package/dist/benchmark/index.js +4 -0
  37. package/dist/benchmark/index.js.map +1 -0
  38. package/dist/benchmark/regression.d.ts +40 -0
  39. package/dist/benchmark/regression.d.ts.map +1 -0
  40. package/dist/benchmark/regression.js +199 -0
  41. package/dist/benchmark/regression.js.map +1 -0
  42. package/dist/benchmark/smoothing.d.ts +40 -0
  43. package/dist/benchmark/smoothing.d.ts.map +1 -0
  44. package/dist/benchmark/smoothing.js +121 -0
  45. package/dist/benchmark/smoothing.js.map +1 -0
  46. package/dist/benchmark/threshold.d.ts +64 -0
  47. package/dist/benchmark/threshold.d.ts.map +1 -0
  48. package/dist/benchmark/threshold.js +173 -0
  49. package/dist/benchmark/threshold.js.map +1 -0
  50. package/dist/cli/argParsing.d.ts +34 -0
  51. package/dist/cli/argParsing.d.ts.map +1 -0
  52. package/dist/cli/argParsing.js +329 -0
  53. package/dist/cli/argParsing.js.map +1 -0
  54. package/dist/cli/commands/benchmark.d.ts +16 -0
  55. package/dist/cli/commands/benchmark.d.ts.map +1 -0
  56. package/dist/cli/commands/benchmark.js +412 -0
  57. package/dist/cli/commands/benchmark.js.map +1 -0
  58. package/dist/cli/commands/doctor.d.ts +3 -0
  59. package/dist/cli/commands/doctor.d.ts.map +1 -0
  60. package/dist/cli/commands/doctor.js +218 -0
  61. package/dist/cli/commands/doctor.js.map +1 -0
  62. package/dist/cli/commands/export.d.ts +12 -0
  63. package/dist/cli/commands/export.d.ts.map +1 -0
  64. package/dist/cli/commands/export.js +70 -0
  65. package/dist/cli/commands/export.js.map +1 -0
  66. package/dist/cli/commands/import.d.ts +10 -0
  67. package/dist/cli/commands/import.d.ts.map +1 -0
  68. package/dist/cli/commands/import.js +40 -0
  69. package/dist/cli/commands/import.js.map +1 -0
  70. package/dist/cli/commands/index.d.ts +3 -0
  71. package/dist/cli/commands/index.d.ts.map +1 -0
  72. package/dist/cli/commands/index.js +89 -0
  73. package/dist/cli/commands/index.js.map +1 -0
  74. package/dist/cli/commands/init.d.ts +3 -0
  75. package/dist/cli/commands/init.d.ts.map +1 -0
  76. package/dist/cli/commands/init.js +221 -0
  77. package/dist/cli/commands/init.js.map +1 -0
  78. package/dist/cli/commands/pull.d.ts +11 -0
  79. package/dist/cli/commands/pull.d.ts.map +1 -0
  80. package/dist/cli/commands/pull.js +47 -0
  81. package/dist/cli/commands/pull.js.map +1 -0
  82. package/dist/cli/commands/serve.d.ts +3 -0
  83. package/dist/cli/commands/serve.d.ts.map +1 -0
  84. package/dist/cli/commands/serve.js +72 -0
  85. package/dist/cli/commands/serve.js.map +1 -0
  86. package/dist/cli/commands/version.d.ts +3 -0
  87. package/dist/cli/commands/version.d.ts.map +1 -0
  88. package/dist/cli/commands/version.js +24 -0
  89. package/dist/cli/commands/version.js.map +1 -0
  90. package/dist/cli/index.d.ts +3 -0
  91. package/dist/cli/index.d.ts.map +1 -0
  92. package/dist/cli/index.js +213 -0
  93. package/dist/cli/index.js.map +1 -0
  94. package/dist/cli/logging.d.ts +10 -0
  95. package/dist/cli/logging.d.ts.map +1 -0
  96. package/dist/cli/logging.js +48 -0
  97. package/dist/cli/logging.js.map +1 -0
  98. package/dist/cli/transport/http.d.ts +3 -0
  99. package/dist/cli/transport/http.d.ts.map +1 -0
  100. package/dist/cli/transport/http.js +106 -0
  101. package/dist/cli/transport/http.js.map +1 -0
  102. package/dist/cli/transport/stdio.d.ts +3 -0
  103. package/dist/cli/transport/stdio.d.ts.map +1 -0
  104. package/dist/cli/transport/stdio.js +6 -0
  105. package/dist/cli/transport/stdio.js.map +1 -0
  106. package/dist/cli/types.d.ts +41 -0
  107. package/dist/cli/types.d.ts.map +1 -0
  108. package/dist/cli/types.js +2 -0
  109. package/dist/cli/types.js.map +1 -0
  110. package/dist/code/gate.d.ts +11 -0
  111. package/dist/code/gate.d.ts.map +1 -0
  112. package/dist/code/gate.js +134 -0
  113. package/dist/code/gate.js.map +1 -0
  114. package/dist/code/hotpath.d.ts +17 -0
  115. package/dist/code/hotpath.d.ts.map +1 -0
  116. package/dist/code/hotpath.js +200 -0
  117. package/dist/code/hotpath.js.map +1 -0
  118. package/dist/code/redact.d.ts +19 -0
  119. package/dist/code/redact.d.ts.map +1 -0
  120. package/dist/code/redact.js +92 -0
  121. package/dist/code/redact.js.map +1 -0
  122. package/dist/code/skeleton.d.ts +32 -0
  123. package/dist/code/skeleton.d.ts.map +1 -0
  124. package/dist/code/skeleton.js +610 -0
  125. package/dist/code/skeleton.js.map +1 -0
  126. package/dist/code/windows.d.ts +18 -0
  127. package/dist/code/windows.d.ts.map +1 -0
  128. package/dist/code/windows.js +236 -0
  129. package/dist/code/windows.js.map +1 -0
  130. package/dist/config/constants.d.ts +340 -0
  131. package/dist/config/constants.d.ts.map +1 -0
  132. package/dist/config/constants.js +379 -0
  133. package/dist/config/constants.js.map +1 -0
  134. package/dist/config/loadConfig.d.ts +3 -0
  135. package/dist/config/loadConfig.d.ts.map +1 -0
  136. package/dist/config/loadConfig.js +71 -0
  137. package/dist/config/loadConfig.js.map +1 -0
  138. package/dist/config/types.d.ts +509 -0
  139. package/dist/config/types.d.ts.map +1 -0
  140. package/dist/config/types.js +139 -0
  141. package/dist/config/types.js.map +1 -0
  142. package/dist/db/db.d.ts +4 -0
  143. package/dist/db/db.d.ts.map +1 -0
  144. package/dist/db/db.js +47 -0
  145. package/dist/db/db.js.map +1 -0
  146. package/dist/db/migrations.d.ts +15 -0
  147. package/dist/db/migrations.d.ts.map +1 -0
  148. package/dist/db/migrations.js +81 -0
  149. package/dist/db/migrations.js.map +1 -0
  150. package/dist/db/queries.d.ts +440 -0
  151. package/dist/db/queries.d.ts.map +1 -0
  152. package/dist/db/queries.js +1054 -0
  153. package/dist/db/queries.js.map +1 -0
  154. package/dist/db/schema.d.ts +132 -0
  155. package/dist/db/schema.d.ts.map +1 -0
  156. package/dist/db/schema.js +2 -0
  157. package/dist/db/schema.js.map +1 -0
  158. package/dist/delta/blastRadius.d.ts +24 -0
  159. package/dist/delta/blastRadius.d.ts.map +1 -0
  160. package/dist/delta/blastRadius.js +239 -0
  161. package/dist/delta/blastRadius.js.map +1 -0
  162. package/dist/delta/diff.d.ts +16 -0
  163. package/dist/delta/diff.d.ts.map +1 -0
  164. package/dist/delta/diff.js +236 -0
  165. package/dist/delta/diff.js.map +1 -0
  166. package/dist/delta/versioning.d.ts +11 -0
  167. package/dist/delta/versioning.d.ts.map +1 -0
  168. package/dist/delta/versioning.js +68 -0
  169. package/dist/delta/versioning.js.map +1 -0
  170. package/dist/graph/buildGraph.d.ts +12 -0
  171. package/dist/graph/buildGraph.d.ts.map +1 -0
  172. package/dist/graph/buildGraph.js +81 -0
  173. package/dist/graph/buildGraph.js.map +1 -0
  174. package/dist/graph/cache.d.ts +111 -0
  175. package/dist/graph/cache.d.ts.map +1 -0
  176. package/dist/graph/cache.js +237 -0
  177. package/dist/graph/cache.js.map +1 -0
  178. package/dist/graph/metrics.d.ts +12 -0
  179. package/dist/graph/metrics.d.ts.map +1 -0
  180. package/dist/graph/metrics.js +253 -0
  181. package/dist/graph/metrics.js.map +1 -0
  182. package/dist/graph/minHeap.d.ts +91 -0
  183. package/dist/graph/minHeap.d.ts.map +1 -0
  184. package/dist/graph/minHeap.js +159 -0
  185. package/dist/graph/minHeap.js.map +1 -0
  186. package/dist/graph/overview.d.ts +22 -0
  187. package/dist/graph/overview.d.ts.map +1 -0
  188. package/dist/graph/overview.js +379 -0
  189. package/dist/graph/overview.js.map +1 -0
  190. package/dist/graph/score.d.ts +27 -0
  191. package/dist/graph/score.d.ts.map +1 -0
  192. package/dist/graph/score.js +214 -0
  193. package/dist/graph/score.js.map +1 -0
  194. package/dist/graph/slice.d.ts +51 -0
  195. package/dist/graph/slice.d.ts.map +1 -0
  196. package/dist/graph/slice.js +1047 -0
  197. package/dist/graph/slice.js.map +1 -0
  198. package/dist/graph/sliceCache.d.ts +33 -0
  199. package/dist/graph/sliceCache.d.ts.map +1 -0
  200. package/dist/graph/sliceCache.js +140 -0
  201. package/dist/graph/sliceCache.js.map +1 -0
  202. package/dist/indexer/adapter/BaseAdapter.d.ts +29 -0
  203. package/dist/indexer/adapter/BaseAdapter.d.ts.map +1 -0
  204. package/dist/indexer/adapter/BaseAdapter.js +97 -0
  205. package/dist/indexer/adapter/BaseAdapter.js.map +1 -0
  206. package/dist/indexer/adapter/LanguageAdapter.d.ts +20 -0
  207. package/dist/indexer/adapter/LanguageAdapter.d.ts.map +1 -0
  208. package/dist/indexer/adapter/LanguageAdapter.js +2 -0
  209. package/dist/indexer/adapter/LanguageAdapter.js.map +1 -0
  210. package/dist/indexer/adapter/adapters.d.ts +57 -0
  211. package/dist/indexer/adapter/adapters.d.ts.map +1 -0
  212. package/dist/indexer/adapter/adapters.js +129 -0
  213. package/dist/indexer/adapter/adapters.js.map +1 -0
  214. package/dist/indexer/adapter/c.d.ts +18 -0
  215. package/dist/indexer/adapter/c.d.ts.map +1 -0
  216. package/dist/indexer/adapter/c.js +443 -0
  217. package/dist/indexer/adapter/c.js.map +1 -0
  218. package/dist/indexer/adapter/cpp.d.ts +18 -0
  219. package/dist/indexer/adapter/cpp.d.ts.map +1 -0
  220. package/dist/indexer/adapter/cpp.js +493 -0
  221. package/dist/indexer/adapter/cpp.js.map +1 -0
  222. package/dist/indexer/adapter/csharp.d.ts +48 -0
  223. package/dist/indexer/adapter/csharp.d.ts.map +1 -0
  224. package/dist/indexer/adapter/csharp.js +638 -0
  225. package/dist/indexer/adapter/csharp.js.map +1 -0
  226. package/dist/indexer/adapter/go.d.ts +14 -0
  227. package/dist/indexer/adapter/go.d.ts.map +1 -0
  228. package/dist/indexer/adapter/go.js +400 -0
  229. package/dist/indexer/adapter/go.js.map +1 -0
  230. package/dist/indexer/adapter/index.d.ts +14 -0
  231. package/dist/indexer/adapter/index.d.ts.map +1 -0
  232. package/dist/indexer/adapter/index.js +13 -0
  233. package/dist/indexer/adapter/index.js.map +1 -0
  234. package/dist/indexer/adapter/java.d.ts +14 -0
  235. package/dist/indexer/adapter/java.d.ts.map +1 -0
  236. package/dist/indexer/adapter/java.js +391 -0
  237. package/dist/indexer/adapter/java.js.map +1 -0
  238. package/dist/indexer/adapter/kotlin.d.ts +18 -0
  239. package/dist/indexer/adapter/kotlin.d.ts.map +1 -0
  240. package/dist/indexer/adapter/kotlin.js +599 -0
  241. package/dist/indexer/adapter/kotlin.js.map +1 -0
  242. package/dist/indexer/adapter/php.d.ts +18 -0
  243. package/dist/indexer/adapter/php.d.ts.map +1 -0
  244. package/dist/indexer/adapter/php.js +574 -0
  245. package/dist/indexer/adapter/php.js.map +1 -0
  246. package/dist/indexer/adapter/plugin/index.d.ts +3 -0
  247. package/dist/indexer/adapter/plugin/index.d.ts.map +1 -0
  248. package/dist/indexer/adapter/plugin/index.js +3 -0
  249. package/dist/indexer/adapter/plugin/index.js.map +1 -0
  250. package/dist/indexer/adapter/plugin/loader.d.ts +13 -0
  251. package/dist/indexer/adapter/plugin/loader.d.ts.map +1 -0
  252. package/dist/indexer/adapter/plugin/loader.js +154 -0
  253. package/dist/indexer/adapter/plugin/loader.js.map +1 -0
  254. package/dist/indexer/adapter/plugin/types.d.ts +76 -0
  255. package/dist/indexer/adapter/plugin/types.d.ts.map +1 -0
  256. package/dist/indexer/adapter/plugin/types.js +47 -0
  257. package/dist/indexer/adapter/plugin/types.js.map +1 -0
  258. package/dist/indexer/adapter/python.d.ts +14 -0
  259. package/dist/indexer/adapter/python.d.ts.map +1 -0
  260. package/dist/indexer/adapter/python.js +511 -0
  261. package/dist/indexer/adapter/python.js.map +1 -0
  262. package/dist/indexer/adapter/registry.d.ts +17 -0
  263. package/dist/indexer/adapter/registry.d.ts.map +1 -0
  264. package/dist/indexer/adapter/registry.js +134 -0
  265. package/dist/indexer/adapter/registry.js.map +1 -0
  266. package/dist/indexer/adapter/rust.d.ts +18 -0
  267. package/dist/indexer/adapter/rust.d.ts.map +1 -0
  268. package/dist/indexer/adapter/rust.js +709 -0
  269. package/dist/indexer/adapter/rust.js.map +1 -0
  270. package/dist/indexer/adapter/shell.d.ts +18 -0
  271. package/dist/indexer/adapter/shell.d.ts.map +1 -0
  272. package/dist/indexer/adapter/shell.js +345 -0
  273. package/dist/indexer/adapter/shell.js.map +1 -0
  274. package/dist/indexer/adapter/typescript.d.ts +14 -0
  275. package/dist/indexer/adapter/typescript.d.ts.map +1 -0
  276. package/dist/indexer/adapter/typescript.js +31 -0
  277. package/dist/indexer/adapter/typescript.js.map +1 -0
  278. package/dist/indexer/configEdges.d.ts +30 -0
  279. package/dist/indexer/configEdges.d.ts.map +1 -0
  280. package/dist/indexer/configEdges.js +260 -0
  281. package/dist/indexer/configEdges.js.map +1 -0
  282. package/dist/indexer/fileScanner.d.ts +16 -0
  283. package/dist/indexer/fileScanner.d.ts.map +1 -0
  284. package/dist/indexer/fileScanner.js +90 -0
  285. package/dist/indexer/fileScanner.js.map +1 -0
  286. package/dist/indexer/fingerprints.d.ts +23 -0
  287. package/dist/indexer/fingerprints.d.ts.map +1 -0
  288. package/dist/indexer/fingerprints.js +97 -0
  289. package/dist/indexer/fingerprints.js.map +1 -0
  290. package/dist/indexer/indexer.d.ts +58 -0
  291. package/dist/indexer/indexer.d.ts.map +1 -0
  292. package/dist/indexer/indexer.js +1229 -0
  293. package/dist/indexer/indexer.js.map +1 -0
  294. package/dist/indexer/summaries.d.ts +5 -0
  295. package/dist/indexer/summaries.d.ts.map +1 -0
  296. package/dist/indexer/summaries.js +331 -0
  297. package/dist/indexer/summaries.js.map +1 -0
  298. package/dist/indexer/treesitter/extractCalls.d.ts +40 -0
  299. package/dist/indexer/treesitter/extractCalls.d.ts.map +1 -0
  300. package/dist/indexer/treesitter/extractCalls.js +561 -0
  301. package/dist/indexer/treesitter/extractCalls.js.map +1 -0
  302. package/dist/indexer/treesitter/extractImports.d.ts +12 -0
  303. package/dist/indexer/treesitter/extractImports.d.ts.map +1 -0
  304. package/dist/indexer/treesitter/extractImports.js +184 -0
  305. package/dist/indexer/treesitter/extractImports.js.map +1 -0
  306. package/dist/indexer/treesitter/extractSymbols.d.ts +24 -0
  307. package/dist/indexer/treesitter/extractSymbols.d.ts.map +1 -0
  308. package/dist/indexer/treesitter/extractSymbols.js +389 -0
  309. package/dist/indexer/treesitter/extractSymbols.js.map +1 -0
  310. package/dist/indexer/treesitter/grammarLoader.d.ts +6 -0
  311. package/dist/indexer/treesitter/grammarLoader.d.ts.map +1 -0
  312. package/dist/indexer/treesitter/grammarLoader.js +125 -0
  313. package/dist/indexer/treesitter/grammarLoader.js.map +1 -0
  314. package/dist/indexer/treesitter/symbolUtils.d.ts +4 -0
  315. package/dist/indexer/treesitter/symbolUtils.d.ts.map +1 -0
  316. package/dist/indexer/treesitter/symbolUtils.js +26 -0
  317. package/dist/indexer/treesitter/symbolUtils.js.map +1 -0
  318. package/dist/indexer/treesitter/tsTreesitter.d.ts +9 -0
  319. package/dist/indexer/treesitter/tsTreesitter.d.ts.map +1 -0
  320. package/dist/indexer/treesitter/tsTreesitter.js +54 -0
  321. package/dist/indexer/treesitter/tsTreesitter.js.map +1 -0
  322. package/dist/indexer/treesitter/types.d.ts +19 -0
  323. package/dist/indexer/treesitter/types.d.ts.map +1 -0
  324. package/dist/indexer/treesitter/types.js +7 -0
  325. package/dist/indexer/treesitter/types.js.map +1 -0
  326. package/dist/indexer/ts/tsParser.d.ts +20 -0
  327. package/dist/indexer/ts/tsParser.d.ts.map +1 -0
  328. package/dist/indexer/ts/tsParser.js +114 -0
  329. package/dist/indexer/ts/tsParser.js.map +1 -0
  330. package/dist/indexer/worker.d.ts +2 -0
  331. package/dist/indexer/worker.d.ts.map +1 -0
  332. package/dist/indexer/worker.js +59 -0
  333. package/dist/indexer/worker.js.map +1 -0
  334. package/dist/indexer/workerPool.d.ts +20 -0
  335. package/dist/indexer/workerPool.d.ts.map +1 -0
  336. package/dist/indexer/workerPool.js +93 -0
  337. package/dist/indexer/workerPool.js.map +1 -0
  338. package/dist/main.d.ts +2 -0
  339. package/dist/main.d.ts.map +1 -0
  340. package/dist/main.js +111 -0
  341. package/dist/main.js.map +1 -0
  342. package/dist/mcp/errors.d.ts +40 -0
  343. package/dist/mcp/errors.d.ts.map +1 -0
  344. package/dist/mcp/errors.js +66 -0
  345. package/dist/mcp/errors.js.map +1 -0
  346. package/dist/mcp/resources.d.ts +24 -0
  347. package/dist/mcp/resources.d.ts.map +1 -0
  348. package/dist/mcp/resources.js +140 -0
  349. package/dist/mcp/resources.js.map +1 -0
  350. package/dist/mcp/telemetry.d.ts +67 -0
  351. package/dist/mcp/telemetry.d.ts.map +1 -0
  352. package/dist/mcp/telemetry.js +128 -0
  353. package/dist/mcp/telemetry.js.map +1 -0
  354. package/dist/mcp/tools/agent.d.ts +241 -0
  355. package/dist/mcp/tools/agent.d.ts.map +1 -0
  356. package/dist/mcp/tools/agent.js +113 -0
  357. package/dist/mcp/tools/agent.js.map +1 -0
  358. package/dist/mcp/tools/code.d.ts +32 -0
  359. package/dist/mcp/tools/code.d.ts.map +1 -0
  360. package/dist/mcp/tools/code.js +388 -0
  361. package/dist/mcp/tools/code.js.map +1 -0
  362. package/dist/mcp/tools/delta.d.ts +12 -0
  363. package/dist/mcp/tools/delta.d.ts.map +1 -0
  364. package/dist/mcp/tools/delta.js +82 -0
  365. package/dist/mcp/tools/delta.js.map +1 -0
  366. package/dist/mcp/tools/index.d.ts +3 -0
  367. package/dist/mcp/tools/index.d.ts.map +1 -0
  368. package/dist/mcp/tools/index.js +35 -0
  369. package/dist/mcp/tools/index.js.map +1 -0
  370. package/dist/mcp/tools/policy.d.ts +20 -0
  371. package/dist/mcp/tools/policy.d.ts.map +1 -0
  372. package/dist/mcp/tools/policy.js +67 -0
  373. package/dist/mcp/tools/policy.js.map +1 -0
  374. package/dist/mcp/tools/prRisk.d.ts +34 -0
  375. package/dist/mcp/tools/prRisk.d.ts.map +1 -0
  376. package/dist/mcp/tools/prRisk.js +304 -0
  377. package/dist/mcp/tools/prRisk.js.map +1 -0
  378. package/dist/mcp/tools/repo.d.ts +46 -0
  379. package/dist/mcp/tools/repo.d.ts.map +1 -0
  380. package/dist/mcp/tools/repo.js +224 -0
  381. package/dist/mcp/tools/repo.js.map +1 -0
  382. package/dist/mcp/tools/slice.d.ts +44 -0
  383. package/dist/mcp/tools/slice.d.ts.map +1 -0
  384. package/dist/mcp/tools/slice.js +688 -0
  385. package/dist/mcp/tools/slice.js.map +1 -0
  386. package/dist/mcp/tools/symbol.d.ts +21 -0
  387. package/dist/mcp/tools/symbol.d.ts.map +1 -0
  388. package/dist/mcp/tools/symbol.js +416 -0
  389. package/dist/mcp/tools/symbol.js.map +1 -0
  390. package/dist/mcp/tools.d.ts +6003 -0
  391. package/dist/mcp/tools.d.ts.map +1 -0
  392. package/dist/mcp/tools.js +932 -0
  393. package/dist/mcp/tools.js.map +1 -0
  394. package/dist/mcp/types.d.ts +500 -0
  395. package/dist/mcp/types.d.ts.map +1 -0
  396. package/dist/mcp/types.js +2 -0
  397. package/dist/mcp/types.js.map +1 -0
  398. package/dist/policy/engine.d.ts +21 -0
  399. package/dist/policy/engine.d.ts.map +1 -0
  400. package/dist/policy/engine.js +477 -0
  401. package/dist/policy/engine.js.map +1 -0
  402. package/dist/policy/types.d.ts +73 -0
  403. package/dist/policy/types.d.ts.map +1 -0
  404. package/dist/policy/types.js +12 -0
  405. package/dist/policy/types.js.map +1 -0
  406. package/dist/server.d.ts +17 -0
  407. package/dist/server.d.ts.map +1 -0
  408. package/dist/server.js +136 -0
  409. package/dist/server.js.map +1 -0
  410. package/dist/sync/pull.d.ts +4 -0
  411. package/dist/sync/pull.d.ts.map +1 -0
  412. package/dist/sync/pull.js +113 -0
  413. package/dist/sync/pull.js.map +1 -0
  414. package/dist/sync/sync.d.ts +6 -0
  415. package/dist/sync/sync.d.ts.map +1 -0
  416. package/dist/sync/sync.js +244 -0
  417. package/dist/sync/sync.js.map +1 -0
  418. package/dist/sync/types.d.ts +136 -0
  419. package/dist/sync/types.d.ts.map +1 -0
  420. package/dist/sync/types.js +2 -0
  421. package/dist/sync/types.js.map +1 -0
  422. package/dist/ts/diagnostics.d.ts +61 -0
  423. package/dist/ts/diagnostics.d.ts.map +1 -0
  424. package/dist/ts/diagnostics.js +259 -0
  425. package/dist/ts/diagnostics.js.map +1 -0
  426. package/dist/ts/mapping.d.ts +27 -0
  427. package/dist/ts/mapping.d.ts.map +1 -0
  428. package/dist/ts/mapping.js +68 -0
  429. package/dist/ts/mapping.js.map +1 -0
  430. package/dist/util/asyncFs.d.ts +103 -0
  431. package/dist/util/asyncFs.d.ts.map +1 -0
  432. package/dist/util/asyncFs.js +133 -0
  433. package/dist/util/asyncFs.js.map +1 -0
  434. package/dist/util/concurrency.d.ts +77 -0
  435. package/dist/util/concurrency.d.ts.map +1 -0
  436. package/dist/util/concurrency.js +146 -0
  437. package/dist/util/concurrency.js.map +1 -0
  438. package/dist/util/depLabels.d.ts +3 -0
  439. package/dist/util/depLabels.d.ts.map +1 -0
  440. package/dist/util/depLabels.js +19 -0
  441. package/dist/util/depLabels.js.map +1 -0
  442. package/dist/util/findPackageRoot.d.ts +7 -0
  443. package/dist/util/findPackageRoot.d.ts.map +1 -0
  444. package/dist/util/findPackageRoot.js +21 -0
  445. package/dist/util/findPackageRoot.js.map +1 -0
  446. package/dist/util/hashing.d.ts +9 -0
  447. package/dist/util/hashing.d.ts.map +1 -0
  448. package/dist/util/hashing.js +37 -0
  449. package/dist/util/hashing.js.map +1 -0
  450. package/dist/util/logger.d.ts +14 -0
  451. package/dist/util/logger.d.ts.map +1 -0
  452. package/dist/util/logger.js +51 -0
  453. package/dist/util/logger.js.map +1 -0
  454. package/dist/util/paths.d.ts +6 -0
  455. package/dist/util/paths.d.ts.map +1 -0
  456. package/dist/util/paths.js +79 -0
  457. package/dist/util/paths.js.map +1 -0
  458. package/dist/util/time.d.ts +4 -0
  459. package/dist/util/time.d.ts.map +1 -0
  460. package/dist/util/time.js +20 -0
  461. package/dist/util/time.js.map +1 -0
  462. package/dist/util/tokenize.d.ts +5 -0
  463. package/dist/util/tokenize.d.ts.map +1 -0
  464. package/dist/util/tokenize.js +30 -0
  465. package/dist/util/tokenize.js.map +1 -0
  466. package/dist/util/truncation.d.ts +38 -0
  467. package/dist/util/truncation.d.ts.map +1 -0
  468. package/dist/util/truncation.js +259 -0
  469. package/dist/util/truncation.js.map +1 -0
  470. package/migrations/.gitkeep +1 -0
  471. package/migrations/0001_init.sql +61 -0
  472. package/migrations/0002_edges_indexes.sql +2 -0
  473. package/migrations/0003_versions.sql +22 -0
  474. package/migrations/0004_metrics_audit.sql +23 -0
  475. package/migrations/0005_slice_handles.sql +15 -0
  476. package/migrations/0006_content_addressed.sql +29 -0
  477. package/migrations/0007_add_language_to_symbols.sql +28 -0
  478. package/migrations/0008_performance_indexes.sql +21 -0
  479. package/migrations/0009_fix_edge_fks.sql +37 -0
  480. package/migrations/0010_standardize_fks.sql +35 -0
  481. package/migrations/0011_add_directory_column.sql +20 -0
  482. package/migrations/0012_symbol_references.sql +16 -0
  483. package/migrations/0013_sync_artifacts.sql +17 -0
  484. package/package.json +107 -0
  485. package/templates/CLAUDE.md.template +179 -0
  486. package/templates/README.md +228 -0
  487. package/templates/claude-code.json +54 -0
  488. package/templates/codex.json +55 -0
  489. package/templates/gemini.json +66 -0
  490. package/templates/opencode.json +90 -0
  491. package/templates/plugin-template/LICENSE +21 -0
  492. package/templates/plugin-template/README.md +309 -0
  493. package/templates/plugin-template/index.ts +160 -0
  494. package/templates/plugin-template/package.json +31 -0
  495. package/templates/plugin-template/test/plugin.test.ts +186 -0
  496. package/templates/plugin-template/tsconfig.json +21 -0
@@ -0,0 +1,228 @@
1
+ # SDL-MCP Plugin Templates
2
+
3
+ <div align="right">
4
+ <details>
5
+ <summary><strong>Docs Navigation</strong></summary>
6
+
7
+ - [SDL-MCP Overview](../README.md)
8
+ - [Documentation Hub](../docs/README.md)
9
+ - [Getting Started](../docs/getting-started.md)
10
+ - [Plugin SDK Author Guide](../docs/PLUGIN_SDK_AUTHOR_GUIDE.md)
11
+ - [Plugin SDK Security](../docs/PLUGIN_SDK_SECURITY.md)
12
+ - [Templates (this page)](./README.md)
13
+ - [Plugin Template README](./plugin-template/README.md)
14
+
15
+ </details>
16
+ </div>
17
+
18
+ Templates and scaffolding for creating SDL-MCP adapter plugins.
19
+
20
+ ## Available Templates
21
+
22
+ ### plugin-template
23
+
24
+ A complete template for creating a new language adapter plugin.
25
+
26
+ **Features**:
27
+
28
+ - Pre-configured TypeScript setup
29
+ - Base adapter implementation
30
+ - Sample extraction logic (regex-based)
31
+ - Test suite template
32
+ - Package.json configuration
33
+ - Comprehensive README
34
+
35
+ **Use when**:
36
+
37
+ - Creating a new language adapter
38
+ - Need a starting point for custom adapters
39
+ - Want to follow SDL-MCP plugin conventions
40
+
41
+ **Quick Start**:
42
+
43
+ ```bash
44
+ # Copy template
45
+ cp -r templates/plugin-template my-lang-plugin
46
+ cd my-lang-plugin
47
+
48
+ # Customize and build
49
+ npm install
50
+ npm run build
51
+
52
+ # Register in SDL-MCP
53
+ # Add to config/sdlmcp.config.json:
54
+ {
55
+ "plugins": {
56
+ "paths": ["./my-lang-plugin/dist/index.js"]
57
+ }
58
+ }
59
+ ```
60
+
61
+ See [plugin-template/README.md](./plugin-template/README.md) for detailed instructions.
62
+
63
+ ## Template Structure
64
+
65
+ ```text
66
+ templates/
67
+ |-- plugin-template/ # Full plugin template
68
+ | |-- package.json # NPM configuration
69
+ | |-- tsconfig.json # TypeScript configuration
70
+ | |-- index.ts # Plugin implementation
71
+ | |-- README.md # Plugin documentation
72
+ | |-- LICENSE # MIT license
73
+ | `-- test/ # Test suite
74
+ | `-- plugin.test.ts
75
+ `-- README.md # This file
76
+ ```
77
+
78
+ ## Using Templates
79
+
80
+ ### 1. Copy Template
81
+
82
+ ```bash
83
+ # From SDL-MCP repository
84
+ cp -r templates/plugin-template my-plugin
85
+ cd my-plugin
86
+ ```
87
+
88
+ ### 2. Customize
89
+
90
+ Edit the following files:
91
+
92
+ - `package.json`: Update name, description, author
93
+ - `index.ts`: Replace placeholder code with your adapter
94
+ - `README.md`: Update documentation for your language
95
+ - `test/plugin.test.ts`: Add language-specific tests
96
+
97
+ ### 3. Build
98
+
99
+ ```bash
100
+ npm install
101
+ npm run build
102
+ ```
103
+
104
+ ### 4. Test
105
+
106
+ ```bash
107
+ npm test
108
+ ```
109
+
110
+ ### 5. Publish (optional)
111
+
112
+ ```bash
113
+ npm publish
114
+ ```
115
+
116
+ ## Customization Guide
117
+
118
+ ### Minimal Changes Required
119
+
120
+ 1. **Update plugin metadata** in `index.ts`:
121
+
122
+ ```typescript
123
+ export const manifest = {
124
+ name: "sdl-mcp-YOURLANG-plugin",
125
+ adapters: [
126
+ {
127
+ extension: ".yourlang",
128
+ languageId: "yourlang",
129
+ },
130
+ ],
131
+ };
132
+ ```
133
+
134
+ 2. **Update adapter class** in `index.ts`:
135
+
136
+ ```typescript
137
+ class YourLangAdapter extends BaseAdapter {
138
+ languageId = "yourlang" as const;
139
+ fileExtensions = [".yourlang"] as const;
140
+ }
141
+ ```
142
+
143
+ 3. **Implement extraction logic**:
144
+ - Replace regex patterns in `extractSymbols()`
145
+ - Replace regex patterns in `extractImports()`
146
+ - Replace regex patterns in `extractCalls()`
147
+
148
+ ### Advanced Customization
149
+
150
+ For complex languages, consider:
151
+
152
+ 1. **Use Tree-sitter grammars**:
153
+
154
+ ```typescript
155
+ const parser = this.getParser();
156
+ const query = parser.getLanguage().query(`
157
+ (function_declaration name: (_) @name)
158
+ `);
159
+ ```
160
+
161
+ 2. **Add language-specific metadata**:
162
+
163
+ ```typescript
164
+ metadata: {
165
+ visibility: "public",
166
+ async: false,
167
+ params: [...],
168
+ returns: "string",
169
+ }
170
+ ```
171
+
172
+ 3. **Handle language-specific features**:
173
+ - Generics/templates
174
+ - Decorators/attributes
175
+ - Macros/preprocessor directives
176
+ - Custom syntax
177
+
178
+ ## Template vs Example
179
+
180
+ | Feature | Template | Example |
181
+ | ------------- | ------------------------------ | ------------------------------ |
182
+ | Purpose | Starting point for new plugins | Demonstration of plugin system |
183
+ | Complexity | Minimal, easy to customize | Functional, production-ready |
184
+ | Documentation | Inline comments, guide | Comprehensive README |
185
+ | Tests | Template test suite | Integration tests |
186
+ | Language | Placeholder (mylang) | Hypothetical (example-lang) |
187
+
188
+ **Use the template** when creating your own plugin.
189
+
190
+ **Use the example** when learning the plugin system.
191
+
192
+ ## Next Steps
193
+
194
+ After using a template:
195
+
196
+ 1. **Read the author guide**: [PLUGIN_SDK_AUTHOR_GUIDE.md](../docs/PLUGIN_SDK_AUTHOR_GUIDE.md)
197
+ 2. **Review security docs**: [PLUGIN_SDK_SECURITY.md](../docs/PLUGIN_SDK_SECURITY.md)
198
+ 3. **Study the example**: [examples/example-plugin/](../examples/example-plugin/)
199
+ 4. **Run integration tests**: `npm run test:integration`
200
+
201
+ ## Support
202
+
203
+ For help with templates:
204
+
205
+ - Check the [Author Guide](../docs/PLUGIN_SDK_AUTHOR_GUIDE.md)
206
+ - Review the [Example Plugin](../examples/example-plugin/)
207
+ - Check [Troubleshooting](../docs/PLUGIN_SDK_AUTHOR_GUIDE.md#troubleshooting)
208
+ - Open an issue on GitHub
209
+
210
+ ## Contributing
211
+
212
+ Have suggestions for improving templates? Contributions welcome:
213
+
214
+ 1. Fork the repository
215
+ 2. Improve the template
216
+ 3. Add tests for new features
217
+ 4. Submit a pull request
218
+
219
+ ## License
220
+
221
+ All templates are licensed under MIT.
222
+
223
+ ## See Also
224
+
225
+ - [SDL-MCP README](../README.md)
226
+ - [Plugin SDK Implementation Summary](../docs/PLUGIN_SDK_IMPLEMENTATION.md)
227
+ - [Example Plugin](../examples/example-plugin/)
228
+
@@ -0,0 +1,54 @@
1
+ {
2
+ "_comment": "Claude Code MCP Configuration Template for SDL-MCP",
3
+ "_documentation": {
4
+ "purpose": "Configure SDL-MCP as an MCP server for Claude Code",
5
+ "placement": "Copy to ~/.claude/claude_desktop_config.json or add to existing mcpServers",
6
+ "windowsNotes": {
7
+ "paths": "Use forward slashes (/) or escaped backslashes (\\\\)",
8
+ "npx": "npx works cross-platform. For global install, use 'node' with full path",
9
+ "environment": "SDL_CONFIG_PATH or SDL_CONFIG must be set to point to your sdlmcp.config.json"
10
+ },
11
+ "quoting": {
12
+ "powerShell": "Single quotes work for paths, double quotes for variable expansion",
13
+ "cmd": "Use double quotes for all paths with spaces"
14
+ },
15
+ "workspaceFolder": {
16
+ "description": "Replaced by Claude Code with the current workspace root",
17
+ "windows": "Resolves to forward-slash path on all platforms"
18
+ }
19
+ },
20
+ "mcpServers": {
21
+ "sdl-mcp": {
22
+ "command": "npx",
23
+ "args": ["sdl-mcp"],
24
+ "env": {
25
+ "SDL_CONFIG": "${workspaceFolder}/sdlmcp.config.json",
26
+ "_comment_env": "Alternative: Set SDL_CONFIG_PATH if you prefer environment variable name"
27
+ }
28
+ }
29
+ },
30
+ "_alternative_global_install": {
31
+ "description": "If you installed SDL-MCP globally with 'npm install -g sdl-mcp':",
32
+ "mcpServers": {
33
+ "sdl-mcp": {
34
+ "command": "sdl-mcp",
35
+ "args": [],
36
+ "env": {
37
+ "SDL_CONFIG": "${workspaceFolder}/sdlmcp.config.json"
38
+ }
39
+ }
40
+ }
41
+ },
42
+ "_alternative_windows_direct_node": {
43
+ "description": "Windows alternative using direct Node invocation (if npx is unavailable):",
44
+ "mcpServers": {
45
+ "sdl-mcp": {
46
+ "command": "node",
47
+ "args": ["F:/path/to/sdl-mcp/dist/main.js"],
48
+ "env": {
49
+ "SDL_CONFIG": "${workspaceFolder}/sdlmcp.config.json"
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "_comment": "Codex CLI MCP Configuration Template for SDL-MCP",
3
+ "_documentation": {
4
+ "purpose": "Configure SDL-MCP as an MCP server for Codex CLI",
5
+ "placement": "Add to Codex MCP servers configuration",
6
+ "windowsNotes": {
7
+ "paths": "Use forward slashes (/) or escaped backslashes (\\\\)",
8
+ "npx": "npx works cross-platform. For global install, use 'sdl-mcp' directly",
9
+ "environment": "SDL_CONFIG_PATH or SDL_CONFIG must point to sdlmcp.config.json"
10
+ },
11
+ "quoting": {
12
+ "cmd": "Use double quotes for paths with spaces, no single quotes",
13
+ "powershell": "Single quotes work, but cmd is more portable for cross-platform configs"
14
+ },
15
+ "workspaceFolder": {
16
+ "description": "Codex expands ${workspaceFolder} to current directory",
17
+ "windows": "Resolves correctly on Windows with forward slashes"
18
+ }
19
+ },
20
+ "mcpServers": {
21
+ "sdl-mcp": {
22
+ "command": "npx",
23
+ "args": ["-y", "sdl-mcp"],
24
+ "env": {
25
+ "SDL_CONFIG": "${workspaceFolder}/sdlmcp.config.json"
26
+ }
27
+ }
28
+ },
29
+ "_alternative_global_install": {
30
+ "description": "If globally installed with 'npm install -g sdl-mcp':",
31
+ "mcpServers": {
32
+ "sdl-mcp": {
33
+ "command": "sdl-mcp",
34
+ "args": [],
35
+ "env": {
36
+ "SDL_CONFIG": "${workspaceFolder}/sdlmcp.config.json"
37
+ }
38
+ }
39
+ }
40
+ },
41
+ "_windows_specific": {
42
+ "description": "Windows-specific notes for cmd.exe",
43
+ "notes": [
44
+ "Ensure Node.js is in PATH",
45
+ "If using custom paths, use double backslashes: C:\\\\Users\\\\name\\\\.nvm\\\\versions\\\\node\\\\node.exe",
46
+ "SDL_CONFIG path uses forward slashes for cross-platform compatibility",
47
+ "If workspaceFolder has spaces, Codex CLI handles quoting automatically"
48
+ ]
49
+ },
50
+ "_troubleshooting": {
51
+ "npx_fails": "If npx fails, try 'npm config set script-shell pwsh' (PowerShell) or use global install",
52
+ "path_not_found": "Verify SDL_CONFIG path exists and is accessible",
53
+ "permissions": "Ensure Node.js has read access to config file and database path"
54
+ }
55
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "_comment": "Gemini CLI MCP Configuration Template for SDL-MCP",
3
+ "_documentation": {
4
+ "purpose": "Configure SDL-MCP as an MCP server for Gemini CLI",
5
+ "placement": "Add to Gemini MCP servers configuration file",
6
+ "windowsNotes": {
7
+ "paths": "Gemini CLI expects forward slashes (/) or escaped backslashes (\\\\)",
8
+ "npx": "npx is cross-platform. Use 'sdl-mcp' for global install",
9
+ "environment": "SDL_CONFIG or SDL_CONFIG_PATH required for configuration"
10
+ },
11
+ "quoting": {
12
+ "powershell": "Use single quotes for literal paths, double quotes with $ for variables",
13
+ "cmd": "Double quotes only; cmd does not support single quotes for strings"
14
+ },
15
+ "workspaceFolder": {
16
+ "description": "Gemini CLI replaces ${workspaceFolder} with workspace root",
17
+ "windows": "Always resolves to forward-slash normalized path"
18
+ }
19
+ },
20
+ "mcpServers": {
21
+ "sdl-mcp": {
22
+ "command": "npx",
23
+ "args": ["sdl-mcp"],
24
+ "env": {
25
+ "SDL_CONFIG": "${workspaceFolder}/sdlmcp.config.json"
26
+ }
27
+ }
28
+ },
29
+ "_alternative_global_install": {
30
+ "description": "For global installation (npm install -g sdl-mcp):",
31
+ "mcpServers": {
32
+ "sdl-mcp": {
33
+ "command": "sdl-mcp",
34
+ "args": [],
35
+ "env": {
36
+ "SDL_CONFIG": "${workspaceFolder}/sdlmcp.config.json"
37
+ }
38
+ }
39
+ }
40
+ },
41
+ "_windows_path_examples": {
42
+ "description": "Example paths for Windows environments",
43
+ "configPath": {
44
+ "forward_slash": "${workspaceFolder}/sdlmcp.config.json",
45
+ "escaped_backslash": "C:\\\\Users\\\\username\\\\project\\\\sdlmcp.config.json"
46
+ },
47
+ "nodePath": {
48
+ "if_needed": "C:\\\\Program Files\\\\nodejs\\\\node.exe"
49
+ }
50
+ },
51
+ "_shell_specific_quoting": {
52
+ "cmd": {
53
+ "rule": "Always use double quotes for paths",
54
+ "example": "\"C:\\Users\\name\\project\\sdlmcp.config.json\""
55
+ },
56
+ "powershell": {
57
+ "rule": "Single quotes for literals, double quotes with $var for expansion",
58
+ "example": "'C:/Users/name/project/sdlmcp.config.json'"
59
+ }
60
+ },
61
+ "_troubleshooting": {
62
+ "npx_hangs": "Try adding -y flag: npx -y sdl-mcp",
63
+ "permission_denied": "Check file permissions for config and database",
64
+ "path_resolution": "Verify workspaceFolder is set correctly in Gemini CLI"
65
+ }
66
+ }
@@ -0,0 +1,90 @@
1
+ {
2
+ "_comment": "Opencode CLI MCP Configuration Template for SDL-MCP",
3
+ "_documentation": {
4
+ "purpose": "Configure SDL-MCP as an MCP server for Opencode CLI",
5
+ "placement": "Add to Opencode MCP servers configuration",
6
+ "windowsNotes": {
7
+ "paths": "Opencode normalizes to forward slashes automatically",
8
+ "npx": "npx works cross-platform. Use 'sdl-mcp' for global install",
9
+ "environment": "SDL_CONFIG_PATH or SDL_CONFIG must point to sdlmcp.config.json"
10
+ },
11
+ "quoting": {
12
+ "cmd": "Double quotes only for all paths",
13
+ "powershell": "Single or double quotes both work",
14
+ "opencode_handling": "Opencode CLI handles quoting automatically when using ${workspaceFolder}"
15
+ },
16
+ "workspaceFolder": {
17
+ "description": "Opencode replaces ${workspaceFolder} with detected workspace root",
18
+ "detection": "Auto-detects from .git directory, package.json, or current directory",
19
+ "windows": "Normalizes Windows paths to forward slashes"
20
+ }
21
+ },
22
+ "mcpServers": {
23
+ "sdl-mcp": {
24
+ "command": "npx",
25
+ "args": ["sdl-mcp"],
26
+ "env": {
27
+ "SDL_CONFIG": "${workspaceFolder}/sdlmcp.config.json"
28
+ }
29
+ }
30
+ },
31
+ "_alternative_global_install": {
32
+ "description": "After global install (npm install -g sdl-mcp):",
33
+ "mcpServers": {
34
+ "sdl-mcp": {
35
+ "command": "sdl-mcp",
36
+ "args": [],
37
+ "env": {
38
+ "SDL_CONFIG": "${workspaceFolder}/sdlmcp.config.json"
39
+ }
40
+ }
41
+ }
42
+ },
43
+ "_workspace_detection": {
44
+ "description": "How Opencode detects workspaceFolder",
45
+ "methods": [
46
+ "Git repository root (.git directory)",
47
+ "Node.js project root (package.json)",
48
+ "Current working directory",
49
+ "Manually specified via --workspace flag"
50
+ ]
51
+ },
52
+ "_windows_path_handling": {
53
+ "description": "Opencode CLI specific Windows path handling",
54
+ "normalization": "All paths normalized to forward slashes internally",
55
+ "examples": {
56
+ "input": "C:\\Users\\name\\project",
57
+ "normalized": "C:/Users/name/project",
58
+ "config_file": "${workspaceFolder}/sdlmcp.config.json resolves to C:/Users/name/project/sdlmcp.config.json"
59
+ }
60
+ },
61
+ "_slash_normalization": {
62
+ "description": "SDL-MCP path normalization (server-side)",
63
+ "behavior": "Server normalizes all paths using path utilities",
64
+ "storage": "Paths stored with forward slashes in database",
65
+ "resolution": "Resolved to OS-specific paths on read"
66
+ },
67
+ "_troubleshooting": {
68
+ "workspace_not_found": "Run from within a valid workspace or specify --workspace",
69
+ "config_missing": "Ensure sdlmcp.config.json exists at SDL_CONFIG path",
70
+ "path_case": "Windows paths are case-insensitive, but forward slashes required in env vars",
71
+ "npx_timeout": "If npx times out, try global install or use node with full path"
72
+ },
73
+ "_complete_windows_example": {
74
+ "description": "Full example for Windows with explicit paths",
75
+ "setup": {
76
+ "1": "npm install -g sdl-mcp",
77
+ "2": "Create sdlmcp.config.json in your project root",
78
+ "3": "Run opencode from project directory"
79
+ },
80
+ "mcpServers": {
81
+ "sdl-mcp": {
82
+ "command": "sdl-mcp",
83
+ "args": [],
84
+ "env": {
85
+ "SDL_CONFIG": "${workspaceFolder}/sdlmcp.config.json"
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Your Name
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.