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
package/dist/db/db.js ADDED
@@ -0,0 +1,47 @@
1
+ import Database from "better-sqlite3";
2
+ import { mkdirSync } from "fs";
3
+ import { dirname, join } from "path";
4
+ import { fileURLToPath } from "url";
5
+ import { DB_BUSY_TIMEOUT_MS } from "../config/constants.js";
6
+ const __dirname = fileURLToPath(new URL(".", import.meta.url));
7
+ let dbInstance = null;
8
+ export function getDb(dbPath) {
9
+ if (dbInstance) {
10
+ return dbInstance;
11
+ }
12
+ const envPath = process.env.SDL_DB_PATH;
13
+ const path = dbPath || envPath || join(__dirname, "..", "..", "sdl-ledger.db");
14
+ // Ensure parent directory exists for file-backed databases (CI runners may start clean).
15
+ if (path !== ":memory:") {
16
+ const parentDir = dirname(path);
17
+ if (parentDir && parentDir !== ".") {
18
+ mkdirSync(parentDir, { recursive: true });
19
+ }
20
+ }
21
+ const db = new Database(path);
22
+ db.pragma("journal_mode = WAL");
23
+ db.pragma("synchronous = NORMAL");
24
+ db.pragma(`busy_timeout = ${DB_BUSY_TIMEOUT_MS}`);
25
+ db.pragma("foreign_keys = ON");
26
+ dbInstance = db;
27
+ process.on("exit", () => {
28
+ if (dbInstance) {
29
+ dbInstance.close();
30
+ dbInstance = null;
31
+ }
32
+ });
33
+ process.once("SIGINT", () => {
34
+ if (dbInstance) {
35
+ dbInstance.close();
36
+ dbInstance = null;
37
+ }
38
+ });
39
+ return dbInstance;
40
+ }
41
+ export function closeDb() {
42
+ if (dbInstance) {
43
+ dbInstance.close();
44
+ dbInstance = null;
45
+ }
46
+ }
47
+ //# sourceMappingURL=db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/db/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,IAAI,UAAU,GAA6B,IAAI,CAAC;AAEhD,MAAM,UAAU,KAAK,CAAC,MAAe;IACnC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACxC,MAAM,IAAI,GACR,MAAM,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IAEpE,yFAAyF;IACzF,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,SAAS,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACnC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE9B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAClC,EAAE,CAAC,MAAM,CAAC,kBAAkB,kBAAkB,EAAE,CAAC,CAAC;IAClD,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/B,UAAU,GAAG,EAAE,CAAC;IAEhB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACtB,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC1B,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ import Database from "better-sqlite3";
2
+ export interface MigrationRow {
3
+ id: number;
4
+ name: string;
5
+ applied_at: string;
6
+ }
7
+ export interface MigrationResult {
8
+ applied: string[];
9
+ alreadyApplied: string[];
10
+ }
11
+ export declare function getAppliedMigrations(db: Database.Database): MigrationRow[];
12
+ export declare function getPendingMigrations(db: Database.Database): string[];
13
+ export declare function runMigrations(db: Database.Database): MigrationResult;
14
+ export declare function runDefaultMigrations(): void;
15
+ //# sourceMappingURL=migrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAOtC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAgBD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,YAAY,EAAE,CAY1E;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,EAAE,CASpE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,eAAe,CAkDpE;AAID,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C"}
@@ -0,0 +1,81 @@
1
+ import { readdirSync, readFileSync } from "fs";
2
+ import { join } from "path";
3
+ import { fileURLToPath } from "url";
4
+ import { findPackageRoot } from "../util/findPackageRoot.js";
5
+ const __dirname = fileURLToPath(new URL(".", import.meta.url));
6
+ const PACKAGE_ROOT = findPackageRoot(__dirname);
7
+ const MIGRATIONS_DIR = join(PACKAGE_ROOT, "migrations");
8
+ function registerMigrationFunctions(db) {
9
+ // SQLite does not ship with reverse() by default, but migration 0011 uses it.
10
+ db.function("reverse", { deterministic: true }, (value) => {
11
+ if (value === null) {
12
+ return null;
13
+ }
14
+ return [...value].reverse().join("");
15
+ });
16
+ }
17
+ export function getAppliedMigrations(db) {
18
+ db.exec(`
19
+ CREATE TABLE IF NOT EXISTS _migrations (
20
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
21
+ name TEXT NOT NULL UNIQUE,
22
+ applied_at TEXT NOT NULL
23
+ )
24
+ `);
25
+ return db
26
+ .prepare("SELECT * FROM _migrations ORDER BY name")
27
+ .all();
28
+ }
29
+ export function getPendingMigrations(db) {
30
+ const appliedMigrations = getAppliedMigrations(db);
31
+ const appliedNames = new Set(appliedMigrations.map((m) => m.name));
32
+ const migrationFiles = readdirSync(MIGRATIONS_DIR)
33
+ .filter((f) => f.endsWith(".sql"))
34
+ .sort();
35
+ return migrationFiles.filter((f) => !appliedNames.has(f));
36
+ }
37
+ export function runMigrations(db) {
38
+ registerMigrationFunctions(db);
39
+ const appliedMigrations = getAppliedMigrations(db);
40
+ const appliedNames = new Set(appliedMigrations.map((m) => m.name));
41
+ const migrationFiles = readdirSync(MIGRATIONS_DIR)
42
+ .filter((f) => f.endsWith(".sql"))
43
+ .sort();
44
+ const insertStmt = db.prepare("INSERT INTO _migrations (name, applied_at) VALUES (?, ?)");
45
+ const result = {
46
+ applied: [],
47
+ alreadyApplied: []
48
+ };
49
+ for (const file of migrationFiles) {
50
+ if (appliedNames.has(file)) {
51
+ result.alreadyApplied.push(file);
52
+ continue;
53
+ }
54
+ const filePath = join(MIGRATIONS_DIR, file);
55
+ const sql = readFileSync(filePath, "utf-8");
56
+ try {
57
+ db.exec(sql);
58
+ }
59
+ catch (error) {
60
+ // Handle idempotency issues: if the schema change already exists, mark as applied
61
+ const errorMessage = error instanceof Error ? error.message : String(error);
62
+ const isIdempotencyError = errorMessage.includes("duplicate column name") ||
63
+ errorMessage.includes("already exists") ||
64
+ (errorMessage.includes("table") && errorMessage.includes("already exists"));
65
+ if (!isIdempotencyError) {
66
+ throw error;
67
+ }
68
+ // Schema change already applied, continue to mark as applied
69
+ }
70
+ const now = new Date().toISOString();
71
+ insertStmt.run(file, now);
72
+ result.applied.push(file);
73
+ }
74
+ return result;
75
+ }
76
+ import { getDb } from "./db.js";
77
+ export function runDefaultMigrations() {
78
+ const db = getDb();
79
+ runMigrations(db);
80
+ }
81
+ //# sourceMappingURL=migrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;AAChD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAaxD,SAAS,0BAA0B,CAAC,EAAqB;IACvD,8EAA8E;IAC9E,EAAE,CAAC,QAAQ,CACT,SAAS,EACT,EAAE,aAAa,EAAE,IAAI,EAAE,EACvB,CAAC,KAAoB,EAAiB,EAAE;QACtC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAqB;IACxD,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAC;IAEH,OAAO,EAAE;SACN,OAAO,CAAC,yCAAyC,CAAC;SAClD,GAAG,EAAoB,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAqB;IACxD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;SAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACjC,IAAI,EAAE,CAAC;IAEV,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAqB;IACjD,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAE/B,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;SAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACjC,IAAI,EAAE,CAAC;IAEV,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAC3B,0DAA0D,CAC3D,CAAC;IAEF,MAAM,MAAM,GAAoB;QAC9B,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,EAAE;KACnB,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kFAAkF;YAClF,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,kBAAkB,GACtB,YAAY,CAAC,QAAQ,CAAC,uBAAuB,CAAC;gBAC9C,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBACvC,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAE9E,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,MAAM,KAAK,CAAC;YACd,CAAC;YACD,6DAA6D;QAC/D,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,UAAU,oBAAoB;IAClC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,440 @@
1
+ import type { RepoRow, FileRow, SymbolRow, EdgeRow, VersionRow, SymbolVersionRow, MetricsRow, AuditRow, SliceHandleRow, CardHashRow, ToolPolicyHashRow, TsconfigHashRow, SymbolReferenceRow } from "./schema.js";
2
+ export declare function resetQueryCache(): void;
3
+ /**
4
+ * Creates a new repository record in the database.
5
+ *
6
+ * @param repo - Repository record with repo_id, root_path, config_json, and created_at
7
+ */
8
+ export declare function createRepo(repo: RepoRow): void;
9
+ /**
10
+ * Retrieves a repository by ID.
11
+ *
12
+ * @param repoId - Repository identifier
13
+ * @returns Repository record or null if not found
14
+ */
15
+ export declare function getRepo(repoId: string): RepoRow | null;
16
+ /**
17
+ * Lists all repositories in the database.
18
+ *
19
+ * @returns Array of all repository records
20
+ */
21
+ export declare function listRepos(): RepoRow[];
22
+ /**
23
+ * Updates repository root_path and config_json by ID.
24
+ *
25
+ * @param repoId - Repository identifier
26
+ * @param updates - Partial repository record with fields to update (only root_path and config_json are supported)
27
+ */
28
+ export declare function updateRepo(repoId: string, updates: Partial<RepoRow>): void;
29
+ /**
30
+ * Inserts or updates a file record.
31
+ * Uses upsert semantics to handle both new and existing files.
32
+ *
33
+ * @param file - File record without file_id (auto-generated) and directory (computed)
34
+ */
35
+ export declare function upsertFile(file: Omit<FileRow, "file_id" | "directory">): void;
36
+ /**
37
+ * Retrieves a file by ID.
38
+ *
39
+ * @param fileId - File identifier
40
+ * @returns File record or null if not found
41
+ */
42
+ export declare function getFile(fileId: number): FileRow | null;
43
+ /**
44
+ * Lists all files for a repository.
45
+ *
46
+ * @param repoId - Repository identifier
47
+ * @returns Array of file records for the repository
48
+ */
49
+ export declare function getFilesByRepo(repoId: string): FileRow[];
50
+ /**
51
+ * Lists all files for a repository with minimal projection.
52
+ * Returns only file_id and rel_path for lightweight lookups.
53
+ *
54
+ * @param repoId - Repository identifier
55
+ * @returns Array of file records with minimal fields
56
+ */
57
+ export declare function getFilesByRepoLite(repoId: string): Pick<FileRow, "file_id" | "rel_path">[];
58
+ /**
59
+ * Retrieves a file by repository ID and relative path.
60
+ *
61
+ * @param repoId - Repository identifier
62
+ * @param relPath - Relative path within repository
63
+ * @returns File record or null if not found
64
+ */
65
+ export declare function getFileByRepoPath(repoId: string, relPath: string): FileRow | null;
66
+ /**
67
+ * Deletes a file record by ID.
68
+ *
69
+ * @param fileId - File identifier
70
+ */
71
+ export declare function deleteFile(fileId: number): void;
72
+ /**
73
+ * Batch fetch files by IDs. Uses chunked queries to avoid SQLite parameter limits.
74
+ * Returns a Map for O(1) lookup by file_id.
75
+ */
76
+ export declare function getFilesByIds(fileIds: number[]): Map<number, FileRow>;
77
+ /**
78
+ * Batch fetch files by IDs with minimal projection.
79
+ * Returns only file_id and rel_path for lightweight lookups.
80
+ * Uses chunked queries to avoid SQLite parameter limits.
81
+ *
82
+ * @param fileIds - Array of file identifiers
83
+ * @returns Map of file_id to minimal file record
84
+ */
85
+ export declare function getFilesByIdsLite(fileIds: number[]): Map<number, Pick<FileRow, "file_id" | "rel_path">>;
86
+ /**
87
+ * Inserts or updates a symbol record.
88
+ * Uses upsert semantics to handle both new and existing symbols.
89
+ *
90
+ * @param symbol - Complete symbol record with all fields
91
+ */
92
+ export declare function upsertSymbol(symbol: SymbolRow): void;
93
+ /**
94
+ * Retrieves a symbol by ID.
95
+ *
96
+ * @param symbolId - Symbol identifier
97
+ * @returns Symbol record or null if not found
98
+ */
99
+ export declare function getSymbol(symbolId: string): SymbolRow | null;
100
+ /**
101
+ * Lists all symbols for a file.
102
+ *
103
+ * @param fileId - File identifier
104
+ * @returns Array of symbol records for the file
105
+ */
106
+ export declare function getSymbolsByFile(fileId: number): SymbolRow[];
107
+ /**
108
+ * Lists all symbol IDs for a file (minimal projection).
109
+ * Use when only symbol IDs are needed, not full records.
110
+ *
111
+ * @param fileId - File identifier
112
+ * @returns Array of symbol identifiers
113
+ */
114
+ export declare function getSymbolIdsByFile(fileId: number): string[];
115
+ /**
116
+ * Lists all symbols for a file with minimal projection.
117
+ * Returns symbol_id, name, exported for import resolution.
118
+ *
119
+ * @param fileId - File identifier
120
+ * @returns Array of symbol records with minimal fields
121
+ */
122
+ export declare function getSymbolsByFileLite(fileId: number): Pick<SymbolRow, "symbol_id" | "name" | "exported">[];
123
+ /**
124
+ * Lists all symbols for a repository.
125
+ *
126
+ * @param repoId - Repository identifier
127
+ * @returns Array of all symbol records for repository
128
+ */
129
+ export declare function getSymbolsByRepo(repoId: string): SymbolRow[];
130
+ /**
131
+ * Lists all symbols for a repository with version snapshot projection.
132
+ * Returns only fields needed for versioning: symbol_id, ast_fingerprint, signature_json,
133
+ * summary, invariants_json, side_effects_json.
134
+ *
135
+ * @param repoId - Repository identifier
136
+ * @returns Array of symbol records for snapshot
137
+ */
138
+ export declare function getSymbolsByRepoForSnapshot(repoId: string): Pick<SymbolRow, "symbol_id" | "ast_fingerprint" | "signature_json" | "summary" | "invariants_json" | "side_effects_json">[];
139
+ export declare function countSymbolsByRepo(repoId: string): number;
140
+ /**
141
+ * Batch fetch symbols by IDs. Uses chunked queries to avoid SQLite parameter limits.
142
+ * Returns a Map for O(1) lookup by symbol_id.
143
+ *
144
+ * @param symbolIds - Array of symbol identifiers
145
+ * @returns Map of symbol_id to SymbolRow
146
+ */
147
+ export declare function getSymbolsByIds(symbolIds: string[]): Map<string, SymbolRow>;
148
+ /**
149
+ * Batch fetch symbols by IDs with minimal projection.
150
+ * Returns only symbol_id, name, file_id for lightweight lookups.
151
+ * Uses chunked queries to avoid SQLite parameter limits.
152
+ *
153
+ * @param symbolIds - Array of symbol identifiers
154
+ * @returns Map of symbol_id to minimal symbol record
155
+ */
156
+ export declare function getSymbolsByIdsLite(symbolIds: string[]): Map<string, Pick<SymbolRow, "symbol_id" | "name" | "file_id">>;
157
+ /**
158
+ * Searches symbols by name or summary with LIKE pattern matching.
159
+ * Returns full symbol records with all fields.
160
+ *
161
+ * @param repoId - Repository identifier
162
+ * @param query - Search query string
163
+ * @param limit - Maximum number of results to return
164
+ * @returns Array of matching symbol records
165
+ */
166
+ export declare function searchSymbols(repoId: string, query: string, limit: number): SymbolRow[];
167
+ /**
168
+ * Searches symbols by name or summary with LIKE pattern matching.
169
+ * Returns minimal projection: only symbol_id, name, file_id, kind.
170
+ * Use for search result listings where full symbol data is not needed.
171
+ *
172
+ * @param repoId - Repository identifier
173
+ * @param query - Search query string
174
+ * @param limit - Maximum number of results to return
175
+ * @returns Array of symbol records with minimal fields
176
+ */
177
+ export declare function searchSymbolsLite(repoId: string, query: string, limit: number): Pick<SymbolRow, "symbol_id" | "name" | "file_id" | "kind">[];
178
+ /**
179
+ * Finds symbols within a line range, sorted by containment.
180
+ * Returns fully contained symbols first, then overlapping.
181
+ *
182
+ * @param repoId - Repository identifier
183
+ * @param fileId - File identifier
184
+ * @param startLine - Start line of range (1-indexed)
185
+ * @param endLine - End line of range (1-indexed)
186
+ * @returns Array of symbol records sorted by containment
187
+ */
188
+ export declare function findSymbolsInRange(repoId: string, fileId: number, startLine: number, endLine: number): SymbolRow[];
189
+ /**
190
+ * Finds symbols within a line range with minimal projection.
191
+ * Returns only symbol_id for diagnostic mapping.
192
+ *
193
+ * @param repoId - Repository identifier
194
+ * @param fileId - File identifier
195
+ * @param startLine - Start line of range (1-indexed)
196
+ * @param endLine - End line of range (1-indexed)
197
+ * @returns Array of symbol IDs sorted by containment
198
+ */
199
+ export declare function findSymbolsInRangeLite(repoId: string, fileId: number, startLine: number, endLine: number): Pick<SymbolRow, "symbol_id">[];
200
+ /**
201
+ * Deletes all symbols for a file.
202
+ *
203
+ * @param fileId - File identifier
204
+ */
205
+ export declare function deleteSymbolsByFile(fileId: number): void;
206
+ /**
207
+ * Deletes all symbols for a file along with their edges, metrics, and versions.
208
+ * Runs within a transaction for atomicity.
209
+ *
210
+ * @param fileId - File identifier
211
+ */
212
+ export declare function deleteSymbolsByFileWithEdges(fileId: number): void;
213
+ /**
214
+ * Creates a new edge record.
215
+ *
216
+ * @param edge - Edge record with all required fields
217
+ */
218
+ export declare function createEdge(edge: EdgeRow): void;
219
+ /**
220
+ * Retrieves outgoing edges for a symbol.
221
+ *
222
+ * @param symbolId - Symbol identifier
223
+ * @returns Array of outgoing edge records
224
+ */
225
+ export declare function getEdgesFrom(symbolId: string): EdgeRow[];
226
+ /**
227
+ * Retrieves incoming edges for a symbol.
228
+ * Used by scripts/dump-symbol.ts for symbol analysis.
229
+ *
230
+ * @param symbolId - Symbol identifier
231
+ * @returns Array of incoming edge records
232
+ */
233
+ export declare function getEdgesTo(symbolId: string): EdgeRow[];
234
+ /**
235
+ * Lists all edges for a repository.
236
+ *
237
+ * @param repoId - Repository identifier
238
+ * @returns Array of all edge records for repository
239
+ */
240
+ export declare function getEdgesByRepo(repoId: string): EdgeRow[];
241
+ /**
242
+ * Batch fetch outgoing edges for multiple symbols. Uses chunked queries.
243
+ * Returns a Map where key is from_symbol_id and value is array of edges.
244
+ *
245
+ * @param symbolIds - Array of symbol identifiers
246
+ * @returns Map of symbol_id to array of outgoing edges
247
+ */
248
+ export declare function getEdgesFromSymbols(symbolIds: string[]): Map<string, EdgeRow[]>;
249
+ /**
250
+ * Batch fetch outgoing edges for multiple symbols with minimal projection.
251
+ * Returns only from_symbol_id, to_symbol_id, type for dependency tracking.
252
+ * Uses chunked queries to avoid SQLite parameter limits.
253
+ *
254
+ * @param symbolIds - Array of symbol identifiers
255
+ * @returns Map of symbol_id to array of minimal edge records
256
+ */
257
+ export declare function getEdgesFromSymbolsLite(symbolIds: string[]): Map<string, Pick<EdgeRow, "from_symbol_id" | "to_symbol_id" | "type">[]>;
258
+ /**
259
+ * Deletes all edges (both incoming and outgoing) for a symbol.
260
+ *
261
+ * @param symbolId - Symbol identifier
262
+ */
263
+ export declare function deleteEdgesBySymbol(symbolId: string): void;
264
+ export declare function createVersion(version: VersionRow): void;
265
+ export declare function getVersion(versionId: string): VersionRow | null;
266
+ export declare function getLatestVersion(repoId: string): VersionRow | null;
267
+ export declare function listVersions(repoId: string, limit?: number): VersionRow[];
268
+ export declare function snapshotSymbolVersion(versionId: string, symbolId: string, snapshot: SymbolVersionRow): void;
269
+ export declare function getSymbolVersion(versionId: string, symbolId: string): SymbolVersionRow | null;
270
+ export declare function upsertMetrics(metrics: {
271
+ symbolId: string;
272
+ fanIn: number;
273
+ fanOut: number;
274
+ churn30d: number;
275
+ testRefsJson: string;
276
+ updatedAt: string;
277
+ }): void;
278
+ export declare function getMetrics(symbolId: string): MetricsRow | null;
279
+ /**
280
+ * Batch fetch metrics by symbol IDs. Uses chunked queries to avoid SQLite parameter limits.
281
+ * Returns a Map for O(1) lookup by symbol_id.
282
+ */
283
+ export declare function getMetricsBySymbolIds(symbolIds: string[]): Map<string, MetricsRow>;
284
+ export declare function logAuditEvent(event: {
285
+ timestamp: string;
286
+ tool: string;
287
+ decision: string;
288
+ repoId?: string;
289
+ symbolId?: string;
290
+ detailsJson: string;
291
+ }): void;
292
+ export declare function getAuditEvents(repoId?: string, limit?: number): AuditRow[];
293
+ export declare function createRepoTransaction(repo: RepoRow): void;
294
+ export declare function upsertFileTransaction(file: Omit<FileRow, "file_id" | "directory">): void;
295
+ export declare function upsertSymbolTransaction(symbol: SymbolRow): void;
296
+ export declare function createEdgeTransaction(edge: EdgeRow): void;
297
+ export declare function createVersionTransaction(version: VersionRow): void;
298
+ export declare function deleteFileTransaction(fileId: number): void;
299
+ export declare function deleteSymbolTransaction(symbolId: string): void;
300
+ export declare function createSnapshotTransaction(version: VersionRow, snapshots: SymbolVersionRow[]): void;
301
+ export declare function createSliceHandle(handle: SliceHandleRow): void;
302
+ export declare function getSliceHandle(handle: string): SliceHandleRow | null;
303
+ export declare function deleteSliceHandle(handle: string): void;
304
+ export declare function deleteExpiredSliceHandles(beforeTimestamp: string): number;
305
+ export declare function updateSliceHandleSpillover(handle: string, spilloverRef: string): void;
306
+ export declare function upsertCardHash(cardHash: string, cardBlob: string, createdAt: string): void;
307
+ export declare function getCardHash(cardHash: string): CardHashRow | null;
308
+ export declare function upsertToolPolicyHash(policyHash: string, policyBlob: string, createdAt: string): void;
309
+ export declare function getToolPolicyHash(policyHash: string): ToolPolicyHashRow | null;
310
+ export declare function upsertTsconfigHash(tsconfigHash: string, tsconfigBlob: string, createdAt: string): void;
311
+ export declare function getTsconfigHash(tsconfigHash: string): TsconfigHashRow | null;
312
+ export declare function updateVersionHashes(versionId: string, prevVersionHash: string | null, versionHash: string | null): void;
313
+ export declare function getVersionByHash(versionHash: string): VersionRow | null;
314
+ export declare function listVersionsByPrevHash(prevVersionHash: string): VersionRow[];
315
+ export declare function insertSymbolReference(ref: Omit<SymbolReferenceRow, "ref_id">): void;
316
+ export declare function getTestRefsForSymbol(repoId: string, symbolName: string): string[];
317
+ export declare function deleteSymbolReferencesByFileId(fileId: number): void;
318
+ /**
319
+ * Row type for directory-level symbol aggregation.
320
+ */
321
+ export interface DirectoryAggregateRow {
322
+ directory: string;
323
+ file_count: number;
324
+ symbol_count: number;
325
+ exported_count: number;
326
+ function_count: number;
327
+ class_count: number;
328
+ interface_count: number;
329
+ type_count: number;
330
+ method_count: number;
331
+ variable_count: number;
332
+ module_count: number;
333
+ constructor_count: number;
334
+ }
335
+ /**
336
+ * Aggregates symbol counts by directory for a repository.
337
+ * Groups files by their parent directory and counts symbols by kind.
338
+ *
339
+ * @param repoId - Repository identifier
340
+ * @returns Array of directory aggregations
341
+ */
342
+ export declare function getDirectoryAggregates(repoId: string): DirectoryAggregateRow[];
343
+ /**
344
+ * Row type for exported symbol listing.
345
+ */
346
+ export interface ExportedSymbolRow {
347
+ symbol_id: string;
348
+ name: string;
349
+ kind: string;
350
+ exported: number;
351
+ directory: string;
352
+ signature_json: string | null;
353
+ }
354
+ /**
355
+ * Gets exported symbols grouped by directory.
356
+ *
357
+ * @param repoId - Repository identifier
358
+ * @param limit - Maximum symbols per directory
359
+ * @returns Array of exported symbol records with directory
360
+ */
361
+ export declare function getExportedSymbolsByDirectory(repoId: string, limit?: number): ExportedSymbolRow[];
362
+ /**
363
+ * Row type for top symbols by metric.
364
+ */
365
+ export interface TopSymbolRow {
366
+ symbol_id: string;
367
+ name: string;
368
+ kind: string;
369
+ exported: number;
370
+ signature_json: string | null;
371
+ fan_in: number;
372
+ fan_out: number;
373
+ churn_30d: number;
374
+ directory: string;
375
+ }
376
+ /**
377
+ * Gets top symbols by fan-in (most depended upon).
378
+ *
379
+ * @param repoId - Repository identifier
380
+ * @param limit - Maximum number of symbols to return
381
+ * @returns Array of symbols ordered by fan-in descending
382
+ */
383
+ export declare function getTopSymbolsByFanIn(repoId: string, limit?: number): TopSymbolRow[];
384
+ /**
385
+ * Gets top symbols by churn (most frequently changed).
386
+ *
387
+ * @param repoId - Repository identifier
388
+ * @param limit - Maximum number of symbols to return
389
+ * @returns Array of symbols ordered by churn descending
390
+ */
391
+ export declare function getTopSymbolsByChurn(repoId: string, limit?: number): TopSymbolRow[];
392
+ /**
393
+ * Row type for file statistics.
394
+ */
395
+ export interface FileStatsRow {
396
+ rel_path: string;
397
+ directory: string;
398
+ symbol_count: number;
399
+ edge_count: number;
400
+ }
401
+ /**
402
+ * Gets files with most symbols.
403
+ *
404
+ * @param repoId - Repository identifier
405
+ * @param limit - Maximum number of files to return
406
+ * @returns Array of files ordered by symbol count descending
407
+ */
408
+ export declare function getFilesBySymbolCount(repoId: string, limit?: number): FileStatsRow[];
409
+ /**
410
+ * Gets files with most edges (highest connectivity).
411
+ *
412
+ * @param repoId - Repository identifier
413
+ * @param limit - Maximum number of files to return
414
+ * @returns Array of files ordered by edge count descending
415
+ */
416
+ export declare function getFilesByEdgeCount(repoId: string, limit?: number): FileStatsRow[];
417
+ /**
418
+ * Gets aggregate edge counts by type for a repository.
419
+ *
420
+ * @param repoId - Repository identifier
421
+ * @returns Object with counts per edge type
422
+ */
423
+ export declare function getEdgeCountsByType(repoId: string): {
424
+ call: number;
425
+ import: number;
426
+ config: number;
427
+ };
428
+ /**
429
+ * Gets total counts for files, symbols, and edges in a repository.
430
+ *
431
+ * @param repoId - Repository identifier
432
+ * @returns Object with total counts
433
+ */
434
+ export declare function getRepoTotals(repoId: string): {
435
+ fileCount: number;
436
+ symbolCount: number;
437
+ edgeCount: number;
438
+ exportedCount: number;
439
+ };
440
+ //# sourceMappingURL=queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/db/queries.ts"],"names":[],"mappings":"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"}