@automaton-labs/aib 0.0.7 → 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 (477) 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 -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 +210 -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
package/dist/bin/cli.js CHANGED
@@ -1,5 +1,812 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var G=exports&&exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const L=G(require("node:fs")),re=G(require("node:path")),P=require("../payloads/read-stdin-json"),ne=require("../commands/doctor"),se=require("../commands/init-workspace"),U=require("../commands/inspect"),oe=require("../commands/imports-command"),ie=require("../commands/declaration-command"),ae=require("../commands/config-command"),ce=require("../commands/control-plane-command"),ue=require("../commands/background-command"),de=require("../commands/diagnostics-command"),le=require("../commands/execution-command"),fe=require("../commands/feedback-command"),pe=require("../commands/observability-command"),me=require("../commands/worker-command"),_e=require("../commands/generate-docs-command"),Ce=require("../commands/help-command"),Ie=require("../commands/runtime-command"),Ee=require("../commands/host-command"),ve=require("../commands/ota-command"),we=require("../commands/reveal-command"),Se=require("../commands/result-view"),he=require("../commands/quick-read"),V=require("../commands/captured-input"),H=require("../commands/session-workspace"),J=require("../commands/session-workspace"),K=require("../config/path-aliases"),A=require("../session/client"),ye=require("../session/server"),ge=require("../commands/module-plan-cache"),z=require("../config/resolve-command-alias"),Ne=require("../config/auto-start-ide"),o=require("../config/env-vars"),Q=require("../client/transport-options"),g=require("../shared/errors"),w=require("../shared/metrics"),X=require("../shared/presentation"),Y=require("../tracing/config"),F=require("../tracing/trace"),k=require("../rg-wrapper/core"),be=require("../rg-wrapper/options"),T=require("../rtk-wrapper/core"),Z=require("../runtime/input-source");function Le(e){return e.ok===!1}let x=null,D=Date.now();function xe(e){const n=[];let i=process.cwd(),r,p,d=process.env[o.CLI_ENV.metrics]==="1",l=(0,Q.parseExtensionTransport)(process.env[o.CLI_ENV.transport])??void 0,E,h,_;for(let C=0;C<e.length;C+=1){const f=e[C];if(f){if(f==="--"&&(n[0]==="rg"||(0,T.isRtkPassthroughCommand)(n[0]??""))){n.push(f,...e.slice(C+1));break}if(f==="--cwd"){const m=e[C+1];if(!m)throw new g.CliError("MISSING_FLAG_VALUE","Expected a value after --cwd.");i=m,C+=1;continue}if(f==="--instance"){const m=e[C+1];if(!m)throw new g.CliError("MISSING_FLAG_VALUE","Expected a value after --instance.");r=m,C+=1;continue}if(f==="--session"||f==="-s"){const m=e[C+1];if(!m)throw new g.CliError("MISSING_FLAG_VALUE",`Expected a value after ${f}.`);p=m,C+=1;continue}if(f==="--metrics"){d=!0;continue}if(f==="--dsl"||f==="--force-dsl"){_="dsl";continue}if(f==="--stdin-format"){const m=e[C+1];if(m!=="auto"&&m!=="dsl")throw new g.CliError("INVALID_STDIN_FORMAT","Expected --stdin-format to be auto or dsl.");_=m,C+=1;continue}if(f==="--trace-dir"){const m=e[C+1];if(!m)throw new g.CliError("MISSING_FLAG_VALUE","Expected a value after --trace-dir.");h=m,C+=1;continue}if(f==="--auto-start-ide"){E="serve-web";continue}if(f==="--no-auto-start-ide"){E="off";continue}if(f==="--transport"){const m=e[C+1],s=(0,Q.parseExtensionTransport)(m);if(!s)throw new g.CliError("INVALID_TRANSPORT","Expected --transport to be either http or websocket.");l=s,C+=1;continue}n.push(f)}}const b=process.env[o.CLI_ENV.traceDir];return{commandArgs:n,cwd:i,instanceId:r,sessionId:p,metricsEnabled:d,transport:l,autoStartIde:(0,Ne.resolveAutoStartIdePolicy)(E),trace:(0,Y.resolveTraceConfig)(i,{...h!==void 0?{flagTraceDir:h}:{},...b!==void 0?{envTraceDir:b}:{}}),..._!==void 0?{stdinFormat:_}:{}}}async function De(){D=Date.now();const e=(0,w.metricsNow)(),n=[],{commandArgs:i,cwd:r,instanceId:p,sessionId:d,metricsEnabled:l,transport:E,autoStartIde:h,trace:_,stdinFormat:b}=xe(process.argv.slice(2));await(0,J.runWithSessionOverride)(d,async()=>{const[C,...f]=i,m=(0,w.metricsNow)(),s=await(0,z.resolveCanonicalCommandAlias)(C??"ping",r,p,h);if(l&&(0,w.recordSpan)(n,"cli.aliasResolution",m),s==="rg"){Fe(r,f);return}if((0,T.isRtkPassthroughCommand)(s)){Te(s,r,f);return}const q=(0,P.stripStdinFormatFlags)(f),u=q.restArgs;if((0,z.isRemovedAgentCommand)(s))throw new g.CliError("UNKNOWN_COMMAND",`Unknown command: ${s}`,{availableCommands:["doctor","diagnostics","listInstances","ping","runtimeInfo","printConfig","init-skill-usage","init","help","generate-docs","config","qr","git","gh","docker","kubectl","jest","vitest","playwright","pytest","go","cargo","rake","lint","biome","tsc","next","prettier","ruff","golangci-lint","rubocop","sync","reveal","inspect","imports","view","execution","file","move","rename","refactor","modulePlan","session","runtime","host","trace","control-plane","background","worker","ota","observability","feedback","note"]});if(s==="session"&&(u[0]??"status")==="serve"){await(0,ye.runSessionServerCli)();return}if(s==="trace"){const t=(0,Y.runTraceCommand)(r,u,_);a(t);return}if(s==="control-plane"){const t=await(0,ce.runControlPlaneCommand)(r,u);t.ok===!1&&(process.exitCode=1),a(t);return}if(s==="background"){const t=(0,ue.runBackgroundCommand)(r,u);t.ok===!1&&(process.exitCode=1),a(t);return}if(s==="worker"){const t=(0,me.runWorkerCommand)(r,u);t.ok===!1&&(process.exitCode=1),a(t);return}if(s==="host"){const t=(0,Ee.runHostCommand)(u);t.ok===!1&&(process.exitCode=1),a(t);return}if(s==="ota"){const t=await(0,ve.runOtaCommand)(u);t.ok===!1&&(process.exitCode=1),a(t);return}if(s==="diagnostics"){await(0,de.runDiagnosticsCommand)(u);return}if(s==="observability"){M(r,s,u,_);const t=(0,pe.runObservabilityCommand)(r,u);a(t);return}if(s==="feedback"||s==="note"){M(r,s,u,_);const t=(0,fe.runFeedbackCommand)(r,u,s);a(t);return}if(s==="init"){const t=(0,se.runInitWorkspace)(r,u);a(t);return}if(s==="help"){const t=(0,Ce.runHelpCommand)(u);a(t);return}if(s==="generate-docs"){const t=(0,_e.runGenerateDocsCommand)(r,u);a(t);return}if(s==="config"){M(r,s,u,_);const t=(0,ae.runConfigCommand)(r,u);a(t);return}if(s==="runtime"){const t=await(0,Ie.runRuntimeCommand)(r,u);t.ok===!1&&(process.exitCode=1),a(t);return}if(s==="reveal"){M(r,s,u,_);const t=(0,we.runRevealCommand)(r,u);a(t);return}if(s==="qr"){const t=u.includes("--stdin")?await(0,P.readRawStdinText)():void 0;x=(0,F.startTrace)({cwd:r,argv:process.argv.slice(2),command:s,restArgs:u,..._.absoluteTraceDir!==void 0?{traceDir:_.absoluteTraceDir}:_.traceDir!==void 0?{traceDir:_.traceDir}:{},...t!==void 0?{stdinSource:{format:"qr",text:t}}:{},startedAtMs:D});const I=await(0,he.runQuickReadCommand)(r,u,t!==void 0?{rawStdin:t}:{});I.ok===!1&&(process.exitCode=1),a(I);return}const R=Me(s,u),O=R?(0,J.readEffectiveSessionPathAliases)(r):{},c=R?(0,K.expandPathAliasesInArgs)(r,u,O):u,S=await(0,Z.resolveCommandInputSource)({command:s,cwd:r,restArgs:c,readStdinInput:()=>(0,P.readStdinPayloadWithSource)({command:s,restArgs:c,...q.format!==void 0||b!==void 0?{format:q.format??b}:{}})}),v=R?(0,K.expandPathAliasesInJson)(r,S.payload,O):S.payload;if(x=(0,F.startTrace)({cwd:r,argv:process.argv.slice(2),command:s,restArgs:c,..._.absoluteTraceDir!==void 0?{traceDir:_.absoluteTraceDir}:_.traceDir!==void 0?{traceDir:_.traceDir}:{},...v!==void 0?{stdinPayload:v}:{},...S.source!==void 0?{stdinSource:S.source}:{},startedAtMs:D}),s==="session"){const t=c[0]??"status";if(t==="init"||t==="clear"||t==="where"||t==="read"||t==="write"||t==="prefs"||t==="aliases"||t==="list"||t==="use"){const I=(0,H.runSessionWorkspaceCommand)(r,c,v);a(I);return}if(t==="status"){const I=(0,H.runSessionWorkspaceCommand)(r,c,v),N=await(0,A.getSessionStatus)();a({...I,runtime:qe(N)});return}if(t==="start"){const I=await(0,A.startSession)();a(I);return}if(t==="stop"){const I=await(0,A.stopSession)();a(I);return}throw new g.CliError("UNKNOWN_SESSION_COMMAND",`Unknown aib session command: ${t}`)}if(s==="imports"&&c[0]==="normalize"){const t=(0,V.attachCapturedInput)(r,"imports",v,await(0,oe.runImportsCommand)(r,c,v,{...p!==void 0?{explicitInstanceId:p}:{},autoStartIde:h,...E!==void 0?{transport:E}:{},...l?{metricsEnabled:!0}:{}},l?n:void 0),S.source);a(t);return}if(s==="execution"){const t=(0,le.runExecutionCommand)(r,c);a(t);return}if(s==="view"){const t=(0,Se.runResultViewCommand)(r,c,v);t.ok===!1&&(process.exitCode=1),a(t);return}if(s==="declaration"){const t=(0,V.attachCapturedInput)(r,`declaration.${c[0]??"help"}`,v,await(0,ie.runDeclarationCommand)(r,c,v,{...p!==void 0?{explicitInstanceId:p}:{},autoStartIde:h,...E!==void 0?{transport:E}:{},...l?{metricsEnabled:!0}:{}}),S.source);t.ok===!1&&(process.exitCode=1),a(t);return}if(s==="doctor"){const t=c.includes("--progress"),I=c.includes("--json"),N=await(0,ne.runDoctor)({cwd:r,runtime:c.includes("--runtime"),verbose:c.includes("--verbose"),json:I,progress:t});N.ok===!1&&(process.exitCode=1),a(N,void 0,{suppressStdout:t&&!I&&process.env.AIB_FORCE_JSON!=="1"});return}if(s==="inspect"&&(c[0]==="graph"||c[0]==="tree"||c[0]==="cycles")){const t=(0,w.metricsNow)(),I=c[0]==="tree"?"tree":c[0]==="cycles"?"cycles":"graph",N=(0,V.attachCapturedInput)(r,I,v,await(0,U.runInspect)(r,c,v,{...p!==void 0?{explicitInstanceId:p}:{},autoStartIde:h,...E!==void 0?{transport:E}:{},...l?{metricsEnabled:!0}:{}}),S.source);l&&((0,w.recordSpan)(n,"cli.inspectGraph",t),(0,w.recordSpan)(n,"cli.total",e)),a(l?(0,w.appendMetrics)(N,n):N,E);return}if(s==="inspect"&&c.includes("--stdin")&&Re(v)){const t=(0,w.metricsNow)(),I=(0,V.attachCapturedInput)(r,Pe(v),v,await(0,U.runInspect)(r,c,v,{...p!==void 0?{explicitInstanceId:p}:{},autoStartIde:h,...E!==void 0?{transport:E}:{},...l?{metricsEnabled:!0}:{}}),S.source);l&&((0,w.recordSpan)(n,"cli.inspectLocal",t),(0,w.recordSpan)(n,"cli.total",e)),a(l?(0,w.appendMetrics)(I,n):I,E);return}if((0,Z.commandRequiresPayload)(s,c,S))throw new g.CliError("STDIN_REQUIRED",`${s} currently expects a payload on stdin or --from.`);const y={command:s,restArgs:c,cwd:r},W=Ae(s,c);W&&(y.modulePlanExecutionId=W),d!==void 0&&(y.sessionId=d),p!==void 0&&(y.instanceId=p),v!==void 0&&(y.stdinPayload=v),S.source!==void 0&&(y.stdinInputSource=S.source),l&&(y.metricsEnabled=!0),E&&(y.transport=E),y.autoStartIde=h.mode;const B=Ve();Object.keys(B).length>0&&(y.env=B);const te=(0,w.metricsNow)(),$=await(0,A.callSession)(y,l?n:void 0);l&&((0,w.recordSpan)(n,"cli.callSession",te),(0,w.recordSpan)(n,"cli.total",e));const j=l?(0,w.appendMetrics)($,n):$;Le(j)&&(process.exitCode=1),a(j,E)})}function Ve(){const e=[o.CLI_ENV.managedHostScript,o.CLI_ENV.managedHostKind,o.CLI_ENV.managedHostRunDir,o.CLI_ENV.codeServerPath,o.CLI_ENV.extensionVsix,o.CLI_ENV.ideCommand,o.CLI_ENV.chromePath,o.CLI_ENV.managedHostWaitMs,o.CLI_ENV.workspaceRoot,o.CLI_ENV.disableWatchers,o.CLI_ENV.trace,o.CLI_ENV.traceDir,o.CLI_ENV.failureSnapshots,o.CLI_ENV.productStorageDir,o.CLI_ENV.metrics,o.CLI_ENV.metricsDir,o.CLI_ENV.metricsTag,o.CLI_ENV.mutationImpactMetrics,o.CLI_ENV.mutationImpactStream,o.CLI_ENV.testPostMutationCyclesDelayMs,o.CLI_ENV.testRefactorBatchDelayMs,o.CLI_ENV.testRenameDelayMs,o.CLI_ENV.testFileMoveToDirDelayMs,o.CLI_ENV.testFileMoveToDirRowDelayMs,o.CLI_ENV.testFileMoveToDirImportsDelayMs,o.CLI_ENV.testFileMoveToDirFailImports,o.CLI_ENV.testFileRenameDelayMs,o.CLI_ENV.testFileRenameRowDelayMs,o.CLI_ENV.testFileRenameImportsDelayMs,o.CLI_ENV.testFileRenameFailImports,o.CLI_ENV.testFileRefactorBatchDelayMs,o.CLI_ENV.testFileRefactorBatchRowDelayMs,o.CLI_ENV.testFileRefactorBatchImportsDelayMs,o.CLI_ENV.testFileRefactorBatchFailImports,o.CLI_ENV.disableFileMutationImportPostProcess,o.CLI_ENV.disableFileMoveImportPostProcess,o.CLI_ENV.modulePlanSyncWaitMs,o.CLI_ENV.refactorBatchSyncWaitMs,o.CLI_ENV.renameSyncWaitMs,o.CLI_ENV.fileMoveToDirSyncWaitMs,o.CLI_ENV.fileRenameSyncWaitMs,o.CLI_ENV.fileRefactorBatchSyncWaitMs],n={};for(const i of e){const r=process.env[i];r!==void 0&&(n[i]=r)}return n}function Ae(e,n){if(e!=="modulePlan")return null;const i=n[0]??"";return i!=="execute"&&i!=="apply"?null:ke()??(0,ge.buildModulePlanExecutionId)()}function ke(){const e=process.env.AIB_MODULE_PLAN_EXECUTION_ID;return e&&/^exec_[a-z0-9_-]+$/i.test(e)?e:null}function M(e,n,i,r){x=(0,F.startTrace)({cwd:e,argv:process.argv.slice(2),command:n,restArgs:i,...r.absoluteTraceDir!==void 0?{traceDir:r.absoluteTraceDir}:r.traceDir!==void 0?{traceDir:r.traceDir}:{},startedAtMs:D})}function Me(e,n){return e==="session"||e==="execution"||e==="observability"||e==="doctor"||e==="reveal"||e==="view"||e==="declaration"||e==="imports"&&n[0]==="normalize"||e==="inspect"&&(n[0]==="graph"||n[0]==="tree"||n[0]==="cycles"||n[0]==="imports"||n.includes("--stdin"))}function qe(e){if(e.running===!0){const n=e.session&&typeof e.session=="object"&&!Array.isArray(e.session)?e.session:{},i=typeof n.pid=="number"?` pid ${n.pid}`:"",r=typeof n.port=="number"?` port ${n.port}`:"";return`running${i}${r}`.trim()}return e.processAlive===!0&&e.healthy===!1?"unhealthy":"stopped"}function Re(e){return!e||typeof e!="object"||Array.isArray(e)?!1:e.op==="tree"||e.op==="cycles"||e.op==="imports"?!0:Array.isArray(e.requests)&&e.requests.some(n=>n&&typeof n=="object"&&!Array.isArray(n)&&(n.op==="tree"||n.op==="cycles"||n.op==="imports"))}function Pe(e){if(!e||typeof e!="object"||Array.isArray(e))return"inspect";const n=Array.isArray(e.requests)?e.requests.filter(i=>i&&typeof i=="object"&&!Array.isArray(i)):[e];return n.every(i=>i.op==="cycles")?"cycles":n.every(i=>i.op==="tree")?"tree":n.every(i=>i.op==="imports")?"imports":"inspect"}De().catch(e=>{const n=(0,g.errorPayload)(e);a(n),process.exitCode=1});function Fe(e,n){const i=n[0]==="--"?n.slice(1):n,r=ee(),d=(0,k.classifyRgArgs)(i,{hasStdin:r}).mode==="optimizable"?(0,k.runBrgFormatted)({cwd:e,args:i,env:process.env},(0,be.resolveBrgFormatOptions)(e,i,process.env)):r?(0,k.runBrgRaw)({cwd:e,args:i,env:process.env,stdinText:L.default.readFileSync(0,"utf8")}):(0,k.runBrgRawInherited)({cwd:e,args:i,env:process.env,hasStdin:r});if(d.spawnError){process.stderr.write(`aib rg: failed to run rg. Install rg or set ${o.CLI_ENV.rgPath}: ${d.spawnError}
3
- `),process.exitCode=2;return}d.stdout&&process.stdout.write(d.stdout),d.stderr&&process.stderr.write(d.stderr),process.exitCode=d.exitCode}function Te(e,n,i){const r=i[0]==="--"?i.slice(1):i,p=ee(),d=(0,T.runRtkPassthrough)({tool:e,cwd:n,args:r,env:process.env,...p?{stdinText:L.default.readFileSync(0,"utf8")}:{}});if(d.spawnError){process.stderr.write(`aib ${e}: failed to run rtk. Install rtk or set ${o.CLI_ENV.rtkPath}: ${d.spawnError}
4
- `),process.exitCode=d.exitCode;return}d.stdout&&process.stdout.write(d.stdout),d.stderr&&process.stderr.write(d.stderr),process.exitCode=d.exitCode}function ee(){try{return!L.default.fstatSync(0).isCharacterDevice()}catch{return process.stdin.isTTY===!1}}function a(e,n,i={}){const r=(0,X.createCliPresentationEnvelope)(e),p=(0,X.presentCliEnvelope)(r,process.env.AIB_FORCE_JSON==="1"?"json":"agent"),d=i.suppressStdout===!0?"":p;x?.enabled&&x.complete({output:r.tracePayload,stdoutText:d,exitCode:e.ok===!1?1:Oe(process.exitCode),durationMs:Date.now()-D,...n?{transport:n}:{}});const l=process.env.AIB_CANONICAL_JSON_PATH;l&&(L.default.mkdirSync(re.default.dirname(l),{recursive:!0}),L.default.writeFileSync(l,`${JSON.stringify(r.tracePayload,null,2)}
5
- `)),i.suppressStdout!==!0&&process.stdout.write(p)}function Oe(e){return typeof e=="number"?e:0}
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const read_stdin_json_1 = require("../payloads/read-stdin-json");
10
+ const doctor_1 = require("../commands/doctor");
11
+ const init_workspace_1 = require("../commands/init-workspace");
12
+ const inspect_1 = require("../commands/inspect");
13
+ const imports_command_1 = require("../commands/imports-command");
14
+ const internal_command_1 = require("../commands/internal-command");
15
+ const declaration_command_1 = require("../commands/declaration-command");
16
+ const mutate_command_1 = require("../commands/mutate-command");
17
+ const config_command_1 = require("../commands/config-command");
18
+ const control_plane_command_1 = require("../commands/control-plane-command");
19
+ const background_command_1 = require("../commands/background-command");
20
+ const diagnostics_command_1 = require("../commands/diagnostics-command");
21
+ const execution_command_1 = require("../commands/execution-command");
22
+ const feedback_command_1 = require("../commands/feedback-command");
23
+ const observability_command_1 = require("../commands/observability-command");
24
+ const worker_command_1 = require("../commands/worker-command");
25
+ const generate_docs_command_1 = require("../commands/generate-docs-command");
26
+ const help_command_1 = require("../commands/help-command");
27
+ const skills_command_1 = require("../commands/skills-command");
28
+ const ota_command_1 = require("../commands/ota-command");
29
+ const reveal_command_1 = require("../commands/reveal-command");
30
+ const result_view_1 = require("../commands/result-view");
31
+ const quick_read_1 = require("../commands/quick-read");
32
+ const captured_input_1 = require("../commands/captured-input");
33
+ const module_plan_cache_1 = require("../commands/module-plan-cache");
34
+ const session_workspace_1 = require("../commands/session-workspace");
35
+ const session_workspace_2 = require("../commands/session-workspace");
36
+ const path_aliases_1 = require("../config/path-aliases");
37
+ const client_1 = require("../session/client");
38
+ const server_1 = require("../session/server");
39
+ const resolve_command_alias_1 = require("../config/resolve-command-alias");
40
+ const env_vars_1 = require("../config/env-vars");
41
+ const errors_1 = require("../shared/errors");
42
+ const metrics_1 = require("../shared/metrics");
43
+ const presentation_1 = require("../shared/presentation");
44
+ const config_1 = require("../tracing/config");
45
+ const trace_1 = require("../tracing/trace");
46
+ const core_1 = require("../rg-wrapper/core");
47
+ const options_1 = require("../rg-wrapper/options");
48
+ const core_2 = require("../rtk-wrapper/core");
49
+ const core_3 = require("../tsc-wrapper/core");
50
+ const input_source_1 = require("../runtime/input-source");
51
+ function isErrorPayload(value) {
52
+ return value.ok === false;
53
+ }
54
+ let activeTrace = null;
55
+ let cliStartedAtWallMs = Date.now();
56
+ function parseGlobalFlags(args) {
57
+ const commandArgs = [];
58
+ let cwd = process.cwd();
59
+ let sessionId;
60
+ let metricsEnabled = process.env[env_vars_1.CLI_ENV.metrics] === "1";
61
+ let flagTraceDir;
62
+ let stdinFormat;
63
+ for (let index = 0; index < args.length; index += 1) {
64
+ const current = args[index];
65
+ if (!current) {
66
+ continue;
67
+ }
68
+ if (current === "--" && (commandArgs[0] === "rg" || (0, core_2.isRtkPassthroughCommand)(commandArgs[0] ?? ""))) {
69
+ commandArgs.push(current, ...args.slice(index + 1));
70
+ break;
71
+ }
72
+ if (current === "--cwd") {
73
+ const nextValue = args[index + 1];
74
+ if (!nextValue) {
75
+ throw new errors_1.CliError("MISSING_FLAG_VALUE", "Expected a value after --cwd.");
76
+ }
77
+ cwd = nextValue;
78
+ index += 1;
79
+ continue;
80
+ }
81
+ if (current === "--session" || current === "-s") {
82
+ const nextValue = args[index + 1];
83
+ if (!nextValue) {
84
+ throw new errors_1.CliError("MISSING_FLAG_VALUE", `Expected a value after ${current}.`);
85
+ }
86
+ sessionId = nextValue;
87
+ index += 1;
88
+ continue;
89
+ }
90
+ if (current === "--metrics") {
91
+ metricsEnabled = true;
92
+ continue;
93
+ }
94
+ if (current === "--dsl" || current === "--force-dsl") {
95
+ stdinFormat = "dsl";
96
+ continue;
97
+ }
98
+ if (current === "--stdin-format") {
99
+ const nextValue = args[index + 1];
100
+ if (nextValue !== "auto" && nextValue !== "dsl") {
101
+ throw new errors_1.CliError("INVALID_STDIN_FORMAT", "Expected --stdin-format to be auto or dsl.");
102
+ }
103
+ stdinFormat = nextValue;
104
+ index += 1;
105
+ continue;
106
+ }
107
+ if (current === "--trace-dir") {
108
+ const nextValue = args[index + 1];
109
+ if (!nextValue) {
110
+ throw new errors_1.CliError("MISSING_FLAG_VALUE", "Expected a value after --trace-dir.");
111
+ }
112
+ flagTraceDir = nextValue;
113
+ index += 1;
114
+ continue;
115
+ }
116
+ commandArgs.push(current);
117
+ }
118
+ const envTraceDir = process.env[env_vars_1.CLI_ENV.traceDir];
119
+ return {
120
+ commandArgs,
121
+ cwd,
122
+ sessionId,
123
+ metricsEnabled,
124
+ trace: (0, config_1.resolveTraceConfig)(cwd, {
125
+ ...(flagTraceDir !== undefined ? { flagTraceDir } : {}),
126
+ ...(envTraceDir !== undefined ? { envTraceDir } : {})
127
+ }),
128
+ ...(stdinFormat !== undefined ? { stdinFormat } : {})
129
+ };
130
+ }
131
+ async function main() {
132
+ cliStartedAtWallMs = Date.now();
133
+ const cliStartedAt = (0, metrics_1.metricsNow)();
134
+ const spans = [];
135
+ const { commandArgs, cwd, sessionId, metricsEnabled, trace, stdinFormat: globalStdinFormat } = parseGlobalFlags(process.argv.slice(2));
136
+ await (0, session_workspace_2.runWithSessionOverride)(sessionId, async () => {
137
+ const [rawCommand, ...rawRestArgs] = commandArgs;
138
+ const aliasStartedAt = (0, metrics_1.metricsNow)();
139
+ const command = await (0, resolve_command_alias_1.resolveCanonicalCommandAlias)(rawCommand ?? "help", cwd);
140
+ if (metricsEnabled) {
141
+ (0, metrics_1.recordSpan)(spans, "cli.aliasResolution", aliasStartedAt);
142
+ }
143
+ if (command === "rg") {
144
+ runRgPassthrough(cwd, rawRestArgs);
145
+ return;
146
+ }
147
+ if ((0, core_2.isRtkPassthroughCommand)(command)) {
148
+ runRtkCommandPassthrough(command, cwd, rawRestArgs);
149
+ return;
150
+ }
151
+ if (command === "tsc") {
152
+ (0, core_3.runAibTscCommand)(cwd, rawRestArgs, process.env);
153
+ return;
154
+ }
155
+ const stdinFormat = (0, read_stdin_json_1.stripStdinFormatFlags)(rawRestArgs);
156
+ const restArgs = stdinFormat.restArgs;
157
+ if ((0, resolve_command_alias_1.isRemovedAgentCommand)(command)) {
158
+ throw new errors_1.CliError("UNKNOWN_COMMAND", `Unknown command: ${command}`, {
159
+ availableCommands: [
160
+ "doctor",
161
+ "diagnostics",
162
+ "printConfig",
163
+ "init-skill-usage",
164
+ "init",
165
+ "help",
166
+ "skills",
167
+ "generate-docs",
168
+ "config",
169
+ "qr",
170
+ "git",
171
+ "gh",
172
+ "docker",
173
+ "kubectl",
174
+ "jest",
175
+ "vitest",
176
+ "playwright",
177
+ "pytest",
178
+ "go",
179
+ "cargo",
180
+ "rake",
181
+ "lint",
182
+ "biome",
183
+ "tsc",
184
+ "next",
185
+ "prettier",
186
+ "ruff",
187
+ "golangci-lint",
188
+ "rubocop",
189
+ "sync",
190
+ "reveal",
191
+ "inspect",
192
+ "imports",
193
+ "view",
194
+ "execution",
195
+ "mutate",
196
+ "session",
197
+ "trace",
198
+ "control-plane",
199
+ "background",
200
+ "worker",
201
+ "ota",
202
+ "observability",
203
+ "feedback",
204
+ "note"
205
+ ]
206
+ });
207
+ }
208
+ if (command === "session" && (restArgs[0] ?? "status") === "serve") {
209
+ await (0, server_1.runSessionServerCli)();
210
+ return;
211
+ }
212
+ if (command === "trace") {
213
+ const result = (0, config_1.runTraceCommand)(cwd, restArgs, trace);
214
+ traceAndPrint(result);
215
+ return;
216
+ }
217
+ if (command === "control-plane") {
218
+ const result = await (0, control_plane_command_1.runControlPlaneCommand)(cwd, restArgs);
219
+ if (result.ok === false) {
220
+ process.exitCode = 1;
221
+ }
222
+ traceAndPrint(result);
223
+ return;
224
+ }
225
+ if (command === "background") {
226
+ const result = (0, background_command_1.runBackgroundCommand)(cwd, restArgs);
227
+ if (result.ok === false) {
228
+ process.exitCode = 1;
229
+ }
230
+ traceAndPrint(result);
231
+ return;
232
+ }
233
+ if (command === "worker") {
234
+ const result = (0, worker_command_1.runWorkerCommand)(cwd, restArgs);
235
+ if (result.ok === false) {
236
+ process.exitCode = 1;
237
+ }
238
+ traceAndPrint(result);
239
+ return;
240
+ }
241
+ if (command === "ota") {
242
+ const result = await (0, ota_command_1.runOtaCommand)(restArgs);
243
+ if (result.ok === false) {
244
+ process.exitCode = 1;
245
+ }
246
+ traceAndPrint(result);
247
+ return;
248
+ }
249
+ if (command === "diagnostics") {
250
+ await (0, diagnostics_command_1.runDiagnosticsCommand)(restArgs);
251
+ return;
252
+ }
253
+ if (command === "observability") {
254
+ startLocalTrace(cwd, command, restArgs, trace);
255
+ const result = (0, observability_command_1.runObservabilityCommand)(cwd, restArgs);
256
+ traceAndPrint(result);
257
+ return;
258
+ }
259
+ if (command === "feedback" || command === "note") {
260
+ startLocalTrace(cwd, command, restArgs, trace);
261
+ const result = (0, feedback_command_1.runFeedbackCommand)(cwd, restArgs, command);
262
+ traceAndPrint(result);
263
+ return;
264
+ }
265
+ if (command === "init") {
266
+ const result = (0, init_workspace_1.runInitWorkspace)(cwd, restArgs);
267
+ traceAndPrint(result);
268
+ return;
269
+ }
270
+ if (command === "help") {
271
+ const result = (0, help_command_1.runHelpCommand)(restArgs);
272
+ traceAndPrint(result);
273
+ return;
274
+ }
275
+ if (command === "skills") {
276
+ const result = (0, skills_command_1.runSkillsCommand)(cwd, restArgs);
277
+ if (result.ok === false) {
278
+ process.exitCode = 1;
279
+ }
280
+ traceAndPrint(result);
281
+ return;
282
+ }
283
+ if (command === "generate-docs") {
284
+ const result = (0, generate_docs_command_1.runGenerateDocsCommand)(cwd, restArgs);
285
+ traceAndPrint(result);
286
+ return;
287
+ }
288
+ if (command === "config") {
289
+ startLocalTrace(cwd, command, restArgs, trace);
290
+ const result = (0, config_command_1.runConfigCommand)(cwd, restArgs);
291
+ if (result.ok === false) {
292
+ process.exitCode = 1;
293
+ }
294
+ traceAndPrint(result);
295
+ return;
296
+ }
297
+ if (command === "reveal") {
298
+ startLocalTrace(cwd, command, restArgs, trace);
299
+ const result = (0, reveal_command_1.runRevealCommand)(cwd, restArgs);
300
+ traceAndPrint(result);
301
+ return;
302
+ }
303
+ if (command === "qr") {
304
+ const rawQrStdin = restArgs.includes("--stdin") ? await (0, read_stdin_json_1.readRawStdinText)() : undefined;
305
+ activeTrace = (0, trace_1.startTrace)({
306
+ cwd,
307
+ argv: process.argv.slice(2),
308
+ command,
309
+ restArgs,
310
+ ...(trace.absoluteTraceDir !== undefined ? { traceDir: trace.absoluteTraceDir } : trace.traceDir !== undefined ? { traceDir: trace.traceDir } : {}),
311
+ ...(rawQrStdin !== undefined ? { stdinSource: { format: "qr", text: rawQrStdin } } : {}),
312
+ startedAtMs: cliStartedAtWallMs
313
+ });
314
+ const result = await (0, quick_read_1.runQuickReadCommand)(cwd, restArgs, rawQrStdin !== undefined ? { rawStdin: rawQrStdin } : {});
315
+ if (result.ok === false) {
316
+ process.exitCode = 1;
317
+ }
318
+ traceAndPrint(result);
319
+ return;
320
+ }
321
+ const localCommand = isDirectCliCommand(command, restArgs);
322
+ const pathAliases = localCommand ? (0, session_workspace_2.readEffectiveSessionPathAliases)(cwd) : {};
323
+ const expandedRestArgs = localCommand ? expandLocalCommandPathAliases(cwd, command, restArgs, pathAliases) : restArgs;
324
+ const inputSource = await (0, input_source_1.resolveCommandInputSource)({
325
+ command,
326
+ cwd,
327
+ restArgs: expandedRestArgs,
328
+ readStdinInput: () => (0, read_stdin_json_1.readStdinPayloadWithSource)({
329
+ command,
330
+ restArgs: expandedRestArgs,
331
+ ...(stdinFormat.format !== undefined || globalStdinFormat !== undefined ? { format: stdinFormat.format ?? globalStdinFormat } : {})
332
+ })
333
+ });
334
+ const stdinPayload = localCommand
335
+ ? (0, path_aliases_1.expandPathAliasesInJson)(cwd, inputSource.payload, pathAliases, inspectPayloadContainsAliasCandidates(inputSource.payload) ? { literalKeys: new Set(["candidate"]) } : {})
336
+ : inputSource.payload;
337
+ activeTrace = (0, trace_1.startTrace)({
338
+ cwd,
339
+ argv: process.argv.slice(2),
340
+ command,
341
+ restArgs: expandedRestArgs,
342
+ ...(trace.absoluteTraceDir !== undefined ? { traceDir: trace.absoluteTraceDir } : trace.traceDir !== undefined ? { traceDir: trace.traceDir } : {}),
343
+ ...(stdinPayload !== undefined ? { stdinPayload } : {}),
344
+ ...(inputSource.source !== undefined ? { stdinSource: inputSource.source } : {}),
345
+ startedAtMs: cliStartedAtWallMs
346
+ });
347
+ if (command === "session") {
348
+ const sessionCommand = expandedRestArgs[0] ?? "status";
349
+ if (sessionCommand === "init" ||
350
+ sessionCommand === "clear" ||
351
+ sessionCommand === "where" ||
352
+ sessionCommand === "read" ||
353
+ sessionCommand === "write" ||
354
+ sessionCommand === "prefs" ||
355
+ sessionCommand === "aliases" ||
356
+ sessionCommand === "list" ||
357
+ sessionCommand === "use") {
358
+ const result = (0, session_workspace_1.runSessionWorkspaceCommand)(cwd, expandedRestArgs, stdinPayload);
359
+ traceAndPrint(result);
360
+ return;
361
+ }
362
+ if (sessionCommand === "status") {
363
+ const workspaceStatus = (0, session_workspace_1.runSessionWorkspaceCommand)(cwd, expandedRestArgs, stdinPayload);
364
+ const runtimeStatus = await (0, client_1.getSessionStatus)();
365
+ traceAndPrint({
366
+ ...workspaceStatus,
367
+ runtime: compactRuntimeStatus(runtimeStatus),
368
+ ...(expandedRestArgs.includes("--verbose") ? { runtimeDiagnostics: runtimeStatus } : {})
369
+ });
370
+ return;
371
+ }
372
+ if (sessionCommand === "start") {
373
+ const result = await (0, client_1.startSession)();
374
+ traceAndPrint(result);
375
+ return;
376
+ }
377
+ if (sessionCommand === "stop") {
378
+ const result = await (0, client_1.stopSession)();
379
+ traceAndPrint(result);
380
+ return;
381
+ }
382
+ throw new errors_1.CliError("UNKNOWN_SESSION_COMMAND", `Unknown aib session command: ${sessionCommand}`);
383
+ return;
384
+ }
385
+ if (command === "imports" && expandedRestArgs[0] === "normalize") {
386
+ const result = (0, captured_input_1.attachCapturedInput)(cwd, "imports", stdinPayload, await (0, imports_command_1.runImportsCommand)(cwd, expandedRestArgs, stdinPayload, {
387
+ ...(metricsEnabled ? { metricsEnabled: true } : {})
388
+ }, metricsEnabled ? spans : undefined), inputSource.source);
389
+ traceAndPrint(result);
390
+ return;
391
+ }
392
+ if (command === "internal") {
393
+ const result = (0, internal_command_1.runInternalCommand)(cwd, expandedRestArgs, stdinPayload);
394
+ if (result.ok === false) {
395
+ process.exitCode = 1;
396
+ }
397
+ traceAndPrint(result);
398
+ return;
399
+ }
400
+ if (command === "execution") {
401
+ const result = (0, execution_command_1.runExecutionCommand)(cwd, expandedRestArgs);
402
+ traceAndPrint(result);
403
+ return;
404
+ }
405
+ if (command === "view") {
406
+ const result = (0, result_view_1.runResultViewCommand)(cwd, expandedRestArgs, stdinPayload);
407
+ if (result.ok === false) {
408
+ process.exitCode = 1;
409
+ }
410
+ traceAndPrint(result);
411
+ return;
412
+ }
413
+ if (command === "declaration") {
414
+ const result = (0, captured_input_1.attachCapturedInput)(cwd, `declaration.${expandedRestArgs[0] ?? "help"}`, stdinPayload, await (0, declaration_command_1.runDeclarationCommand)(cwd, expandedRestArgs, stdinPayload, {
415
+ ...(metricsEnabled ? { metricsEnabled: true } : {})
416
+ }), inputSource.source);
417
+ if (result.ok === false) {
418
+ process.exitCode = 1;
419
+ }
420
+ traceAndPrint(result);
421
+ return;
422
+ }
423
+ if (command === "mutate" && !shouldRouteMutateExecuteThroughSession(expandedRestArgs)) {
424
+ const result = (0, captured_input_1.attachCapturedInput)(cwd, "mutate", stdinPayload, await (0, mutate_command_1.runMutateCommand)(cwd, expandedRestArgs, stdinPayload, {
425
+ ...(metricsEnabled ? { metricsEnabled: true } : {})
426
+ }), inputSource.source);
427
+ if (result.ok === false) {
428
+ process.exitCode = 1;
429
+ }
430
+ traceAndPrint(result);
431
+ return;
432
+ }
433
+ if (command === "doctor") {
434
+ const progressRequested = expandedRestArgs.includes("--progress");
435
+ const jsonRequested = expandedRestArgs.includes("--json");
436
+ const result = await (0, doctor_1.runDoctor)({
437
+ cwd,
438
+ verbose: expandedRestArgs.includes("--verbose"),
439
+ json: jsonRequested,
440
+ progress: progressRequested
441
+ });
442
+ if (result.ok === false) {
443
+ process.exitCode = 1;
444
+ }
445
+ traceAndPrint(result, {
446
+ suppressStdout: progressRequested && !jsonRequested && process.env.AIB_FORCE_JSON !== "1"
447
+ });
448
+ return;
449
+ }
450
+ if (command === "inspect" && isLocalInspectCommand(expandedRestArgs)) {
451
+ const graphStartedAt = (0, metrics_1.metricsNow)();
452
+ const inspectKind = expandedRestArgs[0] === "tree" ? "tree" : expandedRestArgs[0] === "cycles" ? "cycles" : expandedRestArgs[0] === "aliasCandidates" || expandedRestArgs[0] === "alias-candidates" ? "aliasCandidates" : "graph";
453
+ const result = (0, captured_input_1.attachCapturedInput)(cwd, inspectKind, stdinPayload, await (0, inspect_1.runInspect)(cwd, expandedRestArgs, stdinPayload, {
454
+ ...(metricsEnabled ? { metricsEnabled: true } : {})
455
+ }), inputSource.source);
456
+ if (metricsEnabled) {
457
+ (0, metrics_1.recordSpan)(spans, "cli.inspectGraph", graphStartedAt);
458
+ (0, metrics_1.recordSpan)(spans, "cli.total", cliStartedAt);
459
+ }
460
+ const output = metricsEnabled ? (0, metrics_1.appendMetrics)(result, spans) : result;
461
+ if (output.ok === false) {
462
+ process.exitCode = 1;
463
+ }
464
+ traceAndPrint(output);
465
+ return;
466
+ }
467
+ if (command === "inspect" && expandedRestArgs.includes("--stdin") && inspectStdinPayloadContainsLocalInspect(stdinPayload)) {
468
+ const treeStartedAt = (0, metrics_1.metricsNow)();
469
+ const result = (0, captured_input_1.attachCapturedInput)(cwd, inspectStdinCaptureKind(stdinPayload), stdinPayload, await (0, inspect_1.runInspect)(cwd, expandedRestArgs, stdinPayload, {
470
+ ...(metricsEnabled ? { metricsEnabled: true } : {})
471
+ }), inputSource.source);
472
+ if (metricsEnabled) {
473
+ (0, metrics_1.recordSpan)(spans, "cli.inspectLocal", treeStartedAt);
474
+ (0, metrics_1.recordSpan)(spans, "cli.total", cliStartedAt);
475
+ }
476
+ const output = metricsEnabled ? (0, metrics_1.appendMetrics)(result, spans) : result;
477
+ if (output.ok === false) {
478
+ process.exitCode = 1;
479
+ }
480
+ traceAndPrint(output);
481
+ return;
482
+ }
483
+ if ((0, input_source_1.commandRequiresPayload)(command, expandedRestArgs, inputSource)) {
484
+ throw new errors_1.CliError("STDIN_REQUIRED", `${command} currently expects a payload on stdin or --from.`);
485
+ }
486
+ const sessionPayload = {
487
+ command,
488
+ restArgs: expandedRestArgs,
489
+ cwd
490
+ };
491
+ const modulePlanExecutionId = maybeCreateModulePlanExecutionId(command, expandedRestArgs, stdinPayload);
492
+ if (modulePlanExecutionId) {
493
+ sessionPayload.modulePlanExecutionId = modulePlanExecutionId;
494
+ }
495
+ if (sessionId !== undefined) {
496
+ sessionPayload.sessionId = sessionId;
497
+ }
498
+ if (stdinPayload !== undefined) {
499
+ sessionPayload.stdinPayload = stdinPayload;
500
+ }
501
+ if (inputSource.source !== undefined) {
502
+ sessionPayload.stdinInputSource = inputSource.source;
503
+ }
504
+ if (metricsEnabled) {
505
+ sessionPayload.metricsEnabled = true;
506
+ }
507
+ if (command === "inspect" && (expandedRestArgs.includes("--debug-workspace-context") || process.env[env_vars_1.CLI_ENV.debugWorkspaceContext] === "1")) {
508
+ sessionPayload.debugWorkspaceContext = true;
509
+ }
510
+ const sessionEnv = sessionRuntimeEnv();
511
+ if (Object.keys(sessionEnv).length > 0) {
512
+ sessionPayload.env = sessionEnv;
513
+ }
514
+ const sessionCallStartedAt = (0, metrics_1.metricsNow)();
515
+ const result = await (0, client_1.callSession)(sessionPayload, metricsEnabled ? spans : undefined);
516
+ if (metricsEnabled) {
517
+ (0, metrics_1.recordSpan)(spans, "cli.callSession", sessionCallStartedAt);
518
+ (0, metrics_1.recordSpan)(spans, "cli.total", cliStartedAt);
519
+ }
520
+ const output = metricsEnabled ? (0, metrics_1.appendMetrics)(result, spans) : result;
521
+ if (isErrorPayload(output)) {
522
+ process.exitCode = 1;
523
+ }
524
+ traceAndPrint(output);
525
+ });
526
+ }
527
+ function sessionRuntimeEnv() {
528
+ const keys = [
529
+ env_vars_1.CLI_ENV.workspaceRoot,
530
+ env_vars_1.CLI_ENV.disableWatchers,
531
+ env_vars_1.CLI_ENV.trace,
532
+ env_vars_1.CLI_ENV.traceDir,
533
+ env_vars_1.CLI_ENV.failureSnapshots,
534
+ env_vars_1.CLI_ENV.debugWorkspaceContext,
535
+ env_vars_1.CLI_ENV.productStorageDir,
536
+ env_vars_1.CLI_ENV.metrics,
537
+ env_vars_1.CLI_ENV.metricsDir,
538
+ env_vars_1.CLI_ENV.metricsTag,
539
+ env_vars_1.CLI_ENV.mutationImpactMetrics,
540
+ env_vars_1.CLI_ENV.mutationImpactStream,
541
+ env_vars_1.CLI_ENV.semanticRenameDirectApply,
542
+ env_vars_1.CLI_ENV.testPostMutationCyclesDelayMs,
543
+ env_vars_1.CLI_ENV.testRefactorBatchDelayMs,
544
+ env_vars_1.CLI_ENV.testRenameDelayMs,
545
+ env_vars_1.CLI_ENV.testFileMoveToDirDelayMs,
546
+ env_vars_1.CLI_ENV.testFileMoveToDirRowDelayMs,
547
+ env_vars_1.CLI_ENV.testFileMoveToDirImportsDelayMs,
548
+ env_vars_1.CLI_ENV.testFileMoveToDirFailImports,
549
+ env_vars_1.CLI_ENV.testFileRenameDelayMs,
550
+ env_vars_1.CLI_ENV.testFileRenameRowDelayMs,
551
+ env_vars_1.CLI_ENV.testFileRenameImportsDelayMs,
552
+ env_vars_1.CLI_ENV.testFileRenameFailImports,
553
+ env_vars_1.CLI_ENV.testFileRefactorBatchDelayMs,
554
+ env_vars_1.CLI_ENV.testFileRefactorBatchRowDelayMs,
555
+ env_vars_1.CLI_ENV.testFileRefactorBatchImportsDelayMs,
556
+ env_vars_1.CLI_ENV.testFileRefactorBatchFailImports,
557
+ env_vars_1.CLI_ENV.testFileRefactorBatchCrashAfterFsMove,
558
+ env_vars_1.CLI_ENV.testMutateDelayMs,
559
+ env_vars_1.CLI_ENV.testInspectWorkerFailure,
560
+ env_vars_1.CLI_ENV.disableFileMutationImportPostProcess,
561
+ env_vars_1.CLI_ENV.disableFileMoveImportPostProcess,
562
+ env_vars_1.CLI_ENV.modulePlanSyncWaitMs,
563
+ env_vars_1.CLI_ENV.refactorBatchSyncWaitMs,
564
+ env_vars_1.CLI_ENV.renameSyncWaitMs,
565
+ env_vars_1.CLI_ENV.fileMoveToDirSyncWaitMs,
566
+ env_vars_1.CLI_ENV.fileRenameSyncWaitMs,
567
+ env_vars_1.CLI_ENV.fileRefactorBatchSyncWaitMs,
568
+ env_vars_1.CLI_ENV.mutateSyncWaitMs
569
+ ];
570
+ const env = {};
571
+ for (const key of keys) {
572
+ const value = process.env[key];
573
+ if (value !== undefined) {
574
+ env[key] = value;
575
+ }
576
+ }
577
+ return env;
578
+ }
579
+ function maybeCreateModulePlanExecutionId(command, restArgs, stdinPayload) {
580
+ if (command === "mutate" && shouldRouteMutateModulePlanThroughSession(restArgs, stdinPayload)) {
581
+ return readPresetModulePlanExecutionId() ?? (0, module_plan_cache_1.buildModulePlanExecutionId)();
582
+ }
583
+ return null;
584
+ }
585
+ function readPresetModulePlanExecutionId() {
586
+ const value = process.env.AIB_MODULE_PLAN_EXECUTION_ID;
587
+ return value && /^exec_[a-z0-9_-]+$/i.test(value) ? value : null;
588
+ }
589
+ function shouldRouteMutateExecuteThroughSession(restArgs) {
590
+ return restArgs[0] === "execute";
591
+ }
592
+ function shouldRouteMutateModulePlanThroughSession(restArgs, stdinPayload) {
593
+ if (restArgs[0] !== "execute" || !isJsonObject(stdinPayload)) {
594
+ return false;
595
+ }
596
+ const segments = Array.isArray(stdinPayload.segments) ? stdinPayload.segments.filter(isJsonObject) : [];
597
+ return segments.length === 1 && segments[0]?.kind === "modulePlan";
598
+ }
599
+ function isJsonObject(value) {
600
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
601
+ }
602
+ function startLocalTrace(cwd, command, restArgs, trace) {
603
+ activeTrace = (0, trace_1.startTrace)({
604
+ cwd,
605
+ argv: process.argv.slice(2),
606
+ command,
607
+ restArgs,
608
+ ...(trace.absoluteTraceDir !== undefined ? { traceDir: trace.absoluteTraceDir } : trace.traceDir !== undefined ? { traceDir: trace.traceDir } : {}),
609
+ startedAtMs: cliStartedAtWallMs
610
+ });
611
+ }
612
+ function isDirectCliCommand(command, restArgs) {
613
+ return command === "session" ||
614
+ command === "execution" ||
615
+ command === "observability" ||
616
+ command === "doctor" ||
617
+ command === "reveal" ||
618
+ command === "view" ||
619
+ command === "declaration" ||
620
+ command === "mutate" ||
621
+ (command === "imports" && restArgs[0] === "normalize") ||
622
+ (command === "inspect" && (isLocalInspectCommand(restArgs) || restArgs[0] === "imports" || restArgs.includes("--stdin")));
623
+ }
624
+ function isLocalInspectCommand(restArgs) {
625
+ return restArgs[0] === "graph" ||
626
+ restArgs[0] === "tree" ||
627
+ restArgs[0] === "cycles" ||
628
+ restArgs[0] === "topology" ||
629
+ restArgs[0] === "aliases" ||
630
+ restArgs[0] === "boundary" ||
631
+ restArgs[0] === "boundaries" ||
632
+ restArgs[0] === "aliasCandidates" ||
633
+ restArgs[0] === "alias-candidates";
634
+ }
635
+ function compactRuntimeStatus(status) {
636
+ if (status.running === true) {
637
+ const session = status.session && typeof status.session === "object" && !Array.isArray(status.session) ? status.session : {};
638
+ const pid = typeof session.pid === "number" ? ` pid ${session.pid}` : "";
639
+ const port = typeof session.port === "number" ? ` port ${session.port}` : "";
640
+ return `running${pid}${port}`.trim();
641
+ }
642
+ if (status.processAlive === true && status.healthy === false) {
643
+ return "unhealthy";
644
+ }
645
+ return "stopped";
646
+ }
647
+ function inspectStdinPayloadContainsLocalInspect(payload) {
648
+ if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
649
+ return false;
650
+ }
651
+ if (payload.op === "tree" || payload.op === "cycles" || payload.op === "imports" || payload.op === "aliasCandidates" || payload.op === "alias-candidates") {
652
+ return true;
653
+ }
654
+ return Array.isArray(payload.requests) && payload.requests.some((request) => request && typeof request === "object" && !Array.isArray(request) &&
655
+ (request.op === "tree" || request.op === "cycles" || request.op === "imports" || request.op === "aliasCandidates" || request.op === "alias-candidates"));
656
+ }
657
+ function inspectPayloadContainsAliasCandidates(payload) {
658
+ if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
659
+ return false;
660
+ }
661
+ if (payload.op === "aliasCandidates" || payload.op === "alias-candidates") {
662
+ return true;
663
+ }
664
+ return Array.isArray(payload.requests) && payload.requests.some((request) => request && typeof request === "object" && !Array.isArray(request) &&
665
+ (request.op === "aliasCandidates" || request.op === "alias-candidates"));
666
+ }
667
+ function expandLocalCommandPathAliases(cwd, command, restArgs, aliases) {
668
+ if (Object.keys(aliases).length === 0) {
669
+ return restArgs;
670
+ }
671
+ const skipNextValueFlags = command === "inspect" && (restArgs[0] === "aliasCandidates" || restArgs[0] === "alias-candidates")
672
+ ? new Set(["--candidate"])
673
+ : new Set();
674
+ const expanded = [];
675
+ let skipNext = false;
676
+ for (const arg of restArgs) {
677
+ if (skipNext) {
678
+ expanded.push(arg);
679
+ skipNext = false;
680
+ continue;
681
+ }
682
+ const shouldSkip = skipNextValueFlags.has(arg) || Array.from(skipNextValueFlags).some((flag) => arg.startsWith(`${flag}=`));
683
+ expanded.push(shouldSkip ? arg : (0, path_aliases_1.expandPathAliasValue)(cwd, arg, aliases));
684
+ if (skipNextValueFlags.has(arg)) {
685
+ skipNext = true;
686
+ }
687
+ }
688
+ return expanded;
689
+ }
690
+ function inspectStdinCaptureKind(payload) {
691
+ if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
692
+ return "inspect";
693
+ }
694
+ const requests = Array.isArray(payload.requests) ? payload.requests.filter((request) => request && typeof request === "object" && !Array.isArray(request)) : [payload];
695
+ if (requests.every((request) => request.op === "cycles")) {
696
+ return "cycles";
697
+ }
698
+ if (requests.every((request) => request.op === "tree")) {
699
+ return "tree";
700
+ }
701
+ if (requests.every((request) => request.op === "imports")) {
702
+ return "imports";
703
+ }
704
+ if (requests.every((request) => request.op === "aliasCandidates" || request.op === "alias-candidates")) {
705
+ return "aliasCandidates";
706
+ }
707
+ return "inspect";
708
+ }
709
+ void main().catch((error) => {
710
+ const output = (0, errors_1.errorPayload)(error);
711
+ traceAndPrint(output);
712
+ process.exitCode = 1;
713
+ });
714
+ function runRgPassthrough(cwd, restArgs) {
715
+ const rgArgs = restArgs[0] === "--" ? restArgs.slice(1) : restArgs;
716
+ const hasStdin = hasReadableStdin();
717
+ const classification = (0, core_1.classifyRgArgs)(rgArgs, { hasStdin });
718
+ const formatOptions = (0, options_1.resolveBrgFormatOptions)(cwd, rgArgs, process.env);
719
+ const capEnabled = typeof formatOptions.outputCapBytes === "number" && formatOptions.outputCapBytes > 0;
720
+ const stdinText = hasStdin ? node_fs_1.default.readFileSync(0, "utf8") : undefined;
721
+ const result = (() => {
722
+ if (classification.mode === "optimizable" || capEnabled) {
723
+ return (0, core_1.runBrgFormatted)({
724
+ cwd,
725
+ args: rgArgs,
726
+ env: process.env,
727
+ ...(stdinText !== undefined ? { stdinText } : {})
728
+ }, formatOptions);
729
+ }
730
+ if (hasStdin) {
731
+ return (0, core_1.runBrgRaw)({
732
+ cwd,
733
+ args: rgArgs,
734
+ env: process.env,
735
+ stdinText: stdinText ?? ""
736
+ });
737
+ }
738
+ return (0, core_1.runBrgRawInherited)({
739
+ cwd,
740
+ args: rgArgs,
741
+ env: process.env,
742
+ hasStdin
743
+ });
744
+ })();
745
+ if (result.spawnError) {
746
+ process.stderr.write(`aib rg: failed to run rg. Install rg or set ${env_vars_1.CLI_ENV.rgPath}: ${result.spawnError}\n`);
747
+ process.exitCode = 2;
748
+ return;
749
+ }
750
+ if (result.stdout) {
751
+ process.stdout.write(result.stdout);
752
+ }
753
+ if (result.stderr) {
754
+ process.stderr.write(result.stderr);
755
+ }
756
+ process.exitCode = result.exitCode;
757
+ }
758
+ function runRtkCommandPassthrough(command, cwd, restArgs) {
759
+ const toolArgs = restArgs[0] === "--" ? restArgs.slice(1) : restArgs;
760
+ const hasStdin = hasReadableStdin();
761
+ const result = (0, core_2.runRtkPassthrough)({
762
+ tool: command,
763
+ cwd,
764
+ args: toolArgs,
765
+ env: process.env,
766
+ ...(hasStdin ? { stdinText: node_fs_1.default.readFileSync(0, "utf8") } : {})
767
+ });
768
+ if (result.spawnError) {
769
+ process.stderr.write(`aib ${command}: failed to run rtk. Install rtk or set ${env_vars_1.CLI_ENV.rtkPath}: ${result.spawnError}\n`);
770
+ process.exitCode = result.exitCode;
771
+ return;
772
+ }
773
+ if (result.stdout) {
774
+ process.stdout.write(result.stdout);
775
+ }
776
+ if (result.stderr) {
777
+ process.stderr.write(result.stderr);
778
+ }
779
+ process.exitCode = result.exitCode;
780
+ }
781
+ function hasReadableStdin() {
782
+ try {
783
+ return !node_fs_1.default.fstatSync(0).isCharacterDevice();
784
+ }
785
+ catch {
786
+ return process.stdin.isTTY === false;
787
+ }
788
+ }
789
+ function traceAndPrint(output, options = {}) {
790
+ const envelope = (0, presentation_1.createCliPresentationEnvelope)(output);
791
+ const rendered = (0, presentation_1.presentCliEnvelope)(envelope, process.env.AIB_FORCE_JSON === "1" ? "json" : "agent");
792
+ const stdoutText = options.suppressStdout === true ? "" : rendered;
793
+ if (activeTrace?.enabled) {
794
+ activeTrace.complete({
795
+ output: envelope.tracePayload,
796
+ stdoutText,
797
+ exitCode: output.ok === false ? 1 : numericExitCode(process.exitCode),
798
+ durationMs: Date.now() - cliStartedAtWallMs,
799
+ });
800
+ }
801
+ const canonicalJsonPath = process.env.AIB_CANONICAL_JSON_PATH;
802
+ if (canonicalJsonPath) {
803
+ node_fs_1.default.mkdirSync(node_path_1.default.dirname(canonicalJsonPath), { recursive: true });
804
+ node_fs_1.default.writeFileSync(canonicalJsonPath, `${JSON.stringify(envelope.tracePayload, null, 2)}\n`);
805
+ }
806
+ if (options.suppressStdout !== true) {
807
+ process.stdout.write(rendered);
808
+ }
809
+ }
810
+ function numericExitCode(exitCode) {
811
+ return typeof exitCode === "number" ? exitCode : 0;
812
+ }