@automaton-labs/aib 0.0.7 → 0.0.9

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 (477) hide show
  1. package/README.md +21 -578
  2. package/config/agent-dx-policy.default.json +31 -0
  3. package/config/control-plane-client.default.json +3 -0
  4. package/dist/agent-dx/agent-dx.js +805 -0
  5. package/dist/agent-dx/presentation.js +32 -0
  6. package/dist/alias-advisor/analyze.js +982 -0
  7. package/dist/alias-advisor/exact-text-cost.js +74 -0
  8. package/dist/alias-advisor/lexical.js +240 -0
  9. package/dist/alias-advisor/model.js +2 -0
  10. package/dist/alias-advisor/path-identity.js +49 -0
  11. package/dist/alias-advisor/ranking.js +171 -0
  12. package/dist/alias-advisor/token-estimator.js +85 -0
  13. package/dist/bin/aib.js +5 -1
  14. package/dist/bin/cli.js +811 -4
  15. package/dist/commands/add-missing-imports-preview-cache.js +99 -2
  16. package/dist/commands/add-missing-imports.js +241 -2
  17. package/dist/commands/apply-module-plan.js +1319 -3
  18. package/dist/commands/background-command.js +378 -2
  19. package/dist/commands/captured-input.js +74 -1
  20. package/dist/commands/config-command.js +314 -2
  21. package/dist/commands/config-output.js +357 -10
  22. package/dist/commands/control-plane-command.js +183 -1
  23. package/dist/commands/declaration-command.js +1209 -7
  24. package/dist/commands/declaration-execution-cache.js +79 -1
  25. package/dist/commands/declaration-format.js +221 -1
  26. package/dist/commands/declaration-preview-cache.js +114 -2
  27. package/dist/commands/diagnostics-command.js +70 -3
  28. package/dist/commands/doctor.js +137 -3
  29. package/dist/commands/execution-command.js +117 -1
  30. package/dist/commands/exports-star-collapse-command.js +178 -0
  31. package/dist/commands/exports-star-command.js +252 -0
  32. package/dist/commands/exports-star-preview-cache.js +84 -0
  33. package/dist/commands/feedback-command.js +176 -3
  34. package/dist/commands/file-move-to-dir-execution-cache.js +92 -1
  35. package/dist/commands/file-move-to-dir-preview-cache.js +125 -2
  36. package/dist/commands/file-move-to-dir-worker.js +54 -0
  37. package/dist/commands/file-move-to-dir.js +1073 -5
  38. package/dist/commands/file-mutation-runtime.js +102 -1
  39. package/dist/commands/file-mutation-worker-apply.js +180 -0
  40. package/dist/commands/file-refactor-batch-execution-cache.js +90 -1
  41. package/dist/commands/file-refactor-batch-preview-cache.js +125 -2
  42. package/dist/commands/file-refactor-batch-worker.js +54 -0
  43. package/dist/commands/file-refactor-batch.js +1154 -5
  44. package/dist/commands/file-rename-execution-cache.js +92 -1
  45. package/dist/commands/file-rename-preview-cache.js +125 -2
  46. package/dist/commands/file-rename-worker.js +54 -0
  47. package/dist/commands/file-rename.js +1053 -5
  48. package/dist/commands/file-text-edit-executor.js +205 -0
  49. package/dist/commands/find-importers.js +52 -1
  50. package/dist/commands/find-unused-imports.js +55 -1
  51. package/dist/commands/generate-docs-command.js +244 -6
  52. package/dist/commands/help-command.js +460 -7
  53. package/dist/commands/import-specifier-policy.js +391 -0
  54. package/dist/commands/imports-command.js +68 -1
  55. package/dist/commands/imports-rebase.js +1138 -0
  56. package/dist/commands/init-skill-usage.js +92 -3
  57. package/dist/commands/init-workspace.js +30 -1
  58. package/dist/commands/inspect-alias-candidates.js +413 -0
  59. package/dist/commands/inspect-cycles.js +811 -5
  60. package/dist/commands/inspect-direct-usages.js +98 -0
  61. package/dist/commands/inspect-duplicates-format.js +229 -0
  62. package/dist/commands/inspect-format-primitives.js +127 -0
  63. package/dist/commands/inspect-format.js +1590 -18
  64. package/dist/commands/inspect-graph.js +1553 -9
  65. package/dist/commands/inspect-imports.js +339 -2
  66. package/dist/commands/inspect-mixed-format.js +524 -0
  67. package/dist/commands/inspect-module-plan-format.js +216 -0
  68. package/dist/commands/inspect-module-plan-serialization.js +402 -0
  69. package/dist/commands/inspect-reference-path-format.js +157 -0
  70. package/dist/commands/inspect-request-values.js +599 -0
  71. package/dist/commands/inspect-selector-kind.js +21 -0
  72. package/dist/commands/inspect-selector.js +50 -0
  73. package/dist/commands/inspect-symbol-format.js +90 -0
  74. package/dist/commands/inspect-topology.js +435 -0
  75. package/dist/commands/inspect-tree.js +827 -5
  76. package/dist/commands/inspect-usages-detail.js +793 -0
  77. package/dist/commands/inspect-usages-evidence.js +31 -0
  78. package/dist/commands/inspect-usages-format.js +367 -0
  79. package/dist/commands/inspect.js +1450 -16
  80. package/dist/commands/internal-command.js +64 -0
  81. package/dist/commands/json-file-input.js +60 -1
  82. package/dist/commands/module-plan-cache.js +156 -2
  83. package/dist/commands/module-plan-standalone.js +208 -0
  84. package/dist/commands/module-plan-timeout.js +77 -1
  85. package/dist/commands/move-preview-cache.js +101 -2
  86. package/dist/commands/mutate-aggregate-output.js +996 -0
  87. package/dist/commands/mutate-child-execution.js +374 -0
  88. package/dist/commands/mutate-command.js +1394 -0
  89. package/dist/commands/mutate-declaration-output.js +313 -0
  90. package/dist/commands/mutate-domain-adapters.js +638 -0
  91. package/dist/commands/mutate-execution-cache.js +114 -0
  92. package/dist/commands/mutate-execution-status.js +598 -0
  93. package/dist/commands/mutate-failure-output.js +531 -0
  94. package/dist/commands/mutate-file-view.js +151 -0
  95. package/dist/commands/mutate-object-output.js +91 -0
  96. package/dist/commands/mutate-output-values.js +97 -0
  97. package/dist/commands/mutate-preview-cache.js +86 -0
  98. package/dist/commands/mutate-response-replay.js +153 -0
  99. package/dist/commands/mutate-result-projection.js +818 -0
  100. package/dist/commands/mutation-eta.js +28 -0
  101. package/dist/commands/mutation-execution-cache.js +140 -3
  102. package/dist/commands/mutation-recovery-journal.js +195 -0
  103. package/dist/commands/normalize-imports.js +1120 -4
  104. package/dist/commands/object-pack-command.js +546 -0
  105. package/dist/commands/object-pack-preview-cache.js +88 -0
  106. package/dist/commands/observability-command.js +47 -3
  107. package/dist/commands/ota-command.js +403 -2
  108. package/dist/commands/print-config.js +10 -1
  109. package/dist/commands/quick-read.js +1113 -11
  110. package/dist/commands/refactor-batch-builder.js +265 -1
  111. package/dist/commands/refactor-batch-execution-cache.js +85 -1
  112. package/dist/commands/refactor-batch-preview-cache.js +96 -2
  113. package/dist/commands/refactor-batch.js +461 -4
  114. package/dist/commands/rename-entities.js +794 -4
  115. package/dist/commands/rename-execution-cache.js +49 -1
  116. package/dist/commands/rename-input.js +22 -1
  117. package/dist/commands/rename-polling-policy.js +68 -0
  118. package/dist/commands/rename-preview-cache.js +96 -2
  119. package/dist/commands/result-view.js +993 -7
  120. package/dist/commands/reveal-command.js +445 -5
  121. package/dist/commands/selector-suggestions.js +93 -0
  122. package/dist/commands/session-workspace.js +1836 -31
  123. package/dist/commands/shared.js +2 -1
  124. package/dist/commands/skills-command.js +315 -0
  125. package/dist/commands/sync-command.js +59 -2
  126. package/dist/commands/worker-command.js +173 -1
  127. package/dist/commands/workspace-cache.js +55 -1
  128. package/dist/config/defaults.js +26 -1
  129. package/dist/config/env-vars.js +77 -1
  130. package/dist/config/glob-match.js +44 -1
  131. package/dist/config/import-rules.js +165 -1
  132. package/dist/config/local-config.js +293 -3
  133. package/dist/config/mutation-comments.js +51 -1
  134. package/dist/config/path-aliases.js +165 -1
  135. package/dist/config/path-display.js +84 -1
  136. package/dist/config/product-storage.js +37 -1
  137. package/dist/config/request-env.js +21 -0
  138. package/dist/config/request-routing-context.js +23 -0
  139. package/dist/config/resolve-command-alias.js +74 -1
  140. package/dist/config/resolve.js +24 -1
  141. package/dist/config/tsconfig-discovery.js +113 -1
  142. package/dist/config/typescript-preferences.js +131 -0
  143. package/dist/config/workspace-root.js +310 -3
  144. package/dist/config/workspace-state.js +254 -1
  145. package/dist/content/content-bundle.js +88 -1
  146. package/dist/diagnostics/module-plan-timeline.js +75 -2
  147. package/dist/diagnostics/readiness-text.js +45 -8
  148. package/dist/dsl/aib-dsl.js +838 -1
  149. package/dist/dsl/declaration-dsl.js +264 -1
  150. package/dist/dsl/file-move-to-dir-dsl.js +123 -1
  151. package/dist/dsl/file-refactor-batch-dsl.js +203 -1
  152. package/dist/dsl/file-rename-dsl.js +135 -1
  153. package/dist/dsl/mutate-dsl.js +746 -0
  154. package/dist/help/bootstrap.bash.md +176 -341
  155. package/dist/help/bootstrap.md +175 -340
  156. package/dist/help/bootstrap.pwsh.md +176 -341
  157. package/dist/help/docs/basics.md +1 -1
  158. package/dist/help/docs/config-setup.import-normalize.md +65 -65
  159. package/dist/help/docs/config-setup.import-rules.md +6 -5
  160. package/dist/help/docs/first-setup.md +6 -5
  161. package/dist/help/docs/help-protocol.md +4 -3
  162. package/dist/help/docs/import.base.md +38 -0
  163. package/dist/help/docs/import.rebase.md +85 -0
  164. package/dist/help/docs/inspect.aliasCandidates.md +39 -0
  165. package/dist/help/docs/inspect.code.md +1 -7
  166. package/dist/help/docs/inspect.file.md +10 -19
  167. package/dist/help/docs/inspect.graph.md +3 -17
  168. package/dist/help/{dsl/docs/inspect.md → docs/inspect.shared.md} +13 -12
  169. package/dist/help/docs/modulePlan.md +24 -28
  170. package/dist/help/docs/move.md +19 -22
  171. package/dist/help/{dsl/topics/file.move.md → docs/moveToDir.md} +36 -34
  172. package/dist/help/docs/mutate.mixed.md +34 -0
  173. package/dist/help/docs/mutation.shared.md +55 -0
  174. package/dist/help/docs/patterns.md +3 -12
  175. package/dist/help/docs/qr.md +12 -6
  176. package/dist/help/docs/quick-map.md +36 -24
  177. package/dist/help/docs/recipe.file-layout.md +10 -10
  178. package/dist/help/docs/recipe.import-boundary.md +92 -0
  179. package/dist/help/docs/recipe.safe-artifact-probing.md +68 -0
  180. package/dist/help/docs/recipe.unfamiliar-area.md +64 -0
  181. package/dist/help/docs/recipes.md +20 -0
  182. package/dist/help/docs/rename.md +19 -27
  183. package/dist/help/docs/renameFile.md +36 -0
  184. package/dist/help/docs/rules.md +26 -0
  185. package/dist/help/dsl/bootstrap.bash.md +176 -341
  186. package/dist/help/dsl/bootstrap.md +175 -340
  187. package/dist/help/dsl/bootstrap.pwsh.md +176 -341
  188. package/dist/help/dsl/docs/basics.md +1 -1
  189. package/dist/help/dsl/docs/config-setup.import-normalize.md +65 -65
  190. package/dist/help/dsl/docs/config-setup.import-rules.md +6 -5
  191. package/dist/help/dsl/docs/first-setup.md +6 -5
  192. package/dist/help/dsl/docs/help-protocol.md +4 -3
  193. package/dist/help/dsl/docs/import.base.md +38 -0
  194. package/dist/help/dsl/docs/import.rebase.md +85 -0
  195. package/dist/help/dsl/docs/inspect.aliasCandidates.md +39 -0
  196. package/dist/help/dsl/docs/inspect.code.md +1 -7
  197. package/dist/help/dsl/docs/inspect.file.md +10 -19
  198. package/dist/help/dsl/docs/inspect.graph.md +3 -17
  199. package/dist/help/{docs/inspect.md → dsl/docs/inspect.shared.md} +13 -12
  200. package/dist/help/dsl/docs/modulePlan.md +24 -28
  201. package/dist/help/dsl/docs/move.md +19 -22
  202. package/dist/help/{topics/file.move.md → dsl/docs/moveToDir.md} +36 -34
  203. package/dist/help/dsl/docs/mutate.mixed.md +34 -0
  204. package/dist/help/dsl/docs/mutation.shared.md +55 -0
  205. package/dist/help/dsl/docs/patterns.md +3 -12
  206. package/dist/help/dsl/docs/qr.md +12 -6
  207. package/dist/help/dsl/docs/quick-map.md +36 -24
  208. package/dist/help/dsl/docs/recipe.file-layout.md +10 -10
  209. package/dist/help/dsl/docs/recipe.import-boundary.md +92 -0
  210. package/dist/help/dsl/docs/recipe.safe-artifact-probing.md +68 -0
  211. package/dist/help/dsl/docs/recipe.unfamiliar-area.md +64 -0
  212. package/dist/help/dsl/docs/recipes.md +20 -0
  213. package/dist/help/dsl/docs/rename.md +19 -27
  214. package/dist/help/dsl/docs/renameFile.md +36 -0
  215. package/dist/help/dsl/docs/rules.md +26 -0
  216. package/dist/help/dsl/full.md +175 -340
  217. package/dist/help/dsl/help-index.md +48 -43
  218. package/dist/help/dsl/snippets/agents.md +2 -2
  219. package/dist/help/dsl/tokens/qr.inline.examples.md +1 -1
  220. package/dist/help/dsl/topics/basics.md +1 -1
  221. package/dist/help/dsl/topics/config-setup.import-normalize.md +65 -65
  222. package/dist/help/dsl/topics/config-setup.import-rules.md +6 -5
  223. package/dist/help/dsl/topics/first-setup.md +6 -5
  224. package/dist/help/dsl/topics/help-protocol.md +4 -3
  225. package/dist/help/dsl/topics/import.base.md +36 -0
  226. package/dist/help/dsl/topics/import.rebase.md +83 -0
  227. package/dist/help/dsl/topics/inspect.aliasCandidates.md +37 -0
  228. package/dist/help/dsl/topics/inspect.code.md +1 -7
  229. package/dist/help/dsl/topics/inspect.file.md +10 -19
  230. package/dist/help/dsl/topics/inspect.graph.md +3 -17
  231. package/dist/help/dsl/topics/{inspect.md → inspect.shared.md} +13 -12
  232. package/dist/help/dsl/topics/modulePlan.md +21 -26
  233. package/dist/help/dsl/topics/move.md +17 -18
  234. package/dist/help/{docs/file.move.md → dsl/topics/moveToDir.md} +33 -35
  235. package/dist/help/dsl/topics/mutate.mixed.md +32 -0
  236. package/dist/help/dsl/topics/mutation.shared.md +53 -0
  237. package/dist/help/dsl/topics/patterns.md +3 -12
  238. package/dist/help/dsl/topics/qr.md +12 -6
  239. package/dist/help/dsl/topics/quick-map.md +36 -24
  240. package/dist/help/dsl/topics/recipe.file-layout.md +10 -10
  241. package/dist/help/dsl/topics/recipe.import-boundary.md +90 -0
  242. package/dist/help/dsl/topics/recipe.safe-artifact-probing.md +66 -0
  243. package/dist/help/dsl/topics/recipe.unfamiliar-area.md +62 -0
  244. package/dist/help/dsl/topics/recipes.md +18 -0
  245. package/dist/help/dsl/topics/rename.md +15 -15
  246. package/dist/help/dsl/topics/renameFile.md +34 -0
  247. package/dist/help/dsl/topics/rules.md +24 -0
  248. package/dist/help/full.md +175 -340
  249. package/dist/help/help-index.md +48 -43
  250. package/dist/help/help-meta.json +98 -48
  251. package/dist/help/index.md +52 -20
  252. package/dist/help/snippets/agents.md +2 -2
  253. package/dist/help/tokens/qr.inline.examples.md +1 -1
  254. package/dist/help/topics/basics.md +1 -1
  255. package/dist/help/topics/config-setup.import-normalize.md +65 -65
  256. package/dist/help/topics/config-setup.import-rules.md +6 -5
  257. package/dist/help/topics/first-setup.md +6 -5
  258. package/dist/help/topics/help-protocol.md +4 -3
  259. package/dist/help/topics/import.base.md +36 -0
  260. package/dist/help/topics/import.rebase.md +83 -0
  261. package/dist/help/topics/inspect.aliasCandidates.md +37 -0
  262. package/dist/help/topics/inspect.code.md +1 -7
  263. package/dist/help/topics/inspect.file.md +10 -19
  264. package/dist/help/topics/inspect.graph.md +3 -17
  265. package/dist/help/topics/{inspect.md → inspect.shared.md} +13 -12
  266. package/dist/help/topics/modulePlan.md +21 -26
  267. package/dist/help/topics/move.md +17 -18
  268. package/dist/help/{dsl/docs/file.move.md → topics/moveToDir.md} +33 -35
  269. package/dist/help/topics/mutate.mixed.md +32 -0
  270. package/dist/help/topics/mutation.shared.md +53 -0
  271. package/dist/help/topics/patterns.md +3 -12
  272. package/dist/help/topics/qr.md +12 -6
  273. package/dist/help/topics/quick-map.md +36 -24
  274. package/dist/help/topics/recipe.file-layout.md +10 -10
  275. package/dist/help/topics/recipe.import-boundary.md +90 -0
  276. package/dist/help/topics/recipe.safe-artifact-probing.md +66 -0
  277. package/dist/help/topics/recipe.unfamiliar-area.md +62 -0
  278. package/dist/help/topics/recipes.md +18 -0
  279. package/dist/help/topics/rename.md +15 -15
  280. package/dist/help/topics/renameFile.md +34 -0
  281. package/dist/help/topics/rules.md +24 -0
  282. package/dist/host/capabilities.js +56 -1
  283. package/dist/imports/standalone-import-analysis.js +602 -0
  284. package/dist/imports/standalone-import-model.js +2 -0
  285. package/dist/imports/standalone-import-process.js +66 -0
  286. package/dist/imports/standalone-import-worker.js +27 -0
  287. package/dist/imports/standalone-ts-project.js +147 -0
  288. package/dist/inspect/inspect-duplicates-service.js +526 -0
  289. package/dist/inspect/inspect-reverse-module-closure.js +338 -0
  290. package/dist/inspect/inspect-source-ranges.js +82 -0
  291. package/dist/inspect/inspect-source-shape.js +649 -0
  292. package/dist/inspect/standalone-inspect-analysis.js +319 -0
  293. package/dist/inspect/standalone-inspect-model.js +9 -0
  294. package/dist/inspect/standalone-inspect-process.js +55 -0
  295. package/dist/inspect/standalone-inspect-usages.js +274 -0
  296. package/dist/inspect/standalone-inspect-worker.js +13 -0
  297. package/dist/metrics/central-metrics.js +101 -2
  298. package/dist/mutation/concrete-edit-plan.js +157 -0
  299. package/dist/mutation/exports-star-collapse-preview.js +361 -0
  300. package/dist/mutation/exports-star-expand-apply.js +373 -0
  301. package/dist/mutation/exports-star-expand-preview.js +807 -0
  302. package/dist/mutation/file-impact-scan.js +182 -0
  303. package/dist/mutation/file-mutation-discovery.js +674 -0
  304. package/dist/mutation/file-mutation-eta.js +99 -0
  305. package/dist/mutation/file-mutation-standalone-apply.js +584 -0
  306. package/dist/mutation/file-mutation-standalone-planner.js +500 -0
  307. package/dist/mutation/file-mutation-tsserver-session.js +473 -0
  308. package/dist/mutation/mutation-estimate.js +45 -0
  309. package/dist/mutation/mutation-plan.js +467 -0
  310. package/dist/mutation/object-mutation-foundation.js +2 -0
  311. package/dist/mutation/object-mutation-partition.js +148 -0
  312. package/dist/mutation/object-pack-semantic-apply.js +507 -0
  313. package/dist/mutation/object-pack-semantic-preview.js +984 -0
  314. package/dist/mutation/object-unpack-semantic-preview.js +993 -0
  315. package/dist/mutation/package-manifest-impact.js +176 -0
  316. package/dist/mutation/rename-owner-worker-child.js +37 -0
  317. package/dist/mutation/rename-owner-worker.js +122 -0
  318. package/dist/mutation/runtime-cycle-query.js +66 -0
  319. package/dist/mutation/semantic-execution-progress.js +63 -0
  320. package/dist/mutation/semantic-export-index.js +474 -0
  321. package/dist/mutation/semantic-impact-scan.js +434 -0
  322. package/dist/mutation/semantic-model.js +2 -0
  323. package/dist/mutation/semantic-move-best-effort-planner.js +209 -0
  324. package/dist/mutation/semantic-move-config-worker-child.js +61 -0
  325. package/dist/mutation/semantic-move-config-worker.js +449 -0
  326. package/dist/mutation/semantic-move-declarations.js +94 -0
  327. package/dist/mutation/semantic-move-metrics.js +119 -0
  328. package/dist/mutation/semantic-move-model.js +2 -0
  329. package/dist/mutation/semantic-move-owner-authority.js +122 -0
  330. package/dist/mutation/semantic-move-owner-candidates.js +300 -0
  331. package/dist/mutation/semantic-move-owner-divergence-harness.js +474 -0
  332. package/dist/mutation/semantic-move-owner-divergence-runner.js +162 -0
  333. package/dist/mutation/semantic-move-plan-hash.js +56 -0
  334. package/dist/mutation/semantic-move-policy.js +360 -0
  335. package/dist/mutation/semantic-move-process.js +218 -0
  336. package/dist/mutation/semantic-move-provider-diagnostics.js +27 -0
  337. package/dist/mutation/semantic-move-standalone-engine.js +919 -0
  338. package/dist/mutation/semantic-move-standalone-planner.js +1553 -0
  339. package/dist/mutation/semantic-move-transaction.js +639 -0
  340. package/dist/mutation/semantic-mutation-engine.js +478 -0
  341. package/dist/mutation/semantic-mutation-runtime.js +521 -0
  342. package/dist/mutation/semantic-planner-retry.js +26 -0
  343. package/dist/mutation/semantic-program-roots.js +69 -0
  344. package/dist/mutation/semantic-rename-commonjs.js +229 -0
  345. package/dist/mutation/semantic-rename-config-worker-child.js +46 -0
  346. package/dist/mutation/semantic-rename-config-worker.js +498 -0
  347. package/dist/mutation/semantic-rename-locations.js +192 -0
  348. package/dist/mutation/semantic-rename-model.js +2 -0
  349. package/dist/mutation/semantic-rename-process.js +217 -0
  350. package/dist/mutation/semantic-rename-standalone-engine.js +302 -0
  351. package/dist/mutation/semantic-rename-standalone-planner.js +567 -0
  352. package/dist/mutation/semantic-rename-transaction.js +333 -0
  353. package/dist/mutation/semantic-unused-import-cleanup.js +248 -0
  354. package/dist/mutation/semantic-worker-retry.js +40 -0
  355. package/dist/mutation/semantic-workspace.js +804 -0
  356. package/dist/mutation/targeted-import-canonicalizer.js +359 -0
  357. package/dist/observability/config.js +206 -1
  358. package/dist/observability/context.js +59 -1
  359. package/dist/observability/failure-snapshot.js +124 -2
  360. package/dist/observability/recent.js +63 -2
  361. package/dist/payloads/read-stdin-json.js +212 -1
  362. package/dist/rg-wrapper/core.js +714 -6
  363. package/dist/rg-wrapper/options.js +125 -1
  364. package/dist/rtk-wrapper/core.js +144 -2
  365. package/dist/rtk-wrapper/git-safety.js +203 -0
  366. package/dist/rtk-wrapper/output-adapter.js +106 -0
  367. package/dist/runtime/buffered-process.js +114 -0
  368. package/dist/runtime/bundled-node.js +97 -1
  369. package/dist/runtime/command-lifecycle.js +2 -0
  370. package/dist/runtime/input-source.js +238 -1
  371. package/dist/runtime/node-cli-identity.js +37 -0
  372. package/dist/runtime/run-command.js +191 -1
  373. package/dist/selectors/parse-entities.js +84 -1
  374. package/dist/semantic/semantic-context-pool.js +830 -0
  375. package/dist/semantic/semantic-context-provider.js +416 -0
  376. package/dist/semantic/semantic-resident-admission.js +38 -0
  377. package/dist/semantic/semantic-worker-child.js +40 -0
  378. package/dist/semantic/semantic-worker-manager.js +460 -0
  379. package/dist/semantic/semantic-worker-protocol.js +2 -0
  380. package/dist/semantic/semantic-worker-runtime.js +38 -0
  381. package/dist/semantic/workspace-semantic-context-pools.js +136 -0
  382. package/dist/session/client.js +359 -1
  383. package/dist/session/daemon-state.js +185 -2
  384. package/dist/session/external-tool-coordinator.js +88 -0
  385. package/dist/session/external-tool-request.js +52 -0
  386. package/dist/session/lane-owner.js +116 -0
  387. package/dist/session/paths.js +71 -1
  388. package/dist/session/runtime-lifecycle.js +225 -0
  389. package/dist/session/runtime-shutdown.js +95 -0
  390. package/dist/session/server.js +1194 -7
  391. package/dist/session/session-health.js +27 -0
  392. package/dist/shared/agent-text.js +29 -1
  393. package/dist/shared/errors.js +496 -30
  394. package/dist/shared/event-loop.js +6 -1
  395. package/dist/shared/hints.js +37 -1
  396. package/dist/shared/metrics.js +43 -1
  397. package/dist/shared/presentation.js +69 -4
  398. package/dist/shared/stdin-examples.js +77 -1
  399. package/dist/shared/stdout.js +6 -2
  400. package/dist/shared/types.js +23 -1
  401. package/dist/tool-runtime/runtime-tools.js +120 -1
  402. package/dist/topology/availability.js +663 -0
  403. package/dist/topology/cache.js +130 -0
  404. package/dist/topology/candidates.js +372 -0
  405. package/dist/topology/core.js +903 -0
  406. package/dist/topology/dependency-snapshot.js +189 -0
  407. package/dist/topology/model.js +2 -0
  408. package/dist/topology/scope.js +100 -0
  409. package/dist/topology/ts-oracle-batch.js +529 -0
  410. package/dist/topology/ts-oracle-host.js +69 -0
  411. package/dist/topology/ts-oracle-model.js +2 -0
  412. package/dist/topology/ts-oracle.js +224 -0
  413. package/dist/topology/tsconfig-loader.js +105 -0
  414. package/dist/topology/workspace-project-index.js +542 -0
  415. package/dist/tracing/config.js +192 -2
  416. package/dist/tracing/failure-summary.js +100 -0
  417. package/dist/tracing/trace.js +318 -5
  418. package/dist/tsc-wrapper/core.js +697 -0
  419. package/dist/workers/control-plane/aib-control-plane-worker.cjs +32 -32
  420. package/dist/workers/control-plane/client-config.default.json +3 -3
  421. package/dist/workers/lexical-worker-child.js +27 -0
  422. package/dist/workers/lexical-worker-manager.js +394 -0
  423. package/dist/workers/lexical-worker-protocol.js +2 -0
  424. package/dist/workers/lexical-worker-runtime.js +25 -0
  425. package/dist/workers/owned-one-shot-process.js +115 -0
  426. package/dist/workers/product-storage.js +23 -1
  427. package/dist/workers/registry.js +241 -1
  428. package/package.json +8 -13
  429. package/scripts/postinstall.cjs +29 -29
  430. package/scripts/provision-runtime.cjs +411 -459
  431. package/dist/client/http-client.js +0 -1
  432. package/dist/client/transport-options.js +0 -1
  433. package/dist/client/websocket-client.js +0 -1
  434. package/dist/commands/entity-resolution.js +0 -1
  435. package/dist/commands/file-command.js +0 -1
  436. package/dist/commands/host-command.js +0 -1
  437. package/dist/commands/inspect-symbol-query.js +0 -1
  438. package/dist/commands/list-instances.js +0 -1
  439. package/dist/commands/module-plan-command.js +0 -1
  440. package/dist/commands/move-command.js +0 -1
  441. package/dist/commands/move-to-file.js +0 -2
  442. package/dist/commands/ping.js +0 -1
  443. package/dist/commands/refactor-command.js +0 -1
  444. package/dist/commands/rename-command.js +0 -1
  445. package/dist/commands/runtime-command.js +0 -4
  446. package/dist/commands/runtime-info.js +0 -1
  447. package/dist/commands/validate-module-plan.js +0 -2
  448. package/dist/compatibility/policy.js +0 -1
  449. package/dist/config/auto-start-ide.js +0 -1
  450. package/dist/discovery/registry.js +0 -1
  451. package/dist/discovery/select-instance.js +0 -1
  452. package/dist/help/docs/file.rename.md +0 -35
  453. package/dist/help/docs/mutation.md +0 -60
  454. package/dist/help/docs/refactor.batch.md +0 -44
  455. package/dist/help/dsl/docs/file.rename.md +0 -35
  456. package/dist/help/dsl/docs/mutation.md +0 -60
  457. package/dist/help/dsl/docs/refactor.batch.md +0 -44
  458. package/dist/help/dsl/topics/file.rename.md +0 -33
  459. package/dist/help/dsl/topics/mutation.md +0 -58
  460. package/dist/help/dsl/topics/refactor.batch.md +0 -33
  461. package/dist/help/topics/file.rename.md +0 -33
  462. package/dist/help/topics/mutation.md +0 -58
  463. package/dist/help/topics/refactor.batch.md +0 -33
  464. package/dist/ide-launch/common.cjs +0 -162
  465. package/dist/managed-host/extension-vsix-resolver.js +0 -1
  466. package/dist/managed-host/manage-serve-web-host.cjs +0 -141
  467. package/dist/managed-host/serve-web-autostart.js +0 -1
  468. package/dist/managed-host/serve-web-host.cjs +0 -2115
  469. package/dist/runtime/managed-runtime-provisioning.js +0 -1
  470. package/dist/shared/diagnostic-catalog.js +0 -1
  471. package/dist/shared/diagnostics.js +0 -1
  472. package/dist/shared/operations.js +0 -1
  473. package/dist/shared/protocol.js +0 -1
  474. package/dist/shared/routes.js +0 -1
  475. package/extension/vscode-refactor-bridge-extension.vsix +0 -0
  476. package/runtimes/launcher/linux-x64/aib +0 -0
  477. package/runtimes/launcher/win-x64/aib.exe +0 -0
@@ -0,0 +1,521 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.runSemanticMutationRuntime = runSemanticMutationRuntime;
37
+ exports.withSemanticOperationExecute = withSemanticOperationExecute;
38
+ exports.estimateSemanticMutationRowCount = estimateSemanticMutationRowCount;
39
+ const fs = __importStar(require("node:fs"));
40
+ const path = __importStar(require("node:path"));
41
+ const env_vars_1 = require("../config/env-vars");
42
+ const product_storage_1 = require("../config/product-storage");
43
+ const agent_text_1 = require("../shared/agent-text");
44
+ const errors_1 = require("../shared/errors");
45
+ const refactor_batch_execution_cache_1 = require("../commands/refactor-batch-execution-cache");
46
+ const refactor_batch_preview_cache_1 = require("../commands/refactor-batch-preview-cache");
47
+ const mutation_execution_cache_1 = require("../commands/mutation-execution-cache");
48
+ const runtime_lifecycle_1 = require("../session/runtime-lifecycle");
49
+ const mutation_recovery_journal_1 = require("../commands/mutation-recovery-journal");
50
+ const semantic_mutation_engine_1 = require("./semantic-mutation-engine");
51
+ async function runSemanticMutationRuntime(cwd, payload, options, action, runtimeOptions) {
52
+ if (action === "apply") {
53
+ if (!runtimeOptions.previewId) {
54
+ throw new errors_1.CliError("SEMANTIC_MUTATION_PREVIEW_ID_REQUIRED", "semantic mutation apply expects a preview id.");
55
+ }
56
+ const syncWaitMs = runtimeOptions.syncWaitMs ?? readSemanticMutationSyncWaitMs();
57
+ if (syncWaitMs > 0) {
58
+ const record = readValidatedSemanticPreviewRecord(cwd, runtimeOptions.previewId);
59
+ const normalizedPayload = withOperationExecute(record.normalizedPayload, true);
60
+ return runSemanticMutationPayloadWithExecution(cwd, normalizedPayload, options, action, runtimeOptions, syncWaitMs);
61
+ }
62
+ return applySemanticPreview(cwd, runtimeOptions.previewId, options, runtimeOptions);
63
+ }
64
+ if (!payload) {
65
+ throw new errors_1.CliError("SEMANTIC_MUTATION_PAYLOAD_REQUIRED", "semantic mutation expects a payload.");
66
+ }
67
+ if (action === "execute" && (runtimeOptions.syncWaitMs ?? readSemanticMutationSyncWaitMs()) > 0) {
68
+ return runSemanticMutationPayloadWithExecution(cwd, payload, options, action, runtimeOptions, runtimeOptions.syncWaitMs ?? readSemanticMutationSyncWaitMs());
69
+ }
70
+ return runSemanticMutationPayload(cwd, payload, options, action, runtimeOptions);
71
+ }
72
+ function withSemanticOperationExecute(rawPayload, execute) {
73
+ return withOperationExecute(rawPayload, execute);
74
+ }
75
+ function estimateSemanticMutationRowCount(payload) {
76
+ const operations = Array.isArray(payload.operations)
77
+ ? payload.operations
78
+ : Array.isArray(payload.requests)
79
+ ? payload.requests
80
+ : [];
81
+ let count = 0;
82
+ for (const operation of operations) {
83
+ if (!isJsonObject(operation)) {
84
+ count += 1;
85
+ continue;
86
+ }
87
+ const rawEntities = Array.isArray(operation.entities)
88
+ ? operation.entities
89
+ : Array.isArray(operation.symbols)
90
+ ? operation.symbols
91
+ : [];
92
+ const rawRenames = Array.isArray(operation.renames)
93
+ ? operation.renames
94
+ : isJsonObject(operation.renames)
95
+ ? Object.keys(operation.renames)
96
+ : [];
97
+ count += Math.max(1, rawEntities.length, rawRenames.length);
98
+ }
99
+ return Math.max(1, count);
100
+ }
101
+ async function applySemanticPreview(cwd, previewId, options, runtimeOptions) {
102
+ const record = readValidatedSemanticPreviewRecord(cwd, previewId);
103
+ return runSemanticMutationPayload(cwd, withOperationExecute(record.normalizedPayload, true), options, "apply", {
104
+ ...runtimeOptions,
105
+ previewId
106
+ });
107
+ }
108
+ function readValidatedSemanticPreviewRecord(cwd, previewId) {
109
+ const record = (0, refactor_batch_preview_cache_1.readRefactorBatchPreviewRecord)(cwd, previewId);
110
+ const changedFile = record.files.find((file) => {
111
+ const existed = fs.existsSync(file.file);
112
+ return existed !== file.existed || (0, refactor_batch_preview_cache_1.hashFileIfExists)(file.file) !== file.hash;
113
+ });
114
+ if (changedFile) {
115
+ throw new errors_1.CliError("SEMANTIC_MUTATION_PREVIEW_FILES_CHANGED", "Touched files changed after semantic mutation preview. Rerun preview.", {
116
+ previewId,
117
+ file: compactPath(cwd, changedFile.file)
118
+ });
119
+ }
120
+ return record;
121
+ }
122
+ async function runSemanticMutationPayloadWithExecution(cwd, payload, options, action, runtimeOptions, syncWaitMs) {
123
+ const executionId = (0, refactor_batch_execution_cache_1.buildRefactorBatchExecutionId)();
124
+ const operation = `${runtimeOptions.operationPrefix}.${action}`;
125
+ const estimatedDurationMs = estimateSemanticMutationDurationMs(payload);
126
+ const status = (0, refactor_batch_execution_cache_1.createRefactorBatchExecutionStatus)(cwd, executionId, operation, estimateSemanticMutationRowCount(payload));
127
+ (0, refactor_batch_execution_cache_1.writeRefactorBatchExecutionStatus)(cwd, status);
128
+ const startedAtMs = Date.now();
129
+ const backgroundEnv = captureSemanticMutationBackgroundEnv();
130
+ const executionOptions = {
131
+ ...options,
132
+ ...(options.metricsEnabled === true ? { semanticMoveMetricsExecutionId: executionId } : {}),
133
+ semanticRenameExecutionEvidence: {
134
+ beforeApply(writeSet) {
135
+ options.semanticRenameExecutionEvidence?.beforeApply(writeSet);
136
+ status.phase = "applying";
137
+ status.plannedWriteSet = [...writeSet];
138
+ status.potentiallyModifiedFiles = [...writeSet];
139
+ (0, refactor_batch_execution_cache_1.writeRefactorBatchExecutionStatus)(cwd, status);
140
+ },
141
+ afterProgress(progress) {
142
+ options.semanticRenameExecutionEvidence?.afterProgress?.(progress);
143
+ }
144
+ },
145
+ semanticMoveExecutionEvidence: {
146
+ beforeApply(writeSet) {
147
+ options.semanticMoveExecutionEvidence?.beforeApply(writeSet);
148
+ status.phase = "applying";
149
+ status.plannedWriteSet = [...writeSet];
150
+ status.potentiallyModifiedFiles = [...writeSet];
151
+ (0, refactor_batch_execution_cache_1.writeRefactorBatchExecutionStatus)(cwd, status);
152
+ },
153
+ afterProgress(progress) {
154
+ options.semanticMoveExecutionEvidence?.afterProgress?.(progress);
155
+ },
156
+ afterRoute(route) {
157
+ options.semanticMoveExecutionEvidence?.afterRoute?.(route);
158
+ }
159
+ }
160
+ };
161
+ const jobPromise = startSemanticMutationBackgroundJob(() => (0, product_storage_1.runWithProductStorageOverride)(backgroundEnv[env_vars_1.CLI_ENV.productStorageDir], () => withSemanticMutationBackgroundEnv(backgroundEnv, async () => {
162
+ try {
163
+ const output = await runSemanticMutationPayload(cwd, payload, executionOptions, action, runtimeOptions, executionId);
164
+ const rows = readResponseRows(output.result);
165
+ status.status = output.result.ok === false ? "failed" : "completed";
166
+ status.phase = "completed";
167
+ status.completedRows = rows.filter((row) => row.ok !== false).length;
168
+ status.failedRows = rows.filter((row) => row.ok === false).length;
169
+ status.filesWritten = collectFilesFromSemanticMutationResult(output.result);
170
+ status.potentiallyModifiedFiles = readStringArray(output.result.potentiallyModifiedFiles);
171
+ if (isJsonObject(output.result.journal)) {
172
+ status.journal = output.result.journal;
173
+ }
174
+ status.result = output.result;
175
+ if (output.result.ok === false) {
176
+ status.error = readString(output.result.code) ?? "SEMANTIC_MUTATION_FAILED";
177
+ }
178
+ (0, refactor_batch_execution_cache_1.writeRefactorBatchExecutionStatus)(cwd, status);
179
+ return output;
180
+ }
181
+ catch (error) {
182
+ status.status = "failed";
183
+ status.phase = "completed";
184
+ status.error = error instanceof Error ? error.message : String(error);
185
+ if (status.plannedWriteSet && status.potentiallyModifiedFiles === undefined) {
186
+ status.potentiallyModifiedFiles = [...status.plannedWriteSet];
187
+ }
188
+ (0, refactor_batch_execution_cache_1.writeRefactorBatchExecutionStatus)(cwd, status);
189
+ throw error;
190
+ }
191
+ })));
192
+ const waitResult = await waitForSemanticMutationJob(jobPromise, syncWaitMs);
193
+ if (waitResult.status === "result") {
194
+ return waitResult.result;
195
+ }
196
+ jobPromise.catch(() => undefined);
197
+ return {
198
+ result: buildSemanticMutationStillRunningResponse(cwd, executionId, operation, estimatedDurationMs, Date.now() - startedAtMs)
199
+ };
200
+ }
201
+ async function runSemanticMutationPayload(cwd, payload, options, action, runtimeOptions, executionId) {
202
+ await maybeDelaySemanticMutationForTest();
203
+ const operation = `${runtimeOptions.operationPrefix}.${action}`;
204
+ const engineResult = await (0, semantic_mutation_engine_1.runSemanticMutationEngine)(cwd, payload, options, operation);
205
+ const result = {
206
+ ...engineResult.result
207
+ };
208
+ if ((action === "preview" || action === "validate") && result.ok !== false) {
209
+ const normalizedPayload = withOperationExecute(payload, false);
210
+ const previewId = (0, refactor_batch_preview_cache_1.buildRefactorBatchPreviewId)(normalizedPayload);
211
+ const files = collectSemanticPreviewFiles(cwd, engineResult.builtBatch.payload);
212
+ const previewHash = (0, refactor_batch_preview_cache_1.buildRefactorBatchPreviewHash)(normalizedPayload, files, result);
213
+ (0, refactor_batch_preview_cache_1.writeRefactorBatchPreviewRecord)(cwd, {
214
+ previewId,
215
+ previewHash,
216
+ createdAt: new Date().toISOString(),
217
+ cwd: path.resolve(cwd),
218
+ normalizedPayload,
219
+ files,
220
+ builder: engineResult.builtBatch.summary,
221
+ previewResult: result
222
+ });
223
+ result.previewId = previewId;
224
+ result.next = `${runtimeOptions.previewApplyCommand} ${previewId}`;
225
+ }
226
+ const formatted = runtimeOptions.formatResult
227
+ ? runtimeOptions.formatResult(result, engineResult.builtBatch.summary, engineResult.response, action, {
228
+ ...(runtimeOptions.formatOptions ?? {}),
229
+ ...(typeof result.previewId === "string" ? { previewId: result.previewId } : {}),
230
+ ...(typeof result.next === "string" ? { next: result.next } : {})
231
+ })
232
+ : result;
233
+ if (executionId && (action === "execute" || action === "apply")) {
234
+ const journal = writeSemanticMutationJournal(cwd, executionId, operation, engineResult.builtBatch.payload, engineResult.builtBatch.summary, engineResult.response, formatted);
235
+ const journalSummary = (0, mutation_recovery_journal_1.mutationRecoveryJournalSummary)(journal);
236
+ if (journalSummary) {
237
+ formatted.journal = journalSummary;
238
+ }
239
+ }
240
+ return {
241
+ result: formatted,
242
+ builtBatch: engineResult.builtBatch.summary,
243
+ response: engineResult.response
244
+ };
245
+ }
246
+ function buildSemanticMutationStillRunningResponse(cwd, executionId, operation, estimatedDurationMs, elapsedMs) {
247
+ const status = (0, refactor_batch_execution_cache_1.readRefactorBatchExecutionStatus)(cwd, executionId);
248
+ const estimatedRemainingMs = Math.max(0, estimatedDurationMs - elapsedMs);
249
+ const response = {
250
+ operation: "execution.status",
251
+ executionId: status.executionId,
252
+ status: status.status,
253
+ phase: status.phase,
254
+ summary: buildSemanticMutationExecutionSummary(status),
255
+ progress: `${status.completedRows}/${status.rowCount}`,
256
+ filesWritten: status.filesWritten,
257
+ potentiallyModifiedFiles: status.potentiallyModifiedFiles ?? [],
258
+ updatedAt: status.updatedAt,
259
+ estimatedRemainingMs,
260
+ ...(status.journal ? { journal: status.journal } : {})
261
+ };
262
+ return (0, agent_text_1.attachAgentText)(response, formatSemanticMutationStillRunningText(operation, status, estimatedRemainingMs));
263
+ }
264
+ function formatSemanticMutationStillRunningText(operation, status, estimatedRemainingMs) {
265
+ return [
266
+ `${operation} ${status.executionId}`,
267
+ buildSemanticMutationExecutionSummary(status),
268
+ "applying mutation",
269
+ estimatedRemainingMs > 0
270
+ ? `estimated remaining: ${formatDuration(Math.max(estimatedRemainingMs, 5_000))}`
271
+ : "estimated remaining: check status again soon"
272
+ ].join("\n");
273
+ }
274
+ function buildSemanticMutationExecutionSummary(status) {
275
+ if (status.status === "completed") {
276
+ return `completed, ${status.completedRows}/${status.rowCount} rows, ${status.filesWritten.length} files written`;
277
+ }
278
+ if (status.status === "failed") {
279
+ return `failed, ${status.completedRows}/${status.rowCount} rows, ${status.failedRows} failed`;
280
+ }
281
+ return `in progress, ${status.completedRows}/${status.rowCount} rows`;
282
+ }
283
+ function writeSemanticMutationJournal(cwd, executionId, operation, builtPayload, builtSummary, response, result) {
284
+ const operations = readBuiltBatchOperations(builtPayload);
285
+ const journal = (0, mutation_recovery_journal_1.createSemanticMutationRecoveryJournal)(cwd, executionId, operation, operations.map((item) => ({
286
+ id: item.id,
287
+ kind: item.kind,
288
+ source: item.source,
289
+ target: item.target
290
+ })));
291
+ (0, mutation_recovery_journal_1.writeMutationRecoveryJournal)(cwd, journal);
292
+ (0, mutation_recovery_journal_1.writeMutationRecoveryPlan)(cwd, journal, {
293
+ builtPayload,
294
+ builtSummary
295
+ });
296
+ for (const operationRow of operations) {
297
+ (0, mutation_recovery_journal_1.updateMutationRecoveryJournalRow)(cwd, journal, operationRow.id, { phase: "started" });
298
+ (0, mutation_recovery_journal_1.writeMutationRecoveryDetail)(cwd, journal, "provider", operationRow.id, {
299
+ id: operationRow.id,
300
+ kind: operationRow.kind,
301
+ body: operationRow.body
302
+ });
303
+ }
304
+ const responseRows = readResponseRows({ response });
305
+ const responseRowById = new Map(responseRows.map((row) => [readString(row.id), row]));
306
+ for (const operationRow of operations) {
307
+ const responseRow = responseRowById.get(operationRow.id) ?? null;
308
+ if (!responseRow) {
309
+ continue;
310
+ }
311
+ (0, mutation_recovery_journal_1.writeMutationRecoveryDetail)(cwd, journal, "apply", operationRow.id, {
312
+ row: responseRow,
313
+ result: {
314
+ ok: result.ok !== false,
315
+ operation: readString(result.operation) ?? null
316
+ }
317
+ });
318
+ const error = readString(responseRow.error) ?? readString(responseRow.skipReason);
319
+ (0, mutation_recovery_journal_1.updateMutationRecoveryJournalRow)(cwd, journal, operationRow.id, {
320
+ phase: semanticJournalPhase(responseRow),
321
+ filesWritten: readStringArray(responseRow.savedFiles),
322
+ touchedFiles: readStringArray(responseRow.touchedFiles),
323
+ ...(error ? { error } : {})
324
+ });
325
+ }
326
+ return journal;
327
+ }
328
+ function readBuiltBatchOperations(payload) {
329
+ const operations = Array.isArray(payload.operations) ? payload.operations.filter(isJsonObject) : [];
330
+ return operations.map((operation, index) => {
331
+ const body = isJsonObject(operation.body) ? operation.body : {};
332
+ const kind = readString(operation.kind) ?? "operation";
333
+ return {
334
+ id: readString(operation.id) ?? `row-${index + 1}`,
335
+ kind,
336
+ source: readString(body.sourceFile) ?? "",
337
+ target: semanticOperationTarget(kind, body),
338
+ body
339
+ };
340
+ });
341
+ }
342
+ function semanticOperationTarget(kind, body) {
343
+ if (kind === "moveRefactor") {
344
+ return readString(body.targetFile) ?? "";
345
+ }
346
+ if (kind === "renameSymbol") {
347
+ return readString(body.newName) ?? "";
348
+ }
349
+ return "";
350
+ }
351
+ function semanticJournalPhase(row) {
352
+ if (row.skipped === true) {
353
+ return "skipped";
354
+ }
355
+ return row.ok === false ? "failed" : "completed";
356
+ }
357
+ function collectSemanticPreviewFiles(cwd, payload) {
358
+ const operations = Array.isArray(payload.operations) ? payload.operations.filter(isJsonObject) : [];
359
+ const files = new Set();
360
+ for (const operation of operations) {
361
+ const body = isJsonObject(operation.body) ? operation.body : {};
362
+ const sourceFile = readString(body.sourceFile);
363
+ const targetFile = readString(body.targetFile);
364
+ if (sourceFile) {
365
+ files.add(resolvePreviewPath(cwd, sourceFile));
366
+ }
367
+ if (targetFile) {
368
+ files.add(resolvePreviewPath(cwd, targetFile));
369
+ }
370
+ }
371
+ return Array.from(files)
372
+ .sort((left, right) => left.localeCompare(right))
373
+ .map((file) => ({
374
+ file,
375
+ existed: fs.existsSync(file),
376
+ hash: (0, refactor_batch_preview_cache_1.hashFileIfExists)(file)
377
+ }));
378
+ }
379
+ function collectFilesFromSemanticMutationResult(result) {
380
+ const rows = readResponseRows(result);
381
+ return uniqueStrings(rows.flatMap((row) => readStringArray(row.savedFiles)));
382
+ }
383
+ function readResponseRows(result) {
384
+ const response = isJsonObject(result.response) ? result.response : null;
385
+ return Array.isArray(response?.rows) ? response.rows.filter(isJsonObject) : [];
386
+ }
387
+ function withOperationExecute(rawPayload, execute) {
388
+ const operations = Array.isArray(rawPayload.operations)
389
+ ? rawPayload.operations
390
+ : Array.isArray(rawPayload.requests)
391
+ ? rawPayload.requests
392
+ : null;
393
+ if (!operations) {
394
+ return {
395
+ ...rawPayload,
396
+ execute
397
+ };
398
+ }
399
+ const { operations: _operations, ...payloadRest } = rawPayload;
400
+ return {
401
+ ...payloadRest,
402
+ requests: operations.map((operation) => operation && typeof operation === "object" && !Array.isArray(operation)
403
+ ? { ...operation, execute }
404
+ : operation),
405
+ execute
406
+ };
407
+ }
408
+ function estimateSemanticMutationDurationMs(payload) {
409
+ const rowCount = estimateSemanticMutationRowCount(payload);
410
+ return 12_000 + rowCount * 2_000;
411
+ }
412
+ function readSemanticMutationSyncWaitMs() {
413
+ return (0, mutation_execution_cache_1.readMutationSyncWaitMs)(process.env[env_vars_1.CLI_ENV.refactorBatchSyncWaitMs], 120_000);
414
+ }
415
+ function startSemanticMutationBackgroundJob(job) {
416
+ return (0, runtime_lifecycle_1.trackSessionBackgroundPromise)(new Promise((resolve, reject) => {
417
+ setImmediate(() => {
418
+ job().then(resolve, reject);
419
+ });
420
+ }), "semantic-mutation-background");
421
+ }
422
+ async function waitForSemanticMutationJob(jobPromise, deadlineMs) {
423
+ let timeout = null;
424
+ const deadlinePromise = new Promise((resolve) => {
425
+ timeout = setTimeout(() => resolve({ status: "deadline" }), Math.max(0, deadlineMs));
426
+ });
427
+ const result = await Promise.race([
428
+ jobPromise.then((value) => ({ status: "result", result: value })),
429
+ deadlinePromise
430
+ ]);
431
+ if (timeout) {
432
+ clearTimeout(timeout);
433
+ }
434
+ return result;
435
+ }
436
+ async function maybeDelaySemanticMutationForTest() {
437
+ const raw = process.env[env_vars_1.CLI_ENV.testRefactorBatchDelayMs];
438
+ if (!raw) {
439
+ return;
440
+ }
441
+ const delayMs = Number.parseInt(raw, 10);
442
+ if (!Number.isFinite(delayMs) || delayMs <= 0) {
443
+ return;
444
+ }
445
+ await new Promise((resolve) => setTimeout(resolve, Math.min(delayMs, 120_000)));
446
+ }
447
+ function captureSemanticMutationBackgroundEnv() {
448
+ const keys = [
449
+ env_vars_1.CLI_ENV.productStorageDir,
450
+ env_vars_1.CLI_ENV.trace,
451
+ env_vars_1.CLI_ENV.traceDir,
452
+ env_vars_1.CLI_ENV.metrics,
453
+ env_vars_1.CLI_ENV.metricsDir,
454
+ env_vars_1.CLI_ENV.metricsTag,
455
+ env_vars_1.CLI_ENV.mutationImpactMetrics,
456
+ env_vars_1.CLI_ENV.mutationImpactStream,
457
+ env_vars_1.CLI_ENV.semanticRenameDirectApply,
458
+ env_vars_1.CLI_ENV.testMoveToFileFailEntity,
459
+ env_vars_1.CLI_ENV.testRefactorBatchDelayMs
460
+ ];
461
+ const env = {};
462
+ for (const key of keys) {
463
+ env[key] = process.env[key];
464
+ }
465
+ return env;
466
+ }
467
+ async function withSemanticMutationBackgroundEnv(env, callback) {
468
+ const previous = {};
469
+ for (const [key, value] of Object.entries(env)) {
470
+ previous[key] = process.env[key];
471
+ if (value === undefined) {
472
+ delete process.env[key];
473
+ }
474
+ else {
475
+ process.env[key] = value;
476
+ }
477
+ }
478
+ try {
479
+ return await callback();
480
+ }
481
+ finally {
482
+ for (const [key, value] of Object.entries(previous)) {
483
+ if (value === undefined) {
484
+ delete process.env[key];
485
+ }
486
+ else {
487
+ process.env[key] = value;
488
+ }
489
+ }
490
+ }
491
+ }
492
+ function resolvePreviewPath(cwd, filePath) {
493
+ return path.normalize(path.isAbsolute(filePath) ? filePath : path.resolve(cwd, filePath));
494
+ }
495
+ function compactPath(cwd, filePath) {
496
+ const normalized = filePath.replace(/\\/g, "/");
497
+ const cwdNormalized = cwd.replace(/\\/g, "/").replace(/\/$/, "");
498
+ const lower = normalized.toLowerCase();
499
+ const cwdLower = cwdNormalized.toLowerCase();
500
+ return lower.startsWith(`${cwdLower}/`) ? normalized.slice(cwdNormalized.length + 1) : normalized;
501
+ }
502
+ function formatDuration(milliseconds) {
503
+ const seconds = Math.max(1, Math.round(milliseconds / 1000));
504
+ if (seconds < 60) {
505
+ return `~${seconds} sec`;
506
+ }
507
+ const minutes = Math.max(1, Math.round(seconds / 60));
508
+ return `~${minutes} min`;
509
+ }
510
+ function uniqueStrings(values) {
511
+ return Array.from(new Set(values));
512
+ }
513
+ function readString(value) {
514
+ return typeof value === "string" ? value : null;
515
+ }
516
+ function readStringArray(value) {
517
+ return Array.isArray(value) ? value.filter((item) => typeof item === "string") : [];
518
+ }
519
+ function isJsonObject(value) {
520
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
521
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SEMANTIC_PLANNER_RETRY_TESTING = void 0;
4
+ exports.runSemanticPlannerWithRetry = runSemanticPlannerWithRetry;
5
+ const RETRYABLE_STALE_PLAN_CODES = new Set([
6
+ "SEMANTIC_MOVE_SOURCE_SNAPSHOT_CHANGED",
7
+ "SEMANTIC_MOVE_EDIT_SNAPSHOT_CHANGED",
8
+ "SEMANTIC_MOVE_SNAPSHOT_CHANGED",
9
+ "SEMANTIC_RENAME_SOURCE_SNAPSHOT_CHANGED",
10
+ "SEMANTIC_RENAME_EDIT_SNAPSHOT_CHANGED",
11
+ "SEMANTIC_RENAME_SNAPSHOT_CHANGED"
12
+ ]);
13
+ const DEFAULT_MAX_ATTEMPTS = 2;
14
+ async function runSemanticPlannerWithRetry(runAttempt, maxAttempts = DEFAULT_MAX_ATTEMPTS) {
15
+ const boundedAttempts = Math.max(1, Math.floor(maxAttempts));
16
+ let result = await runAttempt(1);
17
+ for (let attempt = 2; attempt <= boundedAttempts; attempt += 1) {
18
+ if (result.complete || !RETRYABLE_STALE_PLAN_CODES.has(result.code))
19
+ return result;
20
+ result = await runAttempt(attempt);
21
+ }
22
+ return result;
23
+ }
24
+ exports.SEMANTIC_PLANNER_RETRY_TESTING = {
25
+ defaultMaxAttempts: DEFAULT_MAX_ATTEMPTS
26
+ };
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.focusedSemanticProgramRootFiles = focusedSemanticProgramRootFiles;
37
+ const path = __importStar(require("node:path"));
38
+ function focusedSemanticProgramRootFiles(input) {
39
+ if (!input.discovery.complete) {
40
+ throw new Error("Focused semantic Program roots require complete neutral discovery.");
41
+ }
42
+ const configKey = pathKey(input.configFilePath);
43
+ return uniquePaths([
44
+ ...input.requiredFiles,
45
+ ...input.discovery.fileOwners
46
+ .filter((entry) => entry.ownerConfigs.some((config) => pathKey(config) === configKey))
47
+ .map((entry) => entry.file),
48
+ ...input.discovery.semanticEnvironmentFiles
49
+ .filter((entry) => entry.ownerConfigs.some((config) => pathKey(config) === configKey))
50
+ .map((entry) => entry.file)
51
+ ]);
52
+ }
53
+ function uniquePaths(files) {
54
+ const seen = new Set();
55
+ const output = [];
56
+ for (const file of files) {
57
+ const resolved = path.resolve(file);
58
+ const key = pathKey(resolved);
59
+ if (seen.has(key))
60
+ continue;
61
+ seen.add(key);
62
+ output.push(resolved);
63
+ }
64
+ return output;
65
+ }
66
+ function pathKey(file) {
67
+ const normalized = path.resolve(file);
68
+ return process.platform === "win32" ? normalized.toLowerCase() : normalized;
69
+ }