@timurproko/a1 0.1.0 → 0.1.1-dev.2
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 +8 -6
- package/bin/a1-ui.js +24 -0
- package/bin/{addone.js → a1.js} +2 -2
- package/dist/src/cli/dispatch.d.ts +4 -5
- package/dist/src/cli/dispatch.js +11 -11
- package/dist/src/cli/index.d.ts +0 -1
- package/dist/src/cli/index.js +0 -1
- package/dist/src/cli/version-stats.d.ts +0 -1
- package/dist/src/cli/version-stats.js +27 -23
- package/dist/src/cli/version.d.ts +1 -2
- package/dist/src/cli/version.js +4 -4
- package/dist/src/composition/index.d.ts +22 -0
- package/dist/src/composition/index.js +166 -0
- package/dist/src/composition/transparent-runtime.d.ts +6 -0
- package/dist/src/composition/transparent-runtime.js +19 -0
- package/dist/src/features/launch/development-launch.d.ts +0 -1
- package/dist/src/features/launch/development-launch.js +12 -11
- package/dist/src/features/launch/index.d.ts +0 -1
- package/dist/src/features/launch/index.js +0 -1
- package/dist/src/features/launch/initialize-profile.d.ts +1 -2
- package/dist/src/features/launch/initialize-profile.js +1 -2
- package/dist/src/features/launch/intent.d.ts +0 -1
- package/dist/src/features/launch/intent.js +0 -1
- package/dist/src/features/launch/prepare-launch.d.ts +2 -3
- package/dist/src/features/launch/prepare-launch.js +3 -4
- package/dist/src/features/launch/profile-paths.d.ts +2 -3
- package/dist/src/features/launch/profile-paths.js +9 -8
- package/dist/src/features/launch/profiles.d.ts +2 -3
- package/dist/src/features/launch/profiles.js +5 -6
- package/dist/src/features/launch/runtime-selection.d.ts +1 -2
- package/dist/src/features/launch/runtime-selection.js +1 -2
- package/dist/src/features/owned-ui/customization.d.ts +5 -3
- package/dist/src/features/owned-ui/customization.js +2 -4
- package/dist/src/features/owned-ui/diagnostics.d.ts +0 -1
- package/dist/src/features/owned-ui/diagnostics.js +0 -1
- package/dist/src/features/owned-ui/index.d.ts +0 -2
- package/dist/src/features/owned-ui/index.js +0 -2
- package/dist/src/features/owned-ui/run.d.ts +3 -7
- package/dist/src/features/owned-ui/run.js +7 -15
- package/dist/src/features/workspace/capabilities.d.ts +0 -1
- package/dist/src/features/workspace/capabilities.js +0 -1
- package/dist/src/features/workspace/index.d.ts +0 -1
- package/dist/src/features/workspace/index.js +0 -1
- package/dist/src/features/workspace/presentation.d.ts +1 -2
- package/dist/src/features/workspace/presentation.js +5 -4
- package/dist/src/features/workspace/reconciliation.d.ts +0 -1
- package/dist/src/features/workspace/reconciliation.js +0 -1
- package/dist/src/features/workspace/reducer.d.ts +0 -1
- package/dist/src/features/workspace/reducer.js +0 -1
- package/dist/src/features/workspace/router.d.ts +0 -1
- package/dist/src/features/workspace/router.js +0 -1
- package/dist/src/features/workspace/store.d.ts +0 -1
- package/dist/src/features/workspace/store.js +0 -1
- package/dist/src/foundation/agent-engine-contracts/capability-ports.d.ts +95 -0
- package/dist/src/foundation/agent-engine-contracts/capability-ports.js +35 -0
- package/dist/src/foundation/agent-engine-contracts/domain-validation.d.ts +12 -0
- package/dist/src/foundation/agent-engine-contracts/domain-validation.js +89 -0
- package/dist/src/foundation/agent-engine-contracts/domain.d.ts +90 -0
- package/dist/src/foundation/agent-engine-contracts/domain.js +1 -0
- package/dist/src/foundation/agent-engine-contracts/index.d.ts +7 -0
- package/dist/src/foundation/agent-engine-contracts/index.js +7 -0
- package/dist/src/foundation/agent-engine-contracts/model.d.ts +78 -0
- package/dist/src/foundation/agent-engine-contracts/model.js +1 -0
- package/dist/src/foundation/agent-engine-contracts/ports.d.ts +18 -0
- package/dist/src/foundation/agent-engine-contracts/ports.js +1 -0
- package/dist/src/foundation/agent-engine-contracts/serialization.d.ts +7 -0
- package/dist/src/foundation/agent-engine-contracts/serialization.js +58 -0
- package/dist/src/foundation/agent-engine-contracts/validation.d.ts +5 -0
- package/dist/src/foundation/agent-engine-contracts/validation.js +128 -0
- package/dist/src/foundation/lifecycle/index.d.ts +0 -1
- package/dist/src/foundation/lifecycle/index.js +0 -1
- package/dist/src/foundation/lifecycle/model.d.ts +1 -2
- package/dist/src/foundation/lifecycle/model.js +3 -3
- package/dist/src/foundation/lifecycle/paths.d.ts +2 -3
- package/dist/src/foundation/lifecycle/paths.js +32 -16
- package/dist/src/foundation/native-host-protocol/codec.d.ts +0 -1
- package/dist/src/foundation/native-host-protocol/codec.js +0 -1
- package/dist/src/foundation/native-host-protocol/evidence.d.ts +2 -3
- package/dist/src/foundation/native-host-protocol/evidence.js +4 -4
- package/dist/src/foundation/native-host-protocol/index.d.ts +0 -1
- package/dist/src/foundation/native-host-protocol/index.js +0 -1
- package/dist/src/foundation/native-host-protocol/messages.d.ts +1 -2
- package/dist/src/foundation/native-host-protocol/messages.js +2 -2
- package/dist/src/foundation/native-host-protocol/proof-gate.d.ts +0 -1
- package/dist/src/foundation/native-host-protocol/proof-gate.js +0 -1
- package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts +0 -1
- package/dist/src/foundation/owned-ui-contracts/extension-ui.js +0 -1
- package/dist/src/foundation/owned-ui-contracts/index.d.ts +0 -1
- package/dist/src/foundation/owned-ui-contracts/index.js +0 -1
- package/dist/src/foundation/owned-ui-contracts/model.d.ts +0 -1
- package/dist/src/foundation/owned-ui-contracts/model.js +0 -1
- package/dist/src/foundation/owned-ui-contracts/validation.d.ts +0 -1
- package/dist/src/foundation/owned-ui-contracts/validation.js +0 -1
- package/dist/src/foundation/pi-component-adapter/components.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/components.js +0 -1
- package/dist/src/foundation/pi-component-adapter/conformance.d.ts +1 -1
- package/dist/src/foundation/pi-component-adapter/conformance.js +10 -4
- package/dist/src/foundation/pi-component-adapter/index.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/index.js +0 -1
- package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.d.ts +165 -0
- package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.js +166 -0
- package/dist/src/foundation/pi-component-adapter/shell-components.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-components.js +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +10 -13
- package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-footer-status.js +5 -62
- package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js +0 -1
- package/dist/src/foundation/pi-component-adapter/theme.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/theme.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +3 -27
- package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.d.ts +18 -0
- package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.js +55 -0
- package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.d.ts +10 -0
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.js +120 -0
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts +1 -2
- package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js +1 -2
- package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/external-editor.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/model-search.js +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js +1 -2
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js +18 -15
- package/dist/src/foundation/pi-engine-adapter/adapter.d.ts +2 -202
- package/dist/src/foundation/pi-engine-adapter/adapter.js +76 -174
- package/dist/src/foundation/pi-engine-adapter/conformance.d.ts +24 -1
- package/dist/src/foundation/pi-engine-adapter/conformance.js +60 -15
- package/dist/src/foundation/pi-engine-adapter/index.d.ts +6 -1
- package/dist/src/foundation/pi-engine-adapter/index.js +6 -1
- package/dist/src/foundation/pi-engine-adapter/model-auth-integration.d.ts +30 -0
- package/dist/src/foundation/pi-engine-adapter/model-auth-integration.js +61 -0
- package/dist/src/foundation/pi-engine-adapter/public-main-entry.d.ts +5 -0
- package/dist/src/foundation/pi-engine-adapter/public-main-entry.js +18 -0
- package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.d.ts +31 -0
- package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.js +80 -0
- package/dist/src/foundation/pi-engine-adapter/runtime-integration.d.ts +18 -0
- package/dist/src/foundation/pi-engine-adapter/runtime-integration.js +32 -0
- package/dist/src/foundation/pi-engine-adapter/session-integration.d.ts +43 -0
- package/dist/src/foundation/pi-engine-adapter/session-integration.js +97 -0
- package/dist/src/foundation/pi-engine-adapter/settings-integration.d.ts +17 -0
- package/dist/src/foundation/pi-engine-adapter/settings-integration.js +85 -0
- package/dist/src/foundation/pi-engine-adapter/workflow-controllers.d.ts +20 -0
- package/dist/src/foundation/pi-engine-adapter/workflow-controllers.js +48 -0
- package/dist/src/foundation/pi-engine-adapter/workflows.d.ts +0 -1
- package/dist/src/foundation/pi-engine-adapter/workflows.js +0 -1
- package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +1 -0
- package/dist/src/foundation/pi-owned-ui-integration/index.js +1 -0
- package/dist/src/{features/owned-ui/pi-session-shell.d.ts → foundation/pi-owned-ui-integration/session-shell.d.ts} +17 -14
- package/dist/src/{features/owned-ui/pi-session-shell.js → foundation/pi-owned-ui-integration/session-shell.js} +59 -60
- package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts +0 -1
- package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js +0 -1
- package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts +8 -4
- package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js +22 -9
- package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts +0 -2
- package/dist/src/foundation/pi-tui-runtime-adapter/contracts.js +1 -2
- package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts +1 -1
- package/dist/src/foundation/pi-tui-runtime-adapter/index.js +1 -1
- package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.d.ts +4 -0
- package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.js +48 -0
- package/dist/src/foundation/presentation-contracts/index.d.ts +96 -0
- package/dist/src/foundation/presentation-contracts/index.js +38 -0
- package/dist/src/foundation/protocol/client.d.ts +0 -1
- package/dist/src/foundation/protocol/client.js +0 -1
- package/dist/src/foundation/protocol/index.d.ts +0 -1
- package/dist/src/foundation/protocol/index.js +0 -1
- package/dist/src/foundation/protocol/messages.d.ts +1 -2
- package/dist/src/foundation/protocol/messages.js +2 -2
- package/dist/src/foundation/release/bootstrap.d.ts +0 -1
- package/dist/src/foundation/release/bootstrap.js +55 -22
- package/dist/src/foundation/release/cohort-selection.d.ts +0 -1
- package/dist/src/foundation/release/cohort-selection.js +0 -1
- package/dist/src/foundation/release/cohort-state.d.ts +3 -2
- package/dist/src/foundation/release/cohort-state.js +5 -4
- package/dist/src/foundation/release/concurrency.d.ts +1 -0
- package/dist/src/foundation/release/concurrency.js +17 -0
- package/dist/src/foundation/release/development-preview-release.d.ts +2 -2
- package/dist/src/foundation/release/development-preview-release.js +3 -2
- package/dist/src/foundation/release/index.d.ts +0 -1
- package/dist/src/foundation/release/index.js +0 -1
- package/dist/src/foundation/release/process-cleanup.d.ts +0 -1
- package/dist/src/foundation/release/process-cleanup.js +0 -1
- package/dist/src/foundation/release/release-gc.d.ts +0 -1
- package/dist/src/foundation/release/release-gc.js +0 -1
- package/dist/src/foundation/release/release-store.d.ts +24 -6
- package/dist/src/foundation/release/release-store.js +56 -21
- package/dist/src/foundation/release/release.d.ts +5 -6
- package/dist/src/foundation/release/release.js +21 -19
- package/dist/src/foundation/release/stable-release.d.ts +2 -2
- package/dist/src/foundation/release/stable-release.js +6 -5
- package/dist/src/foundation/release/update-transaction.d.ts +2 -2
- package/dist/src/foundation/release/update-transaction.js +8 -7
- package/dist/src/foundation/release/update.d.ts +2 -3
- package/dist/src/foundation/release/update.js +31 -29
- package/dist/src/foundation/storage/control-store.d.ts +0 -1
- package/dist/src/foundation/storage/control-store.js +28 -7
- package/dist/src/foundation/storage/index.d.ts +0 -1
- package/dist/src/foundation/storage/index.js +0 -1
- package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts +0 -1
- package/dist/src/foundation/structured-agent-runtime/backpressure.js +0 -1
- package/dist/src/foundation/structured-agent-runtime/commands.d.ts +0 -1
- package/dist/src/foundation/structured-agent-runtime/commands.js +0 -1
- package/dist/src/foundation/structured-agent-runtime/handshake.d.ts +2 -3
- package/dist/src/foundation/structured-agent-runtime/handshake.js +13 -13
- package/dist/src/foundation/structured-agent-runtime/index.d.ts +0 -1
- package/dist/src/foundation/structured-agent-runtime/index.js +0 -1
- package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts +0 -1
- package/dist/src/foundation/structured-agent-runtime/reconnection.js +0 -1
- package/dist/src/foundation/structured-agent-runtime/state.d.ts +0 -1
- package/dist/src/foundation/structured-agent-runtime/state.js +0 -1
- package/dist/src/foundation/supervision/index.d.ts +1 -2
- package/dist/src/foundation/supervision/index.js +1 -2
- package/dist/src/foundation/supervision/main.d.ts +0 -1
- package/dist/src/foundation/supervision/main.js +11 -10
- package/dist/src/foundation/supervision/paths.d.ts +1 -2
- package/dist/src/foundation/supervision/paths.js +1 -2
- package/dist/src/foundation/supervision/server.d.ts +3 -4
- package/dist/src/foundation/supervision/server.js +7 -6
- package/dist/src/foundation/transparent-terminal/command-resolution.d.ts +0 -1
- package/dist/src/foundation/transparent-terminal/command-resolution.js +0 -1
- package/dist/src/foundation/transparent-terminal/foreground-broker.d.ts +0 -1
- package/dist/src/foundation/transparent-terminal/foreground-broker.js +0 -1
- package/dist/src/foundation/transparent-terminal/index.d.ts +1 -1
- package/dist/src/foundation/transparent-terminal/index.js +1 -1
- package/dist/src/foundation/transparent-terminal/main.d.ts +3 -4
- package/dist/src/foundation/transparent-terminal/main.js +8 -21
- package/dist/src/foundation/transparent-terminal/native-launcher.d.ts +0 -1
- package/dist/src/foundation/transparent-terminal/native-launcher.js +0 -1
- package/dist/src/foundation/workspace-contracts/index.d.ts +0 -1
- package/dist/src/foundation/workspace-contracts/index.js +0 -1
- package/dist/src/foundation/workspace-contracts/model.d.ts +0 -1
- package/dist/src/foundation/workspace-contracts/model.js +0 -1
- package/dist/src/foundation/workspace-contracts/validation.d.ts +0 -1
- package/dist/src/foundation/workspace-contracts/validation.js +0 -1
- package/dist/src/product-identity.d.ts +37 -0
- package/dist/src/product-identity.js +149 -0
- package/dist/src/product-identity.json +96 -0
- package/docs/architecture/boundaries.md +2 -2
- package/docs/architecture/project-structure.md +2 -2
- package/docs/architecture/resource-and-data-policy.md +1 -1
- package/docs/architecture/terminal-host-proof-gate.md +2 -2
- package/docs/architecture/terminal-host-provenance.md +3 -3
- package/docs/architecture/terminal-host-spike-evidence.md +1 -1
- package/docs/architecture/toolchain.md +33 -7
- package/docs/features/launch-profiles.md +6 -6
- package/docs/manual-pi-boundary-candidate.md +33 -0
- package/docs/manual-transparent-checkpoint.md +11 -11
- package/package.json +10 -3
- package/bin/addone-ui.js +0 -20
- package/dist/src/cli/dispatch.d.ts.map +0 -1
- package/dist/src/cli/dispatch.js.map +0 -1
- package/dist/src/cli/index.d.ts.map +0 -1
- package/dist/src/cli/index.js.map +0 -1
- package/dist/src/cli/version-stats.d.ts.map +0 -1
- package/dist/src/cli/version-stats.js.map +0 -1
- package/dist/src/cli/version.d.ts.map +0 -1
- package/dist/src/cli/version.js.map +0 -1
- package/dist/src/features/launch/development-launch.d.ts.map +0 -1
- package/dist/src/features/launch/development-launch.js.map +0 -1
- package/dist/src/features/launch/index.d.ts.map +0 -1
- package/dist/src/features/launch/index.js.map +0 -1
- package/dist/src/features/launch/initialize-profile.d.ts.map +0 -1
- package/dist/src/features/launch/initialize-profile.js.map +0 -1
- package/dist/src/features/launch/intent.d.ts.map +0 -1
- package/dist/src/features/launch/intent.js.map +0 -1
- package/dist/src/features/launch/prepare-launch.d.ts.map +0 -1
- package/dist/src/features/launch/prepare-launch.js.map +0 -1
- package/dist/src/features/launch/profile-paths.d.ts.map +0 -1
- package/dist/src/features/launch/profile-paths.js.map +0 -1
- package/dist/src/features/launch/profiles.d.ts.map +0 -1
- package/dist/src/features/launch/profiles.js.map +0 -1
- package/dist/src/features/launch/runtime-selection.d.ts.map +0 -1
- package/dist/src/features/launch/runtime-selection.js.map +0 -1
- package/dist/src/features/owned-ui/customization.d.ts.map +0 -1
- package/dist/src/features/owned-ui/customization.js.map +0 -1
- package/dist/src/features/owned-ui/diagnostics.d.ts.map +0 -1
- package/dist/src/features/owned-ui/diagnostics.js.map +0 -1
- package/dist/src/features/owned-ui/index.d.ts.map +0 -1
- package/dist/src/features/owned-ui/index.js.map +0 -1
- package/dist/src/features/owned-ui/pi-session-shell.d.ts.map +0 -1
- package/dist/src/features/owned-ui/pi-session-shell.js.map +0 -1
- package/dist/src/features/owned-ui/run.d.ts.map +0 -1
- package/dist/src/features/owned-ui/run.js.map +0 -1
- package/dist/src/features/workspace/capabilities.d.ts.map +0 -1
- package/dist/src/features/workspace/capabilities.js.map +0 -1
- package/dist/src/features/workspace/index.d.ts.map +0 -1
- package/dist/src/features/workspace/index.js.map +0 -1
- package/dist/src/features/workspace/presentation.d.ts.map +0 -1
- package/dist/src/features/workspace/presentation.js.map +0 -1
- package/dist/src/features/workspace/reconciliation.d.ts.map +0 -1
- package/dist/src/features/workspace/reconciliation.js.map +0 -1
- package/dist/src/features/workspace/reducer.d.ts.map +0 -1
- package/dist/src/features/workspace/reducer.js.map +0 -1
- package/dist/src/features/workspace/router.d.ts.map +0 -1
- package/dist/src/features/workspace/router.js.map +0 -1
- package/dist/src/features/workspace/store.d.ts.map +0 -1
- package/dist/src/features/workspace/store.js.map +0 -1
- package/dist/src/foundation/lifecycle/index.d.ts.map +0 -1
- package/dist/src/foundation/lifecycle/index.js.map +0 -1
- package/dist/src/foundation/lifecycle/model.d.ts.map +0 -1
- package/dist/src/foundation/lifecycle/model.js.map +0 -1
- package/dist/src/foundation/lifecycle/paths.d.ts.map +0 -1
- package/dist/src/foundation/lifecycle/paths.js.map +0 -1
- package/dist/src/foundation/native-host-protocol/codec.d.ts.map +0 -1
- package/dist/src/foundation/native-host-protocol/codec.js.map +0 -1
- package/dist/src/foundation/native-host-protocol/evidence.d.ts.map +0 -1
- package/dist/src/foundation/native-host-protocol/evidence.js.map +0 -1
- package/dist/src/foundation/native-host-protocol/index.d.ts.map +0 -1
- package/dist/src/foundation/native-host-protocol/index.js.map +0 -1
- package/dist/src/foundation/native-host-protocol/messages.d.ts.map +0 -1
- package/dist/src/foundation/native-host-protocol/messages.js.map +0 -1
- package/dist/src/foundation/native-host-protocol/proof-gate.d.ts.map +0 -1
- package/dist/src/foundation/native-host-protocol/proof-gate.js.map +0 -1
- package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts.map +0 -1
- package/dist/src/foundation/owned-ui-contracts/extension-ui.js.map +0 -1
- package/dist/src/foundation/owned-ui-contracts/index.d.ts.map +0 -1
- package/dist/src/foundation/owned-ui-contracts/index.js.map +0 -1
- package/dist/src/foundation/owned-ui-contracts/model.d.ts.map +0 -1
- package/dist/src/foundation/owned-ui-contracts/model.js.map +0 -1
- package/dist/src/foundation/owned-ui-contracts/validation.d.ts.map +0 -1
- package/dist/src/foundation/owned-ui-contracts/validation.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/components.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/components.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/conformance.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/conformance.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/index.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/index.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-components.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-components.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-footer-status.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/theme.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/theme.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/external-editor.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/model-search.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts.map +0 -1
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js.map +0 -1
- package/dist/src/foundation/pi-engine-adapter/adapter.d.ts.map +0 -1
- package/dist/src/foundation/pi-engine-adapter/adapter.js.map +0 -1
- package/dist/src/foundation/pi-engine-adapter/conformance.d.ts.map +0 -1
- package/dist/src/foundation/pi-engine-adapter/conformance.js.map +0 -1
- package/dist/src/foundation/pi-engine-adapter/index.d.ts.map +0 -1
- package/dist/src/foundation/pi-engine-adapter/index.js.map +0 -1
- package/dist/src/foundation/pi-engine-adapter/workflows.d.ts.map +0 -1
- package/dist/src/foundation/pi-engine-adapter/workflows.js.map +0 -1
- package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts.map +0 -1
- package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js.map +0 -1
- package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts.map +0 -1
- package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js.map +0 -1
- package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts.map +0 -1
- package/dist/src/foundation/pi-tui-runtime-adapter/contracts.js.map +0 -1
- package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts.map +0 -1
- package/dist/src/foundation/pi-tui-runtime-adapter/index.js.map +0 -1
- package/dist/src/foundation/protocol/client.d.ts.map +0 -1
- package/dist/src/foundation/protocol/client.js.map +0 -1
- package/dist/src/foundation/protocol/index.d.ts.map +0 -1
- package/dist/src/foundation/protocol/index.js.map +0 -1
- package/dist/src/foundation/protocol/messages.d.ts.map +0 -1
- package/dist/src/foundation/protocol/messages.js.map +0 -1
- package/dist/src/foundation/release/bootstrap.d.ts.map +0 -1
- package/dist/src/foundation/release/bootstrap.js.map +0 -1
- package/dist/src/foundation/release/cohort-selection.d.ts.map +0 -1
- package/dist/src/foundation/release/cohort-selection.js.map +0 -1
- package/dist/src/foundation/release/cohort-state.d.ts.map +0 -1
- package/dist/src/foundation/release/cohort-state.js.map +0 -1
- package/dist/src/foundation/release/development-preview-release.d.ts.map +0 -1
- package/dist/src/foundation/release/development-preview-release.js.map +0 -1
- package/dist/src/foundation/release/index.d.ts.map +0 -1
- package/dist/src/foundation/release/index.js.map +0 -1
- package/dist/src/foundation/release/process-cleanup.d.ts.map +0 -1
- package/dist/src/foundation/release/process-cleanup.js.map +0 -1
- package/dist/src/foundation/release/release-gc.d.ts.map +0 -1
- package/dist/src/foundation/release/release-gc.js.map +0 -1
- package/dist/src/foundation/release/release-store.d.ts.map +0 -1
- package/dist/src/foundation/release/release-store.js.map +0 -1
- package/dist/src/foundation/release/release.d.ts.map +0 -1
- package/dist/src/foundation/release/release.js.map +0 -1
- package/dist/src/foundation/release/stable-release.d.ts.map +0 -1
- package/dist/src/foundation/release/stable-release.js.map +0 -1
- package/dist/src/foundation/release/update-transaction.d.ts.map +0 -1
- package/dist/src/foundation/release/update-transaction.js.map +0 -1
- package/dist/src/foundation/release/update.d.ts.map +0 -1
- package/dist/src/foundation/release/update.js.map +0 -1
- package/dist/src/foundation/storage/control-store.d.ts.map +0 -1
- package/dist/src/foundation/storage/control-store.js.map +0 -1
- package/dist/src/foundation/storage/index.d.ts.map +0 -1
- package/dist/src/foundation/storage/index.js.map +0 -1
- package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts.map +0 -1
- package/dist/src/foundation/structured-agent-runtime/backpressure.js.map +0 -1
- package/dist/src/foundation/structured-agent-runtime/commands.d.ts.map +0 -1
- package/dist/src/foundation/structured-agent-runtime/commands.js.map +0 -1
- package/dist/src/foundation/structured-agent-runtime/handshake.d.ts.map +0 -1
- package/dist/src/foundation/structured-agent-runtime/handshake.js.map +0 -1
- package/dist/src/foundation/structured-agent-runtime/index.d.ts.map +0 -1
- package/dist/src/foundation/structured-agent-runtime/index.js.map +0 -1
- package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts.map +0 -1
- package/dist/src/foundation/structured-agent-runtime/reconnection.js.map +0 -1
- package/dist/src/foundation/structured-agent-runtime/state.d.ts.map +0 -1
- package/dist/src/foundation/structured-agent-runtime/state.js.map +0 -1
- package/dist/src/foundation/supervision/index.d.ts.map +0 -1
- package/dist/src/foundation/supervision/index.js.map +0 -1
- package/dist/src/foundation/supervision/main.d.ts.map +0 -1
- package/dist/src/foundation/supervision/main.js.map +0 -1
- package/dist/src/foundation/supervision/paths.d.ts.map +0 -1
- package/dist/src/foundation/supervision/paths.js.map +0 -1
- package/dist/src/foundation/supervision/server.d.ts.map +0 -1
- package/dist/src/foundation/supervision/server.js.map +0 -1
- package/dist/src/foundation/transparent-terminal/command-resolution.d.ts.map +0 -1
- package/dist/src/foundation/transparent-terminal/command-resolution.js.map +0 -1
- package/dist/src/foundation/transparent-terminal/foreground-broker.d.ts.map +0 -1
- package/dist/src/foundation/transparent-terminal/foreground-broker.js.map +0 -1
- package/dist/src/foundation/transparent-terminal/index.d.ts.map +0 -1
- package/dist/src/foundation/transparent-terminal/index.js.map +0 -1
- package/dist/src/foundation/transparent-terminal/main.d.ts.map +0 -1
- package/dist/src/foundation/transparent-terminal/main.js.map +0 -1
- package/dist/src/foundation/transparent-terminal/native-launcher.d.ts.map +0 -1
- package/dist/src/foundation/transparent-terminal/native-launcher.js.map +0 -1
- package/dist/src/foundation/workspace-contracts/index.d.ts.map +0 -1
- package/dist/src/foundation/workspace-contracts/index.js.map +0 -1
- package/dist/src/foundation/workspace-contracts/model.d.ts.map +0 -1
- package/dist/src/foundation/workspace-contracts/model.js.map +0 -1
- package/dist/src/foundation/workspace-contracts/validation.d.ts.map +0 -1
- package/dist/src/foundation/workspace-contracts/validation.js.map +0 -1
- /package/bin/{addone-supervisor.js → a1-supervisor.js} +0 -0
|
@@ -4,14 +4,15 @@ import { connect } from "node:net";
|
|
|
4
4
|
import { isAbsolute, relative, resolve, sep } from "node:path";
|
|
5
5
|
import crossSpawn from "cross-spawn";
|
|
6
6
|
import { valid as validSemver } from "semver";
|
|
7
|
+
import { PRODUCT_IDENTITY, PRODUCT_TEXT } from "../../product-identity.js";
|
|
7
8
|
import { certifyMaterializedRelease, probeOwnership, readEndpointMetadata, removeEndpointArtifacts, startSupervisor, waitForProcessExit, waitForVerifiedEndpoint, } from "./bootstrap.js";
|
|
8
|
-
import {
|
|
9
|
+
import { resolveProductPaths } from "../lifecycle/index.js";
|
|
9
10
|
import { encodeFrame, LineFrameDecoder } from "../protocol/index.js";
|
|
10
11
|
import { CohortStateStore } from "./cohort-state.js";
|
|
11
12
|
import { cleanupVerifiedOwner, processIsAlive } from "./process-cleanup.js";
|
|
12
13
|
import { materializeRelease, readMaterializedRelease } from "./release-store.js";
|
|
13
14
|
import { UpdateTransactionStore } from "./update-transaction.js";
|
|
14
|
-
export const
|
|
15
|
+
export const PRODUCT_PACKAGE = PRODUCT_TEXT.packageName;
|
|
15
16
|
const UPDATE_DIST_TAGS = { stable: "latest", next: "next" };
|
|
16
17
|
const defaultFileSystem = {
|
|
17
18
|
async readFile(path) { return await readFile(path, "utf8"); },
|
|
@@ -39,8 +40,8 @@ export function createNpmProcessRunner(platform = process.platform) {
|
|
|
39
40
|
} });
|
|
40
41
|
});
|
|
41
42
|
}
|
|
42
|
-
export function createUpdateLifecycleCoordinator(environment = process.env, fileSystem = defaultFileSystem) {
|
|
43
|
-
const paths =
|
|
43
|
+
export function createUpdateLifecycleCoordinator(environment = process.env, fileSystem = defaultFileSystem, output = defaultOutput) {
|
|
44
|
+
const paths = resolveProductPaths(environment);
|
|
44
45
|
const stateStore = new CohortStateStore(paths.dataDir);
|
|
45
46
|
return {
|
|
46
47
|
async targetIsActive(targetVersion) {
|
|
@@ -59,7 +60,7 @@ export function createUpdateLifecycleCoordinator(environment = process.env, file
|
|
|
59
60
|
return { priorActiveVersion };
|
|
60
61
|
const ownership = await probeOwnership(endpoint);
|
|
61
62
|
if (ownership !== "live-verified" && ownership !== "dead") {
|
|
62
|
-
throw new Error(`
|
|
63
|
+
throw new Error(PRODUCT_TEXT.diagnostic(`refused update shutdown because supervisor ownership is ${ownership}`));
|
|
63
64
|
}
|
|
64
65
|
const immutableRoot = await canonicalImmutableRoot(paths.dataDir, endpoint.releaseRoot);
|
|
65
66
|
const legacyMutableInstall = ownership === "live-verified" && !immutableRoot;
|
|
@@ -74,7 +75,7 @@ export function createUpdateLifecycleCoordinator(environment = process.env, file
|
|
|
74
75
|
reason: legacyMutableInstall ? "legacy-mutable-install" : "explicit-update",
|
|
75
76
|
});
|
|
76
77
|
if (!cleanup.terminated)
|
|
77
|
-
throw new Error(`verified
|
|
78
|
+
throw new Error(`verified ${PRODUCT_TEXT.displayName} owner ${endpoint.pid} rejected shutdown and could not be terminated: ${identity.reason}`);
|
|
78
79
|
}
|
|
79
80
|
else if (identity.accepted) {
|
|
80
81
|
await waitForProcessExit(endpoint.pid, 3_000).catch(async () => {
|
|
@@ -83,7 +84,7 @@ export function createUpdateLifecycleCoordinator(environment = process.env, file
|
|
|
83
84
|
reason: legacyMutableInstall ? "legacy-mutable-install" : "explicit-update",
|
|
84
85
|
});
|
|
85
86
|
if (!cleanup.terminated)
|
|
86
|
-
throw new Error(`verified
|
|
87
|
+
throw new Error(`verified ${PRODUCT_TEXT.displayName} owner ${endpoint.pid} did not terminate`);
|
|
87
88
|
});
|
|
88
89
|
}
|
|
89
90
|
await removeEndpointArtifacts(paths.endpointMetadataPath, paths.endpoint);
|
|
@@ -92,7 +93,7 @@ export function createUpdateLifecycleCoordinator(environment = process.env, file
|
|
|
92
93
|
async verifyPackageUnlocked(packageRoot) {
|
|
93
94
|
if (fileSystem.access)
|
|
94
95
|
await fileSystem.access(packageRoot);
|
|
95
|
-
const probe = `${packageRoot}.
|
|
96
|
+
const probe = `${packageRoot}.${PRODUCT_IDENTITY.filesystem.slug}-unlock-probe`;
|
|
96
97
|
const { rename } = await import("node:fs/promises");
|
|
97
98
|
try {
|
|
98
99
|
await rename(packageRoot, probe);
|
|
@@ -101,13 +102,15 @@ export function createUpdateLifecycleCoordinator(environment = process.env, file
|
|
|
101
102
|
catch (error) {
|
|
102
103
|
// Best-effort rollback if the first rename succeeded and the second did not.
|
|
103
104
|
await rename(probe, packageRoot).catch(() => { });
|
|
104
|
-
throw new Error(`
|
|
105
|
+
throw new Error(PRODUCT_TEXT.diagnostic(`package remains locked after verified shutdown: ${errorMessage(error)}`));
|
|
105
106
|
}
|
|
106
107
|
},
|
|
107
108
|
async activateInstalled(packageRoot, targetVersion, phase) {
|
|
108
|
-
const candidate = await materializeRelease(packageRoot, paths.dataDir
|
|
109
|
+
const candidate = await materializeRelease(packageRoot, paths.dataDir, {
|
|
110
|
+
onProgress: progress => output.stdout(`${PRODUCT_TEXT.diagnostic(`preparing ${progress.fileCount} installed release files; this one-time activation may take a moment.`)}\n`),
|
|
111
|
+
});
|
|
109
112
|
if (candidate.packageVersion !== targetVersion)
|
|
110
|
-
throw new Error(`installed
|
|
113
|
+
throw new Error(`installed ${PRODUCT_TEXT.displayName} version ${candidate.packageVersion} does not match target ${targetVersion}`);
|
|
111
114
|
await stateStore.recordCandidate(candidate);
|
|
112
115
|
await phase("materialized");
|
|
113
116
|
const diagnostics = await certifyMaterializedRelease(candidate, paths.dataDir);
|
|
@@ -135,23 +138,23 @@ export async function runSelfUpdate(options) {
|
|
|
135
138
|
runningVersion = parsedVersion;
|
|
136
139
|
}
|
|
137
140
|
catch (error) {
|
|
138
|
-
output.stderr(`
|
|
141
|
+
output.stderr(`${PRODUCT_TEXT.diagnostic(`could not read its running package version: ${errorMessage(error)}`)}\n`);
|
|
139
142
|
return 1;
|
|
140
143
|
}
|
|
141
|
-
const targetLookup = await runNpm(runner, ["view", `${
|
|
144
|
+
const targetLookup = await runNpm(runner, ["view", `${PRODUCT_PACKAGE}@${distTag}`, "version"], true, output, `query the npm ${distTag} channel`);
|
|
142
145
|
if (targetLookup.result === null)
|
|
143
146
|
return targetLookup.exitCode;
|
|
144
147
|
const targetVersion = validSemver(targetLookup.result.stdout.trim());
|
|
145
148
|
if (targetVersion === null) {
|
|
146
|
-
output.stderr(`
|
|
149
|
+
output.stderr(`${PRODUCT_TEXT.diagnostic(`received a malformed ${distTag} version from npm: ${JSON.stringify(targetLookup.result.stdout.trim())}.`)}\n`);
|
|
147
150
|
return 1;
|
|
148
151
|
}
|
|
149
|
-
output.stdout(`
|
|
152
|
+
output.stdout(`${PRODUCT_TEXT.diagnostic(`update (${channel}): ${runningVersion} → ${targetVersion}.`)}\n`);
|
|
150
153
|
const rootLookup = await runNpm(runner, ["root", "--global"], true, output, "resolve npm's global package root");
|
|
151
154
|
if (rootLookup.result === null)
|
|
152
155
|
return rootLookup.exitCode;
|
|
153
156
|
if (rootLookup.result.stdout.trim().length === 0) {
|
|
154
|
-
output.stderr("
|
|
157
|
+
output.stderr(`${PRODUCT_TEXT.diagnostic("could not verify its installation because npm returned an empty global package root.")}\n`);
|
|
155
158
|
return 1;
|
|
156
159
|
}
|
|
157
160
|
let packageRoot;
|
|
@@ -160,16 +163,16 @@ export async function runSelfUpdate(options) {
|
|
|
160
163
|
[packageRoot, globalRoot] = await Promise.all([fileSystem.realpath(options.packageRoot), fileSystem.realpath(rootLookup.result.stdout.trim())]);
|
|
161
164
|
}
|
|
162
165
|
catch (error) {
|
|
163
|
-
output.stderr(`
|
|
166
|
+
output.stderr(`${PRODUCT_TEXT.diagnostic(`could not canonicalize the running and global npm paths: ${errorMessage(error)}`)}\n`);
|
|
164
167
|
return 1;
|
|
165
168
|
}
|
|
166
169
|
if (!isContainedBy(globalRoot, packageRoot)) {
|
|
167
|
-
output.stderr(`
|
|
170
|
+
output.stderr(`${PRODUCT_TEXT.diagnostic(`refused to update automatically because ${packageRoot} is not managed beneath npm's global package root ${globalRoot}.`)}\n`);
|
|
168
171
|
return 1;
|
|
169
172
|
}
|
|
170
173
|
const environment = options.environment ?? process.env;
|
|
171
|
-
const paths =
|
|
172
|
-
const lifecycle = options.lifecycle ?? createUpdateLifecycleCoordinator(environment, fileSystem);
|
|
174
|
+
const paths = resolveProductPaths(environment);
|
|
175
|
+
const lifecycle = options.lifecycle ?? createUpdateLifecycleCoordinator(environment, fileSystem, output);
|
|
173
176
|
const transactionStore = options.transactionStore ?? new UpdateTransactionStore(paths.dataDir);
|
|
174
177
|
let transaction = await transactionStore.read();
|
|
175
178
|
try {
|
|
@@ -179,7 +182,7 @@ export async function runSelfUpdate(options) {
|
|
|
179
182
|
await transactionStore.finish("completed");
|
|
180
183
|
}
|
|
181
184
|
await transactionStore.clearCompleted();
|
|
182
|
-
output.stdout("
|
|
185
|
+
output.stdout(`${PRODUCT_TEXT.diagnostic("is already current and active for this channel; no installation was changed.")}\n`);
|
|
183
186
|
return 0;
|
|
184
187
|
}
|
|
185
188
|
const cohortState = await new CohortStateStore(paths.dataDir).read();
|
|
@@ -195,8 +198,8 @@ export async function runSelfUpdate(options) {
|
|
|
195
198
|
transaction = await transactionStore.advance("ownership-released");
|
|
196
199
|
}
|
|
197
200
|
if (phaseBefore(transaction.phase, "package-installed")) {
|
|
198
|
-
output.stdout(`
|
|
199
|
-
const installation = await runNpm(runner, ["install", "--global", `${
|
|
201
|
+
output.stdout(`${PRODUCT_TEXT.diagnostic(`is installing ${PRODUCT_TEXT.packageName}@${targetVersion}.`)}\n`);
|
|
202
|
+
const installation = await runNpm(runner, ["install", "--global", `${PRODUCT_PACKAGE}@${targetVersion}`], false, output, "start the global npm installation", false);
|
|
200
203
|
if (installation.result === null)
|
|
201
204
|
throw new UpdateFailure(installation.exitCode, "npm process failed");
|
|
202
205
|
if (installation.result.code !== 0)
|
|
@@ -207,7 +210,7 @@ export async function runSelfUpdate(options) {
|
|
|
207
210
|
await transactionStore.advance("supervisor-verified");
|
|
208
211
|
await transactionStore.finish("completed");
|
|
209
212
|
await transactionStore.clearCompleted();
|
|
210
|
-
output.stdout(`
|
|
213
|
+
output.stdout(`${PRODUCT_TEXT.diagnostic(`updated successfully: ${targetVersion} (${channel}).`)}\n`);
|
|
211
214
|
return 0;
|
|
212
215
|
}
|
|
213
216
|
catch (error) {
|
|
@@ -217,7 +220,7 @@ export async function runSelfUpdate(options) {
|
|
|
217
220
|
: await rollbackPriorCohort(paths.dataDir, environment, transaction?.priorActiveReleaseId ?? null).catch(rollbackError => `rollback failed: ${errorMessage(rollbackError)}`);
|
|
218
221
|
if (transaction)
|
|
219
222
|
await transactionStore.finish(rollback === "rolled back" ? "rolled-back" : "failed", `${message}; ${rollback}`);
|
|
220
|
-
output.stderr(`
|
|
223
|
+
output.stderr(`${PRODUCT_TEXT.diagnostic(`update failed: ${message}. ${rollback}. Diagnostics: ${transactionStore.path}`)}\n`);
|
|
221
224
|
return error instanceof UpdateFailure ? error.exitCode : 1;
|
|
222
225
|
}
|
|
223
226
|
}
|
|
@@ -256,11 +259,11 @@ async function runNpm(runner, arguments_, captureStdout, output, action, reportN
|
|
|
256
259
|
result = await runner("npm", arguments_, { captureStdout });
|
|
257
260
|
}
|
|
258
261
|
catch (error) {
|
|
259
|
-
output.stderr(`
|
|
262
|
+
output.stderr(`${PRODUCT_TEXT.diagnostic(`could not execute npm to ${action}: ${errorMessage(error)}`)}\n`);
|
|
260
263
|
return { result: null, exitCode: 1 };
|
|
261
264
|
}
|
|
262
265
|
if (result.code !== 0 && reportNonzero) {
|
|
263
|
-
output.stderr(`
|
|
266
|
+
output.stderr(`${PRODUCT_TEXT.diagnostic(`could not ${action}; npm exited with status ${formatExitCode(result.code)}. Review npm's diagnostics above.`)}\n`);
|
|
264
267
|
return { result: null, exitCode: unsuccessfulCode(result.code) };
|
|
265
268
|
}
|
|
266
269
|
return { result, exitCode: 0 };
|
|
@@ -280,7 +283,7 @@ async function rollbackPriorCohort(dataDir, environment, priorReleaseId) {
|
|
|
280
283
|
throw new Error(`prior release ${priorReleaseId} is not the recorded rollback cohort`);
|
|
281
284
|
}
|
|
282
285
|
const release = await readMaterializedRelease(prior.releaseRoot);
|
|
283
|
-
const paths =
|
|
286
|
+
const paths = resolveProductPaths(environment);
|
|
284
287
|
await startSupervisor(release, environment);
|
|
285
288
|
await waitForVerifiedEndpoint(paths.endpointMetadataPath, release, 8_000);
|
|
286
289
|
return "rolled back";
|
|
@@ -313,4 +316,3 @@ function isContainedBy(parent, child) {
|
|
|
313
316
|
function unsuccessfulCode(code) { return code === null || code === 0 ? 1 : code; }
|
|
314
317
|
function formatExitCode(code) { return code === null ? "unknown" : String(code); }
|
|
315
318
|
function errorMessage(error) { return error instanceof Error ? error.message : String(error); }
|
|
316
|
-
//# sourceMappingURL=update.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DatabaseSync } from "node:sqlite";
|
|
2
2
|
import { mkdirSync } from "node:fs";
|
|
3
3
|
import { dirname } from "node:path";
|
|
4
|
+
import { PRODUCT_IDENTITY } from "../../product-identity.js";
|
|
4
5
|
import { assertManagedAgentDescriptor, assertRecoveryAuthority, assertTerminalSessionLaunch, assertTerminalTopologySnapshot, } from "../workspace-contracts/index.js";
|
|
5
6
|
export const DEFAULT_WORKSPACE_ID = "workspace-default";
|
|
6
7
|
const INITIAL_WORKSPACE_ID = DEFAULT_WORKSPACE_ID;
|
|
@@ -11,12 +12,18 @@ export class ControlStore {
|
|
|
11
12
|
this.bootNonce = bootNonce;
|
|
12
13
|
mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
|
|
13
14
|
this.database = new DatabaseSync(path);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
try {
|
|
16
|
+
this.database.exec("PRAGMA journal_mode = WAL");
|
|
17
|
+
this.database.exec("PRAGMA foreign_keys = ON");
|
|
18
|
+
this.migrate();
|
|
19
|
+
if (bootNonce !== null) {
|
|
20
|
+
this.reconcilePriorBootGenerations(bootNonce);
|
|
21
|
+
this.reconcilePriorBootForegroundTerminalLeases(bootNonce);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
this.database.close();
|
|
26
|
+
throw error;
|
|
20
27
|
}
|
|
21
28
|
}
|
|
22
29
|
migrate() {
|
|
@@ -24,6 +31,8 @@ export class ControlStore {
|
|
|
24
31
|
const version = versionRow.user_version;
|
|
25
32
|
if (version > 4)
|
|
26
33
|
throw new Error(`control database version ${version} is newer than supported version 4`);
|
|
34
|
+
if (version !== 0)
|
|
35
|
+
this.#assertCurrentControlSchema();
|
|
27
36
|
if (version === 0) {
|
|
28
37
|
this.database.exec(`
|
|
29
38
|
BEGIN IMMEDIATE;
|
|
@@ -165,6 +174,19 @@ export class ControlStore {
|
|
|
165
174
|
COMMIT;
|
|
166
175
|
`);
|
|
167
176
|
}
|
|
177
|
+
if (version === 0) {
|
|
178
|
+
this.database.exec("CREATE TABLE product_identity (schema TEXT PRIMARY KEY NOT NULL)");
|
|
179
|
+
this.database.prepare("INSERT INTO product_identity (schema) VALUES (?)").run(PRODUCT_IDENTITY.protocol.controlStoreSchema);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
#assertCurrentControlSchema() {
|
|
183
|
+
const table = this.database.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'product_identity'").get();
|
|
184
|
+
if (!table)
|
|
185
|
+
throw new Error("control database has no A1 product schema; legacy state is unsupported");
|
|
186
|
+
const identity = this.database.prepare("SELECT schema FROM product_identity").get();
|
|
187
|
+
if (identity?.schema !== PRODUCT_IDENTITY.protocol.controlStoreSchema) {
|
|
188
|
+
throw new Error(`control database schema ${String(identity?.schema)} is unsupported; expected ${PRODUCT_IDENTITY.protocol.controlStoreSchema}`);
|
|
189
|
+
}
|
|
168
190
|
}
|
|
169
191
|
reconcilePriorBootGenerations(bootNonce) {
|
|
170
192
|
const now = new Date().toISOString();
|
|
@@ -456,4 +478,3 @@ function foregroundLeaseFromRow(row) {
|
|
|
456
478
|
outcome: row.outcome_json ? JSON.parse(row.outcome_json) : null,
|
|
457
479
|
};
|
|
458
480
|
}
|
|
459
|
-
//# sourceMappingURL=control-store.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type AdapterId, type StructuredCapabilityContract, type StructuredFlowLimits } from "../workspace-contracts/index.js";
|
|
2
|
-
export declare const STRUCTURED_ADAPTER_ENVELOPE:
|
|
2
|
+
export declare const STRUCTURED_ADAPTER_ENVELOPE: string;
|
|
3
3
|
export declare const STRUCTURED_ADAPTER_ENVELOPE_REVISION: 1;
|
|
4
4
|
export declare const REQUIRED_STRUCTURED_FEATURES: readonly ["identity.adapter.v1", "commands.correlated.v1", "events.typed.v1", "flow-control.limits.v1"];
|
|
5
5
|
export declare const OPTIONAL_STRUCTURED_FEATURES: readonly ["snapshots.authoritative.v1", "resume.position.v1", "resume.snapshot.v1", "commands.cancellable.v1", "attachments.typed.v1"];
|
|
6
6
|
export type StructuredProtocolFeature = typeof REQUIRED_STRUCTURED_FEATURES[number] | typeof OPTIONAL_STRUCTURED_FEATURES[number];
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const STRUCTURED_FLOW_LIMITS: StructuredFlowLimits;
|
|
8
8
|
export interface StructuredAdapterHello {
|
|
9
9
|
readonly envelope: typeof STRUCTURED_ADAPTER_ENVELOPE;
|
|
10
10
|
readonly envelopeRevision: typeof STRUCTURED_ADAPTER_ENVELOPE_REVISION;
|
|
@@ -39,4 +39,3 @@ export interface StructuredHandshakeRejected {
|
|
|
39
39
|
export type StructuredHandshakeResult = StructuredHandshakeAccepted | StructuredHandshakeRejected;
|
|
40
40
|
export declare function localStructuredAdapterHello(): StructuredAdapterPeerHello;
|
|
41
41
|
export declare function negotiateStructuredAdapter(value: unknown, server?: StructuredAdapterPeerHello): StructuredHandshakeResult;
|
|
42
|
-
//# sourceMappingURL=handshake.d.ts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { WORKSPACE_CONTRACT_VERSION, assertStructuredCapability, } from "../workspace-contracts/index.js";
|
|
2
|
-
|
|
2
|
+
import { PRODUCT_IDENTITY, PRODUCT_TEXT } from "../../product-identity.js";
|
|
3
|
+
export const STRUCTURED_ADAPTER_ENVELOPE = PRODUCT_IDENTITY.protocol.structuredAgentSchema;
|
|
3
4
|
export const STRUCTURED_ADAPTER_ENVELOPE_REVISION = 1;
|
|
4
5
|
export const REQUIRED_STRUCTURED_FEATURES = [
|
|
5
6
|
"identity.adapter.v1",
|
|
@@ -14,7 +15,7 @@ export const OPTIONAL_STRUCTURED_FEATURES = [
|
|
|
14
15
|
"commands.cancellable.v1",
|
|
15
16
|
"attachments.typed.v1",
|
|
16
17
|
];
|
|
17
|
-
export const
|
|
18
|
+
export const STRUCTURED_FLOW_LIMITS = Object.freeze({
|
|
18
19
|
maxEventBytes: 64 * 1024,
|
|
19
20
|
maxSnapshotBytes: 1024 * 1024,
|
|
20
21
|
maxAttachmentBytes: 2 * 1024 * 1024,
|
|
@@ -28,7 +29,7 @@ export function localStructuredAdapterHello() {
|
|
|
28
29
|
envelopeRevision: STRUCTURED_ADAPTER_ENVELOPE_REVISION,
|
|
29
30
|
requiredFeatures: REQUIRED_STRUCTURED_FEATURES,
|
|
30
31
|
optionalFeatures: OPTIONAL_STRUCTURED_FEATURES,
|
|
31
|
-
flowLimits:
|
|
32
|
+
flowLimits: STRUCTURED_FLOW_LIMITS,
|
|
32
33
|
};
|
|
33
34
|
}
|
|
34
35
|
export function negotiateStructuredAdapter(value, server = localStructuredAdapterHello()) {
|
|
@@ -36,7 +37,7 @@ export function negotiateStructuredAdapter(value, server = localStructuredAdapte
|
|
|
36
37
|
return reject("invalid-message", [], [], "adapter hello is malformed or omits required identity, feature, or capability fields");
|
|
37
38
|
}
|
|
38
39
|
if (value.envelope !== server.envelope || value.envelopeRevision !== server.envelopeRevision) {
|
|
39
|
-
return reject("unsupported-version", [], [], `structured adapter envelope mismatch: adapter ${String(value.envelope)}/${String(value.envelopeRevision)};
|
|
40
|
+
return reject("unsupported-version", [], [], `structured adapter envelope mismatch: adapter ${String(value.envelope)}/${String(value.envelopeRevision)}; ${PRODUCT_TEXT.displayName} ${server.envelope}/${server.envelopeRevision}`);
|
|
40
41
|
}
|
|
41
42
|
if (!isValidIdentityText(value.adapterId) || !isValidBuildId(value.buildId)) {
|
|
42
43
|
return reject("invalid-identity", [], [], "adapter identity and build identity must be bounded non-empty values");
|
|
@@ -62,7 +63,7 @@ export function negotiateStructuredAdapter(value, server = localStructuredAdapte
|
|
|
62
63
|
const missingFromAdapter = server.requiredFeatures.filter(feature => !advertised.features.has(feature)).sort();
|
|
63
64
|
const missingFromServer = [...adapterRequired].filter(feature => !serverFeatures.has(feature)).sort();
|
|
64
65
|
if (missingFromAdapter.length > 0 || missingFromServer.length > 0) {
|
|
65
|
-
return reject("incompatible-features", missingFromAdapter, missingFromServer, `required structured features are unavailable; adapter missing [${missingFromAdapter.join(", ")}],
|
|
66
|
+
return reject("incompatible-features", missingFromAdapter, missingFromServer, `required structured features are unavailable; adapter missing [${missingFromAdapter.join(", ")}], ${PRODUCT_TEXT.displayName} missing [${missingFromServer.join(", ")}]`);
|
|
66
67
|
}
|
|
67
68
|
const capabilityFeatures = requiredFeaturesForCapability(value.capability);
|
|
68
69
|
const undeclared = capabilityFeatures.filter(feature => !advertised.features.has(feature));
|
|
@@ -97,14 +98,14 @@ function requiredFeaturesForCapability(capability) {
|
|
|
97
98
|
features.push("attachments.typed.v1");
|
|
98
99
|
return features;
|
|
99
100
|
}
|
|
100
|
-
function negotiateFlow(adapter,
|
|
101
|
+
function negotiateFlow(adapter, server) {
|
|
101
102
|
return Object.freeze({
|
|
102
|
-
maxEventBytes: Math.min(adapter.maxEventBytes,
|
|
103
|
-
maxSnapshotBytes: Math.min(adapter.maxSnapshotBytes,
|
|
104
|
-
maxAttachmentBytes: Math.min(adapter.maxAttachmentBytes,
|
|
105
|
-
maxQueuedEvents: Math.min(adapter.maxQueuedEvents,
|
|
106
|
-
maxConcurrentCommands: Math.min(adapter.maxConcurrentCommands,
|
|
107
|
-
maxReconnectEvents: Math.min(adapter.maxReconnectEvents,
|
|
103
|
+
maxEventBytes: Math.min(adapter.maxEventBytes, server.maxEventBytes),
|
|
104
|
+
maxSnapshotBytes: Math.min(adapter.maxSnapshotBytes, server.maxSnapshotBytes),
|
|
105
|
+
maxAttachmentBytes: Math.min(adapter.maxAttachmentBytes, server.maxAttachmentBytes),
|
|
106
|
+
maxQueuedEvents: Math.min(adapter.maxQueuedEvents, server.maxQueuedEvents),
|
|
107
|
+
maxConcurrentCommands: Math.min(adapter.maxConcurrentCommands, server.maxConcurrentCommands),
|
|
108
|
+
maxReconnectEvents: Math.min(adapter.maxReconnectEvents, server.maxReconnectEvents),
|
|
108
109
|
});
|
|
109
110
|
}
|
|
110
111
|
function isStructuredAdapterHello(value) {
|
|
@@ -148,4 +149,3 @@ function isRecord(value) {
|
|
|
148
149
|
function isStringArray(value) {
|
|
149
150
|
return Array.isArray(value) && value.every(item => typeof item === "string");
|
|
150
151
|
}
|
|
151
|
-
//# sourceMappingURL=handshake.js.map
|
|
@@ -35,4 +35,3 @@ export declare class StructuredReconnectionManager {
|
|
|
35
35
|
constructor(capability: StructuredCapabilityContract);
|
|
36
36
|
resume(authorityValue: AgentRecoveryAuthority, proof: StructuredResumeProof, reducer?: StructuredEventReducer | null): StructuredReconnectionResult;
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=reconnection.d.ts.map
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { appendFileSync, mkdirSync } from "node:fs";
|
|
3
|
-
import {
|
|
3
|
+
import { resolve } from "node:path";
|
|
4
|
+
import { assertImmutableExecutionRoot, readCertifiedReleaseManifest } from "../release/index.js";
|
|
4
5
|
import { ControlStore } from "../storage/index.js";
|
|
5
|
-
import {
|
|
6
|
+
import { resolveProductPaths } from "./paths.js";
|
|
6
7
|
import { SupervisorServer } from "./server.js";
|
|
8
|
+
import { PRODUCT_IDENTITY, PRODUCT_TEXT } from "../../product-identity.js";
|
|
7
9
|
export async function runSupervisor() {
|
|
8
|
-
const paths =
|
|
10
|
+
const paths = resolveProductPaths();
|
|
9
11
|
mkdirSync(paths.runtimeDir, { recursive: true, mode: 0o700 });
|
|
10
12
|
const log = (message) => appendFileSync(paths.supervisorLogPath, `${new Date().toISOString()} ${message}\n`);
|
|
11
|
-
const releaseRoot = process.env.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
const releaseRoot = process.env[PRODUCT_IDENTITY.environment.releaseRoot];
|
|
14
|
+
const releaseId = process.env[PRODUCT_IDENTITY.environment.releaseId];
|
|
15
|
+
const contentDigest = process.env[PRODUCT_IDENTITY.environment.releaseDigest];
|
|
16
|
+
if (!releaseRoot || !releaseId || !contentDigest)
|
|
17
|
+
throw new Error(PRODUCT_TEXT.diagnostic("supervisor must be launched from a verified immutable release"));
|
|
18
|
+
const release = await readCertifiedReleaseManifest({ releaseRoot, releaseId, contentDigest }, resolve(paths.dataDir, "releases"));
|
|
17
19
|
await assertImmutableExecutionRoot(release, paths.dataDir);
|
|
18
20
|
const bootNonce = randomUUID();
|
|
19
21
|
const store = new ControlStore(paths.databasePath, bootNonce);
|
|
@@ -37,4 +39,3 @@ export async function runSupervisor() {
|
|
|
37
39
|
});
|
|
38
40
|
process.on("unhandledRejection", error => log(`unhandled rejection: ${String(error)}`));
|
|
39
41
|
}
|
|
40
|
-
//# sourceMappingURL=main.js.map
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export {
|
|
2
|
-
//# sourceMappingURL=paths.d.ts.map
|
|
1
|
+
export { resolveProductPaths, type ProductPaths } from "../lifecycle/index.js";
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export {
|
|
2
|
-
//# sourceMappingURL=paths.js.map
|
|
1
|
+
export { resolveProductPaths } from "../lifecycle/index.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type SupervisorSnapshot } from "../lifecycle/index.js";
|
|
2
2
|
import type { MaterializedRelease } from "../release/index.js";
|
|
3
3
|
import { ControlStore } from "../storage/index.js";
|
|
4
|
-
import { type
|
|
4
|
+
import { type ProductPaths } from "./paths.js";
|
|
5
5
|
export declare class SupervisorServer {
|
|
6
6
|
#private;
|
|
7
7
|
readonly store: ControlStore;
|
|
@@ -11,11 +11,10 @@ export declare class SupervisorServer {
|
|
|
11
11
|
readonly bootNonce: string;
|
|
12
12
|
readonly pidStartIdentity: string;
|
|
13
13
|
readonly startedAt: string;
|
|
14
|
-
readonly paths:
|
|
15
|
-
constructor(store: ControlStore, paths:
|
|
14
|
+
readonly paths: ProductPaths;
|
|
15
|
+
constructor(store: ControlStore, paths: ProductPaths | undefined, release: MaterializedRelease, bootNonce?: string, terminateProcess?: (code: number) => void);
|
|
16
16
|
snapshot(): SupervisorSnapshot;
|
|
17
17
|
listen(): Promise<void>;
|
|
18
18
|
close(stopAgents?: boolean): Promise<void>;
|
|
19
19
|
closeForReleaseReplacement(stopAgents: boolean): Promise<void>;
|
|
20
20
|
}
|
|
21
|
-
//# sourceMappingURL=server.d.ts.map
|
|
@@ -5,7 +5,8 @@ import { platform } from "node:os";
|
|
|
5
5
|
import { assertNativeProcessIdentity, assertTransparentTerminalLaunchProfile, } from "../lifecycle/index.js";
|
|
6
6
|
import { encodeFrame, isCommandMessage, isControlHello, LineFrameDecoder, localControlHello, MAX_CONTROL_FRAME_BYTES, negotiateControlFeatures } from "../protocol/index.js";
|
|
7
7
|
import { ControlStore } from "../storage/index.js";
|
|
8
|
-
import {
|
|
8
|
+
import { resolveProductPaths } from "./paths.js";
|
|
9
|
+
import { PRODUCT_IDENTITY, PRODUCT_TEXT } from "../../product-identity.js";
|
|
9
10
|
export class SupervisorServer {
|
|
10
11
|
store;
|
|
11
12
|
release;
|
|
@@ -21,7 +22,7 @@ export class SupervisorServer {
|
|
|
21
22
|
#clients = new Set();
|
|
22
23
|
#results = new Map();
|
|
23
24
|
#metadataWrites = Promise.resolve();
|
|
24
|
-
constructor(store, paths =
|
|
25
|
+
constructor(store, paths = resolveProductPaths(), release, bootNonce = randomUUID(), terminateProcess = code => process.exit(code)) {
|
|
25
26
|
this.store = store;
|
|
26
27
|
this.release = release;
|
|
27
28
|
this.terminateProcess = terminateProcess;
|
|
@@ -38,7 +39,7 @@ export class SupervisorServer {
|
|
|
38
39
|
await mkdir(this.paths.runtimeDir, { recursive: true, mode: 0o700 });
|
|
39
40
|
if (platform() !== "win32") {
|
|
40
41
|
if (await endpointIsLive(this.paths.endpoint))
|
|
41
|
-
throw new Error(`
|
|
42
|
+
throw new Error(PRODUCT_TEXT.diagnostic(`supervisor already owns ${this.paths.endpoint}`));
|
|
42
43
|
await rm(this.paths.endpoint, { force: true });
|
|
43
44
|
}
|
|
44
45
|
const server = createServer(socket => this.#attach(socket));
|
|
@@ -103,7 +104,7 @@ export class SupervisorServer {
|
|
|
103
104
|
this.#send(socket, {
|
|
104
105
|
type: "release-update-result",
|
|
105
106
|
accepted,
|
|
106
|
-
reason: accepted ?
|
|
107
|
+
reason: accepted ? `verified ${PRODUCT_TEXT.displayName} owner accepted immediate update shutdown` : "boot nonce or target version mismatch",
|
|
107
108
|
liveGenerationIds: this.#liveGenerationIds(),
|
|
108
109
|
});
|
|
109
110
|
if (accepted)
|
|
@@ -111,7 +112,7 @@ export class SupervisorServer {
|
|
|
111
112
|
continue;
|
|
112
113
|
}
|
|
113
114
|
if (!isControlHello(value)) {
|
|
114
|
-
this.#send(socket, { type: "protocol-error", code: "invalid-control-handshake", message:
|
|
115
|
+
this.#send(socket, { type: "protocol-error", code: "invalid-control-handshake", message: `the first message must be a valid ${PRODUCT_TEXT.displayName} control feature handshake`, diagnostics: { received: value } });
|
|
115
116
|
socket.destroy();
|
|
116
117
|
return;
|
|
117
118
|
}
|
|
@@ -232,6 +233,7 @@ export class SupervisorServer {
|
|
|
232
233
|
}
|
|
233
234
|
#writeEndpointMetadata() {
|
|
234
235
|
const metadata = {
|
|
236
|
+
schema: PRODUCT_IDENTITY.protocol.supervisorSchema,
|
|
235
237
|
...localControlHello(this.release.releaseId),
|
|
236
238
|
supervisorId: this.id,
|
|
237
239
|
pid: process.pid,
|
|
@@ -280,4 +282,3 @@ async function endpointIsLive(endpoint) {
|
|
|
280
282
|
setTimeout(() => done(false), 250).unref();
|
|
281
283
|
});
|
|
282
284
|
}
|
|
283
|
-
//# sourceMappingURL=server.js.map
|
|
@@ -11,4 +11,3 @@ export interface TransparentCommandResolutionOptions {
|
|
|
11
11
|
}
|
|
12
12
|
/** Resolve a command without invoking a command interpreter. */
|
|
13
13
|
export declare function resolveTransparentCommand(executable: string, arguments_: readonly string[], options: TransparentCommandResolutionOptions): Promise<ResolvedTransparentCommand>;
|
|
14
|
-
//# sourceMappingURL=command-resolution.d.ts.map
|
|
@@ -30,4 +30,3 @@ export interface ForegroundBrokerResult {
|
|
|
30
30
|
* broker observes only process identity and the final lifecycle outcome.
|
|
31
31
|
*/
|
|
32
32
|
export declare function runForegroundBroker(request: ForegroundBrokerRequest, control: ForegroundLeaseControl, launcher: TransparentNativeLauncher, createRequestId: () => RequestId): Promise<ForegroundBrokerResult>;
|
|
33
|
-
//# sourceMappingURL=foreground-broker.d.ts.map
|