@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.
- package/README.md +21 -578
- package/config/agent-dx-policy.default.json +31 -0
- package/config/control-plane-client.default.json +3 -0
- package/dist/agent-dx/agent-dx.js +805 -0
- package/dist/agent-dx/presentation.js +32 -0
- package/dist/alias-advisor/analyze.js +982 -0
- package/dist/alias-advisor/exact-text-cost.js +74 -0
- package/dist/alias-advisor/lexical.js +240 -0
- package/dist/alias-advisor/model.js +2 -0
- package/dist/alias-advisor/path-identity.js +49 -0
- package/dist/alias-advisor/ranking.js +171 -0
- package/dist/alias-advisor/token-estimator.js +85 -0
- package/dist/bin/aib.js +5 -1
- package/dist/bin/cli.js +811 -4
- package/dist/commands/add-missing-imports-preview-cache.js +99 -2
- package/dist/commands/add-missing-imports.js +241 -2
- package/dist/commands/apply-module-plan.js +1319 -3
- package/dist/commands/background-command.js +378 -2
- package/dist/commands/captured-input.js +74 -1
- package/dist/commands/config-command.js +314 -2
- package/dist/commands/config-output.js +357 -10
- package/dist/commands/control-plane-command.js +183 -1
- package/dist/commands/declaration-command.js +1209 -7
- package/dist/commands/declaration-execution-cache.js +79 -1
- package/dist/commands/declaration-format.js +221 -1
- package/dist/commands/declaration-preview-cache.js +114 -2
- package/dist/commands/diagnostics-command.js +70 -3
- package/dist/commands/doctor.js +137 -3
- package/dist/commands/execution-command.js +117 -1
- package/dist/commands/exports-star-collapse-command.js +178 -0
- package/dist/commands/exports-star-command.js +252 -0
- package/dist/commands/exports-star-preview-cache.js +84 -0
- package/dist/commands/feedback-command.js +176 -3
- package/dist/commands/file-move-to-dir-execution-cache.js +92 -1
- package/dist/commands/file-move-to-dir-preview-cache.js +125 -2
- package/dist/commands/file-move-to-dir-worker.js +54 -0
- package/dist/commands/file-move-to-dir.js +1073 -5
- package/dist/commands/file-mutation-runtime.js +102 -1
- package/dist/commands/file-mutation-worker-apply.js +180 -0
- package/dist/commands/file-refactor-batch-execution-cache.js +90 -1
- package/dist/commands/file-refactor-batch-preview-cache.js +125 -2
- package/dist/commands/file-refactor-batch-worker.js +54 -0
- package/dist/commands/file-refactor-batch.js +1154 -5
- package/dist/commands/file-rename-execution-cache.js +92 -1
- package/dist/commands/file-rename-preview-cache.js +125 -2
- package/dist/commands/file-rename-worker.js +54 -0
- package/dist/commands/file-rename.js +1053 -5
- package/dist/commands/file-text-edit-executor.js +205 -0
- package/dist/commands/find-importers.js +52 -1
- package/dist/commands/find-unused-imports.js +55 -1
- package/dist/commands/generate-docs-command.js +244 -6
- package/dist/commands/help-command.js +460 -7
- package/dist/commands/import-specifier-policy.js +391 -0
- package/dist/commands/imports-command.js +68 -1
- package/dist/commands/imports-rebase.js +1138 -0
- package/dist/commands/init-skill-usage.js +92 -3
- package/dist/commands/init-workspace.js +30 -1
- package/dist/commands/inspect-alias-candidates.js +413 -0
- package/dist/commands/inspect-cycles.js +811 -5
- package/dist/commands/inspect-direct-usages.js +98 -0
- package/dist/commands/inspect-duplicates-format.js +229 -0
- package/dist/commands/inspect-format-primitives.js +127 -0
- package/dist/commands/inspect-format.js +1590 -18
- package/dist/commands/inspect-graph.js +1553 -9
- package/dist/commands/inspect-imports.js +339 -2
- package/dist/commands/inspect-mixed-format.js +524 -0
- package/dist/commands/inspect-module-plan-format.js +216 -0
- package/dist/commands/inspect-module-plan-serialization.js +402 -0
- package/dist/commands/inspect-reference-path-format.js +157 -0
- package/dist/commands/inspect-request-values.js +599 -0
- package/dist/commands/inspect-selector-kind.js +21 -0
- package/dist/commands/inspect-selector.js +50 -0
- package/dist/commands/inspect-symbol-format.js +90 -0
- package/dist/commands/inspect-topology.js +435 -0
- package/dist/commands/inspect-tree.js +827 -5
- package/dist/commands/inspect-usages-detail.js +793 -0
- package/dist/commands/inspect-usages-evidence.js +31 -0
- package/dist/commands/inspect-usages-format.js +367 -0
- package/dist/commands/inspect.js +1450 -16
- package/dist/commands/internal-command.js +64 -0
- package/dist/commands/json-file-input.js +60 -1
- package/dist/commands/module-plan-cache.js +156 -2
- package/dist/commands/module-plan-standalone.js +208 -0
- package/dist/commands/module-plan-timeout.js +77 -1
- package/dist/commands/move-preview-cache.js +101 -2
- package/dist/commands/mutate-aggregate-output.js +996 -0
- package/dist/commands/mutate-child-execution.js +374 -0
- package/dist/commands/mutate-command.js +1394 -0
- package/dist/commands/mutate-declaration-output.js +313 -0
- package/dist/commands/mutate-domain-adapters.js +638 -0
- package/dist/commands/mutate-execution-cache.js +114 -0
- package/dist/commands/mutate-execution-status.js +598 -0
- package/dist/commands/mutate-failure-output.js +531 -0
- package/dist/commands/mutate-file-view.js +151 -0
- package/dist/commands/mutate-object-output.js +91 -0
- package/dist/commands/mutate-output-values.js +97 -0
- package/dist/commands/mutate-preview-cache.js +86 -0
- package/dist/commands/mutate-response-replay.js +153 -0
- package/dist/commands/mutate-result-projection.js +818 -0
- package/dist/commands/mutation-eta.js +28 -0
- package/dist/commands/mutation-execution-cache.js +140 -3
- package/dist/commands/mutation-recovery-journal.js +195 -0
- package/dist/commands/normalize-imports.js +1120 -4
- package/dist/commands/object-pack-command.js +546 -0
- package/dist/commands/object-pack-preview-cache.js +88 -0
- package/dist/commands/observability-command.js +47 -3
- package/dist/commands/ota-command.js +403 -2
- package/dist/commands/print-config.js +10 -1
- package/dist/commands/quick-read.js +1113 -11
- package/dist/commands/refactor-batch-builder.js +265 -1
- package/dist/commands/refactor-batch-execution-cache.js +85 -1
- package/dist/commands/refactor-batch-preview-cache.js +96 -2
- package/dist/commands/refactor-batch.js +461 -4
- package/dist/commands/rename-entities.js +794 -4
- package/dist/commands/rename-execution-cache.js +49 -1
- package/dist/commands/rename-input.js +22 -1
- package/dist/commands/rename-polling-policy.js +68 -0
- package/dist/commands/rename-preview-cache.js +96 -2
- package/dist/commands/result-view.js +993 -7
- package/dist/commands/reveal-command.js +445 -5
- package/dist/commands/selector-suggestions.js +93 -0
- package/dist/commands/session-workspace.js +1836 -31
- package/dist/commands/shared.js +2 -1
- package/dist/commands/skills-command.js +315 -0
- package/dist/commands/sync-command.js +59 -2
- package/dist/commands/worker-command.js +173 -1
- package/dist/commands/workspace-cache.js +55 -1
- package/dist/config/defaults.js +26 -1
- package/dist/config/env-vars.js +77 -1
- package/dist/config/glob-match.js +44 -1
- package/dist/config/import-rules.js +165 -1
- package/dist/config/local-config.js +293 -3
- package/dist/config/mutation-comments.js +51 -1
- package/dist/config/path-aliases.js +165 -1
- package/dist/config/path-display.js +84 -1
- package/dist/config/product-storage.js +37 -1
- package/dist/config/request-env.js +21 -0
- package/dist/config/request-routing-context.js +23 -0
- package/dist/config/resolve-command-alias.js +74 -1
- package/dist/config/resolve.js +24 -1
- package/dist/config/tsconfig-discovery.js +113 -1
- package/dist/config/typescript-preferences.js +131 -0
- package/dist/config/workspace-root.js +310 -3
- package/dist/config/workspace-state.js +254 -1
- package/dist/content/content-bundle.js +88 -1
- package/dist/diagnostics/module-plan-timeline.js +75 -2
- package/dist/diagnostics/readiness-text.js +45 -8
- package/dist/dsl/aib-dsl.js +838 -1
- package/dist/dsl/declaration-dsl.js +264 -1
- package/dist/dsl/file-move-to-dir-dsl.js +123 -1
- package/dist/dsl/file-refactor-batch-dsl.js +203 -1
- package/dist/dsl/file-rename-dsl.js +135 -1
- package/dist/dsl/mutate-dsl.js +746 -0
- package/dist/help/bootstrap.bash.md +176 -341
- package/dist/help/bootstrap.md +175 -340
- package/dist/help/bootstrap.pwsh.md +176 -341
- package/dist/help/docs/basics.md +1 -1
- package/dist/help/docs/config-setup.import-normalize.md +65 -65
- package/dist/help/docs/config-setup.import-rules.md +6 -5
- package/dist/help/docs/first-setup.md +6 -5
- package/dist/help/docs/help-protocol.md +4 -3
- package/dist/help/docs/import.base.md +38 -0
- package/dist/help/docs/import.rebase.md +85 -0
- package/dist/help/docs/inspect.aliasCandidates.md +39 -0
- package/dist/help/docs/inspect.code.md +1 -7
- package/dist/help/docs/inspect.file.md +10 -19
- package/dist/help/docs/inspect.graph.md +3 -17
- package/dist/help/{dsl/docs/inspect.md → docs/inspect.shared.md} +13 -12
- package/dist/help/docs/modulePlan.md +24 -28
- package/dist/help/docs/move.md +19 -22
- package/dist/help/{dsl/topics/file.move.md → docs/moveToDir.md} +36 -34
- package/dist/help/docs/mutate.mixed.md +34 -0
- package/dist/help/docs/mutation.shared.md +55 -0
- package/dist/help/docs/patterns.md +3 -12
- package/dist/help/docs/qr.md +12 -6
- package/dist/help/docs/quick-map.md +36 -24
- package/dist/help/docs/recipe.file-layout.md +10 -10
- package/dist/help/docs/recipe.import-boundary.md +92 -0
- package/dist/help/docs/recipe.safe-artifact-probing.md +68 -0
- package/dist/help/docs/recipe.unfamiliar-area.md +64 -0
- package/dist/help/docs/recipes.md +20 -0
- package/dist/help/docs/rename.md +19 -27
- package/dist/help/docs/renameFile.md +36 -0
- package/dist/help/docs/rules.md +26 -0
- package/dist/help/dsl/bootstrap.bash.md +176 -341
- package/dist/help/dsl/bootstrap.md +175 -340
- package/dist/help/dsl/bootstrap.pwsh.md +176 -341
- package/dist/help/dsl/docs/basics.md +1 -1
- package/dist/help/dsl/docs/config-setup.import-normalize.md +65 -65
- package/dist/help/dsl/docs/config-setup.import-rules.md +6 -5
- package/dist/help/dsl/docs/first-setup.md +6 -5
- package/dist/help/dsl/docs/help-protocol.md +4 -3
- package/dist/help/dsl/docs/import.base.md +38 -0
- package/dist/help/dsl/docs/import.rebase.md +85 -0
- package/dist/help/dsl/docs/inspect.aliasCandidates.md +39 -0
- package/dist/help/dsl/docs/inspect.code.md +1 -7
- package/dist/help/dsl/docs/inspect.file.md +10 -19
- package/dist/help/dsl/docs/inspect.graph.md +3 -17
- package/dist/help/{docs/inspect.md → dsl/docs/inspect.shared.md} +13 -12
- package/dist/help/dsl/docs/modulePlan.md +24 -28
- package/dist/help/dsl/docs/move.md +19 -22
- package/dist/help/{topics/file.move.md → dsl/docs/moveToDir.md} +36 -34
- package/dist/help/dsl/docs/mutate.mixed.md +34 -0
- package/dist/help/dsl/docs/mutation.shared.md +55 -0
- package/dist/help/dsl/docs/patterns.md +3 -12
- package/dist/help/dsl/docs/qr.md +12 -6
- package/dist/help/dsl/docs/quick-map.md +36 -24
- package/dist/help/dsl/docs/recipe.file-layout.md +10 -10
- package/dist/help/dsl/docs/recipe.import-boundary.md +92 -0
- package/dist/help/dsl/docs/recipe.safe-artifact-probing.md +68 -0
- package/dist/help/dsl/docs/recipe.unfamiliar-area.md +64 -0
- package/dist/help/dsl/docs/recipes.md +20 -0
- package/dist/help/dsl/docs/rename.md +19 -27
- package/dist/help/dsl/docs/renameFile.md +36 -0
- package/dist/help/dsl/docs/rules.md +26 -0
- package/dist/help/dsl/full.md +175 -340
- package/dist/help/dsl/help-index.md +48 -43
- package/dist/help/dsl/snippets/agents.md +2 -2
- package/dist/help/dsl/tokens/qr.inline.examples.md +1 -1
- package/dist/help/dsl/topics/basics.md +1 -1
- package/dist/help/dsl/topics/config-setup.import-normalize.md +65 -65
- package/dist/help/dsl/topics/config-setup.import-rules.md +6 -5
- package/dist/help/dsl/topics/first-setup.md +6 -5
- package/dist/help/dsl/topics/help-protocol.md +4 -3
- package/dist/help/dsl/topics/import.base.md +36 -0
- package/dist/help/dsl/topics/import.rebase.md +83 -0
- package/dist/help/dsl/topics/inspect.aliasCandidates.md +37 -0
- package/dist/help/dsl/topics/inspect.code.md +1 -7
- package/dist/help/dsl/topics/inspect.file.md +10 -19
- package/dist/help/dsl/topics/inspect.graph.md +3 -17
- package/dist/help/dsl/topics/{inspect.md → inspect.shared.md} +13 -12
- package/dist/help/dsl/topics/modulePlan.md +21 -26
- package/dist/help/dsl/topics/move.md +17 -18
- package/dist/help/{docs/file.move.md → dsl/topics/moveToDir.md} +33 -35
- package/dist/help/dsl/topics/mutate.mixed.md +32 -0
- package/dist/help/dsl/topics/mutation.shared.md +53 -0
- package/dist/help/dsl/topics/patterns.md +3 -12
- package/dist/help/dsl/topics/qr.md +12 -6
- package/dist/help/dsl/topics/quick-map.md +36 -24
- package/dist/help/dsl/topics/recipe.file-layout.md +10 -10
- package/dist/help/dsl/topics/recipe.import-boundary.md +90 -0
- package/dist/help/dsl/topics/recipe.safe-artifact-probing.md +66 -0
- package/dist/help/dsl/topics/recipe.unfamiliar-area.md +62 -0
- package/dist/help/dsl/topics/recipes.md +18 -0
- package/dist/help/dsl/topics/rename.md +15 -15
- package/dist/help/dsl/topics/renameFile.md +34 -0
- package/dist/help/dsl/topics/rules.md +24 -0
- package/dist/help/full.md +175 -340
- package/dist/help/help-index.md +48 -43
- package/dist/help/help-meta.json +98 -48
- package/dist/help/index.md +52 -20
- package/dist/help/snippets/agents.md +2 -2
- package/dist/help/tokens/qr.inline.examples.md +1 -1
- package/dist/help/topics/basics.md +1 -1
- package/dist/help/topics/config-setup.import-normalize.md +65 -65
- package/dist/help/topics/config-setup.import-rules.md +6 -5
- package/dist/help/topics/first-setup.md +6 -5
- package/dist/help/topics/help-protocol.md +4 -3
- package/dist/help/topics/import.base.md +36 -0
- package/dist/help/topics/import.rebase.md +83 -0
- package/dist/help/topics/inspect.aliasCandidates.md +37 -0
- package/dist/help/topics/inspect.code.md +1 -7
- package/dist/help/topics/inspect.file.md +10 -19
- package/dist/help/topics/inspect.graph.md +3 -17
- package/dist/help/topics/{inspect.md → inspect.shared.md} +13 -12
- package/dist/help/topics/modulePlan.md +21 -26
- package/dist/help/topics/move.md +17 -18
- package/dist/help/{dsl/docs/file.move.md → topics/moveToDir.md} +33 -35
- package/dist/help/topics/mutate.mixed.md +32 -0
- package/dist/help/topics/mutation.shared.md +53 -0
- package/dist/help/topics/patterns.md +3 -12
- package/dist/help/topics/qr.md +12 -6
- package/dist/help/topics/quick-map.md +36 -24
- package/dist/help/topics/recipe.file-layout.md +10 -10
- package/dist/help/topics/recipe.import-boundary.md +90 -0
- package/dist/help/topics/recipe.safe-artifact-probing.md +66 -0
- package/dist/help/topics/recipe.unfamiliar-area.md +62 -0
- package/dist/help/topics/recipes.md +18 -0
- package/dist/help/topics/rename.md +15 -15
- package/dist/help/topics/renameFile.md +34 -0
- package/dist/help/topics/rules.md +24 -0
- package/dist/host/capabilities.js +56 -1
- package/dist/imports/standalone-import-analysis.js +602 -0
- package/dist/imports/standalone-import-model.js +2 -0
- package/dist/imports/standalone-import-process.js +66 -0
- package/dist/imports/standalone-import-worker.js +27 -0
- package/dist/imports/standalone-ts-project.js +147 -0
- package/dist/inspect/inspect-duplicates-service.js +526 -0
- package/dist/inspect/inspect-reverse-module-closure.js +338 -0
- package/dist/inspect/inspect-source-ranges.js +82 -0
- package/dist/inspect/inspect-source-shape.js +649 -0
- package/dist/inspect/standalone-inspect-analysis.js +319 -0
- package/dist/inspect/standalone-inspect-model.js +9 -0
- package/dist/inspect/standalone-inspect-process.js +55 -0
- package/dist/inspect/standalone-inspect-usages.js +274 -0
- package/dist/inspect/standalone-inspect-worker.js +13 -0
- package/dist/metrics/central-metrics.js +101 -2
- package/dist/mutation/concrete-edit-plan.js +157 -0
- package/dist/mutation/exports-star-collapse-preview.js +361 -0
- package/dist/mutation/exports-star-expand-apply.js +373 -0
- package/dist/mutation/exports-star-expand-preview.js +807 -0
- package/dist/mutation/file-impact-scan.js +182 -0
- package/dist/mutation/file-mutation-discovery.js +674 -0
- package/dist/mutation/file-mutation-eta.js +99 -0
- package/dist/mutation/file-mutation-standalone-apply.js +584 -0
- package/dist/mutation/file-mutation-standalone-planner.js +500 -0
- package/dist/mutation/file-mutation-tsserver-session.js +473 -0
- package/dist/mutation/mutation-estimate.js +45 -0
- package/dist/mutation/mutation-plan.js +467 -0
- package/dist/mutation/object-mutation-foundation.js +2 -0
- package/dist/mutation/object-mutation-partition.js +148 -0
- package/dist/mutation/object-pack-semantic-apply.js +507 -0
- package/dist/mutation/object-pack-semantic-preview.js +984 -0
- package/dist/mutation/object-unpack-semantic-preview.js +993 -0
- package/dist/mutation/package-manifest-impact.js +176 -0
- package/dist/mutation/rename-owner-worker-child.js +37 -0
- package/dist/mutation/rename-owner-worker.js +122 -0
- package/dist/mutation/runtime-cycle-query.js +66 -0
- package/dist/mutation/semantic-execution-progress.js +63 -0
- package/dist/mutation/semantic-export-index.js +474 -0
- package/dist/mutation/semantic-impact-scan.js +434 -0
- package/dist/mutation/semantic-model.js +2 -0
- package/dist/mutation/semantic-move-best-effort-planner.js +209 -0
- package/dist/mutation/semantic-move-config-worker-child.js +61 -0
- package/dist/mutation/semantic-move-config-worker.js +449 -0
- package/dist/mutation/semantic-move-declarations.js +94 -0
- package/dist/mutation/semantic-move-metrics.js +119 -0
- package/dist/mutation/semantic-move-model.js +2 -0
- package/dist/mutation/semantic-move-owner-authority.js +122 -0
- package/dist/mutation/semantic-move-owner-candidates.js +300 -0
- package/dist/mutation/semantic-move-owner-divergence-harness.js +474 -0
- package/dist/mutation/semantic-move-owner-divergence-runner.js +162 -0
- package/dist/mutation/semantic-move-plan-hash.js +56 -0
- package/dist/mutation/semantic-move-policy.js +360 -0
- package/dist/mutation/semantic-move-process.js +218 -0
- package/dist/mutation/semantic-move-provider-diagnostics.js +27 -0
- package/dist/mutation/semantic-move-standalone-engine.js +919 -0
- package/dist/mutation/semantic-move-standalone-planner.js +1553 -0
- package/dist/mutation/semantic-move-transaction.js +639 -0
- package/dist/mutation/semantic-mutation-engine.js +478 -0
- package/dist/mutation/semantic-mutation-runtime.js +521 -0
- package/dist/mutation/semantic-planner-retry.js +26 -0
- package/dist/mutation/semantic-program-roots.js +69 -0
- package/dist/mutation/semantic-rename-commonjs.js +229 -0
- package/dist/mutation/semantic-rename-config-worker-child.js +46 -0
- package/dist/mutation/semantic-rename-config-worker.js +498 -0
- package/dist/mutation/semantic-rename-locations.js +192 -0
- package/dist/mutation/semantic-rename-model.js +2 -0
- package/dist/mutation/semantic-rename-process.js +217 -0
- package/dist/mutation/semantic-rename-standalone-engine.js +302 -0
- package/dist/mutation/semantic-rename-standalone-planner.js +567 -0
- package/dist/mutation/semantic-rename-transaction.js +333 -0
- package/dist/mutation/semantic-unused-import-cleanup.js +248 -0
- package/dist/mutation/semantic-worker-retry.js +40 -0
- package/dist/mutation/semantic-workspace.js +804 -0
- package/dist/mutation/targeted-import-canonicalizer.js +359 -0
- package/dist/observability/config.js +206 -1
- package/dist/observability/context.js +59 -1
- package/dist/observability/failure-snapshot.js +124 -2
- package/dist/observability/recent.js +63 -2
- package/dist/payloads/read-stdin-json.js +212 -1
- package/dist/rg-wrapper/core.js +714 -6
- package/dist/rg-wrapper/options.js +125 -1
- package/dist/rtk-wrapper/core.js +144 -2
- package/dist/rtk-wrapper/git-safety.js +203 -0
- package/dist/rtk-wrapper/output-adapter.js +106 -0
- package/dist/runtime/buffered-process.js +114 -0
- package/dist/runtime/bundled-node.js +97 -1
- package/dist/runtime/command-lifecycle.js +2 -0
- package/dist/runtime/input-source.js +238 -1
- package/dist/runtime/node-cli-identity.js +37 -0
- package/dist/runtime/run-command.js +191 -1
- package/dist/selectors/parse-entities.js +84 -1
- package/dist/semantic/semantic-context-pool.js +830 -0
- package/dist/semantic/semantic-context-provider.js +416 -0
- package/dist/semantic/semantic-resident-admission.js +38 -0
- package/dist/semantic/semantic-worker-child.js +40 -0
- package/dist/semantic/semantic-worker-manager.js +460 -0
- package/dist/semantic/semantic-worker-protocol.js +2 -0
- package/dist/semantic/semantic-worker-runtime.js +38 -0
- package/dist/semantic/workspace-semantic-context-pools.js +136 -0
- package/dist/session/client.js +359 -1
- package/dist/session/daemon-state.js +185 -2
- package/dist/session/external-tool-coordinator.js +88 -0
- package/dist/session/external-tool-request.js +52 -0
- package/dist/session/lane-owner.js +116 -0
- package/dist/session/paths.js +71 -1
- package/dist/session/runtime-lifecycle.js +225 -0
- package/dist/session/runtime-shutdown.js +95 -0
- package/dist/session/server.js +1194 -7
- package/dist/session/session-health.js +27 -0
- package/dist/shared/agent-text.js +29 -1
- package/dist/shared/errors.js +496 -30
- package/dist/shared/event-loop.js +6 -1
- package/dist/shared/hints.js +37 -1
- package/dist/shared/metrics.js +43 -1
- package/dist/shared/presentation.js +69 -4
- package/dist/shared/stdin-examples.js +77 -1
- package/dist/shared/stdout.js +6 -2
- package/dist/shared/types.js +23 -1
- package/dist/tool-runtime/runtime-tools.js +120 -1
- package/dist/topology/availability.js +663 -0
- package/dist/topology/cache.js +130 -0
- package/dist/topology/candidates.js +372 -0
- package/dist/topology/core.js +903 -0
- package/dist/topology/dependency-snapshot.js +189 -0
- package/dist/topology/model.js +2 -0
- package/dist/topology/scope.js +100 -0
- package/dist/topology/ts-oracle-batch.js +529 -0
- package/dist/topology/ts-oracle-host.js +69 -0
- package/dist/topology/ts-oracle-model.js +2 -0
- package/dist/topology/ts-oracle.js +224 -0
- package/dist/topology/tsconfig-loader.js +105 -0
- package/dist/topology/workspace-project-index.js +542 -0
- package/dist/tracing/config.js +192 -2
- package/dist/tracing/failure-summary.js +100 -0
- package/dist/tracing/trace.js +318 -5
- package/dist/tsc-wrapper/core.js +697 -0
- package/dist/workers/control-plane/aib-control-plane-worker.cjs +32 -32
- package/dist/workers/control-plane/client-config.default.json +3 -3
- package/dist/workers/lexical-worker-child.js +27 -0
- package/dist/workers/lexical-worker-manager.js +394 -0
- package/dist/workers/lexical-worker-protocol.js +2 -0
- package/dist/workers/lexical-worker-runtime.js +25 -0
- package/dist/workers/owned-one-shot-process.js +115 -0
- package/dist/workers/product-storage.js +23 -1
- package/dist/workers/registry.js +241 -1
- package/package.json +8 -13
- package/scripts/postinstall.cjs +29 -29
- package/scripts/provision-runtime.cjs +411 -459
- package/dist/client/http-client.js +0 -1
- package/dist/client/transport-options.js +0 -1
- package/dist/client/websocket-client.js +0 -1
- package/dist/commands/entity-resolution.js +0 -1
- package/dist/commands/file-command.js +0 -1
- package/dist/commands/host-command.js +0 -1
- package/dist/commands/inspect-symbol-query.js +0 -1
- package/dist/commands/list-instances.js +0 -1
- package/dist/commands/module-plan-command.js +0 -1
- package/dist/commands/move-command.js +0 -1
- package/dist/commands/move-to-file.js +0 -2
- package/dist/commands/ping.js +0 -1
- package/dist/commands/refactor-command.js +0 -1
- package/dist/commands/rename-command.js +0 -1
- package/dist/commands/runtime-command.js +0 -4
- package/dist/commands/runtime-info.js +0 -1
- package/dist/commands/validate-module-plan.js +0 -2
- package/dist/compatibility/policy.js +0 -1
- package/dist/config/auto-start-ide.js +0 -1
- package/dist/discovery/registry.js +0 -1
- package/dist/discovery/select-instance.js +0 -1
- package/dist/help/docs/file.rename.md +0 -35
- package/dist/help/docs/mutation.md +0 -60
- package/dist/help/docs/refactor.batch.md +0 -44
- package/dist/help/dsl/docs/file.rename.md +0 -35
- package/dist/help/dsl/docs/mutation.md +0 -60
- package/dist/help/dsl/docs/refactor.batch.md +0 -44
- package/dist/help/dsl/topics/file.rename.md +0 -33
- package/dist/help/dsl/topics/mutation.md +0 -58
- package/dist/help/dsl/topics/refactor.batch.md +0 -33
- package/dist/help/topics/file.rename.md +0 -33
- package/dist/help/topics/mutation.md +0 -58
- package/dist/help/topics/refactor.batch.md +0 -33
- package/dist/ide-launch/common.cjs +0 -162
- package/dist/managed-host/extension-vsix-resolver.js +0 -1
- package/dist/managed-host/manage-serve-web-host.cjs +0 -141
- package/dist/managed-host/serve-web-autostart.js +0 -1
- package/dist/managed-host/serve-web-host.cjs +0 -2115
- package/dist/runtime/managed-runtime-provisioning.js +0 -1
- package/dist/shared/diagnostic-catalog.js +0 -1
- package/dist/shared/diagnostics.js +0 -1
- package/dist/shared/operations.js +0 -1
- package/dist/shared/protocol.js +0 -1
- package/dist/shared/routes.js +0 -1
- package/extension/vscode-refactor-bridge-extension.vsix +0 -0
- package/runtimes/launcher/linux-x64/aib +0 -0
- package/runtimes/launcher/win-x64/aib.exe +0 -0
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
Mutation commands change code and files through TS/IDE-backed operations.
|
|
2
|
-
Successful mutations update affected references and imports.
|
|
3
|
-
|
|
4
|
-
Semantic mutations change TypeScript symbols/declarations.
|
|
5
|
-
File mutations change file layout.
|
|
6
|
-
|
|
7
|
-
After a successful mutation, do not manually patch the same imports unless aib reports a follow-up or checks show a real issue.
|
|
8
|
-
|
|
9
|
-
If mutation imports do not match the repo style, run:
|
|
10
|
-
aib help config-setup.import-rules
|
|
11
|
-
|
|
12
|
-
AIB mutations are designed to reduce manual checking.
|
|
13
|
-
Your job is to express the intent in DSL.
|
|
14
|
-
AIB's job is to convert that intent into code changes.
|
|
15
|
-
|
|
16
|
-
Choose the mutation by intent:
|
|
17
|
-
rename - rename TypeScript symbols
|
|
18
|
-
move toFile - move TypeScript declarations into one file
|
|
19
|
-
modulePlan - split one source file into several modules
|
|
20
|
-
file move toDir - move whole files into directories
|
|
21
|
-
file rename - rename whole files.
|
|
22
|
-
|
|
23
|
-
Do not read all changed files just because a mutation touched them.
|
|
24
|
-
That defeats the purpose of using AIB for mechanical refactors.
|
|
25
|
-
|
|
26
|
-
If the command succeeds, the requested mechanical change was applied.
|
|
27
|
-
After failure or partial success, use the output to decide the next request.
|
|
28
|
-
|
|
29
|
-
When running mutation commands, set the harness timeout to 3 minutes.
|
|
30
|
-
If the harness stops waiting before final output appears, recover with:
|
|
31
|
-
|
|
32
|
-
aib execution status last
|
|
33
|
-
|
|
34
|
-
Modes:
|
|
35
|
-
preview inspect planned edits, then apply by id
|
|
36
|
-
apply write a previewed change
|
|
37
|
-
execute write immediately
|
|
38
|
-
|
|
39
|
-
Use execute for routine requests.
|
|
40
|
-
|
|
41
|
-
Use preview/apply when you are learning a mutation command, or when one request contains a large multi-step change that you want to inspect before writing files.
|
|
42
|
-
Typical examples: a huge modulePlan or refactor batch.
|
|
43
|
-
|
|
44
|
-
preview/apply uses more tool calls and more output tokens.
|
|
45
|
-
preview validates input and planned edits, but writing files can still hit a TS/IDE refactor error.
|
|
46
|
-
execute writes immediately and reports what changed.
|
|
47
|
-
|
|
48
|
-
If a mutation cannot be completed, aib reports the failed part.
|
|
49
|
-
|
|
50
|
-
Prefer batch DSL for related mutations.
|
|
51
|
-
One request can describe several related changes.
|
|
52
|
-
|
|
53
|
-
When a batch mutation partly fails, split the next request by failure type.
|
|
54
|
-
|
|
55
|
-
If the failure is wrong input, fix the selector/entity/file and run the corrected remaining intent.
|
|
56
|
-
If TS/IDE cannot apply one part of the batch, do not treat the whole intent as failed.
|
|
57
|
-
Run the next request without the failed part and let aib report any later failures.
|
|
58
|
-
Then decide whether failed parts need smaller requests or manual fallback.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
Modes: preview/apply or execute.
|
|
2
|
-
Use execute for routine changes.
|
|
3
|
-
Use preview/apply when learning a mutation command or inspecting a large multi-step request before writing files.
|
|
4
|
-
|
|
5
|
-
If a name is ambiguous, use selectors.
|
|
6
|
-
Run help selectors to refresh selector syntax.
|
|
7
|
-
|
|
8
|
-
refactor batch runs related mutation requests together.
|
|
9
|
-
Use it when one workflow needs ordered steps, such as rename plus move.
|
|
10
|
-
|
|
11
|
-
Use modulePlan when the main intent is only to split one large file into target modules.
|
|
12
|
-
Use refactor batch when the split also includes coordinated renames or mixed mutation steps.
|
|
13
|
-
|
|
14
|
-
refactor batch preview --stdin
|
|
15
|
-
refactor batch execute --stdin
|
|
16
|
-
refactor batch apply --stdin
|
|
17
|
-
|
|
18
|
-
Use preview/apply when you want to inspect a large mixed plan before writing files.
|
|
19
|
-
Use execute when you want to write immediately.
|
|
20
|
-
|
|
21
|
-
Example: rename and move in one request
|
|
22
|
-
|
|
23
|
-
Run:
|
|
24
|
-
aib refactor batch execute --stdin
|
|
25
|
-
|
|
26
|
-
Input:
|
|
27
|
-
@source src/service.ts
|
|
28
|
-
rename oldHelper->newHelper oldType->newType
|
|
29
|
-
move src/service.helpers.ts: newHelper
|
|
30
|
-
move src/service.types.ts: newType
|
|
31
|
-
|
|
32
|
-
This keeps related mutation intent together:
|
|
33
|
-
rename first, then move the renamed symbols.
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
const fs = require("node:fs");
|
|
2
|
-
const os = require("node:os");
|
|
3
|
-
const path = require("node:path");
|
|
4
|
-
const { spawnSync } = require("node:child_process");
|
|
5
|
-
|
|
6
|
-
const rootDir = path.resolve(__dirname, "..", "..");
|
|
7
|
-
const defaultFixtureDir = path.join(rootDir, "fixtures", "ts-sandbox");
|
|
8
|
-
const defaultVsixPath = path.join(rootDir, ".tmp", "vscode-refactor-bridge-extension.vsix");
|
|
9
|
-
const defaultRunsDir = path.join(rootDir, ".tmp", "ide-launch-runs");
|
|
10
|
-
|
|
11
|
-
function timestampForPath() {
|
|
12
|
-
return new Date().toISOString().replace(/[:.]/g, "-");
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function ensureDir(dirPath) {
|
|
16
|
-
fs.mkdirSync(dirPath, { recursive: true });
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function writeJson(filePath, payload) {
|
|
20
|
-
ensureDir(path.dirname(filePath));
|
|
21
|
-
fs.writeFileSync(filePath, `${JSON.stringify(payload, null, 2)}\n`);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function run(command, args, options = {}) {
|
|
25
|
-
const startedAt = Date.now();
|
|
26
|
-
const spawnCommand = prepareSpawnCommand(command, args, options);
|
|
27
|
-
const result = spawnSync(spawnCommand.command, spawnCommand.args, {
|
|
28
|
-
cwd: options.cwd ?? rootDir,
|
|
29
|
-
env: buildEnv(options.env),
|
|
30
|
-
input: options.input,
|
|
31
|
-
encoding: "utf8",
|
|
32
|
-
windowsHide: true,
|
|
33
|
-
windowsVerbatimArguments: spawnCommand.windowsVerbatimArguments ?? false,
|
|
34
|
-
timeout: options.timeoutMs ?? 30_000,
|
|
35
|
-
shell: options.shell ?? false,
|
|
36
|
-
stdio: ["pipe", "pipe", "pipe"]
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
return {
|
|
40
|
-
command,
|
|
41
|
-
args,
|
|
42
|
-
status: result.status,
|
|
43
|
-
signal: result.signal,
|
|
44
|
-
error: result.error ? result.error.message : null,
|
|
45
|
-
stdout: result.stdout ?? "",
|
|
46
|
-
stderr: result.stderr ?? "",
|
|
47
|
-
durationMs: Date.now() - startedAt
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function buildEnv(overrides) {
|
|
52
|
-
if (!overrides) {
|
|
53
|
-
return process.env;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const env = { ...process.env };
|
|
57
|
-
for (const [key, value] of Object.entries(overrides)) {
|
|
58
|
-
if (value === null || value === undefined) {
|
|
59
|
-
delete env[key];
|
|
60
|
-
continue;
|
|
61
|
-
}
|
|
62
|
-
env[key] = String(value);
|
|
63
|
-
}
|
|
64
|
-
return env;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function resolveIdeCommand(options) {
|
|
68
|
-
if (options.ideCommand) {
|
|
69
|
-
return options.ideCommand;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return resolveCommandFromPath(options.ide === "cursor" ? "cursor" : "code");
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
function isWindowsCommandScript(command) {
|
|
76
|
-
const extension = path.extname(command).toLowerCase();
|
|
77
|
-
return extension === ".cmd" || extension === ".bat";
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function quoteCmdArg(value) {
|
|
81
|
-
const raw = String(value);
|
|
82
|
-
return `"${raw.replace(/"/g, '\\"')}"`;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
function prepareSpawnCommand(command, args, options = {}) {
|
|
86
|
-
if (process.platform !== "win32" || options.shell !== undefined || !isWindowsCommandScript(command)) {
|
|
87
|
-
return { command, args };
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
return {
|
|
91
|
-
command: "cmd.exe",
|
|
92
|
-
args: ["/d", "/s", "/c", ["call", quoteCmdArg(command), ...args.map(quoteCmdArg)].join(" ")],
|
|
93
|
-
windowsVerbatimArguments: true
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
function resolveCommandFromPath(commandName) {
|
|
98
|
-
const result = spawnSync("where.exe", [commandName], {
|
|
99
|
-
cwd: rootDir,
|
|
100
|
-
encoding: "utf8",
|
|
101
|
-
windowsHide: true,
|
|
102
|
-
stdio: ["ignore", "pipe", "pipe"]
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
if (result.status !== 0) {
|
|
106
|
-
return commandName;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
const candidates = result.stdout
|
|
110
|
-
.split(/\r?\n/)
|
|
111
|
-
.map((line) => line.trim())
|
|
112
|
-
.filter(Boolean);
|
|
113
|
-
|
|
114
|
-
const commandScript = candidates.find((candidate) => path.extname(candidate).toLowerCase() === ".cmd");
|
|
115
|
-
return commandScript ?? candidates[0] ?? commandName;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function readRegistryEntries() {
|
|
119
|
-
const registryDir = path.join(os.tmpdir(), "aib", "instances");
|
|
120
|
-
if (!fs.existsSync(registryDir)) {
|
|
121
|
-
return [];
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const entries = [];
|
|
125
|
-
for (const fileName of fs.readdirSync(registryDir)) {
|
|
126
|
-
if (!fileName.endsWith(".json")) {
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
const filePath = path.join(registryDir, fileName);
|
|
131
|
-
try {
|
|
132
|
-
const parsed = JSON.parse(fs.readFileSync(filePath, "utf8"));
|
|
133
|
-
entries.push({
|
|
134
|
-
...parsed,
|
|
135
|
-
registryPath: filePath
|
|
136
|
-
});
|
|
137
|
-
} catch {
|
|
138
|
-
// Ignore corrupt/stale entries in probe output.
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
return entries;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
function sleep(ms) {
|
|
146
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
module.exports = {
|
|
150
|
-
rootDir,
|
|
151
|
-
defaultFixtureDir,
|
|
152
|
-
defaultVsixPath,
|
|
153
|
-
defaultRunsDir,
|
|
154
|
-
prepareSpawnCommand,
|
|
155
|
-
readRegistryEntries,
|
|
156
|
-
resolveCommandFromPath,
|
|
157
|
-
resolveIdeCommand,
|
|
158
|
-
run,
|
|
159
|
-
sleep,
|
|
160
|
-
timestampForPath,
|
|
161
|
-
writeJson
|
|
162
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var x=exports&&exports.__createBinding||(Object.create?(function(e,t,r,n){n===void 0&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}):(function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]})),h=exports&&exports.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),a=exports&&exports.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(n[n.length]=o);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),o=0;o<n.length;o++)n[o]!=="default"&&x(r,t,n[o]);return h(r,t),r}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveExtensionVsixPath=P;const s=a(require("node:fs")),_=a(require("node:os")),i=a(require("node:path")),u=require("../config/env-vars"),b=require("../shared/diagnostics"),j=require("../shared/errors");function P(e){const t=v(u.CLI_ENV.extensionVsix);if(t)return{path:t,source:"env"};const r=O();if(r)return r;const n=y();if(n)return n;const o=E(e.packageRoot);if(o)return o;if(e.repoRoot){const l=i.join(e.repoRoot,".tmp","vscode-refactor-bridge-extension.vsix");if(s.existsSync(l))return{path:l,source:"repo-dev-fallback"}}const f=i.join(e.packageRoot,"extension","vscode-refactor-bridge-extension.vsix");return s.existsSync(f)?{path:f,source:"package-extension"}:e.repoRoot?{path:i.join(e.repoRoot,".tmp","vscode-refactor-bridge-extension.vsix"),source:"repo-dev-fallback"}:{path:i.join(e.packageRoot,".tmp","vscode-refactor-bridge-extension.vsix"),source:"package-adjacent"}}function y(){const e=i.join(S(),"extension","activation-status.json");if(!s.existsSync(e))return null;const t=p(e),r=c(t.activeVsixPath)??c(C(t.active)?.vsixPath);if(!r)return null;const n=i.resolve(r);return s.existsSync(n)?{path:n,source:"product-storage",configPath:e}:null}function S(){const e=process.env[u.CLI_ENV.productStorageDir];return e?.trim()?i.resolve(e):process.platform==="win32"&&process.env.LOCALAPPDATA?i.join(process.env.LOCALAPPDATA,"aib"):process.env.XDG_STATE_HOME?i.join(process.env.XDG_STATE_HOME,"aib"):i.join(_.homedir(),".local","state","aib")}function v(e){const t=process.env[e];return t&&t.trim()?i.resolve(t.trim()):null}function O(){const e=v(u.CLI_ENV.installConfig);return e?d(e):null}function E(e){const t=i.join(e,"config.json");return s.existsSync(t)?d(t):null}function d(e){const t=p(e),r=A(t);if(!r)throw g(e,"Expected config to include extensionVsix.");return{path:i.resolve(i.dirname(e),r),source:"install-config",configPath:e}}function p(e){try{const t=JSON.parse(s.readFileSync(e,"utf8"));if(t&&typeof t=="object"&&!Array.isArray(t))return t;throw new Error("Config root must be an object.")}catch(t){throw g(e,t instanceof Error?t.message:String(t))}}function A(e){const t=c(e.extensionVsix);if(t)return t;const r=e.extension;if(!r||typeof r!="object"||Array.isArray(r))return null;const n=r;return c(n.vsixPath)??c(n.vsix)}function C(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function c(e){return typeof e=="string"&&e.trim()?e.trim():null}function g(e,t){return new j.CliError("EXTENSION_VSIX_CONFIG_INVALID","Extension VSIX install config is invalid.",{configPath:e,reason:t,expected:{extensionVsix:"relative/or/absolute/path/to/extension.vsix"},hints:(0,b.buildAutoStartIdeHints)()})}
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const path = require("node:path");
|
|
4
|
-
const {
|
|
5
|
-
cleanupExpiredManagedServeWebHosts,
|
|
6
|
-
getManagedServeWebHostStatus,
|
|
7
|
-
killManagedServeWebHosts,
|
|
8
|
-
runManagedServeWebWatchdog,
|
|
9
|
-
startManagedServeWebHost,
|
|
10
|
-
stopManagedServeWebHost
|
|
11
|
-
} = require("./serve-web-host.cjs");
|
|
12
|
-
|
|
13
|
-
function parseArgs(argv) {
|
|
14
|
-
const command = argv[0] ?? "status";
|
|
15
|
-
const options = {
|
|
16
|
-
command,
|
|
17
|
-
all: false,
|
|
18
|
-
fixture: null,
|
|
19
|
-
vsix: null,
|
|
20
|
-
waitMs: 45_000,
|
|
21
|
-
pollMs: 500,
|
|
22
|
-
port: null,
|
|
23
|
-
reuse: true,
|
|
24
|
-
ideCommand: null,
|
|
25
|
-
hostKind: null,
|
|
26
|
-
chromePath: null,
|
|
27
|
-
runDir: null,
|
|
28
|
-
ttlMs: null,
|
|
29
|
-
intervalMs: 30_000
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
for (let index = 1; index < argv.length; index += 1) {
|
|
33
|
-
const current = argv[index];
|
|
34
|
-
const next = argv[index + 1];
|
|
35
|
-
if (current === "--fixture" && next) {
|
|
36
|
-
options.fixture = path.resolve(next);
|
|
37
|
-
index += 1;
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
if (current === "--vsix" && next) {
|
|
41
|
-
options.vsix = path.resolve(next);
|
|
42
|
-
index += 1;
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
if (current === "--wait-ms" && next) {
|
|
46
|
-
options.waitMs = Number(next);
|
|
47
|
-
index += 1;
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
if (current === "--poll-ms" && next) {
|
|
51
|
-
options.pollMs = Number(next);
|
|
52
|
-
index += 1;
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
if (current === "--port" && next) {
|
|
56
|
-
options.port = Number(next);
|
|
57
|
-
index += 1;
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
if (current === "--ide-command" && next) {
|
|
61
|
-
options.ideCommand = next;
|
|
62
|
-
index += 1;
|
|
63
|
-
continue;
|
|
64
|
-
}
|
|
65
|
-
if (current === "--host-kind" && next) {
|
|
66
|
-
options.hostKind = next;
|
|
67
|
-
index += 1;
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
if (current === "--chrome-path" && next) {
|
|
71
|
-
options.chromePath = looksLikePath(next) ? path.resolve(next) : next;
|
|
72
|
-
index += 1;
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
if (current === "--run-dir" && next) {
|
|
76
|
-
options.runDir = path.resolve(next);
|
|
77
|
-
index += 1;
|
|
78
|
-
continue;
|
|
79
|
-
}
|
|
80
|
-
if (current === "--ttl-ms" && next) {
|
|
81
|
-
options.ttlMs = Number(next);
|
|
82
|
-
index += 1;
|
|
83
|
-
continue;
|
|
84
|
-
}
|
|
85
|
-
if (current === "--interval-ms" && next) {
|
|
86
|
-
options.intervalMs = Number(next);
|
|
87
|
-
index += 1;
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
if (current === "--no-reuse") {
|
|
91
|
-
options.reuse = false;
|
|
92
|
-
continue;
|
|
93
|
-
}
|
|
94
|
-
if (current === "--all") {
|
|
95
|
-
options.all = true;
|
|
96
|
-
continue;
|
|
97
|
-
}
|
|
98
|
-
throw new Error(`Unknown argument: ${current}`);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
if (!["start", "status", "stop", "kill", "cleanup", "watchdog"].includes(options.command)) {
|
|
102
|
-
throw new Error("Expected command: start, status, stop, kill, cleanup, or watchdog.");
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return options;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
function looksLikePath(value) {
|
|
109
|
-
return value.includes("\\") || value.includes("/") || /^[A-Za-z]:/.test(value);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
async function main() {
|
|
113
|
-
const options = parseArgs(process.argv.slice(2));
|
|
114
|
-
let result;
|
|
115
|
-
if (options.command === "start") {
|
|
116
|
-
result = await startManagedServeWebHost(options);
|
|
117
|
-
} else if (options.command === "stop") {
|
|
118
|
-
result = await stopManagedServeWebHost(options);
|
|
119
|
-
} else if (options.command === "kill") {
|
|
120
|
-
result = await killManagedServeWebHosts(options);
|
|
121
|
-
} else if (options.command === "cleanup") {
|
|
122
|
-
result = await cleanupExpiredManagedServeWebHosts(options);
|
|
123
|
-
} else if (options.command === "watchdog") {
|
|
124
|
-
result = await runManagedServeWebWatchdog(options);
|
|
125
|
-
} else {
|
|
126
|
-
result = await getManagedServeWebHostStatus(options);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
130
|
-
if (result.ok === false) {
|
|
131
|
-
process.exitCode = 1;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
main().catch((error) => {
|
|
136
|
-
process.stdout.write(`${JSON.stringify({
|
|
137
|
-
ok: false,
|
|
138
|
-
error: error instanceof Error ? error.stack ?? error.message : String(error)
|
|
139
|
-
}, null, 2)}\n`);
|
|
140
|
-
process.exitCode = 1;
|
|
141
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var N=exports&&exports.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var o=Object.getOwnPropertyDescriptor(e,r);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,o)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),y=exports&&exports.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),C=exports&&exports.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(n[n.length]=o);return n},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),o=0;o<n.length;o++)n[o]!=="default"&&N(r,e,n[o]);return y(r,e),r}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.startManagedServeWebForCwd=H,exports.stopManagedServeWebForCwd=U,exports.stopAllManagedServeWeb=q,exports.killAllManagedServeWeb=G,exports.statusManagedServeWebForCwd=B,exports.statusAllManagedServeWeb=J,exports.cleanupExpiredManagedServeWebForCwd=X;const f=C(require("node:fs")),l=C(require("node:path")),_=require("node:child_process"),m=require("../config/env-vars"),p=require("../shared/errors"),E=require("../shared/diagnostics"),M=require("./extension-vsix-resolver"),g=require("../config/workspace-root"),W=require("../runtime/bundled-node"),b=require("../runtime/managed-runtime-provisioning"),R=2e3,v=new Map;function L(){const t=[l.resolve(__dirname),process.cwd()];for(const e of t){let r=e;for(;;){const n=l.join(r,"scripts","managed-host","manage-serve-web-host.cjs"),o=l.join(r,"package.json");if(f.existsSync(n)&&f.existsSync(o))return r;const s=l.dirname(r);if(s===r)break;r=s}}return null}function I(t){const e=process.env[t];return e&&e.trim()?l.resolve(e.trim()):null}function P(t){const e=process.env[t];return e&&e.trim()?e.trim():null}function O(){const t=process.env[m.CLI_ENV.managedHostWaitMs];if(t===void 0||t.trim()==="")return 45e3;const e=Number(t);if(!Number.isInteger(e)||e<=0)throw new p.CliError("AUTO_START_IDE_INVALID_WAIT_MS",`Expected ${m.CLI_ENV.managedHostWaitMs} to be a positive integer.`,{env:m.CLI_ENV.managedHostWaitMs,value:t,hints:(0,E.buildAutoStartIdeHints)()});return e}function w(){const t=I(m.CLI_ENV.managedHostScript),e=O(),r=P(m.CLI_ENV.ideCommand),n=I(m.CLI_ENV.chromePath),o=I(m.CLI_ENV.managedHostRunDir),s=L(),a=l.resolve(__dirname,"..","..");(0,b.ensureManagedRuntimeProvisioned)(a);const i=P(m.CLI_ENV.managedHostKind)??V(a),d=(0,W.resolveNodeRuntime)(a);if(t){const u=(0,M.resolveExtensionVsixPath)({repoRoot:s,packageRoot:a});return{scriptPath:t,vsixPath:u.path,vsixSource:u.source,cwd:l.dirname(t),waitMs:e,ideCommand:r,hostKind:i,chromePath:n,runDir:o,nodeCommand:d.command,nodeSource:d.source,source:"env"}}const c=l.join(__dirname,"manage-serve-web-host.cjs");if(f.existsSync(c)){const u=(0,M.resolveExtensionVsixPath)({repoRoot:s,packageRoot:a});return{scriptPath:c,vsixPath:u.path,vsixSource:u.source,cwd:l.resolve(__dirname,"..",".."),waitMs:e,ideCommand:r,hostKind:i,chromePath:n,runDir:o,nodeCommand:d.command,nodeSource:d.source,source:"packaged-cli"}}if(s){const u=(0,M.resolveExtensionVsixPath)({repoRoot:s,packageRoot:a});return{scriptPath:l.join(s,"scripts","managed-host","manage-serve-web-host.cjs"),vsixPath:u.path,vsixSource:u.source,cwd:s,waitMs:e,ideCommand:r,hostKind:i,chromePath:n,runDir:o,nodeCommand:d.command,nodeSource:d.source,source:"repo-dev-fallback"}}throw new p.CliError("AUTO_START_IDE_UNAVAILABLE","Managed IDE auto-start is unavailable because no packaged managed-host assets or development repo managed-host scripts were found.",{searchedFrom:[l.resolve(__dirname),process.cwd()],optionalEnv:[m.CLI_ENV.managedHostScript,m.CLI_ENV.extensionVsix],hints:(0,E.buildAutoStartIdeHints)()})}function V(t){const e=l.join(t,"runtimes","code-server","node_modules","code-server","out","node","entry.js");return f.existsSync(e)&&(0,b.managedRuntimePlatformStatus)(t).ok?"code-server":null}function D(t,e,r,n){if(!f.existsSync(t))throw new p.CliError(e,r,{...n,hints:(0,E.buildAutoStartIdeHints)(),path:t})}function S(t){try{return JSON.parse(t)}catch(e){throw new p.CliError("AUTO_START_IDE_INVALID_OUTPUT","Managed IDE host returned non-JSON output.",{stdout:t,parseError:e instanceof Error?e.message:String(e)})}}async function H(t){const e=w(),n=(0,g.resolveRequiredWorkspaceRoot)(t).root,o=x(n),s=$(n);D(e.scriptPath,"AUTO_START_IDE_SCRIPT_NOT_FOUND","Managed IDE auto-start needs a managed host script.",{env:m.CLI_ENV.managedHostScript,source:e.source}),D(e.vsixPath,"AUTO_START_IDE_VSIX_NOT_FOUND","Managed IDE auto-start needs a packaged extension VSIX.",{env:m.CLI_ENV.extensionVsix,source:e.source,vsixSource:e.vsixSource,hint:e.source==="repo-dev-fallback"?"Run npm --prefix packages/extension run package:vsix before using --auto-start-ide.":`Set ${m.CLI_ENV.extensionVsix} to an existing packaged VSIX path.`});const a=[e.scriptPath,"start","--fixture",n,"--vsix",e.vsixPath,"--wait-ms",String(e.waitMs),"--ttl-ms",String(o),"--interval-ms",String(s)];e.ideCommand&&a.push("--ide-command",e.ideCommand),e.hostKind&&a.push("--host-kind",e.hostKind),e.chromePath&&a.push("--chrome-path",e.chromePath),e.runDir&&a.push("--run-dir",e.runDir);const i=F(e,n),d=v.get(i);if(d?.promise)return d.promise;if(d?.error&&d.failedUntil!==void 0&&d.failedUntil>Date.now())throw d.error;const c=j(e,a).catch(u=>{throw v.set(i,{failedUntil:Date.now()+R,error:u}),u}).finally(()=>{v.get(i)?.promise===c&&v.delete(i)});return v.set(i,{promise:c}),c}async function j(t,e){const r=await K(t.nodeCommand,e,{cwd:t.cwd,timeoutMs:t.waitMs+45e3}),n=r.stdout,o=n.trim()?S(n):null;if(r.status!==0||!o||o.ok!==!0)throw new p.CliError("AUTO_START_IDE_FAILED","Managed IDE auto-start failed.",{status:r.status,signal:r.signal,error:r.error?r.error.message:null,stdout:n,stderr:r.stderr??"",runtime:{source:t.source,scriptPath:t.scriptPath,vsixPath:t.vsixPath,vsixSource:t.vsixSource,waitMs:t.waitMs,ideCommand:t.ideCommand,hostKind:t.hostKind,chromePath:t.chromePath,runDir:t.runDir,nodeCommand:t.nodeCommand,nodeSource:t.nodeSource},hints:(0,E.buildAutoStartIdeHints)(),payload:o});return o}function F(t,e){return[l.resolve(e),t.hostKind??"",t.scriptPath,t.vsixPath,t.runDir??"",t.ideCommand??"",t.chromePath??"",t.nodeCommand].join("\0")}function K(t,e,r){return new Promise(n=>{let o="",s="",a=!1,i=!1,d=null;const c=(0,_.spawn)(t,e,{cwd:r.cwd,windowsHide:!0,stdio:["ignore","pipe","pipe"]}),u=h=>{a||(a=!0,clearTimeout(T),n(h))},T=setTimeout(()=>{i=!0,c.kill()},r.timeoutMs);c.stdout.setEncoding("utf8"),c.stderr.setEncoding("utf8"),c.stdout.on("data",h=>{o+=h}),c.stderr.on("data",h=>{s+=h}),c.on("error",h=>{d=h}),c.on("close",(h,k)=>{u({status:h,signal:k,error:i?new Error(`Timed out after ${r.timeoutMs}ms.`):d,stdout:o,stderr:s})})})}async function U(t){const e=w(),r=(0,g.resolveRequiredWorkspaceRoot)(t),n=[e.scriptPath,"stop","--fixture",r.root];e.ideCommand&&n.push("--ide-command",e.ideCommand),e.hostKind&&n.push("--host-kind",e.hostKind);const o=(0,_.spawnSync)(e.nodeCommand,n,{cwd:e.cwd,encoding:"utf8",windowsHide:!0,timeout:3e4,stdio:["ignore","pipe","pipe"]}),s=o.stdout??"",a=s.trim()?S(s):null;if(o.status!==0||!a||a.ok!==!0)throw new p.CliError("MANAGED_IDE_STOP_FAILED","Managed IDE stop failed.",{status:o.status,signal:o.signal,error:o.error?o.error.message:null,stdout:s,stderr:o.stderr??"",workspaceRoot:r.root});return z(r.root,a)}async function q(){return A(["stop","--all"],"MANAGED_IDE_STOP_FAILED")}async function G(){return A(["kill","--all"],"MANAGED_IDE_KILL_FAILED")}async function B(t){const e=w(),r=(0,g.resolveRequiredWorkspaceRoot)(t),n=[e.scriptPath,"status","--fixture",r.root];e.ideCommand&&n.push("--ide-command",e.ideCommand),e.hostKind&&n.push("--host-kind",e.hostKind);const o=(0,_.spawnSync)(e.nodeCommand,n,{cwd:e.cwd,encoding:"utf8",windowsHide:!0,timeout:3e4,stdio:["ignore","pipe","pipe"]}),s=o.stdout??"",a=s.trim()?S(s):null;if(o.status!==0||!a||a.ok!==!0)throw new p.CliError("MANAGED_IDE_STATUS_FAILED","Managed IDE status failed.",{status:o.status,signal:o.signal,error:o.error?o.error.message:null,stdout:s,stderr:o.stderr??"",workspaceRoot:r.root});return Q(r.root,a)}async function J(){return A(["status","--all"],"MANAGED_IDE_STATUS_FAILED")}async function X(t){const e=w(),r=(0,g.resolveRequiredWorkspaceRoot)(t),n=x(r.root),o=[e.scriptPath,"cleanup","--ttl-ms",String(n)];e.ideCommand&&o.push("--ide-command",e.ideCommand),e.hostKind&&o.push("--host-kind",e.hostKind);const s=(0,_.spawnSync)(e.nodeCommand,o,{cwd:e.cwd,encoding:"utf8",windowsHide:!0,timeout:3e4,stdio:["ignore","pipe","pipe"]}),a=s.stdout??"",i=a.trim()?S(a):null;if(s.status!==0||!i||i.ok!==!0)throw new p.CliError("MANAGED_IDE_CLEANUP_FAILED","Managed IDE cleanup failed.",{status:s.status,signal:s.signal,error:s.error?s.error.message:null,stdout:a,stderr:s.stderr??"",workspaceRoot:r.root});return i}function A(t,e){const r=w(),n=(0,_.spawnSync)(r.nodeCommand,[r.scriptPath,...t],{cwd:r.cwd,encoding:"utf8",windowsHide:!0,timeout:45e3,stdio:["ignore","pipe","pipe"]}),o=n.stdout??"",s=o.trim()?S(o):null;if(n.status!==0||!s||s.ok!==!0)throw new p.CliError(e,"Managed IDE runtime command failed.",{status:n.status,signal:n.signal,error:n.error?n.error.message:null,stdout:o,stderr:n.stderr??"",args:t});return s}function x(t){if(!(0,g.readWorkspaceBooleanConfig)(t,"runtime.autoStopManagedIde",!0))return 0;const r=(0,g.readWorkspaceNumberConfig)(t,"runtime.managedIdeTtlMinutes",15);return r>0?Math.round(r*6e4):0}function $(t){const e=(0,g.readWorkspaceNumberConfig)(t,"runtime.managedIdeWatchdogIntervalMs",3e4);return e>0?Math.round(e):3e4}function z(t,e){return{stopped:e.stopped===!0,workspaceRoot:t,...typeof e.hostId=="string"?{hostId:e.hostId}:{},...typeof e.reason=="string"?{reason:e.reason}:{}}}function Q(t,e){const r=e.metadata&&typeof e.metadata=="object"&&!Array.isArray(e.metadata)?e.metadata:{},n=e.health&&typeof e.health=="object"&&!Array.isArray(e.health)?e.health:{};return{ok:!0,workspaceRoot:t,workspace:".",hostId:typeof e.hostId=="string"?e.hostId:null,host:typeof r.hostKind=="string"?r.hostKind:"managed",running:e.running===!0,healthy:e.healthy===!0,reason:typeof e.reason=="string"?e.reason:null,health:{serveWebAlive:n.serveWebAlive===!0,browserAlive:n.browserAlive===!0,extensionHostAlive:n.extensionHostAlive===!0,workspaceMatches:n.workspaceMatches===!0,vsixMatches:n.vsixMatches===!0}}}
|