@flyingrobots/graft 0.6.1 → 0.7.1

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 (665) hide show
  1. package/CHANGELOG.md +148 -0
  2. package/README.md +1 -2
  3. package/bin/graft.js +26 -26
  4. package/dist/adapters/json-text-decoder.d.ts +3 -0
  5. package/dist/adapters/json-text-decoder.d.ts.map +1 -0
  6. package/dist/adapters/json-text-decoder.js +12 -0
  7. package/dist/adapters/json-text-decoder.js.map +1 -0
  8. package/dist/adapters/node-paths.d.ts +3 -0
  9. package/dist/adapters/node-paths.d.ts.map +1 -0
  10. package/dist/adapters/node-paths.js +29 -0
  11. package/dist/adapters/node-paths.js.map +1 -0
  12. package/dist/adapters/repo-paths.d.ts.map +1 -1
  13. package/dist/adapters/repo-paths.js +40 -5
  14. package/dist/adapters/repo-paths.js.map +1 -1
  15. package/dist/api/tool-bridge.d.ts +1 -1
  16. package/dist/api/tool-bridge.d.ts.map +1 -1
  17. package/dist/api/tool-bridge.js +1 -1
  18. package/dist/api/tool-bridge.js.map +1 -1
  19. package/dist/cli/cli-error.d.ts.map +1 -1
  20. package/dist/cli/cli-error.js +47 -10
  21. package/dist/cli/cli-error.js.map +1 -1
  22. package/dist/cli/command-parser.d.ts +12 -3
  23. package/dist/cli/command-parser.d.ts.map +1 -1
  24. package/dist/cli/command-parser.js +161 -2
  25. package/dist/cli/command-parser.js.map +1 -1
  26. package/dist/cli/daemon-status-model.d.ts +87 -0
  27. package/dist/cli/daemon-status-model.d.ts.map +1 -0
  28. package/dist/cli/daemon-status-model.js +142 -0
  29. package/dist/cli/daemon-status-model.js.map +1 -0
  30. package/dist/cli/daemon-status-render.d.ts +3 -0
  31. package/dist/cli/daemon-status-render.d.ts.map +1 -0
  32. package/dist/cli/daemon-status-render.js +100 -0
  33. package/dist/cli/daemon-status-render.js.map +1 -0
  34. package/dist/cli/daemon-status.d.ts +7 -0
  35. package/dist/cli/daemon-status.d.ts.map +1 -0
  36. package/dist/cli/daemon-status.js +79 -0
  37. package/dist/cli/daemon-status.js.map +1 -0
  38. package/dist/cli/git-graft-enhance-model.d.ts +67 -0
  39. package/dist/cli/git-graft-enhance-model.d.ts.map +1 -0
  40. package/dist/cli/git-graft-enhance-model.js +55 -0
  41. package/dist/cli/git-graft-enhance-model.js.map +1 -0
  42. package/dist/cli/git-graft-enhance-render.d.ts +3 -0
  43. package/dist/cli/git-graft-enhance-render.d.ts.map +1 -0
  44. package/dist/cli/git-graft-enhance-render.js +29 -0
  45. package/dist/cli/git-graft-enhance-render.js.map +1 -0
  46. package/dist/cli/git-graft-enhance.d.ts +14 -0
  47. package/dist/cli/git-graft-enhance.d.ts.map +1 -0
  48. package/dist/cli/git-graft-enhance.js +29 -0
  49. package/dist/cli/git-graft-enhance.js.map +1 -0
  50. package/dist/cli/index-cmd.d.ts.map +1 -1
  51. package/dist/cli/index-cmd.js +18 -21
  52. package/dist/cli/index-cmd.js.map +1 -1
  53. package/dist/cli/index-model.d.ts +5 -9
  54. package/dist/cli/index-model.d.ts.map +1 -1
  55. package/dist/cli/index-model.js +20 -18
  56. package/dist/cli/index-model.js.map +1 -1
  57. package/dist/cli/init-client-config.d.ts +12 -7
  58. package/dist/cli/init-client-config.d.ts.map +1 -1
  59. package/dist/cli/init-client-config.js +145 -47
  60. package/dist/cli/init-client-config.js.map +1 -1
  61. package/dist/cli/init-model.d.ts +9 -2
  62. package/dist/cli/init-model.d.ts.map +1 -1
  63. package/dist/cli/init-model.js +54 -6
  64. package/dist/cli/init-model.js.map +1 -1
  65. package/dist/cli/init-render.d.ts.map +1 -1
  66. package/dist/cli/init-render.js +2 -2
  67. package/dist/cli/init-render.js.map +1 -1
  68. package/dist/cli/init.d.ts.map +1 -1
  69. package/dist/cli/init.js +11 -9
  70. package/dist/cli/init.js.map +1 -1
  71. package/dist/cli/json-document.d.ts +6 -0
  72. package/dist/cli/json-document.d.ts.map +1 -1
  73. package/dist/cli/json-document.js +12 -0
  74. package/dist/cli/json-document.js.map +1 -1
  75. package/dist/cli/main.d.ts +7 -0
  76. package/dist/cli/main.d.ts.map +1 -1
  77. package/dist/cli/main.js +49 -7
  78. package/dist/cli/main.js.map +1 -1
  79. package/dist/cli/migrate-local-history.d.ts.map +1 -1
  80. package/dist/cli/migrate-local-history.js +3 -2
  81. package/dist/cli/migrate-local-history.js.map +1 -1
  82. package/dist/cli/peer-command.d.ts +1 -1
  83. package/dist/cli/peer-command.d.ts.map +1 -1
  84. package/dist/cli/peer-command.js +1 -1
  85. package/dist/cli/peer-command.js.map +1 -1
  86. package/dist/contracts/capabilities.d.ts +5 -5
  87. package/dist/contracts/capabilities.d.ts.map +1 -1
  88. package/dist/contracts/capabilities.js +89 -0
  89. package/dist/contracts/capabilities.js.map +1 -1
  90. package/dist/contracts/causal-ontology.d.ts +17 -17
  91. package/dist/contracts/json-object.d.ts +0 -1
  92. package/dist/contracts/json-object.d.ts.map +1 -1
  93. package/dist/contracts/json-object.js +0 -10
  94. package/dist/contracts/json-object.js.map +1 -1
  95. package/dist/contracts/output-schema-cli.d.ts +277 -25
  96. package/dist/contracts/output-schema-cli.d.ts.map +1 -1
  97. package/dist/contracts/output-schema-cli.js +35 -3
  98. package/dist/contracts/output-schema-cli.js.map +1 -1
  99. package/dist/contracts/output-schema-fragments.d.ts +212 -87
  100. package/dist/contracts/output-schema-fragments.d.ts.map +1 -1
  101. package/dist/contracts/output-schema-fragments.js +49 -2
  102. package/dist/contracts/output-schema-fragments.js.map +1 -1
  103. package/dist/contracts/output-schema-mcp.d.ts +372 -47
  104. package/dist/contracts/output-schema-mcp.d.ts.map +1 -1
  105. package/dist/contracts/output-schema-mcp.js +217 -1
  106. package/dist/contracts/output-schema-mcp.js.map +1 -1
  107. package/dist/contracts/output-schema-meta.d.ts +2 -2
  108. package/dist/contracts/output-schema-meta.d.ts.map +1 -1
  109. package/dist/contracts/output-schemas.d.ts +7 -7
  110. package/dist/contracts/output-schemas.d.ts.map +1 -1
  111. package/dist/contracts/output-schemas.js +294 -6
  112. package/dist/contracts/output-schemas.js.map +1 -1
  113. package/dist/git/diff.d.ts +11 -0
  114. package/dist/git/diff.d.ts.map +1 -1
  115. package/dist/git/diff.js +50 -6
  116. package/dist/git/diff.js.map +1 -1
  117. package/dist/hooks/posttooluse-read.js +1 -1
  118. package/dist/hooks/posttooluse-read.js.map +1 -1
  119. package/dist/hooks/pretooluse-read.js +1 -1
  120. package/dist/hooks/pretooluse-read.js.map +1 -1
  121. package/dist/mcp/burden.d.ts.map +1 -1
  122. package/dist/mcp/burden.js +9 -0
  123. package/dist/mcp/burden.js.map +1 -1
  124. package/dist/mcp/context.d.ts +3 -2
  125. package/dist/mcp/context.d.ts.map +1 -1
  126. package/dist/mcp/context.js +2 -37
  127. package/dist/mcp/context.js.map +1 -1
  128. package/dist/mcp/daemon-server.d.ts +2 -0
  129. package/dist/mcp/daemon-server.d.ts.map +1 -1
  130. package/dist/mcp/daemon-server.js +6 -1
  131. package/dist/mcp/daemon-server.js.map +1 -1
  132. package/dist/mcp/daemon-session-host.d.ts +1 -0
  133. package/dist/mcp/daemon-session-host.d.ts.map +1 -1
  134. package/dist/mcp/daemon-session-host.js +3 -0
  135. package/dist/mcp/daemon-session-host.js.map +1 -1
  136. package/dist/mcp/daemon-stdio-bridge.d.ts +1 -0
  137. package/dist/mcp/daemon-stdio-bridge.d.ts.map +1 -1
  138. package/dist/mcp/daemon-stdio-bridge.js +1 -0
  139. package/dist/mcp/daemon-stdio-bridge.js.map +1 -1
  140. package/dist/mcp/daemon-worker-child-pool.d.ts +2 -0
  141. package/dist/mcp/daemon-worker-child-pool.d.ts.map +1 -1
  142. package/dist/mcp/daemon-worker-child-pool.js +10 -3
  143. package/dist/mcp/daemon-worker-child-pool.js.map +1 -1
  144. package/dist/mcp/daemon-worker-pool.d.ts +1 -1
  145. package/dist/mcp/daemon-worker-pool.d.ts.map +1 -1
  146. package/dist/mcp/daemon-worker-pool.js +1 -1
  147. package/dist/mcp/daemon-worker-pool.js.map +1 -1
  148. package/dist/mcp/monitor-tick-job.d.ts +1 -0
  149. package/dist/mcp/monitor-tick-job.d.ts.map +1 -1
  150. package/dist/mcp/monitor-tick-job.js +84 -29
  151. package/dist/mcp/monitor-tick-job.js.map +1 -1
  152. package/dist/mcp/monitor-types.d.ts +1 -1
  153. package/dist/mcp/monitor-types.d.ts.map +1 -1
  154. package/dist/mcp/persisted-local-history-graph.d.ts +2 -2
  155. package/dist/mcp/persisted-local-history-graph.d.ts.map +1 -1
  156. package/dist/mcp/persisted-local-history-graph.js +3 -2
  157. package/dist/mcp/persisted-local-history-graph.js.map +1 -1
  158. package/dist/mcp/persisted-local-history.d.ts +5 -5
  159. package/dist/mcp/persisted-local-history.js +2 -2
  160. package/dist/mcp/persisted-local-history.js.map +1 -1
  161. package/dist/mcp/persistent-monitor-runtime.d.ts +1 -0
  162. package/dist/mcp/persistent-monitor-runtime.d.ts.map +1 -1
  163. package/dist/mcp/persistent-monitor-runtime.js +35 -0
  164. package/dist/mcp/persistent-monitor-runtime.js.map +1 -1
  165. package/dist/mcp/repo-tool-worker-context.d.ts.map +1 -1
  166. package/dist/mcp/repo-tool-worker-context.js +5 -2
  167. package/dist/mcp/repo-tool-worker-context.js.map +1 -1
  168. package/dist/mcp/server-context.d.ts.map +1 -1
  169. package/dist/mcp/server-context.js +13 -0
  170. package/dist/mcp/server-context.js.map +1 -1
  171. package/dist/mcp/server-tool-access.d.ts +1 -1
  172. package/dist/mcp/server-tool-access.d.ts.map +1 -1
  173. package/dist/mcp/server-tool-access.js +3 -1
  174. package/dist/mcp/server-tool-access.js.map +1 -1
  175. package/dist/mcp/server.d.ts +3 -0
  176. package/dist/mcp/server.d.ts.map +1 -1
  177. package/dist/mcp/server.js +5 -3
  178. package/dist/mcp/server.js.map +1 -1
  179. package/dist/mcp/tool-registry.d.ts.map +1 -1
  180. package/dist/mcp/tool-registry.js +18 -0
  181. package/dist/mcp/tool-registry.js.map +1 -1
  182. package/dist/mcp/tools/code-find.d.ts.map +1 -1
  183. package/dist/mcp/tools/code-find.js +20 -0
  184. package/dist/mcp/tools/code-find.js.map +1 -1
  185. package/dist/mcp/tools/code-show.d.ts.map +1 -1
  186. package/dist/mcp/tools/code-show.js +24 -0
  187. package/dist/mcp/tools/code-show.js.map +1 -1
  188. package/dist/mcp/tools/diagnostic-models.d.ts +2 -0
  189. package/dist/mcp/tools/diagnostic-models.d.ts.map +1 -1
  190. package/dist/mcp/tools/doctor.d.ts.map +1 -1
  191. package/dist/mcp/tools/doctor.js +18 -1
  192. package/dist/mcp/tools/doctor.js.map +1 -1
  193. package/dist/mcp/tools/export-surface-diff.d.ts +3 -0
  194. package/dist/mcp/tools/export-surface-diff.d.ts.map +1 -0
  195. package/dist/mcp/tools/export-surface-diff.js +24 -0
  196. package/dist/mcp/tools/export-surface-diff.js.map +1 -0
  197. package/dist/mcp/tools/file-outline.js +1 -1
  198. package/dist/mcp/tools/file-outline.js.map +1 -1
  199. package/dist/mcp/tools/graft-edit.d.ts +3 -0
  200. package/dist/mcp/tools/graft-edit.d.ts.map +1 -0
  201. package/dist/mcp/tools/graft-edit.js +192 -0
  202. package/dist/mcp/tools/graft-edit.js.map +1 -0
  203. package/dist/mcp/tools/knowledge-map.d.ts +3 -0
  204. package/dist/mcp/tools/knowledge-map.d.ts.map +1 -0
  205. package/dist/mcp/tools/knowledge-map.js +31 -0
  206. package/dist/mcp/tools/knowledge-map.js.map +1 -0
  207. package/dist/mcp/tools/monitor-nudge.d.ts +3 -0
  208. package/dist/mcp/tools/monitor-nudge.d.ts.map +1 -0
  209. package/dist/mcp/tools/monitor-nudge.js +17 -0
  210. package/dist/mcp/tools/monitor-nudge.js.map +1 -0
  211. package/dist/mcp/tools/precision-warp.d.ts +3 -3
  212. package/dist/mcp/tools/precision-warp.d.ts.map +1 -1
  213. package/dist/mcp/tools/precision-warp.js +24 -15
  214. package/dist/mcp/tools/precision-warp.js.map +1 -1
  215. package/dist/mcp/tools/refactor-difficulty.d.ts +3 -0
  216. package/dist/mcp/tools/refactor-difficulty.d.ts.map +1 -0
  217. package/dist/mcp/tools/refactor-difficulty.js +36 -0
  218. package/dist/mcp/tools/refactor-difficulty.js.map +1 -0
  219. package/dist/mcp/tools/safe-read.js +2 -2
  220. package/dist/mcp/tools/safe-read.js.map +1 -1
  221. package/dist/mcp/tools/structural-blame.d.ts +3 -0
  222. package/dist/mcp/tools/structural-blame.d.ts.map +1 -0
  223. package/dist/mcp/tools/structural-blame.js +44 -0
  224. package/dist/mcp/tools/structural-blame.js.map +1 -0
  225. package/dist/mcp/tools/structural-churn.d.ts +3 -0
  226. package/dist/mcp/tools/structural-churn.d.ts.map +1 -0
  227. package/dist/mcp/tools/structural-churn.js +28 -0
  228. package/dist/mcp/tools/structural-churn.js.map +1 -0
  229. package/dist/mcp/tools/structural-log.d.ts +3 -0
  230. package/dist/mcp/tools/structural-log.d.ts.map +1 -0
  231. package/dist/mcp/tools/structural-log.js +38 -0
  232. package/dist/mcp/tools/structural-log.js.map +1 -0
  233. package/dist/mcp/tools/structural-review.d.ts +3 -0
  234. package/dist/mcp/tools/structural-review.d.ts.map +1 -0
  235. package/dist/mcp/tools/structural-review.js +55 -0
  236. package/dist/mcp/tools/structural-review.js.map +1 -0
  237. package/dist/mcp/warp-pool.d.ts +4 -4
  238. package/dist/mcp/warp-pool.d.ts.map +1 -1
  239. package/dist/mcp/warp-pool.js.map +1 -1
  240. package/dist/mcp/workspace-router-model.d.ts +2 -2
  241. package/dist/mcp/workspace-router-model.d.ts.map +1 -1
  242. package/dist/mcp/workspace-router-runtime.d.ts +3 -3
  243. package/dist/mcp/workspace-router-runtime.d.ts.map +1 -1
  244. package/dist/mcp/workspace-router-runtime.js +4 -1
  245. package/dist/mcp/workspace-router-runtime.js.map +1 -1
  246. package/dist/mcp/workspace-router.d.ts +3 -2
  247. package/dist/mcp/workspace-router.d.ts.map +1 -1
  248. package/dist/mcp/workspace-router.js +6 -0
  249. package/dist/mcp/workspace-router.js.map +1 -1
  250. package/dist/operations/adaptive-projection.d.ts +22 -0
  251. package/dist/operations/adaptive-projection.d.ts.map +1 -0
  252. package/dist/operations/adaptive-projection.js +36 -0
  253. package/dist/operations/adaptive-projection.js.map +1 -0
  254. package/dist/operations/agent-handoff.d.ts +25 -0
  255. package/dist/operations/agent-handoff.d.ts.map +1 -0
  256. package/dist/operations/agent-handoff.js +36 -0
  257. package/dist/operations/agent-handoff.js.map +1 -0
  258. package/dist/operations/capture-range.d.ts +33 -0
  259. package/dist/operations/capture-range.d.ts.map +1 -0
  260. package/dist/operations/capture-range.js +45 -0
  261. package/dist/operations/capture-range.js.map +1 -0
  262. package/dist/operations/conversation-primer.d.ts +27 -0
  263. package/dist/operations/conversation-primer.d.ts.map +1 -0
  264. package/dist/operations/conversation-primer.js +52 -0
  265. package/dist/operations/conversation-primer.js.map +1 -0
  266. package/dist/operations/cross-session-resume.d.ts +28 -0
  267. package/dist/operations/cross-session-resume.d.ts.map +1 -0
  268. package/dist/operations/cross-session-resume.js +79 -0
  269. package/dist/operations/cross-session-resume.js.map +1 -0
  270. package/dist/operations/deterministic-replay.d.ts +39 -0
  271. package/dist/operations/deterministic-replay.d.ts.map +1 -0
  272. package/dist/operations/deterministic-replay.js +90 -0
  273. package/dist/operations/deterministic-replay.js.map +1 -0
  274. package/dist/operations/export-surface-diff.d.ts +36 -0
  275. package/dist/operations/export-surface-diff.d.ts.map +1 -0
  276. package/dist/operations/export-surface-diff.js +298 -0
  277. package/dist/operations/export-surface-diff.js.map +1 -0
  278. package/dist/operations/footprint-parallelism.d.ts +25 -0
  279. package/dist/operations/footprint-parallelism.d.ts.map +1 -0
  280. package/dist/operations/footprint-parallelism.js +79 -0
  281. package/dist/operations/footprint-parallelism.js.map +1 -0
  282. package/dist/operations/graft-diff.d.ts.map +1 -1
  283. package/dist/operations/graft-diff.js +14 -7
  284. package/dist/operations/graft-diff.js.map +1 -1
  285. package/dist/operations/horizon-of-readability.d.ts +23 -0
  286. package/dist/operations/horizon-of-readability.d.ts.map +1 -0
  287. package/dist/operations/horizon-of-readability.js +39 -0
  288. package/dist/operations/horizon-of-readability.js.map +1 -0
  289. package/dist/operations/import-reference-impact.d.ts +13 -0
  290. package/dist/operations/import-reference-impact.d.ts.map +1 -0
  291. package/dist/operations/import-reference-impact.js +101 -0
  292. package/dist/operations/import-reference-impact.js.map +1 -0
  293. package/dist/operations/knowledge-map.d.ts +30 -0
  294. package/dist/operations/knowledge-map.d.ts.map +1 -0
  295. package/dist/operations/knowledge-map.js +64 -0
  296. package/dist/operations/knowledge-map.js.map +1 -0
  297. package/dist/operations/observation-cache.d.ts +8 -2
  298. package/dist/operations/observation-cache.d.ts.map +1 -1
  299. package/dist/operations/observation-cache.js +17 -5
  300. package/dist/operations/observation-cache.js.map +1 -1
  301. package/dist/operations/projection-safety.d.ts +31 -0
  302. package/dist/operations/projection-safety.d.ts.map +1 -0
  303. package/dist/operations/projection-safety.js +77 -0
  304. package/dist/operations/projection-safety.js.map +1 -0
  305. package/dist/operations/repo-workspace.js +3 -3
  306. package/dist/operations/repo-workspace.js.map +1 -1
  307. package/dist/operations/semantic-drift.d.ts +27 -0
  308. package/dist/operations/semantic-drift.d.ts.map +1 -0
  309. package/dist/operations/semantic-drift.js +46 -0
  310. package/dist/operations/semantic-drift.js.map +1 -0
  311. package/dist/operations/session-filtration.d.ts +36 -0
  312. package/dist/operations/session-filtration.d.ts.map +1 -0
  313. package/dist/operations/session-filtration.js +48 -0
  314. package/dist/operations/session-filtration.js.map +1 -0
  315. package/dist/operations/session-replay.d.ts +17 -0
  316. package/dist/operations/session-replay.d.ts.map +1 -0
  317. package/dist/operations/session-replay.js +59 -0
  318. package/dist/operations/session-replay.js.map +1 -0
  319. package/dist/operations/sludge-detector.d.ts +45 -0
  320. package/dist/operations/sludge-detector.d.ts.map +1 -0
  321. package/dist/operations/sludge-detector.js +278 -0
  322. package/dist/operations/sludge-detector.js.map +1 -0
  323. package/dist/operations/structural-blame.d.ts +67 -0
  324. package/dist/operations/structural-blame.d.ts.map +1 -0
  325. package/dist/operations/structural-blame.js +111 -0
  326. package/dist/operations/structural-blame.js.map +1 -0
  327. package/dist/operations/structural-review.d.ts +47 -0
  328. package/dist/operations/structural-review.d.ts.map +1 -0
  329. package/dist/operations/structural-review.js +225 -0
  330. package/dist/operations/structural-review.js.map +1 -0
  331. package/dist/operations/teaching-hints.d.ts +18 -0
  332. package/dist/operations/teaching-hints.d.ts.map +1 -0
  333. package/dist/operations/teaching-hints.js +35 -0
  334. package/dist/operations/teaching-hints.js.map +1 -0
  335. package/dist/parser/diff.d.ts +2 -0
  336. package/dist/parser/diff.d.ts.map +1 -1
  337. package/dist/parser/diff.js +7 -0
  338. package/dist/parser/diff.js.map +1 -1
  339. package/dist/ports/paths.d.ts +17 -0
  340. package/dist/ports/paths.d.ts.map +1 -0
  341. package/dist/ports/{warp.js → paths.js} +2 -2
  342. package/dist/ports/paths.js.map +1 -0
  343. package/dist/version.d.ts.map +1 -1
  344. package/dist/version.js +3 -1
  345. package/dist/version.js.map +1 -1
  346. package/dist/warp/ast-emitter.d.ts +28 -0
  347. package/dist/warp/ast-emitter.d.ts.map +1 -0
  348. package/dist/warp/ast-emitter.js +90 -0
  349. package/dist/warp/ast-emitter.js.map +1 -0
  350. package/dist/warp/ast-import-resolver.d.ts +13 -0
  351. package/dist/warp/ast-import-resolver.d.ts.map +1 -0
  352. package/dist/warp/ast-import-resolver.js +259 -0
  353. package/dist/warp/ast-import-resolver.js.map +1 -0
  354. package/dist/warp/commit-meta.d.ts +8 -0
  355. package/dist/warp/commit-meta.d.ts.map +1 -0
  356. package/dist/warp/commit-meta.js +13 -0
  357. package/dist/warp/commit-meta.js.map +1 -0
  358. package/dist/warp/context.d.ts +10 -0
  359. package/dist/warp/context.d.ts.map +1 -0
  360. package/dist/warp/context.js +26 -0
  361. package/dist/warp/context.js.map +1 -0
  362. package/dist/warp/dead-symbols.d.ts +40 -0
  363. package/dist/warp/dead-symbols.d.ts.map +1 -0
  364. package/dist/warp/dead-symbols.js +127 -0
  365. package/dist/warp/dead-symbols.js.map +1 -0
  366. package/dist/warp/drift-sentinel.d.ts +30 -0
  367. package/dist/warp/drift-sentinel.d.ts.map +1 -0
  368. package/dist/warp/drift-sentinel.js +65 -0
  369. package/dist/warp/drift-sentinel.js.map +1 -0
  370. package/dist/warp/index-head.d.ts +32 -0
  371. package/dist/warp/index-head.d.ts.map +1 -0
  372. package/dist/warp/index-head.js +245 -0
  373. package/dist/warp/index-head.js.map +1 -0
  374. package/dist/warp/observers.d.ts +6 -6
  375. package/dist/warp/observers.d.ts.map +1 -1
  376. package/dist/warp/observers.js +5 -4
  377. package/dist/warp/observers.js.map +1 -1
  378. package/dist/warp/open.d.ts +5 -4
  379. package/dist/warp/open.d.ts.map +1 -1
  380. package/dist/warp/open.js +24 -49
  381. package/dist/warp/open.js.map +1 -1
  382. package/dist/warp/outline-diff-trailer.d.ts +26 -0
  383. package/dist/warp/outline-diff-trailer.d.ts.map +1 -0
  384. package/dist/warp/outline-diff-trailer.js +68 -0
  385. package/dist/warp/outline-diff-trailer.js.map +1 -0
  386. package/dist/warp/refactor-difficulty.d.ts +38 -0
  387. package/dist/warp/refactor-difficulty.d.ts.map +1 -0
  388. package/dist/warp/refactor-difficulty.js +169 -0
  389. package/dist/warp/refactor-difficulty.js.map +1 -0
  390. package/dist/warp/references.d.ts +22 -0
  391. package/dist/warp/references.d.ts.map +1 -0
  392. package/dist/warp/references.js +57 -0
  393. package/dist/warp/references.js.map +1 -0
  394. package/dist/warp/stale-docs.d.ts +56 -0
  395. package/dist/warp/stale-docs.d.ts.map +1 -0
  396. package/dist/warp/stale-docs.js +149 -0
  397. package/dist/warp/stale-docs.js.map +1 -0
  398. package/dist/warp/structural-drift-detection.d.ts +49 -0
  399. package/dist/warp/structural-drift-detection.d.ts.map +1 -0
  400. package/dist/warp/structural-drift-detection.js +51 -0
  401. package/dist/warp/structural-drift-detection.js.map +1 -0
  402. package/dist/warp/structural-queries.d.ts +49 -0
  403. package/dist/warp/structural-queries.d.ts.map +1 -0
  404. package/dist/warp/structural-queries.js +175 -0
  405. package/dist/warp/structural-queries.js.map +1 -0
  406. package/dist/warp/symbol-timeline.d.ts +34 -0
  407. package/dist/warp/symbol-timeline.d.ts.map +1 -0
  408. package/dist/warp/symbol-timeline.js +127 -0
  409. package/dist/warp/symbol-timeline.js.map +1 -0
  410. package/dist/warp/traverse-hydrate.d.ts +23 -0
  411. package/dist/warp/traverse-hydrate.d.ts.map +1 -0
  412. package/dist/warp/traverse-hydrate.js +39 -0
  413. package/dist/warp/traverse-hydrate.js.map +1 -0
  414. package/dist/warp/warp-reference-count.d.ts +19 -0
  415. package/dist/warp/warp-reference-count.d.ts.map +1 -0
  416. package/dist/warp/warp-reference-count.js +32 -0
  417. package/dist/warp/warp-reference-count.js.map +1 -0
  418. package/dist/warp/warp-structural-blame.d.ts +20 -0
  419. package/dist/warp/warp-structural-blame.d.ts.map +1 -0
  420. package/dist/warp/warp-structural-blame.js +43 -0
  421. package/dist/warp/warp-structural-blame.js.map +1 -0
  422. package/dist/warp/warp-structural-churn.d.ts +30 -0
  423. package/dist/warp/warp-structural-churn.d.ts.map +1 -0
  424. package/dist/warp/warp-structural-churn.js +213 -0
  425. package/dist/warp/warp-structural-churn.js.map +1 -0
  426. package/dist/warp/warp-structural-log.d.ts +35 -0
  427. package/dist/warp/warp-structural-log.d.ts.map +1 -0
  428. package/dist/warp/warp-structural-log.js +104 -0
  429. package/dist/warp/warp-structural-log.js.map +1 -0
  430. package/docs/CLI.md +68 -4
  431. package/docs/MCP.md +23 -0
  432. package/docs/SETUP.md +112 -27
  433. package/package.json +13 -6
  434. package/dist/ports/warp.d.ts +0 -45
  435. package/dist/ports/warp.d.ts.map +0 -1
  436. package/dist/ports/warp.js.map +0 -1
  437. package/dist/warp/identity-resolver.d.ts +0 -14
  438. package/dist/warp/identity-resolver.d.ts.map +0 -1
  439. package/dist/warp/identity-resolver.js +0 -31
  440. package/dist/warp/identity-resolver.js.map +0 -1
  441. package/dist/warp/indexer-git.d.ts +0 -22
  442. package/dist/warp/indexer-git.d.ts.map +0 -1
  443. package/dist/warp/indexer-git.js +0 -148
  444. package/dist/warp/indexer-git.js.map +0 -1
  445. package/dist/warp/indexer-graph.d.ts +0 -17
  446. package/dist/warp/indexer-graph.d.ts.map +0 -1
  447. package/dist/warp/indexer-graph.js +0 -179
  448. package/dist/warp/indexer-graph.js.map +0 -1
  449. package/dist/warp/indexer-model.d.ts +0 -51
  450. package/dist/warp/indexer-model.d.ts.map +0 -1
  451. package/dist/warp/indexer-model.js +0 -21
  452. package/dist/warp/indexer-model.js.map +0 -1
  453. package/dist/warp/indexer.d.ts +0 -9
  454. package/dist/warp/indexer.d.ts.map +0 -1
  455. package/dist/warp/indexer.js +0 -112
  456. package/dist/warp/indexer.js.map +0 -1
  457. package/dist/warp/symbol-identity.d.ts +0 -11
  458. package/dist/warp/symbol-identity.d.ts.map +0 -1
  459. package/dist/warp/symbol-identity.js +0 -67
  460. package/dist/warp/symbol-identity.js.map +0 -1
  461. package/src/adapters/canonical-json.ts +0 -56
  462. package/src/adapters/node-fs.ts +0 -43
  463. package/src/adapters/node-git.ts +0 -47
  464. package/src/adapters/node-process-runner.ts +0 -27
  465. package/src/adapters/repo-paths.ts +0 -22
  466. package/src/adapters/rotating-ndjson-log.ts +0 -66
  467. package/src/api/index.ts +0 -107
  468. package/src/api/repo-local-graft.ts +0 -21
  469. package/src/api/repo-workspace.ts +0 -34
  470. package/src/api/tool-bridge.ts +0 -21
  471. package/src/cli/activity-render.ts +0 -112
  472. package/src/cli/cli-error.ts +0 -153
  473. package/src/cli/command-parser.ts +0 -302
  474. package/src/cli/entrypoint.ts +0 -18
  475. package/src/cli/index-cmd.ts +0 -94
  476. package/src/cli/index-model.ts +0 -76
  477. package/src/cli/init-bootstrap.ts +0 -47
  478. package/src/cli/init-client-config.ts +0 -299
  479. package/src/cli/init-model.ts +0 -229
  480. package/src/cli/init-render.ts +0 -54
  481. package/src/cli/init-target-hooks.ts +0 -93
  482. package/src/cli/init.ts +0 -122
  483. package/src/cli/json-document.ts +0 -144
  484. package/src/cli/local-history-dag-model.ts +0 -437
  485. package/src/cli/local-history-dag-render.ts +0 -133
  486. package/src/cli/local-history-dag.ts +0 -103
  487. package/src/cli/main.ts +0 -150
  488. package/src/cli/migrate-local-history.ts +0 -118
  489. package/src/cli/peer-command.ts +0 -59
  490. package/src/contracts/capabilities.ts +0 -450
  491. package/src/contracts/causal-ontology.ts +0 -627
  492. package/src/contracts/causal-surface-next-action.ts +0 -18
  493. package/src/contracts/json-object.ts +0 -28
  494. package/src/contracts/mcp-runtime.ts +0 -16
  495. package/src/contracts/output-schema-cli.ts +0 -70
  496. package/src/contracts/output-schema-fragments.ts +0 -831
  497. package/src/contracts/output-schema-mcp.ts +0 -282
  498. package/src/contracts/output-schema-meta.ts +0 -119
  499. package/src/contracts/output-schemas.ts +0 -1230
  500. package/src/git/diff.ts +0 -100
  501. package/src/git/target-git-hook-bootstrap.ts +0 -56
  502. package/src/guards/stream-boundary.ts +0 -110
  503. package/src/hooks/posttooluse-read.ts +0 -54
  504. package/src/hooks/pretooluse-read.ts +0 -52
  505. package/src/hooks/read-governor.ts +0 -95
  506. package/src/hooks/read-messages.ts +0 -53
  507. package/src/hooks/shared.ts +0 -168
  508. package/src/index.ts +0 -1
  509. package/src/mcp/burden.ts +0 -123
  510. package/src/mcp/cache.ts +0 -7
  511. package/src/mcp/cached-file.ts +0 -1
  512. package/src/mcp/context.ts +0 -187
  513. package/src/mcp/control-plane/authz-storage.ts +0 -129
  514. package/src/mcp/control-plane/session-registry.ts +0 -115
  515. package/src/mcp/control-plane/status-projection.ts +0 -76
  516. package/src/mcp/control-plane/types.ts +0 -144
  517. package/src/mcp/daemon-bootstrap.ts +0 -100
  518. package/src/mcp/daemon-control-plane.ts +0 -310
  519. package/src/mcp/daemon-job-scheduler.ts +0 -279
  520. package/src/mcp/daemon-repos.ts +0 -99
  521. package/src/mcp/daemon-server.ts +0 -165
  522. package/src/mcp/daemon-session-host.ts +0 -230
  523. package/src/mcp/daemon-stdio-bridge.ts +0 -260
  524. package/src/mcp/daemon-worker-child-pool.ts +0 -213
  525. package/src/mcp/daemon-worker-inline-pool.ts +0 -46
  526. package/src/mcp/daemon-worker-pool.ts +0 -7
  527. package/src/mcp/daemon-worker-process.ts +0 -52
  528. package/src/mcp/daemon-worker-types.ts +0 -66
  529. package/src/mcp/metrics.ts +0 -176
  530. package/src/mcp/monitor-health.ts +0 -83
  531. package/src/mcp/monitor-persistence.ts +0 -54
  532. package/src/mcp/monitor-tick-job.ts +0 -102
  533. package/src/mcp/monitor-types.ts +0 -103
  534. package/src/mcp/persisted-local-history-graph.ts +0 -591
  535. package/src/mcp/persisted-local-history-policy.ts +0 -501
  536. package/src/mcp/persisted-local-history-views.ts +0 -250
  537. package/src/mcp/persisted-local-history.ts +0 -1621
  538. package/src/mcp/persistent-monitor-runtime.ts +0 -445
  539. package/src/mcp/policy.ts +0 -75
  540. package/src/mcp/receipt.ts +0 -201
  541. package/src/mcp/repo-concurrency.ts +0 -392
  542. package/src/mcp/repo-overview/filter.ts +0 -44
  543. package/src/mcp/repo-overview/types.ts +0 -63
  544. package/src/mcp/repo-overview/view-projection.ts +0 -90
  545. package/src/mcp/repo-state-git.ts +0 -247
  546. package/src/mcp/repo-state-observation.ts +0 -203
  547. package/src/mcp/repo-state-transition.ts +0 -151
  548. package/src/mcp/repo-state-types.ts +0 -107
  549. package/src/mcp/repo-state.ts +0 -146
  550. package/src/mcp/repo-tool-job.ts +0 -102
  551. package/src/mcp/repo-tool-worker-context.ts +0 -212
  552. package/src/mcp/repo-workspace.ts +0 -21
  553. package/src/mcp/run-capture-config.ts +0 -33
  554. package/src/mcp/runtime-causal-context.ts +0 -72
  555. package/src/mcp/runtime-observability.ts +0 -217
  556. package/src/mcp/runtime-staged-target.ts +0 -161
  557. package/src/mcp/runtime-workspace-overlay.ts +0 -255
  558. package/src/mcp/secret-scrub.ts +0 -89
  559. package/src/mcp/semantic-transition-guidance.ts +0 -60
  560. package/src/mcp/semantic-transition-summary.ts +0 -130
  561. package/src/mcp/server-context.ts +0 -223
  562. package/src/mcp/server-invocation.ts +0 -388
  563. package/src/mcp/server-tool-access.ts +0 -145
  564. package/src/mcp/server.ts +0 -265
  565. package/src/mcp/stdio-server.ts +0 -26
  566. package/src/mcp/stdio.ts +0 -3
  567. package/src/mcp/tool-registry.ts +0 -80
  568. package/src/mcp/tools/activity-view.ts +0 -325
  569. package/src/mcp/tools/budget.ts +0 -23
  570. package/src/mcp/tools/causal-attach.ts +0 -67
  571. package/src/mcp/tools/causal-status.ts +0 -58
  572. package/src/mcp/tools/changed-since.ts +0 -71
  573. package/src/mcp/tools/code-find.ts +0 -169
  574. package/src/mcp/tools/code-refs.ts +0 -470
  575. package/src/mcp/tools/code-show.ts +0 -262
  576. package/src/mcp/tools/daemon-monitors.ts +0 -14
  577. package/src/mcp/tools/daemon-repos.ts +0 -22
  578. package/src/mcp/tools/daemon-sessions.ts +0 -14
  579. package/src/mcp/tools/daemon-status.ts +0 -12
  580. package/src/mcp/tools/diagnostic-models.ts +0 -95
  581. package/src/mcp/tools/doctor.ts +0 -66
  582. package/src/mcp/tools/explain.ts +0 -84
  583. package/src/mcp/tools/file-outline.ts +0 -67
  584. package/src/mcp/tools/git-files.ts +0 -73
  585. package/src/mcp/tools/graft-diff.ts +0 -35
  586. package/src/mcp/tools/map-collector.ts +0 -338
  587. package/src/mcp/tools/map.ts +0 -185
  588. package/src/mcp/tools/monitor-pause.ts +0 -18
  589. package/src/mcp/tools/monitor-resume.ts +0 -18
  590. package/src/mcp/tools/monitor-start.ts +0 -20
  591. package/src/mcp/tools/monitor-stop.ts +0 -18
  592. package/src/mcp/tools/precision-live.ts +0 -158
  593. package/src/mcp/tools/precision-match.ts +0 -54
  594. package/src/mcp/tools/precision-paths.ts +0 -59
  595. package/src/mcp/tools/precision-query.ts +0 -127
  596. package/src/mcp/tools/precision-show.ts +0 -86
  597. package/src/mcp/tools/precision-visibility.ts +0 -44
  598. package/src/mcp/tools/precision-warp.ts +0 -90
  599. package/src/mcp/tools/precision.ts +0 -21
  600. package/src/mcp/tools/read-range.ts +0 -28
  601. package/src/mcp/tools/run-capture.ts +0 -149
  602. package/src/mcp/tools/safe-read.ts +0 -148
  603. package/src/mcp/tools/since.ts +0 -53
  604. package/src/mcp/tools/state.ts +0 -39
  605. package/src/mcp/tools/stats.ts +0 -24
  606. package/src/mcp/tools/workspace-authorizations.ts +0 -14
  607. package/src/mcp/tools/workspace-authorize.ts +0 -20
  608. package/src/mcp/tools/workspace-bind.ts +0 -25
  609. package/src/mcp/tools/workspace-rebind.ts +0 -25
  610. package/src/mcp/tools/workspace-revoke.ts +0 -18
  611. package/src/mcp/tools/workspace-status.ts +0 -12
  612. package/src/mcp/warp-pool.ts +0 -36
  613. package/src/mcp/workspace-read-observation-model.ts +0 -48
  614. package/src/mcp/workspace-read-observation.ts +0 -103
  615. package/src/mcp/workspace-router-capability.ts +0 -32
  616. package/src/mcp/workspace-router-history.ts +0 -233
  617. package/src/mcp/workspace-router-model.ts +0 -131
  618. package/src/mcp/workspace-router-resolution.ts +0 -71
  619. package/src/mcp/workspace-router-runtime.ts +0 -243
  620. package/src/mcp/workspace-router.ts +0 -681
  621. package/src/metrics/logger.ts +0 -40
  622. package/src/metrics/types.ts +0 -40
  623. package/src/operations/cached-file.ts +0 -40
  624. package/src/operations/diff-identity.ts +0 -127
  625. package/src/operations/file-outline.ts +0 -48
  626. package/src/operations/graft-diff.ts +0 -162
  627. package/src/operations/observation-cache.ts +0 -149
  628. package/src/operations/read-range.ts +0 -64
  629. package/src/operations/repo-workspace.ts +0 -339
  630. package/src/operations/result-dto.ts +0 -23
  631. package/src/operations/safe-read.ts +0 -118
  632. package/src/operations/state.ts +0 -66
  633. package/src/operations/structured-buffer-compare.ts +0 -429
  634. package/src/operations/structured-buffer-model.ts +0 -456
  635. package/src/operations/structured-buffer-query.ts +0 -794
  636. package/src/operations/structured-buffer.ts +0 -181
  637. package/src/parser/diff.ts +0 -313
  638. package/src/parser/lang.ts +0 -71
  639. package/src/parser/markdown.ts +0 -197
  640. package/src/parser/outline.ts +0 -316
  641. package/src/parser/runtime.ts +0 -71
  642. package/src/parser/types.ts +0 -75
  643. package/src/policy/evaluate.ts +0 -178
  644. package/src/policy/graftignore.ts +0 -6
  645. package/src/policy/types.ts +0 -87
  646. package/src/ports/codec.ts +0 -13
  647. package/src/ports/filesystem.ts +0 -18
  648. package/src/ports/git.ts +0 -16
  649. package/src/ports/guards.ts +0 -68
  650. package/src/ports/process-runner.ts +0 -22
  651. package/src/ports/warp.ts +0 -55
  652. package/src/release/security-gate.ts +0 -102
  653. package/src/session/tracker.ts +0 -145
  654. package/src/session/types.ts +0 -23
  655. package/src/version.ts +0 -3
  656. package/src/warp/identity-resolver.ts +0 -35
  657. package/src/warp/indexer-git.ts +0 -182
  658. package/src/warp/indexer-graph.ts +0 -276
  659. package/src/warp/indexer-model.ts +0 -69
  660. package/src/warp/indexer.ts +0 -186
  661. package/src/warp/observers.ts +0 -100
  662. package/src/warp/open.ts +0 -93
  663. package/src/warp/plumbing.d.ts +0 -15
  664. package/src/warp/symbol-identity.ts +0 -100
  665. package/src/warp/writer-id.ts +0 -30
package/dist/version.js CHANGED
@@ -1,3 +1,5 @@
1
- import packageJson from "../package.json";
1
+ import { createRequire } from "node:module";
2
+ const require = createRequire(import.meta.url);
3
+ const packageJson = require("../package.json");
2
4
  export const GRAFT_VERSION = packageJson.version;
3
5
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { PatchBuilderV2 } from "@git-stunts/git-warp";
2
+ import type { WarpContext } from "./context.js";
3
+ type TSNode = import("web-tree-sitter").SyntaxNode;
4
+ /**
5
+ * Emit a tiny AST root anchor into graph state.
6
+ *
7
+ * The full tree belongs in an attached blob, not materialized WARP graph
8
+ * state. This anchor preserves a stable graph join point for tools that need
9
+ * to know a file has an attached AST snapshot.
10
+ *
11
+ * Call this inside a `warp.patch()` callback to co-locate AST emission
12
+ * with other graph operations in the same atomic commit.
13
+ */
14
+ export declare function emitAstNodes(patch: PatchBuilderV2, filePath: string, root: TSNode): void;
15
+ /**
16
+ * Attach the complete tree-sitter CST as node content on the file node.
17
+ *
18
+ * The blob remains reachable through the WARP patch commit tree, but the
19
+ * materialized graph only carries the `_content` OID and metadata.
20
+ */
21
+ export declare function attachAstSnapshot(patch: PatchBuilderV2, filePath: string, root: TSNode): Promise<void>;
22
+ /**
23
+ * Standalone convenience: emit the AST root anchor and attach the full AST
24
+ * snapshot as blob content in one patch.
25
+ */
26
+ export declare function emitFullAst(ctx: WarpContext, filePath: string, root: TSNode): Promise<void>;
27
+ export {};
28
+ //# sourceMappingURL=ast-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-emitter.d.ts","sourceRoot":"","sources":["../../src/warp/ast-emitter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,KAAK,MAAM,GAAG,OAAO,iBAAiB,EAAE,UAAU,CAAC;AAyDnD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,IAAI,CAeN;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -0,0 +1,90 @@
1
+ // ---------------------------------------------------------------------------
2
+ // AST snapshot attachment — keeps bulky syntax trees out of graph state
3
+ // ---------------------------------------------------------------------------
4
+ import { createHash } from "node:crypto";
5
+ import { Buffer } from "node:buffer";
6
+ import { patchGraph } from "./context.js";
7
+ const AST_SNAPSHOT_MIME = "application/vnd.graft.ast+json";
8
+ function hashId(input) {
9
+ return createHash("sha1").update(input).digest("hex").slice(0, 12);
10
+ }
11
+ function astNodeId(filePath, node) {
12
+ const hash = hashId(`${filePath}:${node.type}:${String(node.startIndex)}:${String(node.endIndex)}`);
13
+ return `ast:${filePath}:${hash}`;
14
+ }
15
+ function astSnapshotNode(node) {
16
+ const children = [];
17
+ for (let index = 0; index < node.childCount; index++) {
18
+ const child = node.child(index);
19
+ if (child !== null)
20
+ children.push(astSnapshotNode(child));
21
+ }
22
+ return {
23
+ type: node.type,
24
+ named: node.isNamed(),
25
+ startRow: node.startPosition.row,
26
+ startCol: node.startPosition.column,
27
+ endRow: node.endPosition.row,
28
+ endCol: node.endPosition.column,
29
+ ...(children.length === 0 ? { text: node.text } : {}),
30
+ ...(children.length > 0 ? { children } : {}),
31
+ };
32
+ }
33
+ function astSnapshot(filePath, root) {
34
+ return {
35
+ schema: "graft.ast-snapshot.v1",
36
+ filePath,
37
+ root: astSnapshotNode(root),
38
+ };
39
+ }
40
+ /**
41
+ * Emit a tiny AST root anchor into graph state.
42
+ *
43
+ * The full tree belongs in an attached blob, not materialized WARP graph
44
+ * state. This anchor preserves a stable graph join point for tools that need
45
+ * to know a file has an attached AST snapshot.
46
+ *
47
+ * Call this inside a `warp.patch()` callback to co-locate AST emission
48
+ * with other graph operations in the same atomic commit.
49
+ */
50
+ export function emitAstNodes(patch, filePath, root) {
51
+ const fileId = `file:${filePath}`;
52
+ const rootId = astNodeId(filePath, root);
53
+ patch.addNode(rootId);
54
+ patch.setProperty(rootId, "type", root.type);
55
+ patch.setProperty(rootId, "named", root.isNamed());
56
+ patch.setProperty(rootId, "startRow", root.startPosition.row);
57
+ patch.setProperty(rootId, "startCol", root.startPosition.column);
58
+ patch.setProperty(rootId, "endRow", root.endPosition.row);
59
+ patch.setProperty(rootId, "endCol", root.endPosition.column);
60
+ patch.setProperty(rootId, "filePath", filePath);
61
+ patch.setProperty(rootId, "summaryOnly", true);
62
+ patch.addEdge(fileId, rootId, "contains_ast");
63
+ }
64
+ /**
65
+ * Attach the complete tree-sitter CST as node content on the file node.
66
+ *
67
+ * The blob remains reachable through the WARP patch commit tree, but the
68
+ * materialized graph only carries the `_content` OID and metadata.
69
+ */
70
+ export async function attachAstSnapshot(patch, filePath, root) {
71
+ const fileId = `file:${filePath}`;
72
+ const content = Buffer.from(JSON.stringify(astSnapshot(filePath, root)), "utf8");
73
+ await patch.attachContent(fileId, content, {
74
+ mime: AST_SNAPSHOT_MIME,
75
+ });
76
+ }
77
+ /**
78
+ * Standalone convenience: emit the AST root anchor and attach the full AST
79
+ * snapshot as blob content in one patch.
80
+ */
81
+ export async function emitFullAst(ctx, filePath, root) {
82
+ await patchGraph(ctx, async (patch) => {
83
+ const fileId = `file:${filePath}`;
84
+ patch.addNode(fileId);
85
+ patch.setProperty(fileId, "path", filePath);
86
+ emitAstNodes(patch, filePath, root);
87
+ await attachAstSnapshot(patch, filePath, root);
88
+ });
89
+ }
90
+ //# sourceMappingURL=ast-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-emitter.js","sourceRoot":"","sources":["../../src/warp/ast-emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { PatchBuilderV2 } from "@git-stunts/git-warp";
2
+ import type { PathOps } from "../ports/paths.js";
3
+ type TSNode = import("web-tree-sitter").SyntaxNode;
4
+ /**
5
+ * Resolve import/export statements and emit cross-file reference edges.
6
+ *
7
+ * Call this inside a patch callback after emitAstNodes has run for a file.
8
+ * Handles: named imports, aliased imports, default imports, namespace imports,
9
+ * re-exports, and dynamic imports.
10
+ */
11
+ export declare function resolveImportEdges(patch: PatchBuilderV2, filePath: string, root: TSNode, pathOps: PathOps, knownFiles: ReadonlySet<string>): void;
12
+ export {};
13
+ //# sourceMappingURL=ast-import-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-import-resolver.d.ts","sourceRoot":"","sources":["../../src/warp/ast-import-resolver.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,KAAK,MAAM,GAAG,OAAO,iBAAiB,EAAE,UAAU,CAAC;AA0LnD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,IAAI,CAWN"}
@@ -0,0 +1,259 @@
1
+ // ---------------------------------------------------------------------------
2
+ // AST Import Resolver — adds cross-file reference edges to the WARP graph
3
+ // ---------------------------------------------------------------------------
4
+ import { createHash } from "node:crypto";
5
+ function hashId(input) {
6
+ return createHash("sha1").update(input).digest("hex").slice(0, 12);
7
+ }
8
+ function astNodeId(filePath, node) {
9
+ const hash = hashId(`${filePath}:${node.type}:${String(node.startIndex)}:${String(node.endIndex)}`);
10
+ return `ast:${filePath}:${hash}`;
11
+ }
12
+ function resolveModulePath(importSource, importingFilePath, pathOps, knownFiles) {
13
+ // Skip non-relative imports (bare specifiers like "@pkg/foo" or "node:path")
14
+ if (!importSource.startsWith(".") && !importSource.startsWith("/")) {
15
+ return null;
16
+ }
17
+ // Resolve relative to the importing file's directory
18
+ const dir = importingFilePath.includes("/")
19
+ ? importingFilePath.slice(0, importingFilePath.lastIndexOf("/"))
20
+ : "";
21
+ const raw = dir.length > 0
22
+ ? pathOps.join(dir, importSource)
23
+ : pathOps.normalize(importSource);
24
+ const sourceExtensionCandidates = compiledSpecifierSourceCandidates(raw);
25
+ // Try exact match, then with extensions
26
+ const candidates = [
27
+ raw,
28
+ ...sourceExtensionCandidates,
29
+ `${raw}.ts`,
30
+ `${raw}.tsx`,
31
+ `${raw}.js`,
32
+ `${raw}.jsx`,
33
+ `${raw}/index.ts`,
34
+ `${raw}/index.tsx`,
35
+ `${raw}/index.js`,
36
+ ];
37
+ for (const candidate of candidates) {
38
+ if (knownFiles.has(candidate)) {
39
+ return candidate;
40
+ }
41
+ }
42
+ return null;
43
+ }
44
+ function compiledSpecifierSourceCandidates(resolvedImportSource) {
45
+ const compiledToSourceExtensions = [
46
+ [".js", [".ts", ".tsx"]],
47
+ [".jsx", [".tsx", ".ts"]],
48
+ [".mjs", [".mts", ".ts"]],
49
+ [".cjs", [".cts", ".ts"]],
50
+ ];
51
+ for (const [compiledExtension, sourceExtensions] of compiledToSourceExtensions) {
52
+ if (!resolvedImportSource.endsWith(compiledExtension))
53
+ continue;
54
+ const base = resolvedImportSource.slice(0, -compiledExtension.length);
55
+ return sourceExtensions.map((sourceExtension) => `${base}${sourceExtension}`);
56
+ }
57
+ return [];
58
+ }
59
+ function symNodeId(filePath, symbolName) {
60
+ return `sym:${filePath}:${symbolName}`;
61
+ }
62
+ function emitAstAnchor(patch, filePath, node) {
63
+ const nodeId = astNodeId(filePath, node);
64
+ patch.addNode(nodeId);
65
+ patch.setProperty(nodeId, "type", node.type);
66
+ patch.setProperty(nodeId, "named", node.isNamed());
67
+ patch.setProperty(nodeId, "startRow", node.startPosition.row);
68
+ patch.setProperty(nodeId, "startCol", node.startPosition.column);
69
+ patch.setProperty(nodeId, "endRow", node.endPosition.row);
70
+ patch.setProperty(nodeId, "endCol", node.endPosition.column);
71
+ patch.setProperty(nodeId, "filePath", filePath);
72
+ return nodeId;
73
+ }
74
+ function extractImportSpecifiers(importNode, filePath) {
75
+ const results = [];
76
+ const importClause = importNode.namedChildren.find((c) => c.type === "import_clause");
77
+ if (importClause === undefined)
78
+ return results;
79
+ for (const child of importClause.namedChildren) {
80
+ switch (child.type) {
81
+ case "named_imports": {
82
+ // import { foo, bar as baz } from "..."
83
+ for (const spec of child.namedChildren) {
84
+ if (spec.type === "import_specifier") {
85
+ const nameNode = spec.childForFieldName("name");
86
+ const aliasNode = spec.childForFieldName("alias");
87
+ if (nameNode !== null) {
88
+ results.push({
89
+ specifierNodeId: astNodeId(filePath, spec),
90
+ node: spec,
91
+ importedName: nameNode.text,
92
+ localName: aliasNode !== null ? aliasNode.text : nameNode.text,
93
+ });
94
+ }
95
+ }
96
+ }
97
+ break;
98
+ }
99
+ case "identifier": {
100
+ // import foo from "..." (default import)
101
+ results.push({
102
+ specifierNodeId: astNodeId(filePath, child),
103
+ node: child,
104
+ importedName: "default",
105
+ localName: child.text,
106
+ });
107
+ break;
108
+ }
109
+ case "namespace_import": {
110
+ // import * as ns from "..."
111
+ const aliasNode = child.namedChildren.find((c) => c.type === "identifier");
112
+ if (aliasNode !== undefined) {
113
+ results.push({
114
+ specifierNodeId: astNodeId(filePath, child),
115
+ node: child,
116
+ importedName: "*",
117
+ localName: aliasNode.text,
118
+ });
119
+ }
120
+ break;
121
+ }
122
+ }
123
+ }
124
+ return results;
125
+ }
126
+ function extractExportSpecifiers(exportNode, filePath) {
127
+ const results = [];
128
+ const exportClause = exportNode.namedChildren.find((c) => c.type === "export_clause");
129
+ if (exportClause === undefined)
130
+ return results;
131
+ for (const spec of exportClause.namedChildren) {
132
+ if (spec.type === "export_specifier") {
133
+ const nameNode = spec.childForFieldName("name");
134
+ const aliasNode = spec.childForFieldName("alias");
135
+ if (nameNode !== null) {
136
+ results.push({
137
+ specifierNodeId: astNodeId(filePath, spec),
138
+ node: spec,
139
+ importedName: nameNode.text,
140
+ localName: aliasNode !== null ? aliasNode.text : nameNode.text,
141
+ });
142
+ }
143
+ }
144
+ }
145
+ return results;
146
+ }
147
+ function getModuleSource(node) {
148
+ const stringNode = node.namedChildren.find((c) => c.type === "string");
149
+ if (stringNode === undefined)
150
+ return null;
151
+ const fragment = stringNode.namedChildren.find((c) => c.type === "string_fragment");
152
+ return fragment !== undefined ? fragment.text : null;
153
+ }
154
+ /**
155
+ * Resolve import/export statements and emit cross-file reference edges.
156
+ *
157
+ * Call this inside a patch callback after emitAstNodes has run for a file.
158
+ * Handles: named imports, aliased imports, default imports, namespace imports,
159
+ * re-exports, and dynamic imports.
160
+ */
161
+ export function resolveImportEdges(patch, filePath, root, pathOps, knownFiles) {
162
+ for (const child of root.namedChildren) {
163
+ if (child.type === "import_statement") {
164
+ handleImportStatement(patch, filePath, child, pathOps, knownFiles);
165
+ }
166
+ else if (child.type === "export_statement") {
167
+ handleExportStatement(patch, filePath, child, pathOps, knownFiles);
168
+ }
169
+ }
170
+ // Dynamic imports: find call_expression nodes with `import` function
171
+ walkForDynamicImports(patch, filePath, root, pathOps, knownFiles);
172
+ }
173
+ function handleImportStatement(patch, filePath, node, pathOps, knownFiles) {
174
+ const source = getModuleSource(node);
175
+ if (source === null)
176
+ return;
177
+ const resolvedPath = resolveModulePath(source, filePath, pathOps, knownFiles);
178
+ // Emit resolves_to edge from the string node to the target file
179
+ const stringNode = node.namedChildren.find((c) => c.type === "string");
180
+ if (stringNode !== undefined && resolvedPath !== null) {
181
+ const stringId = emitAstAnchor(patch, filePath, stringNode);
182
+ patch.addEdge(stringId, `file:${resolvedPath}`, "resolves_to");
183
+ }
184
+ // Emit reference edges from specifiers to sym: nodes
185
+ const specifiers = extractImportSpecifiers(node, filePath);
186
+ for (const spec of specifiers) {
187
+ emitAstAnchor(patch, filePath, spec.node);
188
+ patch.setProperty(spec.specifierNodeId, "importedName", spec.importedName);
189
+ patch.setProperty(spec.specifierNodeId, "localName", spec.localName);
190
+ patch.setProperty(spec.specifierNodeId, "filePath", filePath);
191
+ if (resolvedPath !== null) {
192
+ if (spec.importedName === "*") {
193
+ // Namespace import references the whole file
194
+ patch.addEdge(spec.specifierNodeId, `file:${resolvedPath}`, "references");
195
+ }
196
+ else {
197
+ // Named/default import references a specific symbol
198
+ patch.addEdge(spec.specifierNodeId, symNodeId(resolvedPath, spec.importedName), "references");
199
+ }
200
+ }
201
+ }
202
+ }
203
+ function handleExportStatement(patch, filePath, node, pathOps, knownFiles) {
204
+ // Only handle re-exports (export { ... } from "...")
205
+ const source = getModuleSource(node);
206
+ if (source === null)
207
+ return;
208
+ const resolvedPath = resolveModulePath(source, filePath, pathOps, knownFiles);
209
+ const stringNode = node.namedChildren.find((c) => c.type === "string");
210
+ if (stringNode !== undefined && resolvedPath !== null) {
211
+ const stringId = emitAstAnchor(patch, filePath, stringNode);
212
+ patch.addEdge(stringId, `file:${resolvedPath}`, "resolves_to");
213
+ }
214
+ // Check for wildcard re-export: export * from "..."
215
+ const hasWildcard = node.children.some((c) => c.type === "*" || c.type === "namespace_export");
216
+ if (hasWildcard && resolvedPath !== null) {
217
+ const nodeId = emitAstAnchor(patch, filePath, node);
218
+ patch.addEdge(nodeId, `file:${resolvedPath}`, "reexports");
219
+ return;
220
+ }
221
+ // Named re-exports: export { foo, bar as baz } from "..."
222
+ const specifiers = extractExportSpecifiers(node, filePath);
223
+ for (const spec of specifiers) {
224
+ emitAstAnchor(patch, filePath, spec.node);
225
+ patch.setProperty(spec.specifierNodeId, "importedName", spec.importedName);
226
+ patch.setProperty(spec.specifierNodeId, "localName", spec.localName);
227
+ patch.setProperty(spec.specifierNodeId, "filePath", filePath);
228
+ if (resolvedPath !== null) {
229
+ patch.addEdge(spec.specifierNodeId, symNodeId(resolvedPath, spec.importedName), "references");
230
+ }
231
+ }
232
+ }
233
+ function walkForDynamicImports(patch, filePath, node, pathOps, knownFiles) {
234
+ if (node.type === "call_expression") {
235
+ const funcNode = node.namedChildren[0];
236
+ if (funcNode?.type === "import") {
237
+ // Dynamic import: import("./foo")
238
+ const args = node.namedChildren.find((c) => c.type === "arguments");
239
+ if (args !== undefined) {
240
+ const stringArg = args.namedChildren.find((c) => c.type === "string");
241
+ if (stringArg !== undefined) {
242
+ const fragment = stringArg.namedChildren.find((c) => c.type === "string_fragment");
243
+ if (fragment !== undefined) {
244
+ const resolved = resolveModulePath(fragment.text, filePath, pathOps, knownFiles);
245
+ if (resolved !== null) {
246
+ const stringId = emitAstAnchor(patch, filePath, stringArg);
247
+ patch.addEdge(stringId, `file:${resolved}`, "resolves_to");
248
+ }
249
+ }
250
+ }
251
+ }
252
+ }
253
+ }
254
+ // Recurse
255
+ for (const child of node.namedChildren) {
256
+ walkForDynamicImports(patch, filePath, child, pathOps, knownFiles);
257
+ }
258
+ }
259
+ //# sourceMappingURL=ast-import-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-import-resolver.js","sourceRoot":"","sources":["../../src/warp/ast-import-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { GitClient } from "../ports/git.js";
2
+ export declare function getCommitMeta(gitClient: GitClient, sha: string, cwd: string): Promise<{
3
+ message: string;
4
+ author: string;
5
+ email: string;
6
+ timestamp: string;
7
+ }>;
8
+ //# sourceMappingURL=commit-meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-meta.d.ts","sourceRoot":"","sources":["../../src/warp/commit-meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAUjD,wBAAsB,aAAa,CACjC,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAIhF"}
@@ -0,0 +1,13 @@
1
+ async function git(gitClient, cwd, args) {
2
+ const result = await gitClient.run({ cwd, args });
3
+ if (result.error !== undefined || result.status !== 0) {
4
+ throw result.error ?? new Error(result.stderr.trim() || `git exited with status ${String(result.status)}`);
5
+ }
6
+ return result.stdout;
7
+ }
8
+ export async function getCommitMeta(gitClient, sha, cwd) {
9
+ const output = await git(gitClient, cwd, ["log", "-1", "--format=%s%n%aN%n%aE%n%aI", sha]);
10
+ const lines = output.trim().split("\n");
11
+ return { message: lines[0] ?? "", author: lines[1] ?? "", email: lines[2] ?? "", timestamp: lines[3] ?? "" };
12
+ }
13
+ //# sourceMappingURL=commit-meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-meta.js","sourceRoot":"","sources":["../../src/warp/commit-meta.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,CAAC,SAAoB,EAAE,GAAW,EAAE,IAAuB;IAC3E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,MAAM,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,0BAA0B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAoB,EACpB,GAAW,EACX,GAAW;IAEX,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,4BAA4B,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3F,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AAC/G,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type WarpApp from "@git-stunts/git-warp";
2
+ import type { Lens, Observer, ObserverOptions, PatchBuilderV2 } from "@git-stunts/git-warp";
3
+ export interface WarpContext {
4
+ readonly app: WarpApp;
5
+ readonly strandId: string | null;
6
+ }
7
+ export declare function patchGraph(ctx: WarpContext, build: (patch: PatchBuilderV2) => void | Promise<void>): Promise<string>;
8
+ export declare function observeGraph(ctx: WarpContext, lens: Lens, options?: ObserverOptions): Promise<Observer>;
9
+ export declare function materializeGraph(ctx: WarpContext): Promise<void>;
10
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/warp/context.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE5F,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAWD,wBAAsB,UAAU,CAC9B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACrD,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,IAAI,CAAC,CAGf"}
@@ -0,0 +1,26 @@
1
+ // ---------------------------------------------------------------------------
2
+ // WarpContext — session-scoped DI bag for all graph access.
3
+ //
4
+ // Every graph interaction (reads AND writes) routes through this context.
5
+ // A strand scopes the agent's entire worldview — strand-local writes are
6
+ // invisible from live reads, so routing must be uniform.
7
+ // ---------------------------------------------------------------------------
8
+ function assertNoStrand(ctx) {
9
+ if (ctx.strandId !== null) {
10
+ throw new Error(`Strand isolation not yet supported (strandId: ${ctx.strandId}). ` +
11
+ `git-warp strand merging is not ready.`);
12
+ }
13
+ }
14
+ export async function patchGraph(ctx, build) {
15
+ assertNoStrand(ctx);
16
+ return ctx.app.patch(build);
17
+ }
18
+ export async function observeGraph(ctx, lens, options) {
19
+ assertNoStrand(ctx);
20
+ return ctx.app.observer(lens, options);
21
+ }
22
+ export async function materializeGraph(ctx) {
23
+ assertNoStrand(ctx);
24
+ await ctx.app.core().materialize();
25
+ }
26
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/warp/context.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4DAA4D;AAC5D,EAAE;AACF,0EAA0E;AAC1E,yEAAyE;AACzE,yDAAyD;AACzD,8EAA8E;AAU9E,SAAS,cAAc,CAAC,GAAgB;IACtC,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,iDAAiD,GAAG,CAAC,QAAQ,KAAK;YAClE,uCAAuC,CACxC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAgB,EAChB,KAAsD;IAEtD,cAAc,CAAC,GAAG,CAAC,CAAC;IACpB,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAgB,EAChB,IAAU,EACV,OAAyB;IAEzB,cAAc,CAAC,GAAG,CAAC,CAAC;IACpB,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAgB;IAEhB,cAAc,CAAC,GAAG,CAAC,CAAC;IACpB,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACrC,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Dead Symbol Detection — find symbols removed and never re-added.
3
+ *
4
+ * A symbol is "dead" when it existed at one tick but is absent at a
5
+ * later tick and never reappears. This identifies cleanup candidates,
6
+ * tracks deprecations, and measures API surface shrinkage.
7
+ *
8
+ * Uses the WARP graph's temporal observer to compare symbol snapshots
9
+ * across ticks. Walks commits in tick order, detects removals by
10
+ * diff, then filters out any symbol that reappears later.
11
+ */
12
+ import { type WarpContext } from "./context.js";
13
+ /** A symbol that was removed and never re-added. */
14
+ export interface DeadSymbol {
15
+ /** The symbol name (e.g. "myFunction"). */
16
+ readonly name: string;
17
+ /** The kind of symbol (e.g. "function", "class"). */
18
+ readonly kind: string;
19
+ /** The file path the symbol belonged to. */
20
+ readonly filePath: string;
21
+ /** Whether the symbol was exported. */
22
+ readonly exported: boolean;
23
+ /** The commit SHA that removed the symbol. */
24
+ readonly removedInCommit: string;
25
+ }
26
+ /** Options for the dead-symbol query. */
27
+ export interface DeadSymbolOptions {
28
+ /** Limit the search to the last N commits (by tick order). */
29
+ readonly maxCommits?: number | undefined;
30
+ }
31
+ /**
32
+ * Find symbols that were removed and never re-added.
33
+ *
34
+ * For each commit in tick order, compares the sym-node set at the previous
35
+ * indexed commit tick vs this commit's tick to find removals (present before,
36
+ * absent after). A single Git commit can span multiple WARP Lamport ticks
37
+ * because lazy indexing writes one bounded patch per file.
38
+ */
39
+ export declare function findDeadSymbols(ctx: WarpContext, options?: DeadSymbolOptions): Promise<DeadSymbol[]>;
40
+ //# sourceMappingURL=dead-symbols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dead-symbols.d.ts","sourceRoot":"","sources":["../../src/warp/dead-symbols.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAM9D,oDAAoD;AACpD,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAyBD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,WAAW,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,UAAU,EAAE,CAAC,CAoGvB"}