@automaton-labs/aib 0.0.6 → 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.
- package/README.md +36 -257
- 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 -2
- 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 -0
- package/dist/commands/captured-input.js +74 -2
- package/dist/commands/config-command.js +314 -2
- package/dist/commands/config-output.js +357 -10
- package/dist/commands/control-plane-command.js +183 -0
- package/dist/commands/declaration-command.js +1209 -0
- package/dist/commands/declaration-execution-cache.js +79 -0
- package/dist/commands/declaration-format.js +221 -0
- package/dist/commands/declaration-preview-cache.js +114 -0
- package/dist/commands/diagnostics-command.js +70 -3
- package/dist/commands/doctor.js +137 -2
- 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 -0
- package/dist/commands/file-move-to-dir-preview-cache.js +125 -0
- package/dist/commands/file-move-to-dir-worker.js +54 -0
- package/dist/commands/file-move-to-dir.js +1073 -0
- package/dist/commands/file-mutation-runtime.js +102 -0
- package/dist/commands/file-mutation-worker-apply.js +180 -0
- package/dist/commands/file-refactor-batch-execution-cache.js +90 -0
- package/dist/commands/file-refactor-batch-preview-cache.js +125 -0
- package/dist/commands/file-refactor-batch-worker.js +54 -0
- package/dist/commands/file-refactor-batch.js +1154 -0
- package/dist/commands/file-rename-execution-cache.js +92 -0
- package/dist/commands/file-rename-preview-cache.js +125 -0
- package/dist/commands/file-rename-worker.js +54 -0
- package/dist/commands/file-rename.js +1053 -0
- 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 -0
- 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 -6
- 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 -0
- 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 -0
- package/dist/dsl/file-move-to-dir-dsl.js +123 -0
- package/dist/dsl/file-refactor-batch-dsl.js +203 -0
- package/dist/dsl/file-rename-dsl.js +135 -0
- package/dist/dsl/mutate-dsl.js +746 -0
- package/dist/help/bootstrap.bash.md +742 -0
- package/dist/help/bootstrap.md +236 -437
- package/dist/help/bootstrap.pwsh.md +742 -0
- 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/dsl.md +4 -3
- 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 +5 -11
- package/dist/help/docs/inspect.deps.md +7 -7
- package/dist/help/docs/inspect.file.md +10 -18
- package/dist/help/docs/inspect.graph.md +6 -20
- package/dist/help/docs/{inspect.md → inspect.shared.md} +18 -17
- package/dist/help/docs/modulePlan.md +24 -28
- package/dist/help/docs/move.md +19 -22
- package/dist/help/docs/moveToDir.md +46 -0
- 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 -16
- package/dist/help/docs/qr.md +13 -22
- package/dist/help/docs/quick-map.md +36 -23
- package/dist/help/docs/recipe.file-layout.md +15 -0
- 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/rg.md +22 -0
- package/dist/help/docs/rules.md +26 -0
- package/dist/help/docs/selectors.md +3 -2
- package/dist/help/docs/session.md +1 -1
- package/dist/help/dsl/bootstrap.bash.md +742 -0
- package/dist/help/dsl/bootstrap.md +236 -437
- package/dist/help/dsl/bootstrap.pwsh.md +742 -0
- 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/dsl.md +4 -3
- 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 +5 -11
- package/dist/help/dsl/docs/inspect.deps.md +7 -7
- package/dist/help/dsl/docs/inspect.file.md +10 -18
- package/dist/help/dsl/docs/inspect.graph.md +6 -20
- package/dist/help/dsl/docs/{inspect.md → inspect.shared.md} +18 -17
- package/dist/help/dsl/docs/modulePlan.md +24 -28
- package/dist/help/dsl/docs/move.md +19 -22
- package/dist/help/dsl/docs/moveToDir.md +46 -0
- 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 -16
- package/dist/help/dsl/docs/qr.md +13 -22
- package/dist/help/dsl/docs/quick-map.md +36 -23
- package/dist/help/dsl/docs/recipe.file-layout.md +15 -0
- 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/rg.md +22 -0
- package/dist/help/dsl/docs/rules.md +26 -0
- package/dist/help/dsl/docs/selectors.md +3 -2
- package/dist/help/dsl/docs/session.md +1 -1
- package/dist/help/dsl/full.md +236 -437
- package/dist/help/dsl/help-index.md +49 -0
- package/dist/help/dsl/snippets/agents.md +2 -2
- package/dist/help/dsl/tokens/qr.inline.examples.md +2 -0
- package/dist/help/dsl/tokens/stdin.examples.bash.md +8 -0
- package/dist/help/dsl/tokens/stdin.examples.pwsh.md +8 -0
- package/dist/help/dsl/tokens/stdin.examples.with-qr.bash.md +12 -0
- package/dist/help/dsl/tokens/stdin.examples.with-qr.pwsh.md +12 -0
- 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/dsl.md +4 -3
- 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 +5 -11
- package/dist/help/dsl/topics/inspect.deps.md +7 -7
- package/dist/help/dsl/topics/inspect.file.md +10 -18
- package/dist/help/dsl/topics/inspect.graph.md +6 -20
- package/dist/help/dsl/topics/{inspect.md → inspect.shared.md} +18 -17
- package/dist/help/dsl/topics/modulePlan.md +21 -26
- package/dist/help/dsl/topics/move.md +17 -18
- package/dist/help/dsl/topics/moveToDir.md +44 -0
- 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 -16
- package/dist/help/dsl/topics/qr.md +13 -22
- package/dist/help/dsl/topics/quick-map.md +36 -23
- package/dist/help/dsl/topics/recipe.file-layout.md +13 -0
- 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/rg.md +20 -0
- package/dist/help/dsl/topics/rules.md +24 -0
- package/dist/help/dsl/topics/selectors.md +3 -2
- package/dist/help/dsl/topics/session.md +1 -1
- package/dist/help/full.md +236 -437
- package/dist/help/help-index.md +49 -0
- package/dist/help/help-meta.json +114 -48
- package/dist/help/index.md +76 -87
- package/dist/help/snippets/agents.md +2 -2
- package/dist/help/tokens/qr.inline.examples.md +2 -0
- package/dist/help/tokens/stdin.examples.bash.md +8 -0
- package/dist/help/tokens/stdin.examples.pwsh.md +8 -0
- package/dist/help/tokens/stdin.examples.with-qr.bash.md +12 -0
- package/dist/help/tokens/stdin.examples.with-qr.pwsh.md +12 -0
- 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/dsl.md +4 -3
- 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 +5 -11
- package/dist/help/topics/inspect.deps.md +7 -7
- package/dist/help/topics/inspect.file.md +10 -18
- package/dist/help/topics/inspect.graph.md +6 -20
- package/dist/help/topics/{inspect.md → inspect.shared.md} +18 -17
- package/dist/help/topics/modulePlan.md +21 -26
- package/dist/help/topics/move.md +17 -18
- package/dist/help/topics/moveToDir.md +44 -0
- 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 -16
- package/dist/help/topics/qr.md +13 -22
- package/dist/help/topics/quick-map.md +36 -23
- package/dist/help/topics/recipe.file-layout.md +13 -0
- 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/rg.md +20 -0
- package/dist/help/topics/rules.md +24 -0
- package/dist/help/topics/selectors.md +3 -2
- package/dist/help/topics/session.md +1 -1
- package/dist/host/capabilities.js +56 -0
- 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 +210 -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 -0
- package/dist/rg-wrapper/options.js +125 -0
- package/dist/rtk-wrapper/core.js +144 -0
- 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 -0
- 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 -8
- 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 -3
- package/dist/shared/stdout.js +6 -2
- package/dist/shared/types.js +23 -1
- package/dist/tool-runtime/runtime-tools.js +120 -0
- 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 +80 -0
- package/dist/workers/control-plane/client-config.default.json +3 -0
- 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 -0
- package/dist/workers/registry.js +241 -0
- package/package.json +8 -11
- package/runtimes/tools/rg/darwin-arm64/rg +0 -0
- package/runtimes/tools/rg/darwin-x64/rg +0 -0
- package/runtimes/tools/rg/linux-arm64/rg +0 -0
- package/runtimes/tools/rg/linux-x64/rg +0 -0
- package/runtimes/tools/rg/manifest.json +36 -0
- package/runtimes/tools/rg/win32-x64/rg.exe +0 -0
- package/runtimes/tools/rtk/darwin-arm64/rtk +0 -0
- package/runtimes/tools/rtk/darwin-x64/rtk +0 -0
- package/runtimes/tools/rtk/linux-arm64/rtk +0 -0
- package/runtimes/tools/rtk/linux-x64/rtk +0 -0
- package/runtimes/tools/rtk/manifest.json +36 -0
- package/runtimes/tools/rtk/win32-x64/rtk.exe +0 -0
- 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/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/mutation.md +0 -50
- package/dist/help/docs/refactor.batch.md +0 -44
- package/dist/help/dsl/docs/mutation.md +0 -50
- package/dist/help/dsl/docs/refactor.batch.md +0 -44
- package/dist/help/dsl/topics/mutation.md +0 -48
- package/dist/help/dsl/topics/refactor.batch.md +0 -33
- package/dist/help/json/bootstrap.md +0 -1085
- package/dist/help/json/docs/basics.md +0 -15
- package/dist/help/json/docs/config-setup.aliases.md +0 -56
- package/dist/help/json/docs/config-setup.excludes.md +0 -45
- package/dist/help/json/docs/config-setup.import-normalize.md +0 -86
- package/dist/help/json/docs/config-setup.import-rules.md +0 -96
- package/dist/help/json/docs/config-setup.tsconfigs.md +0 -33
- package/dist/help/json/docs/dsl.md +0 -25
- package/dist/help/json/docs/first-setup.md +0 -292
- package/dist/help/json/docs/help-format.md +0 -9
- package/dist/help/json/docs/help-protocol.md +0 -26
- package/dist/help/json/docs/imports.normalize.md +0 -47
- package/dist/help/json/docs/inspect.code.md +0 -41
- package/dist/help/json/docs/inspect.cycles.md +0 -38
- package/dist/help/json/docs/inspect.deps.md +0 -46
- package/dist/help/json/docs/inspect.duplicates.md +0 -65
- package/dist/help/json/docs/inspect.exports.md +0 -40
- package/dist/help/json/docs/inspect.file.md +0 -38
- package/dist/help/json/docs/inspect.graph.md +0 -139
- package/dist/help/json/docs/inspect.imports.md +0 -15
- package/dist/help/json/docs/inspect.md +0 -88
- package/dist/help/json/docs/inspect.members.md +0 -32
- package/dist/help/json/docs/inspect.tree.md +0 -32
- package/dist/help/json/docs/inspect.usages.md +0 -61
- package/dist/help/json/docs/modulePlan.md +0 -73
- package/dist/help/json/docs/move.md +0 -56
- package/dist/help/json/docs/mutation.md +0 -65
- package/dist/help/json/docs/patterns.md +0 -76
- package/dist/help/json/docs/prefs.md +0 -40
- package/dist/help/json/docs/qr.md +0 -37
- package/dist/help/json/docs/quick-map.md +0 -30
- package/dist/help/json/docs/refactor.batch.md +0 -72
- package/dist/help/json/docs/rename.md +0 -47
- package/dist/help/json/docs/reveal.md +0 -30
- package/dist/help/json/docs/selectors.md +0 -23
- package/dist/help/json/docs/session.md +0 -77
- package/dist/help/json/docs/view.md +0 -30
- package/dist/help/json/full.md +0 -1085
- package/dist/help/json/snippets/agents.md +0 -14
- package/dist/help/json/topics/basics.md +0 -13
- package/dist/help/json/topics/config-setup.aliases.md +0 -54
- package/dist/help/json/topics/config-setup.excludes.md +0 -43
- package/dist/help/json/topics/config-setup.import-normalize.md +0 -84
- package/dist/help/json/topics/config-setup.import-rules.md +0 -94
- package/dist/help/json/topics/config-setup.tsconfigs.md +0 -31
- package/dist/help/json/topics/dsl.md +0 -23
- package/dist/help/json/topics/first-setup.md +0 -290
- package/dist/help/json/topics/help-format.md +0 -7
- package/dist/help/json/topics/help-protocol.md +0 -24
- package/dist/help/json/topics/imports.normalize.md +0 -45
- package/dist/help/json/topics/inspect.code.md +0 -39
- package/dist/help/json/topics/inspect.cycles.md +0 -36
- package/dist/help/json/topics/inspect.deps.md +0 -44
- package/dist/help/json/topics/inspect.duplicates.md +0 -37
- package/dist/help/json/topics/inspect.exports.md +0 -38
- package/dist/help/json/topics/inspect.file.md +0 -36
- package/dist/help/json/topics/inspect.graph.md +0 -137
- package/dist/help/json/topics/inspect.imports.md +0 -13
- package/dist/help/json/topics/inspect.md +0 -86
- package/dist/help/json/topics/inspect.members.md +0 -30
- package/dist/help/json/topics/inspect.tree.md +0 -22
- package/dist/help/json/topics/inspect.usages.md +0 -59
- package/dist/help/json/topics/modulePlan.md +0 -60
- package/dist/help/json/topics/move.md +0 -46
- package/dist/help/json/topics/mutation.md +0 -63
- package/dist/help/json/topics/patterns.md +0 -74
- package/dist/help/json/topics/prefs.md +0 -38
- package/dist/help/json/topics/qr.md +0 -35
- package/dist/help/json/topics/quick-map.md +0 -28
- package/dist/help/json/topics/refactor.batch.md +0 -61
- package/dist/help/json/topics/rename.md +0 -42
- package/dist/help/json/topics/reveal.md +0 -28
- package/dist/help/json/topics/selectors.md +0 -21
- package/dist/help/json/topics/session.md +0 -59
- package/dist/help/json/topics/view.md +0 -28
- package/dist/help/topics/mutation.md +0 -48
- 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 -1904
- 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
|
@@ -0,0 +1,79 @@
|
|
|
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.buildDeclarationExecutionId = buildDeclarationExecutionId;
|
|
37
|
+
exports.createDeclarationExecutionStatus = createDeclarationExecutionStatus;
|
|
38
|
+
exports.readDeclarationExecutionStatus = readDeclarationExecutionStatus;
|
|
39
|
+
exports.tryReadDeclarationExecutionStatus = tryReadDeclarationExecutionStatus;
|
|
40
|
+
exports.writeDeclarationExecutionStatus = writeDeclarationExecutionStatus;
|
|
41
|
+
const path = __importStar(require("node:path"));
|
|
42
|
+
const product_storage_1 = require("../config/product-storage");
|
|
43
|
+
const mutation_execution_cache_1 = require("./mutation-execution-cache");
|
|
44
|
+
function buildDeclarationExecutionId() {
|
|
45
|
+
return (0, mutation_execution_cache_1.buildMutationExecutionId)();
|
|
46
|
+
}
|
|
47
|
+
function createDeclarationExecutionStatus(cwd, executionId, operation, rowCount) {
|
|
48
|
+
const now = new Date().toISOString();
|
|
49
|
+
return {
|
|
50
|
+
executionId,
|
|
51
|
+
operation,
|
|
52
|
+
cwd: path.resolve(cwd),
|
|
53
|
+
status: "running",
|
|
54
|
+
phase: "running",
|
|
55
|
+
startedAt: now,
|
|
56
|
+
updatedAt: now,
|
|
57
|
+
rowCount: Math.max(1, rowCount),
|
|
58
|
+
completedRows: 0,
|
|
59
|
+
failedRows: 0,
|
|
60
|
+
notRunRows: 0,
|
|
61
|
+
filesWritten: [],
|
|
62
|
+
rows: [],
|
|
63
|
+
productStorageDir: (0, product_storage_1.productStorageRoot)()
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function readDeclarationExecutionStatus(cwd, executionId) {
|
|
67
|
+
return (0, mutation_execution_cache_1.readMutationExecutionStatus)(cwd, executionId, DECLARATION_EXECUTION_CACHE);
|
|
68
|
+
}
|
|
69
|
+
function tryReadDeclarationExecutionStatus(cwd, executionId) {
|
|
70
|
+
return (0, mutation_execution_cache_1.tryReadMutationExecutionStatus)(cwd, executionId, DECLARATION_EXECUTION_CACHE);
|
|
71
|
+
}
|
|
72
|
+
function writeDeclarationExecutionStatus(cwd, status) {
|
|
73
|
+
(0, mutation_execution_cache_1.writeMutationExecutionStatus)(cwd, status, DECLARATION_EXECUTION_CACHE);
|
|
74
|
+
}
|
|
75
|
+
const DECLARATION_EXECUTION_CACHE = {
|
|
76
|
+
namespace: "declaration-executions",
|
|
77
|
+
notFoundCode: "DECLARATION_EXECUTION_NOT_FOUND",
|
|
78
|
+
notFoundLabel: "declaration"
|
|
79
|
+
};
|
|
@@ -0,0 +1,221 @@
|
|
|
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.formatDeclarationMutationDetails = formatDeclarationMutationDetails;
|
|
37
|
+
const path = __importStar(require("node:path"));
|
|
38
|
+
const session_workspace_1 = require("./session-workspace");
|
|
39
|
+
function formatDeclarationMutationDetails(cwd, operation, rows) {
|
|
40
|
+
return operation === "addMissing"
|
|
41
|
+
? formatAddMissingDetails(cwd, rows)
|
|
42
|
+
: formatRemoveDetails(cwd, rows);
|
|
43
|
+
}
|
|
44
|
+
function formatRemoveDetails(cwd, rows) {
|
|
45
|
+
const aliases = safeAliases(cwd);
|
|
46
|
+
const groups = new Map();
|
|
47
|
+
for (const row of rows) {
|
|
48
|
+
const file = readString(row.file);
|
|
49
|
+
if (!file) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
const selectors = collectObjects(row.removed)
|
|
53
|
+
.map((item) => readString(item.selector))
|
|
54
|
+
.filter((selector) => Boolean(selector));
|
|
55
|
+
if (selectors.length === 0) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
const key = uniqueInOrder(selectors).join(" ");
|
|
59
|
+
groups.set(key, [...(groups.get(key) ?? []), formatDisplayPath(cwd, file, aliases)]);
|
|
60
|
+
}
|
|
61
|
+
const lines = renderSelectorFileGroups(groups);
|
|
62
|
+
lines.push(...formatFailedRows(cwd, rows, aliases));
|
|
63
|
+
return lines.length > 0 ? lines : ["removed: none"];
|
|
64
|
+
}
|
|
65
|
+
function formatAddMissingDetails(cwd, rows) {
|
|
66
|
+
const aliases = safeAliases(cwd);
|
|
67
|
+
const bySource = new Map();
|
|
68
|
+
for (const row of rows) {
|
|
69
|
+
const file = readString(row.file);
|
|
70
|
+
if (!file) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const bySourceForFile = new Map();
|
|
74
|
+
for (const group of collectObjects(row.addedImports)) {
|
|
75
|
+
for (const item of collectImportItems(group)) {
|
|
76
|
+
const selector = readString(item.selector);
|
|
77
|
+
if (!selector) {
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
const source = readString(item.source) ?? readString(item.moduleSpecifier) ?? "unknown";
|
|
81
|
+
bySourceForFile.set(source, [...(bySourceForFile.get(source) ?? []), selector]);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
for (const [source, selectors] of bySourceForFile.entries()) {
|
|
85
|
+
const sourceGroups = bySource.get(source) ?? new Map();
|
|
86
|
+
const key = uniqueInOrder(selectors).join(" ");
|
|
87
|
+
sourceGroups.set(key, [...(sourceGroups.get(key) ?? []), formatDisplayPath(cwd, file, aliases)]);
|
|
88
|
+
bySource.set(source, sourceGroups);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const lines = [];
|
|
92
|
+
for (const [source, groups] of bySource.entries()) {
|
|
93
|
+
if (lines.length > 0) {
|
|
94
|
+
lines.push("");
|
|
95
|
+
}
|
|
96
|
+
lines.push(`from ${formatDisplayPath(cwd, source, aliases)}:`);
|
|
97
|
+
for (const [selectorKey, files] of groups.entries()) {
|
|
98
|
+
lines.push(` ${selectorKey}:`);
|
|
99
|
+
for (const file of uniqueInOrder(files)) {
|
|
100
|
+
lines.push(` ${file}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
lines.push(...formatFailedRows(cwd, rows, aliases));
|
|
105
|
+
return lines.length > 0 ? lines : ["added: none"];
|
|
106
|
+
}
|
|
107
|
+
function renderSelectorFileGroups(groups) {
|
|
108
|
+
const lines = [];
|
|
109
|
+
for (const [selectorKey, files] of groups.entries()) {
|
|
110
|
+
lines.push(`${selectorKey}:`);
|
|
111
|
+
for (const file of uniqueInOrder(files)) {
|
|
112
|
+
lines.push(` ${file}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return lines;
|
|
116
|
+
}
|
|
117
|
+
function formatFailedRows(cwd, rows, aliases) {
|
|
118
|
+
const failed = rows.filter((row) => row.ok === false);
|
|
119
|
+
if (failed.length === 0) {
|
|
120
|
+
return [];
|
|
121
|
+
}
|
|
122
|
+
const lines = ["failed:"];
|
|
123
|
+
for (const row of failed) {
|
|
124
|
+
const file = readString(row.file);
|
|
125
|
+
const selector = readString(row.failedSelector) ?? firstString(row.selectors);
|
|
126
|
+
if (file) {
|
|
127
|
+
lines.push(` ${formatDisplayPath(cwd, file, aliases)}`);
|
|
128
|
+
}
|
|
129
|
+
if (selector && readString(row.code) === "DECLARATION_REMOVE_AMBIGUOUS") {
|
|
130
|
+
lines.push(` \`${selector}\` is ambiguous.`);
|
|
131
|
+
}
|
|
132
|
+
else if (selector) {
|
|
133
|
+
lines.push(` ${selector}`);
|
|
134
|
+
}
|
|
135
|
+
const available = Array.isArray(row.availableSelectors)
|
|
136
|
+
? row.availableSelectors.filter((item) => typeof item === "string" && item.trim() !== "")
|
|
137
|
+
: [];
|
|
138
|
+
if (available.length > 0) {
|
|
139
|
+
lines.push(" Available selectors:");
|
|
140
|
+
for (const item of available) {
|
|
141
|
+
lines.push(` ${item}`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
const code = readString(row.code);
|
|
146
|
+
if (code) {
|
|
147
|
+
lines.push(` code: ${code}`);
|
|
148
|
+
}
|
|
149
|
+
const error = readString(row.error);
|
|
150
|
+
if (error) {
|
|
151
|
+
lines.push(` ${error}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return lines;
|
|
156
|
+
}
|
|
157
|
+
function collectImportItems(group) {
|
|
158
|
+
const nested = collectObjects(group.items);
|
|
159
|
+
return nested.length > 0 ? nested : [group];
|
|
160
|
+
}
|
|
161
|
+
function collectObjects(value) {
|
|
162
|
+
return Array.isArray(value) ? value.filter(isObject) : [];
|
|
163
|
+
}
|
|
164
|
+
function firstString(value) {
|
|
165
|
+
return Array.isArray(value) ? value.find((item) => typeof item === "string" && item.trim() !== "") ?? null : null;
|
|
166
|
+
}
|
|
167
|
+
function uniqueInOrder(values) {
|
|
168
|
+
return [...new Set(values.filter((value) => value.trim() !== ""))];
|
|
169
|
+
}
|
|
170
|
+
function safeAliases(cwd) {
|
|
171
|
+
try {
|
|
172
|
+
return (0, session_workspace_1.readEffectiveSessionPathAliases)(cwd);
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
return {};
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
function formatDisplayPath(cwd, filePath, aliases) {
|
|
179
|
+
if (!path.isAbsolute(filePath)) {
|
|
180
|
+
return toSlash(filePath);
|
|
181
|
+
}
|
|
182
|
+
const aliased = formatAliasPath(cwd, filePath, aliases);
|
|
183
|
+
if (aliased) {
|
|
184
|
+
return aliased;
|
|
185
|
+
}
|
|
186
|
+
const relative = path.relative(cwd, filePath);
|
|
187
|
+
return relative && !relative.startsWith("..") && !path.isAbsolute(relative)
|
|
188
|
+
? toSlash(relative)
|
|
189
|
+
: toSlash(filePath);
|
|
190
|
+
}
|
|
191
|
+
function formatAliasPath(cwd, filePath, aliases) {
|
|
192
|
+
let best = null;
|
|
193
|
+
for (const [name, targetPath] of Object.entries(aliases)) {
|
|
194
|
+
const target = path.resolve(cwd, targetPath);
|
|
195
|
+
if (!isPathInside(filePath, target)) {
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
const suffix = path.relative(target, filePath);
|
|
199
|
+
const display = suffix ? `@${name}/${toSlash(suffix)}` : `@${name}`;
|
|
200
|
+
if (!best || display.length < best.display.length || (display.length === best.display.length && target.length > best.target.length)) {
|
|
201
|
+
best = { name, target, display };
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
if (!best) {
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
return best.display;
|
|
208
|
+
}
|
|
209
|
+
function isPathInside(filePath, parentPath) {
|
|
210
|
+
const relative = path.relative(parentPath, filePath);
|
|
211
|
+
return relative === "" || (!relative.startsWith("..") && !path.isAbsolute(relative));
|
|
212
|
+
}
|
|
213
|
+
function readString(value) {
|
|
214
|
+
return typeof value === "string" && value.trim() !== "" ? value.trim() : null;
|
|
215
|
+
}
|
|
216
|
+
function isObject(value) {
|
|
217
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
218
|
+
}
|
|
219
|
+
function toSlash(value) {
|
|
220
|
+
return value.replace(/\\/g, "/");
|
|
221
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
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.buildDeclarationPreviewId = buildDeclarationPreviewId;
|
|
37
|
+
exports.buildDeclarationPreviewHash = buildDeclarationPreviewHash;
|
|
38
|
+
exports.readDeclarationPreviewRecord = readDeclarationPreviewRecord;
|
|
39
|
+
exports.writeDeclarationPreviewRecord = writeDeclarationPreviewRecord;
|
|
40
|
+
exports.hashFiles = hashFiles;
|
|
41
|
+
exports.validateDeclarationPreviewFiles = validateDeclarationPreviewFiles;
|
|
42
|
+
const crypto = __importStar(require("node:crypto"));
|
|
43
|
+
const fs = __importStar(require("node:fs"));
|
|
44
|
+
const path = __importStar(require("node:path"));
|
|
45
|
+
const errors_1 = require("../shared/errors");
|
|
46
|
+
const workspace_cache_1 = require("./workspace-cache");
|
|
47
|
+
function buildDeclarationPreviewId(normalizedPayload) {
|
|
48
|
+
return `apply_${sha256(stableStringify(normalizedPayload)).slice(0, 6)}`;
|
|
49
|
+
}
|
|
50
|
+
function buildDeclarationPreviewHash(normalizedPayload, fileHashes, previewResult) {
|
|
51
|
+
return `sha256:${sha256(stableStringify({
|
|
52
|
+
normalizedPayload,
|
|
53
|
+
fileHashes,
|
|
54
|
+
summary: previewResult.summary,
|
|
55
|
+
operation: previewResult.operation
|
|
56
|
+
}))}`;
|
|
57
|
+
}
|
|
58
|
+
function readDeclarationPreviewRecord(cwd, previewId) {
|
|
59
|
+
const filePath = declarationPreviewRecordPath(cwd, previewId);
|
|
60
|
+
if (!fs.existsSync(filePath)) {
|
|
61
|
+
throw new errors_1.CliError("DECLARATION_PREVIEW_NOT_FOUND", `Declaration preview not found: ${previewId}`, {
|
|
62
|
+
previewId,
|
|
63
|
+
expectedPath: filePath
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return JSON.parse(fs.readFileSync(filePath, "utf8"));
|
|
67
|
+
}
|
|
68
|
+
function writeDeclarationPreviewRecord(cwd, record) {
|
|
69
|
+
const filePath = declarationPreviewRecordPath(cwd, record.previewId);
|
|
70
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
71
|
+
fs.writeFileSync(filePath, `${JSON.stringify(record, null, 2)}\n`);
|
|
72
|
+
}
|
|
73
|
+
function hashFiles(files) {
|
|
74
|
+
const hashes = {};
|
|
75
|
+
for (const file of files) {
|
|
76
|
+
hashes[file] = hashFileIfExists(file);
|
|
77
|
+
}
|
|
78
|
+
return hashes;
|
|
79
|
+
}
|
|
80
|
+
function validateDeclarationPreviewFiles(record) {
|
|
81
|
+
for (const [file, expectedHash] of Object.entries(record.fileHashes)) {
|
|
82
|
+
const actualHash = hashFileIfExists(file);
|
|
83
|
+
if (actualHash !== expectedHash) {
|
|
84
|
+
throw new errors_1.CliError("DECLARATION_PREVIEW_FILES_CHANGED", "Files changed after declaration preview. Rerun preview.", {
|
|
85
|
+
previewId: record.previewId,
|
|
86
|
+
file
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function declarationPreviewRecordPath(cwd, previewId) {
|
|
92
|
+
return (0, workspace_cache_1.workspaceCachePath)(cwd, "declaration-previews", `${sanitizeId(previewId)}.json`);
|
|
93
|
+
}
|
|
94
|
+
function hashFileIfExists(filePath) {
|
|
95
|
+
return fs.existsSync(filePath) ? sha256(fs.readFileSync(filePath)) : null;
|
|
96
|
+
}
|
|
97
|
+
function sha256(value) {
|
|
98
|
+
return crypto.createHash("sha256").update(value).digest("hex");
|
|
99
|
+
}
|
|
100
|
+
function stableStringify(value) {
|
|
101
|
+
if (value === null || typeof value !== "object") {
|
|
102
|
+
return JSON.stringify(value);
|
|
103
|
+
}
|
|
104
|
+
if (Array.isArray(value)) {
|
|
105
|
+
return `[${value.map((item) => stableStringify(item)).join(",")}]`;
|
|
106
|
+
}
|
|
107
|
+
return `{${Object.entries(value)
|
|
108
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
109
|
+
.map(([key, item]) => `${JSON.stringify(key)}:${stableStringify(item)}`)
|
|
110
|
+
.join(",")}}`;
|
|
111
|
+
}
|
|
112
|
+
function sanitizeId(value) {
|
|
113
|
+
return value.replace(/[^a-z0-9_-]+/gi, "-");
|
|
114
|
+
}
|
|
@@ -1,3 +1,70 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runDiagnosticsCommand = runDiagnosticsCommand;
|
|
4
|
+
const errors_1 = require("../shared/errors");
|
|
5
|
+
async function runDiagnosticsCommand(restArgs) {
|
|
6
|
+
const subcommand = restArgs[0] ?? "status";
|
|
7
|
+
if (subcommand !== "timeout-stream") {
|
|
8
|
+
throw new errors_1.CliError("UNKNOWN_DIAGNOSTICS_COMMAND", `Unknown diagnostics command: ${subcommand}`, {
|
|
9
|
+
availableCommands: ["timeout-stream"]
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
await runTimeoutStream(restArgs.slice(1));
|
|
13
|
+
}
|
|
14
|
+
async function runTimeoutStream(args) {
|
|
15
|
+
const mode = readMode(args);
|
|
16
|
+
const delayMs = readNumberFlag(args, "--delay-ms", 60_000);
|
|
17
|
+
const intervalMs = readNumberFlag(args, "--interval-ms", 1_000);
|
|
18
|
+
const ticks = Math.max(1, Math.min(10, Math.floor(delayMs / Math.max(1, intervalMs))));
|
|
19
|
+
ignoreBrokenPipeDuringTimeoutDiagnostics();
|
|
20
|
+
writeDiagnosticLine(mode, `diagnostics.timeout-stream started mode=${mode} delayMs=${delayMs}`);
|
|
21
|
+
for (let index = 1; index <= ticks; index += 1) {
|
|
22
|
+
await sleep(intervalMs);
|
|
23
|
+
writeDiagnosticLine(mode, `diagnostics.timeout-stream tick ${index}/${ticks}`);
|
|
24
|
+
}
|
|
25
|
+
const remainingMs = delayMs - (ticks * intervalMs);
|
|
26
|
+
if (remainingMs > 0) {
|
|
27
|
+
await sleep(remainingMs);
|
|
28
|
+
}
|
|
29
|
+
writeDiagnosticLine(mode, "diagnostics.timeout-stream completed");
|
|
30
|
+
}
|
|
31
|
+
function ignoreBrokenPipeDuringTimeoutDiagnostics() {
|
|
32
|
+
const ignore = (error) => {
|
|
33
|
+
if (error.code !== "EPIPE") {
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
process.stdout.on("error", ignore);
|
|
38
|
+
process.stderr.on("error", ignore);
|
|
39
|
+
}
|
|
40
|
+
function writeDiagnosticLine(mode, line) {
|
|
41
|
+
if (mode === "stdout" || mode === "both") {
|
|
42
|
+
process.stdout.write(`${line}\n`);
|
|
43
|
+
}
|
|
44
|
+
if (mode === "stderr" || mode === "both") {
|
|
45
|
+
process.stderr.write(`${line}\n`);
|
|
46
|
+
}
|
|
47
|
+
if (mode === "console") {
|
|
48
|
+
console.log(line);
|
|
49
|
+
console.error(line);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function readMode(args) {
|
|
53
|
+
const index = args.indexOf("--mode");
|
|
54
|
+
const value = index >= 0 ? args[index + 1] : "stderr";
|
|
55
|
+
if (value === "stdout" || value === "stderr" || value === "both" || value === "console") {
|
|
56
|
+
return value;
|
|
57
|
+
}
|
|
58
|
+
throw new errors_1.CliError("INVALID_DIAGNOSTICS_MODE", "diagnostics timeout-stream --mode expects stdout, stderr, both, or console.");
|
|
59
|
+
}
|
|
60
|
+
function readNumberFlag(args, flag, fallback) {
|
|
61
|
+
const index = args.indexOf(flag);
|
|
62
|
+
if (index < 0) {
|
|
63
|
+
return fallback;
|
|
64
|
+
}
|
|
65
|
+
const value = Number(args[index + 1]);
|
|
66
|
+
return Number.isFinite(value) && value >= 0 ? value : fallback;
|
|
67
|
+
}
|
|
68
|
+
function sleep(ms) {
|
|
69
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
70
|
+
}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -1,2 +1,137 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
`)}:()=>{}}function m(t,e,n){t(`checking ${e}`);const r=n();return t(`${e}: ${r.ok?"ok":"failed"}`),r}async function K(t,e){const n=[];let r=!1;try{e("starting managed runtime; please wait");const o=await(0,N.startManagedServeWebForCwd)(t);r=!0,e("managed runtime: started"),n.push({id:"managed-runtime-start",ok:!0,severity:"required",message:"Managed IDE runtime starts and activates the bridge.",details:B(o)})}catch(o){return e("managed runtime: failed"),n.push(y("managed-runtime-start","Managed IDE runtime failed to start or activate the bridge.",o)),n}try{e("pinging runtime");const o=await(0,A.runPing)(t);e("runtime ping: ok"),n.push({id:"bridge-ping",ok:!0,severity:"required",message:"Bridge ping succeeds through the managed runtime.",details:F(o)})}catch(o){e("runtime ping: failed"),n.push(y("bridge-ping","Bridge ping failed through the managed runtime.",o))}if(r)try{e("stopping managed runtime");const o=await(0,N.stopManagedServeWebForCwd)(t);e(o.stopped===!0?"managed runtime: stopped":"managed runtime: stop incomplete"),n.push({id:"managed-runtime-stop",ok:o.stopped===!0,severity:"required",message:o.stopped===!0?"Managed IDE runtime stops cleanly.":"Managed IDE runtime stop did not report a stopped runtime.",details:o})}catch(o){e("managed runtime stop: failed"),n.push(y("managed-runtime-stop","Managed IDE runtime stop failed.",o))}return n}function y(t,e,n){const r=n instanceof V.CliError?n:null;return{id:t,ok:!1,severity:"required",message:e,code:r?.code??"DOCTOR_RUNTIME_CHECK_FAILED",details:{error:n instanceof Error?n.message:String(n),...r?.details&&typeof r.details=="object"&&!Array.isArray(r.details)?{details:r.details}:{}},hints:r?.details&&typeof r.details=="object"&&!Array.isArray(r.details)&&Array.isArray(r.details.hints)?r.details.hints:(0,_.buildAutoStartHints)()}}function B(t){const e=t.metadata&&typeof t.metadata=="object"&&!Array.isArray(t.metadata)?t.metadata:{},n=t.artifacts&&typeof t.artifacts=="object"&&!Array.isArray(t.artifacts)?t.artifacts:{};return{hostId:typeof t.hostId=="string"?t.hostId:null,hostKind:typeof t.hostKind=="string"?t.hostKind:e.hostKind??null,reused:t.reused===!0,codeCommand:typeof t.codeCommand=="string"?t.codeCommand:e.codeCommand??null,codeCommandSource:typeof t.codeCommandSource=="string"?t.codeCommandSource:e.codeCommandSource??null,runDir:typeof t.runDir=="string"?t.runDir:e.runDir??null,logsDir:typeof n.logsDir=="string"?n.logsDir:e.logsDir??null,instanceId:typeof e.instanceId=="string"?e.instanceId:null,serveWebPid:typeof e.serveWebPid=="number"?e.serveWebPid:null,browserPid:typeof e.browserPid=="number"?e.browserPid:null}}function F(t){const e=t.selectedInstance&&typeof t.selectedInstance=="object"&&!Array.isArray(t.selectedInstance)?t.selectedInstance:{},n=t.response&&typeof t.response=="object"&&!Array.isArray(t.response)?t.response:{};return{instanceId:typeof e.instanceId=="string"?e.instanceId:n.instanceId??null,reason:typeof e.reason=="string"?e.reason:null,matchedWorkspace:typeof e.matchedWorkspace=="string"?e.matchedWorkspace:null,pid:typeof n.pid=="number"?n.pid:null,protocolVersion:typeof n.protocolVersion=="number"?n.protocolVersion:null,extensionVersion:typeof n.extensionVersion=="string"?n.extensionVersion:null}}function W(){const t=Number(process.versions.node.split(".")[0]??"0"),e=Number.isInteger(t)&&t>=20;return l({id:"node-version",ok:e,severity:"required",message:e?"Node.js version is supported.":"Node.js 20 or newer is required.",details:{node:process.version,required:">=20"}},{code:"DOCTOR_NODE_VERSION_UNSUPPORTED",hints:[(0,u.actionHint)("Install Node.js 20 or newer, then retry the CLI command.")]})}function G(t){const e=a.join(t,"package.json"),n=a.join(t,"dist","bin","aib.js"),r=i.existsSync(e)&&i.existsSync(n);return l({id:"cli-package-root",ok:r,severity:"required",message:r?"CLI package root looks complete.":"CLI package root is missing package metadata or the built bin.",details:{packageRoot:t,packageJsonPath:e,packageJsonExists:i.existsSync(e),binPath:n,binExists:i.existsSync(n)}},{code:"DOCTOR_CLI_PACKAGE_INCOMPLETE",hints:[(0,u.commandHint)("npm run cli:build","Build the local CLI package."),(0,u.actionHint)("For an installed package, reinstall the CLI package.")]})}function X(t,e){const n=a.join(t,"dist","managed-host","manage-serve-web-host.cjs"),r=e?a.join(e,"scripts","managed-host","manage-serve-web-host.cjs"):null,o=I(d.CLI_ENV.managedHostScript),s=!!(o&&i.existsSync(o)||i.existsSync(n)||r&&i.existsSync(r));return l({id:"managed-host-assets",ok:s,severity:"required",message:s?"Managed host assets are available.":"Managed host assets were not found.",details:{env:d.CLI_ENV.managedHostScript,envScriptPath:o,envScriptExists:o?i.existsSync(o):!1,packagedScriptPath:n,packagedScriptExists:i.existsSync(n),repoScriptPath:r,repoScriptExists:r?i.existsSync(r):!1}},{code:"DOCTOR_MANAGED_HOST_ASSETS_MISSING",hints:(0,_.buildAutoStartHints)()})}function U(t,e){try{const n=(0,j.resolveExtensionVsixPath)({packageRoot:t,repoRoot:e}),r=i.existsSync(n.path);return l({id:"extension-vsix",ok:r,severity:"required",message:r?"Extension VSIX is available.":"Extension VSIX path resolved but the file does not exist.",details:{...n,exists:r}},{code:"DOCTOR_EXTENSION_VSIX_MISSING",hints:[(0,u.configHint)(d.CLI_ENV.extensionVsix,"Point to an existing packaged VSIX artifact."),(0,u.commandHint)("npm --prefix packages/extension run package:vsix","Build a local VSIX artifact.")]})}catch(n){return{id:"extension-vsix",ok:!1,severity:"required",message:"Extension VSIX resolution failed.",code:"DOCTOR_EXTENSION_VSIX_RESOLUTION_FAILED",details:{error:n instanceof Error?n.message:String(n),code:typeof n=="object"&&n!==null&&"code"in n?String(n.code):null},hints:(0,_.buildAutoStartHints)()}}}function $(t){const e=process.env[d.CLI_ENV.ideCommand]?.trim(),n=process.env[d.CLI_ENV.managedHostKind]?.trim()||z(t),r=I(d.CLI_ENV.codeServerPath),o=a.join(t,"runtimes","code-server","node_modules","code-server","out","node","entry.js"),s=(0,g.managedRuntimePlatformStatus)(t),p=(0,C.resolveNodeRuntime)(t),v=i.existsSync(o)&&s.ok?`${p.command} ${o}`:null,h=a.join(t,"runtimes","code-server","bin",process.platform==="win32"?"code-server.cmd":"code-server"),c=[r,v,h,"code-server"].filter(f=>!!f),P=e?[e]:n==="code-server"?c:process.platform==="win32"?q:R,S=P.map(f=>({candidate:f,result:f===v?{ok:!0,path:o}:b(f)})).find(f=>f.result.ok),k=!!S;return l({id:"ide-command",ok:k,severity:"required",message:k?"VS Code CLI command is available.":"VS Code CLI command was not found.",details:{env:d.CLI_ENV.ideCommand,codeServerEnv:d.CLI_ENV.codeServerPath,hostKindEnv:d.CLI_ENV.managedHostKind,hostKind:n,explicitIdeCommand:e||null,nodeRuntimeCommand:p.command,nodeRuntimeSource:p.source,platformMarker:{ok:s.ok,reason:s.reason,expectedPlatformKey:s.expectedPlatformKey,actualPlatformKey:s.actualPlatformKey,markerPath:s.markerPath},candidates:P,resolvedCommand:S?.candidate??null,resolvedPath:S?.result.path??null}},{code:"DOCTOR_IDE_COMMAND_MISSING",hints:[(0,u.configHint)(d.CLI_ENV.ideCommand,"Set an explicit VS Code-compatible CLI command path."),(0,u.configHint)(d.CLI_ENV.codeServerPath,"Set an explicit Coder code-server executable path when using the code-server managed host."),(0,u.actionHint)("Install VS Code, install Coder code-server, or include a packaged code-server runtime.")]})}function J(t){const e=(0,C.findPackagedNodeRuntime)(t),n=(0,C.resolveNodeRuntime)(t),r=(0,g.managedRuntimePlatformStatus)(t),o=i.existsSync(a.join(t,"runtimes","code-server","node_modules","code-server","out","node","entry.js"))&&r.ok;return l({id:"managed-runtime-node",ok:!!e||!o,severity:o?"required":"optional",message:e?"Bundled Node runtime is available for managed runtime.":o?"Bundled Node runtime is missing for package-local code-server.":"Bundled Node runtime is not needed because package-local code-server is not present.",details:{env:d.CLI_ENV.nodePath,packagedNodePath:e,resolvedCommand:n.command,resolvedSource:n.source,packagedCodeServerPresent:o,platformMarker:{ok:r.ok,reason:r.reason,expectedPlatformKey:r.expectedPlatformKey,actualPlatformKey:r.actualPlatformKey,markerPath:r.markerPath}}},{code:"DOCTOR_MANAGED_RUNTIME_NODE_MISSING",hints:[(0,u.commandHint)("node scripts/runtime/provision-managed-runtimes.cjs --node","Provision the bundled Node runtime."),(0,u.actionHint)("For installed packages, reprovision or reinstall the managed runtime bundle.")]})}function z(t){const e=a.join(t,"runtimes","code-server","node_modules","code-server","out","node","entry.js");return i.existsSync(e)&&(0,g.managedRuntimePlatformStatus)(t).ok?"code-server":null}function Z(t){const e=I(d.CLI_ENV.chromePath),r=[e,Q(t),"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe","C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe","C:\\Program Files\\Microsoft\\Edge\\Application\\msedge.exe","C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe","google-chrome","chromium","chromium-browser","microsoft-edge"].filter(s=>!!s).map(s=>({candidate:s,result:b(s)})).find(s=>s.result.ok),o=!!r;return l({id:"headless-browser",ok:o,severity:"required",message:o?"Headless browser command is available.":"Chrome or Edge was not found for managed serve-web activation.",details:{env:d.CLI_ENV.chromePath,explicitChromePath:e,resolvedCommand:r?.candidate??null}},{code:"DOCTOR_HEADLESS_BROWSER_MISSING",hints:[(0,u.configHint)(d.CLI_ENV.chromePath,"Set an explicit Chrome or Edge executable path."),(0,u.actionHint)("Install Chrome, Edge, Chromium, or another compatible headless browser.")]})}function Q(t){const e=[a.join(t,"runtimes","browser"),a.join(t,"runtimes","chrome"),a.join(t,"runtimes","chromium")],n=process.platform==="win32"?new Set(["chrome.exe","chromium.exe","msedge.exe"]):new Set(["chrome","chromium"]);for(const r of e){const o=w(r,n,5);if(o)return o}return null}function w(t,e,n){if(!i.existsSync(t)||n<0)return null;let r;try{r=i.readdirSync(t,{withFileTypes:!0})}catch{return null}for(const o of r){const s=a.join(t,o.name);if(o.isFile()&&e.has(o.name)&&b(s).ok)return s}for(const o of r){if(!o.isDirectory())continue;const s=w(a.join(t,o.name),e,n-1);if(s)return s}return null}function Y(t){const e=process.platform==="win32"||process.platform==="linux";return l({id:"managed-runtime-platform",ok:e||t!==!0,severity:t?"required":"optional",message:e?"Managed serve-web auto-start is supported on this platform.":"Managed serve-web auto-start is currently supported on Windows and Linux.",details:{platform:process.platform,runtimeRequested:t}},{code:"DOCTOR_MANAGED_RUNTIME_PLATFORM_UNSUPPORTED",hints:[(0,u.actionHint)("Run static doctor checks only, or use a Windows/Linux environment for managed runtime.")]})}function ee(){const t=[a.resolve(__dirname),process.cwd()];for(const e of t){let n=e;for(;;){const r=a.join(n,"scripts","managed-host","manage-serve-web-host.cjs"),o=a.join(n,"package.json");if(i.existsSync(r)&&i.existsSync(o))return n;const s=a.dirname(n);if(s===n)break;n=s}}return null}function I(t){const e=process.env[t];return e&&e.trim()?a.resolve(e.trim()):null}function b(t){if(te(t))return{ok:i.existsSync(t),status:i.existsSync(t)?0:1,error:null};const e=process.platform==="win32"?(0,x.spawnSync)("where.exe",[t],{encoding:"utf8",windowsHide:!0,stdio:["ignore","pipe","pipe"]}):(0,x.spawnSync)("sh",["-lc",`command -v "${t.replace(/"/g,'\\"')}"`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]});return{ok:e.status===0,status:e.status,error:e.error?e.error.message:null}}function te(t){return t.includes("\\")||t.includes("/")||/^[A-Za-z]:/.test(t)}
|
|
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.runDoctor = runDoctor;
|
|
37
|
+
const fs = __importStar(require("node:fs"));
|
|
38
|
+
const path = __importStar(require("node:path"));
|
|
39
|
+
const agent_text_1 = require("../shared/agent-text");
|
|
40
|
+
const readiness_text_1 = require("../diagnostics/readiness-text");
|
|
41
|
+
const bundled_node_1 = require("../runtime/bundled-node");
|
|
42
|
+
async function runDoctor(options) {
|
|
43
|
+
const progress = options.progress === true
|
|
44
|
+
? (line) => process.stderr.write(`${line}\n`)
|
|
45
|
+
: (_line) => { };
|
|
46
|
+
const packageRoot = path.resolve(__dirname, "..", "..");
|
|
47
|
+
const checks = [
|
|
48
|
+
runCheck(progress, "node version", checkNodeVersion),
|
|
49
|
+
runCheck(progress, "package layout", () => checkPackageRoot(packageRoot)),
|
|
50
|
+
runCheck(progress, "bundled node", () => checkBundledNode(packageRoot))
|
|
51
|
+
];
|
|
52
|
+
const failedRequired = checks.filter((check) => check.severity === "required" && !check.ok);
|
|
53
|
+
const failedOptional = checks.filter((check) => check.severity === "optional" && !check.ok);
|
|
54
|
+
const response = {
|
|
55
|
+
ok: failedRequired.length === 0,
|
|
56
|
+
command: "doctor",
|
|
57
|
+
mode: "static",
|
|
58
|
+
cwd: path.resolve(options.cwd),
|
|
59
|
+
generatedAt: new Date().toISOString(),
|
|
60
|
+
platform: {
|
|
61
|
+
node: process.version,
|
|
62
|
+
platform: process.platform,
|
|
63
|
+
arch: process.arch
|
|
64
|
+
},
|
|
65
|
+
packageRoot,
|
|
66
|
+
summary: {
|
|
67
|
+
checkCount: checks.length,
|
|
68
|
+
passedCount: checks.filter((check) => check.ok).length,
|
|
69
|
+
failedRequiredCount: failedRequired.length,
|
|
70
|
+
failedOptionalCount: failedOptional.length
|
|
71
|
+
},
|
|
72
|
+
checks
|
|
73
|
+
};
|
|
74
|
+
if (options.progress === true) {
|
|
75
|
+
progress(failedRequired.length === 0 ? "all checks passed" : "checks failed");
|
|
76
|
+
if (failedRequired.length === 0) {
|
|
77
|
+
progress("you are good to go \u{1F44D}");
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return options.json === true
|
|
81
|
+
? response
|
|
82
|
+
: (0, agent_text_1.attachAgentText)(response, (0, readiness_text_1.formatDoctorText)(response, { verbose: options.verbose === true }));
|
|
83
|
+
}
|
|
84
|
+
function runCheck(progress, label, check) {
|
|
85
|
+
progress(`checking ${label}`);
|
|
86
|
+
const result = check();
|
|
87
|
+
progress(`${label}: ${result.ok ? "ok" : "failed"}`);
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
function checkNodeVersion() {
|
|
91
|
+
const major = Number(process.versions.node.split(".")[0] ?? "0");
|
|
92
|
+
const ok = Number.isInteger(major) && major >= 20;
|
|
93
|
+
return {
|
|
94
|
+
id: "node-version",
|
|
95
|
+
ok,
|
|
96
|
+
severity: "required",
|
|
97
|
+
message: ok ? "Node.js version is supported." : "Node.js 20 or newer is required.",
|
|
98
|
+
...(ok ? {} : { code: "DOCTOR_NODE_VERSION_UNSUPPORTED" }),
|
|
99
|
+
details: { node: process.version, required: ">=20" }
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function checkPackageRoot(packageRoot) {
|
|
103
|
+
const packageJsonPath = path.join(packageRoot, "package.json");
|
|
104
|
+
const binPath = path.join(packageRoot, "dist", "bin", "aib.js");
|
|
105
|
+
const ok = fs.existsSync(packageJsonPath) && fs.existsSync(binPath);
|
|
106
|
+
return {
|
|
107
|
+
id: "cli-package-root",
|
|
108
|
+
ok,
|
|
109
|
+
severity: "required",
|
|
110
|
+
message: ok ? "CLI package root looks complete." : "CLI package root is missing package metadata or the built bin.",
|
|
111
|
+
...(ok ? {} : { code: "DOCTOR_CLI_PACKAGE_INCOMPLETE" }),
|
|
112
|
+
details: {
|
|
113
|
+
packageRoot,
|
|
114
|
+
packageJsonPath,
|
|
115
|
+
packageJsonExists: fs.existsSync(packageJsonPath),
|
|
116
|
+
binPath,
|
|
117
|
+
binExists: fs.existsSync(binPath)
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function checkBundledNode(packageRoot) {
|
|
122
|
+
const packagedNodePath = (0, bundled_node_1.findPackagedNodeRuntime)(packageRoot);
|
|
123
|
+
const nodeRuntime = (0, bundled_node_1.resolveNodeRuntime)(packageRoot);
|
|
124
|
+
return {
|
|
125
|
+
id: "bundled-node",
|
|
126
|
+
ok: true,
|
|
127
|
+
severity: "optional",
|
|
128
|
+
message: packagedNodePath
|
|
129
|
+
? "Bundled Node runtime is available."
|
|
130
|
+
: "Bundled Node runtime is absent; the current Node runtime will be used.",
|
|
131
|
+
details: {
|
|
132
|
+
packagedNodePath,
|
|
133
|
+
resolvedCommand: nodeRuntime.command,
|
|
134
|
+
resolvedSource: nodeRuntime.source
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
}
|