@flyingrobots/graft 0.7.0 → 0.8.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 (561) hide show
  1. package/CHANGELOG.md +153 -0
  2. package/README.md +33 -17
  3. package/bin/graft.js +26 -26
  4. package/dist/api/index.d.ts +3 -0
  5. package/dist/api/index.d.ts.map +1 -1
  6. package/dist/api/index.js +2 -0
  7. package/dist/api/index.js.map +1 -1
  8. package/dist/cli/cli-error.d.ts.map +1 -1
  9. package/dist/cli/cli-error.js +22 -3
  10. package/dist/cli/cli-error.js.map +1 -1
  11. package/dist/cli/command-parser.d.ts.map +1 -1
  12. package/dist/cli/command-parser.js +62 -6
  13. package/dist/cli/command-parser.js.map +1 -1
  14. package/dist/cli/dead-symbols-render.d.ts +2 -0
  15. package/dist/cli/dead-symbols-render.d.ts.map +1 -0
  16. package/dist/cli/dead-symbols-render.js +23 -0
  17. package/dist/cli/dead-symbols-render.js.map +1 -0
  18. package/dist/cli/doctor-render.d.ts +2 -0
  19. package/dist/cli/doctor-render.d.ts.map +1 -0
  20. package/dist/cli/doctor-render.js +80 -0
  21. package/dist/cli/doctor-render.js.map +1 -0
  22. package/dist/cli/entrypoint.d.ts +1 -0
  23. package/dist/cli/entrypoint.d.ts.map +1 -1
  24. package/dist/cli/entrypoint.js +1 -0
  25. package/dist/cli/entrypoint.js.map +1 -1
  26. package/dist/cli/git-graft-enhance-model.d.ts +33 -3
  27. package/dist/cli/git-graft-enhance-model.d.ts.map +1 -1
  28. package/dist/cli/git-graft-enhance-model.js +38 -0
  29. package/dist/cli/git-graft-enhance-model.js.map +1 -1
  30. package/dist/cli/git-graft-enhance-render.d.ts.map +1 -1
  31. package/dist/cli/git-graft-enhance-render.js +13 -0
  32. package/dist/cli/git-graft-enhance-render.js.map +1 -1
  33. package/dist/cli/git-graft-enhance.d.ts.map +1 -1
  34. package/dist/cli/git-graft-enhance.js +44 -1
  35. package/dist/cli/git-graft-enhance.js.map +1 -1
  36. package/dist/cli/index-cmd.d.ts +1 -0
  37. package/dist/cli/index-cmd.d.ts.map +1 -1
  38. package/dist/cli/index-cmd.js +3 -0
  39. package/dist/cli/index-cmd.js.map +1 -1
  40. package/dist/cli/init-client-config.d.ts.map +1 -1
  41. package/dist/cli/init-client-config.js +40 -4
  42. package/dist/cli/init-client-config.js.map +1 -1
  43. package/dist/cli/init-model.js +2 -2
  44. package/dist/cli/init-model.js.map +1 -1
  45. package/dist/cli/json-document.d.ts +1 -0
  46. package/dist/cli/json-document.d.ts.map +1 -1
  47. package/dist/cli/json-document.js +3 -0
  48. package/dist/cli/json-document.js.map +1 -1
  49. package/dist/cli/main.d.ts +2 -0
  50. package/dist/cli/main.d.ts.map +1 -1
  51. package/dist/cli/main.js +24 -2
  52. package/dist/cli/main.js.map +1 -1
  53. package/dist/cli/peer-command.d.ts.map +1 -1
  54. package/dist/cli/peer-command.js +25 -0
  55. package/dist/cli/peer-command.js.map +1 -1
  56. package/dist/cli/review-cooldown.d.ts +15 -0
  57. package/dist/cli/review-cooldown.d.ts.map +1 -0
  58. package/dist/cli/review-cooldown.js +136 -0
  59. package/dist/cli/review-cooldown.js.map +1 -0
  60. package/dist/cli/structural-blame-render.d.ts +2 -0
  61. package/dist/cli/structural-blame-render.d.ts.map +1 -0
  62. package/dist/cli/structural-blame-render.js +39 -0
  63. package/dist/cli/structural-blame-render.js.map +1 -0
  64. package/dist/cli/structural-review-render.d.ts +2 -0
  65. package/dist/cli/structural-review-render.d.ts.map +1 -0
  66. package/dist/cli/structural-review-render.js +56 -0
  67. package/dist/cli/structural-review-render.js.map +1 -0
  68. package/dist/cli/structural-test-coverage-render.d.ts +2 -0
  69. package/dist/cli/structural-test-coverage-render.d.ts.map +1 -0
  70. package/dist/cli/structural-test-coverage-render.js +46 -0
  71. package/dist/cli/structural-test-coverage-render.js.map +1 -0
  72. package/dist/contracts/capabilities.d.ts +9 -6
  73. package/dist/contracts/capabilities.d.ts.map +1 -1
  74. package/dist/contracts/capabilities.js +40 -1
  75. package/dist/contracts/capabilities.js.map +1 -1
  76. package/dist/contracts/causal-ontology.d.ts +17 -17
  77. package/dist/contracts/output-schema-cli.d.ts +103 -41
  78. package/dist/contracts/output-schema-cli.d.ts.map +1 -1
  79. package/dist/contracts/output-schema-cli.js +29 -0
  80. package/dist/contracts/output-schema-cli.js.map +1 -1
  81. package/dist/contracts/output-schema-fragments.d.ts +76 -76
  82. package/dist/contracts/output-schema-mcp.d.ts +87 -62
  83. package/dist/contracts/output-schema-mcp.d.ts.map +1 -1
  84. package/dist/contracts/output-schema-mcp.js +43 -21
  85. package/dist/contracts/output-schema-mcp.js.map +1 -1
  86. package/dist/contracts/output-schema-meta.d.ts +2 -2
  87. package/dist/contracts/output-schema-meta.d.ts.map +1 -1
  88. package/dist/contracts/output-schemas.d.ts +7 -7
  89. package/dist/contracts/output-schemas.d.ts.map +1 -1
  90. package/dist/contracts/output-schemas.js +69 -1
  91. package/dist/contracts/output-schemas.js.map +1 -1
  92. package/dist/git/version-guard.d.ts +17 -0
  93. package/dist/git/version-guard.d.ts.map +1 -0
  94. package/dist/git/version-guard.js +51 -0
  95. package/dist/git/version-guard.js.map +1 -0
  96. package/dist/hooks/posttooluse-read.js +3 -3
  97. package/dist/hooks/posttooluse-read.js.map +1 -1
  98. package/dist/hooks/pretooluse-read.js +1 -1
  99. package/dist/hooks/pretooluse-read.js.map +1 -1
  100. package/dist/mcp/burden.d.ts.map +1 -1
  101. package/dist/mcp/burden.js +2 -0
  102. package/dist/mcp/burden.js.map +1 -1
  103. package/dist/mcp/daemon-server.d.ts.map +1 -1
  104. package/dist/mcp/daemon-server.js +2 -0
  105. package/dist/mcp/daemon-server.js.map +1 -1
  106. package/dist/mcp/daemon-worker-child-pool.d.ts +2 -0
  107. package/dist/mcp/daemon-worker-child-pool.d.ts.map +1 -1
  108. package/dist/mcp/daemon-worker-child-pool.js +10 -3
  109. package/dist/mcp/daemon-worker-child-pool.js.map +1 -1
  110. package/dist/mcp/daemon-worker-pool.d.ts +1 -1
  111. package/dist/mcp/daemon-worker-pool.d.ts.map +1 -1
  112. package/dist/mcp/daemon-worker-pool.js +1 -1
  113. package/dist/mcp/daemon-worker-pool.js.map +1 -1
  114. package/dist/mcp/persisted-local-history-graph.d.ts.map +1 -1
  115. package/dist/mcp/persisted-local-history-graph.js +2 -1
  116. package/dist/mcp/persisted-local-history-graph.js.map +1 -1
  117. package/dist/mcp/persisted-local-history.d.ts +5 -5
  118. package/dist/mcp/repo-tool-job.d.ts.map +1 -1
  119. package/dist/mcp/repo-tool-job.js +2 -0
  120. package/dist/mcp/repo-tool-job.js.map +1 -1
  121. package/dist/mcp/server-invocation.d.ts.map +1 -1
  122. package/dist/mcp/server-invocation.js +206 -147
  123. package/dist/mcp/server-invocation.js.map +1 -1
  124. package/dist/mcp/server.d.ts.map +1 -1
  125. package/dist/mcp/server.js +184 -116
  126. package/dist/mcp/server.js.map +1 -1
  127. package/dist/mcp/stdio-server.d.ts.map +1 -1
  128. package/dist/mcp/stdio-server.js +2 -0
  129. package/dist/mcp/stdio-server.js.map +1 -1
  130. package/dist/mcp/tool-registry.d.ts.map +1 -1
  131. package/dist/mcp/tool-registry.js +4 -0
  132. package/dist/mcp/tool-registry.js.map +1 -1
  133. package/dist/mcp/tools/changed-since.d.ts.map +1 -1
  134. package/dist/mcp/tools/changed-since.js +10 -3
  135. package/dist/mcp/tools/changed-since.js.map +1 -1
  136. package/dist/mcp/tools/dead-symbols.d.ts +3 -0
  137. package/dist/mcp/tools/dead-symbols.d.ts.map +1 -0
  138. package/dist/mcp/tools/dead-symbols.js +33 -0
  139. package/dist/mcp/tools/dead-symbols.js.map +1 -0
  140. package/dist/mcp/tools/map.d.ts.map +1 -1
  141. package/dist/mcp/tools/map.js +2 -0
  142. package/dist/mcp/tools/map.js.map +1 -1
  143. package/dist/mcp/tools/precision-warp.d.ts.map +1 -1
  144. package/dist/mcp/tools/precision-warp.js +2 -6
  145. package/dist/mcp/tools/precision-warp.js.map +1 -1
  146. package/dist/mcp/tools/refactor-difficulty.d.ts.map +1 -1
  147. package/dist/mcp/tools/refactor-difficulty.js +2 -0
  148. package/dist/mcp/tools/refactor-difficulty.js.map +1 -1
  149. package/dist/mcp/tools/safe-read.d.ts.map +1 -1
  150. package/dist/mcp/tools/safe-read.js +10 -105
  151. package/dist/mcp/tools/safe-read.js.map +1 -1
  152. package/dist/mcp/tools/structural-test-coverage.d.ts +3 -0
  153. package/dist/mcp/tools/structural-test-coverage.d.ts.map +1 -0
  154. package/dist/mcp/tools/structural-test-coverage.js +35 -0
  155. package/dist/mcp/tools/structural-test-coverage.js.map +1 -0
  156. package/dist/operations/cached-file.d.ts +6 -2
  157. package/dist/operations/cached-file.d.ts.map +1 -1
  158. package/dist/operations/cached-file.js +30 -6
  159. package/dist/operations/cached-file.js.map +1 -1
  160. package/dist/operations/export-surface-diff.d.ts.map +1 -1
  161. package/dist/operations/export-surface-diff.js +2 -0
  162. package/dist/operations/export-surface-diff.js.map +1 -1
  163. package/dist/operations/file-outline.js +2 -2
  164. package/dist/operations/file-outline.js.map +1 -1
  165. package/dist/operations/graft-diff.d.ts.map +1 -1
  166. package/dist/operations/graft-diff.js +2 -0
  167. package/dist/operations/graft-diff.js.map +1 -1
  168. package/dist/operations/projection-safety.d.ts.map +1 -1
  169. package/dist/operations/projection-safety.js +2 -0
  170. package/dist/operations/projection-safety.js.map +1 -1
  171. package/dist/operations/repo-workspace.d.ts.map +1 -1
  172. package/dist/operations/repo-workspace.js +26 -8
  173. package/dist/operations/repo-workspace.js.map +1 -1
  174. package/dist/operations/review-cooldown-status.d.ts +27 -0
  175. package/dist/operations/review-cooldown-status.d.ts.map +1 -0
  176. package/dist/operations/review-cooldown-status.js +115 -0
  177. package/dist/operations/review-cooldown-status.js.map +1 -0
  178. package/dist/operations/safe-read.js +2 -2
  179. package/dist/operations/safe-read.js.map +1 -1
  180. package/dist/operations/sludge-detector.d.ts.map +1 -1
  181. package/dist/operations/sludge-detector.js +2 -1
  182. package/dist/operations/sludge-detector.js.map +1 -1
  183. package/dist/operations/structural-review.js +8 -8
  184. package/dist/operations/structural-review.js.map +1 -1
  185. package/dist/operations/structural-test-coverage-map.d.ts +44 -0
  186. package/dist/operations/structural-test-coverage-map.d.ts.map +1 -0
  187. package/dist/operations/structural-test-coverage-map.js +331 -0
  188. package/dist/operations/structural-test-coverage-map.js.map +1 -0
  189. package/dist/operations/structured-buffer-compare.d.ts.map +1 -1
  190. package/dist/operations/structured-buffer-compare.js +4 -1
  191. package/dist/operations/structured-buffer-compare.js.map +1 -1
  192. package/dist/operations/structured-buffer-model.d.ts +15 -13
  193. package/dist/operations/structured-buffer-model.d.ts.map +1 -1
  194. package/dist/operations/structured-buffer-model.js +24 -5
  195. package/dist/operations/structured-buffer-model.js.map +1 -1
  196. package/dist/operations/structured-buffer-query.d.ts.map +1 -1
  197. package/dist/operations/structured-buffer-query.js +21 -12
  198. package/dist/operations/structured-buffer-query.js.map +1 -1
  199. package/dist/parser/extractors/common.d.ts +16 -0
  200. package/dist/parser/extractors/common.d.ts.map +1 -0
  201. package/dist/parser/extractors/common.js +23 -0
  202. package/dist/parser/extractors/common.js.map +1 -0
  203. package/dist/parser/extractors/go.d.ts +18 -0
  204. package/dist/parser/extractors/go.d.ts.map +1 -0
  205. package/dist/parser/extractors/go.js +200 -0
  206. package/dist/parser/extractors/go.js.map +1 -0
  207. package/dist/parser/extractors/graphql.d.ts +26 -0
  208. package/dist/parser/extractors/graphql.d.ts.map +1 -0
  209. package/dist/parser/extractors/graphql.js +239 -0
  210. package/dist/parser/extractors/graphql.js.map +1 -0
  211. package/dist/parser/extractors/index.d.ts +4 -0
  212. package/dist/parser/extractors/index.d.ts.map +1 -0
  213. package/dist/parser/extractors/index.js +26 -0
  214. package/dist/parser/extractors/index.js.map +1 -0
  215. package/dist/parser/extractors/json.d.ts +10 -0
  216. package/dist/parser/extractors/json.d.ts.map +1 -0
  217. package/dist/parser/extractors/json.js +75 -0
  218. package/dist/parser/extractors/json.js.map +1 -0
  219. package/dist/parser/extractors/python.d.ts +16 -0
  220. package/dist/parser/extractors/python.d.ts.map +1 -0
  221. package/dist/parser/extractors/python.js +145 -0
  222. package/dist/parser/extractors/python.js.map +1 -0
  223. package/dist/parser/extractors/rust.d.ts +12 -0
  224. package/dist/parser/extractors/rust.d.ts.map +1 -0
  225. package/dist/parser/extractors/rust.js +122 -0
  226. package/dist/parser/extractors/rust.js.map +1 -0
  227. package/dist/parser/extractors/toml.d.ts +10 -0
  228. package/dist/parser/extractors/toml.d.ts.map +1 -0
  229. package/dist/parser/extractors/toml.js +74 -0
  230. package/dist/parser/extractors/toml.js.map +1 -0
  231. package/dist/parser/extractors/typescript.d.ts +13 -0
  232. package/dist/parser/extractors/typescript.d.ts.map +1 -0
  233. package/dist/parser/extractors/typescript.js +179 -0
  234. package/dist/parser/extractors/typescript.js.map +1 -0
  235. package/dist/parser/extractors/yaml.d.ts +13 -0
  236. package/dist/parser/extractors/yaml.d.ts.map +1 -0
  237. package/dist/parser/extractors/yaml.js +93 -0
  238. package/dist/parser/extractors/yaml.js.map +1 -0
  239. package/dist/parser/lang.d.ts +2 -2
  240. package/dist/parser/lang.d.ts.map +1 -1
  241. package/dist/parser/lang.js +19 -1
  242. package/dist/parser/lang.js.map +1 -1
  243. package/dist/parser/outline.d.ts +4 -0
  244. package/dist/parser/outline.d.ts.map +1 -1
  245. package/dist/parser/outline.js +32 -221
  246. package/dist/parser/outline.js.map +1 -1
  247. package/dist/parser/runtime.d.ts +7 -0
  248. package/dist/parser/runtime.d.ts.map +1 -1
  249. package/dist/parser/runtime.js +99 -10
  250. package/dist/parser/runtime.js.map +1 -1
  251. package/dist/parser/types.d.ts +1 -1
  252. package/dist/parser/types.d.ts.map +1 -1
  253. package/dist/parser/types.js.map +1 -1
  254. package/dist/ports/provenance-timeline.d.ts +10 -0
  255. package/dist/ports/provenance-timeline.d.ts.map +1 -0
  256. package/dist/ports/provenance-timeline.js +17 -0
  257. package/dist/ports/provenance-timeline.js.map +1 -0
  258. package/dist/ports/semantic-enrichment.d.ts +47 -0
  259. package/dist/ports/semantic-enrichment.d.ts.map +1 -0
  260. package/dist/ports/semantic-enrichment.js +2 -0
  261. package/dist/ports/semantic-enrichment.js.map +1 -0
  262. package/dist/version.d.ts.map +1 -1
  263. package/dist/version.js +3 -1
  264. package/dist/version.js.map +1 -1
  265. package/dist/warp/ast-import-resolver.d.ts.map +1 -1
  266. package/dist/warp/ast-import-resolver.js +2 -1
  267. package/dist/warp/ast-import-resolver.js.map +1 -1
  268. package/dist/warp/dead-symbols.d.ts.map +1 -1
  269. package/dist/warp/dead-symbols.js +4 -7
  270. package/dist/warp/dead-symbols.js.map +1 -1
  271. package/dist/warp/index-head.d.ts +4 -0
  272. package/dist/warp/index-head.d.ts.map +1 -1
  273. package/dist/warp/index-head.js +255 -22
  274. package/dist/warp/index-head.js.map +1 -1
  275. package/dist/warp/observers.d.ts.map +1 -1
  276. package/dist/warp/observers.js +3 -2
  277. package/dist/warp/observers.js.map +1 -1
  278. package/dist/warp/refactor-difficulty.d.ts.map +1 -1
  279. package/dist/warp/refactor-difficulty.js +4 -9
  280. package/dist/warp/refactor-difficulty.js.map +1 -1
  281. package/dist/warp/references.d.ts.map +1 -1
  282. package/dist/warp/references.js +2 -1
  283. package/dist/warp/references.js.map +1 -1
  284. package/dist/warp/semantic-enrichment.d.ts +14 -0
  285. package/dist/warp/semantic-enrichment.d.ts.map +1 -0
  286. package/dist/warp/semantic-enrichment.js +55 -0
  287. package/dist/warp/semantic-enrichment.js.map +1 -0
  288. package/dist/warp/structural-queries.d.ts.map +1 -1
  289. package/dist/warp/structural-queries.js +7 -14
  290. package/dist/warp/structural-queries.js.map +1 -1
  291. package/dist/warp/sym-id-codec.d.ts +14 -0
  292. package/dist/warp/sym-id-codec.d.ts.map +1 -0
  293. package/dist/warp/sym-id-codec.js +47 -0
  294. package/dist/warp/sym-id-codec.js.map +1 -0
  295. package/dist/warp/symbol-timeline.d.ts.map +1 -1
  296. package/dist/warp/symbol-timeline.js +6 -14
  297. package/dist/warp/symbol-timeline.js.map +1 -1
  298. package/dist/warp/warp-structural-churn.d.ts.map +1 -1
  299. package/dist/warp/warp-structural-churn.js +6 -10
  300. package/dist/warp/warp-structural-churn.js.map +1 -1
  301. package/dist/warp/warp-structural-log.d.ts.map +1 -1
  302. package/dist/warp/warp-structural-log.js +8 -10
  303. package/dist/warp/warp-structural-log.js.map +1 -1
  304. package/docs/CLI.md +63 -5
  305. package/docs/MCP.md +2 -1
  306. package/docs/SETUP.md +11 -7
  307. package/package.json +12 -4
  308. package/src/adapters/canonical-json.ts +0 -56
  309. package/src/adapters/json-text-decoder.ts +0 -11
  310. package/src/adapters/node-fs.ts +0 -43
  311. package/src/adapters/node-git.ts +0 -47
  312. package/src/adapters/node-paths.ts +0 -35
  313. package/src/adapters/node-process-runner.ts +0 -27
  314. package/src/adapters/repo-paths.ts +0 -63
  315. package/src/adapters/rotating-ndjson-log.ts +0 -66
  316. package/src/api/index.ts +0 -107
  317. package/src/api/repo-local-graft.ts +0 -21
  318. package/src/api/repo-workspace.ts +0 -34
  319. package/src/api/tool-bridge.ts +0 -22
  320. package/src/cli/activity-render.ts +0 -112
  321. package/src/cli/cli-error.ts +0 -192
  322. package/src/cli/command-parser.ts +0 -484
  323. package/src/cli/daemon-status-model.ts +0 -238
  324. package/src/cli/daemon-status-render.ts +0 -102
  325. package/src/cli/daemon-status.ts +0 -100
  326. package/src/cli/entrypoint.ts +0 -18
  327. package/src/cli/git-graft-enhance-model.ts +0 -131
  328. package/src/cli/git-graft-enhance-render.ts +0 -33
  329. package/src/cli/git-graft-enhance.ts +0 -54
  330. package/src/cli/index-cmd.ts +0 -90
  331. package/src/cli/index-model.ts +0 -75
  332. package/src/cli/init-bootstrap.ts +0 -47
  333. package/src/cli/init-client-config.ts +0 -428
  334. package/src/cli/init-model.ts +0 -284
  335. package/src/cli/init-render.ts +0 -54
  336. package/src/cli/init-target-hooks.ts +0 -93
  337. package/src/cli/init.ts +0 -124
  338. package/src/cli/json-document.ts +0 -155
  339. package/src/cli/local-history-dag-model.ts +0 -437
  340. package/src/cli/local-history-dag-render.ts +0 -133
  341. package/src/cli/local-history-dag.ts +0 -103
  342. package/src/cli/main.ts +0 -197
  343. package/src/cli/migrate-local-history.ts +0 -119
  344. package/src/cli/peer-command.ts +0 -60
  345. package/src/contracts/capabilities.ts +0 -540
  346. package/src/contracts/causal-ontology.ts +0 -627
  347. package/src/contracts/causal-surface-next-action.ts +0 -18
  348. package/src/contracts/json-object.ts +0 -18
  349. package/src/contracts/mcp-runtime.ts +0 -16
  350. package/src/contracts/output-schema-cli.ts +0 -103
  351. package/src/contracts/output-schema-fragments.ts +0 -881
  352. package/src/contracts/output-schema-mcp.ts +0 -501
  353. package/src/contracts/output-schema-meta.ts +0 -119
  354. package/src/contracts/output-schemas.ts +0 -1524
  355. package/src/git/diff.ts +0 -161
  356. package/src/git/target-git-hook-bootstrap.ts +0 -56
  357. package/src/guards/stream-boundary.ts +0 -110
  358. package/src/hooks/posttooluse-read.ts +0 -54
  359. package/src/hooks/pretooluse-read.ts +0 -52
  360. package/src/hooks/read-governor.ts +0 -95
  361. package/src/hooks/read-messages.ts +0 -53
  362. package/src/hooks/shared.ts +0 -168
  363. package/src/index.ts +0 -1
  364. package/src/mcp/burden.ts +0 -132
  365. package/src/mcp/cache.ts +0 -7
  366. package/src/mcp/cached-file.ts +0 -1
  367. package/src/mcp/context.ts +0 -150
  368. package/src/mcp/control-plane/authz-storage.ts +0 -129
  369. package/src/mcp/control-plane/session-registry.ts +0 -115
  370. package/src/mcp/control-plane/status-projection.ts +0 -76
  371. package/src/mcp/control-plane/types.ts +0 -144
  372. package/src/mcp/daemon-bootstrap.ts +0 -100
  373. package/src/mcp/daemon-control-plane.ts +0 -310
  374. package/src/mcp/daemon-job-scheduler.ts +0 -279
  375. package/src/mcp/daemon-repos.ts +0 -99
  376. package/src/mcp/daemon-server.ts +0 -172
  377. package/src/mcp/daemon-session-host.ts +0 -234
  378. package/src/mcp/daemon-stdio-bridge.ts +0 -262
  379. package/src/mcp/daemon-worker-child-pool.ts +0 -213
  380. package/src/mcp/daemon-worker-inline-pool.ts +0 -46
  381. package/src/mcp/daemon-worker-pool.ts +0 -7
  382. package/src/mcp/daemon-worker-process.ts +0 -52
  383. package/src/mcp/daemon-worker-types.ts +0 -66
  384. package/src/mcp/metrics.ts +0 -176
  385. package/src/mcp/monitor-health.ts +0 -83
  386. package/src/mcp/monitor-persistence.ts +0 -54
  387. package/src/mcp/monitor-tick-job.ts +0 -153
  388. package/src/mcp/monitor-types.ts +0 -103
  389. package/src/mcp/persisted-local-history-graph.ts +0 -592
  390. package/src/mcp/persisted-local-history-policy.ts +0 -501
  391. package/src/mcp/persisted-local-history-views.ts +0 -250
  392. package/src/mcp/persisted-local-history.ts +0 -1621
  393. package/src/mcp/persistent-monitor-runtime.ts +0 -482
  394. package/src/mcp/policy.ts +0 -75
  395. package/src/mcp/receipt.ts +0 -201
  396. package/src/mcp/repo-concurrency.ts +0 -392
  397. package/src/mcp/repo-overview/filter.ts +0 -44
  398. package/src/mcp/repo-overview/types.ts +0 -63
  399. package/src/mcp/repo-overview/view-projection.ts +0 -90
  400. package/src/mcp/repo-state-git.ts +0 -247
  401. package/src/mcp/repo-state-observation.ts +0 -203
  402. package/src/mcp/repo-state-transition.ts +0 -151
  403. package/src/mcp/repo-state-types.ts +0 -107
  404. package/src/mcp/repo-state.ts +0 -146
  405. package/src/mcp/repo-tool-job.ts +0 -102
  406. package/src/mcp/repo-tool-worker-context.ts +0 -215
  407. package/src/mcp/repo-workspace.ts +0 -21
  408. package/src/mcp/run-capture-config.ts +0 -33
  409. package/src/mcp/runtime-causal-context.ts +0 -72
  410. package/src/mcp/runtime-observability.ts +0 -217
  411. package/src/mcp/runtime-staged-target.ts +0 -161
  412. package/src/mcp/runtime-workspace-overlay.ts +0 -255
  413. package/src/mcp/secret-scrub.ts +0 -89
  414. package/src/mcp/semantic-transition-guidance.ts +0 -60
  415. package/src/mcp/semantic-transition-summary.ts +0 -130
  416. package/src/mcp/server-context.ts +0 -236
  417. package/src/mcp/server-invocation.ts +0 -388
  418. package/src/mcp/server-tool-access.ts +0 -148
  419. package/src/mcp/server.ts +0 -270
  420. package/src/mcp/stdio-server.ts +0 -26
  421. package/src/mcp/stdio.ts +0 -3
  422. package/src/mcp/tool-registry.ts +0 -98
  423. package/src/mcp/tools/activity-view.ts +0 -325
  424. package/src/mcp/tools/budget.ts +0 -23
  425. package/src/mcp/tools/causal-attach.ts +0 -67
  426. package/src/mcp/tools/causal-status.ts +0 -58
  427. package/src/mcp/tools/changed-since.ts +0 -71
  428. package/src/mcp/tools/code-find.ts +0 -192
  429. package/src/mcp/tools/code-refs.ts +0 -470
  430. package/src/mcp/tools/code-show.ts +0 -289
  431. package/src/mcp/tools/daemon-monitors.ts +0 -14
  432. package/src/mcp/tools/daemon-repos.ts +0 -22
  433. package/src/mcp/tools/daemon-sessions.ts +0 -14
  434. package/src/mcp/tools/daemon-status.ts +0 -12
  435. package/src/mcp/tools/diagnostic-models.ts +0 -97
  436. package/src/mcp/tools/doctor.ts +0 -83
  437. package/src/mcp/tools/explain.ts +0 -84
  438. package/src/mcp/tools/export-surface-diff.ts +0 -26
  439. package/src/mcp/tools/file-outline.ts +0 -67
  440. package/src/mcp/tools/git-files.ts +0 -73
  441. package/src/mcp/tools/graft-diff.ts +0 -35
  442. package/src/mcp/tools/graft-edit.ts +0 -276
  443. package/src/mcp/tools/knowledge-map.ts +0 -34
  444. package/src/mcp/tools/map-collector.ts +0 -338
  445. package/src/mcp/tools/map.ts +0 -185
  446. package/src/mcp/tools/monitor-nudge.ts +0 -19
  447. package/src/mcp/tools/monitor-pause.ts +0 -18
  448. package/src/mcp/tools/monitor-resume.ts +0 -18
  449. package/src/mcp/tools/monitor-start.ts +0 -20
  450. package/src/mcp/tools/monitor-stop.ts +0 -18
  451. package/src/mcp/tools/precision-live.ts +0 -158
  452. package/src/mcp/tools/precision-match.ts +0 -54
  453. package/src/mcp/tools/precision-paths.ts +0 -59
  454. package/src/mcp/tools/precision-query.ts +0 -127
  455. package/src/mcp/tools/precision-show.ts +0 -86
  456. package/src/mcp/tools/precision-visibility.ts +0 -44
  457. package/src/mcp/tools/precision-warp.ts +0 -101
  458. package/src/mcp/tools/precision.ts +0 -21
  459. package/src/mcp/tools/read-range.ts +0 -28
  460. package/src/mcp/tools/refactor-difficulty.ts +0 -42
  461. package/src/mcp/tools/run-capture.ts +0 -149
  462. package/src/mcp/tools/safe-read.ts +0 -148
  463. package/src/mcp/tools/since.ts +0 -53
  464. package/src/mcp/tools/state.ts +0 -39
  465. package/src/mcp/tools/stats.ts +0 -24
  466. package/src/mcp/tools/structural-blame.ts +0 -55
  467. package/src/mcp/tools/structural-churn.ts +0 -28
  468. package/src/mcp/tools/structural-log.ts +0 -41
  469. package/src/mcp/tools/structural-review.ts +0 -63
  470. package/src/mcp/tools/workspace-authorizations.ts +0 -14
  471. package/src/mcp/tools/workspace-authorize.ts +0 -20
  472. package/src/mcp/tools/workspace-bind.ts +0 -25
  473. package/src/mcp/tools/workspace-rebind.ts +0 -25
  474. package/src/mcp/tools/workspace-revoke.ts +0 -18
  475. package/src/mcp/tools/workspace-status.ts +0 -12
  476. package/src/mcp/warp-pool.ts +0 -36
  477. package/src/mcp/workspace-read-observation-model.ts +0 -48
  478. package/src/mcp/workspace-read-observation.ts +0 -103
  479. package/src/mcp/workspace-router-capability.ts +0 -32
  480. package/src/mcp/workspace-router-history.ts +0 -233
  481. package/src/mcp/workspace-router-model.ts +0 -131
  482. package/src/mcp/workspace-router-resolution.ts +0 -71
  483. package/src/mcp/workspace-router-runtime.ts +0 -246
  484. package/src/mcp/workspace-router.ts +0 -688
  485. package/src/metrics/logger.ts +0 -40
  486. package/src/metrics/types.ts +0 -40
  487. package/src/operations/adaptive-projection.ts +0 -54
  488. package/src/operations/agent-handoff.ts +0 -59
  489. package/src/operations/cached-file.ts +0 -40
  490. package/src/operations/capture-range.ts +0 -64
  491. package/src/operations/conversation-primer.ts +0 -82
  492. package/src/operations/cross-session-resume.ts +0 -104
  493. package/src/operations/deterministic-replay.ts +0 -143
  494. package/src/operations/diff-identity.ts +0 -127
  495. package/src/operations/export-surface-diff.ts +0 -355
  496. package/src/operations/file-outline.ts +0 -48
  497. package/src/operations/footprint-parallelism.ts +0 -98
  498. package/src/operations/graft-diff.ts +0 -169
  499. package/src/operations/horizon-of-readability.ts +0 -60
  500. package/src/operations/import-reference-impact.ts +0 -143
  501. package/src/operations/knowledge-map.ts +0 -96
  502. package/src/operations/observation-cache.ts +0 -165
  503. package/src/operations/projection-safety.ts +0 -111
  504. package/src/operations/read-range.ts +0 -64
  505. package/src/operations/repo-workspace.ts +0 -339
  506. package/src/operations/result-dto.ts +0 -23
  507. package/src/operations/safe-read.ts +0 -118
  508. package/src/operations/semantic-drift.ts +0 -70
  509. package/src/operations/session-filtration.ts +0 -76
  510. package/src/operations/session-replay.ts +0 -73
  511. package/src/operations/sludge-detector.ts +0 -356
  512. package/src/operations/state.ts +0 -66
  513. package/src/operations/structural-blame.ts +0 -197
  514. package/src/operations/structural-review.ts +0 -317
  515. package/src/operations/structured-buffer-compare.ts +0 -429
  516. package/src/operations/structured-buffer-model.ts +0 -456
  517. package/src/operations/structured-buffer-query.ts +0 -794
  518. package/src/operations/structured-buffer.ts +0 -181
  519. package/src/operations/teaching-hints.ts +0 -52
  520. package/src/parser/diff.ts +0 -320
  521. package/src/parser/lang.ts +0 -71
  522. package/src/parser/markdown.ts +0 -197
  523. package/src/parser/outline.ts +0 -316
  524. package/src/parser/runtime.ts +0 -71
  525. package/src/parser/types.ts +0 -75
  526. package/src/policy/evaluate.ts +0 -178
  527. package/src/policy/graftignore.ts +0 -6
  528. package/src/policy/types.ts +0 -87
  529. package/src/ports/codec.ts +0 -13
  530. package/src/ports/filesystem.ts +0 -18
  531. package/src/ports/git.ts +0 -16
  532. package/src/ports/guards.ts +0 -68
  533. package/src/ports/paths.ts +0 -22
  534. package/src/ports/process-runner.ts +0 -22
  535. package/src/release/security-gate.ts +0 -102
  536. package/src/session/tracker.ts +0 -145
  537. package/src/session/types.ts +0 -23
  538. package/src/version.ts +0 -3
  539. package/src/warp/ast-emitter.ts +0 -133
  540. package/src/warp/ast-import-resolver.ts +0 -333
  541. package/src/warp/commit-meta.ts +0 -19
  542. package/src/warp/context.ts +0 -48
  543. package/src/warp/dead-symbols.ts +0 -174
  544. package/src/warp/drift-sentinel.ts +0 -101
  545. package/src/warp/index-head.ts +0 -348
  546. package/src/warp/observers.ts +0 -101
  547. package/src/warp/open.ts +0 -67
  548. package/src/warp/outline-diff-trailer.ts +0 -100
  549. package/src/warp/plumbing.d.ts +0 -24
  550. package/src/warp/refactor-difficulty.ts +0 -257
  551. package/src/warp/references.ts +0 -77
  552. package/src/warp/stale-docs.ts +0 -210
  553. package/src/warp/structural-drift-detection.ts +0 -97
  554. package/src/warp/structural-queries.ts +0 -258
  555. package/src/warp/symbol-timeline.ts +0 -209
  556. package/src/warp/traverse-hydrate.ts +0 -61
  557. package/src/warp/warp-reference-count.ts +0 -47
  558. package/src/warp/warp-structural-blame.ts +0 -65
  559. package/src/warp/warp-structural-churn.ts +0 -309
  560. package/src/warp/warp-structural-log.ts +0 -149
  561. package/src/warp/writer-id.ts +0 -30
@@ -1,429 +0,0 @@
1
- import { diffOutlines } from "../parser/diff.js";
2
- import type {
3
- AnchorAffinityResult,
4
- BufferRange,
5
- ChangedRegion,
6
- SemanticSummaryResult,
7
- StructuredBufferDiffResult,
8
- StructuredBufferSnapshot,
9
- SyntaxSpan,
10
- } from "./structured-buffer-model.js";
11
- import {
12
- buildNamedPath,
13
- emptyRangeAt,
14
- findCoveringNamedNode,
15
- followNamedPath,
16
- indexToPoint,
17
- nodeName,
18
- nodeRange,
19
- normalizeSelection,
20
- point,
21
- pointToIndex,
22
- } from "./structured-buffer-model.js";
23
- import { buildOutlineResult, buildSyntaxSpansResult } from "./structured-buffer-query.js";
24
-
25
- function lineTable(source: string): readonly string[] {
26
- return source.split("\n");
27
- }
28
-
29
- function lineRangeToRange(lines: readonly string[], startLine: number, endLineExclusive: number): BufferRange {
30
- if (startLine >= lines.length) {
31
- const row = Math.max(lines.length - 1, 0);
32
- return emptyRangeAt(point(row, lines[row]?.length ?? 0));
33
- }
34
- if (endLineExclusive <= startLine) {
35
- return emptyRangeAt(point(startLine, 0));
36
- }
37
- const endRow = Math.min(endLineExclusive - 1, lines.length - 1);
38
- return {
39
- start: point(startLine, 0),
40
- end: point(endRow, lines[endRow]?.length ?? 0),
41
- };
42
- }
43
-
44
- function lcsDiffRegions(oldSource: string, newSource: string): ChangedRegion[] {
45
- const oldLines = lineTable(oldSource);
46
- const newLines = lineTable(newSource);
47
- const rows = oldLines.length;
48
- const cols = newLines.length;
49
- const table: number[][] = Array.from(
50
- { length: rows + 1 },
51
- (): number[] => Array.from({ length: cols + 1 }, () => 0),
52
- );
53
- for (let row = rows - 1; row >= 0; row -= 1) {
54
- const rowEntry = table[row];
55
- if (rowEntry === undefined) {
56
- continue;
57
- }
58
- for (let col = cols - 1; col >= 0; col -= 1) {
59
- if (oldLines[row] === newLines[col]) {
60
- rowEntry[col] = (table[row + 1]?.[col + 1] ?? 0) + 1;
61
- } else {
62
- rowEntry[col] = Math.max(table[row + 1]?.[col] ?? 0, rowEntry[col + 1] ?? 0);
63
- }
64
- }
65
- }
66
-
67
- const operations: { readonly kind: "equal" | "delete" | "insert"; readonly oldIndex: number; readonly newIndex: number }[] = [];
68
- let oldIndex = 0;
69
- let newIndex = 0;
70
- while (oldIndex < rows && newIndex < cols) {
71
- if (oldLines[oldIndex] === newLines[newIndex]) {
72
- operations.push({ kind: "equal", oldIndex, newIndex });
73
- oldIndex += 1;
74
- newIndex += 1;
75
- continue;
76
- }
77
- const down = table[oldIndex + 1]?.[newIndex] ?? 0;
78
- const right = table[oldIndex]?.[newIndex + 1] ?? 0;
79
- if (down >= right) {
80
- operations.push({ kind: "delete", oldIndex, newIndex });
81
- oldIndex += 1;
82
- } else {
83
- operations.push({ kind: "insert", oldIndex, newIndex });
84
- newIndex += 1;
85
- }
86
- }
87
- while (oldIndex < rows) {
88
- operations.push({ kind: "delete", oldIndex, newIndex });
89
- oldIndex += 1;
90
- }
91
- while (newIndex < cols) {
92
- operations.push({ kind: "insert", oldIndex, newIndex });
93
- newIndex += 1;
94
- }
95
-
96
- const regions: ChangedRegion[] = [];
97
- let index = 0;
98
- while (index < operations.length) {
99
- if (operations[index]?.kind === "equal") {
100
- index += 1;
101
- continue;
102
- }
103
- const startOld = operations[index]?.oldIndex ?? 0;
104
- const startNew = operations[index]?.newIndex ?? 0;
105
- let endOld = startOld;
106
- let endNew = startNew;
107
- while (index < operations.length && operations[index]?.kind !== "equal") {
108
- const op = operations[index];
109
- if (op?.kind === "delete") {
110
- endOld = op.oldIndex + 1;
111
- }
112
- if (op?.kind === "insert") {
113
- endNew = op.newIndex + 1;
114
- }
115
- index += 1;
116
- }
117
- regions.push({
118
- kind: endOld === startOld ? "insert" : (endNew === startNew ? "delete" : "replace"),
119
- oldRange: lineRangeToRange(oldLines, startOld, endOld),
120
- newRange: lineRangeToRange(newLines, startNew, endNew),
121
- oldText: oldLines.slice(startOld, endOld).join("\n"),
122
- newText: newLines.slice(startNew, endNew).join("\n"),
123
- });
124
- }
125
- return regions;
126
- }
127
-
128
- function envelopeDiffRegion(oldSource: string, newSource: string): ChangedRegion[] {
129
- let prefix = 0;
130
- while (prefix < oldSource.length && prefix < newSource.length && oldSource[prefix] === newSource[prefix]) {
131
- prefix += 1;
132
- }
133
- let oldSuffix = oldSource.length;
134
- let newSuffix = newSource.length;
135
- while (oldSuffix > prefix && newSuffix > prefix && oldSource[oldSuffix - 1] === newSource[newSuffix - 1]) {
136
- oldSuffix -= 1;
137
- newSuffix -= 1;
138
- }
139
- if (prefix === oldSource.length && prefix === newSource.length) {
140
- return [];
141
- }
142
- return [{
143
- kind: prefix === oldSuffix ? "insert" : (prefix === newSuffix ? "delete" : "replace"),
144
- oldRange: { start: indexToPoint(oldSource, prefix), end: indexToPoint(oldSource, oldSuffix) },
145
- newRange: { start: indexToPoint(newSource, prefix), end: indexToPoint(newSource, newSuffix) },
146
- oldText: oldSource.slice(prefix, oldSuffix),
147
- newText: newSource.slice(prefix, newSuffix),
148
- }];
149
- }
150
-
151
- function diffChangedRegions(oldSource: string, newSource: string): ChangedRegion[] {
152
- const totalLines = lineTable(oldSource).length * lineTable(newSource).length;
153
- if (totalLines <= 40000) {
154
- return lcsDiffRegions(oldSource, newSource);
155
- }
156
- return envelopeDiffRegion(oldSource, newSource);
157
- }
158
-
159
- function normalizedWithoutWhitespace(source: string): string {
160
- return source.replace(/\s+/g, "");
161
- }
162
-
163
- function stripCommentText(source: string, spans: readonly SyntaxSpan[]): string {
164
- const commentSpans = spans.filter((span) => span.className === "comment");
165
- if (commentSpans.length === 0) {
166
- return source;
167
- }
168
- const sorted = [...commentSpans].sort((left, right) => pointToIndex(source, left.range.start) - pointToIndex(source, right.range.start));
169
- let cursor = 0;
170
- let output = "";
171
- for (const span of sorted) {
172
- const start = pointToIndex(source, span.range.start);
173
- const end = pointToIndex(source, span.range.end);
174
- if (start > cursor) {
175
- output += source.slice(cursor, start);
176
- }
177
- cursor = Math.max(cursor, end);
178
- }
179
- if (cursor < source.length) {
180
- output += source.slice(cursor);
181
- }
182
- return output;
183
- }
184
-
185
- function simpleRenameFact(diff: StructuredBufferDiffResult["outlineDiff"]): string | null {
186
- if (diff.changed.length === 0 && diff.continuity.length === 1) {
187
- const [continuity] = diff.continuity;
188
- if (continuity === undefined) {
189
- return null;
190
- }
191
- return `renamed ${continuity.symbolKind} ${continuity.oldName} to ${continuity.newName}`;
192
- }
193
- return null;
194
- }
195
-
196
- export function buildDiffResult(current: StructuredBufferSnapshot, next: StructuredBufferSnapshot): StructuredBufferDiffResult {
197
- const currentOutline = buildOutlineResult(current);
198
- const nextOutline = buildOutlineResult(next);
199
- return {
200
- path: next.path,
201
- format: next.format,
202
- fromBasis: current.basis,
203
- toBasis: next.basis,
204
- partial: current.partial || next.partial,
205
- outlineDiff: diffOutlines(currentOutline.outline, nextOutline.outline),
206
- changedRegions: diffChangedRegions(current.content, next.content),
207
- };
208
- }
209
-
210
- export function buildSemanticSummaryResult(current: StructuredBufferSnapshot, next: StructuredBufferSnapshot): SemanticSummaryResult {
211
- const diff = buildDiffResult(current, next);
212
- if (current.content === next.content) {
213
- return {
214
- path: next.path,
215
- format: next.format,
216
- fromBasis: current.basis,
217
- toBasis: next.basis,
218
- partial: diff.partial,
219
- kind: "no_changes",
220
- summary: "No changes",
221
- facts: [],
222
- };
223
- }
224
- if (normalizedWithoutWhitespace(current.content) === normalizedWithoutWhitespace(next.content)) {
225
- return {
226
- path: next.path,
227
- format: next.format,
228
- fromBasis: current.basis,
229
- toBasis: next.basis,
230
- partial: diff.partial,
231
- kind: "whitespace_only",
232
- summary: "Edited whitespace only",
233
- facts: [],
234
- };
235
- }
236
- const currentWithoutComments = stripCommentText(current.content, buildSyntaxSpansResult(current).spans);
237
- const nextWithoutComments = stripCommentText(next.content, buildSyntaxSpansResult(next).spans);
238
- if (normalizedWithoutWhitespace(currentWithoutComments) === normalizedWithoutWhitespace(nextWithoutComments)) {
239
- return {
240
- path: next.path,
241
- format: next.format,
242
- fromBasis: current.basis,
243
- toBasis: next.basis,
244
- partial: diff.partial,
245
- kind: "comments_only",
246
- summary: "Edited comments only",
247
- facts: [],
248
- };
249
- }
250
- const renameFact = simpleRenameFact(diff.outlineDiff);
251
- if (renameFact !== null) {
252
- return {
253
- path: next.path,
254
- format: next.format,
255
- fromBasis: current.basis,
256
- toBasis: next.basis,
257
- partial: diff.partial,
258
- kind: "renamed_symbol",
259
- summary: renameFact,
260
- facts: [renameFact],
261
- };
262
- }
263
- if (diff.outlineDiff.added.length > 0 && diff.outlineDiff.removed.length === 0 && diff.outlineDiff.changed.length === 0) {
264
- const first = diff.outlineDiff.added[0];
265
- const summary = first === undefined ? "Added symbol" : `added ${first.kind} ${first.name}`;
266
- return {
267
- path: next.path,
268
- format: next.format,
269
- fromBasis: current.basis,
270
- toBasis: next.basis,
271
- partial: diff.partial,
272
- kind: "added_symbol",
273
- summary,
274
- facts: [summary],
275
- };
276
- }
277
- if (diff.outlineDiff.removed.length > 0 && diff.outlineDiff.added.length === 0 && diff.outlineDiff.changed.length === 0) {
278
- const first = diff.outlineDiff.removed[0];
279
- const summary = first === undefined ? "Removed symbol" : `removed ${first.kind} ${first.name}`;
280
- return {
281
- path: next.path,
282
- format: next.format,
283
- fromBasis: current.basis,
284
- toBasis: next.basis,
285
- partial: diff.partial,
286
- kind: "removed_symbol",
287
- summary,
288
- facts: [summary],
289
- };
290
- }
291
- const signatureChange = diff.outlineDiff.changed.find((entry) => entry.oldSignature !== undefined || entry.signature !== undefined);
292
- if (signatureChange !== undefined) {
293
- const summary = `changed signature for ${signatureChange.kind} ${signatureChange.name}`;
294
- return {
295
- path: next.path,
296
- format: next.format,
297
- fromBasis: current.basis,
298
- toBasis: next.basis,
299
- partial: diff.partial,
300
- kind: "changed_signature",
301
- summary,
302
- facts: [summary],
303
- };
304
- }
305
- if (diff.outlineDiff.added.length > 0 || diff.outlineDiff.removed.length > 0 || diff.outlineDiff.changed.length > 0) {
306
- return {
307
- path: next.path,
308
- format: next.format,
309
- fromBasis: current.basis,
310
- toBasis: next.basis,
311
- partial: diff.partial,
312
- kind: "changed_structure",
313
- summary: "Changed structure",
314
- facts: [
315
- `${String(diff.outlineDiff.added.length)} added`,
316
- `${String(diff.outlineDiff.removed.length)} removed`,
317
- `${String(diff.outlineDiff.changed.length)} changed`,
318
- ],
319
- };
320
- }
321
- if (diff.changedRegions.length > 0) {
322
- return {
323
- path: next.path,
324
- format: next.format,
325
- fromBasis: current.basis,
326
- toBasis: next.basis,
327
- partial: diff.partial,
328
- kind: "changed_regions_only",
329
- summary: "Edited buffer regions without structural changes",
330
- facts: [`${String(diff.changedRegions.length)} changed region(s)`],
331
- };
332
- }
333
- return {
334
- path: next.path,
335
- format: next.format,
336
- fromBasis: current.basis,
337
- toBasis: next.basis,
338
- partial: diff.partial,
339
- kind: "mixed_edit",
340
- summary: "Edited code",
341
- facts: [],
342
- };
343
- }
344
-
345
- export function buildAnchorAffinityResult(
346
- current: StructuredBufferSnapshot,
347
- next: StructuredBufferSnapshot,
348
- selection: BufferRange,
349
- ): AnchorAffinityResult {
350
- if (current.parsed === null || next.parsed === null) {
351
- return {
352
- path: next.path,
353
- format: next.format,
354
- fromBasis: current.basis,
355
- toBasis: next.basis,
356
- partial: current.partial || next.partial,
357
- oldRange: selection,
358
- newRange: null,
359
- status: "lost",
360
- strategy: "none",
361
- confidence: "low",
362
- reason: "UNSUPPORTED_LANGUAGE",
363
- };
364
- }
365
- const target = findCoveringNamedNode(current.parsed.root, normalizeSelection(selection));
366
- const pathMatch = followNamedPath(next.parsed.root, buildNamedPath(target));
367
- if (pathMatch !== null && pathMatch.type === target.type) {
368
- return {
369
- path: next.path,
370
- format: next.format,
371
- fromBasis: current.basis,
372
- toBasis: next.basis,
373
- partial: current.partial || next.partial,
374
- oldRange: selection,
375
- newRange: nodeRange(pathMatch),
376
- status: "mapped",
377
- strategy: "named_path",
378
- confidence: "high",
379
- };
380
- }
381
- const name = nodeName(target);
382
- if (name !== undefined) {
383
- const candidates = next.parsed.root.descendantsOfType(target.type).filter((node) => nodeName(node) === name);
384
- const onlyCandidate = candidates[0];
385
- if (candidates.length === 1 && onlyCandidate !== undefined) {
386
- return {
387
- path: next.path,
388
- format: next.format,
389
- fromBasis: current.basis,
390
- toBasis: next.basis,
391
- partial: current.partial || next.partial,
392
- oldRange: selection,
393
- newRange: nodeRange(onlyCandidate),
394
- status: "mapped",
395
- strategy: "named_search",
396
- confidence: "medium",
397
- };
398
- }
399
- }
400
- const textCandidates = next.parsed.root.descendantsOfType(target.type).filter((node) => node.text === target.text);
401
- const onlyTextCandidate = textCandidates[0];
402
- if (textCandidates.length === 1 && onlyTextCandidate !== undefined) {
403
- return {
404
- path: next.path,
405
- format: next.format,
406
- fromBasis: current.basis,
407
- toBasis: next.basis,
408
- partial: current.partial || next.partial,
409
- oldRange: selection,
410
- newRange: nodeRange(onlyTextCandidate),
411
- status: "mapped",
412
- strategy: "text_search",
413
- confidence: "low",
414
- };
415
- }
416
- return {
417
- path: next.path,
418
- format: next.format,
419
- fromBasis: current.basis,
420
- toBasis: next.basis,
421
- partial: current.partial || next.partial,
422
- oldRange: selection,
423
- newRange: null,
424
- status: "lost",
425
- strategy: "none",
426
- confidence: "low",
427
- reason: "ANCHOR_NOT_FOUND",
428
- };
429
- }