@automaton-labs/aib 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/README.md +21 -578
  2. package/config/agent-dx-policy.default.json +31 -0
  3. package/config/control-plane-client.default.json +3 -0
  4. package/dist/agent-dx/agent-dx.js +805 -0
  5. package/dist/agent-dx/presentation.js +32 -0
  6. package/dist/alias-advisor/analyze.js +982 -0
  7. package/dist/alias-advisor/exact-text-cost.js +74 -0
  8. package/dist/alias-advisor/lexical.js +240 -0
  9. package/dist/alias-advisor/model.js +2 -0
  10. package/dist/alias-advisor/path-identity.js +49 -0
  11. package/dist/alias-advisor/ranking.js +171 -0
  12. package/dist/alias-advisor/token-estimator.js +85 -0
  13. package/dist/bin/aib.js +5 -1
  14. package/dist/bin/cli.js +811 -4
  15. package/dist/commands/add-missing-imports-preview-cache.js +99 -2
  16. package/dist/commands/add-missing-imports.js +241 -2
  17. package/dist/commands/apply-module-plan.js +1319 -3
  18. package/dist/commands/background-command.js +378 -2
  19. package/dist/commands/captured-input.js +74 -1
  20. package/dist/commands/config-command.js +314 -2
  21. package/dist/commands/config-output.js +357 -10
  22. package/dist/commands/control-plane-command.js +183 -1
  23. package/dist/commands/declaration-command.js +1209 -7
  24. package/dist/commands/declaration-execution-cache.js +79 -1
  25. package/dist/commands/declaration-format.js +221 -1
  26. package/dist/commands/declaration-preview-cache.js +114 -2
  27. package/dist/commands/diagnostics-command.js +70 -3
  28. package/dist/commands/doctor.js +137 -3
  29. package/dist/commands/execution-command.js +117 -1
  30. package/dist/commands/exports-star-collapse-command.js +178 -0
  31. package/dist/commands/exports-star-command.js +252 -0
  32. package/dist/commands/exports-star-preview-cache.js +84 -0
  33. package/dist/commands/feedback-command.js +176 -3
  34. package/dist/commands/file-move-to-dir-execution-cache.js +92 -1
  35. package/dist/commands/file-move-to-dir-preview-cache.js +125 -2
  36. package/dist/commands/file-move-to-dir-worker.js +54 -0
  37. package/dist/commands/file-move-to-dir.js +1073 -5
  38. package/dist/commands/file-mutation-runtime.js +102 -1
  39. package/dist/commands/file-mutation-worker-apply.js +180 -0
  40. package/dist/commands/file-refactor-batch-execution-cache.js +90 -1
  41. package/dist/commands/file-refactor-batch-preview-cache.js +125 -2
  42. package/dist/commands/file-refactor-batch-worker.js +54 -0
  43. package/dist/commands/file-refactor-batch.js +1154 -5
  44. package/dist/commands/file-rename-execution-cache.js +92 -1
  45. package/dist/commands/file-rename-preview-cache.js +125 -2
  46. package/dist/commands/file-rename-worker.js +54 -0
  47. package/dist/commands/file-rename.js +1053 -5
  48. package/dist/commands/file-text-edit-executor.js +205 -0
  49. package/dist/commands/find-importers.js +52 -1
  50. package/dist/commands/find-unused-imports.js +55 -1
  51. package/dist/commands/generate-docs-command.js +244 -6
  52. package/dist/commands/help-command.js +460 -7
  53. package/dist/commands/import-specifier-policy.js +391 -0
  54. package/dist/commands/imports-command.js +68 -1
  55. package/dist/commands/imports-rebase.js +1138 -0
  56. package/dist/commands/init-skill-usage.js +92 -3
  57. package/dist/commands/init-workspace.js +30 -1
  58. package/dist/commands/inspect-alias-candidates.js +413 -0
  59. package/dist/commands/inspect-cycles.js +811 -5
  60. package/dist/commands/inspect-direct-usages.js +98 -0
  61. package/dist/commands/inspect-duplicates-format.js +229 -0
  62. package/dist/commands/inspect-format-primitives.js +127 -0
  63. package/dist/commands/inspect-format.js +1590 -18
  64. package/dist/commands/inspect-graph.js +1553 -9
  65. package/dist/commands/inspect-imports.js +339 -2
  66. package/dist/commands/inspect-mixed-format.js +524 -0
  67. package/dist/commands/inspect-module-plan-format.js +216 -0
  68. package/dist/commands/inspect-module-plan-serialization.js +402 -0
  69. package/dist/commands/inspect-reference-path-format.js +157 -0
  70. package/dist/commands/inspect-request-values.js +599 -0
  71. package/dist/commands/inspect-selector-kind.js +21 -0
  72. package/dist/commands/inspect-selector.js +50 -0
  73. package/dist/commands/inspect-symbol-format.js +90 -0
  74. package/dist/commands/inspect-topology.js +435 -0
  75. package/dist/commands/inspect-tree.js +827 -5
  76. package/dist/commands/inspect-usages-detail.js +793 -0
  77. package/dist/commands/inspect-usages-evidence.js +31 -0
  78. package/dist/commands/inspect-usages-format.js +367 -0
  79. package/dist/commands/inspect.js +1450 -16
  80. package/dist/commands/internal-command.js +64 -0
  81. package/dist/commands/json-file-input.js +60 -1
  82. package/dist/commands/module-plan-cache.js +156 -2
  83. package/dist/commands/module-plan-standalone.js +208 -0
  84. package/dist/commands/module-plan-timeout.js +77 -1
  85. package/dist/commands/move-preview-cache.js +101 -2
  86. package/dist/commands/mutate-aggregate-output.js +996 -0
  87. package/dist/commands/mutate-child-execution.js +374 -0
  88. package/dist/commands/mutate-command.js +1394 -0
  89. package/dist/commands/mutate-declaration-output.js +313 -0
  90. package/dist/commands/mutate-domain-adapters.js +638 -0
  91. package/dist/commands/mutate-execution-cache.js +114 -0
  92. package/dist/commands/mutate-execution-status.js +598 -0
  93. package/dist/commands/mutate-failure-output.js +531 -0
  94. package/dist/commands/mutate-file-view.js +151 -0
  95. package/dist/commands/mutate-object-output.js +91 -0
  96. package/dist/commands/mutate-output-values.js +97 -0
  97. package/dist/commands/mutate-preview-cache.js +86 -0
  98. package/dist/commands/mutate-response-replay.js +153 -0
  99. package/dist/commands/mutate-result-projection.js +818 -0
  100. package/dist/commands/mutation-eta.js +28 -0
  101. package/dist/commands/mutation-execution-cache.js +140 -3
  102. package/dist/commands/mutation-recovery-journal.js +195 -0
  103. package/dist/commands/normalize-imports.js +1120 -4
  104. package/dist/commands/object-pack-command.js +546 -0
  105. package/dist/commands/object-pack-preview-cache.js +88 -0
  106. package/dist/commands/observability-command.js +47 -3
  107. package/dist/commands/ota-command.js +403 -2
  108. package/dist/commands/print-config.js +10 -1
  109. package/dist/commands/quick-read.js +1113 -11
  110. package/dist/commands/refactor-batch-builder.js +265 -1
  111. package/dist/commands/refactor-batch-execution-cache.js +85 -1
  112. package/dist/commands/refactor-batch-preview-cache.js +96 -2
  113. package/dist/commands/refactor-batch.js +461 -4
  114. package/dist/commands/rename-entities.js +794 -4
  115. package/dist/commands/rename-execution-cache.js +49 -1
  116. package/dist/commands/rename-input.js +22 -1
  117. package/dist/commands/rename-polling-policy.js +68 -0
  118. package/dist/commands/rename-preview-cache.js +96 -2
  119. package/dist/commands/result-view.js +993 -7
  120. package/dist/commands/reveal-command.js +445 -5
  121. package/dist/commands/selector-suggestions.js +93 -0
  122. package/dist/commands/session-workspace.js +1836 -31
  123. package/dist/commands/shared.js +2 -1
  124. package/dist/commands/skills-command.js +315 -0
  125. package/dist/commands/sync-command.js +59 -2
  126. package/dist/commands/worker-command.js +173 -1
  127. package/dist/commands/workspace-cache.js +55 -1
  128. package/dist/config/defaults.js +26 -1
  129. package/dist/config/env-vars.js +77 -1
  130. package/dist/config/glob-match.js +44 -1
  131. package/dist/config/import-rules.js +165 -1
  132. package/dist/config/local-config.js +293 -3
  133. package/dist/config/mutation-comments.js +51 -1
  134. package/dist/config/path-aliases.js +165 -1
  135. package/dist/config/path-display.js +84 -1
  136. package/dist/config/product-storage.js +37 -1
  137. package/dist/config/request-env.js +21 -0
  138. package/dist/config/request-routing-context.js +23 -0
  139. package/dist/config/resolve-command-alias.js +74 -1
  140. package/dist/config/resolve.js +24 -1
  141. package/dist/config/tsconfig-discovery.js +113 -1
  142. package/dist/config/typescript-preferences.js +131 -0
  143. package/dist/config/workspace-root.js +310 -3
  144. package/dist/config/workspace-state.js +254 -1
  145. package/dist/content/content-bundle.js +88 -1
  146. package/dist/diagnostics/module-plan-timeline.js +75 -2
  147. package/dist/diagnostics/readiness-text.js +45 -8
  148. package/dist/dsl/aib-dsl.js +838 -1
  149. package/dist/dsl/declaration-dsl.js +264 -1
  150. package/dist/dsl/file-move-to-dir-dsl.js +123 -1
  151. package/dist/dsl/file-refactor-batch-dsl.js +203 -1
  152. package/dist/dsl/file-rename-dsl.js +135 -1
  153. package/dist/dsl/mutate-dsl.js +746 -0
  154. package/dist/help/bootstrap.bash.md +176 -341
  155. package/dist/help/bootstrap.md +175 -340
  156. package/dist/help/bootstrap.pwsh.md +176 -341
  157. package/dist/help/docs/basics.md +1 -1
  158. package/dist/help/docs/config-setup.import-normalize.md +65 -65
  159. package/dist/help/docs/config-setup.import-rules.md +6 -5
  160. package/dist/help/docs/first-setup.md +6 -5
  161. package/dist/help/docs/help-protocol.md +4 -3
  162. package/dist/help/docs/import.base.md +38 -0
  163. package/dist/help/docs/import.rebase.md +85 -0
  164. package/dist/help/docs/inspect.aliasCandidates.md +39 -0
  165. package/dist/help/docs/inspect.code.md +1 -7
  166. package/dist/help/docs/inspect.file.md +10 -19
  167. package/dist/help/docs/inspect.graph.md +3 -17
  168. package/dist/help/{dsl/docs/inspect.md → docs/inspect.shared.md} +13 -12
  169. package/dist/help/docs/modulePlan.md +24 -28
  170. package/dist/help/docs/move.md +19 -22
  171. package/dist/help/{dsl/topics/file.move.md → docs/moveToDir.md} +36 -34
  172. package/dist/help/docs/mutate.mixed.md +34 -0
  173. package/dist/help/docs/mutation.shared.md +55 -0
  174. package/dist/help/docs/patterns.md +3 -12
  175. package/dist/help/docs/qr.md +12 -6
  176. package/dist/help/docs/quick-map.md +36 -24
  177. package/dist/help/docs/recipe.file-layout.md +10 -10
  178. package/dist/help/docs/recipe.import-boundary.md +92 -0
  179. package/dist/help/docs/recipe.safe-artifact-probing.md +68 -0
  180. package/dist/help/docs/recipe.unfamiliar-area.md +64 -0
  181. package/dist/help/docs/recipes.md +20 -0
  182. package/dist/help/docs/rename.md +19 -27
  183. package/dist/help/docs/renameFile.md +36 -0
  184. package/dist/help/docs/rules.md +26 -0
  185. package/dist/help/dsl/bootstrap.bash.md +176 -341
  186. package/dist/help/dsl/bootstrap.md +175 -340
  187. package/dist/help/dsl/bootstrap.pwsh.md +176 -341
  188. package/dist/help/dsl/docs/basics.md +1 -1
  189. package/dist/help/dsl/docs/config-setup.import-normalize.md +65 -65
  190. package/dist/help/dsl/docs/config-setup.import-rules.md +6 -5
  191. package/dist/help/dsl/docs/first-setup.md +6 -5
  192. package/dist/help/dsl/docs/help-protocol.md +4 -3
  193. package/dist/help/dsl/docs/import.base.md +38 -0
  194. package/dist/help/dsl/docs/import.rebase.md +85 -0
  195. package/dist/help/dsl/docs/inspect.aliasCandidates.md +39 -0
  196. package/dist/help/dsl/docs/inspect.code.md +1 -7
  197. package/dist/help/dsl/docs/inspect.file.md +10 -19
  198. package/dist/help/dsl/docs/inspect.graph.md +3 -17
  199. package/dist/help/{docs/inspect.md → dsl/docs/inspect.shared.md} +13 -12
  200. package/dist/help/dsl/docs/modulePlan.md +24 -28
  201. package/dist/help/dsl/docs/move.md +19 -22
  202. package/dist/help/{topics/file.move.md → dsl/docs/moveToDir.md} +36 -34
  203. package/dist/help/dsl/docs/mutate.mixed.md +34 -0
  204. package/dist/help/dsl/docs/mutation.shared.md +55 -0
  205. package/dist/help/dsl/docs/patterns.md +3 -12
  206. package/dist/help/dsl/docs/qr.md +12 -6
  207. package/dist/help/dsl/docs/quick-map.md +36 -24
  208. package/dist/help/dsl/docs/recipe.file-layout.md +10 -10
  209. package/dist/help/dsl/docs/recipe.import-boundary.md +92 -0
  210. package/dist/help/dsl/docs/recipe.safe-artifact-probing.md +68 -0
  211. package/dist/help/dsl/docs/recipe.unfamiliar-area.md +64 -0
  212. package/dist/help/dsl/docs/recipes.md +20 -0
  213. package/dist/help/dsl/docs/rename.md +19 -27
  214. package/dist/help/dsl/docs/renameFile.md +36 -0
  215. package/dist/help/dsl/docs/rules.md +26 -0
  216. package/dist/help/dsl/full.md +175 -340
  217. package/dist/help/dsl/help-index.md +48 -43
  218. package/dist/help/dsl/snippets/agents.md +2 -2
  219. package/dist/help/dsl/tokens/qr.inline.examples.md +1 -1
  220. package/dist/help/dsl/topics/basics.md +1 -1
  221. package/dist/help/dsl/topics/config-setup.import-normalize.md +65 -65
  222. package/dist/help/dsl/topics/config-setup.import-rules.md +6 -5
  223. package/dist/help/dsl/topics/first-setup.md +6 -5
  224. package/dist/help/dsl/topics/help-protocol.md +4 -3
  225. package/dist/help/dsl/topics/import.base.md +36 -0
  226. package/dist/help/dsl/topics/import.rebase.md +83 -0
  227. package/dist/help/dsl/topics/inspect.aliasCandidates.md +37 -0
  228. package/dist/help/dsl/topics/inspect.code.md +1 -7
  229. package/dist/help/dsl/topics/inspect.file.md +10 -19
  230. package/dist/help/dsl/topics/inspect.graph.md +3 -17
  231. package/dist/help/dsl/topics/{inspect.md → inspect.shared.md} +13 -12
  232. package/dist/help/dsl/topics/modulePlan.md +21 -26
  233. package/dist/help/dsl/topics/move.md +17 -18
  234. package/dist/help/{docs/file.move.md → dsl/topics/moveToDir.md} +33 -35
  235. package/dist/help/dsl/topics/mutate.mixed.md +32 -0
  236. package/dist/help/dsl/topics/mutation.shared.md +53 -0
  237. package/dist/help/dsl/topics/patterns.md +3 -12
  238. package/dist/help/dsl/topics/qr.md +12 -6
  239. package/dist/help/dsl/topics/quick-map.md +36 -24
  240. package/dist/help/dsl/topics/recipe.file-layout.md +10 -10
  241. package/dist/help/dsl/topics/recipe.import-boundary.md +90 -0
  242. package/dist/help/dsl/topics/recipe.safe-artifact-probing.md +66 -0
  243. package/dist/help/dsl/topics/recipe.unfamiliar-area.md +62 -0
  244. package/dist/help/dsl/topics/recipes.md +18 -0
  245. package/dist/help/dsl/topics/rename.md +15 -15
  246. package/dist/help/dsl/topics/renameFile.md +34 -0
  247. package/dist/help/dsl/topics/rules.md +24 -0
  248. package/dist/help/full.md +175 -340
  249. package/dist/help/help-index.md +48 -43
  250. package/dist/help/help-meta.json +98 -48
  251. package/dist/help/index.md +52 -20
  252. package/dist/help/snippets/agents.md +2 -2
  253. package/dist/help/tokens/qr.inline.examples.md +1 -1
  254. package/dist/help/topics/basics.md +1 -1
  255. package/dist/help/topics/config-setup.import-normalize.md +65 -65
  256. package/dist/help/topics/config-setup.import-rules.md +6 -5
  257. package/dist/help/topics/first-setup.md +6 -5
  258. package/dist/help/topics/help-protocol.md +4 -3
  259. package/dist/help/topics/import.base.md +36 -0
  260. package/dist/help/topics/import.rebase.md +83 -0
  261. package/dist/help/topics/inspect.aliasCandidates.md +37 -0
  262. package/dist/help/topics/inspect.code.md +1 -7
  263. package/dist/help/topics/inspect.file.md +10 -19
  264. package/dist/help/topics/inspect.graph.md +3 -17
  265. package/dist/help/topics/{inspect.md → inspect.shared.md} +13 -12
  266. package/dist/help/topics/modulePlan.md +21 -26
  267. package/dist/help/topics/move.md +17 -18
  268. package/dist/help/{dsl/docs/file.move.md → topics/moveToDir.md} +33 -35
  269. package/dist/help/topics/mutate.mixed.md +32 -0
  270. package/dist/help/topics/mutation.shared.md +53 -0
  271. package/dist/help/topics/patterns.md +3 -12
  272. package/dist/help/topics/qr.md +12 -6
  273. package/dist/help/topics/quick-map.md +36 -24
  274. package/dist/help/topics/recipe.file-layout.md +10 -10
  275. package/dist/help/topics/recipe.import-boundary.md +90 -0
  276. package/dist/help/topics/recipe.safe-artifact-probing.md +66 -0
  277. package/dist/help/topics/recipe.unfamiliar-area.md +62 -0
  278. package/dist/help/topics/recipes.md +18 -0
  279. package/dist/help/topics/rename.md +15 -15
  280. package/dist/help/topics/renameFile.md +34 -0
  281. package/dist/help/topics/rules.md +24 -0
  282. package/dist/host/capabilities.js +56 -1
  283. package/dist/imports/standalone-import-analysis.js +602 -0
  284. package/dist/imports/standalone-import-model.js +2 -0
  285. package/dist/imports/standalone-import-process.js +66 -0
  286. package/dist/imports/standalone-import-worker.js +27 -0
  287. package/dist/imports/standalone-ts-project.js +147 -0
  288. package/dist/inspect/inspect-duplicates-service.js +526 -0
  289. package/dist/inspect/inspect-reverse-module-closure.js +338 -0
  290. package/dist/inspect/inspect-source-ranges.js +82 -0
  291. package/dist/inspect/inspect-source-shape.js +649 -0
  292. package/dist/inspect/standalone-inspect-analysis.js +319 -0
  293. package/dist/inspect/standalone-inspect-model.js +9 -0
  294. package/dist/inspect/standalone-inspect-process.js +55 -0
  295. package/dist/inspect/standalone-inspect-usages.js +274 -0
  296. package/dist/inspect/standalone-inspect-worker.js +13 -0
  297. package/dist/metrics/central-metrics.js +101 -2
  298. package/dist/mutation/concrete-edit-plan.js +157 -0
  299. package/dist/mutation/exports-star-collapse-preview.js +361 -0
  300. package/dist/mutation/exports-star-expand-apply.js +373 -0
  301. package/dist/mutation/exports-star-expand-preview.js +807 -0
  302. package/dist/mutation/file-impact-scan.js +182 -0
  303. package/dist/mutation/file-mutation-discovery.js +674 -0
  304. package/dist/mutation/file-mutation-eta.js +99 -0
  305. package/dist/mutation/file-mutation-standalone-apply.js +584 -0
  306. package/dist/mutation/file-mutation-standalone-planner.js +500 -0
  307. package/dist/mutation/file-mutation-tsserver-session.js +473 -0
  308. package/dist/mutation/mutation-estimate.js +45 -0
  309. package/dist/mutation/mutation-plan.js +467 -0
  310. package/dist/mutation/object-mutation-foundation.js +2 -0
  311. package/dist/mutation/object-mutation-partition.js +148 -0
  312. package/dist/mutation/object-pack-semantic-apply.js +507 -0
  313. package/dist/mutation/object-pack-semantic-preview.js +984 -0
  314. package/dist/mutation/object-unpack-semantic-preview.js +993 -0
  315. package/dist/mutation/package-manifest-impact.js +176 -0
  316. package/dist/mutation/rename-owner-worker-child.js +37 -0
  317. package/dist/mutation/rename-owner-worker.js +122 -0
  318. package/dist/mutation/runtime-cycle-query.js +66 -0
  319. package/dist/mutation/semantic-execution-progress.js +63 -0
  320. package/dist/mutation/semantic-export-index.js +474 -0
  321. package/dist/mutation/semantic-impact-scan.js +434 -0
  322. package/dist/mutation/semantic-model.js +2 -0
  323. package/dist/mutation/semantic-move-best-effort-planner.js +209 -0
  324. package/dist/mutation/semantic-move-config-worker-child.js +61 -0
  325. package/dist/mutation/semantic-move-config-worker.js +449 -0
  326. package/dist/mutation/semantic-move-declarations.js +94 -0
  327. package/dist/mutation/semantic-move-metrics.js +119 -0
  328. package/dist/mutation/semantic-move-model.js +2 -0
  329. package/dist/mutation/semantic-move-owner-authority.js +122 -0
  330. package/dist/mutation/semantic-move-owner-candidates.js +300 -0
  331. package/dist/mutation/semantic-move-owner-divergence-harness.js +474 -0
  332. package/dist/mutation/semantic-move-owner-divergence-runner.js +162 -0
  333. package/dist/mutation/semantic-move-plan-hash.js +56 -0
  334. package/dist/mutation/semantic-move-policy.js +360 -0
  335. package/dist/mutation/semantic-move-process.js +218 -0
  336. package/dist/mutation/semantic-move-provider-diagnostics.js +27 -0
  337. package/dist/mutation/semantic-move-standalone-engine.js +919 -0
  338. package/dist/mutation/semantic-move-standalone-planner.js +1553 -0
  339. package/dist/mutation/semantic-move-transaction.js +639 -0
  340. package/dist/mutation/semantic-mutation-engine.js +478 -0
  341. package/dist/mutation/semantic-mutation-runtime.js +521 -0
  342. package/dist/mutation/semantic-planner-retry.js +26 -0
  343. package/dist/mutation/semantic-program-roots.js +69 -0
  344. package/dist/mutation/semantic-rename-commonjs.js +229 -0
  345. package/dist/mutation/semantic-rename-config-worker-child.js +46 -0
  346. package/dist/mutation/semantic-rename-config-worker.js +498 -0
  347. package/dist/mutation/semantic-rename-locations.js +192 -0
  348. package/dist/mutation/semantic-rename-model.js +2 -0
  349. package/dist/mutation/semantic-rename-process.js +217 -0
  350. package/dist/mutation/semantic-rename-standalone-engine.js +302 -0
  351. package/dist/mutation/semantic-rename-standalone-planner.js +567 -0
  352. package/dist/mutation/semantic-rename-transaction.js +333 -0
  353. package/dist/mutation/semantic-unused-import-cleanup.js +248 -0
  354. package/dist/mutation/semantic-worker-retry.js +40 -0
  355. package/dist/mutation/semantic-workspace.js +804 -0
  356. package/dist/mutation/targeted-import-canonicalizer.js +359 -0
  357. package/dist/observability/config.js +206 -1
  358. package/dist/observability/context.js +59 -1
  359. package/dist/observability/failure-snapshot.js +124 -2
  360. package/dist/observability/recent.js +63 -2
  361. package/dist/payloads/read-stdin-json.js +212 -1
  362. package/dist/rg-wrapper/core.js +714 -6
  363. package/dist/rg-wrapper/options.js +125 -1
  364. package/dist/rtk-wrapper/core.js +144 -2
  365. package/dist/rtk-wrapper/git-safety.js +203 -0
  366. package/dist/rtk-wrapper/output-adapter.js +106 -0
  367. package/dist/runtime/buffered-process.js +114 -0
  368. package/dist/runtime/bundled-node.js +97 -1
  369. package/dist/runtime/command-lifecycle.js +2 -0
  370. package/dist/runtime/input-source.js +238 -1
  371. package/dist/runtime/node-cli-identity.js +37 -0
  372. package/dist/runtime/run-command.js +191 -1
  373. package/dist/selectors/parse-entities.js +84 -1
  374. package/dist/semantic/semantic-context-pool.js +830 -0
  375. package/dist/semantic/semantic-context-provider.js +416 -0
  376. package/dist/semantic/semantic-resident-admission.js +38 -0
  377. package/dist/semantic/semantic-worker-child.js +40 -0
  378. package/dist/semantic/semantic-worker-manager.js +460 -0
  379. package/dist/semantic/semantic-worker-protocol.js +2 -0
  380. package/dist/semantic/semantic-worker-runtime.js +38 -0
  381. package/dist/semantic/workspace-semantic-context-pools.js +136 -0
  382. package/dist/session/client.js +359 -1
  383. package/dist/session/daemon-state.js +185 -2
  384. package/dist/session/external-tool-coordinator.js +88 -0
  385. package/dist/session/external-tool-request.js +52 -0
  386. package/dist/session/lane-owner.js +116 -0
  387. package/dist/session/paths.js +71 -1
  388. package/dist/session/runtime-lifecycle.js +225 -0
  389. package/dist/session/runtime-shutdown.js +95 -0
  390. package/dist/session/server.js +1194 -7
  391. package/dist/session/session-health.js +27 -0
  392. package/dist/shared/agent-text.js +29 -1
  393. package/dist/shared/errors.js +496 -30
  394. package/dist/shared/event-loop.js +6 -1
  395. package/dist/shared/hints.js +37 -1
  396. package/dist/shared/metrics.js +43 -1
  397. package/dist/shared/presentation.js +69 -4
  398. package/dist/shared/stdin-examples.js +77 -1
  399. package/dist/shared/stdout.js +6 -2
  400. package/dist/shared/types.js +23 -1
  401. package/dist/tool-runtime/runtime-tools.js +120 -1
  402. package/dist/topology/availability.js +663 -0
  403. package/dist/topology/cache.js +130 -0
  404. package/dist/topology/candidates.js +372 -0
  405. package/dist/topology/core.js +903 -0
  406. package/dist/topology/dependency-snapshot.js +189 -0
  407. package/dist/topology/model.js +2 -0
  408. package/dist/topology/scope.js +100 -0
  409. package/dist/topology/ts-oracle-batch.js +529 -0
  410. package/dist/topology/ts-oracle-host.js +69 -0
  411. package/dist/topology/ts-oracle-model.js +2 -0
  412. package/dist/topology/ts-oracle.js +224 -0
  413. package/dist/topology/tsconfig-loader.js +105 -0
  414. package/dist/topology/workspace-project-index.js +542 -0
  415. package/dist/tracing/config.js +192 -2
  416. package/dist/tracing/failure-summary.js +100 -0
  417. package/dist/tracing/trace.js +318 -5
  418. package/dist/tsc-wrapper/core.js +697 -0
  419. package/dist/workers/control-plane/aib-control-plane-worker.cjs +32 -32
  420. package/dist/workers/control-plane/client-config.default.json +3 -3
  421. package/dist/workers/lexical-worker-child.js +27 -0
  422. package/dist/workers/lexical-worker-manager.js +394 -0
  423. package/dist/workers/lexical-worker-protocol.js +2 -0
  424. package/dist/workers/lexical-worker-runtime.js +25 -0
  425. package/dist/workers/owned-one-shot-process.js +115 -0
  426. package/dist/workers/product-storage.js +23 -1
  427. package/dist/workers/registry.js +241 -1
  428. package/package.json +8 -13
  429. package/scripts/postinstall.cjs +29 -29
  430. package/scripts/provision-runtime.cjs +411 -459
  431. package/dist/client/http-client.js +0 -1
  432. package/dist/client/transport-options.js +0 -1
  433. package/dist/client/websocket-client.js +0 -1
  434. package/dist/commands/entity-resolution.js +0 -1
  435. package/dist/commands/file-command.js +0 -1
  436. package/dist/commands/host-command.js +0 -1
  437. package/dist/commands/inspect-symbol-query.js +0 -1
  438. package/dist/commands/list-instances.js +0 -1
  439. package/dist/commands/module-plan-command.js +0 -1
  440. package/dist/commands/move-command.js +0 -1
  441. package/dist/commands/move-to-file.js +0 -2
  442. package/dist/commands/ping.js +0 -1
  443. package/dist/commands/refactor-command.js +0 -1
  444. package/dist/commands/rename-command.js +0 -1
  445. package/dist/commands/runtime-command.js +0 -4
  446. package/dist/commands/runtime-info.js +0 -1
  447. package/dist/commands/validate-module-plan.js +0 -2
  448. package/dist/compatibility/policy.js +0 -1
  449. package/dist/config/auto-start-ide.js +0 -1
  450. package/dist/discovery/registry.js +0 -1
  451. package/dist/discovery/select-instance.js +0 -1
  452. package/dist/help/docs/file.rename.md +0 -35
  453. package/dist/help/docs/mutation.md +0 -60
  454. package/dist/help/docs/refactor.batch.md +0 -44
  455. package/dist/help/dsl/docs/file.rename.md +0 -35
  456. package/dist/help/dsl/docs/mutation.md +0 -60
  457. package/dist/help/dsl/docs/refactor.batch.md +0 -44
  458. package/dist/help/dsl/topics/file.rename.md +0 -33
  459. package/dist/help/dsl/topics/mutation.md +0 -58
  460. package/dist/help/dsl/topics/refactor.batch.md +0 -33
  461. package/dist/help/topics/file.rename.md +0 -33
  462. package/dist/help/topics/mutation.md +0 -58
  463. package/dist/help/topics/refactor.batch.md +0 -33
  464. package/dist/ide-launch/common.cjs +0 -162
  465. package/dist/managed-host/extension-vsix-resolver.js +0 -1
  466. package/dist/managed-host/manage-serve-web-host.cjs +0 -141
  467. package/dist/managed-host/serve-web-autostart.js +0 -1
  468. package/dist/managed-host/serve-web-host.cjs +0 -2115
  469. package/dist/runtime/managed-runtime-provisioning.js +0 -1
  470. package/dist/shared/diagnostic-catalog.js +0 -1
  471. package/dist/shared/diagnostics.js +0 -1
  472. package/dist/shared/operations.js +0 -1
  473. package/dist/shared/protocol.js +0 -1
  474. package/dist/shared/routes.js +0 -1
  475. package/extension/vscode-refactor-bridge-extension.vsix +0 -0
  476. package/runtimes/launcher/linux-x64/aib +0 -0
  477. package/runtimes/launcher/win-x64/aib.exe +0 -0
@@ -1 +1,43 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.metricsNow=i,exports.recordSpan=o,exports.appendMetrics=c;const t=require("node:perf_hooks");function i(){return t.performance.now()}function o(e,r,n){e&&e.push({name:r,durationMs:Number((t.performance.now()-n).toFixed(3))})}function s(e){const r=e._metrics;if(!r||typeof r!="object"||Array.isArray(r))return[];const n=r.spans;return Array.isArray(n)?n:[]}function c(e,r){return r.length===0?e:{...e,_metrics:{spans:[...s(e),...r.map(n=>({name:n.name,durationMs:n.durationMs}))]}}}
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.metricsNow = metricsNow;
4
+ exports.recordSpan = recordSpan;
5
+ exports.appendMetrics = appendMetrics;
6
+ const node_perf_hooks_1 = require("node:perf_hooks");
7
+ function metricsNow() {
8
+ return node_perf_hooks_1.performance.now();
9
+ }
10
+ function recordSpan(spans, name, startedAt) {
11
+ if (!spans) {
12
+ return;
13
+ }
14
+ spans.push({
15
+ name,
16
+ durationMs: Number((node_perf_hooks_1.performance.now() - startedAt).toFixed(3))
17
+ });
18
+ }
19
+ function readExistingSpans(payload) {
20
+ const rawMetrics = payload._metrics;
21
+ if (!rawMetrics || typeof rawMetrics !== "object" || Array.isArray(rawMetrics)) {
22
+ return [];
23
+ }
24
+ const rawSpans = rawMetrics.spans;
25
+ return Array.isArray(rawSpans) ? rawSpans : [];
26
+ }
27
+ function appendMetrics(payload, spans) {
28
+ if (spans.length === 0) {
29
+ return payload;
30
+ }
31
+ return {
32
+ ...payload,
33
+ _metrics: {
34
+ spans: [
35
+ ...readExistingSpans(payload),
36
+ ...spans.map((span) => ({
37
+ name: span.name,
38
+ durationMs: span.durationMs
39
+ }))
40
+ ]
41
+ }
42
+ };
43
+ }
@@ -1,4 +1,69 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createCliPresentationEnvelope=l,exports.presentCliEnvelope=c;const i=require("./agent-text");function l(e){const r=(0,i.readAgentText)(e),n=r?null:f(e),s=r??n,t=s&&!r?(0,i.attachAgentText)(e,s):e,a=typeof t.code=="string"?t.code:void 0;return{ok:t.ok!==!1,payload:t,tracePayload:(0,i.stripAgentText)(t),text:s,...a?{code:a}:{}}}function c(e,r){return r==="agent"&&e.text?`${e.text.trimEnd()}
2
- `:`${JSON.stringify(e.tracePayload,null,2)}
3
- `}function f(e){if(e.ok!==!1)return null;const r=typeof e.code=="string"&&e.code.length>0?e.code:"ERROR",n=typeof e.error=="string"&&e.error.length>0?e.error:"AIB command failed.",s=[r,"",n],t=g(e.details);t.length>0&&s.push("","issues:",...t);const a=Array.isArray(e.hints)?e.hints.filter(o=>typeof o=="string"&&o.length>0):[];return a.length>0&&s.push("","hints:",...a.map(o=>`- ${o}`)),s.join(`
4
- `)}function g(e){if(!e||typeof e!="object"||Array.isArray(e))return[];const r=e.issues;return Array.isArray(r)?r.map(n=>{if(!n||typeof n!="object"||Array.isArray(n))return null;const s=typeof n.path=="string"&&n.path.length>0?n.path:"<root>",t=typeof n.message=="string"&&n.message.length>0?n.message:"Invalid value.";return`- ${s}: ${t}`}).filter(n=>n!==null):[]}
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCliPresentationEnvelope = createCliPresentationEnvelope;
4
+ exports.presentCliEnvelope = presentCliEnvelope;
5
+ const agent_text_1 = require("./agent-text");
6
+ function createCliPresentationEnvelope(output) {
7
+ const explicitText = (0, agent_text_1.readAgentText)(output);
8
+ const fallbackText = explicitText ? null : formatFallbackErrorText(output);
9
+ const text = explicitText ?? fallbackText;
10
+ const payload = text && !explicitText ? (0, agent_text_1.attachAgentText)(output, text) : output;
11
+ const code = typeof payload.code === "string" ? payload.code : undefined;
12
+ return {
13
+ ok: payload.ok !== false,
14
+ payload,
15
+ tracePayload: (0, agent_text_1.stripAgentText)(payload),
16
+ text,
17
+ ...(code ? { code } : {})
18
+ };
19
+ }
20
+ function presentCliEnvelope(envelope, mode) {
21
+ if (mode === "agent" && envelope.text) {
22
+ return `${envelope.text.trimEnd()}\n`;
23
+ }
24
+ return `${JSON.stringify(envelope.tracePayload, null, 2)}\n`;
25
+ }
26
+ function formatFallbackErrorText(output) {
27
+ if (output.ok !== false) {
28
+ return null;
29
+ }
30
+ const code = typeof output.code === "string" && output.code.length > 0 ? output.code : "ERROR";
31
+ const message = typeof output.error === "string" && output.error.length > 0
32
+ ? output.error
33
+ : "AIB command failed.";
34
+ const lines = [
35
+ code,
36
+ "",
37
+ message
38
+ ];
39
+ const issueLines = formatIssueLines(output.details);
40
+ if (issueLines.length > 0) {
41
+ lines.push("", "issues:", ...issueLines);
42
+ }
43
+ const hints = Array.isArray(output.hints)
44
+ ? output.hints.filter((hint) => typeof hint === "string" && hint.length > 0)
45
+ : [];
46
+ if (hints.length > 0) {
47
+ lines.push("", "hints:", ...hints.map((hint) => `- ${hint}`));
48
+ }
49
+ return lines.join("\n");
50
+ }
51
+ function formatIssueLines(details) {
52
+ if (!details || typeof details !== "object" || Array.isArray(details)) {
53
+ return [];
54
+ }
55
+ const issues = details.issues;
56
+ if (!Array.isArray(issues)) {
57
+ return [];
58
+ }
59
+ return issues
60
+ .map((issue) => {
61
+ if (!issue || typeof issue !== "object" || Array.isArray(issue)) {
62
+ return null;
63
+ }
64
+ const path = typeof issue.path === "string" && issue.path.length > 0 ? issue.path : "<root>";
65
+ const message = typeof issue.message === "string" && issue.message.length > 0 ? issue.message : "Invalid value.";
66
+ return `- ${path}: ${message}`;
67
+ })
68
+ .filter((line) => line !== null);
69
+ }
@@ -1 +1,77 @@
1
- "use strict";var _=exports&&exports.__createBinding||(Object.create?(function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}):(function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]})),p=exports&&exports.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),u=exports&&exports.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[n.length]=i);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),i=0;i<n.length;i++)n[i]!=="default"&&_(r,t,n[i]);return p(r,t),r}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveStdinExampleShell=f,exports.formatStdinExamples=v,exports.formatHelpToken=d;const c=u(require("node:fs")),l=u(require("node:path"));function f(){const e=process.env.AIB_HELP_SHELL?.trim().toLowerCase();return e==="bash"||e==="sh"||e==="zsh"?"bash":e==="powershell"||e==="pwsh"||e==="ps"||process.platform==="win32"?"powershell":"bash"}function v(e={}){return d(e.includeQr===!0?"stdin.examples.with-qr":"stdin.examples",e.helpRootDir)}function d(e,t){const r=e.trim();if(!/^[a-z0-9_.-]+$/i.test(r))throw new Error(`Invalid AIB help token: ${e}`);const i=f()==="powershell"?"pwsh":"bash",s=l.join("tokens",`${r}.md`),a=l.join("tokens",`${r}.${i}.md`),h=[t?l.join(t,s):null,t?l.join(t,a):null,l.resolve(__dirname,"..","help",s),l.resolve(__dirname,"..","help",a),l.resolve(__dirname,"..","..","..","..","docs","aib-help",s),l.resolve(__dirname,"..","..","..","..","docs","aib-help",a)].filter(o=>!!o);for(const o of h)if(c.existsSync(o))return c.readFileSync(o,"utf8").trim();throw new Error(`Missing AIB help token: ${s} or ${a}`)}
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.resolveStdinExampleShell = resolveStdinExampleShell;
37
+ exports.formatStdinExamples = formatStdinExamples;
38
+ exports.formatHelpToken = formatHelpToken;
39
+ const fs = __importStar(require("node:fs"));
40
+ const path = __importStar(require("node:path"));
41
+ function resolveStdinExampleShell() {
42
+ const override = process.env.AIB_HELP_SHELL?.trim().toLowerCase();
43
+ if (override === "bash" || override === "sh" || override === "zsh") {
44
+ return "bash";
45
+ }
46
+ if (override === "powershell" || override === "pwsh" || override === "ps") {
47
+ return "powershell";
48
+ }
49
+ return process.platform === "win32" ? "powershell" : "bash";
50
+ }
51
+ function formatStdinExamples(options = {}) {
52
+ return formatHelpToken(options.includeQr === true ? "stdin.examples.with-qr" : "stdin.examples", options.helpRootDir);
53
+ }
54
+ function formatHelpToken(token, helpRootDir) {
55
+ const normalized = token.trim();
56
+ if (!/^[a-z0-9_.-]+$/i.test(normalized)) {
57
+ throw new Error(`Invalid AIB help token: ${token}`);
58
+ }
59
+ const shell = resolveStdinExampleShell();
60
+ const shellSuffix = shell === "powershell" ? "pwsh" : "bash";
61
+ const genericRelative = path.join("tokens", `${normalized}.md`);
62
+ const shellRelative = path.join("tokens", `${normalized}.${shellSuffix}.md`);
63
+ const candidates = [
64
+ helpRootDir ? path.join(helpRootDir, genericRelative) : null,
65
+ helpRootDir ? path.join(helpRootDir, shellRelative) : null,
66
+ path.resolve(__dirname, "..", "help", genericRelative),
67
+ path.resolve(__dirname, "..", "help", shellRelative),
68
+ path.resolve(__dirname, "..", "..", "..", "..", "docs", "aib-help", genericRelative),
69
+ path.resolve(__dirname, "..", "..", "..", "..", "docs", "aib-help", shellRelative)
70
+ ].filter((candidate) => Boolean(candidate));
71
+ for (const candidate of candidates) {
72
+ if (fs.existsSync(candidate)) {
73
+ return fs.readFileSync(candidate, "utf8").trim();
74
+ }
75
+ }
76
+ throw new Error(`Missing AIB help token: ${genericRelative} or ${shellRelative}`);
77
+ }
@@ -1,2 +1,6 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.printJson=e;function e(t){process.stdout.write(`${JSON.stringify(t,null,2)}
2
- `)}
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.printJson = printJson;
4
+ function printJson(value) {
5
+ process.stdout.write(`${JSON.stringify(value, null, 2)}\n`);
6
+ }
@@ -1 +1,23 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ENTITY_KIND_IDS=exports.CANONICAL_METHOD_IDS=void 0,exports.CANONICAL_METHOD_IDS=["ping","runtimeInfo","printConfig","listInstances","initSkillUsage","help","inspect","imports","move","rename","refactor","execution","modulePlan"],exports.ENTITY_KIND_IDS=["class","interface","type","function","variable","enum","namespace","method","property"];
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ENTITY_KIND_IDS = exports.CANONICAL_METHOD_IDS = void 0;
4
+ exports.CANONICAL_METHOD_IDS = [
5
+ "printConfig",
6
+ "initSkillUsage",
7
+ "help",
8
+ "inspect",
9
+ "imports",
10
+ "mutate",
11
+ "execution"
12
+ ];
13
+ exports.ENTITY_KIND_IDS = [
14
+ "class",
15
+ "interface",
16
+ "type",
17
+ "function",
18
+ "variable",
19
+ "enum",
20
+ "namespace",
21
+ "method",
22
+ "property"
23
+ ];
@@ -1 +1,120 @@
1
- "use strict";var f=exports&&exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveToolRuntime=b,exports.currentPlatformKey=h,exports.packagedToolsRoot=s,exports.toolCacheRoot=l,exports.defaultExecutableName=c,exports.toolRuntimeEnvVar=x,exports.shouldUseShellForTool=g;const d=f(require("node:fs")),n=f(require("node:path")),v=require("../config/env-vars"),_=require("../config/product-storage");function b(e){const r={...process.env,...e.env},o=h(),t=r[e.envVar]?.trim();if(t)return{executable:n.default.resolve(t),source:"env",platformKey:o};const u=P(e.tool,o);if(u)return u;const a=k(e.tool,o);return a||{executable:c(e.tool),source:"path",platformKey:o}}function h(){const e=(process.arch==="x64"||process.arch==="arm64",process.arch);return`${process.platform}-${e}`}function s(){return n.default.resolve(__dirname,"..","..","runtimes","tools")}function l(e=(0,_.productStorageRoot)()){return n.default.join(e,"tool-packs")}function c(e){return e==="rg"?process.platform==="win32"?"rg.exe":"rg":process.platform==="win32"?"rtk.exe":"rtk"}function x(e){return e==="rg"?v.CLI_ENV.rgPath:v.CLI_ENV.rtkPath}function g(e){return process.platform==="win32"&&/\.(?:cmd|bat)$/i.test(e)}function P(e,r){const o=n.default.join(l(),e,"active.json"),t=p(o);if(!t||t.tool!==e||t.platform!==r||!t.version)return null;const u=t.executablePath?n.default.resolve(t.executablePath):n.default.join(l(),e,t.version,r,t.executable||c(e));return m(u)?{executable:u,source:"cache",platformKey:r,version:t.version}:null}function k(e,r){const o=n.default.join(s(),e,"manifest.json"),t=p(o);if(!t||t.tool!==e||!t.version)return null;const a=t.platforms?.[r]?.executable||c(e),i=n.default.join(s(),e,r,a);return m(i)?{executable:i,source:"packaged",platformKey:r,version:t.version}:null}function m(e){try{return d.default.statSync(e).isFile()}catch{return!1}}function p(e){try{return JSON.parse(d.default.readFileSync(e,"utf8"))}catch{return 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.resolveToolRuntime = resolveToolRuntime;
7
+ exports.currentPlatformKey = currentPlatformKey;
8
+ exports.packagedToolsRoot = packagedToolsRoot;
9
+ exports.toolCacheRoot = toolCacheRoot;
10
+ exports.defaultExecutableName = defaultExecutableName;
11
+ exports.toolRuntimeEnvVar = toolRuntimeEnvVar;
12
+ exports.shouldUseShellForTool = shouldUseShellForTool;
13
+ const node_fs_1 = __importDefault(require("node:fs"));
14
+ const node_path_1 = __importDefault(require("node:path"));
15
+ const env_vars_1 = require("../config/env-vars");
16
+ const product_storage_1 = require("../config/product-storage");
17
+ function resolveToolRuntime(options) {
18
+ const env = {
19
+ ...process.env,
20
+ ...options.env
21
+ };
22
+ const platformKey = currentPlatformKey();
23
+ const override = env[options.envVar]?.trim();
24
+ if (override) {
25
+ return {
26
+ executable: node_path_1.default.resolve(override),
27
+ source: "env",
28
+ platformKey
29
+ };
30
+ }
31
+ const cached = resolveCachedTool(options.tool, platformKey);
32
+ if (cached) {
33
+ return cached;
34
+ }
35
+ const packaged = resolvePackagedTool(options.tool, platformKey);
36
+ if (packaged) {
37
+ return packaged;
38
+ }
39
+ return {
40
+ executable: defaultExecutableName(options.tool),
41
+ source: "path",
42
+ platformKey
43
+ };
44
+ }
45
+ function currentPlatformKey() {
46
+ const arch = process.arch === "x64" || process.arch === "arm64" ? process.arch : process.arch;
47
+ return `${process.platform}-${arch}`;
48
+ }
49
+ function packagedToolsRoot() {
50
+ return node_path_1.default.resolve(__dirname, "..", "..", "runtimes", "tools");
51
+ }
52
+ function toolCacheRoot(root = (0, product_storage_1.productStorageRoot)()) {
53
+ return node_path_1.default.join(root, "tool-packs");
54
+ }
55
+ function defaultExecutableName(tool) {
56
+ if (tool === "rg") {
57
+ return process.platform === "win32" ? "rg.exe" : "rg";
58
+ }
59
+ return process.platform === "win32" ? "rtk.exe" : "rtk";
60
+ }
61
+ function toolRuntimeEnvVar(tool) {
62
+ return tool === "rg" ? env_vars_1.CLI_ENV.rgPath : env_vars_1.CLI_ENV.rtkPath;
63
+ }
64
+ function shouldUseShellForTool(executable) {
65
+ return process.platform === "win32" && /\.(?:cmd|bat)$/i.test(executable);
66
+ }
67
+ function resolveCachedTool(tool, platformKey) {
68
+ const activePath = node_path_1.default.join(toolCacheRoot(), tool, "active.json");
69
+ const active = readJsonFile(activePath);
70
+ if (!active || active.tool !== tool || active.platform !== platformKey || !active.version) {
71
+ return null;
72
+ }
73
+ const executable = active.executablePath
74
+ ? node_path_1.default.resolve(active.executablePath)
75
+ : node_path_1.default.join(toolCacheRoot(), tool, active.version, platformKey, active.executable || defaultExecutableName(tool));
76
+ if (!fileExists(executable)) {
77
+ return null;
78
+ }
79
+ return {
80
+ executable,
81
+ source: "cache",
82
+ platformKey,
83
+ version: active.version
84
+ };
85
+ }
86
+ function resolvePackagedTool(tool, platformKey) {
87
+ const manifestPath = node_path_1.default.join(packagedToolsRoot(), tool, "manifest.json");
88
+ const manifest = readJsonFile(manifestPath);
89
+ if (!manifest || manifest.tool !== tool || !manifest.version) {
90
+ return null;
91
+ }
92
+ const platform = manifest.platforms?.[platformKey];
93
+ const executableName = platform?.executable || defaultExecutableName(tool);
94
+ const executable = node_path_1.default.join(packagedToolsRoot(), tool, platformKey, executableName);
95
+ if (!fileExists(executable)) {
96
+ return null;
97
+ }
98
+ return {
99
+ executable,
100
+ source: "packaged",
101
+ platformKey,
102
+ version: manifest.version
103
+ };
104
+ }
105
+ function fileExists(filePath) {
106
+ try {
107
+ return node_fs_1.default.statSync(filePath).isFile();
108
+ }
109
+ catch {
110
+ return false;
111
+ }
112
+ }
113
+ function readJsonFile(filePath) {
114
+ try {
115
+ return JSON.parse(node_fs_1.default.readFileSync(filePath, "utf8"));
116
+ }
117
+ catch {
118
+ return null;
119
+ }
120
+ }