@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
@@ -1 +1,125 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveBrgFormatOptions=A;const u=require("../commands/session-workspace"),i=require("../config/path-display"),a=require("../config/workspace-root"),f=require("./core"),_="rg.aliases",p="rg.trimSpaces",S="AIB_RG_ALIASES",h="AIB_RG_TRIM_SPACES";function A(t,e,s=process.env){const n={omitSingleFileHeader:E(e),showColumn:o(e,"--column"),trimLineStart:l(s[h])??(0,a.readWorkspaceBooleanConfig)(t,p,!1)};if(l(s[S])??(0,a.readWorkspaceBooleanConfig)(t,_,!0)){const r=(0,i.buildDisplayPathAliases)(t,(0,u.readEffectiveSessionPathAliases)(t));r.length>0&&(n.formatPath=c=>(0,i.compactDisplayPath)(t,c,r))}return n}function E(t){const e=d(t);return e.length===1&&m(e[0])}function d(t){const e=(0,f.classifyRgArgs)(t).features.positionals;return e.length===0?[]:o(t,"-e")||o(t,"--regexp")?e:e.slice(1)}function o(t,e){return t.some(s=>s===e||s.startsWith(`${e}=`))}function m(t){return typeof t=="string"&&/\.[A-Za-z0-9]+$/.test(t)}function l(t){if(t===void 0)return null;const e=t.toLowerCase();return e==="1"||e==="true"||e==="yes"||e==="on"?!0:e==="0"||e==="false"||e==="no"||e==="off"?!1:null}
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveBrgFormatOptions = resolveBrgFormatOptions;
4
+ const session_workspace_1 = require("../commands/session-workspace");
5
+ const path_display_1 = require("../config/path-display");
6
+ const workspace_root_1 = require("../config/workspace-root");
7
+ const core_1 = require("./core");
8
+ const RG_ALIASES_CONFIG_KEY = "rg.aliases";
9
+ const RG_TRIM_SPACES_CONFIG_KEY = "rg.trimSpaces";
10
+ const RG_OUTPUT_CAP_KB_CONFIG_KEY = "rg.outputCapKb";
11
+ const GLOBAL_OUTPUT_CAP_ENV = "AIB_OUTPUT_CAP";
12
+ const RG_ALIASES_ENV = "AIB_RG_ALIASES";
13
+ const RG_TRIM_SPACES_ENV = "AIB_RG_TRIM_SPACES";
14
+ const RG_OUTPUT_CAP_KB_ENV = "AIB_RG_OUTPUT_CAP_KB";
15
+ const DEFAULT_RG_OUTPUT_CAP_KB = 32;
16
+ function resolveBrgFormatOptions(cwd, args, env = process.env) {
17
+ const options = {
18
+ omitSingleFileHeader: searchScopeLooksLikeSingleFile(args),
19
+ showColumn: argsInclude(args, "--column"),
20
+ trimLineStart: readBooleanEnvOverride(env[RG_TRIM_SPACES_ENV]) ?? (0, workspace_root_1.readWorkspaceBooleanConfig)(cwd, RG_TRIM_SPACES_CONFIG_KEY, false),
21
+ outputCapBytes: readOutputCapBytes(cwd, env)
22
+ };
23
+ const aliasesEnabled = readBooleanEnvOverride(env[RG_ALIASES_ENV]) ?? (0, workspace_root_1.readWorkspaceBooleanConfig)(cwd, RG_ALIASES_CONFIG_KEY, true);
24
+ if (aliasesEnabled) {
25
+ const aliases = (0, path_display_1.buildDisplayPathAliases)(cwd, (0, session_workspace_1.readEffectiveSessionPathAliases)(cwd));
26
+ if (aliases.length > 0) {
27
+ options.formatPath = (filePath) => (0, path_display_1.compactDisplayPath)(cwd, filePath, aliases);
28
+ }
29
+ }
30
+ return options;
31
+ }
32
+ function searchScopeLooksLikeSingleFile(args) {
33
+ const paths = estimateSearchPaths(args);
34
+ return paths.length === 1 && looksLikeFilePath(paths[0]);
35
+ }
36
+ function estimateSearchPaths(args) {
37
+ const positionals = (0, core_1.classifyRgArgs)(args).features.positionals;
38
+ if (positionals.length === 0) {
39
+ return [];
40
+ }
41
+ if (argsInclude(args, "-e") || argsInclude(args, "--regexp")) {
42
+ return positionals;
43
+ }
44
+ return positionals.slice(1);
45
+ }
46
+ function argsInclude(args, flag) {
47
+ return args.some((arg) => arg === flag || arg.startsWith(`${flag}=`));
48
+ }
49
+ function looksLikeFilePath(value) {
50
+ return typeof value === "string" && /\.[A-Za-z0-9]+$/.test(value);
51
+ }
52
+ function readOutputCapBytes(cwd, env) {
53
+ if (isOutputCapDisabled(env[GLOBAL_OUTPUT_CAP_ENV])) {
54
+ return null;
55
+ }
56
+ const envValue = readOutputCapKbEnvOverride(env[RG_OUTPUT_CAP_KB_ENV]);
57
+ if (envValue !== undefined) {
58
+ return capKbToBytes(envValue);
59
+ }
60
+ const configValue = readWorkspaceOutputCapKb(cwd);
61
+ if (configValue !== undefined) {
62
+ return capKbToBytes(configValue);
63
+ }
64
+ return capKbToBytes(DEFAULT_RG_OUTPUT_CAP_KB);
65
+ }
66
+ function readOutputCapKbEnvOverride(value) {
67
+ if (value === undefined) {
68
+ return undefined;
69
+ }
70
+ const normalized = value.trim().toLowerCase();
71
+ if (isDisabledOutputCapToken(normalized)) {
72
+ return null;
73
+ }
74
+ const parsed = Number(normalized);
75
+ if (!Number.isFinite(parsed)) {
76
+ return undefined;
77
+ }
78
+ return normalizeOutputCapKb(parsed);
79
+ }
80
+ function readWorkspaceOutputCapKb(cwd) {
81
+ const resolved = (0, workspace_root_1.resolveWorkspaceRoot)(cwd);
82
+ if (!resolved || !Object.prototype.hasOwnProperty.call(resolved.config, RG_OUTPUT_CAP_KB_CONFIG_KEY)) {
83
+ return undefined;
84
+ }
85
+ return readOutputCapKbConfigValue(resolved.config[RG_OUTPUT_CAP_KB_CONFIG_KEY]);
86
+ }
87
+ function readOutputCapKbConfigValue(value) {
88
+ if (typeof value === "boolean") {
89
+ return value ? DEFAULT_RG_OUTPUT_CAP_KB : null;
90
+ }
91
+ if (typeof value === "string") {
92
+ const normalized = value.trim().toLowerCase();
93
+ if (isDisabledOutputCapToken(normalized)) {
94
+ return null;
95
+ }
96
+ const parsed = Number(normalized);
97
+ return normalizeOutputCapKb(parsed);
98
+ }
99
+ return typeof value === "number" ? normalizeOutputCapKb(value) : null;
100
+ }
101
+ function isOutputCapDisabled(value) {
102
+ return value !== undefined && isDisabledOutputCapToken(value.trim().toLowerCase());
103
+ }
104
+ function isDisabledOutputCapToken(value) {
105
+ return value === "" || value === "off" || value === "disabled" || value === "false" || value === "0";
106
+ }
107
+ function normalizeOutputCapKb(value) {
108
+ return Number.isFinite(value) && value > 0 ? value : null;
109
+ }
110
+ function capKbToBytes(value) {
111
+ return typeof value === "number" ? Math.round(value * 1024) : null;
112
+ }
113
+ function readBooleanEnvOverride(value) {
114
+ if (value === undefined) {
115
+ return null;
116
+ }
117
+ const normalized = value.toLowerCase();
118
+ if (normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on") {
119
+ return true;
120
+ }
121
+ if (normalized === "0" || normalized === "false" || normalized === "no" || normalized === "off") {
122
+ return false;
123
+ }
124
+ return null;
125
+ }
@@ -1,2 +1,144 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.RTK_PASSTHROUGH_COMMANDS=void 0,exports.isRtkPassthroughCommand=a,exports.runRtkPassthrough=c;const u=require("node:child_process"),r=require("../tool-runtime/runtime-tools");exports.RTK_PASSTHROUGH_COMMANDS=["git","gh","docker","kubectl","jest","vitest","playwright","pytest","go","cargo","rake","lint","biome","tsc","next","prettier","ruff","golangci-lint","rubocop"];const l=new Set(exports.RTK_PASSTHROUGH_COMMANDS);function a(t){return l.has(t)}function c(t){const o={...process.env,...t.env},s=(0,r.resolveToolRuntime)({tool:"rtk",envVar:(0,r.toolRuntimeEnvVar)("rtk"),env:o}),e=(0,u.spawnSync)(s.executable,[t.tool,...t.args],{cwd:t.cwd,input:t.stdinText,encoding:"utf8",windowsHide:!0,env:o,shell:(0,r.shouldUseShellForTool)(s.executable),maxBuffer:64*1024*1024}),n=typeof e.status=="number"?e.status:e.error?127:1;return{ok:n===0,command:"rtk",tool:t.tool,exitCode:n,stdout:e.stdout??"",stderr:e.stderr??(e.error?`${e.error.message}
2
- `:""),signal:e.signal??null,spawnError:e.error?e.error.message:null}}
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RTK_PASSTHROUGH_COMMANDS = void 0;
7
+ exports.isRtkPassthroughCommand = isRtkPassthroughCommand;
8
+ exports.runRtkPassthrough = runRtkPassthrough;
9
+ exports.runRtkPassthroughAsync = runRtkPassthroughAsync;
10
+ const node_child_process_1 = require("node:child_process");
11
+ const node_fs_1 = __importDefault(require("node:fs"));
12
+ const runtime_tools_1 = require("../tool-runtime/runtime-tools");
13
+ const workspace_root_1 = require("../config/workspace-root");
14
+ const output_adapter_1 = require("./output-adapter");
15
+ const buffered_process_1 = require("../runtime/buffered-process");
16
+ const git_safety_1 = require("./git-safety");
17
+ exports.RTK_PASSTHROUGH_COMMANDS = [
18
+ "git",
19
+ "gh",
20
+ "docker",
21
+ "kubectl",
22
+ "jest",
23
+ "vitest",
24
+ "playwright",
25
+ "pytest",
26
+ "go",
27
+ "cargo",
28
+ "rake",
29
+ "lint",
30
+ "biome",
31
+ "next",
32
+ "prettier",
33
+ "ruff",
34
+ "golangci-lint",
35
+ "rubocop"
36
+ ];
37
+ const RTK_PASSTHROUGH_COMMAND_SET = new Set(exports.RTK_PASSTHROUGH_COMMANDS);
38
+ function isRtkPassthroughCommand(command) {
39
+ return RTK_PASSTHROUGH_COMMAND_SET.has(command);
40
+ }
41
+ function runRtkPassthrough(input) {
42
+ const workspace = (0, workspace_root_1.resolveWorkspaceRoot)(input.cwd);
43
+ const workspaceRoot = workspace && node_fs_1.default.existsSync(workspace.configPath) ? workspace.root : null;
44
+ const env = {
45
+ ...process.env,
46
+ ...input.env,
47
+ RTK_TEE_DIR: input.env?.RTK_TEE_DIR ?? process.env.RTK_TEE_DIR ?? (0, output_adapter_1.defaultRtkTeeDir)(input.cwd, workspaceRoot)
48
+ };
49
+ const runtime = (0, runtime_tools_1.resolveToolRuntime)({
50
+ tool: "rtk",
51
+ envVar: (0, runtime_tools_1.toolRuntimeEnvVar)("rtk"),
52
+ env
53
+ });
54
+ const toolArgs = input.tool === "git" ? (0, git_safety_1.prepareGitArgs)(input.args, input.cwd, env).args : input.args;
55
+ const gitStatusFailure = input.tool === "git" && (0, git_safety_1.isGitStatusInvocation)(toolArgs)
56
+ ? (0, git_safety_1.verifyGitStatusSync)(toolArgs, input.cwd, env)
57
+ : null;
58
+ if (gitStatusFailure)
59
+ return failedGitStatusResult(gitStatusFailure);
60
+ const result = (0, node_child_process_1.spawnSync)(runtime.executable, [input.tool, ...toolArgs], {
61
+ cwd: input.cwd,
62
+ input: input.stdinText,
63
+ encoding: "utf8",
64
+ windowsHide: true,
65
+ env,
66
+ shell: (0, runtime_tools_1.shouldUseShellForTool)(runtime.executable),
67
+ maxBuffer: 64 * 1024 * 1024
68
+ });
69
+ const exitCode = typeof result.status === "number" ? result.status : result.error ? 127 : 1;
70
+ const output = (0, output_adapter_1.adaptRtkOutputForAib)({
71
+ tool: input.tool,
72
+ args: input.args,
73
+ cwd: input.cwd,
74
+ displayRoot: workspaceRoot ?? input.cwd,
75
+ stdout: result.stdout ?? "",
76
+ stderr: result.stderr ?? (result.error ? `${result.error.message}\n` : "")
77
+ });
78
+ return {
79
+ ok: exitCode === 0,
80
+ command: "rtk",
81
+ tool: input.tool,
82
+ exitCode,
83
+ stdout: output.stdout,
84
+ stderr: output.stderr,
85
+ signal: result.signal ?? null,
86
+ spawnError: result.error ? result.error.message : null
87
+ };
88
+ }
89
+ async function runRtkPassthroughAsync(input, signal) {
90
+ const workspace = (0, workspace_root_1.resolveWorkspaceRoot)(input.cwd);
91
+ const workspaceRoot = workspace && node_fs_1.default.existsSync(workspace.configPath) ? workspace.root : null;
92
+ const env = {
93
+ ...process.env,
94
+ ...input.env,
95
+ RTK_TEE_DIR: input.env?.RTK_TEE_DIR ?? process.env.RTK_TEE_DIR ?? (0, output_adapter_1.defaultRtkTeeDir)(input.cwd, workspaceRoot)
96
+ };
97
+ const runtime = (0, runtime_tools_1.resolveToolRuntime)({ tool: "rtk", envVar: (0, runtime_tools_1.toolRuntimeEnvVar)("rtk"), env });
98
+ const toolArgs = input.tool === "git" ? (0, git_safety_1.prepareGitArgs)(input.args, input.cwd, env).args : input.args;
99
+ const gitStatusFailure = input.tool === "git" && (0, git_safety_1.isGitStatusInvocation)(toolArgs)
100
+ ? await (0, git_safety_1.verifyGitStatusAsync)(toolArgs, input.cwd, env, signal)
101
+ : null;
102
+ if (gitStatusFailure)
103
+ return failedGitStatusResult(gitStatusFailure);
104
+ const result = await (0, buffered_process_1.runBufferedProcess)({
105
+ command: runtime.executable,
106
+ args: [input.tool, ...toolArgs],
107
+ cwd: input.cwd,
108
+ env,
109
+ shell: (0, runtime_tools_1.shouldUseShellForTool)(runtime.executable),
110
+ ...(input.stdinText !== undefined ? { input: input.stdinText } : {}),
111
+ ...(signal ? { signal } : {})
112
+ });
113
+ const exitCode = typeof result.status === "number" ? result.status : result.error ? 127 : 1;
114
+ const output = (0, output_adapter_1.adaptRtkOutputForAib)({
115
+ tool: input.tool,
116
+ args: input.args,
117
+ cwd: input.cwd,
118
+ displayRoot: workspaceRoot ?? input.cwd,
119
+ stdout: result.stdout,
120
+ stderr: result.stderr || (result.error ? `${result.error.message}\n` : "")
121
+ });
122
+ return {
123
+ ok: exitCode === 0,
124
+ command: "rtk",
125
+ tool: input.tool,
126
+ exitCode,
127
+ stdout: output.stdout,
128
+ stderr: output.stderr,
129
+ signal: result.signal,
130
+ spawnError: result.error?.message ?? null
131
+ };
132
+ }
133
+ function failedGitStatusResult(result) {
134
+ return {
135
+ ok: false,
136
+ command: "rtk",
137
+ tool: "git",
138
+ exitCode: result.exitCode,
139
+ stdout: result.stdout,
140
+ stderr: result.stderr,
141
+ signal: result.signal,
142
+ spawnError: null
143
+ };
144
+ }
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.prepareGitArgs = prepareGitArgs;
7
+ exports.isGitStatusInvocation = isGitStatusInvocation;
8
+ exports.verifyGitStatusSync = verifyGitStatusSync;
9
+ exports.verifyGitStatusAsync = verifyGitStatusAsync;
10
+ exports.resolveRecognizedCodexWorktreeGitRoot = resolveRecognizedCodexWorktreeGitRoot;
11
+ const node_child_process_1 = require("node:child_process");
12
+ const node_fs_1 = __importDefault(require("node:fs"));
13
+ const node_os_1 = __importDefault(require("node:os"));
14
+ const node_path_1 = __importDefault(require("node:path"));
15
+ const buffered_process_1 = require("../runtime/buffered-process");
16
+ function prepareGitArgs(args, cwd, env) {
17
+ if (hasExplicitSafeDirectory(args)) {
18
+ return { args: [...args], safeDirectory: null };
19
+ }
20
+ const gitRoot = resolveRecognizedCodexWorktreeGitRoot(cwd, env);
21
+ if (!gitRoot) {
22
+ return { args: [...args], safeDirectory: null };
23
+ }
24
+ const safeDirectory = normalizeSlashes(gitRoot);
25
+ return {
26
+ args: ["-c", `safe.directory=${safeDirectory}`, ...args],
27
+ safeDirectory
28
+ };
29
+ }
30
+ function isGitStatusInvocation(args) {
31
+ for (let index = 0; index < args.length; index++) {
32
+ const arg = args[index] ?? "";
33
+ if (arg === "--")
34
+ return false;
35
+ if (GIT_GLOBAL_OPTIONS_WITH_VALUE.has(arg)) {
36
+ index++;
37
+ continue;
38
+ }
39
+ if (isAttachedGitGlobalOption(arg) || GIT_GLOBAL_FLAGS.has(arg)) {
40
+ continue;
41
+ }
42
+ return arg === "status";
43
+ }
44
+ return false;
45
+ }
46
+ function verifyGitStatusSync(args, cwd, env) {
47
+ const result = (0, node_child_process_1.spawnSync)("git", args, {
48
+ cwd,
49
+ encoding: "utf8",
50
+ windowsHide: true,
51
+ env,
52
+ maxBuffer: 64 * 1024 * 1024
53
+ });
54
+ if (result.status === 0)
55
+ return null;
56
+ return {
57
+ exitCode: typeof result.status === "number" ? result.status : result.error ? 127 : 1,
58
+ stdout: result.stdout ?? "",
59
+ stderr: result.stderr || (result.error ? `${result.error.message}\n` : ""),
60
+ signal: result.signal ?? null
61
+ };
62
+ }
63
+ async function verifyGitStatusAsync(args, cwd, env, signal) {
64
+ const result = await (0, buffered_process_1.runBufferedProcess)({
65
+ command: "git",
66
+ args,
67
+ cwd,
68
+ env,
69
+ ...(signal ? { signal } : {})
70
+ });
71
+ if (result.status === 0)
72
+ return null;
73
+ return {
74
+ exitCode: typeof result.status === "number" ? result.status : result.error ? 127 : 1,
75
+ stdout: result.stdout,
76
+ stderr: result.stderr || (result.error ? `${result.error.message}\n` : ""),
77
+ signal: result.signal
78
+ };
79
+ }
80
+ function resolveRecognizedCodexWorktreeGitRoot(cwd, env) {
81
+ const gitRoot = findGitRoot(cwd);
82
+ if (!gitRoot)
83
+ return null;
84
+ const explicitWorktree = env.CODEX_WORKTREE_PATH?.trim();
85
+ if (explicitWorktree && isPathInsideOrEqual(node_path_1.default.resolve(explicitWorktree), gitRoot)) {
86
+ return gitRoot;
87
+ }
88
+ const explicitHome = env.CODEX_HOME?.trim();
89
+ if (explicitHome && isCodexWorktreePath(gitRoot, node_path_1.default.join(node_path_1.default.resolve(explicitHome), "worktrees"))) {
90
+ return gitRoot;
91
+ }
92
+ const defaultHome = node_path_1.default.join(node_os_1.default.homedir(), ".codex", "worktrees");
93
+ if (isCodexWorktreePath(gitRoot, defaultHome)) {
94
+ return gitRoot;
95
+ }
96
+ const isCodexInvocation = env.CODEX_SHELL === "1" || Boolean(env.CODEX_THREAD_ID?.trim());
97
+ return isCodexInvocation && hasCodexWorktreePathShape(gitRoot) ? gitRoot : null;
98
+ }
99
+ function findGitRoot(cwd) {
100
+ let current = node_path_1.default.resolve(cwd);
101
+ const filesystemRoot = node_path_1.default.parse(current).root;
102
+ while (true) {
103
+ if (node_fs_1.default.existsSync(node_path_1.default.join(current, ".git"))) {
104
+ return canonicalPath(current);
105
+ }
106
+ if (samePath(current, filesystemRoot))
107
+ return null;
108
+ const parent = node_path_1.default.dirname(current);
109
+ if (samePath(parent, current))
110
+ return null;
111
+ current = parent;
112
+ }
113
+ }
114
+ function hasExplicitSafeDirectory(args) {
115
+ for (let index = 0; index < args.length; index++) {
116
+ const arg = args[index] ?? "";
117
+ if (arg === "-c") {
118
+ if (isSafeDirectoryAssignment(args[index + 1] ?? ""))
119
+ return true;
120
+ index++;
121
+ continue;
122
+ }
123
+ if (arg.startsWith("-c") && isSafeDirectoryAssignment(arg.slice(2))) {
124
+ return true;
125
+ }
126
+ }
127
+ return false;
128
+ }
129
+ function isSafeDirectoryAssignment(value) {
130
+ return value.toLowerCase().startsWith("safe.directory=");
131
+ }
132
+ function isCodexWorktreePath(gitRoot, worktreesRoot) {
133
+ const relative = node_path_1.default.relative(node_path_1.default.resolve(worktreesRoot), gitRoot);
134
+ if (!relative || relative === ".." || relative.startsWith(`..${node_path_1.default.sep}`) || node_path_1.default.isAbsolute(relative)) {
135
+ return false;
136
+ }
137
+ return relative.split(node_path_1.default.sep).filter(Boolean).length >= 2;
138
+ }
139
+ function hasCodexWorktreePathShape(gitRoot) {
140
+ let current = node_path_1.default.resolve(gitRoot);
141
+ while (true) {
142
+ const parent = node_path_1.default.dirname(current);
143
+ if (node_path_1.default.basename(parent).toLowerCase() === "worktrees" && node_path_1.default.basename(node_path_1.default.dirname(parent)).toLowerCase() === ".codex") {
144
+ const relative = node_path_1.default.relative(parent, gitRoot);
145
+ return relative.split(node_path_1.default.sep).filter(Boolean).length >= 2;
146
+ }
147
+ if (samePath(parent, current))
148
+ return false;
149
+ current = parent;
150
+ }
151
+ }
152
+ function isPathInsideOrEqual(parent, child) {
153
+ const relative = node_path_1.default.relative(parent, child);
154
+ return relative === "" || (relative !== ".." && !relative.startsWith(`..${node_path_1.default.sep}`) && !node_path_1.default.isAbsolute(relative));
155
+ }
156
+ function canonicalPath(value) {
157
+ try {
158
+ return node_fs_1.default.realpathSync.native(value);
159
+ }
160
+ catch {
161
+ return node_path_1.default.resolve(value);
162
+ }
163
+ }
164
+ function samePath(left, right) {
165
+ if (process.platform === "win32") {
166
+ return node_path_1.default.resolve(left).toLowerCase() === node_path_1.default.resolve(right).toLowerCase();
167
+ }
168
+ return node_path_1.default.resolve(left) === node_path_1.default.resolve(right);
169
+ }
170
+ function normalizeSlashes(value) {
171
+ return value.replace(/\\/g, "/");
172
+ }
173
+ const GIT_GLOBAL_OPTIONS_WITH_VALUE = new Set([
174
+ "-c",
175
+ "-C",
176
+ "--config-env",
177
+ "--exec-path",
178
+ "--git-dir",
179
+ "--work-tree",
180
+ "--namespace",
181
+ "--super-prefix"
182
+ ]);
183
+ const GIT_GLOBAL_FLAGS = new Set([
184
+ "--bare",
185
+ "--no-pager",
186
+ "--paginate",
187
+ "--literal-pathspecs",
188
+ "--glob-pathspecs",
189
+ "--noglob-pathspecs",
190
+ "--icase-pathspecs",
191
+ "--no-optional-locks",
192
+ "--no-replace-objects"
193
+ ]);
194
+ function isAttachedGitGlobalOption(arg) {
195
+ return arg.startsWith("-c") ||
196
+ arg.startsWith("-C") ||
197
+ arg.startsWith("--config-env=") ||
198
+ arg.startsWith("--exec-path=") ||
199
+ arg.startsWith("--git-dir=") ||
200
+ arg.startsWith("--work-tree=") ||
201
+ arg.startsWith("--namespace=") ||
202
+ arg.startsWith("--super-prefix=");
203
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.adaptRtkOutputForAib = adaptRtkOutputForAib;
7
+ exports.defaultRtkTeeDir = defaultRtkTeeDir;
8
+ const node_fs_1 = __importDefault(require("node:fs"));
9
+ const node_os_1 = __importDefault(require("node:os"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const RTK_FULL_DIFF_HINT = "[full diff: rtk git diff --no-compact]";
12
+ const RTK_FULL_OUTPUT_HINT_RE = /^(\s*)\[full output: (.+)\]\s*$/;
13
+ const RTK_REMAINING_OUTPUT_HINT_RE = /^(\s*)\[see remaining: tail -n \+(\d+) (.+)\]\s*$/;
14
+ function adaptRtkOutputForAib(input) {
15
+ return {
16
+ stdout: adaptHintLines(input.stdout, input),
17
+ stderr: adaptHintLines(input.stderr, input)
18
+ };
19
+ }
20
+ function defaultRtkTeeDir(cwd, workspaceRoot) {
21
+ const root = workspaceRoot ?? node_os_1.default.tmpdir();
22
+ return node_path_1.default.join(root, ".tmp", "aib", "rtk");
23
+ }
24
+ function adaptHintLines(output, input) {
25
+ if (!output.includes("[") || !output.includes("]")) {
26
+ return output;
27
+ }
28
+ return output
29
+ .split(/\r?\n/)
30
+ .map((line) => adaptHintLine(line, input))
31
+ .join("\n");
32
+ }
33
+ function adaptHintLine(line, input) {
34
+ const leadingWhitespace = line.match(/^\s*/)?.[0] ?? "";
35
+ if (line.trim() === RTK_FULL_DIFF_HINT) {
36
+ const hint = aibFullDiffHint(input.tool, input.args);
37
+ return hint ? `${leadingWhitespace}${hint}` : line;
38
+ }
39
+ const fullOutputMatch = RTK_FULL_OUTPUT_HINT_RE.exec(line);
40
+ if (fullOutputMatch) {
41
+ return `${fullOutputMatch[1] ?? ""}${formatArtifactHint("full output", fullOutputMatch[2] ?? "", input)}`;
42
+ }
43
+ const remainingMatch = RTK_REMAINING_OUTPUT_HINT_RE.exec(line);
44
+ if (remainingMatch) {
45
+ return `${remainingMatch[1] ?? ""}${formatArtifactHint("remaining output", remainingMatch[3] ?? "", input, remainingMatch[2] ?? "")}`;
46
+ }
47
+ return line;
48
+ }
49
+ function aibFullDiffHint(tool, args) {
50
+ if (tool !== "git" || args[0] !== "diff") {
51
+ return null;
52
+ }
53
+ const commandArgs = [...args];
54
+ if (!commandArgs.includes("--no-compact")) {
55
+ commandArgs.splice(1, 0, "--no-compact");
56
+ }
57
+ return `[full diff: aib git -- ${commandArgs.map(shellArg).join(" ")}]`;
58
+ }
59
+ function formatArtifactHint(kind, rawPath, input, startLine) {
60
+ const resolved = resolveHintPath(rawPath, input.cwd);
61
+ const displayPath = compactPath(input.displayRoot, resolved);
62
+ const size = fileSizeKb(resolved);
63
+ if (kind === "remaining output") {
64
+ const sizeText = typeof size === "number" ? `; file ${size} KB` : "; file size unknown";
65
+ const lineText = startLine ? ` from line ${startLine}` : "";
66
+ return `${kind}: ${displayPath}${lineText}${sizeText}`;
67
+ }
68
+ const sizeText = typeof size === "number" ? ` ${size} KB` : " size unknown";
69
+ return `${kind}: ${displayPath}${sizeText}`;
70
+ }
71
+ function resolveHintPath(rawPath, cwd) {
72
+ const normalized = rawPath.trim();
73
+ if (normalized.startsWith("~/") || normalized.startsWith("~\\")) {
74
+ return node_path_1.default.join(node_os_1.default.homedir(), normalized.slice(2));
75
+ }
76
+ if (node_path_1.default.isAbsolute(normalized)) {
77
+ return normalized;
78
+ }
79
+ return node_path_1.default.resolve(cwd, normalized);
80
+ }
81
+ function compactPath(root, target) {
82
+ const resolvedRoot = node_path_1.default.resolve(root);
83
+ const resolvedTarget = node_path_1.default.resolve(target);
84
+ const relative = node_path_1.default.relative(resolvedRoot, resolvedTarget);
85
+ if (relative && !relative.startsWith("..") && !node_path_1.default.isAbsolute(relative)) {
86
+ return normalizeSlashes(relative);
87
+ }
88
+ return normalizeSlashes(resolvedTarget);
89
+ }
90
+ function fileSizeKb(filePath) {
91
+ try {
92
+ return Math.ceil(node_fs_1.default.statSync(filePath).size / 1024);
93
+ }
94
+ catch {
95
+ return null;
96
+ }
97
+ }
98
+ function normalizeSlashes(value) {
99
+ return value.replace(/\\/g, "/");
100
+ }
101
+ function shellArg(value) {
102
+ if (/^[A-Za-z0-9_./:=@+-]+$/.test(value)) {
103
+ return value;
104
+ }
105
+ return `"${value.replace(/(["\\$`])/g, "\\$1")}"`;
106
+ }