@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
@@ -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.runFileCommand=u;const l=require("../shared/errors"),m=require("./file-move-to-dir"),f=require("./file-refactor-batch"),s=require("./file-rename");async function u(i,a,t,n={}){const[e="help",r="help",...o]=a;if(e==="help"||e==="--help")return c();if(e==="move"&&r==="toDir")return(0,m.runFileMoveToDir)(i,t,n,o);if(e==="rename")return(0,s.runFileRename)(i,t,n,r==="help"?["help"]:[r,...o]);if(e==="refactor"&&r==="batch")return(0,f.runFileRefactorBatch)(i,t,n,o);throw new l.CliError("UNKNOWN_FILE_COMMAND",`Unknown file command: ${[e,r].filter(Boolean).join(" ")}`,{availableCommands:["move toDir","rename","refactor batch"]})}function c(){return{ok:!0,command:"file",usage:"aib file move toDir preview --stdin | aib file rename preview --stdin | aib file refactor batch preview --stdin",notes:["file commands mutate filesystem layout.","file move toDir moves files into target directories and updates TypeScript imports.","file rename renames files and updates TypeScript imports."]}}
@@ -1 +0,0 @@
1
- "use strict";var a=exports&&exports.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.runHostCommand=r;const o=a(require("node:path")),n=require("../host/capabilities");function r(t){const e=t[0]??"status";if(e!=="status")return{ok:!1,command:"host",error:`Unknown host command: ${e}`,hint:"Usage: aib host status"};const s=o.default.resolve(__dirname,"..","..");return{ok:!0,command:"host",action:"status",packageRoot:s,host:JSON.parse(JSON.stringify((0,n.readHostCapabilities)(s)))}}
@@ -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}),k=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=k(require("node:path")),j=k(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"),W=require("../config/import-rules"),z=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"),D=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=be(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=J(e,t.sourceFile),a=J(e,t.targetFile),_=r.importRules??(0,W.readConfigImportRules)(e),O=r.mutationComments??(0,z.normalizeMutationCommentsPolicy)(void 0),y=t.execute===!0,d=[],M=typeof i.metricsContext?.executionId=="string"?i.metricsContext.executionId:void 0;(0,C.recordModulePlanTimeline)(e,M,"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,M,"moveToFile.resolveSelectors.end",{sourceFile:u(e,c),targetFile:u(e,a),entityCount:o.length,execute:y});for(const s of o){await(0,D.yieldToEventLoop)(),(0,C.recordModulePlanTimeline)(e,M,"moveToFile.entity.start",{sourceFile:u(e,c),targetFile:u(e,a),entity:s.raw,execute:y});const b=(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,W.importRulesToJson)(_),mutationComments:(0,z.mutationCommentsPolicyToJson)(O),impactMetrics:(0,T.mutationImpactMetricsEnabled)()},(0,x.extensionRequestOptions)(r));d.push({entity:s.raw,...ue(e,s.raw,S)}),(0,C.recordModulePlanTimeline)(e,M,"moveToFile.entity.end",{sourceFile:u(e,c),targetFile:u(e,a),entity:s.raw,execute:y,ok:!0}),b.end(se(e,S,d[d.length-1]??{},o.length)),H(i,s.raw,d,o.length),await(0,D.yieldToEventLoop)()}catch(m){d.push(fe(s.raw,m)),(0,C.recordModulePlanTimeline)(e,M,"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)}),b.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,d,o.length),await(0,D.yieldToEventLoop)();break}}const A=d.every(s=>s.ok!==!1),X=d.filter(s=>s.ok===!1).length,P=ye(c,a,o.map(s=>s.raw),y),$=L(d,"changedFiles"),q=L(d,"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,$,q,a):de(o.length,X),...!y&&$.length>0?{files:I($,5)}:{},...y&&q.length>0?{filesWritten:I(q,5)}:{},...A?{}:{results:d}};if(!y&&A){const s=(0,h.buildMovePreviewId)(P),b=(0,h.hashFile)(c),m=(0,h.hashFileIfExists)(a),S=(0,h.buildMovePreviewHash)(P,b,m,v);(0,h.writeMovePreviewRecord)(e,{previewId:s,previewHash:S,createdAt:new Date().toISOString(),cwd:F.resolve(e),sourceFile:c,sourceHash:b,targetFile:a,targetExisted:j.existsSync(a),targetHash:m,normalizedPayload:P,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=g(t.referenceImpact)?t.referenceImpact:{},l=g(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=g(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(g).map(o=>typeof o.code=="string"?o.code:"MOVE_WARNING"):[];return K({entity:t,ok:r.ok!==!1&&r.applied!==!1,applied:typeof r.applied=="boolean"?r.applied:null,editCount:typeof n.editCount=="number"?n.editCount:null,allChangedFiles:i,changedFiles:I(i,5),allSavedFiles:l,savedFiles:I(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&&g(t.details)?t.details:{},n=g(r.details)?r.details:g(r.payload)?r.payload:{},i=g(n.diagnostic)?n.diagnostic:{},l=Array.isArray(i.hints)?i.hints.filter(g).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 K({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,...process.env.AIB_MOVE_TO_FILE_DEBUG_REMOTE_ERROR==="1"?{remoteDetails:n}:{},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 I(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,O=Ee(_);return r.push(pe(t,e,i.length,f.length,l?1:0,a.length,O)),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(R(a,15))),Array.isArray(_)&&_.length>0&&(r.push(t==="move.toFile.preview"?"files:":"filesWritten:"),Me(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}: ${R(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),process.env.AIB_MOVE_TO_FILE_DEBUG_REMOTE_ERROR==="1"&&g(t.remoteDetails)&&e.push(`remoteDetails: ${JSON.stringify(t.remoteDetails)}`),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(g).filter(t=>t.ok!==!1).map(t=>U(t.entity)).filter(t=>!!t):[]}function _e(e){return Array.isArray(e)?e.filter(g).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 R(e,t){const r=e.slice(0,t),n=e.length-r.length;return n>0?`${r.join(", ")}, + ${n} more`:r.join(", ")}function Me(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 J(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 be(e,t){const r=e.indexOf(t);if(r<0)return null;const n=e[r+1];return n&&!n.startsWith("--")?n:null}function K(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t==null?!1:!(Array.isArray(t)&&t.length===0)))}function g(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,35 +0,0 @@
1
- # File Rename
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
- file rename renames whole files.
8
-
9
- Rename files:
10
- file rename preview --stdin
11
- file rename execute --stdin
12
- file rename apply <previewId>
13
-
14
- Use preview/apply when you want to inspect planned file renames before writing files.
15
- Use execute when you want to write immediately.
16
-
17
- Run:
18
- aib file rename execute --stdin
19
-
20
- Input:
21
- @base src
22
- rename svc/ws-cli.ts->cli.ts svc/ws-command.ts->command.ts
23
- rename svc/core/opt-build.ts->builder.ts
24
-
25
- How this resolves:
26
- - source files resolve from @base;
27
- - target names without a directory stay beside each source file.
28
-
29
- Rules:
30
- - @base sets the base directory for source files.
31
- - source file paths resolve from @base; cwd-relative paths are accepted when the @base path does not exist.
32
- - target names without a directory stay beside each source file.
33
- - target paths with a directory resolve from @base.
34
- - source paths and target paths may use `..`.
35
- - file rename supports files, not directories.
@@ -1,60 +0,0 @@
1
- # Mutation
2
-
3
- Mutation commands change code and files through TS/IDE-backed operations.
4
- Successful mutations update affected references and imports.
5
-
6
- Semantic mutations change TypeScript symbols/declarations.
7
- File mutations change file layout.
8
-
9
- After a successful mutation, do not manually patch the same imports unless aib reports a follow-up or checks show a real issue.
10
-
11
- If mutation imports do not match the repo style, run:
12
- aib help config-setup.import-rules
13
-
14
- AIB mutations are designed to reduce manual checking.
15
- Your job is to express the intent in DSL.
16
- AIB's job is to convert that intent into code changes.
17
-
18
- Choose the mutation by intent:
19
- rename - rename TypeScript symbols
20
- move toFile - move TypeScript declarations into one file
21
- modulePlan - split one source file into several modules
22
- file move toDir - move whole files into directories
23
- file rename - rename whole files.
24
-
25
- Do not read all changed files just because a mutation touched them.
26
- That defeats the purpose of using AIB for mechanical refactors.
27
-
28
- If the command succeeds, the requested mechanical change was applied.
29
- After failure or partial success, use the output to decide the next request.
30
-
31
- When running mutation commands, set the harness timeout to 3 minutes.
32
- If the harness stops waiting before final output appears, recover with:
33
-
34
- aib execution status last
35
-
36
- Modes:
37
- preview inspect planned edits, then apply by id
38
- apply write a previewed change
39
- execute write immediately
40
-
41
- Use execute for routine requests.
42
-
43
- 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.
44
- Typical examples: a huge modulePlan or refactor batch.
45
-
46
- preview/apply uses more tool calls and more output tokens.
47
- preview validates input and planned edits, but writing files can still hit a TS/IDE refactor error.
48
- execute writes immediately and reports what changed.
49
-
50
- If a mutation cannot be completed, aib reports the failed part.
51
-
52
- Prefer batch DSL for related mutations.
53
- One request can describe several related changes.
54
-
55
- When a batch mutation partly fails, split the next request by failure type.
56
-
57
- If the failure is wrong input, fix the selector/entity/file and run the corrected remaining intent.
58
- If TS/IDE cannot apply one part of the batch, do not treat the whole intent as failed.
59
- Run the next request without the failed part and let aib report any later failures.
60
- 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,35 +0,0 @@
1
- # File Rename
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
- file rename renames whole files.
8
-
9
- Rename files:
10
- file rename preview --stdin
11
- file rename execute --stdin
12
- file rename apply <previewId>
13
-
14
- Use preview/apply when you want to inspect planned file renames before writing files.
15
- Use execute when you want to write immediately.
16
-
17
- Run:
18
- aib file rename execute --stdin
19
-
20
- Input:
21
- @base src
22
- rename svc/ws-cli.ts->cli.ts svc/ws-command.ts->command.ts
23
- rename svc/core/opt-build.ts->builder.ts
24
-
25
- How this resolves:
26
- - source files resolve from @base;
27
- - target names without a directory stay beside each source file.
28
-
29
- Rules:
30
- - @base sets the base directory for source files.
31
- - source file paths resolve from @base; cwd-relative paths are accepted when the @base path does not exist.
32
- - target names without a directory stay beside each source file.
33
- - target paths with a directory resolve from @base.
34
- - source paths and target paths may use `..`.
35
- - file rename supports files, not directories.
@@ -1,60 +0,0 @@
1
- # Mutation
2
-
3
- Mutation commands change code and files through TS/IDE-backed operations.
4
- Successful mutations update affected references and imports.
5
-
6
- Semantic mutations change TypeScript symbols/declarations.
7
- File mutations change file layout.
8
-
9
- After a successful mutation, do not manually patch the same imports unless aib reports a follow-up or checks show a real issue.
10
-
11
- If mutation imports do not match the repo style, run:
12
- aib help config-setup.import-rules
13
-
14
- AIB mutations are designed to reduce manual checking.
15
- Your job is to express the intent in DSL.
16
- AIB's job is to convert that intent into code changes.
17
-
18
- Choose the mutation by intent:
19
- rename - rename TypeScript symbols
20
- move toFile - move TypeScript declarations into one file
21
- modulePlan - split one source file into several modules
22
- file move toDir - move whole files into directories
23
- file rename - rename whole files.
24
-
25
- Do not read all changed files just because a mutation touched them.
26
- That defeats the purpose of using AIB for mechanical refactors.
27
-
28
- If the command succeeds, the requested mechanical change was applied.
29
- After failure or partial success, use the output to decide the next request.
30
-
31
- When running mutation commands, set the harness timeout to 3 minutes.
32
- If the harness stops waiting before final output appears, recover with:
33
-
34
- aib execution status last
35
-
36
- Modes:
37
- preview inspect planned edits, then apply by id
38
- apply write a previewed change
39
- execute write immediately
40
-
41
- Use execute for routine requests.
42
-
43
- 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.
44
- Typical examples: a huge modulePlan or refactor batch.
45
-
46
- preview/apply uses more tool calls and more output tokens.
47
- preview validates input and planned edits, but writing files can still hit a TS/IDE refactor error.
48
- execute writes immediately and reports what changed.
49
-
50
- If a mutation cannot be completed, aib reports the failed part.
51
-
52
- Prefer batch DSL for related mutations.
53
- One request can describe several related changes.
54
-
55
- When a batch mutation partly fails, split the next request by failure type.
56
-
57
- If the failure is wrong input, fix the selector/entity/file and run the corrected remaining intent.
58
- If TS/IDE cannot apply one part of the batch, do not treat the whole intent as failed.
59
- Run the next request without the failed part and let aib report any later failures.
60
- 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,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
- file rename renames whole files.
6
-
7
- Rename files:
8
- file rename preview --stdin
9
- file rename execute --stdin
10
- file rename apply <previewId>
11
-
12
- Use preview/apply when you want to inspect planned file renames before writing files.
13
- Use execute when you want to write immediately.
14
-
15
- Run:
16
- aib file rename execute --stdin
17
-
18
- Input:
19
- @base src
20
- rename svc/ws-cli.ts->cli.ts svc/ws-command.ts->command.ts
21
- rename svc/core/opt-build.ts->builder.ts
22
-
23
- How this resolves:
24
- - source files resolve from @base;
25
- - target names without a directory stay beside each source file.
26
-
27
- Rules:
28
- - @base sets the base directory for source files.
29
- - source file paths resolve from @base; cwd-relative paths are accepted when the @base path does not exist.
30
- - target names without a directory stay beside each source file.
31
- - target paths with a directory resolve from @base.
32
- - source paths and target paths may use `..`.
33
- - file rename supports files, not directories.
@@ -1,58 +0,0 @@
1
- Mutation commands change code and files through TS/IDE-backed operations.
2
- Successful mutations update affected references and imports.
3
-
4
- Semantic mutations change TypeScript symbols/declarations.
5
- File mutations change file layout.
6
-
7
- After a successful mutation, do not manually patch the same imports unless aib reports a follow-up or checks show a real issue.
8
-
9
- If mutation imports do not match the repo style, run:
10
- aib help config-setup.import-rules
11
-
12
- AIB mutations are designed to reduce manual checking.
13
- Your job is to express the intent in DSL.
14
- AIB's job is to convert that intent into code changes.
15
-
16
- Choose the mutation by intent:
17
- rename - rename TypeScript symbols
18
- move toFile - move TypeScript declarations into one file
19
- modulePlan - split one source file into several modules
20
- file move toDir - move whole files into directories
21
- file rename - rename whole files.
22
-
23
- Do not read all changed files just because a mutation touched them.
24
- That defeats the purpose of using AIB for mechanical refactors.
25
-
26
- If the command succeeds, the requested mechanical change was applied.
27
- After failure or partial success, use the output to decide the next request.
28
-
29
- When running mutation commands, set the harness timeout to 3 minutes.
30
- If the harness stops waiting before final output appears, recover with:
31
-
32
- aib execution status last
33
-
34
- Modes:
35
- preview inspect planned edits, then apply by id
36
- apply write a previewed change
37
- execute write immediately
38
-
39
- Use execute for routine requests.
40
-
41
- 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.
42
- Typical examples: a huge modulePlan or refactor batch.
43
-
44
- preview/apply uses more tool calls and more output tokens.
45
- preview validates input and planned edits, but writing files can still hit a TS/IDE refactor error.
46
- execute writes immediately and reports what changed.
47
-
48
- If a mutation cannot be completed, aib reports the failed part.
49
-
50
- Prefer batch DSL for related mutations.
51
- One request can describe several related changes.
52
-
53
- When a batch mutation partly fails, split the next request by failure type.
54
-
55
- If the failure is wrong input, fix the selector/entity/file and run the corrected remaining intent.
56
- If TS/IDE cannot apply one part of the batch, do not treat the whole intent as failed.
57
- Run the next request without the failed part and let aib report any later failures.
58
- 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.
@@ -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
- file rename renames whole files.
6
-
7
- Rename files:
8
- file rename preview --stdin
9
- file rename execute --stdin
10
- file rename apply <previewId>
11
-
12
- Use preview/apply when you want to inspect planned file renames before writing files.
13
- Use execute when you want to write immediately.
14
-
15
- Run:
16
- aib file rename execute --stdin
17
-
18
- Input:
19
- @base src
20
- rename svc/ws-cli.ts->cli.ts svc/ws-command.ts->command.ts
21
- rename svc/core/opt-build.ts->builder.ts
22
-
23
- How this resolves:
24
- - source files resolve from @base;
25
- - target names without a directory stay beside each source file.
26
-
27
- Rules:
28
- - @base sets the base directory for source files.
29
- - source file paths resolve from @base; cwd-relative paths are accepted when the @base path does not exist.
30
- - target names without a directory stay beside each source file.
31
- - target paths with a directory resolve from @base.
32
- - source paths and target paths may use `..`.
33
- - file rename supports files, not directories.