@automaton-labs/aib 0.0.6 → 0.0.8

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 (586) hide show
  1. package/README.md +36 -257
  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 -2
  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 -0
  19. package/dist/commands/captured-input.js +74 -2
  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 -0
  23. package/dist/commands/declaration-command.js +1209 -0
  24. package/dist/commands/declaration-execution-cache.js +79 -0
  25. package/dist/commands/declaration-format.js +221 -0
  26. package/dist/commands/declaration-preview-cache.js +114 -0
  27. package/dist/commands/diagnostics-command.js +70 -3
  28. package/dist/commands/doctor.js +137 -2
  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 -0
  35. package/dist/commands/file-move-to-dir-preview-cache.js +125 -0
  36. package/dist/commands/file-move-to-dir-worker.js +54 -0
  37. package/dist/commands/file-move-to-dir.js +1073 -0
  38. package/dist/commands/file-mutation-runtime.js +102 -0
  39. package/dist/commands/file-mutation-worker-apply.js +180 -0
  40. package/dist/commands/file-refactor-batch-execution-cache.js +90 -0
  41. package/dist/commands/file-refactor-batch-preview-cache.js +125 -0
  42. package/dist/commands/file-refactor-batch-worker.js +54 -0
  43. package/dist/commands/file-refactor-batch.js +1154 -0
  44. package/dist/commands/file-rename-execution-cache.js +92 -0
  45. package/dist/commands/file-rename-preview-cache.js +125 -0
  46. package/dist/commands/file-rename-worker.js +54 -0
  47. package/dist/commands/file-rename.js +1053 -0
  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 -0
  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 -6
  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 -0
  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 -0
  150. package/dist/dsl/file-move-to-dir-dsl.js +123 -0
  151. package/dist/dsl/file-refactor-batch-dsl.js +203 -0
  152. package/dist/dsl/file-rename-dsl.js +135 -0
  153. package/dist/dsl/mutate-dsl.js +746 -0
  154. package/dist/help/bootstrap.bash.md +742 -0
  155. package/dist/help/bootstrap.md +236 -437
  156. package/dist/help/bootstrap.pwsh.md +742 -0
  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/dsl.md +4 -3
  161. package/dist/help/docs/first-setup.md +6 -5
  162. package/dist/help/docs/help-protocol.md +4 -3
  163. package/dist/help/docs/import.base.md +38 -0
  164. package/dist/help/docs/import.rebase.md +85 -0
  165. package/dist/help/docs/inspect.aliasCandidates.md +39 -0
  166. package/dist/help/docs/inspect.code.md +5 -11
  167. package/dist/help/docs/inspect.deps.md +7 -7
  168. package/dist/help/docs/inspect.file.md +10 -18
  169. package/dist/help/docs/inspect.graph.md +6 -20
  170. package/dist/help/docs/{inspect.md → inspect.shared.md} +18 -17
  171. package/dist/help/docs/modulePlan.md +24 -28
  172. package/dist/help/docs/move.md +19 -22
  173. package/dist/help/docs/moveToDir.md +46 -0
  174. package/dist/help/docs/mutate.mixed.md +34 -0
  175. package/dist/help/docs/mutation.shared.md +55 -0
  176. package/dist/help/docs/patterns.md +3 -16
  177. package/dist/help/docs/qr.md +13 -22
  178. package/dist/help/docs/quick-map.md +36 -23
  179. package/dist/help/docs/recipe.file-layout.md +15 -0
  180. package/dist/help/docs/recipe.import-boundary.md +92 -0
  181. package/dist/help/docs/recipe.safe-artifact-probing.md +68 -0
  182. package/dist/help/docs/recipe.unfamiliar-area.md +64 -0
  183. package/dist/help/docs/recipes.md +20 -0
  184. package/dist/help/docs/rename.md +19 -27
  185. package/dist/help/docs/renameFile.md +36 -0
  186. package/dist/help/docs/rg.md +22 -0
  187. package/dist/help/docs/rules.md +26 -0
  188. package/dist/help/docs/selectors.md +3 -2
  189. package/dist/help/docs/session.md +1 -1
  190. package/dist/help/dsl/bootstrap.bash.md +742 -0
  191. package/dist/help/dsl/bootstrap.md +236 -437
  192. package/dist/help/dsl/bootstrap.pwsh.md +742 -0
  193. package/dist/help/dsl/docs/basics.md +1 -1
  194. package/dist/help/dsl/docs/config-setup.import-normalize.md +65 -65
  195. package/dist/help/dsl/docs/config-setup.import-rules.md +6 -5
  196. package/dist/help/dsl/docs/dsl.md +4 -3
  197. package/dist/help/dsl/docs/first-setup.md +6 -5
  198. package/dist/help/dsl/docs/help-protocol.md +4 -3
  199. package/dist/help/dsl/docs/import.base.md +38 -0
  200. package/dist/help/dsl/docs/import.rebase.md +85 -0
  201. package/dist/help/dsl/docs/inspect.aliasCandidates.md +39 -0
  202. package/dist/help/dsl/docs/inspect.code.md +5 -11
  203. package/dist/help/dsl/docs/inspect.deps.md +7 -7
  204. package/dist/help/dsl/docs/inspect.file.md +10 -18
  205. package/dist/help/dsl/docs/inspect.graph.md +6 -20
  206. package/dist/help/dsl/docs/{inspect.md → inspect.shared.md} +18 -17
  207. package/dist/help/dsl/docs/modulePlan.md +24 -28
  208. package/dist/help/dsl/docs/move.md +19 -22
  209. package/dist/help/dsl/docs/moveToDir.md +46 -0
  210. package/dist/help/dsl/docs/mutate.mixed.md +34 -0
  211. package/dist/help/dsl/docs/mutation.shared.md +55 -0
  212. package/dist/help/dsl/docs/patterns.md +3 -16
  213. package/dist/help/dsl/docs/qr.md +13 -22
  214. package/dist/help/dsl/docs/quick-map.md +36 -23
  215. package/dist/help/dsl/docs/recipe.file-layout.md +15 -0
  216. package/dist/help/dsl/docs/recipe.import-boundary.md +92 -0
  217. package/dist/help/dsl/docs/recipe.safe-artifact-probing.md +68 -0
  218. package/dist/help/dsl/docs/recipe.unfamiliar-area.md +64 -0
  219. package/dist/help/dsl/docs/recipes.md +20 -0
  220. package/dist/help/dsl/docs/rename.md +19 -27
  221. package/dist/help/dsl/docs/renameFile.md +36 -0
  222. package/dist/help/dsl/docs/rg.md +22 -0
  223. package/dist/help/dsl/docs/rules.md +26 -0
  224. package/dist/help/dsl/docs/selectors.md +3 -2
  225. package/dist/help/dsl/docs/session.md +1 -1
  226. package/dist/help/dsl/full.md +236 -437
  227. package/dist/help/dsl/help-index.md +49 -0
  228. package/dist/help/dsl/snippets/agents.md +2 -2
  229. package/dist/help/dsl/tokens/qr.inline.examples.md +2 -0
  230. package/dist/help/dsl/tokens/stdin.examples.bash.md +8 -0
  231. package/dist/help/dsl/tokens/stdin.examples.pwsh.md +8 -0
  232. package/dist/help/dsl/tokens/stdin.examples.with-qr.bash.md +12 -0
  233. package/dist/help/dsl/tokens/stdin.examples.with-qr.pwsh.md +12 -0
  234. package/dist/help/dsl/topics/basics.md +1 -1
  235. package/dist/help/dsl/topics/config-setup.import-normalize.md +65 -65
  236. package/dist/help/dsl/topics/config-setup.import-rules.md +6 -5
  237. package/dist/help/dsl/topics/dsl.md +4 -3
  238. package/dist/help/dsl/topics/first-setup.md +6 -5
  239. package/dist/help/dsl/topics/help-protocol.md +4 -3
  240. package/dist/help/dsl/topics/import.base.md +36 -0
  241. package/dist/help/dsl/topics/import.rebase.md +83 -0
  242. package/dist/help/dsl/topics/inspect.aliasCandidates.md +37 -0
  243. package/dist/help/dsl/topics/inspect.code.md +5 -11
  244. package/dist/help/dsl/topics/inspect.deps.md +7 -7
  245. package/dist/help/dsl/topics/inspect.file.md +10 -18
  246. package/dist/help/dsl/topics/inspect.graph.md +6 -20
  247. package/dist/help/dsl/topics/{inspect.md → inspect.shared.md} +18 -17
  248. package/dist/help/dsl/topics/modulePlan.md +21 -26
  249. package/dist/help/dsl/topics/move.md +17 -18
  250. package/dist/help/dsl/topics/moveToDir.md +44 -0
  251. package/dist/help/dsl/topics/mutate.mixed.md +32 -0
  252. package/dist/help/dsl/topics/mutation.shared.md +53 -0
  253. package/dist/help/dsl/topics/patterns.md +3 -16
  254. package/dist/help/dsl/topics/qr.md +13 -22
  255. package/dist/help/dsl/topics/quick-map.md +36 -23
  256. package/dist/help/dsl/topics/recipe.file-layout.md +13 -0
  257. package/dist/help/dsl/topics/recipe.import-boundary.md +90 -0
  258. package/dist/help/dsl/topics/recipe.safe-artifact-probing.md +66 -0
  259. package/dist/help/dsl/topics/recipe.unfamiliar-area.md +62 -0
  260. package/dist/help/dsl/topics/recipes.md +18 -0
  261. package/dist/help/dsl/topics/rename.md +15 -15
  262. package/dist/help/dsl/topics/renameFile.md +34 -0
  263. package/dist/help/dsl/topics/rg.md +20 -0
  264. package/dist/help/dsl/topics/rules.md +24 -0
  265. package/dist/help/dsl/topics/selectors.md +3 -2
  266. package/dist/help/dsl/topics/session.md +1 -1
  267. package/dist/help/full.md +236 -437
  268. package/dist/help/help-index.md +49 -0
  269. package/dist/help/help-meta.json +114 -48
  270. package/dist/help/index.md +76 -87
  271. package/dist/help/snippets/agents.md +2 -2
  272. package/dist/help/tokens/qr.inline.examples.md +2 -0
  273. package/dist/help/tokens/stdin.examples.bash.md +8 -0
  274. package/dist/help/tokens/stdin.examples.pwsh.md +8 -0
  275. package/dist/help/tokens/stdin.examples.with-qr.bash.md +12 -0
  276. package/dist/help/tokens/stdin.examples.with-qr.pwsh.md +12 -0
  277. package/dist/help/topics/basics.md +1 -1
  278. package/dist/help/topics/config-setup.import-normalize.md +65 -65
  279. package/dist/help/topics/config-setup.import-rules.md +6 -5
  280. package/dist/help/topics/dsl.md +4 -3
  281. package/dist/help/topics/first-setup.md +6 -5
  282. package/dist/help/topics/help-protocol.md +4 -3
  283. package/dist/help/topics/import.base.md +36 -0
  284. package/dist/help/topics/import.rebase.md +83 -0
  285. package/dist/help/topics/inspect.aliasCandidates.md +37 -0
  286. package/dist/help/topics/inspect.code.md +5 -11
  287. package/dist/help/topics/inspect.deps.md +7 -7
  288. package/dist/help/topics/inspect.file.md +10 -18
  289. package/dist/help/topics/inspect.graph.md +6 -20
  290. package/dist/help/topics/{inspect.md → inspect.shared.md} +18 -17
  291. package/dist/help/topics/modulePlan.md +21 -26
  292. package/dist/help/topics/move.md +17 -18
  293. package/dist/help/topics/moveToDir.md +44 -0
  294. package/dist/help/topics/mutate.mixed.md +32 -0
  295. package/dist/help/topics/mutation.shared.md +53 -0
  296. package/dist/help/topics/patterns.md +3 -16
  297. package/dist/help/topics/qr.md +13 -22
  298. package/dist/help/topics/quick-map.md +36 -23
  299. package/dist/help/topics/recipe.file-layout.md +13 -0
  300. package/dist/help/topics/recipe.import-boundary.md +90 -0
  301. package/dist/help/topics/recipe.safe-artifact-probing.md +66 -0
  302. package/dist/help/topics/recipe.unfamiliar-area.md +62 -0
  303. package/dist/help/topics/recipes.md +18 -0
  304. package/dist/help/topics/rename.md +15 -15
  305. package/dist/help/topics/renameFile.md +34 -0
  306. package/dist/help/topics/rg.md +20 -0
  307. package/dist/help/topics/rules.md +24 -0
  308. package/dist/help/topics/selectors.md +3 -2
  309. package/dist/help/topics/session.md +1 -1
  310. package/dist/host/capabilities.js +56 -0
  311. package/dist/imports/standalone-import-analysis.js +602 -0
  312. package/dist/imports/standalone-import-model.js +2 -0
  313. package/dist/imports/standalone-import-process.js +66 -0
  314. package/dist/imports/standalone-import-worker.js +27 -0
  315. package/dist/imports/standalone-ts-project.js +147 -0
  316. package/dist/inspect/inspect-duplicates-service.js +526 -0
  317. package/dist/inspect/inspect-reverse-module-closure.js +338 -0
  318. package/dist/inspect/inspect-source-ranges.js +82 -0
  319. package/dist/inspect/inspect-source-shape.js +649 -0
  320. package/dist/inspect/standalone-inspect-analysis.js +319 -0
  321. package/dist/inspect/standalone-inspect-model.js +9 -0
  322. package/dist/inspect/standalone-inspect-process.js +55 -0
  323. package/dist/inspect/standalone-inspect-usages.js +274 -0
  324. package/dist/inspect/standalone-inspect-worker.js +13 -0
  325. package/dist/metrics/central-metrics.js +101 -2
  326. package/dist/mutation/concrete-edit-plan.js +157 -0
  327. package/dist/mutation/exports-star-collapse-preview.js +361 -0
  328. package/dist/mutation/exports-star-expand-apply.js +373 -0
  329. package/dist/mutation/exports-star-expand-preview.js +807 -0
  330. package/dist/mutation/file-impact-scan.js +182 -0
  331. package/dist/mutation/file-mutation-discovery.js +674 -0
  332. package/dist/mutation/file-mutation-eta.js +99 -0
  333. package/dist/mutation/file-mutation-standalone-apply.js +584 -0
  334. package/dist/mutation/file-mutation-standalone-planner.js +500 -0
  335. package/dist/mutation/file-mutation-tsserver-session.js +473 -0
  336. package/dist/mutation/mutation-estimate.js +45 -0
  337. package/dist/mutation/mutation-plan.js +467 -0
  338. package/dist/mutation/object-mutation-foundation.js +2 -0
  339. package/dist/mutation/object-mutation-partition.js +148 -0
  340. package/dist/mutation/object-pack-semantic-apply.js +507 -0
  341. package/dist/mutation/object-pack-semantic-preview.js +984 -0
  342. package/dist/mutation/object-unpack-semantic-preview.js +993 -0
  343. package/dist/mutation/package-manifest-impact.js +176 -0
  344. package/dist/mutation/rename-owner-worker-child.js +37 -0
  345. package/dist/mutation/rename-owner-worker.js +122 -0
  346. package/dist/mutation/runtime-cycle-query.js +66 -0
  347. package/dist/mutation/semantic-execution-progress.js +63 -0
  348. package/dist/mutation/semantic-export-index.js +474 -0
  349. package/dist/mutation/semantic-impact-scan.js +434 -0
  350. package/dist/mutation/semantic-model.js +2 -0
  351. package/dist/mutation/semantic-move-best-effort-planner.js +209 -0
  352. package/dist/mutation/semantic-move-config-worker-child.js +61 -0
  353. package/dist/mutation/semantic-move-config-worker.js +449 -0
  354. package/dist/mutation/semantic-move-declarations.js +94 -0
  355. package/dist/mutation/semantic-move-metrics.js +119 -0
  356. package/dist/mutation/semantic-move-model.js +2 -0
  357. package/dist/mutation/semantic-move-owner-authority.js +122 -0
  358. package/dist/mutation/semantic-move-owner-candidates.js +300 -0
  359. package/dist/mutation/semantic-move-owner-divergence-harness.js +474 -0
  360. package/dist/mutation/semantic-move-owner-divergence-runner.js +162 -0
  361. package/dist/mutation/semantic-move-plan-hash.js +56 -0
  362. package/dist/mutation/semantic-move-policy.js +360 -0
  363. package/dist/mutation/semantic-move-process.js +218 -0
  364. package/dist/mutation/semantic-move-provider-diagnostics.js +27 -0
  365. package/dist/mutation/semantic-move-standalone-engine.js +919 -0
  366. package/dist/mutation/semantic-move-standalone-planner.js +1553 -0
  367. package/dist/mutation/semantic-move-transaction.js +639 -0
  368. package/dist/mutation/semantic-mutation-engine.js +478 -0
  369. package/dist/mutation/semantic-mutation-runtime.js +521 -0
  370. package/dist/mutation/semantic-planner-retry.js +26 -0
  371. package/dist/mutation/semantic-program-roots.js +69 -0
  372. package/dist/mutation/semantic-rename-commonjs.js +229 -0
  373. package/dist/mutation/semantic-rename-config-worker-child.js +46 -0
  374. package/dist/mutation/semantic-rename-config-worker.js +498 -0
  375. package/dist/mutation/semantic-rename-locations.js +192 -0
  376. package/dist/mutation/semantic-rename-model.js +2 -0
  377. package/dist/mutation/semantic-rename-process.js +210 -0
  378. package/dist/mutation/semantic-rename-standalone-engine.js +302 -0
  379. package/dist/mutation/semantic-rename-standalone-planner.js +567 -0
  380. package/dist/mutation/semantic-rename-transaction.js +333 -0
  381. package/dist/mutation/semantic-unused-import-cleanup.js +248 -0
  382. package/dist/mutation/semantic-worker-retry.js +40 -0
  383. package/dist/mutation/semantic-workspace.js +804 -0
  384. package/dist/mutation/targeted-import-canonicalizer.js +359 -0
  385. package/dist/observability/config.js +206 -1
  386. package/dist/observability/context.js +59 -1
  387. package/dist/observability/failure-snapshot.js +124 -2
  388. package/dist/observability/recent.js +63 -2
  389. package/dist/payloads/read-stdin-json.js +212 -1
  390. package/dist/rg-wrapper/core.js +714 -0
  391. package/dist/rg-wrapper/options.js +125 -0
  392. package/dist/rtk-wrapper/core.js +144 -0
  393. package/dist/rtk-wrapper/git-safety.js +203 -0
  394. package/dist/rtk-wrapper/output-adapter.js +106 -0
  395. package/dist/runtime/buffered-process.js +114 -0
  396. package/dist/runtime/bundled-node.js +97 -1
  397. package/dist/runtime/command-lifecycle.js +2 -0
  398. package/dist/runtime/input-source.js +238 -1
  399. package/dist/runtime/node-cli-identity.js +37 -0
  400. package/dist/runtime/run-command.js +191 -1
  401. package/dist/selectors/parse-entities.js +84 -1
  402. package/dist/semantic/semantic-context-pool.js +830 -0
  403. package/dist/semantic/semantic-context-provider.js +416 -0
  404. package/dist/semantic/semantic-resident-admission.js +38 -0
  405. package/dist/semantic/semantic-worker-child.js +40 -0
  406. package/dist/semantic/semantic-worker-manager.js +460 -0
  407. package/dist/semantic/semantic-worker-protocol.js +2 -0
  408. package/dist/semantic/semantic-worker-runtime.js +38 -0
  409. package/dist/semantic/workspace-semantic-context-pools.js +136 -0
  410. package/dist/session/client.js +359 -1
  411. package/dist/session/daemon-state.js +185 -0
  412. package/dist/session/external-tool-coordinator.js +88 -0
  413. package/dist/session/external-tool-request.js +52 -0
  414. package/dist/session/lane-owner.js +116 -0
  415. package/dist/session/paths.js +71 -1
  416. package/dist/session/runtime-lifecycle.js +225 -0
  417. package/dist/session/runtime-shutdown.js +95 -0
  418. package/dist/session/server.js +1194 -8
  419. package/dist/session/session-health.js +27 -0
  420. package/dist/shared/agent-text.js +29 -1
  421. package/dist/shared/errors.js +496 -30
  422. package/dist/shared/event-loop.js +6 -1
  423. package/dist/shared/hints.js +37 -1
  424. package/dist/shared/metrics.js +43 -1
  425. package/dist/shared/presentation.js +69 -4
  426. package/dist/shared/stdin-examples.js +77 -3
  427. package/dist/shared/stdout.js +6 -2
  428. package/dist/shared/types.js +23 -1
  429. package/dist/tool-runtime/runtime-tools.js +120 -0
  430. package/dist/topology/availability.js +663 -0
  431. package/dist/topology/cache.js +130 -0
  432. package/dist/topology/candidates.js +372 -0
  433. package/dist/topology/core.js +903 -0
  434. package/dist/topology/dependency-snapshot.js +189 -0
  435. package/dist/topology/model.js +2 -0
  436. package/dist/topology/scope.js +100 -0
  437. package/dist/topology/ts-oracle-batch.js +529 -0
  438. package/dist/topology/ts-oracle-host.js +69 -0
  439. package/dist/topology/ts-oracle-model.js +2 -0
  440. package/dist/topology/ts-oracle.js +224 -0
  441. package/dist/topology/tsconfig-loader.js +105 -0
  442. package/dist/topology/workspace-project-index.js +542 -0
  443. package/dist/tracing/config.js +192 -2
  444. package/dist/tracing/failure-summary.js +100 -0
  445. package/dist/tracing/trace.js +318 -5
  446. package/dist/tsc-wrapper/core.js +697 -0
  447. package/dist/workers/control-plane/aib-control-plane-worker.cjs +80 -0
  448. package/dist/workers/control-plane/client-config.default.json +3 -0
  449. package/dist/workers/lexical-worker-child.js +27 -0
  450. package/dist/workers/lexical-worker-manager.js +394 -0
  451. package/dist/workers/lexical-worker-protocol.js +2 -0
  452. package/dist/workers/lexical-worker-runtime.js +25 -0
  453. package/dist/workers/owned-one-shot-process.js +115 -0
  454. package/dist/workers/product-storage.js +23 -0
  455. package/dist/workers/registry.js +241 -0
  456. package/package.json +8 -11
  457. package/runtimes/tools/rg/darwin-arm64/rg +0 -0
  458. package/runtimes/tools/rg/darwin-x64/rg +0 -0
  459. package/runtimes/tools/rg/linux-arm64/rg +0 -0
  460. package/runtimes/tools/rg/linux-x64/rg +0 -0
  461. package/runtimes/tools/rg/manifest.json +36 -0
  462. package/runtimes/tools/rg/win32-x64/rg.exe +0 -0
  463. package/runtimes/tools/rtk/darwin-arm64/rtk +0 -0
  464. package/runtimes/tools/rtk/darwin-x64/rtk +0 -0
  465. package/runtimes/tools/rtk/linux-arm64/rtk +0 -0
  466. package/runtimes/tools/rtk/linux-x64/rtk +0 -0
  467. package/runtimes/tools/rtk/manifest.json +36 -0
  468. package/runtimes/tools/rtk/win32-x64/rtk.exe +0 -0
  469. package/scripts/postinstall.cjs +29 -29
  470. package/scripts/provision-runtime.cjs +411 -459
  471. package/dist/client/http-client.js +0 -1
  472. package/dist/client/transport-options.js +0 -1
  473. package/dist/client/websocket-client.js +0 -1
  474. package/dist/commands/entity-resolution.js +0 -1
  475. package/dist/commands/inspect-symbol-query.js +0 -1
  476. package/dist/commands/list-instances.js +0 -1
  477. package/dist/commands/module-plan-command.js +0 -1
  478. package/dist/commands/move-command.js +0 -1
  479. package/dist/commands/move-to-file.js +0 -2
  480. package/dist/commands/ping.js +0 -1
  481. package/dist/commands/refactor-command.js +0 -1
  482. package/dist/commands/rename-command.js +0 -1
  483. package/dist/commands/runtime-command.js +0 -4
  484. package/dist/commands/runtime-info.js +0 -1
  485. package/dist/commands/validate-module-plan.js +0 -2
  486. package/dist/compatibility/policy.js +0 -1
  487. package/dist/config/auto-start-ide.js +0 -1
  488. package/dist/discovery/registry.js +0 -1
  489. package/dist/discovery/select-instance.js +0 -1
  490. package/dist/help/docs/mutation.md +0 -50
  491. package/dist/help/docs/refactor.batch.md +0 -44
  492. package/dist/help/dsl/docs/mutation.md +0 -50
  493. package/dist/help/dsl/docs/refactor.batch.md +0 -44
  494. package/dist/help/dsl/topics/mutation.md +0 -48
  495. package/dist/help/dsl/topics/refactor.batch.md +0 -33
  496. package/dist/help/json/bootstrap.md +0 -1085
  497. package/dist/help/json/docs/basics.md +0 -15
  498. package/dist/help/json/docs/config-setup.aliases.md +0 -56
  499. package/dist/help/json/docs/config-setup.excludes.md +0 -45
  500. package/dist/help/json/docs/config-setup.import-normalize.md +0 -86
  501. package/dist/help/json/docs/config-setup.import-rules.md +0 -96
  502. package/dist/help/json/docs/config-setup.tsconfigs.md +0 -33
  503. package/dist/help/json/docs/dsl.md +0 -25
  504. package/dist/help/json/docs/first-setup.md +0 -292
  505. package/dist/help/json/docs/help-format.md +0 -9
  506. package/dist/help/json/docs/help-protocol.md +0 -26
  507. package/dist/help/json/docs/imports.normalize.md +0 -47
  508. package/dist/help/json/docs/inspect.code.md +0 -41
  509. package/dist/help/json/docs/inspect.cycles.md +0 -38
  510. package/dist/help/json/docs/inspect.deps.md +0 -46
  511. package/dist/help/json/docs/inspect.duplicates.md +0 -65
  512. package/dist/help/json/docs/inspect.exports.md +0 -40
  513. package/dist/help/json/docs/inspect.file.md +0 -38
  514. package/dist/help/json/docs/inspect.graph.md +0 -139
  515. package/dist/help/json/docs/inspect.imports.md +0 -15
  516. package/dist/help/json/docs/inspect.md +0 -88
  517. package/dist/help/json/docs/inspect.members.md +0 -32
  518. package/dist/help/json/docs/inspect.tree.md +0 -32
  519. package/dist/help/json/docs/inspect.usages.md +0 -61
  520. package/dist/help/json/docs/modulePlan.md +0 -73
  521. package/dist/help/json/docs/move.md +0 -56
  522. package/dist/help/json/docs/mutation.md +0 -65
  523. package/dist/help/json/docs/patterns.md +0 -76
  524. package/dist/help/json/docs/prefs.md +0 -40
  525. package/dist/help/json/docs/qr.md +0 -37
  526. package/dist/help/json/docs/quick-map.md +0 -30
  527. package/dist/help/json/docs/refactor.batch.md +0 -72
  528. package/dist/help/json/docs/rename.md +0 -47
  529. package/dist/help/json/docs/reveal.md +0 -30
  530. package/dist/help/json/docs/selectors.md +0 -23
  531. package/dist/help/json/docs/session.md +0 -77
  532. package/dist/help/json/docs/view.md +0 -30
  533. package/dist/help/json/full.md +0 -1085
  534. package/dist/help/json/snippets/agents.md +0 -14
  535. package/dist/help/json/topics/basics.md +0 -13
  536. package/dist/help/json/topics/config-setup.aliases.md +0 -54
  537. package/dist/help/json/topics/config-setup.excludes.md +0 -43
  538. package/dist/help/json/topics/config-setup.import-normalize.md +0 -84
  539. package/dist/help/json/topics/config-setup.import-rules.md +0 -94
  540. package/dist/help/json/topics/config-setup.tsconfigs.md +0 -31
  541. package/dist/help/json/topics/dsl.md +0 -23
  542. package/dist/help/json/topics/first-setup.md +0 -290
  543. package/dist/help/json/topics/help-format.md +0 -7
  544. package/dist/help/json/topics/help-protocol.md +0 -24
  545. package/dist/help/json/topics/imports.normalize.md +0 -45
  546. package/dist/help/json/topics/inspect.code.md +0 -39
  547. package/dist/help/json/topics/inspect.cycles.md +0 -36
  548. package/dist/help/json/topics/inspect.deps.md +0 -44
  549. package/dist/help/json/topics/inspect.duplicates.md +0 -37
  550. package/dist/help/json/topics/inspect.exports.md +0 -38
  551. package/dist/help/json/topics/inspect.file.md +0 -36
  552. package/dist/help/json/topics/inspect.graph.md +0 -137
  553. package/dist/help/json/topics/inspect.imports.md +0 -13
  554. package/dist/help/json/topics/inspect.md +0 -86
  555. package/dist/help/json/topics/inspect.members.md +0 -30
  556. package/dist/help/json/topics/inspect.tree.md +0 -22
  557. package/dist/help/json/topics/inspect.usages.md +0 -59
  558. package/dist/help/json/topics/modulePlan.md +0 -60
  559. package/dist/help/json/topics/move.md +0 -46
  560. package/dist/help/json/topics/mutation.md +0 -63
  561. package/dist/help/json/topics/patterns.md +0 -74
  562. package/dist/help/json/topics/prefs.md +0 -38
  563. package/dist/help/json/topics/qr.md +0 -35
  564. package/dist/help/json/topics/quick-map.md +0 -28
  565. package/dist/help/json/topics/refactor.batch.md +0 -61
  566. package/dist/help/json/topics/rename.md +0 -42
  567. package/dist/help/json/topics/reveal.md +0 -28
  568. package/dist/help/json/topics/selectors.md +0 -21
  569. package/dist/help/json/topics/session.md +0 -59
  570. package/dist/help/json/topics/view.md +0 -28
  571. package/dist/help/topics/mutation.md +0 -48
  572. package/dist/help/topics/refactor.batch.md +0 -33
  573. package/dist/ide-launch/common.cjs +0 -162
  574. package/dist/managed-host/extension-vsix-resolver.js +0 -1
  575. package/dist/managed-host/manage-serve-web-host.cjs +0 -141
  576. package/dist/managed-host/serve-web-autostart.js +0 -1
  577. package/dist/managed-host/serve-web-host.cjs +0 -1904
  578. package/dist/runtime/managed-runtime-provisioning.js +0 -1
  579. package/dist/shared/diagnostic-catalog.js +0 -1
  580. package/dist/shared/diagnostics.js +0 -1
  581. package/dist/shared/operations.js +0 -1
  582. package/dist/shared/protocol.js +0 -1
  583. package/dist/shared/routes.js +0 -1
  584. package/extension/vscode-refactor-bridge-extension.vsix +0 -0
  585. package/runtimes/launcher/linux-x64/aib +0 -0
  586. package/runtimes/launcher/win-x64/aib.exe +0 -0
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.postJson=E;const c=require("../shared/errors"),d=require("./transport-options"),l=require("./websocket-client");async function E(e,r,n,u={}){const a=p(n,u);if((u.transport??(0,d.getPreferredTransport)())==="websocket")return(0,l.postJsonOverWebSocket)(e,r,a);const o=`http://${e.host}:${e.port}${r}`;let s;try{s=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}catch(t){throw new c.CliError("TRANSPORT_ERROR",`Failed to reach ${o}`,{url:o,cause:t instanceof Error?t.message:String(t)})}const f=await s.text();let i={};try{i=JSON.parse(f)}catch{throw new c.CliError("INVALID_JSON_RESPONSE",`Instance returned non-JSON response for ${r}`,{url:o,status:s.status,responseText:f})}if(!s.ok){const t=w(i);throw t?new c.CliError(t.code,t.message,{url:o,status:s.status,details:t.details}):new c.CliError("REMOTE_ERROR",`Instance returned ${s.status} for ${r}`,{url:o,status:s.status,payload:i})}return i}function p(e,r){return r.metricsEnabled!==!0||!e||typeof e!="object"||Array.isArray(e)?e:{...e,metricsEnabled:!0}}function w(e){return e.ok!==!1||typeof e.code!="string"?null:{code:e.code,message:typeof e.error=="string"?e.error:e.code,details:e.details??R(e)}}function R(e){const r={};for(const n of["hint","hints","sourceFile","targetFile","execute","candidates","sourceConsistency","diagnostic","symbol","newName"])e[n]!==void 0&&(r[n]=e[n]);return r}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseExtensionTransport=t,exports.getPreferredTransport=s,exports.setPreferredTransport=o;const n=require("../config/env-vars");let e=t(process.env[n.CLI_ENV.transport])??"http";function t(r){return r==="http"||r==="websocket"?r:null}function s(){return e}function o(r){e=r}
@@ -1 +0,0 @@
1
- "use strict";var c=exports&&exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.postJsonOverWebSocket=f;const l=c(require("ws")),n=require("../shared/errors"),E=require("../shared/routes");async function f(e,t,u){const i=E.EXTENSION_ROUTE_OPERATIONS[t];if(!i)throw new n.CliError("UNSUPPORTED_WEBSOCKET_ROUTE",`Route is not available over WebSocket: ${t}`,{pathname:t});const o=e.transports?.websocket?.url??`ws://${e.host}:${e.port}/ws`,r=await d(o,{id:Date.now(),operation:i,body:u});if(r.payload&&typeof r.payload=="object"&&!Array.isArray(r.payload)){const s=r.payload;if(r.ok===!1||typeof r.statusCode=="number"&&r.statusCode>=400){const a=S(s);throw a?new n.CliError(a.code,a.message,{url:o,status:typeof r.statusCode=="number"?r.statusCode:null,details:a.details}):new n.CliError("REMOTE_ERROR",`Instance returned ${String(r.statusCode??"error")} for ${t}`,{url:o,status:typeof r.statusCode=="number"?r.statusCode:null,payload:s})}return s}throw new n.CliError("INVALID_WEBSOCKET_RESPONSE",`Instance returned an invalid WebSocket payload for ${t}`,{url:o,envelope:r})}function d(e,t){return new Promise((u,i)=>{const o=new l.default(e);o.once("open",()=>{o.send(JSON.stringify(t))}),o.once("message",r=>{try{u(JSON.parse(r.toString("utf8")))}catch(s){i(new n.CliError("INVALID_WEBSOCKET_RESPONSE",`Instance returned non-JSON WebSocket response for ${e}`,{url:e,cause:s instanceof Error?s.message:String(s)}))}finally{o.close()}}),o.once("error",r=>{i(new n.CliError("TRANSPORT_ERROR",`Failed to reach ${e}`,{url:e,cause:r.message}))})})}function S(e){return e.ok!==!1||typeof e.code!="string"?null:{code:e.code,message:typeof e.error=="string"?e.error:e.code,details:e.details??null}}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ensureSelectorResolvable=g,exports.ensureSelectorsResolvable=S;const m=require("../shared/types"),b=require("../shared/errors"),u=require("./inspect-symbol-query");function c(t,e,s,i){return t.filter(o=>o.name===e).map(o=>{const n=f(typeof o.kind=="string"?o.kind:"");return n?`${s[n]}${i}${e}`:`unknown${i}${e}`})}function f(t){const e=t.toLowerCase();return e==="typeparameter"||e==="typealias"?"type":m.ENTITY_KIND_IDS.includes(e)?e:null}async function g(t,e,s,i,o={}){if(s.symbolKind)return;const n=await(0,u.queryTopLevelInspectSymbols)(t,e,o);n.filter(r=>r.name===s.symbolName).length<=1||y([{entity:s.symbolName,suggestions:c(n,s.symbolName,i.entityKindAliases,i.selectorSeparator)}])}async function S(t,e,s,i,o={}){const n=[],l=await(0,u.queryTopLevelInspectSymbols)(t,e,o);for(const r of s){if(r.symbolKind)continue;l.filter(a=>a.name===r.symbolName).length>1&&n.push({entity:r.symbolName,suggestions:c(l,r.symbolName,i.entityKindAliases,i.selectorSeparator)})}n.length!==0&&y(n)}function y(t){const e=t[0];throw new b.CliError("AMBIGUOUS_ENTITY_SELECTOR",t.length===1?`Ambiguity detected for entity "${e.entity}".`:`Ambiguity detected for ${t.length} entities.`,{ambiguities:t,suggestions:e.suggestions})}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.queryTopLevelInspectSymbols=n;const y=require("../client/http-client"),a=require("../shared/routes");async function n(o,t,l={}){const r=await(0,y.postJson)(o,a.EXTENSION_ROUTES.inspect,{requests:[{op:"file",sourceFile:t,ranges:!1,resolveStar:!1,localOnly:!1}]},l),e=Array.isArray(r.results)?r.results[0]:null;return(e&&typeof e=="object"&&!Array.isArray(e)&&Array.isArray(e.symbols)?e.symbols:[]).filter(s=>!!s&&typeof s=="object"&&!Array.isArray(s))}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.runListInstances=n;const a=require("../discovery/registry"),i=require("../client/http-client"),r=require("../shared/routes");async function n(){const o=(0,a.readRegistryEntries)(),t=await Promise.all(o.map(async s=>{try{const e=await(0,i.postJson)(s,r.EXTENSION_ROUTES.runtimeInfo,{});return{instanceId:s.instanceId,pid:s.pid,appName:s.appName,appHost:s.appHost,host:s.host,port:s.port,workspaceFolders:s.workspaceFolders,startedAt:s.startedAt,lastSeenAt:s.lastSeenAt,protocolVersion:s.protocolVersion??null,extensionVersion:s.extensionVersion,capabilities:s.capabilities,healthy:!0,runtimeInfo:e}}catch(e){return{instanceId:s.instanceId,pid:s.pid,appName:s.appName,appHost:s.appHost,host:s.host,port:s.port,workspaceFolders:s.workspaceFolders,startedAt:s.startedAt,lastSeenAt:s.lastSeenAt,protocolVersion:s.protocolVersion??null,extensionVersion:s.extensionVersion,capabilities:s.capabilities,healthy:!1,error:e instanceof Error?e.message:String(e)}}}));return{ok:!0,instanceCount:t.length,instances:t}}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.runModulePlanCommand=p;const i=require("./apply-module-plan"),s=require("./validate-module-plan"),d=require("../shared/errors");async function p(e,t,r,n={},o={}){const[u="preview",...l]=t;if(u==="preview")return(0,i.runApplyModulePlan)(e,l,r,n);if(u==="revise"){const a=c(l,"--plan")??m(l);if(!a)throw new d.CliError("MODULE_PLAN_REVISE_PLAN_REQUIRED","modulePlan revise expects --plan <planId>.");return(0,i.reviseCachedModulePlan)(e,a)}if(u==="apply"){const a=l[0];return(0,i.runApplyModulePlan)(e,a&&!a.startsWith("--")?["--plan",a]:l,r,n,o)}if(u==="execute")return(0,i.runApplyModulePlan)(e,["--execute",...l],r,n,o);if(u==="validate")return(0,s.runValidateModulePlan)(e,l);throw new d.CliError("UNKNOWN_MODULE_PLAN_COMMAND",`Unknown modulePlan command: ${u}`,{availableCommands:["modulePlan preview","modulePlan revise","modulePlan apply","modulePlan execute","modulePlan validate"]})}function c(e,t){const r=e.indexOf(t);if(r<0)return null;const n=e[r+1];return n&&!n.startsWith("--")?n:null}function m(e){return e.find(t=>!t.startsWith("--"))??null}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.runMoveCommand=h;const a=require("../shared/errors"),u=require("./move-to-file"),l=require("./refactor-batch");async function h(e,i,r,t={}){const[n="toFile",s="preview",...o]=i;if(n==="--help"||n==="help")return m();if(n!=="toFile")throw new a.CliError("UNKNOWN_MOVE_TARGET",`Unknown move target: ${n}`,{availableTargets:["toFile"]});switch(s){case"--help":case"help":return m();case"preview":return f(r)?(0,l.runRefactorBatch)(e,v(r,!1),t,"preview",{routedFrom:"move.toFile"}):(0,u.runMoveToFile)(e,p(r,!1),t);case"validate":return f(r)?(0,l.runRefactorBatch)(e,v(r,!1),t,"validate",{routedFrom:"move.toFile"}):(0,u.runMoveToFile)(e,p(r,!1),t);case"execute":return f(r)?(0,l.runRefactorBatch)(e,v(r,!0),t,"execute",{routedFrom:"move.toFile"}):(0,u.runMoveToFile)(e,p(r,!0),t);case"apply":{const c=o[0];if(!c||c.startsWith("--"))throw new a.CliError("MOVE_PREVIEW_ID_REQUIRED","move toFile apply expects a preview id.",{usage:"aib move toFile apply <previewId>"});return(0,u.runMoveToFile)(e,void 0,t,["--preview",c])}default:throw new a.CliError("UNKNOWN_MOVE_COMMAND",`Unknown move toFile command: ${s}`,{availableCommands:["preview","apply","execute","validate","help"]})}}function m(){return{ok:!0,command:"move",usage:"aib move toFile preview --stdin | aib move toFile execute --stdin | aib move toFile apply <previewId>",preview:{sourceFile:"src/path/to/source-file.ts",targetFile:"src/path/to/target-file.ts",entities:["c-MyClass","i-MyShape"]},apply:"aib move toFile apply move_abc123",notes:["preview and validate force execute:false.","execute runs the payload immediately.","apply uses the cached preview id and refuses to run if source/target changed.","For large module extraction, prefer modulePlan preview/apply."]}}function p(e,i){return!e||typeof e!="object"||Array.isArray(e)?e:{...e,execute:i}}function v(e,i){if(!e||typeof e!="object"||Array.isArray(e))return e;const r=e,t=Array.isArray(r.operations)?r.operations:Array.isArray(r.requests)?r.requests:null;if(!t)return{...r,execute:i};const{operations:n,...s}=r;return{...s,requests:t.map(o=>o&&typeof o=="object"&&!Array.isArray(o)?{...o,execute:i}:o),execute:i}}function f(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&(Array.isArray(e.requests)||Array.isArray(e.operations))}
@@ -1,2 +0,0 @@
1
- "use strict";var Y=exports&&exports.__createBinding||(Object.create?(function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}):(function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]})),Q=exports&&exports.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),w=exports&&exports.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[n.length]=i);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),i=0;i<n.length;i++)n[i]!=="default"&&Y(r,t,n[i]);return Q(r,t),r}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.runMoveToFile=oe;const F=w(require("node:path")),j=w(require("node:fs")),p=require("zod"),Z=require("../client/http-client"),W=require("../shared/agent-text"),E=require("../shared/errors"),ee=require("../shared/routes"),te=require("../shared/protocol"),z=require("../config/import-rules"),D=require("../config/mutation-comments"),x=require("./shared"),re=require("../selectors/parse-entities"),ne=require("./entity-resolution"),h=require("./move-preview-cache"),T=require("../metrics/central-metrics"),k=require("../shared/event-loop"),C=require("../diagnostics/module-plan-timeline"),ie=require("../config/env-vars"),N=p.z.object({sourceFile:p.z.string().min(1),targetFile:p.z.string().min(1),entities:p.z.union([p.z.array(p.z.string().min(1)).min(1),p.z.string().min(1)]),execute:p.z.boolean().optional()});async function oe(e,t,r={},n=[],i={}){const l=Me(n,"--preview");if(l)return le(e,l,r);const f=N.parse(t);return V(e,f,r,void 0,i)}async function le(e,t,r){const n=(0,h.readMovePreviewRecord)(e,t);if((0,h.hashFile)(n.sourceFile)!==n.sourceHash)throw new E.CliError("MOVE_PREVIEW_SOURCE_CHANGED","Source file changed after move preview. Rerun move preview.",{previewId:t,sourceFile:u(e,n.sourceFile)});const l=j.existsSync(n.targetFile),f=(0,h.hashFileIfExists)(n.targetFile);if(l!==n.targetExisted||f!==n.targetHash)throw new E.CliError("MOVE_PREVIEW_TARGET_CHANGED","Target file changed after move preview. Rerun move preview.",{previewId:t,targetFile:u(e,n.targetFile)});const o=N.parse({...n.normalizedPayload,execute:!0}),c=await V(e,o,r,{previewId:t}),a={...c,operation:"move.toFile.apply",...c.ok===!1?{next:"Fix the move request and rerun preview."}:{}};return(0,W.attachAgentText)(a,B(a))}async function V(e,t,r,n,i={}){const l=await(0,x.resolveCompatibleTargetInstance)(e,te.CLI_COMMAND_IDS.moveToFile,r),f=await(0,x.fetchEffectiveConfig)(l.entry,r),o=(0,re.parseEntitySelectors)(t.entities,f),c=K(e,t.sourceFile),a=K(e,t.targetFile),_=r.importRules??(0,z.readConfigImportRules)(e),I=r.mutationComments??(0,D.normalizeMutationCommentsPolicy)(void 0),y=t.execute===!0,g=[],b=typeof i.metricsContext?.executionId=="string"?i.metricsContext.executionId:void 0;(0,C.recordModulePlanTimeline)(e,b,"moveToFile.resolveSelectors.start",{sourceFile:u(e,c),targetFile:u(e,a),entityCount:o.length,execute:y}),await(0,ne.ensureSelectorsResolvable)(l.entry,c,o,f,(0,x.extensionRequestOptions)(r)),(0,C.recordModulePlanTimeline)(e,b,"moveToFile.resolveSelectors.end",{sourceFile:u(e,c),targetFile:u(e,a),entityCount:o.length,execute:y});for(const s of o){await(0,k.yieldToEventLoop)(),(0,C.recordModulePlanTimeline)(e,b,"moveToFile.entity.start",{sourceFile:u(e,c),targetFile:u(e,a),entity:s.raw,execute:y});const M=(0,T.startCentralMetricSpan)({kind:"mutation.entity",operation:y?"move.toFile.execute":"move.toFile.preview",cwd:F.resolve(e),sourceFile:u(e,c),targetFile:u(e,a),entity:s.raw,...i.metricsContext??{}});try{const m=process.env[ie.CLI_ENV.testMoveToFileFailEntity];if(y&&m&&s.raw===m)throw new E.CliError("TS_MOVE_TO_FILE_UNSUPPORTED_BY_ENGINE","TypeScript refactor failed: Debug Failure. False expression: Expected symbol to be a module",{diagnostic:"typescript-refactor-limitation",hint:"TypeScript move-to-file can fail on symbols that depend on default imports from CommonJS `export =` packages, e.g. `fast-json-stable-stringify`. If smaller moves still fail, use manual extraction.",next:"Retry with a smaller move or use manual extraction if TypeScript rejects the refactor."});const S=await(0,Z.postJson)(l.entry,ee.EXTENSION_ROUTES.moveRefactor,{sourceFile:c,targetFile:a,symbolName:s.symbolName,symbolKind:s.symbolKind,execute:y,importRules:(0,z.importRulesToJson)(_),mutationComments:(0,D.mutationCommentsPolicyToJson)(I),impactMetrics:(0,T.mutationImpactMetricsEnabled)()},(0,x.extensionRequestOptions)(r));g.push({entity:s.raw,...ue(e,s.raw,S)}),(0,C.recordModulePlanTimeline)(e,b,"moveToFile.entity.end",{sourceFile:u(e,c),targetFile:u(e,a),entity:s.raw,execute:y,ok:!0}),M.end(se(e,S,g[g.length-1]??{},o.length)),H(i,s.raw,g,o.length),await(0,k.yieldToEventLoop)()}catch(m){g.push(fe(s.raw,m)),(0,C.recordModulePlanTimeline)(e,b,"moveToFile.entity.end",{sourceFile:u(e,c),targetFile:u(e,a),entity:s.raw,execute:y,ok:!1,error:m instanceof Error?m.message:String(m)}),M.end({ok:!1,code:m instanceof E.CliError?m.code:"MOVE_TO_FILE_FAILED",error:m instanceof Error?m.message:String(m),totalEntities:o.length}),H(i,s.raw,g,o.length),await(0,k.yieldToEventLoop)();break}}const A=g.every(s=>s.ok!==!1),X=g.filter(s=>s.ok===!1).length,$=ye(c,a,o.map(s=>s.raw),y),O=L(g,"changedFiles"),q=L(g,"savedFiles"),v={...A?{}:{ok:!1},operation:y?"move.toFile.execute":"move.toFile.preview",source:u(e,c),target:u(e,a),...o.length===1?{move:o[0].raw}:{moves:o.map(s=>s.raw)},summary:A?ge(y,o.length,O,q,a):de(o.length,X),...!y&&O.length>0?{files:P(O,5)}:{},...y&&q.length>0?{filesWritten:P(q,5)}:{},...A?{}:{results:g}};if(!y&&A){const s=(0,h.buildMovePreviewId)($),M=(0,h.hashFile)(c),m=(0,h.hashFileIfExists)(a),S=(0,h.buildMovePreviewHash)($,M,m,v);(0,h.writeMovePreviewRecord)(e,{previewId:s,previewHash:S,createdAt:new Date().toISOString(),cwd:F.resolve(e),sourceFile:c,sourceHash:M,targetFile:a,targetExisted:j.existsSync(a),targetHash:m,normalizedPayload:$,previewResult:v}),v.previewId=s,v.next=`aib move toFile apply ${s}`}return ae(e,v,i.metricsContext),(0,W.attachAgentText)(v,B(v))}function ae(e,t,r){(0,T.recordCentralMetric)({kind:"mutation.summary",operation:typeof t.operation=="string"?t.operation:"move.toFile",cwd:F.resolve(e),ok:t.ok!==!1,sourceFile:typeof t.source=="string"?t.source:null,targetFile:typeof t.target=="string"?t.target:null,summary:typeof t.summary=="string"?t.summary:null,filesWrittenCount:Array.isArray(t.filesWritten)?t.filesWritten.filter(n=>typeof n=="string"&&!n.startsWith("+")).length:0,...r??{}})}function se(e,t,r,n){const i=d(t.referenceImpact)?t.referenceImpact:{},l=d(t.operationSummary)?t.operationSummary:{};return{ok:t.ok!==!1,totalEntities:n,editCount:typeof l.editCount=="number"?l.editCount:null,changedFileCount:Array.isArray(r.allChangedFiles)?r.allChangedFiles.length:0,savedFileCount:Array.isArray(r.allSavedFiles)?r.allSavedFiles.length:0,...(0,T.mutationImpactMetricsEnabled)()?{impactCollectionMs:typeof i.impactCollectionMs=="number"?i.impactCollectionMs:null,impact:ce(i),changedFiles:Array.isArray(r.allChangedFiles)?r.allChangedFiles:[],savedFiles:Array.isArray(r.allSavedFiles)?r.allSavedFiles:[]}:{},configFilePath:typeof t.configFilePath=="string"?u(e,t.configFilePath):null}}function ce(e){return{referenceCount:typeof e.referenceCount=="number"?e.referenceCount:null,definitionCount:typeof e.definitionCount=="number"?e.definitionCount:null,realReferenceCount:typeof e.realReferenceCount=="number"?e.realReferenceCount:null,importExportReferenceCount:typeof e.importExportReferenceCount=="number"?e.importExportReferenceCount:null,fileCount:typeof e.fileCount=="number"?e.fileCount:null,realReferenceFileCount:typeof e.realReferenceFileCount=="number"?e.realReferenceFileCount:null,impactCollectionMs:typeof e.impactCollectionMs=="number"?e.impactCollectionMs:null}}function H(e,t,r,n){e.onProgress&&e.onProgress({entity:t,completedEntities:r.length,totalEntities:n,filesWritten:L(r,"savedFiles"),ok:r.every(i=>i.ok!==!1)})}function ue(e,t,r){const n=d(r.operationSummary)?r.operationSummary:{},i=Array.isArray(n.changedFiles)?n.changedFiles.filter(o=>typeof o=="string").map(o=>u(e,o)):[],l=Array.isArray(r.savedFiles)?r.savedFiles.filter(o=>typeof o=="string").map(o=>u(e,o)):[],f=Array.isArray(n.warnings)?n.warnings.filter(d).map(o=>typeof o.code=="string"?o.code:"MOVE_WARNING"):[];return R({entity:t,ok:r.ok!==!1,applied:typeof r.applied=="boolean"?r.applied:null,editCount:typeof n.editCount=="number"?n.editCount:null,allChangedFiles:i,changedFiles:P(i,5),allSavedFiles:l,savedFiles:P(l,5),warnings:f,code:typeof r.code=="string"?r.code:typeof r.errorCode=="string"?r.errorCode:null,error:typeof r.error=="string"?r.error:null,hint:typeof r.hint=="string"?r.hint:null})}function fe(e,t){const r=t instanceof E.CliError&&d(t.details)?t.details:{},n=d(r.details)?r.details:{},i=d(n.diagnostic)?n.diagnostic:{},l=Array.isArray(i.hints)?i.hints.filter(d).map(o=>typeof o.description=="string"?o.description:"").filter(o=>o.length>0):[],f=typeof r.hint=="string"?r.hint:typeof n.hint=="string"?n.hint:l[0]??null;return R({entity:e,ok:!1,code:t instanceof E.CliError?t.code:"MOVE_TO_FILE_FAILED",error:me(t instanceof Error?t.message:String(t)),diagnostic:typeof i.kind=="string"?i.kind:null,hint:f,next:"Retry with a smaller move or use manual extraction if TypeScript rejects the refactor."})}function me(e){return e.replace(/^TypeScript refactor failed: Debug Failure\. False expression: /,"")}function ye(e,t,r,n){return{sourceFile:e,targetFile:t,entities:r,execute:n}}function ge(e,t,r,n,i){const l=j.existsSync(i)?"target exists":"target will be created";return e?`${t} ${t===1?"symbol":"symbols"}, ${n.length} ${n.length===1?"file":"files"} written`:`${t} ${t===1?"symbol":"symbols"}, ${r.length} ${r.length===1?"file":"files"}; ${l}`}function de(e,t){return`${e} ${e===1?"symbol":"symbols"}, ${t} failed`}function L(e,t){const r=t==="changedFiles"?"allChangedFiles":"allSavedFiles";return Array.from(new Set(e.flatMap(n=>Array.isArray(n[r])?n[r].filter(i=>typeof i=="string"&&!i.startsWith("+")):Array.isArray(n[t])?n[t].filter(i=>typeof i=="string"&&!i.startsWith("+")):[]))).sort((n,i)=>n.localeCompare(i))}function P(e,t){const r=e.slice(0,t),n=e.length-r.length;return n>0?[...r,`+ ${n} more`]:r}function B(e){const t=typeof e.operation=="string"?e.operation:"";if(t!=="move.toFile.preview"&&t!=="move.toFile.execute"&&t!=="move.toFile.apply")return null;const r=[],n=typeof e.previewId=="string"?e.previewId:"";r.push(e.ok===!1?`${t} failed`:n&&t==="move.toFile.preview"?`${t} ${n}`:t);const i=ve(e),l=_e(e.results),f=Fe(e.results),o=l?U(l.entity):null,c=o?i.indexOf(o):-1,a=c>=0?i.slice(c+1):[],_=Array.isArray(e.filesWritten)?e.filesWritten:e.files,I=Ee(_);return r.push(pe(t,e,i.length,f.length,l?1:0,a.length,I)),e.ok!==!1?G(r,"moves:",e.target,i):f.length>0&&G(r,"moves:",e.target,f),he(r,l),a.length>0&&(r.push("not run:"),r.push(J(a,15))),Array.isArray(_)&&_.length>0&&(r.push(t==="move.toFile.preview"?"files:":"filesWritten:"),be(r,_)),typeof e.next=="string"&&r.push(`next: ${e.next}`),r.join(`
2
- `)}function pe(e,t,r,n,i,l,f){const o=`${r} ${r===1?"symbol":"symbols"}`;if(t.ok===!1){const a=[o];return n>0&&a.push(`${n} applied`),i>0&&a.push(`${i} failed`),l>0&&a.push(`${l} not run`),a.join(", ")}if(e==="move.toFile.preview")return`${o}, 1 target ready`;const c=`${f} ${f===1?"file":"files"} written`;return`${o}, 1 target moved; ${c}`}function G(e,t,r,n){typeof r!="string"||n.length===0||(e.push(t),e.push(`${r}: ${J(n,15)}`))}function he(e,t){if(!t)return;const r=typeof t.entity=="string"?t.entity:"symbol",n=typeof t.code=="string"?t.code:"MOVE_TO_FILE_FAILED",i=typeof t.error=="string"?t.error:"Move failed.";e.push("failed:"),e.push(r),e.push(`code: ${n}`),e.push(i),typeof t.hint=="string"&&e.push(`hint: ${t.hint}`)}function ve(e){return typeof e.move=="string"?[e.move]:Array.isArray(e.moves)?e.moves.filter(t=>typeof t=="string"):[]}function Fe(e){return Array.isArray(e)?e.filter(d).filter(t=>t.ok!==!1).map(t=>U(t.entity)).filter(t=>!!t):[]}function _e(e){return Array.isArray(e)?e.filter(d).find(t=>t.ok===!1)??null:null}function Ee(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&!t.startsWith("+")).length:0}function J(e,t){const r=e.slice(0,t),n=e.length-r.length;return n>0?`${r.join(", ")}, + ${n} more`:r.join(", ")}function be(e,t){if(Array.isArray(t))for(const r of t)typeof r=="string"&&e.push(r)}function U(e){return typeof e=="string"&&e.length>0?e:null}function K(e,t){const r=t.trim();return F.normalize(F.isAbsolute(r)?r:F.resolve(e,r))}function u(e,t){return F.relative(e,t).replace(/\\/g,"/")}function Me(e,t){const r=e.indexOf(t);if(r<0)return null;const n=e[r+1];return n&&!n.startsWith("--")?n:null}function R(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t==null?!1:!(Array.isArray(t)&&t.length===0)))}function d(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.runPing=o;const a=require("../client/http-client"),n=require("./shared"),c=require("../shared/routes");async function o(r,t={}){const e=await(0,n.resolveTargetInstance)(r,t),s=await(0,a.postJson)(e.entry,c.EXTENSION_ROUTES.health,{},(0,n.extensionRequestOptions)(t));return{ok:!0,selectedInstance:{instanceId:e.entry.instanceId,reason:e.reason,matchedWorkspace:e.matchedWorkspace,port:e.entry.port},response:s}}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.runRefactorCommand=l;const f=require("../shared/errors"),o=require("./refactor-batch");async function l(e,n,r,a={}){const[i="batch",t="preview",...c]=n;if(i==="--help"||i==="help")return p();if(i!=="batch")throw new f.CliError("UNKNOWN_REFACTOR_TARGET",`Unknown refactor target: ${i}`,{availableTargets:["batch"]});switch(t){case"--help":case"help":return p();case"preview":case"validate":return(0,o.runRefactorBatch)(e,u(r,!1),a,t);case"apply":{const s=c[0];return s&&!s.startsWith("--")?(0,o.runRefactorBatch)(e,void 0,a,t,{previewId:s}):(0,o.runRefactorBatch)(e,u(r,!0),a,t)}case"execute":return(0,o.runRefactorBatch)(e,u(r,!0),a,t);default:throw new f.CliError("UNKNOWN_REFACTOR_COMMAND",`Unknown refactor batch command: ${t}`,{availableCommands:["preview","apply","execute","validate","help"]})}}function p(){return{ok:!0,command:"refactor",usage:"aib refactor batch preview --stdin | aib refactor batch apply <previewId> | aib refactor batch execute --stdin",notes:["preview and validate force every operation to execute:false.","execute writes immediately.","apply uses the cached preview id and refuses to run if touched files changed.","For large module extraction, prefer modulePlan preview/apply."]}}function u(e,n){if(!e||typeof e!="object"||Array.isArray(e))return e;const r=e,a=Array.isArray(r.operations)?r.operations:Array.isArray(r.requests)?r.requests:null;if(!a)return{...r,execute:n};const{operations:i,...t}=r;return{...t,requests:a.map(c=>c&&typeof c=="object"&&!Array.isArray(c)?{...c,execute:n}:c),execute:n}}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.runRenameCommand=E;const m=require("../shared/errors"),t=require("./rename-entities");async function E(e,i,u,n={}){const[c="preview",...r]=i;switch(c){case"help":return(0,t.runRenameEntities)(e,void 0,n,["--help"]);case"--help":return(0,t.runRenameEntities)(e,void 0,n,["--help"]);case"preview":return(0,t.runRenameEntities)(e,u??s(r),n,r);case"validate":return(0,t.runRenameEntities)(e,p(u??s(r),!1),n,r);case"execute":return(0,t.runRenameEntities)(e,p(u??s(r),!0),n,r);case"apply":{const a=r[0];if(!a||a.startsWith("--"))throw new m.CliError("RENAME_PREVIEW_ID_REQUIRED","rename apply expects a preview id.",{usage:"aib rename apply <previewId>"});return(0,t.runRenameEntities)(e,void 0,n,["--preview",a])}default:throw new m.CliError("UNKNOWN_RENAME_COMMAND",`Unknown rename command: ${c}`,{availableCommands:["preview","apply","execute","validate","help"]})}}function s(e){if(e.length<3||e[0]?.startsWith("--"))return;const[i,u,n]=e;return{sourceFile:i,renames:{[u??""]:n}}}function p(e,i){return!e||typeof e!="object"||Array.isArray(e)?e:{...e,execute:i}}
@@ -1,4 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.runRuntimeCommand=d;const l=require("../shared/errors"),f=require("../shared/agent-text"),o=require("../managed-host/serve-web-autostart"),a=require("../diagnostics/readiness-text");async function d(t,n){const e=n[0]??"status",r=n.includes("--verbose"),u=n.includes("--json"),s=n.includes("--all"),c=g(n.slice(1))??t;if(e==="status"){const i=await m(()=>s?(0,o.statusAllManagedServeWeb)():(0,o.statusManagedServeWebForCwd)(c),"MANAGED_IDE_STATUS_FAILED");return u?i:(0,f.attachAgentText)(i,s?h(i,{verbose:r}):(0,a.formatRuntimeStatusText)(i,{verbose:r}))}if(e==="stop"){const i=await m(()=>s?(0,o.stopAllManagedServeWeb)():(0,o.stopManagedServeWebForCwd)(c),"MANAGED_IDE_STOP_FAILED");return u?i:(0,f.attachAgentText)(i,s?S(i,{verbose:r}):(0,a.formatRuntimeStopText)(i,{verbose:r}))}if(e==="kill"){if(!s)throw new l.CliError("RUNTIME_KILL_REQUIRES_ALL","runtime kill currently requires --all.",{command:"aib runtime kill --all"});const i=await m(()=>(0,o.killAllManagedServeWeb)(),"MANAGED_IDE_KILL_FAILED");return u?i:(0,f.attachAgentText)(i,A(i,{verbose:r}))}if(e==="cleanup")return(0,o.cleanupExpiredManagedServeWebForCwd)(c);throw new l.CliError("UNKNOWN_RUNTIME_COMMAND",`Unknown runtime command: ${e}`,{availableCommands:["status","stop","kill","cleanup"]})}function g(t){return t.find(n=>!n.startsWith("--"))??null}function h(t,n={}){if(t.ok===!1)return(0,a.formatRuntimeStatusText)(t,n);const e=Array.isArray(t.runtimes)?t.runtimes:[],r=["runtime status --all","",`${String(t.running??0)} running, ${String(t.healthy??0)} healthy, ${String(t.count??e.length)} known`];return e.length>0&&(r.push("",...e.slice(0,20).map(_)),e.length>20&&r.push(`+ ${e.length-20} more`)),n.verbose===!0&&r.push("","details:",JSON.stringify(t,null,2)),r.join(`
2
- `)}function S(t,n={}){if(t.ok===!1)return(0,a.formatRuntimeStopText)(t,n);const e=["runtime stop --all","",`${String(t.stopped??0)} stopped, ${String(t.count??0)} known`];return n.verbose===!0&&e.push("","details:",JSON.stringify(t,null,2)),e.join(`
3
- `)}function A(t,n={}){if(t.ok===!1)return(0,a.formatRuntimeStopText)(t,n);const e=t.stop&&typeof t.stop=="object"&&!Array.isArray(t.stop)?t.stop:{},r=["runtime kill --all","",`${String(e.stopped??0)} metadata-backed runtimes stopped`,`${String(t.killed??0)} orphan processes killed`];return n.verbose===!0&&r.push("","details:",JSON.stringify(t,null,2)),r.join(`
4
- `)}function _(t){if(!t||typeof t!="object"||Array.isArray(t))return"- unknown";const n=t,e=n.running===!0?n.healthy===!0?"healthy":"running":"stopped",r=typeof n.hostKind=="string"?n.hostKind:"managed",u=typeof n.hostId=="string"?n.hostId:"unknown",s=typeof n.fixture=="string"?` ${n.fixture}`:"";return`- ${e} ${r} ${u}${s}`}async function m(t,n){try{return await t()}catch(e){return{ok:!1,code:e instanceof l.CliError?e.code:n,error:e instanceof Error?e.message:String(e),...e instanceof l.CliError&&e.details&&typeof e.details=="object"&&!Array.isArray(e.details)?{details:e.details}:{}}}}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.runRuntimeInfo=c;const n=require("./shared"),o=require("../client/http-client"),a=require("../shared/routes");async function c(r,t={}){const e=await(0,n.resolveTargetInstance)(r,t),s=await(0,o.postJson)(e.entry,a.EXTENSION_ROUTES.runtimeInfo,{},(0,n.extensionRequestOptions)(t));return{ok:!0,selectedInstance:{instanceId:e.entry.instanceId,reason:e.reason,matchedWorkspace:e.matchedWorkspace,port:e.entry.port},response:s}}
@@ -1,2 +0,0 @@
1
- "use strict";var v=exports&&exports.__createBinding||(Object.create?(function(e,t,i,n){n===void 0&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);(!s||("get"in s?!t.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}):(function(e,t,i,n){n===void 0&&(n=i),e[n]=t[i]})),x=exports&&exports.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),y=exports&&exports.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(i){var n=[];for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[n.length]=s);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var i={};if(t!=null)for(var n=e(t),s=0;s<n.length;s++)n[s]!=="default"&&v(i,t,n[s]);return x(i,t),i}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.runValidateModulePlan=A;const m=y(require("node:fs")),f=y(require("node:path")),_=require("../shared/errors"),S=require("../shared/agent-text"),p=require("./module-plan-cache");function A(e,t){const i=B(t,"--plan")??V(t);if(!i)throw new _.CliError("VALIDATE_MODULE_PLAN_PLAN_REQUIRED","modulePlan validate expects --plan <planId>.");const n=(0,p.readModulePlanRecord)(e,i),s=R(e,n),r=E(e,n),l=[];l.push(...O(e,s)),l.push(...w(e,n,s)),l.push(...r.map(a=>({check:"movedSymbolsAbsentFromSource",entity:a,message:"Moved symbol is still declared in source file."})));const u=l.filter(a=>a.check==="expectedFiles").map(a=>a.file).filter(a=>typeof a=="string"),o=P(s,u,r),g=l.length===0,h={operation:"modulePlan.validate",planId:n.planId,applied:o,ok:g,summary:F(o,s.length,r.length,g),targetFiles:{expected:s.length,missing:u},source:{movedSymbolsRemaining:r},typecheck:"notRun",...l.length>0?{issues:l.slice(0,12)}:{},...o==="no"?{next:`aib modulePlan apply ${n.planId}`}:{}};return(0,S.attachAgentText)(h,$(h))}function $(e){const t=[`modulePlan.validate ${String(e.planId??"")}`.trim()],i=typeof e.applied=="string"?e.applied:null;i&&t.push(`applied: ${i}`),e.ok!==!0&&typeof e.summary=="string"&&t.push(e.summary);const n=c(e.targetFiles)?e.targetFiles:{},s=typeof n.expected=="number"?n.expected:null,r=Array.isArray(n.missing)?n.missing.filter(o=>typeof o=="string"):[];r.length===0&&typeof s=="number"?t.push(`target files exist: ${s}`):r.length>0&&(t.push("missing target files:"),t.push(...r));const l=c(e.source)?e.source:{},u=Array.isArray(l.movedSymbolsRemaining)?l.movedSymbolsRemaining.filter(o=>typeof o=="string"):[];if(u.length>0&&(t.push("symbols still in source:"),t.push(...u)),Array.isArray(e.issues)&&e.issues.length>0){t.push("issues:");for(const o of e.issues.filter(c)){const g=typeof o.check=="string"?o.check:"check",h=typeof o.file=="string"?`${o.file}: `:"",a=typeof o.entity=="string"?`${o.entity}: `:"",b=typeof o.message=="string"?o.message:"";t.push(`${g}: ${h}${a}${b}`)}}return typeof e.next=="string"&&t.push(`next: ${e.next}`),t.join(`
2
- `)}function F(e,t,i,n){return e==="no"?`${t} target ${t===1?"file":"files"} missing`:e==="partial"?`${i} moved ${i===1?"symbol is":"symbols are"} still in source`:n?`applied; ${t} target ${t===1?"file exists":"files exist"}; moved symbols absent from source`:"applied with validation issues"}function P(e,t,i){return t.length===e.length&&i.length>0?"no":t.length>0||i.length>0?"partial":"yes"}function R(e,t){const i=new Set;if(Array.isArray(t.normalizedRequest.modules))for(const r of t.normalizedRequest.modules.filter(c)){const l=d(r.targetFile);l&&i.add((0,p.resolveCliFilePath)(e,l))}const n=c(t.previewResult.preview)?t.previewResult.preview:{},s=Array.isArray(n.files)?n.files.filter(c):[];for(const r of s){const l=d(r.targetFile);l&&i.add((0,p.resolveCliFilePath)(e,l))}return Array.from(i)}function O(e,t){return t.filter(i=>!m.existsSync(i)).map(i=>({check:"expectedFiles",file:(0,p.formatRelativePath)(e,i),message:"Expected generated file is missing."}))}function w(e,t,i){if(!t.sourceFile)return[];const n=(0,p.resolveCliFilePath)(e,t.sourceFile),s=[];for(const r of i){if(r===n||!m.existsSync(r))continue;const l=N(f.dirname(r),n);D(m.readFileSync(r,"utf8")).includes(l)&&s.push({check:"sourceBackImports",file:(0,p.formatRelativePath)(e,r),message:`Moved module imports from source file: ${l}`})}return s}function E(e,t){if(!t.sourceFile||!m.existsSync(t.sourceFile))return[];const i=m.readFileSync(t.sourceFile,"utf8"),n=[];for(const s of I(t)){const r=M(s);r&&j(i,r)&&n.push(s)}return n}function I(e){const t=Array.isArray(e.normalizedRequest.modules)?e.normalizedRequest.modules.filter(c):[],i=[];for(const n of t){const s=Array.isArray(n.symbols)?n.symbols.filter(c):[];for(const r of s){const l=d(r.raw)??d(r.selector)??d(r.entity);l&&i.push(l)}}return i}function M(e){const t=e.indexOf("-");if(t>=0&&t<e.length-1)return e.slice(t+1);const i=e.indexOf(":");return i>=0&&i<e.length-1?e.slice(i+1):e}function j(e,t){const i=q(t);return new RegExp(`(?:^|\\n)\\s*export\\s+(?:abstract\\s+)?(?:class|interface|type|enum|function|const|let|var)\\s+${i}\\b`).test(e)||new RegExp(`(?:^|\\n)\\s*(?:abstract\\s+)?(?:class|interface|type|enum|function|const|let|var)\\s+${i}\\b`).test(e)}function q(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function D(e){const t=[],i=/\b(?:import|export)\b(?:[\s\S]*?\bfrom\s*)?["']([^"']+)["']/g;let n;for(;(n=i.exec(e))!==null;)n[1]&&t.push(n[1]);return t}function N(e,t){const i=f.join(f.dirname(t),f.basename(t,f.extname(t)));let n=f.relative(e,i).replace(/\\/g,"/");return n.startsWith(".")||(n=`./${n}`),`${n}.js`}function V(e){return e.find((t,i)=>!t.startsWith("--")&&e[i-1]!=="--plan")??null}function B(e,t){const i=e.indexOf(t);if(i<0)return null;const n=e[i+1];return n&&!n.startsWith("--")?n:null}function d(e){return typeof e=="string"&&e.trim()!==""?e.trim():null}function c(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_COMPATIBILITY_POLICY=void 0,exports.checkCommandCompatibility=n,exports.assertCommandCompatible=s,exports.assertCapabilityCompatible=l;const i=require("../shared/diagnostic-catalog"),a=require("../shared/protocol");exports.DEFAULT_COMPATIBILITY_POLICY={minimumProtocolVersion:a.SUPPORTED_PROTOCOL_VERSION,allowUnknownProtocolForProtectedCommands:!1,requireCapabilityListForProtectedCommands:!0,exemptCommands:a.COMPATIBILITY_EXEMPT_COMMANDS};function n(o){const e=o.policy??exports.DEFAULT_COMPATIBILITY_POLICY,r=(0,a.getRequiredCapabilityForCommand)(o.command),t=e.exemptCommands.includes(o.command);return t||r===null?{ok:!0,requiredCapability:r,exempt:t}:c(o.instance,e)?m(o.instance,r,e)?o.requestedTransport&&!u(o.instance,o.requestedTransport)?{ok:!1,error:(0,i.transportNotAvailable)(o.instance,o.requestedTransport),requiredCapability:r,exempt:t}:{ok:!0,requiredCapability:r,exempt:t}:{ok:!1,error:(0,i.capabilityNotAvailable)(o.instance,r),requiredCapability:r,exempt:t}:{ok:!1,error:(0,i.protocolVersionUnsupported)(o.instance,r),requiredCapability:r,exempt:t}}function s(o){const e=n(o);if(!e.ok)throw e.error}function l(o,e,r){const t={command:e,instance:o};r!==void 0&&(t.requestedTransport=r),s(t)}function c(o,e){return typeof o.protocolVersion!="number"?e.allowUnknownProtocolForProtectedCommands:o.protocolVersion>=e.minimumProtocolVersion}function m(o,e,r){return Array.isArray(o.capabilities)?o.capabilities.includes(e):!r.requireCapabilityListForProtectedCommands}function u(o,e){return e==="http"?typeof o.host=="string"&&Number.isInteger(o.port):!!o.transports?.websocket?.url}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_AUTO_START_IDE=void 0,exports.parseAutoStartIdeMode=n,exports.resolveAutoStartIdePolicy=s,exports.autoStartIdePolicyFromSession=i;const u=require("../shared/errors"),o=require("./env-vars");exports.DEFAULT_AUTO_START_IDE="serve-web";function n(e){if(typeof e!="string")return null;const r=e.trim().toLowerCase();return r?["1","true","yes","on","serve-web"].includes(r)?"serve-web":["0","false","no","off"].includes(r)?"off":null:null}function s(e){if(e)return{mode:e,source:"flag"};const r=process.env[o.CLI_ENV.autoStartIde],t=n(r);if(r!==void 0&&!t)throw new u.CliError("INVALID_AUTO_START_IDE",`Expected ${o.CLI_ENV.autoStartIde} to be one of: 1, true, yes, on, serve-web, 0, false, no, off.`,{env:o.CLI_ENV.autoStartIde,value:r});return t?{mode:t,source:"env"}:{mode:exports.DEFAULT_AUTO_START_IDE,source:"default"}}function i(e){if(e==null||e==="")return;const r=n(String(e));if(!r)throw new u.CliError("INVALID_AUTO_START_IDE","Expected autoStartIde to be off or serve-web.",{value:String(e)});return{mode:r,source:"session"}}
@@ -1 +0,0 @@
1
- "use strict";var l=exports&&exports.__createBinding||(Object.create?(function(e,r,n,t){t===void 0&&(t=n);var i=Object.getOwnPropertyDescriptor(r,n);(!i||("get"in i?!r.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return r[n]}}),Object.defineProperty(e,t,i)}):(function(e,r,n,t){t===void 0&&(t=n),e[t]=r[n]})),d=exports&&exports.__setModuleDefault||(Object.create?(function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}):function(e,r){e.default=r}),c=exports&&exports.__importStar||(function(){var e=function(r){return e=Object.getOwnPropertyNames||function(n){var t=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[t.length]=i);return t},e(r)};return function(r){if(r&&r.__esModule)return r;var n={};if(r!=null)for(var t=e(r),i=0;i<t.length;i++)t[i]!=="default"&&l(n,r,t[i]);return d(n,r),n}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.readRegistryEntries=f,exports.ensureRegistryEntries=h;const u=c(require("node:fs")),y=c(require("node:os")),a=c(require("node:path")),g=require("../shared/errors");function _(){return a.join(y.tmpdir(),"aib","instances")}function b(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch{return!1}}function f(){const e=_();if(!u.existsSync(e))return[];const r=[];for(const n of u.readdirSync(e)){if(!n.endsWith(".json"))continue;const t=a.join(e,n);try{const i=u.readFileSync(t,"utf8"),s=JSON.parse(i);if(typeof s.instanceId=="string"&&Number.isInteger(s.pid)&&Array.isArray(s.workspaceFolders)&&typeof s.host=="string"&&Number.isInteger(s.port)){const o=Number(s.pid);if(!b(o)){u.rmSync(t,{force:!0});continue}r.push({...s,pid:o})}}catch{continue}}return r}function h(){const e=f();if(e.length===0)throw new g.CliError("NO_INSTANCES_FOUND","No running aib extension instances were found.");return e}
@@ -1 +0,0 @@
1
- "use strict";var p=exports&&exports.__createBinding||(Object.create?(function(n,e,r,a){a===void 0&&(a=r);var t=Object.getOwnPropertyDescriptor(e,r);(!t||("get"in t?!e.__esModule:t.writable||t.configurable))&&(t={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(n,a,t)}):(function(n,e,r,a){a===void 0&&(a=r),n[a]=e[r]})),g=exports&&exports.__setModuleDefault||(Object.create?(function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}):function(n,e){n.default=e}),w=exports&&exports.__importStar||(function(){var n=function(e){return n=Object.getOwnPropertyNames||function(r){var a=[];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(a[a.length]=t);return a},n(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var a=n(e),t=0;t<a.length;t++)a[t]!=="default"&&p(r,e,a[t]);return g(r,e),r}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.selectInstanceForCwd=_,exports.selectInstanceById=N;const d=w(require("node:path")),s=require("../shared/errors");function u(n){return d.resolve(n).toLowerCase()}function I(n,e){const r=u(n);return e.map(t=>u(t)).filter(t=>r===t||r.startsWith(`${t}${d.sep}`)).sort((t,c)=>c.length-t.length)[0]??null}function _(n,e,r={}){const a=r.allowSingleInstanceFallback!==!1,t=n.map(c=>({entry:c,matchedWorkspace:I(e,c.workspaceFolders)})).filter(c=>c.matchedWorkspace);if(t.length===1){const c=t[0];if(!c)throw new s.CliError("NO_MATCHING_INSTANCE","No matching IDE instance was found.");return{entry:c.entry,matchedWorkspace:c.matchedWorkspace,reason:"cwd-match"}}if(t.length>1){const c=[...t].sort((o,h)=>{const f=o.matchedWorkspace?.length??0;return(h.matchedWorkspace?.length??0)-f}),i=c[0],l=c[1];if(i&&l&&(i.matchedWorkspace?.length??0)>(l.matchedWorkspace?.length??0))return{entry:i.entry,matchedWorkspace:i.matchedWorkspace,reason:"cwd-match"};throw new s.CliError("AMBIGUOUS_INSTANCE_SELECTION","Multiple IDE instances match the current working directory.",{cwd:e,candidates:t.map(o=>({instanceId:o.entry.instanceId,appName:o.entry.appName,port:o.entry.port,workspaceFolders:o.entry.workspaceFolders,matchedWorkspace:o.matchedWorkspace}))})}if(n.length===1&&a){const c=n[0];if(!c)throw new s.CliError("NO_MATCHING_INSTANCE","No matching IDE instance was found.");return{entry:c,matchedWorkspace:c.workspaceFolders[0]??null,reason:"single-instance"}}throw new s.CliError("NO_MATCHING_INSTANCE","No IDE instance matched the current working directory.",{cwd:e,candidates:n.map(c=>({instanceId:c.instanceId,appName:c.appName,port:c.port,workspaceFolders:c.workspaceFolders}))})}function N(n,e){const r=n.find(a=>a.instanceId===e);if(!r)throw new s.CliError("INSTANCE_NOT_FOUND",`IDE instance not found: ${e}`,{instanceId:e,availableInstanceIds:n.map(a=>a.instanceId)});return{entry:r,matchedWorkspace:r.workspaceFolders[0]??null,reason:"single-instance"}}
@@ -1,50 +0,0 @@
1
- # Mutation
2
-
3
- Mutation commands change code through TS/IDE refactors.
4
- Successful mutations update affected references and imports.
5
-
6
- After a successful mutation, do not manually patch the same imports unless aib reports a follow-up or checks show a real issue.
7
-
8
- If move/modulePlan imports do not match the repo style, run:
9
- aib help config-setup.import-rules
10
-
11
- AIB mutations are designed to reduce manual checking.
12
- Your job is to express the intent in DSL.
13
- AIB's job is to convert that intent into code changes.
14
-
15
- Do not read all changed files just because a mutation touched them.
16
- That defeats the purpose of using AIB for mechanical refactors.
17
-
18
- If the command succeeds, the requested mechanical change was applied.
19
- After failure or partial success, use the output to decide the next request.
20
-
21
- When running mutation commands, set the harness timeout to 3 minutes.
22
- If the harness stops waiting before final output appears, recover with:
23
-
24
- aib execution status last
25
-
26
- Modes:
27
- preview inspect planned edits, then apply by id
28
- apply write a previewed change
29
- execute write immediately
30
-
31
- Use execute for routine rename/move/modulePlan requests.
32
-
33
- Use preview/apply when you are learning a mutation command, or when one request contains a large multi-step change that you want to inspect before writing files.
34
- Typical examples: a huge modulePlan or refactor batch.
35
-
36
- preview/apply uses more tool calls and more output tokens.
37
- preview validates input and planned edits, but writing files can still hit a TS/IDE refactor error.
38
- execute writes immediately and reports what changed.
39
-
40
- If a mutation cannot be completed, aib reports the failed part.
41
-
42
- Prefer batch DSL for related mutations.
43
- One request can describe several related changes.
44
-
45
- When a batch mutation partly fails, split the next request by failure type.
46
-
47
- If the failure is wrong input, fix the selector/entity/file and run the corrected remaining intent.
48
- If TS/IDE cannot apply one part of the batch, do not treat the whole intent as failed.
49
- Run the next request without the failed part and let aib report any later failures.
50
- Then decide whether failed parts need smaller requests or manual fallback.
@@ -1,44 +0,0 @@
1
- # Refactor Batch
2
-
3
- Modes: preview/apply or execute.
4
- Use execute for routine changes.
5
- Use preview/apply when learning a mutation command or inspecting a large multi-step request before writing files.
6
-
7
- If a name is ambiguous, use selectors.
8
- Run help selectors to refresh selector syntax.
9
-
10
- refactor batch runs related mutation requests together.
11
- Use it when one workflow needs ordered steps, such as rename plus move.
12
-
13
- Use modulePlan when the main intent is only to split one large file into target modules.
14
- Use refactor batch when the split also includes coordinated renames or mixed mutation steps.
15
-
16
- refactor batch preview --stdin
17
- refactor batch execute --stdin
18
- refactor batch apply --stdin
19
-
20
- Use preview/apply when you want to inspect a large mixed plan before writing files.
21
- Use execute when you want to write immediately.
22
-
23
- Example: rename and move in one request
24
-
25
- Run:
26
- aib refactor batch execute --stdin
27
-
28
- Input:
29
- @source src/service.ts
30
- rename oldHelper->newHelper oldType->newType
31
- move src/service.helpers.ts: newHelper
32
- move src/service.types.ts: newType
33
-
34
- This keeps related mutation intent together:
35
- rename first, then move the renamed symbols.
36
-
37
- Use top-level sourceFile when requests operate on the same file.
38
- Override file/sourceFile inside a request when one request targets another file.
39
-
40
- Supported request kinds:
41
- rename
42
- move
43
-
44
- Use separate command help when the workflow only needs one mutation kind.
@@ -1,50 +0,0 @@
1
- # Mutation
2
-
3
- Mutation commands change code through TS/IDE refactors.
4
- Successful mutations update affected references and imports.
5
-
6
- After a successful mutation, do not manually patch the same imports unless aib reports a follow-up or checks show a real issue.
7
-
8
- If move/modulePlan imports do not match the repo style, run:
9
- aib help config-setup.import-rules
10
-
11
- AIB mutations are designed to reduce manual checking.
12
- Your job is to express the intent in DSL.
13
- AIB's job is to convert that intent into code changes.
14
-
15
- Do not read all changed files just because a mutation touched them.
16
- That defeats the purpose of using AIB for mechanical refactors.
17
-
18
- If the command succeeds, the requested mechanical change was applied.
19
- After failure or partial success, use the output to decide the next request.
20
-
21
- When running mutation commands, set the harness timeout to 3 minutes.
22
- If the harness stops waiting before final output appears, recover with:
23
-
24
- aib execution status last
25
-
26
- Modes:
27
- preview inspect planned edits, then apply by id
28
- apply write a previewed change
29
- execute write immediately
30
-
31
- Use execute for routine rename/move/modulePlan requests.
32
-
33
- Use preview/apply when you are learning a mutation command, or when one request contains a large multi-step change that you want to inspect before writing files.
34
- Typical examples: a huge modulePlan or refactor batch.
35
-
36
- preview/apply uses more tool calls and more output tokens.
37
- preview validates input and planned edits, but writing files can still hit a TS/IDE refactor error.
38
- execute writes immediately and reports what changed.
39
-
40
- If a mutation cannot be completed, aib reports the failed part.
41
-
42
- Prefer batch DSL for related mutations.
43
- One request can describe several related changes.
44
-
45
- When a batch mutation partly fails, split the next request by failure type.
46
-
47
- If the failure is wrong input, fix the selector/entity/file and run the corrected remaining intent.
48
- If TS/IDE cannot apply one part of the batch, do not treat the whole intent as failed.
49
- Run the next request without the failed part and let aib report any later failures.
50
- Then decide whether failed parts need smaller requests or manual fallback.
@@ -1,44 +0,0 @@
1
- # Refactor Batch
2
-
3
- Modes: preview/apply or execute.
4
- Use execute for routine changes.
5
- Use preview/apply when learning a mutation command or inspecting a large multi-step request before writing files.
6
-
7
- If a name is ambiguous, use selectors.
8
- Run help selectors to refresh selector syntax.
9
-
10
- refactor batch runs related mutation requests together.
11
- Use it when one workflow needs ordered steps, such as rename plus move.
12
-
13
- Use modulePlan when the main intent is only to split one large file into target modules.
14
- Use refactor batch when the split also includes coordinated renames or mixed mutation steps.
15
-
16
- refactor batch preview --stdin
17
- refactor batch execute --stdin
18
- refactor batch apply --stdin
19
-
20
- Use preview/apply when you want to inspect a large mixed plan before writing files.
21
- Use execute when you want to write immediately.
22
-
23
- Example: rename and move in one request
24
-
25
- Run:
26
- aib refactor batch execute --stdin
27
-
28
- Input:
29
- @source src/service.ts
30
- rename oldHelper->newHelper oldType->newType
31
- move src/service.helpers.ts: newHelper
32
- move src/service.types.ts: newType
33
-
34
- This keeps related mutation intent together:
35
- rename first, then move the renamed symbols.
36
-
37
- Use top-level sourceFile when requests operate on the same file.
38
- Override file/sourceFile inside a request when one request targets another file.
39
-
40
- Supported request kinds:
41
- rename
42
- move
43
-
44
- Use separate command help when the workflow only needs one mutation kind.
@@ -1,48 +0,0 @@
1
- Mutation commands change code through TS/IDE refactors.
2
- Successful mutations update affected references and imports.
3
-
4
- After a successful mutation, do not manually patch the same imports unless aib reports a follow-up or checks show a real issue.
5
-
6
- If move/modulePlan imports do not match the repo style, run:
7
- aib help config-setup.import-rules
8
-
9
- AIB mutations are designed to reduce manual checking.
10
- Your job is to express the intent in DSL.
11
- AIB's job is to convert that intent into code changes.
12
-
13
- Do not read all changed files just because a mutation touched them.
14
- That defeats the purpose of using AIB for mechanical refactors.
15
-
16
- If the command succeeds, the requested mechanical change was applied.
17
- After failure or partial success, use the output to decide the next request.
18
-
19
- When running mutation commands, set the harness timeout to 3 minutes.
20
- If the harness stops waiting before final output appears, recover with:
21
-
22
- aib execution status last
23
-
24
- Modes:
25
- preview inspect planned edits, then apply by id
26
- apply write a previewed change
27
- execute write immediately
28
-
29
- Use execute for routine rename/move/modulePlan requests.
30
-
31
- Use preview/apply when you are learning a mutation command, or when one request contains a large multi-step change that you want to inspect before writing files.
32
- Typical examples: a huge modulePlan or refactor batch.
33
-
34
- preview/apply uses more tool calls and more output tokens.
35
- preview validates input and planned edits, but writing files can still hit a TS/IDE refactor error.
36
- execute writes immediately and reports what changed.
37
-
38
- If a mutation cannot be completed, aib reports the failed part.
39
-
40
- Prefer batch DSL for related mutations.
41
- One request can describe several related changes.
42
-
43
- When a batch mutation partly fails, split the next request by failure type.
44
-
45
- If the failure is wrong input, fix the selector/entity/file and run the corrected remaining intent.
46
- If TS/IDE cannot apply one part of the batch, do not treat the whole intent as failed.
47
- Run the next request without the failed part and let aib report any later failures.
48
- Then decide whether failed parts need smaller requests or manual fallback.
@@ -1,33 +0,0 @@
1
- Modes: preview/apply or execute.
2
- Use execute for routine changes.
3
- Use preview/apply when learning a mutation command or inspecting a large multi-step request before writing files.
4
-
5
- If a name is ambiguous, use selectors.
6
- Run help selectors to refresh selector syntax.
7
-
8
- refactor batch runs related mutation requests together.
9
- Use it when one workflow needs ordered steps, such as rename plus move.
10
-
11
- Use modulePlan when the main intent is only to split one large file into target modules.
12
- Use refactor batch when the split also includes coordinated renames or mixed mutation steps.
13
-
14
- refactor batch preview --stdin
15
- refactor batch execute --stdin
16
- refactor batch apply --stdin
17
-
18
- Use preview/apply when you want to inspect a large mixed plan before writing files.
19
- Use execute when you want to write immediately.
20
-
21
- Example: rename and move in one request
22
-
23
- Run:
24
- aib refactor batch execute --stdin
25
-
26
- Input:
27
- @source src/service.ts
28
- rename oldHelper->newHelper oldType->newType
29
- move src/service.helpers.ts: newHelper
30
- move src/service.types.ts: newType
31
-
32
- This keeps related mutation intent together:
33
- rename first, then move the renamed symbols.