@specship/specship 0.11.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 (879) hide show
  1. package/.claude-plugin/plugin.json +6 -0
  2. package/LICENSE +21 -0
  3. package/README.md +583 -0
  4. package/agents/specship-explorer.md +29 -0
  5. package/commands/ss-behaviour.md +116 -0
  6. package/commands/ss-check.md +43 -0
  7. package/commands/ss-design-implement.md +84 -0
  8. package/commands/ss-design-loop.md +125 -0
  9. package/commands/ss-explore.md +43 -0
  10. package/commands/ss-spec.md +118 -0
  11. package/dist/activation/starter-prompt.d.ts +57 -0
  12. package/dist/activation/starter-prompt.d.ts.map +1 -0
  13. package/dist/activation/starter-prompt.js +164 -0
  14. package/dist/activation/starter-prompt.js.map +1 -0
  15. package/dist/analytics/specship-impact.d.ts +72 -0
  16. package/dist/analytics/specship-impact.d.ts.map +1 -0
  17. package/dist/analytics/specship-impact.js +216 -0
  18. package/dist/analytics/specship-impact.js.map +1 -0
  19. package/dist/behaviour/behaviour-surface.d.ts +59 -0
  20. package/dist/behaviour/behaviour-surface.d.ts.map +1 -0
  21. package/dist/behaviour/behaviour-surface.js +112 -0
  22. package/dist/behaviour/behaviour-surface.js.map +1 -0
  23. package/dist/bin/node-version-check.d.ts +37 -0
  24. package/dist/bin/node-version-check.d.ts.map +1 -0
  25. package/dist/bin/node-version-check.js +79 -0
  26. package/dist/bin/node-version-check.js.map +1 -0
  27. package/dist/bin/specship.d.ts +25 -0
  28. package/dist/bin/specship.d.ts.map +1 -0
  29. package/dist/bin/specship.js +2823 -0
  30. package/dist/bin/specship.js.map +1 -0
  31. package/dist/bin/uninstall.d.ts +13 -0
  32. package/dist/bin/uninstall.d.ts.map +1 -0
  33. package/dist/bin/uninstall.js +35 -0
  34. package/dist/bin/uninstall.js.map +1 -0
  35. package/dist/context/formatter.d.ts +30 -0
  36. package/dist/context/formatter.d.ts.map +1 -0
  37. package/dist/context/formatter.js +263 -0
  38. package/dist/context/formatter.js.map +1 -0
  39. package/dist/context/index.d.ts +119 -0
  40. package/dist/context/index.d.ts.map +1 -0
  41. package/dist/context/index.js +1289 -0
  42. package/dist/context/index.js.map +1 -0
  43. package/dist/context/markers.d.ts +19 -0
  44. package/dist/context/markers.d.ts.map +1 -0
  45. package/dist/context/markers.js +22 -0
  46. package/dist/context/markers.js.map +1 -0
  47. package/dist/db/index.d.ts +103 -0
  48. package/dist/db/index.d.ts.map +1 -0
  49. package/dist/db/index.js +279 -0
  50. package/dist/db/index.js.map +1 -0
  51. package/dist/db/migrations.d.ts +44 -0
  52. package/dist/db/migrations.d.ts.map +1 -0
  53. package/dist/db/migrations.js +503 -0
  54. package/dist/db/migrations.js.map +1 -0
  55. package/dist/db/queries.d.ts +357 -0
  56. package/dist/db/queries.d.ts.map +1 -0
  57. package/dist/db/queries.js +1504 -0
  58. package/dist/db/queries.js.map +1 -0
  59. package/dist/db/schema.sql +451 -0
  60. package/dist/db/spec-queries.d.ts +130 -0
  61. package/dist/db/spec-queries.d.ts.map +1 -0
  62. package/dist/db/spec-queries.js +738 -0
  63. package/dist/db/spec-queries.js.map +1 -0
  64. package/dist/db/sqlite-adapter.d.ts +65 -0
  65. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  66. package/dist/db/sqlite-adapter.js +214 -0
  67. package/dist/db/sqlite-adapter.js.map +1 -0
  68. package/dist/designer/artifact-store.js +54 -0
  69. package/dist/designer/browser.js +141 -0
  70. package/dist/designer/cdp-ensure.js +60 -0
  71. package/dist/designer/cdp-env.js +18 -0
  72. package/dist/designer/cdp-trace.js +599 -0
  73. package/dist/designer/cross-platform.js +74 -0
  74. package/dist/designer/designer-controller.js +1413 -0
  75. package/dist/designer/file-panel.js +39 -0
  76. package/dist/designer/interstitials.js +97 -0
  77. package/dist/designer/oopif-reader.js +176 -0
  78. package/dist/designer/package-meta.js +18 -0
  79. package/dist/designer/preview-host.js +50 -0
  80. package/dist/designer/repo-root.js +31 -0
  81. package/dist/designer/run-state.js +353 -0
  82. package/dist/designer/session-store.js +59 -0
  83. package/dist/designer/ui-anchors.js +651 -0
  84. package/dist/directory.d.ts +67 -0
  85. package/dist/directory.d.ts.map +1 -0
  86. package/dist/directory.js +267 -0
  87. package/dist/directory.js.map +1 -0
  88. package/dist/enforce/enforce.d.ts +70 -0
  89. package/dist/enforce/enforce.d.ts.map +1 -0
  90. package/dist/enforce/enforce.js +125 -0
  91. package/dist/enforce/enforce.js.map +1 -0
  92. package/dist/errors.d.ts +136 -0
  93. package/dist/errors.d.ts.map +1 -0
  94. package/dist/errors.js +219 -0
  95. package/dist/errors.js.map +1 -0
  96. package/dist/extraction/dfm-extractor.d.ts +31 -0
  97. package/dist/extraction/dfm-extractor.d.ts.map +1 -0
  98. package/dist/extraction/dfm-extractor.js +151 -0
  99. package/dist/extraction/dfm-extractor.js.map +1 -0
  100. package/dist/extraction/generated-detection.d.ts +30 -0
  101. package/dist/extraction/generated-detection.d.ts.map +1 -0
  102. package/dist/extraction/generated-detection.js +80 -0
  103. package/dist/extraction/generated-detection.js.map +1 -0
  104. package/dist/extraction/grammars.d.ts +100 -0
  105. package/dist/extraction/grammars.d.ts.map +1 -0
  106. package/dist/extraction/grammars.js +426 -0
  107. package/dist/extraction/grammars.js.map +1 -0
  108. package/dist/extraction/index.d.ts +138 -0
  109. package/dist/extraction/index.d.ts.map +1 -0
  110. package/dist/extraction/index.js +1394 -0
  111. package/dist/extraction/index.js.map +1 -0
  112. package/dist/extraction/languages/c-cpp.d.ts +4 -0
  113. package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
  114. package/dist/extraction/languages/c-cpp.js +171 -0
  115. package/dist/extraction/languages/c-cpp.js.map +1 -0
  116. package/dist/extraction/languages/csharp.d.ts +3 -0
  117. package/dist/extraction/languages/csharp.d.ts.map +1 -0
  118. package/dist/extraction/languages/csharp.js +73 -0
  119. package/dist/extraction/languages/csharp.js.map +1 -0
  120. package/dist/extraction/languages/dart.d.ts +3 -0
  121. package/dist/extraction/languages/dart.d.ts.map +1 -0
  122. package/dist/extraction/languages/dart.js +192 -0
  123. package/dist/extraction/languages/dart.js.map +1 -0
  124. package/dist/extraction/languages/go.d.ts +3 -0
  125. package/dist/extraction/languages/go.d.ts.map +1 -0
  126. package/dist/extraction/languages/go.js +74 -0
  127. package/dist/extraction/languages/go.js.map +1 -0
  128. package/dist/extraction/languages/index.d.ts +10 -0
  129. package/dist/extraction/languages/index.d.ts.map +1 -0
  130. package/dist/extraction/languages/index.js +51 -0
  131. package/dist/extraction/languages/index.js.map +1 -0
  132. package/dist/extraction/languages/java.d.ts +3 -0
  133. package/dist/extraction/languages/java.d.ts.map +1 -0
  134. package/dist/extraction/languages/java.js +70 -0
  135. package/dist/extraction/languages/java.js.map +1 -0
  136. package/dist/extraction/languages/javascript.d.ts +3 -0
  137. package/dist/extraction/languages/javascript.d.ts.map +1 -0
  138. package/dist/extraction/languages/javascript.js +90 -0
  139. package/dist/extraction/languages/javascript.js.map +1 -0
  140. package/dist/extraction/languages/kotlin.d.ts +3 -0
  141. package/dist/extraction/languages/kotlin.d.ts.map +1 -0
  142. package/dist/extraction/languages/kotlin.js +259 -0
  143. package/dist/extraction/languages/kotlin.js.map +1 -0
  144. package/dist/extraction/languages/lua.d.ts +3 -0
  145. package/dist/extraction/languages/lua.d.ts.map +1 -0
  146. package/dist/extraction/languages/lua.js +150 -0
  147. package/dist/extraction/languages/lua.js.map +1 -0
  148. package/dist/extraction/languages/luau.d.ts +3 -0
  149. package/dist/extraction/languages/luau.d.ts.map +1 -0
  150. package/dist/extraction/languages/luau.js +37 -0
  151. package/dist/extraction/languages/luau.js.map +1 -0
  152. package/dist/extraction/languages/objc.d.ts +3 -0
  153. package/dist/extraction/languages/objc.d.ts.map +1 -0
  154. package/dist/extraction/languages/objc.js +133 -0
  155. package/dist/extraction/languages/objc.js.map +1 -0
  156. package/dist/extraction/languages/pascal.d.ts +3 -0
  157. package/dist/extraction/languages/pascal.d.ts.map +1 -0
  158. package/dist/extraction/languages/pascal.js +66 -0
  159. package/dist/extraction/languages/pascal.js.map +1 -0
  160. package/dist/extraction/languages/php.d.ts +3 -0
  161. package/dist/extraction/languages/php.d.ts.map +1 -0
  162. package/dist/extraction/languages/php.js +107 -0
  163. package/dist/extraction/languages/php.js.map +1 -0
  164. package/dist/extraction/languages/python.d.ts +3 -0
  165. package/dist/extraction/languages/python.d.ts.map +1 -0
  166. package/dist/extraction/languages/python.js +56 -0
  167. package/dist/extraction/languages/python.js.map +1 -0
  168. package/dist/extraction/languages/ruby.d.ts +3 -0
  169. package/dist/extraction/languages/ruby.d.ts.map +1 -0
  170. package/dist/extraction/languages/ruby.js +114 -0
  171. package/dist/extraction/languages/ruby.js.map +1 -0
  172. package/dist/extraction/languages/rust.d.ts +3 -0
  173. package/dist/extraction/languages/rust.d.ts.map +1 -0
  174. package/dist/extraction/languages/rust.js +109 -0
  175. package/dist/extraction/languages/rust.js.map +1 -0
  176. package/dist/extraction/languages/scala.d.ts +3 -0
  177. package/dist/extraction/languages/scala.d.ts.map +1 -0
  178. package/dist/extraction/languages/scala.js +139 -0
  179. package/dist/extraction/languages/scala.js.map +1 -0
  180. package/dist/extraction/languages/swift.d.ts +3 -0
  181. package/dist/extraction/languages/swift.d.ts.map +1 -0
  182. package/dist/extraction/languages/swift.js +91 -0
  183. package/dist/extraction/languages/swift.js.map +1 -0
  184. package/dist/extraction/languages/typescript.d.ts +3 -0
  185. package/dist/extraction/languages/typescript.d.ts.map +1 -0
  186. package/dist/extraction/languages/typescript.js +129 -0
  187. package/dist/extraction/languages/typescript.js.map +1 -0
  188. package/dist/extraction/liquid-extractor.d.ts +52 -0
  189. package/dist/extraction/liquid-extractor.d.ts.map +1 -0
  190. package/dist/extraction/liquid-extractor.js +313 -0
  191. package/dist/extraction/liquid-extractor.js.map +1 -0
  192. package/dist/extraction/mybatis-extractor.d.ts +48 -0
  193. package/dist/extraction/mybatis-extractor.d.ts.map +1 -0
  194. package/dist/extraction/mybatis-extractor.js +198 -0
  195. package/dist/extraction/mybatis-extractor.js.map +1 -0
  196. package/dist/extraction/parse-worker.d.ts +8 -0
  197. package/dist/extraction/parse-worker.d.ts.map +1 -0
  198. package/dist/extraction/parse-worker.js +94 -0
  199. package/dist/extraction/parse-worker.js.map +1 -0
  200. package/dist/extraction/specs/markdown-spec-extractor.d.ts +114 -0
  201. package/dist/extraction/specs/markdown-spec-extractor.d.ts.map +1 -0
  202. package/dist/extraction/specs/markdown-spec-extractor.js +699 -0
  203. package/dist/extraction/specs/markdown-spec-extractor.js.map +1 -0
  204. package/dist/extraction/specs/types.d.ts +39 -0
  205. package/dist/extraction/specs/types.d.ts.map +1 -0
  206. package/dist/extraction/specs/types.js +8 -0
  207. package/dist/extraction/specs/types.js.map +1 -0
  208. package/dist/extraction/svelte-extractor.d.ts +56 -0
  209. package/dist/extraction/svelte-extractor.d.ts.map +1 -0
  210. package/dist/extraction/svelte-extractor.js +272 -0
  211. package/dist/extraction/svelte-extractor.js.map +1 -0
  212. package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
  213. package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
  214. package/dist/extraction/tree-sitter-helpers.js +103 -0
  215. package/dist/extraction/tree-sitter-helpers.js.map +1 -0
  216. package/dist/extraction/tree-sitter-types.d.ts +193 -0
  217. package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
  218. package/dist/extraction/tree-sitter-types.js +10 -0
  219. package/dist/extraction/tree-sitter-types.js.map +1 -0
  220. package/dist/extraction/tree-sitter.d.ts +317 -0
  221. package/dist/extraction/tree-sitter.d.ts.map +1 -0
  222. package/dist/extraction/tree-sitter.js +3092 -0
  223. package/dist/extraction/tree-sitter.js.map +1 -0
  224. package/dist/extraction/vue-extractor.d.ts +51 -0
  225. package/dist/extraction/vue-extractor.d.ts.map +1 -0
  226. package/dist/extraction/vue-extractor.js +251 -0
  227. package/dist/extraction/vue-extractor.js.map +1 -0
  228. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  229. package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  230. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  231. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  232. package/dist/extraction/wasm-runtime-flags.d.ts +38 -0
  233. package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
  234. package/dist/extraction/wasm-runtime-flags.js +106 -0
  235. package/dist/extraction/wasm-runtime-flags.js.map +1 -0
  236. package/dist/fitness/fitness.d.ts +75 -0
  237. package/dist/fitness/fitness.d.ts.map +1 -0
  238. package/dist/fitness/fitness.js +204 -0
  239. package/dist/fitness/fitness.js.map +1 -0
  240. package/dist/graph/index.d.ts +8 -0
  241. package/dist/graph/index.d.ts.map +1 -0
  242. package/dist/graph/index.js +13 -0
  243. package/dist/graph/index.js.map +1 -0
  244. package/dist/graph/maintainability.d.ts +115 -0
  245. package/dist/graph/maintainability.d.ts.map +1 -0
  246. package/dist/graph/maintainability.js +299 -0
  247. package/dist/graph/maintainability.js.map +1 -0
  248. package/dist/graph/queries.d.ts +106 -0
  249. package/dist/graph/queries.d.ts.map +1 -0
  250. package/dist/graph/queries.js +366 -0
  251. package/dist/graph/queries.js.map +1 -0
  252. package/dist/graph/traversal.d.ts +127 -0
  253. package/dist/graph/traversal.d.ts.map +1 -0
  254. package/dist/graph/traversal.js +531 -0
  255. package/dist/graph/traversal.js.map +1 -0
  256. package/dist/health/smoke-check.d.ts +85 -0
  257. package/dist/health/smoke-check.d.ts.map +1 -0
  258. package/dist/health/smoke-check.js +246 -0
  259. package/dist/health/smoke-check.js.map +1 -0
  260. package/dist/index.d.ts +674 -0
  261. package/dist/index.d.ts.map +1 -0
  262. package/dist/index.js +1473 -0
  263. package/dist/index.js.map +1 -0
  264. package/dist/installer/config-writer.d.ts +28 -0
  265. package/dist/installer/config-writer.d.ts.map +1 -0
  266. package/dist/installer/config-writer.js +91 -0
  267. package/dist/installer/config-writer.js.map +1 -0
  268. package/dist/installer/index.d.ts +100 -0
  269. package/dist/installer/index.d.ts.map +1 -0
  270. package/dist/installer/index.js +442 -0
  271. package/dist/installer/index.js.map +1 -0
  272. package/dist/installer/init-offer.d.ts +31 -0
  273. package/dist/installer/init-offer.d.ts.map +1 -0
  274. package/dist/installer/init-offer.js +30 -0
  275. package/dist/installer/init-offer.js.map +1 -0
  276. package/dist/installer/instructions-template.d.ts +36 -0
  277. package/dist/installer/instructions-template.d.ts.map +1 -0
  278. package/dist/installer/instructions-template.js +57 -0
  279. package/dist/installer/instructions-template.js.map +1 -0
  280. package/dist/installer/targets/claude.d.ts +146 -0
  281. package/dist/installer/targets/claude.d.ts.map +1 -0
  282. package/dist/installer/targets/claude.js +864 -0
  283. package/dist/installer/targets/claude.js.map +1 -0
  284. package/dist/installer/targets/registry.d.ts +19 -0
  285. package/dist/installer/targets/registry.d.ts.map +1 -0
  286. package/dist/installer/targets/registry.js +31 -0
  287. package/dist/installer/targets/registry.js.map +1 -0
  288. package/dist/installer/targets/shared.d.ts +76 -0
  289. package/dist/installer/targets/shared.d.ts.map +1 -0
  290. package/dist/installer/targets/shared.js +260 -0
  291. package/dist/installer/targets/shared.js.map +1 -0
  292. package/dist/installer/targets/types.d.ts +95 -0
  293. package/dist/installer/targets/types.d.ts.map +1 -0
  294. package/dist/installer/targets/types.js +12 -0
  295. package/dist/installer/targets/types.js.map +1 -0
  296. package/dist/isolation/worktree.d.ts +65 -0
  297. package/dist/isolation/worktree.d.ts.map +1 -0
  298. package/dist/isolation/worktree.js +231 -0
  299. package/dist/isolation/worktree.js.map +1 -0
  300. package/dist/mcp/daemon-paths.d.ts +46 -0
  301. package/dist/mcp/daemon-paths.d.ts.map +1 -0
  302. package/dist/mcp/daemon-paths.js +125 -0
  303. package/dist/mcp/daemon-paths.js.map +1 -0
  304. package/dist/mcp/daemon.d.ts +161 -0
  305. package/dist/mcp/daemon.d.ts.map +1 -0
  306. package/dist/mcp/daemon.js +403 -0
  307. package/dist/mcp/daemon.js.map +1 -0
  308. package/dist/mcp/designer-tools.d.ts +33 -0
  309. package/dist/mcp/designer-tools.d.ts.map +1 -0
  310. package/dist/mcp/designer-tools.js +313 -0
  311. package/dist/mcp/designer-tools.js.map +1 -0
  312. package/dist/mcp/engine.d.ts +105 -0
  313. package/dist/mcp/engine.d.ts.map +1 -0
  314. package/dist/mcp/engine.js +270 -0
  315. package/dist/mcp/engine.js.map +1 -0
  316. package/dist/mcp/fitness-tool.d.ts +12 -0
  317. package/dist/mcp/fitness-tool.d.ts.map +1 -0
  318. package/dist/mcp/fitness-tool.js +46 -0
  319. package/dist/mcp/fitness-tool.js.map +1 -0
  320. package/dist/mcp/index.d.ts +112 -0
  321. package/dist/mcp/index.d.ts.map +1 -0
  322. package/dist/mcp/index.js +477 -0
  323. package/dist/mcp/index.js.map +1 -0
  324. package/dist/mcp/maintainability-tool.d.ts +13 -0
  325. package/dist/mcp/maintainability-tool.d.ts.map +1 -0
  326. package/dist/mcp/maintainability-tool.js +64 -0
  327. package/dist/mcp/maintainability-tool.js.map +1 -0
  328. package/dist/mcp/proxy.d.ts +81 -0
  329. package/dist/mcp/proxy.d.ts.map +1 -0
  330. package/dist/mcp/proxy.js +510 -0
  331. package/dist/mcp/proxy.js.map +1 -0
  332. package/dist/mcp/server-instructions.d.ts +18 -0
  333. package/dist/mcp/server-instructions.d.ts.map +1 -0
  334. package/dist/mcp/server-instructions.js +79 -0
  335. package/dist/mcp/server-instructions.js.map +1 -0
  336. package/dist/mcp/session.d.ts +77 -0
  337. package/dist/mcp/session.d.ts.map +1 -0
  338. package/dist/mcp/session.js +294 -0
  339. package/dist/mcp/session.js.map +1 -0
  340. package/dist/mcp/spec-tools.d.ts +39 -0
  341. package/dist/mcp/spec-tools.d.ts.map +1 -0
  342. package/dist/mcp/spec-tools.js +534 -0
  343. package/dist/mcp/spec-tools.js.map +1 -0
  344. package/dist/mcp/tools.d.ts +417 -0
  345. package/dist/mcp/tools.d.ts.map +1 -0
  346. package/dist/mcp/tools.js +3179 -0
  347. package/dist/mcp/tools.js.map +1 -0
  348. package/dist/mcp/transport.d.ts +188 -0
  349. package/dist/mcp/transport.d.ts.map +1 -0
  350. package/dist/mcp/transport.js +343 -0
  351. package/dist/mcp/transport.js.map +1 -0
  352. package/dist/mcp/version.d.ts +19 -0
  353. package/dist/mcp/version.d.ts.map +1 -0
  354. package/dist/mcp/version.js +71 -0
  355. package/dist/mcp/version.js.map +1 -0
  356. package/dist/reflect/apply.d.ts +31 -0
  357. package/dist/reflect/apply.d.ts.map +1 -0
  358. package/dist/reflect/apply.js +286 -0
  359. package/dist/reflect/apply.js.map +1 -0
  360. package/dist/reflect/hash.d.ts +20 -0
  361. package/dist/reflect/hash.d.ts.map +1 -0
  362. package/dist/reflect/hash.js +36 -0
  363. package/dist/reflect/hash.js.map +1 -0
  364. package/dist/reflect/index.d.ts +16 -0
  365. package/dist/reflect/index.d.ts.map +1 -0
  366. package/dist/reflect/index.js +43 -0
  367. package/dist/reflect/index.js.map +1 -0
  368. package/dist/reflect/miner.d.ts +21 -0
  369. package/dist/reflect/miner.d.ts.map +1 -0
  370. package/dist/reflect/miner.js +463 -0
  371. package/dist/reflect/miner.js.map +1 -0
  372. package/dist/reflect/store.d.ts +31 -0
  373. package/dist/reflect/store.d.ts.map +1 -0
  374. package/dist/reflect/store.js +101 -0
  375. package/dist/reflect/store.js.map +1 -0
  376. package/dist/reflect/sweep.d.ts +26 -0
  377. package/dist/reflect/sweep.d.ts.map +1 -0
  378. package/dist/reflect/sweep.js +42 -0
  379. package/dist/reflect/sweep.js.map +1 -0
  380. package/dist/reflect/targets.d.ts +52 -0
  381. package/dist/reflect/targets.d.ts.map +1 -0
  382. package/dist/reflect/targets.js +192 -0
  383. package/dist/reflect/targets.js.map +1 -0
  384. package/dist/reflect/types.d.ts +96 -0
  385. package/dist/reflect/types.d.ts.map +1 -0
  386. package/dist/reflect/types.js +13 -0
  387. package/dist/reflect/types.js.map +1 -0
  388. package/dist/resolution/brief-link-resolver.d.ts +114 -0
  389. package/dist/resolution/brief-link-resolver.d.ts.map +1 -0
  390. package/dist/resolution/brief-link-resolver.js +261 -0
  391. package/dist/resolution/brief-link-resolver.js.map +1 -0
  392. package/dist/resolution/callback-synthesizer.d.ts +10 -0
  393. package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
  394. package/dist/resolution/callback-synthesizer.js +1300 -0
  395. package/dist/resolution/callback-synthesizer.js.map +1 -0
  396. package/dist/resolution/domain-gap-seed.d.ts +60 -0
  397. package/dist/resolution/domain-gap-seed.d.ts.map +1 -0
  398. package/dist/resolution/domain-gap-seed.js +87 -0
  399. package/dist/resolution/domain-gap-seed.js.map +1 -0
  400. package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
  401. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
  402. package/dist/resolution/frameworks/cargo-workspace.js +225 -0
  403. package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
  404. package/dist/resolution/frameworks/csharp.d.ts +8 -0
  405. package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
  406. package/dist/resolution/frameworks/csharp.js +241 -0
  407. package/dist/resolution/frameworks/csharp.js.map +1 -0
  408. package/dist/resolution/frameworks/drupal.d.ts +51 -0
  409. package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
  410. package/dist/resolution/frameworks/drupal.js +367 -0
  411. package/dist/resolution/frameworks/drupal.js.map +1 -0
  412. package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  413. package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  414. package/dist/resolution/frameworks/expo-modules.js +143 -0
  415. package/dist/resolution/frameworks/expo-modules.js.map +1 -0
  416. package/dist/resolution/frameworks/express.d.ts +8 -0
  417. package/dist/resolution/frameworks/express.d.ts.map +1 -0
  418. package/dist/resolution/frameworks/express.js +308 -0
  419. package/dist/resolution/frameworks/express.js.map +1 -0
  420. package/dist/resolution/frameworks/fabric.d.ts +3 -0
  421. package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  422. package/dist/resolution/frameworks/fabric.js +354 -0
  423. package/dist/resolution/frameworks/fabric.js.map +1 -0
  424. package/dist/resolution/frameworks/go.d.ts +8 -0
  425. package/dist/resolution/frameworks/go.d.ts.map +1 -0
  426. package/dist/resolution/frameworks/go.js +161 -0
  427. package/dist/resolution/frameworks/go.js.map +1 -0
  428. package/dist/resolution/frameworks/index.d.ts +48 -0
  429. package/dist/resolution/frameworks/index.d.ts.map +1 -0
  430. package/dist/resolution/frameworks/index.js +161 -0
  431. package/dist/resolution/frameworks/index.js.map +1 -0
  432. package/dist/resolution/frameworks/java.d.ts +8 -0
  433. package/dist/resolution/frameworks/java.d.ts.map +1 -0
  434. package/dist/resolution/frameworks/java.js +504 -0
  435. package/dist/resolution/frameworks/java.js.map +1 -0
  436. package/dist/resolution/frameworks/laravel.d.ts +13 -0
  437. package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
  438. package/dist/resolution/frameworks/laravel.js +257 -0
  439. package/dist/resolution/frameworks/laravel.js.map +1 -0
  440. package/dist/resolution/frameworks/nestjs.d.ts +26 -0
  441. package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
  442. package/dist/resolution/frameworks/nestjs.js +698 -0
  443. package/dist/resolution/frameworks/nestjs.js.map +1 -0
  444. package/dist/resolution/frameworks/play.d.ts +19 -0
  445. package/dist/resolution/frameworks/play.d.ts.map +1 -0
  446. package/dist/resolution/frameworks/play.js +111 -0
  447. package/dist/resolution/frameworks/play.js.map +1 -0
  448. package/dist/resolution/frameworks/python.d.ts +10 -0
  449. package/dist/resolution/frameworks/python.d.ts.map +1 -0
  450. package/dist/resolution/frameworks/python.js +396 -0
  451. package/dist/resolution/frameworks/python.js.map +1 -0
  452. package/dist/resolution/frameworks/react-native.d.ts +3 -0
  453. package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  454. package/dist/resolution/frameworks/react-native.js +360 -0
  455. package/dist/resolution/frameworks/react-native.js.map +1 -0
  456. package/dist/resolution/frameworks/react.d.ts +8 -0
  457. package/dist/resolution/frameworks/react.d.ts.map +1 -0
  458. package/dist/resolution/frameworks/react.js +365 -0
  459. package/dist/resolution/frameworks/react.js.map +1 -0
  460. package/dist/resolution/frameworks/ruby.d.ts +8 -0
  461. package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
  462. package/dist/resolution/frameworks/ruby.js +302 -0
  463. package/dist/resolution/frameworks/ruby.js.map +1 -0
  464. package/dist/resolution/frameworks/rust.d.ts +8 -0
  465. package/dist/resolution/frameworks/rust.d.ts.map +1 -0
  466. package/dist/resolution/frameworks/rust.js +304 -0
  467. package/dist/resolution/frameworks/rust.js.map +1 -0
  468. package/dist/resolution/frameworks/svelte.d.ts +9 -0
  469. package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
  470. package/dist/resolution/frameworks/svelte.js +249 -0
  471. package/dist/resolution/frameworks/svelte.js.map +1 -0
  472. package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  473. package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  474. package/dist/resolution/frameworks/swift-objc.js +252 -0
  475. package/dist/resolution/frameworks/swift-objc.js.map +1 -0
  476. package/dist/resolution/frameworks/swift.d.ts +10 -0
  477. package/dist/resolution/frameworks/swift.d.ts.map +1 -0
  478. package/dist/resolution/frameworks/swift.js +400 -0
  479. package/dist/resolution/frameworks/swift.js.map +1 -0
  480. package/dist/resolution/frameworks/vue.d.ts +9 -0
  481. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  482. package/dist/resolution/frameworks/vue.js +306 -0
  483. package/dist/resolution/frameworks/vue.js.map +1 -0
  484. package/dist/resolution/go-module.d.ts +26 -0
  485. package/dist/resolution/go-module.d.ts.map +1 -0
  486. package/dist/resolution/go-module.js +78 -0
  487. package/dist/resolution/go-module.js.map +1 -0
  488. package/dist/resolution/import-resolver.d.ts +68 -0
  489. package/dist/resolution/import-resolver.d.ts.map +1 -0
  490. package/dist/resolution/import-resolver.js +1275 -0
  491. package/dist/resolution/import-resolver.js.map +1 -0
  492. package/dist/resolution/index.d.ts +117 -0
  493. package/dist/resolution/index.d.ts.map +1 -0
  494. package/dist/resolution/index.js +895 -0
  495. package/dist/resolution/index.js.map +1 -0
  496. package/dist/resolution/lru-cache.d.ts +24 -0
  497. package/dist/resolution/lru-cache.d.ts.map +1 -0
  498. package/dist/resolution/lru-cache.js +62 -0
  499. package/dist/resolution/lru-cache.js.map +1 -0
  500. package/dist/resolution/name-matcher.d.ts +32 -0
  501. package/dist/resolution/name-matcher.d.ts.map +1 -0
  502. package/dist/resolution/name-matcher.js +596 -0
  503. package/dist/resolution/name-matcher.js.map +1 -0
  504. package/dist/resolution/path-aliases.d.ts +68 -0
  505. package/dist/resolution/path-aliases.d.ts.map +1 -0
  506. package/dist/resolution/path-aliases.js +238 -0
  507. package/dist/resolution/path-aliases.js.map +1 -0
  508. package/dist/resolution/spec-link-resolver.d.ts +148 -0
  509. package/dist/resolution/spec-link-resolver.d.ts.map +1 -0
  510. package/dist/resolution/spec-link-resolver.js +337 -0
  511. package/dist/resolution/spec-link-resolver.js.map +1 -0
  512. package/dist/resolution/strip-comments.d.ts +27 -0
  513. package/dist/resolution/strip-comments.d.ts.map +1 -0
  514. package/dist/resolution/strip-comments.js +441 -0
  515. package/dist/resolution/strip-comments.js.map +1 -0
  516. package/dist/resolution/swift-objc-bridge.d.ts +134 -0
  517. package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  518. package/dist/resolution/swift-objc-bridge.js +256 -0
  519. package/dist/resolution/swift-objc-bridge.js.map +1 -0
  520. package/dist/resolution/types.d.ts +216 -0
  521. package/dist/resolution/types.d.ts.map +1 -0
  522. package/dist/resolution/types.js +8 -0
  523. package/dist/resolution/types.js.map +1 -0
  524. package/dist/resolution/workspace-packages.d.ts +48 -0
  525. package/dist/resolution/workspace-packages.d.ts.map +1 -0
  526. package/dist/resolution/workspace-packages.js +208 -0
  527. package/dist/resolution/workspace-packages.js.map +1 -0
  528. package/dist/search/query-parser.d.ts +57 -0
  529. package/dist/search/query-parser.d.ts.map +1 -0
  530. package/dist/search/query-parser.js +177 -0
  531. package/dist/search/query-parser.js.map +1 -0
  532. package/dist/search/query-utils.d.ts +71 -0
  533. package/dist/search/query-utils.d.ts.map +1 -0
  534. package/dist/search/query-utils.js +380 -0
  535. package/dist/search/query-utils.js.map +1 -0
  536. package/dist/server/cli.js +152 -0
  537. package/dist/server/index.js +12 -0
  538. package/dist/server/ingest/impact-backfill.js +69 -0
  539. package/dist/server/ingest/impact-query.js +343 -0
  540. package/dist/server/ingest/index.js +19 -0
  541. package/dist/server/ingest/ingestor.js +541 -0
  542. package/dist/server/ingest/parser.js +104 -0
  543. package/dist/server/ingest/pricing.js +78 -0
  544. package/dist/server/ingest/specship-classify.js +153 -0
  545. package/dist/server/ingest/types.js +9 -0
  546. package/dist/server/ingest/watcher.js +77 -0
  547. package/dist/server/package.json +3 -0
  548. package/dist/server/project-registry.js +101 -0
  549. package/dist/server/routes/claude.js +907 -0
  550. package/dist/server/routes/domain.js +0 -0
  551. package/dist/server/routes/events.js +134 -0
  552. package/dist/server/routes/graph.js +248 -0
  553. package/dist/server/routes/maintainability.js +18 -0
  554. package/dist/server/routes/memory.js +272 -0
  555. package/dist/server/routes/projects.js +197 -0
  556. package/dist/server/routes/reflect.js +93 -0
  557. package/dist/server/routes/spec.js +373 -0
  558. package/dist/server/routes/status.js +112 -0
  559. package/dist/server/routes/workflow.js +253 -0
  560. package/dist/server/server.js +238 -0
  561. package/dist/server/static-handler.js +87 -0
  562. package/dist/statusline/active-run.d.ts +16 -0
  563. package/dist/statusline/active-run.d.ts.map +1 -0
  564. package/dist/statusline/active-run.js +73 -0
  565. package/dist/statusline/active-run.js.map +1 -0
  566. package/dist/statusline/cache.d.ts +21 -0
  567. package/dist/statusline/cache.d.ts.map +1 -0
  568. package/dist/statusline/cache.js +34 -0
  569. package/dist/statusline/cache.js.map +1 -0
  570. package/dist/statusline/index.d.ts +24 -0
  571. package/dist/statusline/index.d.ts.map +1 -0
  572. package/dist/statusline/index.js +128 -0
  573. package/dist/statusline/index.js.map +1 -0
  574. package/dist/statusline/paths.d.ts +27 -0
  575. package/dist/statusline/paths.d.ts.map +1 -0
  576. package/dist/statusline/paths.js +101 -0
  577. package/dist/statusline/paths.js.map +1 -0
  578. package/dist/statusline/render.d.ts +25 -0
  579. package/dist/statusline/render.d.ts.map +1 -0
  580. package/dist/statusline/render.js +72 -0
  581. package/dist/statusline/render.js.map +1 -0
  582. package/dist/statusline/session-marker.d.ts +30 -0
  583. package/dist/statusline/session-marker.d.ts.map +1 -0
  584. package/dist/statusline/session-marker.js +71 -0
  585. package/dist/statusline/session-marker.js.map +1 -0
  586. package/dist/statusline/types.d.ts +67 -0
  587. package/dist/statusline/types.d.ts.map +1 -0
  588. package/dist/statusline/types.js +16 -0
  589. package/dist/statusline/types.js.map +1 -0
  590. package/dist/sync/git-hooks.d.ts +45 -0
  591. package/dist/sync/git-hooks.d.ts.map +1 -0
  592. package/dist/sync/git-hooks.js +225 -0
  593. package/dist/sync/git-hooks.js.map +1 -0
  594. package/dist/sync/index.d.ts +19 -0
  595. package/dist/sync/index.d.ts.map +1 -0
  596. package/dist/sync/index.js +35 -0
  597. package/dist/sync/index.js.map +1 -0
  598. package/dist/sync/watch-policy.d.ts +48 -0
  599. package/dist/sync/watch-policy.d.ts.map +1 -0
  600. package/dist/sync/watch-policy.js +124 -0
  601. package/dist/sync/watch-policy.js.map +1 -0
  602. package/dist/sync/watcher.d.ts +283 -0
  603. package/dist/sync/watcher.d.ts.map +1 -0
  604. package/dist/sync/watcher.js +606 -0
  605. package/dist/sync/watcher.js.map +1 -0
  606. package/dist/sync/worktree.d.ts +54 -0
  607. package/dist/sync/worktree.d.ts.map +1 -0
  608. package/dist/sync/worktree.js +137 -0
  609. package/dist/sync/worktree.js.map +1 -0
  610. package/dist/types.d.ts +625 -0
  611. package/dist/types.d.ts.map +1 -0
  612. package/dist/types.js +118 -0
  613. package/dist/types.js.map +1 -0
  614. package/dist/ui/glyphs.d.ts +42 -0
  615. package/dist/ui/glyphs.d.ts.map +1 -0
  616. package/dist/ui/glyphs.js +78 -0
  617. package/dist/ui/glyphs.js.map +1 -0
  618. package/dist/ui/shimmer-progress.d.ts +11 -0
  619. package/dist/ui/shimmer-progress.d.ts.map +1 -0
  620. package/dist/ui/shimmer-progress.js +90 -0
  621. package/dist/ui/shimmer-progress.js.map +1 -0
  622. package/dist/ui/shimmer-worker.d.ts +2 -0
  623. package/dist/ui/shimmer-worker.d.ts.map +1 -0
  624. package/dist/ui/shimmer-worker.js +118 -0
  625. package/dist/ui/shimmer-worker.js.map +1 -0
  626. package/dist/ui/types.d.ts +17 -0
  627. package/dist/ui/types.d.ts.map +1 -0
  628. package/dist/ui/types.js +3 -0
  629. package/dist/ui/types.js.map +1 -0
  630. package/dist/utils.d.ts +205 -0
  631. package/dist/utils.d.ts.map +1 -0
  632. package/dist/utils.js +549 -0
  633. package/dist/utils.js.map +1 -0
  634. package/dist/web/chunk-2AJCHB7P.js +1 -0
  635. package/dist/web/chunk-2CPLUFCH.js +2 -0
  636. package/dist/web/chunk-2I7L37NS.js +1 -0
  637. package/dist/web/chunk-2NAWAJB5.js +1 -0
  638. package/dist/web/chunk-2OJBIPE4.js +1 -0
  639. package/dist/web/chunk-372AYXK6.js +17 -0
  640. package/dist/web/chunk-3E2WB6D5.js +1 -0
  641. package/dist/web/chunk-3EBFYSCH.js +2 -0
  642. package/dist/web/chunk-3QCQ4BXS.js +1 -0
  643. package/dist/web/chunk-42XVAQ6I.js +1 -0
  644. package/dist/web/chunk-4IMMPEYM.js +1 -0
  645. package/dist/web/chunk-4JYHAP7B.js +1 -0
  646. package/dist/web/chunk-4TJQJPCZ.js +1 -0
  647. package/dist/web/chunk-4WZIHTPC.js +1 -0
  648. package/dist/web/chunk-4YVSYOSD.js +1 -0
  649. package/dist/web/chunk-52PO6IMB.js +2 -0
  650. package/dist/web/chunk-54D6RFSW.js +1 -0
  651. package/dist/web/chunk-5BQIOYKW.js +1 -0
  652. package/dist/web/chunk-5HGWHUJA.js +1 -0
  653. package/dist/web/chunk-5XRUOPZE.js +1 -0
  654. package/dist/web/chunk-5Y244R4G.js +1 -0
  655. package/dist/web/chunk-6O7Z3P2M.js +1 -0
  656. package/dist/web/chunk-6QXULGLG.js +1 -0
  657. package/dist/web/chunk-6RRDPT5Z.js +1 -0
  658. package/dist/web/chunk-6VKB2ZWM.js +1 -0
  659. package/dist/web/chunk-7DMFVTU4.js +1 -0
  660. package/dist/web/chunk-7P5CVBJZ.js +1 -0
  661. package/dist/web/chunk-7SMPKVEP.js +1 -0
  662. package/dist/web/chunk-AHLX543M.js +1 -0
  663. package/dist/web/chunk-AMGJBO7D.js +3 -0
  664. package/dist/web/chunk-AZJVTPLU.js +1 -0
  665. package/dist/web/chunk-B3CWIVBW.js +1 -0
  666. package/dist/web/chunk-BLBRMCN2.js +1 -0
  667. package/dist/web/chunk-BMIAXD2V.js +2 -0
  668. package/dist/web/chunk-BPCJLNBS.js +47 -0
  669. package/dist/web/chunk-BRHEUDLY.js +6 -0
  670. package/dist/web/chunk-BUXWEHIY.js +1 -0
  671. package/dist/web/chunk-CD5IZM7Y.js +1 -0
  672. package/dist/web/chunk-DLQPZWSI.css +1 -0
  673. package/dist/web/chunk-DSGNOCKQ.js +1 -0
  674. package/dist/web/chunk-DT5LJYFX.js +1 -0
  675. package/dist/web/chunk-DYRFLPJA.js +1 -0
  676. package/dist/web/chunk-E3J3CXR5.js +1 -0
  677. package/dist/web/chunk-E73OX2P7.js +1 -0
  678. package/dist/web/chunk-EAXRKDLV.js +1 -0
  679. package/dist/web/chunk-EBKKDHYI.js +1 -0
  680. package/dist/web/chunk-EE7V7Q5P.js +1 -0
  681. package/dist/web/chunk-EKY2FUHU.js +1 -0
  682. package/dist/web/chunk-EP6XOPXH.js +1 -0
  683. package/dist/web/chunk-ESGDLJOJ.js +1 -0
  684. package/dist/web/chunk-ETJG7NCY.js +1 -0
  685. package/dist/web/chunk-EUUEFEDI.js +1 -0
  686. package/dist/web/chunk-EX4ZHR4F.js +1 -0
  687. package/dist/web/chunk-F5UNCSXP.js +1 -0
  688. package/dist/web/chunk-FFGJXUHI.js +1 -0
  689. package/dist/web/chunk-FGNZDHTL.js +11 -0
  690. package/dist/web/chunk-FIJW2UNJ.js +1 -0
  691. package/dist/web/chunk-FMV5PXRC.js +5 -0
  692. package/dist/web/chunk-G7VZT5KB.js +3 -0
  693. package/dist/web/chunk-GCOM4JPR.js +2 -0
  694. package/dist/web/chunk-GEIIDO6C.js +1 -0
  695. package/dist/web/chunk-GRZYXPSO.js +7 -0
  696. package/dist/web/chunk-GWBABPZ5.js +1 -0
  697. package/dist/web/chunk-GYGPS3AN.js +1 -0
  698. package/dist/web/chunk-H4GLRD3Q.js +1 -0
  699. package/dist/web/chunk-H5TWEFYX.js +1 -0
  700. package/dist/web/chunk-H7AF7YS4.js +1 -0
  701. package/dist/web/chunk-HCB2N2KH.js +1 -0
  702. package/dist/web/chunk-HDZDQILN.js +1 -0
  703. package/dist/web/chunk-HMK6UO6N.js +1 -0
  704. package/dist/web/chunk-HVVXPI4D.js +1 -0
  705. package/dist/web/chunk-IHEE5NYJ.js +1 -0
  706. package/dist/web/chunk-IPB746BT.js +1 -0
  707. package/dist/web/chunk-ISNEBICW.js +1 -0
  708. package/dist/web/chunk-J2GZVLHH.js +1 -0
  709. package/dist/web/chunk-JTFXTIPE.js +903 -0
  710. package/dist/web/chunk-KHU5M2AL.js +1 -0
  711. package/dist/web/chunk-KW3DHCFV.js +1 -0
  712. package/dist/web/chunk-LB6JPLX2.js +1 -0
  713. package/dist/web/chunk-LBXLFPVN.js +1 -0
  714. package/dist/web/chunk-LGNSHRCE.js +1 -0
  715. package/dist/web/chunk-LNSVDHCI.js +1 -0
  716. package/dist/web/chunk-LVGIY3SO.js +1 -0
  717. package/dist/web/chunk-LXLHIHEN.js +1 -0
  718. package/dist/web/chunk-MFHO2F2U.js +4 -0
  719. package/dist/web/chunk-N5OSSQFZ.js +1 -0
  720. package/dist/web/chunk-N6SS4G6S.js +1 -0
  721. package/dist/web/chunk-NAJYJNHS.js +1 -0
  722. package/dist/web/chunk-NHD66NOI.js +1 -0
  723. package/dist/web/chunk-NNLJ55MY.js +1 -0
  724. package/dist/web/chunk-NTBJG6SJ.js +1 -0
  725. package/dist/web/chunk-NUDB3Q2Y.js +3 -0
  726. package/dist/web/chunk-OM7JVWQQ.js +1 -0
  727. package/dist/web/chunk-OXEF5E3E.js +1 -0
  728. package/dist/web/chunk-PGGJPDJG.js +1 -0
  729. package/dist/web/chunk-PUYSJNJR.js +1 -0
  730. package/dist/web/chunk-Q2RVFS45.js +1 -0
  731. package/dist/web/chunk-Q7L6LLAK.js +1 -0
  732. package/dist/web/chunk-QCMKJIWY.js +1 -0
  733. package/dist/web/chunk-QEQRY4QQ.js +1 -0
  734. package/dist/web/chunk-QH6CF3M3.js +1 -0
  735. package/dist/web/chunk-QQ5LD7PI.js +1 -0
  736. package/dist/web/chunk-QR6L3KAC.js +1 -0
  737. package/dist/web/chunk-QXJS6F3U.js +1 -0
  738. package/dist/web/chunk-R2DLK4HO.js +1 -0
  739. package/dist/web/chunk-RD6TVPOT.js +1 -0
  740. package/dist/web/chunk-RKY4EJYJ.js +1 -0
  741. package/dist/web/chunk-RONYWVY7.js +1 -0
  742. package/dist/web/chunk-RSZZWGGC.js +1 -0
  743. package/dist/web/chunk-RXKXYF2C.js +1 -0
  744. package/dist/web/chunk-SCNDZRN2.js +1 -0
  745. package/dist/web/chunk-SH6UVHQC.js +1 -0
  746. package/dist/web/chunk-SWKJRNYY.js +1 -0
  747. package/dist/web/chunk-T7AZ65JP.js +1 -0
  748. package/dist/web/chunk-TCZDVOHD.js +1 -0
  749. package/dist/web/chunk-TF5TF6IP.js +1 -0
  750. package/dist/web/chunk-TPTITA3V.js +1 -0
  751. package/dist/web/chunk-TR335633.js +1 -0
  752. package/dist/web/chunk-UR5KDXPX.js +1 -0
  753. package/dist/web/chunk-UR6O2GEH.js +1 -0
  754. package/dist/web/chunk-UTNMGWTP.js +1 -0
  755. package/dist/web/chunk-VECWMHJP.js +1 -0
  756. package/dist/web/chunk-VUACT35R.js +3 -0
  757. package/dist/web/chunk-VZI7H4SZ.js +1 -0
  758. package/dist/web/chunk-W22AVG3N.js +1 -0
  759. package/dist/web/chunk-W6NGHRHX.js +1 -0
  760. package/dist/web/chunk-WB6YHOD4.js +1 -0
  761. package/dist/web/chunk-WBT64AWV.js +1 -0
  762. package/dist/web/chunk-WFXJIXZE.js +4 -0
  763. package/dist/web/chunk-WTGYRH3Z.js +298 -0
  764. package/dist/web/chunk-WXTCVDTP.js +1 -0
  765. package/dist/web/chunk-XCDHWLVH.js +1 -0
  766. package/dist/web/chunk-Y3H6FFUZ.js +1 -0
  767. package/dist/web/chunk-Y4F5ULGJ.js +1 -0
  768. package/dist/web/chunk-YEGKAAEE.js +1 -0
  769. package/dist/web/chunk-YM2KU57F.js +1 -0
  770. package/dist/web/chunk-YRERBP6T.js +1 -0
  771. package/dist/web/chunk-ZLV4VCDG.js +3 -0
  772. package/dist/web/chunk-ZQUJMA5K.js +4 -0
  773. package/dist/web/chunk-ZTVI5KFF.js +1 -0
  774. package/dist/web/favicon-16.png +0 -0
  775. package/dist/web/favicon-180.png +0 -0
  776. package/dist/web/favicon-32.png +0 -0
  777. package/dist/web/favicon-512.png +0 -0
  778. package/dist/web/favicon-small.svg +15 -0
  779. package/dist/web/favicon.ico +0 -0
  780. package/dist/web/favicon.svg +20 -0
  781. package/dist/web/icon-192.png +0 -0
  782. package/dist/web/icon-512.png +0 -0
  783. package/dist/web/index.html +146 -0
  784. package/dist/web/main-ESADRXN2.css +1 -0
  785. package/dist/web/main-SQFUMVQA.js +1 -0
  786. package/dist/web/manifest.webmanifest +15 -0
  787. package/dist/web/media/codicon-LN6W7LCM.ttf +0 -0
  788. package/dist/web/styles-KSOPUVDA.css +1 -0
  789. package/dist/web/sw.js +69 -0
  790. package/dist/workflows/condition-evaluator.d.ts +75 -0
  791. package/dist/workflows/condition-evaluator.d.ts.map +1 -0
  792. package/dist/workflows/condition-evaluator.js +282 -0
  793. package/dist/workflows/condition-evaluator.js.map +1 -0
  794. package/dist/workflows/defaults/claude-design-implement.yaml +336 -0
  795. package/dist/workflows/defaults/index.d.ts +26 -0
  796. package/dist/workflows/defaults/index.d.ts.map +1 -0
  797. package/dist/workflows/defaults/index.js +94 -0
  798. package/dist/workflows/defaults/index.js.map +1 -0
  799. package/dist/workflows/defaults/spec-author.yaml +214 -0
  800. package/dist/workflows/defaults/spec-fix.yaml +110 -0
  801. package/dist/workflows/defaults/spec-implement.yaml +150 -0
  802. package/dist/workflows/defaults/spec-relink.yaml +81 -0
  803. package/dist/workflows/defaults/spec-verify.yaml +51 -0
  804. package/dist/workflows/discovery.d.ts +46 -0
  805. package/dist/workflows/discovery.d.ts.map +1 -0
  806. package/dist/workflows/discovery.js +193 -0
  807. package/dist/workflows/discovery.js.map +1 -0
  808. package/dist/workflows/executor.d.ts +98 -0
  809. package/dist/workflows/executor.d.ts.map +1 -0
  810. package/dist/workflows/executor.js +664 -0
  811. package/dist/workflows/executor.js.map +1 -0
  812. package/dist/workflows/runners/approval.d.ts +18 -0
  813. package/dist/workflows/runners/approval.d.ts.map +1 -0
  814. package/dist/workflows/runners/approval.js +34 -0
  815. package/dist/workflows/runners/approval.js.map +1 -0
  816. package/dist/workflows/runners/bash.d.ts +13 -0
  817. package/dist/workflows/runners/bash.d.ts.map +1 -0
  818. package/dist/workflows/runners/bash.js +143 -0
  819. package/dist/workflows/runners/bash.js.map +1 -0
  820. package/dist/workflows/runners/cancel.d.ts +10 -0
  821. package/dist/workflows/runners/cancel.d.ts.map +1 -0
  822. package/dist/workflows/runners/cancel.js +19 -0
  823. package/dist/workflows/runners/cancel.js.map +1 -0
  824. package/dist/workflows/runners/prompt.d.ts +51 -0
  825. package/dist/workflows/runners/prompt.d.ts.map +1 -0
  826. package/dist/workflows/runners/prompt.js +306 -0
  827. package/dist/workflows/runners/prompt.js.map +1 -0
  828. package/dist/workflows/runners/script.d.ts +17 -0
  829. package/dist/workflows/runners/script.d.ts.map +1 -0
  830. package/dist/workflows/runners/script.js +155 -0
  831. package/dist/workflows/runners/script.js.map +1 -0
  832. package/dist/workflows/runners/types.d.ts +57 -0
  833. package/dist/workflows/runners/types.d.ts.map +1 -0
  834. package/dist/workflows/runners/types.js +13 -0
  835. package/dist/workflows/runners/types.js.map +1 -0
  836. package/dist/workflows/schemas/workflow.d.ts +166 -0
  837. package/dist/workflows/schemas/workflow.d.ts.map +1 -0
  838. package/dist/workflows/schemas/workflow.js +437 -0
  839. package/dist/workflows/schemas/workflow.js.map +1 -0
  840. package/hooks/hooks.json +38 -0
  841. package/package.json +78 -0
  842. package/scripts/add-lang/bench.sh +60 -0
  843. package/scripts/add-lang/check-grammar.mjs +75 -0
  844. package/scripts/add-lang/dump-ast.mjs +103 -0
  845. package/scripts/add-lang/verify-extraction.mjs +70 -0
  846. package/scripts/agent-eval/arms-F.sh +21 -0
  847. package/scripts/agent-eval/arms-matrix.sh +37 -0
  848. package/scripts/agent-eval/audit.sh +68 -0
  849. package/scripts/agent-eval/bench-readme.sh +28 -0
  850. package/scripts/agent-eval/bench-why-repo.sh +22 -0
  851. package/scripts/agent-eval/block-read-hook.sh +19 -0
  852. package/scripts/agent-eval/hook-settings.json +15 -0
  853. package/scripts/agent-eval/itrun.sh +120 -0
  854. package/scripts/agent-eval/parse-arms.mjs +116 -0
  855. package/scripts/agent-eval/parse-bench-readme.mjs +84 -0
  856. package/scripts/agent-eval/parse-run.mjs +45 -0
  857. package/scripts/agent-eval/parse-session.mjs +93 -0
  858. package/scripts/agent-eval/probe-context.mjs +21 -0
  859. package/scripts/agent-eval/probe-explore.mjs +40 -0
  860. package/scripts/agent-eval/probe-node.mjs +20 -0
  861. package/scripts/agent-eval/probe-sweep.mjs +119 -0
  862. package/scripts/agent-eval/probe-trace.mjs +20 -0
  863. package/scripts/agent-eval/run-agent.sh +34 -0
  864. package/scripts/agent-eval/run-all.sh +67 -0
  865. package/scripts/agent-eval/run-arms.sh +56 -0
  866. package/scripts/agent-eval/seq-matrix.mjs +137 -0
  867. package/scripts/build-bundle.sh +118 -0
  868. package/scripts/build-server-bundle.mjs +80 -0
  869. package/scripts/build-web-bundle.mjs +66 -0
  870. package/scripts/extract-release-notes.mjs +130 -0
  871. package/scripts/local-install.sh +41 -0
  872. package/scripts/npm-sdk.js +75 -0
  873. package/scripts/npm-shim.js +246 -0
  874. package/scripts/offline-install.ps1 +148 -0
  875. package/scripts/offline-install.sh +149 -0
  876. package/scripts/pack-npm.sh +119 -0
  877. package/scripts/prepare-release.mjs +270 -0
  878. package/scripts/sync-shim-version.mjs +64 -0
  879. package/selectors.json +41 -0
@@ -0,0 +1,674 @@
1
+ /**
2
+ * SpecShip
3
+ *
4
+ * A local-first code intelligence system that builds a semantic
5
+ * knowledge graph from any codebase.
6
+ */
7
+ import { Node, Edge, FileRecord, ExtractionResult, Subgraph, TraversalOptions, SearchOptions, SearchResult, Context, GraphStats, TaskInput, TaskContext, BuildContextOptions, FindRelevantContextOptions } from './types';
8
+ import { IndexProgress, IndexResult, SyncResult } from './extraction';
9
+ import { ResolutionResult } from './resolution';
10
+ import { SpecLinkResolver, SpecLinkResolverStats } from './resolution/spec-link-resolver';
11
+ import { SpecFunnel } from './resolution/brief-link-resolver';
12
+ import { DomainGapSeed } from './resolution/domain-gap-seed';
13
+ import { SpecQueries } from './db/spec-queries';
14
+ import { AnalyzeResult, SweepResult, Proposal, ProposalState, PreviewResult, ApplyOutcome, UndoOutcome } from './reflect';
15
+ import { MaintainabilityReport, MaintainabilityThresholds } from './graph/maintainability';
16
+ import { FitnessReport, FitnessRule } from './fitness/fitness';
17
+ import { EnforceConfig, EnforceReport } from './enforce/enforce';
18
+ import { BehaviourSurface } from './behaviour/behaviour-surface';
19
+ import { WatchOptions, PendingFile } from './sync';
20
+ export * from './types';
21
+ export { getDatabasePath, DatabaseConnection } from './db';
22
+ export { QueryBuilder } from './db/queries';
23
+ export { getSpecShipDir, isInitialized, findNearestSpecShipRoot, SPECSHIP_DIR, } from './directory';
24
+ export { IndexProgress, IndexResult, SyncResult } from './extraction';
25
+ export { detectLanguage, isLanguageSupported, isGrammarLoaded, getSupportedLanguages, initGrammars, loadGrammarsForLanguages, loadAllGrammars } from './extraction';
26
+ export { ResolutionResult } from './resolution';
27
+ export { computeSpecFunnel, resolveBriefLink, summarizeBriefFunnel, findBriefsForSpec, } from './resolution/brief-link-resolver';
28
+ export type { SpecFunnel, SpecFunnelSummary, SpecFunnelDoc, BriefLink, BriefLinkState, BriefRollup, BriefFunnelEntry, } from './resolution/brief-link-resolver';
29
+ export { computeDomainGapSeed } from './resolution/domain-gap-seed';
30
+ export type { DomainGapSeed, GapSeedEntity, GapSeedSpec, DomainCoverage, } from './resolution/domain-gap-seed';
31
+ export { analyze as reflectAnalyze, sweep as reflectSweep, ReflectStore, previewProposal, applyProposal, undoProposal, } from './reflect';
32
+ export type { Proposal, ProposalType, ProposalSeverity, ProposalState, TargetKind, ProposalEvidence, ProposalPayload, PreviewResult, ApplyOutcome, UndoOutcome, ReflectContext, AnalyzeResult, SweepResult, } from './reflect';
33
+ export { computeMaintainability, resolveThresholds, resolveExclude, DEFAULT_THRESHOLDS, DEFAULT_EXCLUDE, CONFIG_FILE_NAME, HIGH_PRECISION_CLASSES, LOW_CONFIDENCE_CLASSES, highPrecisionClean } from './graph/maintainability';
34
+ export { evaluateFitness, loadFitnessRules, FITNESS_CONFIG_FILE } from './fitness/fitness';
35
+ export { evaluateEnforcement, loadEnforceConfig, ENFORCE_CONFIG_FILE } from './enforce/enforce';
36
+ export { computeBehaviourSurface, renderBehaviourSurface, isUiNode } from './behaviour/behaviour-surface';
37
+ export type { BehaviourSurface, BehaviourFlowElement, BehaviourSurfaceDeps } from './behaviour/behaviour-surface';
38
+ export type { EnforceConfig, GateConfig, EnforceReport, EnforceDeps, CheckOutcome, CheckName, RequirementVerification, } from './enforce/enforce';
39
+ export type { FitnessRule, ForbiddenRule, LayersRule, IsolationRule, FitnessReport, FitnessViolation, FitnessConfigError, Selector, } from './fitness/fitness';
40
+ export type { MaintainabilityReport, MaintainabilityThresholds, CouplingFinding, OversizedFinding, GodFileFinding, CycleFinding, DeadCodeFinding, } from './graph/maintainability';
41
+ export { SpecShipError, FileError, ParseError, DatabaseError, SearchError, VectorError, ConfigError, Logger, setLogger, getLogger, silentLogger, defaultLogger, } from './errors';
42
+ export { Mutex, FileLock, processInBatches, debounce, throttle, MemoryMonitor } from './utils';
43
+ export { FileWatcher, WatchOptions, PendingFile, LockUnavailableError } from './sync';
44
+ export { MCPServer } from './mcp';
45
+ /**
46
+ * Options for initializing a new SpecShip project
47
+ */
48
+ export interface InitOptions {
49
+ /** Whether to run initial indexing after init */
50
+ index?: boolean;
51
+ /** Progress callback for indexing */
52
+ onProgress?: (progress: IndexProgress) => void;
53
+ }
54
+ /**
55
+ * Options for opening an existing SpecShip project
56
+ */
57
+ export interface OpenOptions {
58
+ /** Whether to run sync if files have changed */
59
+ sync?: boolean;
60
+ /** Whether to run in read-only mode */
61
+ readOnly?: boolean;
62
+ }
63
+ /**
64
+ * Options for indexing
65
+ */
66
+ export interface IndexOptions {
67
+ /** Progress callback */
68
+ onProgress?: (progress: IndexProgress) => void;
69
+ /** Abort signal for cancellation */
70
+ signal?: AbortSignal;
71
+ /** Enable verbose logging (worker lifecycle, memory, timeouts) */
72
+ verbose?: boolean;
73
+ }
74
+ /**
75
+ * Main SpecShip class
76
+ *
77
+ * Provides the primary interface for interacting with the code knowledge graph.
78
+ */
79
+ export declare class SpecShip {
80
+ private db;
81
+ private queries;
82
+ private specQueries;
83
+ private projectRoot;
84
+ private orchestrator;
85
+ private resolver;
86
+ private specLinkResolver;
87
+ private graphManager;
88
+ private traverser;
89
+ private contextBuilder;
90
+ private indexMutex;
91
+ private fileLock;
92
+ private watcher;
93
+ private constructor();
94
+ /** Access to the spec queries (for MCP tools, CLI commands, embedded SDK users). */
95
+ getSpecQueries(): SpecQueries;
96
+ /** Access to the spec link resolver. */
97
+ getSpecLinkResolver(): SpecLinkResolver;
98
+ /**
99
+ * The project-wide spec lifecycle funnel: brainstormed ideas → specs →
100
+ * implemented, with per-document rollups (REQ-FUNNEL-006). Exposed on the
101
+ * instance so the desktop server can serve it without runtime-importing the
102
+ * package (it calls this on the dynamically-loaded SpecShip).
103
+ */
104
+ getSpecFunnel(): SpecFunnel;
105
+ /**
106
+ * The domain gap-seed (REQ-DOMAIN-003): the structural code entities and
107
+ * non-domain specs that no domain fact yet covers, plus a coverage tally.
108
+ * Read-only — computed from live state, writes nothing. Exposed on the
109
+ * instance so the `/ss-spec domain` command and the desktop server can drive it
110
+ * without runtime-importing the package.
111
+ */
112
+ getDomainGapSeed(): DomainGapSeed;
113
+ /**
114
+ * The maintainability harness (REQ-MAINT-001): coupling, size hotspots,
115
+ * dependency cycles, and dead-code candidates, derived from the graph with no
116
+ * additional parse. Read-only and deterministic. Exposed on the instance so
117
+ * the CLI / MCP / desktop server can drive it without runtime-importing the
118
+ * package.
119
+ */
120
+ getMaintainability(thresholds?: Partial<MaintainabilityThresholds>): MaintainabilityReport;
121
+ /**
122
+ * The architecture-fitness harness (REQ-FITNESS-001/002): evaluate declarative
123
+ * architecture rules (from specship.config.json `fitness.rules`, or an explicit
124
+ * override) against the graph. Read-only, deterministic. Exposed on the
125
+ * instance so the CLI / MCP / server drive it without runtime-importing the
126
+ * package.
127
+ */
128
+ getFitness(rules?: FitnessRule[]): FitnessReport;
129
+ /**
130
+ * Enforcement mode (REQ-ENFORCE-001/002/003): compose drift + fitness +
131
+ * maintainability + the spec→test→verify behaviour chain into one gate. Which
132
+ * checks gate vs advise comes from specship.config.json `enforce` (or an
133
+ * explicit override); with no config every check is advisory and the run
134
+ * passes. The behaviour chain reads `tests`-kind spec-links on each requirement
135
+ * and its acceptance criteria (verified = passing, broken = ran-and-failed).
136
+ */
137
+ getEnforce(config?: EnforceConfig): EnforceReport;
138
+ /**
139
+ * The behaviour surface for a requirement (REQ-BEHAVIOUR-001): its linked code
140
+ * plus the 1-hop route / component / handler neighbourhood, grouped UI vs
141
+ * backend, so the `/ss-behaviour` skill can author end-to-end tests from one
142
+ * call. Lives here as an instance method so the CLI / MCP / server drive it
143
+ * without runtime-importing the package. A requirement (or its acceptance
144
+ * children) supplies the linked nodes; their callers + callees supply the
145
+ * neighbourhood.
146
+ */
147
+ getBehaviourSurface(specId: string): BehaviourSurface;
148
+ private reflectContext;
149
+ /** Run a reflection pass, persist the batch, return the open proposals. */
150
+ reflectAnalyze(): AnalyzeResult;
151
+ /** Run a sweep: analyze + return new high-severity proposals to notify on. */
152
+ reflectSweep(): SweepResult;
153
+ /** List persisted proposals, optionally filtered by state. */
154
+ reflectList(state?: ProposalState): Proposal[];
155
+ /** Fetch one proposal by its content hash. */
156
+ reflectGet(hash: string): Proposal | null;
157
+ /** Non-mutating preview of the change a proposal would make (REQ-REFLECT-003). */
158
+ reflectPreview(hash: string): PreviewResult | null;
159
+ /** Apply a proposal — write idempotently + reversibly, then record state. */
160
+ reflectApply(hash: string): ApplyOutcome | null;
161
+ /** Undo a previously applied proposal — remove exactly what apply added. */
162
+ reflectUndo(hash: string): UndoOutcome | null;
163
+ /** Dismiss a proposal so it does not resurface on later sweeps (REQ-REFLECT-007.A2). */
164
+ reflectDismiss(hash: string): boolean;
165
+ /**
166
+ * Initialize a new SpecShip project
167
+ *
168
+ * Creates the .SpecShip directory, database, and configuration.
169
+ *
170
+ * @param projectRoot - Path to the project root directory
171
+ * @param options - Initialization options
172
+ * @returns A new SpecShip instance
173
+ */
174
+ static init(projectRoot: string, options?: InitOptions): Promise<SpecShip>;
175
+ /**
176
+ * Initialize synchronously (without indexing)
177
+ */
178
+ static initSync(projectRoot: string): SpecShip;
179
+ /**
180
+ * Open an existing SpecShip project
181
+ *
182
+ * @param projectRoot - Path to the project root directory
183
+ * @param options - Open options
184
+ * @returns A SpecShip instance
185
+ */
186
+ static open(projectRoot: string, options?: OpenOptions): Promise<SpecShip>;
187
+ /**
188
+ * Open synchronously (without sync)
189
+ */
190
+ static openSync(projectRoot: string): SpecShip;
191
+ /**
192
+ * Check if a directory has been initialized as a SpecShip project
193
+ */
194
+ static isInitialized(projectRoot: string): boolean;
195
+ /**
196
+ * Close the SpecShip instance and release resources
197
+ */
198
+ close(): void;
199
+ /**
200
+ * Get the project root directory
201
+ */
202
+ getProjectRoot(): string;
203
+ /**
204
+ * Index all files in the project
205
+ *
206
+ * Uses a mutex to prevent concurrent indexing operations.
207
+ */
208
+ indexAll(options?: IndexOptions): Promise<IndexResult>;
209
+ /**
210
+ * Refresh `.specship/statusline.json` so the `specship statusline` segment
211
+ * has current Tier-A data without ever opening the DB itself
212
+ * (REQ-STATUSLINE-003). Best-effort: a failure here must never break the
213
+ * index/sync operation that triggered it, so the producer swallows its own
214
+ * errors and this wrapper guards the data-gathering too.
215
+ */
216
+ private refreshStatuslineCache;
217
+ /**
218
+ * Internal spec indexing — does NOT take the indexMutex (caller already holds it)
219
+ * and does NOT take the fileLock. Used by indexAll which manages locks itself.
220
+ */
221
+ private indexSpecsInternal;
222
+ /**
223
+ * Index spec files (Markdown only in v1).
224
+ *
225
+ * Default spec roots: `<projectRoot>/specs/` if it exists. Callers can
226
+ * pass explicit roots/files for non-default layouts.
227
+ *
228
+ * Pipeline per file:
229
+ * 1. Hash file content; skip if `spec_files.content_hash` matches.
230
+ * 2. Delete prior specs for this file (cascade-deletes children, links).
231
+ * 3. Run MarkdownSpecExtractor → insert specs + virtual node projections.
232
+ * 4. Apply `spec-declaration` link candidates from `implementations:`.
233
+ * 5. Mark previously-linked specs as drifted (drift_axis='spec') when
234
+ * their content_hash has changed.
235
+ *
236
+ * Returns extraction stats including spec link resolver effects.
237
+ */
238
+ indexSpecs(roots?: string[]): Promise<{
239
+ filesProcessed: number;
240
+ filesSkipped: number;
241
+ specsExtracted: number;
242
+ linkCandidates: number;
243
+ resolverStats: SpecLinkResolverStats;
244
+ errors: number;
245
+ durationMs: number;
246
+ }>;
247
+ /**
248
+ * Default spec roots: `<projectRoot>/specs/` if it exists. Future
249
+ * iterations can read from `.specship/config.json`.
250
+ */
251
+ private defaultSpecRoots;
252
+ /**
253
+ * Recursively collect `.md` files from a directory.
254
+ */
255
+ private collectSpecFiles;
256
+ /**
257
+ * Index specific files
258
+ *
259
+ * Uses a mutex to prevent concurrent indexing operations.
260
+ */
261
+ indexFiles(filePaths: string[]): Promise<IndexResult>;
262
+ /**
263
+ * Sync with current file state (incremental update)
264
+ *
265
+ * Uses a mutex to prevent concurrent indexing operations.
266
+ */
267
+ sync(options?: IndexOptions): Promise<SyncResult>;
268
+ /**
269
+ * Check if an indexing operation is currently in progress
270
+ */
271
+ isIndexing(): boolean;
272
+ /**
273
+ * Start watching for file changes and auto-syncing.
274
+ *
275
+ * Uses native OS file events (FSEvents on macOS, inotify on Linux 19+,
276
+ * ReadDirectoryChangesW on Windows) with debouncing to avoid thrashing.
277
+ *
278
+ * @param options - Watch options (debounce delay, callbacks)
279
+ * @returns true if watching started successfully
280
+ */
281
+ watch(options?: WatchOptions): boolean;
282
+ /**
283
+ * Stop watching for file changes.
284
+ */
285
+ unwatch(): void;
286
+ /**
287
+ * Check if the file watcher is active.
288
+ */
289
+ isWatching(): boolean;
290
+ /**
291
+ * Files seen by the file watcher since the last successful sync —
292
+ * the per-file "stale" signal MCP tools attach to responses so an agent
293
+ * can fall back to {@link Read} for just the affected file without
294
+ * waiting for a debounced sync to complete (issue #403).
295
+ *
296
+ * Returns an empty list when the watcher isn't active, or no events have
297
+ * arrived. Each entry includes `firstSeenMs` and `lastSeenMs` (wall-clock
298
+ * `Date.now()` values) so callers can render "edited Nms ago", plus an
299
+ * `indexing` flag indicating whether the in-flight sync (if any) will
300
+ * absorb that file.
301
+ */
302
+ getPendingFiles(): PendingFile[];
303
+ /**
304
+ * Resolves once the file watcher has installed its watch set. Useful for
305
+ * tests that need a deterministic boundary before asserting on
306
+ * `getPendingFiles()`. Resolves immediately when no watcher is active.
307
+ */
308
+ waitUntilWatcherReady(timeoutMs?: number): Promise<void>;
309
+ /**
310
+ * Get files that have changed since last index
311
+ */
312
+ getChangedFiles(): {
313
+ added: string[];
314
+ modified: string[];
315
+ removed: string[];
316
+ };
317
+ /**
318
+ * Most recent index timestamp (ms since epoch) across all tracked files, or
319
+ * null when nothing is indexed yet. Lets library consumers check index
320
+ * freshness without shelling out to `specship status --json`. (#329)
321
+ */
322
+ getLastIndexedAt(): number | null;
323
+ /**
324
+ * Extract nodes and edges from source code (without storing)
325
+ */
326
+ extractFromSource(filePath: string, source: string): ExtractionResult;
327
+ /**
328
+ * Resolve unresolved references and create edges
329
+ *
330
+ * This method takes unresolved references from extraction and attempts
331
+ * to resolve them using multiple strategies:
332
+ * - Framework-specific patterns (React, Express, Laravel)
333
+ * - Import-based resolution
334
+ * - Name-based symbol matching
335
+ */
336
+ resolveReferences(onProgress?: (current: number, total: number) => void): ResolutionResult;
337
+ /**
338
+ * Resolve references in batches to keep memory bounded on large codebases.
339
+ * Processes chunks of unresolved refs, persisting results after each batch.
340
+ */
341
+ resolveReferencesBatched(onProgress?: (current: number, total: number) => void): Promise<ResolutionResult>;
342
+ /**
343
+ * Get detected frameworks in the project
344
+ */
345
+ getDetectedFrameworks(): string[];
346
+ /**
347
+ * Re-initialize the resolver (useful after adding new files)
348
+ */
349
+ reinitializeResolver(): void;
350
+ /**
351
+ * Get statistics about the knowledge graph
352
+ */
353
+ getStats(): GraphStats;
354
+ /**
355
+ * Active SQLite backend for this project's connection (`node-sqlite` — Node's
356
+ * built-in real-SQLite module). Surfaced via `specship status` and the
357
+ * `specship_status` MCP tool alongside the effective journal mode.
358
+ */
359
+ getBackend(): import('./db').SqliteBackend;
360
+ /**
361
+ * The journal mode actually in effect ('wal', 'delete', …). 'wal' means
362
+ * readers never block on a concurrent writer; anything else means they can,
363
+ * which is the precondition for the "database is locked" failures in issue
364
+ * #238. Surfaced via `specship status` and the `specship_status` MCP tool.
365
+ */
366
+ getJournalMode(): string;
367
+ /**
368
+ * Get a node by ID
369
+ */
370
+ getNode(id: string): Node | null;
371
+ /**
372
+ * Get all nodes in a file
373
+ */
374
+ getNodesInFile(filePath: string): Node[];
375
+ /**
376
+ * Get all nodes of a specific kind
377
+ */
378
+ getNodesByKind(kind: Node['kind']): Node[];
379
+ /**
380
+ * Get ALL nodes with an exact name (direct index lookup, not FTS-ranked/capped).
381
+ * Used to enumerate every overload of a heavily-overloaded name so the specific
382
+ * definition the caller wants is never dropped below a search cut.
383
+ */
384
+ getNodesByName(name: string): Node[];
385
+ /**
386
+ * Search nodes by text
387
+ */
388
+ searchNodes(query: string, options?: SearchOptions): SearchResult[];
389
+ /**
390
+ * Find the project's "primary route file" — the file with the densest
391
+ * concentration of framework-emitted `route` nodes (≥3 routes, ≥30%
392
+ * of all non-test routes). Used to inline the routing config in
393
+ * `specship_explore` responses on small realworld template repos
394
+ * (rails-realworld, laravel-realworld, drupal-admintoolbar, …) where
395
+ * Glob+Read of `routes.rb`/`urls.py`/etc. otherwise beats specship.
396
+ */
397
+ getTopRouteFile(): {
398
+ filePath: string;
399
+ routeCount: number;
400
+ totalRoutes: number;
401
+ } | null;
402
+ /**
403
+ * Build a URL → handler routing manifest from the index. Each entry
404
+ * pairs a route node (URL + method) with its handler function/method
405
+ * via the `references` edge that framework resolvers emit. Returns
406
+ * null when fewer than 3 valid (non-test) routes exist.
407
+ */
408
+ getRoutingManifest(limit?: number): {
409
+ entries: Array<{
410
+ url: string;
411
+ handler: string;
412
+ handlerFile: string;
413
+ handlerLine: number;
414
+ handlerKind: string;
415
+ }>;
416
+ topHandlerFile: string | null;
417
+ topHandlerFileCount: number;
418
+ totalRoutes: number;
419
+ } | null;
420
+ /**
421
+ * Get outgoing edges from a node
422
+ */
423
+ getOutgoingEdges(nodeId: string): Edge[];
424
+ /**
425
+ * Get incoming edges to a node
426
+ */
427
+ getIncomingEdges(nodeId: string): Edge[];
428
+ /**
429
+ * Get a file record by path
430
+ */
431
+ getFile(filePath: string): FileRecord | null;
432
+ /**
433
+ * Get all tracked files
434
+ */
435
+ getFiles(): FileRecord[];
436
+ /**
437
+ * Estimate the set of files an agent would have needed to Read if it had
438
+ * NOT used the SpecShip graph to answer a query involving `symbols`.
439
+ *
440
+ * For each symbol name in `symbols`, `getNodesByName` is called (exact-match,
441
+ * no FTS) and the distinct project-relative file paths of the returned nodes
442
+ * are collected, capped at 5 files per symbol to avoid god-name blowup (a
443
+ * single overly-common name like `handle` should not pull in the whole repo).
444
+ * File paths are then deduped across all symbols and each path's byte size is
445
+ * looked up via `getFile(path)`.
446
+ *
447
+ * Returns:
448
+ * - `files`: array of `{ path: string; size: number }` with project-relative
449
+ * paths (matching `Node.filePath` / `FileRecord.path`). Callers can dedup
450
+ * across multiple calls before summing.
451
+ * - `resolved`: `true` when at least one file was found; `false` is the
452
+ * safe "we couldn't estimate, claim nothing" sentinel.
453
+ *
454
+ * Synchronous — the graph is already open in memory like other query methods.
455
+ */
456
+ estimateReadEquivalent(symbols: string[]): {
457
+ files: {
458
+ path: string;
459
+ size: number;
460
+ }[];
461
+ resolved: boolean;
462
+ };
463
+ /**
464
+ * Get the context for a node (ancestors, children, references)
465
+ *
466
+ * Returns comprehensive context about a node including its containment
467
+ * hierarchy, children, incoming/outgoing references, type information,
468
+ * and relevant imports.
469
+ *
470
+ * @param nodeId - ID of the focal node
471
+ * @returns Context object with all related information
472
+ */
473
+ getContext(nodeId: string): Context;
474
+ /**
475
+ * Traverse the graph from a starting node
476
+ *
477
+ * Uses breadth-first search by default. Supports filtering by edge types,
478
+ * node types, and traversal direction.
479
+ *
480
+ * @param startId - Starting node ID
481
+ * @param options - Traversal options
482
+ * @returns Subgraph containing traversed nodes and edges
483
+ */
484
+ traverse(startId: string, options?: TraversalOptions): Subgraph;
485
+ /**
486
+ * Get the call graph for a function
487
+ *
488
+ * Returns both callers (functions that call this function) and
489
+ * callees (functions called by this function) up to the specified depth.
490
+ *
491
+ * @param nodeId - ID of the function/method node
492
+ * @param depth - Maximum depth in each direction (default: 2)
493
+ * @returns Subgraph containing the call graph
494
+ */
495
+ getCallGraph(nodeId: string, depth?: number): Subgraph;
496
+ /**
497
+ * Get the type hierarchy for a class/interface
498
+ *
499
+ * Returns both ancestors (types this extends/implements) and
500
+ * descendants (types that extend/implement this).
501
+ *
502
+ * @param nodeId - ID of the class/interface node
503
+ * @returns Subgraph containing the type hierarchy
504
+ */
505
+ getTypeHierarchy(nodeId: string): Subgraph;
506
+ /**
507
+ * Find all usages of a symbol
508
+ *
509
+ * Returns all nodes that reference the specified symbol through
510
+ * any edge type (calls, references, type_of, etc.).
511
+ *
512
+ * @param nodeId - ID of the symbol node
513
+ * @returns Array of nodes and edges that reference this symbol
514
+ */
515
+ findUsages(nodeId: string): Array<{
516
+ node: Node;
517
+ edge: Edge;
518
+ }>;
519
+ /**
520
+ * Get callers of a function/method
521
+ *
522
+ * @param nodeId - ID of the function/method node
523
+ * @param maxDepth - Maximum depth to traverse (default: 1)
524
+ * @returns Array of nodes that call this function
525
+ */
526
+ getCallers(nodeId: string, maxDepth?: number): Array<{
527
+ node: Node;
528
+ edge: Edge;
529
+ }>;
530
+ /**
531
+ * Get callees of a function/method
532
+ *
533
+ * @param nodeId - ID of the function/method node
534
+ * @param maxDepth - Maximum depth to traverse (default: 1)
535
+ * @returns Array of nodes called by this function
536
+ */
537
+ getCallees(nodeId: string, maxDepth?: number): Array<{
538
+ node: Node;
539
+ edge: Edge;
540
+ }>;
541
+ /**
542
+ * Calculate the impact radius of a node
543
+ *
544
+ * Returns all nodes that could be affected by changes to this node.
545
+ *
546
+ * @param nodeId - ID of the node
547
+ * @param maxDepth - Maximum depth to traverse (default: 3)
548
+ * @returns Subgraph containing potentially impacted nodes
549
+ */
550
+ getImpactRadius(nodeId: string, maxDepth?: number): Subgraph;
551
+ /**
552
+ * Find the shortest path between two nodes
553
+ *
554
+ * @param fromId - Starting node ID
555
+ * @param toId - Target node ID
556
+ * @param edgeKinds - Edge types to consider (all if empty)
557
+ * @returns Array of nodes and edges forming the path, or null if no path exists
558
+ */
559
+ findPath(fromId: string, toId: string, edgeKinds?: Edge['kind'][]): Array<{
560
+ node: Node;
561
+ edge: Edge | null;
562
+ }> | null;
563
+ /**
564
+ * Get ancestors of a node in the containment hierarchy
565
+ *
566
+ * @param nodeId - ID of the node
567
+ * @returns Array of ancestor nodes from immediate parent to root
568
+ */
569
+ getAncestors(nodeId: string): Node[];
570
+ /**
571
+ * Get immediate children of a node
572
+ *
573
+ * @param nodeId - ID of the node
574
+ * @returns Array of child nodes
575
+ */
576
+ getChildren(nodeId: string): Node[];
577
+ /**
578
+ * Get dependencies of a file
579
+ *
580
+ * @param filePath - Path to the file
581
+ * @returns Array of file paths this file depends on
582
+ */
583
+ getFileDependencies(filePath: string): string[];
584
+ /**
585
+ * Get dependents of a file
586
+ *
587
+ * @param filePath - Path to the file
588
+ * @returns Array of file paths that depend on this file
589
+ */
590
+ getFileDependents(filePath: string): string[];
591
+ /**
592
+ * Find circular dependencies in the codebase
593
+ *
594
+ * @returns Array of cycles, each cycle is an array of file paths
595
+ */
596
+ findCircularDependencies(): string[][];
597
+ /**
598
+ * Find dead code (unreferenced symbols)
599
+ *
600
+ * @param kinds - Node kinds to check (default: functions, methods, classes)
601
+ * @returns Array of unreferenced nodes
602
+ */
603
+ findDeadCode(kinds?: Node['kind'][]): Node[];
604
+ /**
605
+ * Get complexity metrics for a node
606
+ *
607
+ * @param nodeId - ID of the node
608
+ * @returns Object containing various complexity metrics
609
+ */
610
+ getNodeMetrics(nodeId: string): {
611
+ incomingEdgeCount: number;
612
+ outgoingEdgeCount: number;
613
+ callCount: number;
614
+ callerCount: number;
615
+ childCount: number;
616
+ depth: number;
617
+ };
618
+ /**
619
+ * Get the source code for a node
620
+ *
621
+ * Reads the file and extracts the code between startLine and endLine.
622
+ *
623
+ * @param nodeId - ID of the node
624
+ * @returns Code string or null if not found
625
+ */
626
+ getCode(nodeId: string): Promise<string | null>;
627
+ /**
628
+ * Find relevant subgraph for a query
629
+ *
630
+ * Combines semantic search with graph traversal to find the most
631
+ * relevant nodes and their relationships for a given query.
632
+ *
633
+ * @param query - Natural language query describing the task
634
+ * @param options - Search and traversal options
635
+ * @returns Subgraph of relevant nodes and edges
636
+ */
637
+ findRelevantContext(query: string, options?: FindRelevantContextOptions): Promise<Subgraph>;
638
+ /**
639
+ * Build context for a task
640
+ *
641
+ * Creates comprehensive context by:
642
+ * 1. Running FTS search to find entry points
643
+ * 2. Expanding the graph around entry points
644
+ * 3. Extracting code blocks for key nodes
645
+ * 4. Formatting output for Claude
646
+ *
647
+ * @param input - Task description (string or {title, description})
648
+ * @param options - Build options (maxNodes, includeCode, format, etc.)
649
+ * @returns TaskContext object or formatted string (markdown/JSON)
650
+ */
651
+ buildContext(input: TaskInput, options?: BuildContextOptions): Promise<TaskContext | string>;
652
+ /**
653
+ * Optimize the database (vacuum and analyze)
654
+ */
655
+ optimize(): void;
656
+ /**
657
+ * Clear all data from the graph
658
+ */
659
+ clear(): void;
660
+ /**
661
+ * Alias for close() for backwards compatibility.
662
+ * @deprecated Use close() instead
663
+ */
664
+ destroy(): void;
665
+ /**
666
+ * Completely remove SpecShip from the project.
667
+ * This closes the database and deletes the .SpecShip directory.
668
+ *
669
+ * WARNING: This permanently deletes all SpecShip data for the project.
670
+ */
671
+ uninitialize(): void;
672
+ }
673
+ export default SpecShip;
674
+ //# sourceMappingURL=index.d.ts.map