@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,264 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compileDeclarationDsl=E;const c=require("../shared/errors");function E(n,e){const t={scope:void 0,files:void 0,operation:void 0,selectors:[],exclude:[],prefer:[],details:!1},i=n.split(/\r?\n/);for(let o=0;o<i.length;o+=1){const s=o+1,r=m(i[o]??"").trim();if(r){if(r.startsWith("@scope ")){t.scope=A(r,s,t),t.files=void 0;continue}if(r.startsWith("@files ")){if(t.files=I(r,s,t),t.scope=void 0,t.files.length===0)throw new c.CliError("DECLARATION_FILES_REQUIRED",`@files expects at least one file at line ${s}.`,{line:s});continue}if(r.startsWith("remove ")||r==="remove"){D(t,"remove",r.slice(6).trim(),s);continue}if(r.startsWith("addMissing ")||r==="addMissing"){D(t,"addMissing",r.slice(10).trim(),s);continue}throw new c.CliError("INVALID_DECLARATION_DSL",`Invalid declaration DSL at line ${s}: ${r}`,{line:s,expected:"@scope <dir>, @files <file>..., remove <selector>..., or addMissing [selector]..."})}}if(!t.scope&&(!t.files||t.files.length===0))throw new c.CliError("DECLARATION_TARGET_REQUIRED","declaration DSL expects @scope <dir> or @files <file> ...");if(!t.operation)throw new c.CliError("DECLARATION_OPERATION_REQUIRED","declaration DSL expects remove or addMissing.");if(e&&t.operation!==e)throw new c.CliError("DECLARATION_OPERATION_MISMATCH",`DSL operation is ${t.operation}, but command expects ${e}.`);if(t.operation==="remove"&&t.selectors.length===0)throw new c.CliError("DECLARATION_REMOVE_SELECTORS_REQUIRED","declaration remove expects at least one selector.");return C({operation:t.operation,scope:t.scope,files:t.files,selectors:t.selectors,exclude:t.exclude.length>0?t.exclude:void 0,prefer:t.prefer.length>0?t.prefer:void 0,details:t.details===!0?!0:void 0})}function A(n,e,t){const i=d(n.slice(6).trim(),e),o=[];for(const s of i)u(s,t)||o.push(s);if(o.length!==1)throw new c.CliError("INVALID_DECLARATION_DSL",`@scope expects one path at line ${e}.`,{line:e});return o[0]}function I(n,e,t){const i=[];for(const o of d(n.slice(6).trim(),e))u(o,t)||i.push(o);return i}function D(n,e,t,i){if(n.operation)throw new c.CliError("DECLARATION_OPERATION_DUPLICATE",`Only one declaration operation is supported at line ${i}.`,{line:i});n.operation=e;const o=[];for(const s of t?d(t,i):[]){if(u(s,n))continue;const r=L(s);if(!r){o.push(s);continue}if(r.key==="entities"||r.key==="selectors"){o.push(...a(r.value));continue}if(r.key==="exclude"){n.exclude.push(...a(r.value));continue}if(r.key==="prefer"){n.prefer.push(...a(r.value));continue}throw new c.CliError("INVALID_DECLARATION_DSL_FIELD",`Unknown declaration DSL field at line ${i}: ${r.key}`,{line:i})}n.selectors.push(..._(o))}function u(n,e){return n!=="+details"&&n!=="+detail"?!1:(e.details=!0,!0)}function w(n,e,t){const i=n.slice(e.length).trim();if(!i)throw new c.CliError("INVALID_DECLARATION_DSL",`${e} expects a value at line ${t}.`,{line:t});return i}function L(n){const e=n.indexOf("=");return e<=0?null:{key:n.slice(0,e),value:n.slice(e+1)}}function a(n){const e=n.trim();if(!e)return[];if(!e.startsWith("[")||!e.endsWith("]"))return[p(e)];const t=e.slice(1,-1),i=[];let o="",s=null;for(let l=0;l<t.length;l+=1){const f=t[l];if(s){f===s?s=null:o+=f;continue}if(f==="'"||f==='"'){s=f;continue}if(f===","){const h=o.trim();h&&i.push(p(h)),o="";continue}o+=f}const r=o.trim();return r&&i.push(p(r)),i}function d(n,e){const t=[];let i="",o=null,s=0;for(let r=0;r<n.length;r+=1){const l=n[r];if(o){l===o?o=null:i+=l;continue}if(l==="'"||l==='"'){o=l;continue}if(l==="["){s+=1,i+=l;continue}if(l==="]"){s=Math.max(0,s-1),i+=l;continue}if(/\s/.test(l)&&s===0){i&&(t.push(i),i="");continue}i+=l}if(o)throw new c.CliError("INVALID_DECLARATION_DSL",`Unterminated quote at line ${e}.`,{line:e});if(s!==0)throw new c.CliError("INVALID_DECLARATION_DSL",`Unterminated list at line ${e}.`,{line:e});return i&&t.push(i),t}function m(n){const e=n.indexOf("#");return e>=0?n.slice(0,e):n}function p(n){const e=n.trim();return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function _(n){return[...new Set(n.filter(e=>e.trim()!==""))]}function C(n){const e={};for(const[t,i]of Object.entries(n))i!==void 0&&(e[t]=i);return e}
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compileDeclarationDsl = compileDeclarationDsl;
4
+ const errors_1 = require("../shared/errors");
5
+ function compileDeclarationDsl(source, expectedOperation) {
6
+ const state = {
7
+ scope: undefined,
8
+ files: undefined,
9
+ operation: undefined,
10
+ selectors: [],
11
+ exclude: [],
12
+ prefer: [],
13
+ details: false
14
+ };
15
+ const lines = source.split(/\r?\n/);
16
+ for (let index = 0; index < lines.length; index += 1) {
17
+ const lineNumber = index + 1;
18
+ const trimmed = stripComment(lines[index] ?? "").trim();
19
+ if (!trimmed) {
20
+ continue;
21
+ }
22
+ if (trimmed.startsWith("@scope ")) {
23
+ state.scope = readScopeDirective(trimmed, lineNumber, state);
24
+ state.files = undefined;
25
+ continue;
26
+ }
27
+ if (trimmed.startsWith("@files ")) {
28
+ state.files = readFilesDirective(trimmed, lineNumber, state);
29
+ state.scope = undefined;
30
+ if (state.files.length === 0) {
31
+ throw new errors_1.CliError("DECLARATION_FILES_REQUIRED", `@files expects at least one file at line ${lineNumber}.`, { line: lineNumber });
32
+ }
33
+ continue;
34
+ }
35
+ if (trimmed.startsWith("remove ") || trimmed === "remove") {
36
+ parseOperationLine(state, "remove", trimmed.slice("remove".length).trim(), lineNumber);
37
+ continue;
38
+ }
39
+ if (trimmed.startsWith("addMissing ") || trimmed === "addMissing") {
40
+ parseOperationLine(state, "addMissing", trimmed.slice("addMissing".length).trim(), lineNumber);
41
+ continue;
42
+ }
43
+ throw new errors_1.CliError("INVALID_DECLARATION_DSL", `Invalid declaration DSL at line ${lineNumber}: ${trimmed}`, {
44
+ line: lineNumber,
45
+ expected: "@scope <dir>, @files <file>..., remove <selector>..., or addMissing [selector]..."
46
+ });
47
+ }
48
+ if (!state.scope && (!state.files || state.files.length === 0)) {
49
+ throw new errors_1.CliError("DECLARATION_TARGET_REQUIRED", "declaration DSL expects @scope <dir> or @files <file> ...");
50
+ }
51
+ if (!state.operation) {
52
+ throw new errors_1.CliError("DECLARATION_OPERATION_REQUIRED", "declaration DSL expects remove or addMissing.");
53
+ }
54
+ if (expectedOperation && state.operation !== expectedOperation) {
55
+ throw new errors_1.CliError("DECLARATION_OPERATION_MISMATCH", `DSL operation is ${state.operation}, but command expects ${expectedOperation}.`);
56
+ }
57
+ if (state.operation === "remove" && state.selectors.length === 0) {
58
+ throw new errors_1.CliError("DECLARATION_REMOVE_SELECTORS_REQUIRED", "declaration remove expects at least one selector.");
59
+ }
60
+ return compactObject({
61
+ operation: state.operation,
62
+ scope: state.scope,
63
+ files: state.files,
64
+ selectors: state.selectors,
65
+ exclude: state.exclude.length > 0 ? state.exclude : undefined,
66
+ prefer: state.prefer.length > 0 ? state.prefer : undefined,
67
+ details: state.details === true ? true : undefined
68
+ });
69
+ }
70
+ function readScopeDirective(line, lineNumber, state) {
71
+ const tokens = tokenize(line.slice("@scope".length).trim(), lineNumber);
72
+ const values = [];
73
+ for (const token of tokens) {
74
+ if (readDetailsFlag(token, state)) {
75
+ continue;
76
+ }
77
+ values.push(token);
78
+ }
79
+ if (values.length !== 1) {
80
+ throw new errors_1.CliError("INVALID_DECLARATION_DSL", `@scope expects one path at line ${lineNumber}.`, { line: lineNumber });
81
+ }
82
+ return values[0];
83
+ }
84
+ function readFilesDirective(line, lineNumber, state) {
85
+ const files = [];
86
+ for (const token of tokenize(line.slice("@files".length).trim(), lineNumber)) {
87
+ if (readDetailsFlag(token, state)) {
88
+ continue;
89
+ }
90
+ files.push(token);
91
+ }
92
+ return files;
93
+ }
94
+ function parseOperationLine(state, operation, body, lineNumber) {
95
+ if (state.operation) {
96
+ throw new errors_1.CliError("DECLARATION_OPERATION_DUPLICATE", `Only one declaration operation is supported at line ${lineNumber}.`, { line: lineNumber });
97
+ }
98
+ state.operation = operation;
99
+ const selectors = [];
100
+ for (const token of body ? tokenize(body, lineNumber) : []) {
101
+ if (readDetailsFlag(token, state)) {
102
+ continue;
103
+ }
104
+ const assignment = parseAssignment(token);
105
+ if (!assignment) {
106
+ selectors.push(token);
107
+ continue;
108
+ }
109
+ if (assignment.key === "entities" || assignment.key === "selectors") {
110
+ selectors.push(...parseListValue(assignment.value));
111
+ continue;
112
+ }
113
+ if (assignment.key === "exclude") {
114
+ state.exclude.push(...parseListValue(assignment.value));
115
+ continue;
116
+ }
117
+ if (assignment.key === "prefer") {
118
+ state.prefer.push(...parseListValue(assignment.value));
119
+ continue;
120
+ }
121
+ throw new errors_1.CliError("INVALID_DECLARATION_DSL_FIELD", `Unknown declaration DSL field at line ${lineNumber}: ${assignment.key}`, { line: lineNumber });
122
+ }
123
+ state.selectors.push(...dedupe(selectors));
124
+ }
125
+ function readDetailsFlag(token, state) {
126
+ if (token !== "+details" && token !== "+detail") {
127
+ return false;
128
+ }
129
+ state.details = true;
130
+ return true;
131
+ }
132
+ function readDirectiveValue(line, directive, lineNumber) {
133
+ const value = line.slice(directive.length).trim();
134
+ if (!value) {
135
+ throw new errors_1.CliError("INVALID_DECLARATION_DSL", `${directive} expects a value at line ${lineNumber}.`, { line: lineNumber });
136
+ }
137
+ return value;
138
+ }
139
+ function parseAssignment(token) {
140
+ const index = token.indexOf("=");
141
+ if (index <= 0) {
142
+ return null;
143
+ }
144
+ return {
145
+ key: token.slice(0, index),
146
+ value: token.slice(index + 1)
147
+ };
148
+ }
149
+ function parseListValue(value) {
150
+ const trimmed = value.trim();
151
+ if (!trimmed) {
152
+ return [];
153
+ }
154
+ if (!trimmed.startsWith("[") || !trimmed.endsWith("]")) {
155
+ return [unquote(trimmed)];
156
+ }
157
+ const body = trimmed.slice(1, -1);
158
+ const items = [];
159
+ let current = "";
160
+ let quote = null;
161
+ for (let index = 0; index < body.length; index += 1) {
162
+ const char = body[index];
163
+ if (quote) {
164
+ if (char === quote) {
165
+ quote = null;
166
+ }
167
+ else {
168
+ current += char;
169
+ }
170
+ continue;
171
+ }
172
+ if (char === "'" || char === "\"") {
173
+ quote = char;
174
+ continue;
175
+ }
176
+ if (char === ",") {
177
+ const item = current.trim();
178
+ if (item) {
179
+ items.push(unquote(item));
180
+ }
181
+ current = "";
182
+ continue;
183
+ }
184
+ current += char;
185
+ }
186
+ const last = current.trim();
187
+ if (last) {
188
+ items.push(unquote(last));
189
+ }
190
+ return items;
191
+ }
192
+ function tokenize(input, lineNumber) {
193
+ const tokens = [];
194
+ let current = "";
195
+ let quote = null;
196
+ let bracketDepth = 0;
197
+ for (let index = 0; index < input.length; index += 1) {
198
+ const char = input[index];
199
+ if (quote) {
200
+ if (char === quote) {
201
+ quote = null;
202
+ }
203
+ else {
204
+ current += char;
205
+ }
206
+ continue;
207
+ }
208
+ if (char === "'" || char === "\"") {
209
+ quote = char;
210
+ continue;
211
+ }
212
+ if (char === "[") {
213
+ bracketDepth += 1;
214
+ current += char;
215
+ continue;
216
+ }
217
+ if (char === "]") {
218
+ bracketDepth = Math.max(0, bracketDepth - 1);
219
+ current += char;
220
+ continue;
221
+ }
222
+ if (/\s/.test(char) && bracketDepth === 0) {
223
+ if (current) {
224
+ tokens.push(current);
225
+ current = "";
226
+ }
227
+ continue;
228
+ }
229
+ current += char;
230
+ }
231
+ if (quote) {
232
+ throw new errors_1.CliError("INVALID_DECLARATION_DSL", `Unterminated quote at line ${lineNumber}.`, { line: lineNumber });
233
+ }
234
+ if (bracketDepth !== 0) {
235
+ throw new errors_1.CliError("INVALID_DECLARATION_DSL", `Unterminated list at line ${lineNumber}.`, { line: lineNumber });
236
+ }
237
+ if (current) {
238
+ tokens.push(current);
239
+ }
240
+ return tokens;
241
+ }
242
+ function stripComment(line) {
243
+ const index = line.indexOf("#");
244
+ return index >= 0 ? line.slice(0, index) : line;
245
+ }
246
+ function unquote(value) {
247
+ const trimmed = value.trim();
248
+ if ((trimmed.startsWith("\"") && trimmed.endsWith("\"")) || (trimmed.startsWith("'") && trimmed.endsWith("'"))) {
249
+ return trimmed.slice(1, -1);
250
+ }
251
+ return trimmed;
252
+ }
253
+ function dedupe(values) {
254
+ return [...new Set(values.filter((value) => value.trim() !== ""))];
255
+ }
256
+ function compactObject(input) {
257
+ const output = {};
258
+ for (const [key, value] of Object.entries(input)) {
259
+ if (value !== undefined) {
260
+ output[key] = value;
261
+ }
262
+ }
263
+ return output;
264
+ }
@@ -1 +1,123 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compileFileMoveToDirDsl=E;const s=require("../shared/errors");function E(n){let t=null;const i=[];let e=null;const l=n.split(/\r?\n/);for(let r=0;r<l.length;r+=1){const o=r+1,f=l[r]??"",c=I(f).trim();if(c){if(c.startsWith("@base ")){t=u(c,"@base",o),e=null;continue}if(c.startsWith("moveToDir ")){const a=_(c,o);i.push(a),e=a;continue}if(f.match(/^\s+/)&&e){e.files.push(...D(c,o));continue}throw new s.CliError("INVALID_FILE_MOVE_DSL",`Invalid file move DSL at line ${o}: ${c}`,{line:o,expected:"@base <dir> or moveToDir <targetDir>: <file> ..."})}}if(!t)throw new s.CliError("FILE_MOVE_BASE_REQUIRED","file move toDir DSL expects @base <dir>.");if(i.length===0)throw new s.CliError("FILE_MOVE_ROWS_REQUIRED","file move toDir DSL expects at least one moveToDir row.");for(const[r,o]of i.entries())if(o.files.length===0)throw new s.CliError("FILE_MOVE_FILES_REQUIRED",`moveToDir row ${r+1} expects at least one file.`);return{base:t,moves:i}}function u(n,t,i){const e=n.slice(t.length).trim();if(!e)throw new s.CliError("INVALID_FILE_MOVE_DSL",`${t} expects a value at line ${i}.`,{line:i});return e}function _(n,t){const i=n.slice(9).trim(),e=i.indexOf(":");if(e<0)throw new s.CliError("INVALID_FILE_MOVE_DSL",`moveToDir expects ':' at line ${t}.`,{line:t});const l=i.slice(0,e).trim();if(!l)throw new s.CliError("INVALID_FILE_MOVE_DSL",`moveToDir expects a target directory at line ${t}.`,{line:t});const r=i.slice(e+1).trim();return{targetDir:l,files:r?D(r,t):[]}}function I(n){const t=n.indexOf("#");return t>=0?n.slice(0,t):n}function D(n,t){const i=[];let e="",l=null;for(let r=0;r<n.length;r+=1){const o=n[r];if(l){o===l?l=null:e+=o;continue}if(o==="'"||o==='"'){l=o;continue}if(/\s/.test(o)){e&&(i.push(e),e="");continue}e+=o}if(l)throw new s.CliError("INVALID_FILE_MOVE_DSL",`Unterminated quote at line ${t}.`,{line:t});return e&&i.push(e),i}
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compileFileMoveToDirDsl = compileFileMoveToDirDsl;
4
+ const errors_1 = require("../shared/errors");
5
+ function compileFileMoveToDirDsl(source) {
6
+ let base = null;
7
+ const moves = [];
8
+ let activeMove = null;
9
+ const lines = source.split(/\r?\n/);
10
+ for (let index = 0; index < lines.length; index += 1) {
11
+ const lineNumber = index + 1;
12
+ const rawLine = lines[index] ?? "";
13
+ const trimmed = stripComment(rawLine).trim();
14
+ if (!trimmed) {
15
+ continue;
16
+ }
17
+ if (trimmed.startsWith("@base ")) {
18
+ base = readDirectiveValue(trimmed, "@base", lineNumber);
19
+ activeMove = null;
20
+ continue;
21
+ }
22
+ if (trimmed.startsWith("moveToDir ")) {
23
+ const move = parseMoveToDirLine(trimmed, lineNumber);
24
+ moves.push(move);
25
+ activeMove = move;
26
+ continue;
27
+ }
28
+ if (rawLine.match(/^\s+/) && activeMove) {
29
+ activeMove.files.push(...tokenize(trimmed, lineNumber));
30
+ continue;
31
+ }
32
+ throw new errors_1.CliError("INVALID_FILE_MOVE_DSL", `Invalid file move DSL at line ${lineNumber}: ${trimmed}`, {
33
+ line: lineNumber,
34
+ expected: "@base <dir> or moveToDir <targetDir>: <file> ..."
35
+ });
36
+ }
37
+ if (!base) {
38
+ throw new errors_1.CliError("FILE_MOVE_BASE_REQUIRED", "file move toDir DSL expects @base <dir>.");
39
+ }
40
+ if (moves.length === 0) {
41
+ throw new errors_1.CliError("FILE_MOVE_ROWS_REQUIRED", "file move toDir DSL expects at least one moveToDir row.");
42
+ }
43
+ for (const [index, move] of moves.entries()) {
44
+ if (move.files.length === 0) {
45
+ throw new errors_1.CliError("FILE_MOVE_FILES_REQUIRED", `moveToDir row ${index + 1} expects at least one file.`);
46
+ }
47
+ }
48
+ return {
49
+ base,
50
+ moves
51
+ };
52
+ }
53
+ function readDirectiveValue(line, directive, lineNumber) {
54
+ const value = line.slice(directive.length).trim();
55
+ if (!value) {
56
+ throw new errors_1.CliError("INVALID_FILE_MOVE_DSL", `${directive} expects a value at line ${lineNumber}.`, {
57
+ line: lineNumber
58
+ });
59
+ }
60
+ return value;
61
+ }
62
+ function parseMoveToDirLine(line, lineNumber) {
63
+ const body = line.slice("moveToDir".length).trim();
64
+ const colonIndex = body.indexOf(":");
65
+ if (colonIndex < 0) {
66
+ throw new errors_1.CliError("INVALID_FILE_MOVE_DSL", `moveToDir expects ':' at line ${lineNumber}.`, {
67
+ line: lineNumber
68
+ });
69
+ }
70
+ const targetDir = body.slice(0, colonIndex).trim();
71
+ if (!targetDir) {
72
+ throw new errors_1.CliError("INVALID_FILE_MOVE_DSL", `moveToDir expects a target directory at line ${lineNumber}.`, {
73
+ line: lineNumber
74
+ });
75
+ }
76
+ const rest = body.slice(colonIndex + 1).trim();
77
+ return {
78
+ targetDir,
79
+ files: rest ? tokenize(rest, lineNumber) : []
80
+ };
81
+ }
82
+ function stripComment(line) {
83
+ const index = line.indexOf("#");
84
+ return index >= 0 ? line.slice(0, index) : line;
85
+ }
86
+ function tokenize(input, lineNumber) {
87
+ const tokens = [];
88
+ let current = "";
89
+ let quote = null;
90
+ for (let index = 0; index < input.length; index += 1) {
91
+ const char = input[index];
92
+ if (quote) {
93
+ if (char === quote) {
94
+ quote = null;
95
+ }
96
+ else {
97
+ current += char;
98
+ }
99
+ continue;
100
+ }
101
+ if (char === "'" || char === "\"") {
102
+ quote = char;
103
+ continue;
104
+ }
105
+ if (/\s/.test(char)) {
106
+ if (current) {
107
+ tokens.push(current);
108
+ current = "";
109
+ }
110
+ continue;
111
+ }
112
+ current += char;
113
+ }
114
+ if (quote) {
115
+ throw new errors_1.CliError("INVALID_FILE_MOVE_DSL", `Unterminated quote at line ${lineNumber}.`, {
116
+ line: lineNumber
117
+ });
118
+ }
119
+ if (current) {
120
+ tokens.push(current);
121
+ }
122
+ return tokens;
123
+ }
@@ -1 +1,203 @@
1
- "use strict";var E=exports&&exports.__createBinding||(Object.create?(function(r,e,n,t){t===void 0&&(t=n);var i=Object.getOwnPropertyDescriptor(e,n);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(r,t,i)}):(function(r,e,n,t){t===void 0&&(t=n),r[t]=e[n]})),p=exports&&exports.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),L=exports&&exports.__importStar||(function(){var r=function(e){return r=Object.getOwnPropertyNames||function(n){var t=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[t.length]=i);return t},r(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var t=r(e),i=0;i<t.length;i++)t[i]!=="default"&&E(n,e,t[i]);return p(n,e),n}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.compileFileRefactorBatchDsl=R;const c=L(require("node:path")),a=require("../shared/errors");function R(r){let e=null;const n=[],t=r.split(/\r?\n/);for(let i=0;i<t.length;i+=1){const o=i+1,s=t[i]??"",l=v(s).trim();if(l){if(l.startsWith("@base ")){e=A(l,"@base",o);continue}if(!e)throw new a.CliError("FILE_REFACTOR_BATCH_BASE_REQUIRED",`file refactor batch DSL expects @base before line ${o}.`,{line:o});if(l.startsWith("moveToDir ")){const u=C(l,o);for(const _ of u.files){const f=h(e,_),D=h(e,u.targetDir);n.push({kind:"fileMoveToDir",sourceFile:f,targetDir:D,targetFile:c.normalize(c.join(D,c.basename(f)))})}continue}if(l.startsWith("rename ")){for(const u of g(l,o)){const _=h(e,u.source),f=m(e,_,u.target);n.push({kind:"fileRename",sourceFile:_,targetDir:c.dirname(f),targetFile:f})}continue}throw new a.CliError("INVALID_FILE_REFACTOR_BATCH_DSL",`Invalid file refactor batch DSL at line ${o}: ${l}`,{line:o,expected:"@base <dir>, moveToDir <targetDir>: <file> ..., or rename <source>-><target>"})}}if(n.length===0)throw new a.CliError("FILE_REFACTOR_BATCH_ROWS_REQUIRED","file refactor batch DSL expects at least one operation.");return{operations:n}}function A(r,e,n){const t=r.slice(e.length).trim();if(!t)throw new a.CliError("INVALID_FILE_REFACTOR_BATCH_DSL",`${e} expects a value at line ${n}.`,{line:n});return t}function C(r,e){const n=r.slice(9).trim(),t=n.indexOf(":");if(t<0)throw new a.CliError("INVALID_FILE_REFACTOR_BATCH_DSL",`moveToDir expects ':' at line ${e}.`,{line:e});const i=n.slice(0,t).trim(),o=n.slice(t+1).trim();if(!i||!o)throw new a.CliError("INVALID_FILE_REFACTOR_BATCH_DSL",`moveToDir expects a target directory and at least one file at line ${e}.`,{line:e});return{targetDir:i,files:d(o,e)}}function g(r,e){const n=r.slice(6).trim(),t=d(n,e),i=[];for(let o=0;o<t.length;o+=1){const s=t[o];if(t[o+1]!=="->"||!t[o+2])throw new a.CliError("INVALID_FILE_REFACTOR_BATCH_DSL",`rename expects <source>-><target> at line ${e}.`,{line:e});i.push({source:s,target:t[o+2]}),o+=2}return i}function h(r,e){return c.normalize(c.isAbsolute(e)?e:c.join(r,e))}function m(r,e,n){return c.isAbsolute(n)?c.normalize(n):n.includes("/")||n.includes("\\")?c.normalize(c.join(r,n)):c.normalize(c.join(c.dirname(e),n))}function v(r){const e=r.indexOf("#");return e>=0?r.slice(0,e):r}function d(r,e){const n=[];let t="",i=null;for(let o=0;o<r.length;o+=1){const s=r[o];if(i){s===i?i=null:t+=s;continue}if(s==="'"||s==='"'){i=s;continue}if(/\s/.test(s)){t&&(n.push(t),t="");continue}if(s==="-"&&r[o+1]===">"){t&&(n.push(t),t=""),n.push("->"),o+=1;continue}t+=s}if(i)throw new a.CliError("INVALID_FILE_REFACTOR_BATCH_DSL",`Unterminated quote at line ${e}.`,{line:e});return t&&n.push(t),n}
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.compileFileRefactorBatchDsl = compileFileRefactorBatchDsl;
37
+ const path = __importStar(require("node:path"));
38
+ const errors_1 = require("../shared/errors");
39
+ function compileFileRefactorBatchDsl(source) {
40
+ let base = null;
41
+ const operations = [];
42
+ const lines = source.split(/\r?\n/);
43
+ for (let index = 0; index < lines.length; index += 1) {
44
+ const lineNumber = index + 1;
45
+ const rawLine = lines[index] ?? "";
46
+ const trimmed = stripComment(rawLine).trim();
47
+ if (!trimmed) {
48
+ continue;
49
+ }
50
+ if (trimmed.startsWith("@base ")) {
51
+ base = readDirectiveValue(trimmed, "@base", lineNumber);
52
+ continue;
53
+ }
54
+ if (!base) {
55
+ throw new errors_1.CliError("FILE_REFACTOR_BATCH_BASE_REQUIRED", `file refactor batch DSL expects @base before line ${lineNumber}.`, {
56
+ line: lineNumber
57
+ });
58
+ }
59
+ if (trimmed.startsWith("moveToDir ")) {
60
+ const move = parseMoveToDirLine(trimmed, lineNumber);
61
+ for (const file of move.files) {
62
+ const sourceFile = resolveDslPath(base, file);
63
+ const targetDir = resolveDslPath(base, move.targetDir);
64
+ operations.push({
65
+ kind: "fileMoveToDir",
66
+ sourceFile,
67
+ targetDir,
68
+ targetFile: path.normalize(path.join(targetDir, path.basename(sourceFile)))
69
+ });
70
+ }
71
+ continue;
72
+ }
73
+ if (trimmed.startsWith("rename ")) {
74
+ for (const pair of parseRenameLine(trimmed, lineNumber)) {
75
+ const sourceFile = resolveDslPath(base, pair.source);
76
+ const targetFile = resolveRenameTarget(base, sourceFile, pair.target);
77
+ operations.push({
78
+ kind: "fileRename",
79
+ sourceFile,
80
+ targetDir: path.dirname(targetFile),
81
+ targetFile
82
+ });
83
+ }
84
+ continue;
85
+ }
86
+ throw new errors_1.CliError("INVALID_FILE_REFACTOR_BATCH_DSL", `Invalid file refactor batch DSL at line ${lineNumber}: ${trimmed}`, {
87
+ line: lineNumber,
88
+ expected: "@base <dir>, moveToDir <targetDir>: <file> ..., or rename <source>-><target>"
89
+ });
90
+ }
91
+ if (operations.length === 0) {
92
+ throw new errors_1.CliError("FILE_REFACTOR_BATCH_ROWS_REQUIRED", "file refactor batch DSL expects at least one operation.");
93
+ }
94
+ return { operations };
95
+ }
96
+ function readDirectiveValue(line, directive, lineNumber) {
97
+ const value = line.slice(directive.length).trim();
98
+ if (!value) {
99
+ throw new errors_1.CliError("INVALID_FILE_REFACTOR_BATCH_DSL", `${directive} expects a value at line ${lineNumber}.`, {
100
+ line: lineNumber
101
+ });
102
+ }
103
+ return value;
104
+ }
105
+ function parseMoveToDirLine(line, lineNumber) {
106
+ const body = line.slice("moveToDir".length).trim();
107
+ const colonIndex = body.indexOf(":");
108
+ if (colonIndex < 0) {
109
+ throw new errors_1.CliError("INVALID_FILE_REFACTOR_BATCH_DSL", `moveToDir expects ':' at line ${lineNumber}.`, {
110
+ line: lineNumber
111
+ });
112
+ }
113
+ const targetDir = body.slice(0, colonIndex).trim();
114
+ const rest = body.slice(colonIndex + 1).trim();
115
+ if (!targetDir || !rest) {
116
+ throw new errors_1.CliError("INVALID_FILE_REFACTOR_BATCH_DSL", `moveToDir expects a target directory and at least one file at line ${lineNumber}.`, {
117
+ line: lineNumber
118
+ });
119
+ }
120
+ return {
121
+ targetDir,
122
+ files: tokenize(rest, lineNumber)
123
+ };
124
+ }
125
+ function parseRenameLine(line, lineNumber) {
126
+ const body = line.slice("rename".length).trim();
127
+ const tokens = tokenize(body, lineNumber);
128
+ const pairs = [];
129
+ for (let index = 0; index < tokens.length; index += 1) {
130
+ const source = tokens[index];
131
+ if (tokens[index + 1] !== "->" || !tokens[index + 2]) {
132
+ throw new errors_1.CliError("INVALID_FILE_REFACTOR_BATCH_DSL", `rename expects <source>-><target> at line ${lineNumber}.`, {
133
+ line: lineNumber
134
+ });
135
+ }
136
+ pairs.push({ source, target: tokens[index + 2] });
137
+ index += 2;
138
+ }
139
+ return pairs;
140
+ }
141
+ function resolveDslPath(base, filePath) {
142
+ return path.normalize(path.isAbsolute(filePath) ? filePath : path.join(base, filePath));
143
+ }
144
+ function resolveRenameTarget(base, sourceFile, target) {
145
+ if (path.isAbsolute(target)) {
146
+ return path.normalize(target);
147
+ }
148
+ if (target.includes("/") || target.includes("\\")) {
149
+ return path.normalize(path.join(base, target));
150
+ }
151
+ return path.normalize(path.join(path.dirname(sourceFile), target));
152
+ }
153
+ function stripComment(line) {
154
+ const index = line.indexOf("#");
155
+ return index >= 0 ? line.slice(0, index) : line;
156
+ }
157
+ function tokenize(input, lineNumber) {
158
+ const tokens = [];
159
+ let current = "";
160
+ let quote = null;
161
+ for (let index = 0; index < input.length; index += 1) {
162
+ const char = input[index];
163
+ if (quote) {
164
+ if (char === quote) {
165
+ quote = null;
166
+ }
167
+ else {
168
+ current += char;
169
+ }
170
+ continue;
171
+ }
172
+ if (char === "'" || char === "\"") {
173
+ quote = char;
174
+ continue;
175
+ }
176
+ if (/\s/.test(char)) {
177
+ if (current) {
178
+ tokens.push(current);
179
+ current = "";
180
+ }
181
+ continue;
182
+ }
183
+ if (char === "-" && input[index + 1] === ">") {
184
+ if (current) {
185
+ tokens.push(current);
186
+ current = "";
187
+ }
188
+ tokens.push("->");
189
+ index += 1;
190
+ continue;
191
+ }
192
+ current += char;
193
+ }
194
+ if (quote) {
195
+ throw new errors_1.CliError("INVALID_FILE_REFACTOR_BATCH_DSL", `Unterminated quote at line ${lineNumber}.`, {
196
+ line: lineNumber
197
+ });
198
+ }
199
+ if (current) {
200
+ tokens.push(current);
201
+ }
202
+ return tokens;
203
+ }