@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,638 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSingleModulePlanPayload = isSingleModulePlanPayload;
4
+ exports.isSingleFilePayload = isSingleFilePayload;
5
+ exports.estimateMutateSegmentDurationMs = estimateMutateSegmentDurationMs;
6
+ exports.applySingleModulePlanMutate = applySingleModulePlanMutate;
7
+ exports.applySingleFileMutate = applySingleFileMutate;
8
+ exports.executeSingleModulePlanMutate = executeSingleModulePlanMutate;
9
+ exports.executeSingleFileMutate = executeSingleFileMutate;
10
+ exports.applyMutateSegment = applyMutateSegment;
11
+ exports.runMutateSegment = runMutateSegment;
12
+ exports.runExportsStarMutatePreviewBatch = runExportsStarMutatePreviewBatch;
13
+ exports.formatTransparentMutateText = formatTransparentMutateText;
14
+ exports.formatTransparentAppliedMutateText = formatTransparentAppliedMutateText;
15
+ exports.formatReadyModulePlanSummary = formatReadyModulePlanSummary;
16
+ const agent_text_1 = require("../shared/agent-text");
17
+ const env_vars_1 = require("../config/env-vars");
18
+ const errors_1 = require("../shared/errors");
19
+ const semantic_mutation_runtime_1 = require("../mutation/semantic-mutation-runtime");
20
+ const apply_module_plan_1 = require("./apply-module-plan");
21
+ const file_mutation_runtime_1 = require("./file-mutation-runtime");
22
+ const file_move_to_dir_1 = require("./file-move-to-dir");
23
+ const file_rename_1 = require("./file-rename");
24
+ const file_refactor_batch_1 = require("./file-refactor-batch");
25
+ const normalize_imports_1 = require("./normalize-imports");
26
+ const imports_rebase_1 = require("./imports-rebase");
27
+ const declaration_command_1 = require("./declaration-command");
28
+ const object_pack_command_1 = require("./object-pack-command");
29
+ const exports_star_command_1 = require("./exports-star-command");
30
+ const exports_star_collapse_command_1 = require("./exports-star-collapse-command");
31
+ const module_plan_cache_1 = require("./module-plan-cache");
32
+ const module_plan_timeout_1 = require("./module-plan-timeout");
33
+ const rename_polling_policy_1 = require("./rename-polling-policy");
34
+ const refactor_batch_1 = require("./refactor-batch");
35
+ const rename_entities_1 = require("./rename-entities");
36
+ function isSingleModulePlanPayload(payload) {
37
+ return payload.segments.length === 1 && payload.segments[0]?.kind === "modulePlan";
38
+ }
39
+ function isSingleFilePayload(payload) {
40
+ return payload.segments.length === 1 && payload.segments[0]?.kind === "file";
41
+ }
42
+ function estimateMutateSegmentDurationMs(segment) {
43
+ const response = isObject(segment.response)
44
+ ? segment.response
45
+ : undefined;
46
+ const responseEstimate = readResponseEstimateMs(response);
47
+ if (responseEstimate !== null) {
48
+ return responseEstimate;
49
+ }
50
+ if (segment.kind === "semantic") {
51
+ const renameRowCount = (0, rename_polling_policy_1.countRenameOnlySemanticRows)([segment]) ??
52
+ (0, rename_polling_policy_1.countRenameOnlySemanticBuilderRows)(response?.builder);
53
+ if (renameRowCount !== null) {
54
+ return 12_000 + renameRowCount * 2_000;
55
+ }
56
+ const requests = response ? readResponseRows(response) : readObjectArray(segment.requests);
57
+ return 12_000 + Math.max(1, requests.length) * 2_000;
58
+ }
59
+ if (segment.kind === "file") {
60
+ const operations = response ? readResponseRows(response) : readObjectArray(segment.operations);
61
+ const targetDirs = new Set();
62
+ for (const operation of operations) {
63
+ const targetDir = readString(operation.targetDir);
64
+ const targetFile = readString(operation.targetFile);
65
+ if (targetDir) {
66
+ targetDirs.add(targetDir);
67
+ }
68
+ else if (targetFile) {
69
+ targetDirs.add(targetFile.replace(/[\\/][^\\/]*$/, ""));
70
+ }
71
+ }
72
+ return (0, file_mutation_runtime_1.estimateFileMutationDurationMs)({
73
+ rowCount: Math.max(1, operations.length),
74
+ targetDirCount: targetDirs.size,
75
+ dirsToCreate: targetDirs.size
76
+ });
77
+ }
78
+ if (segment.kind === "modulePlan") {
79
+ const modules = response ? readResponseRows(response) : readObjectArray(segment.modules);
80
+ const symbolCount = response
81
+ ? readNumber(response.symbolCount) ?? modules.length
82
+ : modules.reduce((count, module) => count + readModuleEntityCount(module), 0);
83
+ return (0, module_plan_timeout_1.estimateModulePlanDurationMs)(Math.max(1, modules.length), Math.max(1, symbolCount));
84
+ }
85
+ if (segment.kind === "imports.normalize" || segment.kind === "imports.rebase") {
86
+ return 5_000;
87
+ }
88
+ if (segment.kind === "declaration") {
89
+ return 8_000;
90
+ }
91
+ if (segment.kind === "exports.object") {
92
+ return 8_000;
93
+ }
94
+ if (segment.kind === "exports.star") {
95
+ return 12_000;
96
+ }
97
+ return 14_000;
98
+ }
99
+ async function applySingleModulePlanMutate(cwd, previewId, segment, options) {
100
+ const response = await (0, apply_module_plan_1.runApplyModulePlan)(cwd, ["--plan", segment.childId], undefined, options, { executionId: (0, module_plan_cache_1.buildModulePlanExecutionId)(segment.childId) });
101
+ const projected = withModulePlanMutateResultModel(response);
102
+ return (0, agent_text_1.attachAgentText)(projected, formatModulePlanMutateText("apply", previewId, response, segment.childId));
103
+ }
104
+ async function applySingleFileMutate(cwd, previewId, segment, options) {
105
+ const response = await applyFilePreviewSegment(cwd, segment, options);
106
+ return (0, agent_text_1.attachAgentText)(response, formatFileMutateText("apply", previewId, response, segment.childId));
107
+ }
108
+ async function executeSingleModulePlanMutate(cwd, segment, options) {
109
+ const executionId = options.modulePlanExecutionId ?? (0, module_plan_cache_1.buildModulePlanExecutionId)();
110
+ const response = await (0, apply_module_plan_1.runApplyModulePlan)(cwd, ["--execute"], modulePlanPayload(segment), options, { executionId });
111
+ const projected = withModulePlanMutateResultModel(response);
112
+ return (0, agent_text_1.attachAgentText)(projected, formatModulePlanMutateText("execute", undefined, response, undefined, executionId));
113
+ }
114
+ async function executeSingleFileMutate(cwd, segment, options) {
115
+ const response = await runFileSegment(cwd, segment, "execute", options);
116
+ return (0, agent_text_1.attachAgentText)(response, formatFileMutateText("execute", undefined, response, undefined));
117
+ }
118
+ async function applyMutateSegment(cwd, segment, options) {
119
+ if (segment.kind === "semantic") {
120
+ const runtime = await (0, semantic_mutation_runtime_1.runSemanticMutationRuntime)(cwd, undefined, options, "apply", {
121
+ operationPrefix: "mutate",
122
+ previewApplyCommand: "aib mutate apply",
123
+ previewId: segment.childId,
124
+ syncWaitMs: 0,
125
+ formatResult: (result) => result
126
+ });
127
+ return withSemanticRuntimeInternals(runtime);
128
+ }
129
+ if (segment.kind === "file") {
130
+ return withChildSyncWaitForFullResult(() => applyFilePreviewSegment(cwd, segment, options));
131
+ }
132
+ if (segment.kind === "modulePlan") {
133
+ return withChildSyncWaitForFullResult(() => (0, apply_module_plan_1.runApplyModulePlan)(cwd, ["--plan", segment.childId], undefined, options));
134
+ }
135
+ if (segment.kind === "imports.normalize") {
136
+ return (0, normalize_imports_1.runNormalizeImports)(cwd, ["apply", segment.childId], undefined);
137
+ }
138
+ if (segment.kind === "imports.rebase") {
139
+ return (0, imports_rebase_1.runImportsRebase)(cwd, ["apply", segment.childId], undefined);
140
+ }
141
+ if (segment.kind === "declaration") {
142
+ return (0, declaration_command_1.runDeclarationCommand)(cwd, [readDeclarationOperation(segment.response), "apply", segment.childId], undefined, options);
143
+ }
144
+ if (segment.kind === "exports.object") {
145
+ return (0, object_pack_command_1.applyObjectPackPreview)(cwd, segment.childId);
146
+ }
147
+ if (segment.kind === "exports.star") {
148
+ return (0, exports_star_command_1.applyExportsStarPreview)(cwd, segment.childId);
149
+ }
150
+ throw new errors_1.CliError("MUTATE_SEGMENT_KIND_UNSUPPORTED", `Unsupported mutate segment kind: ${segment.kind}`);
151
+ }
152
+ async function runMutateSegment(cwd, segment, action, options) {
153
+ if (segment.kind === "semantic") {
154
+ const runtime = await (0, semantic_mutation_runtime_1.runSemanticMutationRuntime)(cwd, (0, semantic_mutation_runtime_1.withSemanticOperationExecute)({ requests: readObjectArray(segment.requests) }, action === "execute"), options, action, {
155
+ operationPrefix: "mutate",
156
+ previewApplyCommand: "aib mutate apply",
157
+ syncWaitMs: 0,
158
+ formatResult: (result) => result
159
+ });
160
+ return withSemanticRuntimeInternals(runtime);
161
+ }
162
+ if (segment.kind === "file") {
163
+ return action === "execute"
164
+ ? withChildSyncWaitForFullResult(() => runFileSegment(cwd, segment, action, options))
165
+ : runFileSegment(cwd, segment, action, options);
166
+ }
167
+ if (segment.kind === "modulePlan") {
168
+ return action === "execute"
169
+ ? withChildSyncWaitForFullResult(() => (0, apply_module_plan_1.runApplyModulePlan)(cwd, ["--execute"], modulePlanPayload(segment), options))
170
+ : (0, apply_module_plan_1.runApplyModulePlan)(cwd, [], modulePlanPayload(segment), options);
171
+ }
172
+ if (segment.kind === "imports.normalize") {
173
+ return (0, normalize_imports_1.runNormalizeImports)(cwd, [action], importsNormalizePayload(segment));
174
+ }
175
+ if (segment.kind === "imports.rebase") {
176
+ return (0, imports_rebase_1.runImportsRebase)(cwd, [action], importsNormalizePayload(segment));
177
+ }
178
+ if (segment.kind === "declaration") {
179
+ const request = declarationPayload(segment);
180
+ return (0, declaration_command_1.runDeclarationCommand)(cwd, [readDeclarationOperation(request), action], request, options);
181
+ }
182
+ if (segment.kind === "exports.object") {
183
+ return (0, object_pack_command_1.runObjectPackSegment)(cwd, segment, action);
184
+ }
185
+ if (segment.kind === "exports.star") {
186
+ if (segment.operation === "collapse")
187
+ return (0, exports_star_collapse_command_1.runExportsStarCollapseSegment)(cwd, segment, action);
188
+ return (0, exports_star_command_1.runExportsStarSegment)(cwd, segment, action);
189
+ }
190
+ throw new errors_1.CliError("MUTATE_SEGMENT_KIND_UNSUPPORTED", `Unsupported mutate segment kind: ${String(segment.kind)}`);
191
+ }
192
+ function runExportsStarMutatePreviewBatch(cwd, segments, semanticContextPool) {
193
+ if (segments.every((segment) => segment.operation === "collapse")) {
194
+ return (0, exports_star_collapse_command_1.runExportsStarCollapsePreviewBatch)(cwd, segments, semanticContextPool, true);
195
+ }
196
+ return (0, exports_star_command_1.runExportsStarPreviewBatch)(cwd, segments, semanticContextPool, true);
197
+ }
198
+ function formatTransparentMutateText(cwd, action, previewId, segments, responses, previews = []) {
199
+ if (segments.length > 0 && segments.every((segment) => segment.kind === "exports.star")) {
200
+ if (segments.every((segment) => segment.operation === "collapse")) {
201
+ return (0, exports_star_collapse_command_1.formatExportsStarCollapseBatchText)(responses, action);
202
+ }
203
+ return (0, exports_star_command_1.formatExportsStarMutateBatchText)(responses, action);
204
+ }
205
+ if (segments.length !== 1 || responses.length !== 1) {
206
+ return null;
207
+ }
208
+ if (segments[0]?.kind === "semantic") {
209
+ return formatSemanticMutateText(cwd, action, previewId, responses[0], previews[0]?.childId);
210
+ }
211
+ if (segments[0]?.kind === "modulePlan") {
212
+ return formatModulePlanMutateText(action, previewId, responses[0], previews[0]?.childId);
213
+ }
214
+ if (segments[0]?.kind === "file") {
215
+ return formatFileMutateText(action, previewId, responses[0], previews[0]?.childId);
216
+ }
217
+ if (segments[0]?.kind === "imports.normalize") {
218
+ return null;
219
+ }
220
+ if (segments[0]?.kind === "imports.rebase") {
221
+ return formatImportsMutateText(action, previewId, responses[0], previews[0]?.childId);
222
+ }
223
+ if (segments[0]?.kind === "declaration") {
224
+ return null;
225
+ }
226
+ if (segments[0]?.kind === "exports.object") {
227
+ return (0, object_pack_command_1.formatObjectPackMutateText)(cwd, action, previewId, responses[0], previews[0]?.childId);
228
+ }
229
+ if (segments[0]?.kind === "exports.star" && action === "preview") {
230
+ return (0, exports_star_command_1.formatExportsStarMutateText)(responses[0]);
231
+ }
232
+ return null;
233
+ }
234
+ function formatTransparentAppliedMutateText(cwd, action, previewId, segments, responses) {
235
+ if (segments.length !== 1 || responses.length !== 1) {
236
+ return null;
237
+ }
238
+ if (segments[0]?.kind === "semantic") {
239
+ return formatSemanticMutateText(cwd, action, previewId, responses[0], segments[0]?.childId);
240
+ }
241
+ if (segments[0]?.kind === "modulePlan") {
242
+ return formatModulePlanMutateText(action, previewId, responses[0], segments[0]?.childId);
243
+ }
244
+ if (segments[0]?.kind === "file") {
245
+ return formatFileMutateText(action, previewId, responses[0], segments[0]?.childId);
246
+ }
247
+ if (segments[0]?.kind === "imports.normalize") {
248
+ return null;
249
+ }
250
+ if (segments[0]?.kind === "imports.rebase") {
251
+ return formatImportsMutateText(action, previewId, responses[0], segments[0]?.childId);
252
+ }
253
+ if (segments[0]?.kind === "declaration") {
254
+ return null;
255
+ }
256
+ if (segments[0]?.kind === "exports.object") {
257
+ return (0, object_pack_command_1.formatObjectPackMutateText)(cwd, action, previewId, responses[0], segments[0]?.childId);
258
+ }
259
+ if (segments[0]?.kind === "exports.star" && readString(segments[0]?.response.operation) === "exports.star.collapse.preview") {
260
+ return (0, exports_star_collapse_command_1.formatExportsStarCollapseBatchText)(responses, "apply");
261
+ }
262
+ return null;
263
+ }
264
+ function modulePlanPayload(segment) {
265
+ return {
266
+ sourceFile: String(segment.sourceFile ?? ""),
267
+ modules: readObjectArray(segment.modules),
268
+ ...(segment.expectEmpty === true ? { expectEmpty: true } : {})
269
+ };
270
+ }
271
+ function runFileSegment(cwd, segment, action, options) {
272
+ const operations = readObjectArray(segment.operations);
273
+ if (operations.length > 0 && operations.every((operation) => operation.kind === "fileMoveToDir")) {
274
+ return (0, file_move_to_dir_1.runFileMoveToDir)(cwd, fileMoveToDirPayload(operations), options, [action]);
275
+ }
276
+ if (operations.length > 0 && operations.every((operation) => operation.kind === "fileRename")) {
277
+ return (0, file_rename_1.runFileRename)(cwd, fileRenamePayload(operations), options, [action]);
278
+ }
279
+ return (0, file_refactor_batch_1.runFileRefactorBatch)(cwd, { operations }, options, [action]);
280
+ }
281
+ function applyFilePreviewSegment(cwd, segment, options) {
282
+ const operation = readString(segment.response.operation) ?? "";
283
+ if (operation.startsWith("move.toDir.")) {
284
+ return (0, file_move_to_dir_1.runFileMoveToDir)(cwd, undefined, options, ["apply", segment.childId]);
285
+ }
286
+ if (operation.startsWith("file.rename.")) {
287
+ return (0, file_rename_1.runFileRename)(cwd, undefined, options, ["apply", segment.childId]);
288
+ }
289
+ return (0, file_refactor_batch_1.runFileRefactorBatch)(cwd, undefined, options, ["apply", segment.childId]);
290
+ }
291
+ function importsNormalizePayload(segment) {
292
+ return isObject(segment.request) ? segment.request : {};
293
+ }
294
+ function declarationPayload(segment) {
295
+ const request = isObject(segment.request) ? segment.request : {};
296
+ return readDeclarationOperation(request) === "remove"
297
+ ? { ...request, continueOnFailure: true }
298
+ : request;
299
+ }
300
+ function fileMoveToDirPayload(operations) {
301
+ const moves = new Map();
302
+ for (const operation of operations) {
303
+ const targetDir = String(operation.targetDir ?? "");
304
+ const sourceFile = String(operation.sourceFile ?? "");
305
+ moves.set(targetDir, [...(moves.get(targetDir) ?? []), sourceFile]);
306
+ }
307
+ return {
308
+ base: ".",
309
+ moves: Array.from(moves.entries()).map(([targetDir, files]) => ({ targetDir, files }))
310
+ };
311
+ }
312
+ function fileRenamePayload(operations) {
313
+ return {
314
+ base: ".",
315
+ renames: operations.map((operation) => ({
316
+ source: String(operation.sourceFile ?? ""),
317
+ target: String(operation.targetFile ?? "")
318
+ }))
319
+ };
320
+ }
321
+ function withSemanticRuntimeInternals(runtime) {
322
+ return {
323
+ ...runtime.result,
324
+ ...(runtime.builtBatch ? { builder: runtime.builtBatch } : {}),
325
+ ...(runtime.response ? { response: runtime.response } : {})
326
+ };
327
+ }
328
+ function withModulePlanMutateResultModel(response) {
329
+ const rows = readResponseRows(response);
330
+ const blocking = readObjectArray(response.blocking);
331
+ const manualExtractionRequired = rows.flatMap((row) => readObjectArray(row.manualExtractionRequired));
332
+ const notRun = readObjectArray(response.notRun);
333
+ const filesWritten = readStringArray(response.filesWritten);
334
+ const filesTouched = uniqueStrings([
335
+ ...readStringArray(response.filesTouched),
336
+ ...filesWritten
337
+ ]);
338
+ const completedCount = rows
339
+ .filter((row) => row.ok !== false)
340
+ .reduce((count, row) => count + Math.max(1, readStringArray(row.entities).length), 0);
341
+ const failedRows = rows.filter((row) => row.ok === false);
342
+ const manualExtractionCount = manualExtractionRequired.length;
343
+ const notRunCount = notRun.reduce((count, row) => count + Math.max(1, readStringArray(row.entities).length), 0);
344
+ const requestedCount = rows.reduce((count, row) => count + Math.max(1, readStringArray(row.entities).length), 0) + notRunCount;
345
+ const status = classifyModulePlanMutateStatus({
346
+ response,
347
+ completedCount,
348
+ failedCount: failedRows.length,
349
+ blockingCount: blocking.length,
350
+ manualExtractionCount,
351
+ notRunCount,
352
+ filesWrittenCount: filesWritten.length
353
+ });
354
+ const resultModel = compactObject({
355
+ status,
356
+ ok: status === "completed",
357
+ requestedCount,
358
+ completedCount,
359
+ failedCount: failedRows.length,
360
+ blockedCount: blocking.length,
361
+ manualExtractionCount,
362
+ skippedCount: 0,
363
+ notRunCount,
364
+ filesWritten,
365
+ filesTouched,
366
+ rows,
367
+ blocking,
368
+ manualExtractionRequired,
369
+ notRun,
370
+ firstFailure: failedRows[0] ?? blocking[0] ?? null,
371
+ next: readString(response.next)
372
+ });
373
+ return compactObject({
374
+ ...response,
375
+ ...(response.ok === false ? { ok: false } : { ok: status === "completed" }),
376
+ status,
377
+ resultModel
378
+ });
379
+ }
380
+ function classifyModulePlanMutateStatus(input) {
381
+ if (input.response.ok === false) {
382
+ if (input.completedCount > 0 || input.filesWrittenCount > 0) {
383
+ return "partial";
384
+ }
385
+ if (input.blockingCount > 0 || input.manualExtractionCount > 0) {
386
+ return "blocked";
387
+ }
388
+ return "failed";
389
+ }
390
+ if (input.failedCount > 0 || input.notRunCount > 0 || input.manualExtractionCount > 0) {
391
+ return input.completedCount > 0 || input.filesWrittenCount > 0 ? "partial" : "blocked";
392
+ }
393
+ if (input.blockingCount > 0) {
394
+ return "blocked";
395
+ }
396
+ return "completed";
397
+ }
398
+ function formatSemanticMutateText(cwd, action, previewId, response, childPreviewId) {
399
+ const builder = isObject(response.builder) ? response.builder : null;
400
+ const semanticResponse = isObject(response.response) ? response.response : null;
401
+ if (!builder || !semanticResponse) {
402
+ return null;
403
+ }
404
+ if (isRenameOnlySemanticBuilder(builder) && action !== "preview") {
405
+ const renameResponse = (0, rename_entities_1.buildSemanticRenameResponse)(cwd, response, builder, semanticResponse, action, {
406
+ routedFrom: "rename",
407
+ ...(childPreviewId ? { previewId: childPreviewId } : {})
408
+ });
409
+ const text = (0, agent_text_1.readAgentText)(renameResponse);
410
+ if (!text) {
411
+ return null;
412
+ }
413
+ if (action === "apply" && previewId) {
414
+ return replaceFirstLine(text, `mutate.apply ${previewId}`);
415
+ }
416
+ return replaceFirstLine(text, "mutate.execute");
417
+ }
418
+ const text = (0, refactor_batch_1.formatRefactorBatchAgentText)(cwd, builder, semanticResponse, action, {
419
+ operationLabel: "mutate",
420
+ ...(action === "preview" && previewId ? { previewId } : {}),
421
+ ...(action === "preview" && previewId ? { next: `aib mutate apply ${previewId}` } : {}),
422
+ includeTouchedFiles: true
423
+ });
424
+ if (!text) {
425
+ return null;
426
+ }
427
+ if (action === "apply" && previewId) {
428
+ return replaceFirstLine(text, `mutate.apply ${previewId}`);
429
+ }
430
+ if (action === "preview" && previewId && childPreviewId) {
431
+ return text.replace(childPreviewId, previewId);
432
+ }
433
+ return text;
434
+ }
435
+ function isRenameOnlySemanticBuilder(builder) {
436
+ const rows = Array.isArray(builder.rows) ? builder.rows.filter(isObject) : [];
437
+ return rows.length > 0 && rows.every((row) => row.op === "rename");
438
+ }
439
+ function formatModulePlanMutateText(action, previewId, response, childPreviewId, executionId) {
440
+ const text = (0, agent_text_1.readAgentText)(response) ?? (0, apply_module_plan_1.formatModulePlanText)(response);
441
+ if (!text) {
442
+ return null;
443
+ }
444
+ if (action === "preview") {
445
+ if (!previewId) {
446
+ return null;
447
+ }
448
+ const rows = readObjectArray(response.rows);
449
+ if (rows.length > 0 && response.ok !== false && rows.every((row) => row.ok !== false)) {
450
+ return [
451
+ `mutate.preview ${previewId}`,
452
+ formatReadyModulePlanSummary(rows),
453
+ `next: aib mutate apply ${previewId}`
454
+ ].join("\n");
455
+ }
456
+ const next = childPreviewId
457
+ ? text.replace(`aib modulePlan apply ${childPreviewId}`, `aib mutate apply ${previewId}`)
458
+ : text;
459
+ return replaceFirstLine(next, `mutate.preview ${previewId}`);
460
+ }
461
+ if (action === "apply") {
462
+ if (!previewId) {
463
+ return null;
464
+ }
465
+ return replaceFirstLine(text, `mutate.apply ${previewId}`);
466
+ }
467
+ const responseExecutionId = readString(response.executionId) ?? executionId;
468
+ return replaceFirstLine(text, responseExecutionId ? `mutate.execute ${responseExecutionId}` : "mutate.execute");
469
+ }
470
+ function formatReadyModulePlanSummary(rows) {
471
+ const symbolCount = rows.reduce((count, row) => count + readStringArray(row.entities).length, 0);
472
+ const targetCount = rows.length;
473
+ return `${symbolCount} ${symbolCount === 1 ? "symbol" : "symbols"}, ${targetCount} ${targetCount === 1 ? "target" : "targets"} ready`;
474
+ }
475
+ function formatFileMutateText(action, previewId, response, childPreviewId) {
476
+ const text = (0, agent_text_1.readAgentText)(response);
477
+ if (!text) {
478
+ return null;
479
+ }
480
+ if (action === "preview") {
481
+ if (!previewId) {
482
+ return null;
483
+ }
484
+ return replaceFirstLine(replaceFileApplyNext(text, childPreviewId, previewId), `mutate.preview ${previewId}`);
485
+ }
486
+ if (action === "apply") {
487
+ const runningExecutionId = response.operation === "execution.status" ? readString(response.executionId) : null;
488
+ const id = runningExecutionId ?? previewId;
489
+ return replaceFirstLine(text, id ? `mutate.apply ${id}` : "mutate.apply");
490
+ }
491
+ const executionId = readString(response.executionId);
492
+ return replaceFirstLine(text, executionId ? `mutate.execute ${executionId}` : "mutate.execute");
493
+ }
494
+ function replaceFileApplyNext(text, childPreviewId, previewId) {
495
+ if (!childPreviewId) {
496
+ return text;
497
+ }
498
+ return text
499
+ .replace(`aib file move toDir apply ${childPreviewId}`, `aib mutate apply ${previewId}`)
500
+ .replace(`aib file rename apply ${childPreviewId}`, `aib mutate apply ${previewId}`)
501
+ .replace(`aib file refactor batch apply ${childPreviewId}`, `aib mutate apply ${previewId}`);
502
+ }
503
+ function formatImportsMutateText(action, previewId, response, childPreviewId) {
504
+ const text = (0, agent_text_1.readAgentText)(response) ?? formatImportsAgentText(response);
505
+ if (!text) {
506
+ return null;
507
+ }
508
+ if (action === "preview") {
509
+ if (!previewId) {
510
+ return null;
511
+ }
512
+ const next = childPreviewId
513
+ ? text.replace(`aib imports normalize apply ${childPreviewId}`, `aib mutate apply ${previewId}`)
514
+ : text;
515
+ return replaceFirstLine(next, `mutate.preview ${previewId}`);
516
+ }
517
+ if (action === "apply") {
518
+ return replaceFirstLine(text, previewId ? `mutate.apply ${previewId}` : "mutate.apply");
519
+ }
520
+ return replaceFirstLine(text, "mutate.execute");
521
+ }
522
+ function formatImportsAgentText(response) {
523
+ const operation = readString(response.operation);
524
+ if (operation !== "imports.normalize" && operation !== "imports.normalizeBatch" && operation !== "imports.useBarrel" && operation !== "imports.useDirect") {
525
+ return null;
526
+ }
527
+ if (operation === "imports.useBarrel" || operation === "imports.useDirect") {
528
+ return (0, agent_text_1.readAgentText)(response);
529
+ }
530
+ const mode = readString(response.mode);
531
+ const id = readString(response.planId);
532
+ const header = mode === "preview" && id ? `imports.normalize.preview ${id}` : mode === "apply" ? "imports.normalize.apply" : "imports.normalize.execute";
533
+ const filesChanged = readNumber(response.filesChanged) ?? 0;
534
+ const edits = readNumber(response.edits) ?? 0;
535
+ const lines = [
536
+ header,
537
+ `${edits} ${edits === 1 ? "edit" : "edits"}, ${filesChanged} ${filesChanged === 1 ? "file" : "files"} ${mode === "preview" ? "will be written" : "written"}`
538
+ ];
539
+ const next = readString(response.next);
540
+ if (next) {
541
+ lines.push(`next: ${next}`);
542
+ }
543
+ return lines.join("\n");
544
+ }
545
+ function readDeclarationOperation(value) {
546
+ const operation = readString(value.operation);
547
+ return operation === "addMissing" ? "addMissing" : "remove";
548
+ }
549
+ function replaceFirstLine(text, firstLine) {
550
+ const lines = text.split("\n");
551
+ lines[0] = firstLine;
552
+ return lines.join("\n");
553
+ }
554
+ function readString(value) {
555
+ return typeof value === "string" ? value : null;
556
+ }
557
+ function readStringArray(value) {
558
+ return Array.isArray(value) ? value.filter((item) => typeof item === "string") : [];
559
+ }
560
+ function uniqueStrings(values) {
561
+ return [...new Set(values)];
562
+ }
563
+ function compactObject(input) {
564
+ return Object.fromEntries(Object.entries(input).filter(([, value]) => {
565
+ if (value === undefined || value === null) {
566
+ return false;
567
+ }
568
+ if (Array.isArray(value) && value.length === 0) {
569
+ return false;
570
+ }
571
+ if (isObject(value) && Object.keys(value).length === 0) {
572
+ return false;
573
+ }
574
+ return true;
575
+ }));
576
+ }
577
+ async function withChildSyncWaitForFullResult(callback) {
578
+ const keys = [
579
+ env_vars_1.CLI_ENV.modulePlanSyncWaitMs,
580
+ env_vars_1.CLI_ENV.fileMoveToDirSyncWaitMs,
581
+ env_vars_1.CLI_ENV.fileRenameSyncWaitMs,
582
+ env_vars_1.CLI_ENV.fileRefactorBatchSyncWaitMs,
583
+ env_vars_1.CLI_ENV.refactorBatchSyncWaitMs
584
+ ];
585
+ const previous = new Map();
586
+ for (const key of keys) {
587
+ previous.set(key, process.env[key]);
588
+ process.env[key] = "600000";
589
+ }
590
+ try {
591
+ return await callback();
592
+ }
593
+ finally {
594
+ for (const [key, value] of previous.entries()) {
595
+ if (value === undefined) {
596
+ delete process.env[key];
597
+ }
598
+ else {
599
+ process.env[key] = value;
600
+ }
601
+ }
602
+ }
603
+ }
604
+ function readNumber(value) {
605
+ return typeof value === "number" && Number.isFinite(value) ? value : null;
606
+ }
607
+ function readResponseEstimateMs(response) {
608
+ const direct = readNumber(response?.estimatedDurationMs);
609
+ if (direct !== null) {
610
+ return direct;
611
+ }
612
+ const timeoutHint = isObject(response?.timeoutHint) ? response.timeoutHint : null;
613
+ return readNumber(timeoutHint?.estimatedDurationMs);
614
+ }
615
+ function readResponseRows(response) {
616
+ const nested = isObject(response?.response) ? response.response : null;
617
+ if (Array.isArray(nested?.rows)) {
618
+ return nested.rows.filter(isObject);
619
+ }
620
+ if (Array.isArray(response?.rows)) {
621
+ return response.rows.filter(isObject);
622
+ }
623
+ return [];
624
+ }
625
+ function readModuleEntityCount(module) {
626
+ const raw = Array.isArray(module.symbols)
627
+ ? module.symbols
628
+ : Array.isArray(module.entities)
629
+ ? module.entities
630
+ : [];
631
+ return raw.length;
632
+ }
633
+ function readObjectArray(value) {
634
+ return Array.isArray(value) ? value.filter(isObject) : [];
635
+ }
636
+ function isObject(value) {
637
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
638
+ }