@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
|
@@ -3,8 +3,7 @@ export interface TransparentForegroundOptions {
|
|
|
3
3
|
readonly environment?: NodeJS.ProcessEnv;
|
|
4
4
|
readonly profileId?: LaunchProfileId;
|
|
5
5
|
readonly cwd?: string;
|
|
6
|
-
readonly executable
|
|
7
|
-
readonly arguments
|
|
6
|
+
readonly executable: string;
|
|
7
|
+
readonly arguments: readonly string[];
|
|
8
8
|
}
|
|
9
|
-
export declare function runTransparentForeground(options
|
|
10
|
-
//# sourceMappingURL=main.d.ts.map
|
|
9
|
+
export declare function runTransparentForeground(options: TransparentForegroundOptions): Promise<number>;
|
|
@@ -3,15 +3,15 @@ import { realpath } from "node:fs/promises";
|
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
4
|
import { assertLaunchProfileId } from "../lifecycle/index.js";
|
|
5
5
|
import { SupervisorClient } from "../protocol/index.js";
|
|
6
|
-
import {
|
|
6
|
+
import { resolveProductPaths } from "../supervision/index.js";
|
|
7
7
|
import { runForegroundBroker } from "./foreground-broker.js";
|
|
8
8
|
import { createPlatformTransparentLauncher } from "./native-launcher.js";
|
|
9
|
-
export async function runTransparentForeground(options
|
|
9
|
+
export async function runTransparentForeground(options) {
|
|
10
10
|
const environment = { ...(options.environment ?? process.env) };
|
|
11
|
-
const profileId = options.profileId ?? environment.
|
|
11
|
+
const profileId = options.profileId ?? environment.A1_LAUNCH_PROFILE ?? "a1";
|
|
12
12
|
assertLaunchProfileId(profileId);
|
|
13
|
-
const paths =
|
|
14
|
-
const client = new SupervisorClient(environment.
|
|
13
|
+
const paths = resolveProductPaths(environment);
|
|
14
|
+
const client = new SupervisorClient(environment.A1_RELEASE_ID);
|
|
15
15
|
await client.connect(paths.endpoint);
|
|
16
16
|
const ownerId = `foreground-broker-${randomUUID()}`;
|
|
17
17
|
const profile = await launchProfile(environment, options, profileId);
|
|
@@ -32,11 +32,8 @@ export async function runTransparentForeground(options = {}) {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
async function launchProfile(environment, options, profileId) {
|
|
35
|
-
const executable = options.executable
|
|
36
|
-
const arguments_ = options.arguments
|
|
37
|
-
?? parseArguments(environment.ADDONE_LAUNCH_ARGUMENTS_JSON)
|
|
38
|
-
?? parseArguments(environment.ADDONE_TERMINAL_ARGUMENTS_JSON)
|
|
39
|
-
?? [];
|
|
35
|
+
const executable = options.executable;
|
|
36
|
+
const arguments_ = options.arguments;
|
|
40
37
|
const cwd = await realpath(options.cwd ?? process.cwd());
|
|
41
38
|
const terminalType = environment.TERM?.trim() || "xterm-256color";
|
|
42
39
|
return {
|
|
@@ -54,19 +51,10 @@ async function launchProfile(environment, options, profileId) {
|
|
|
54
51
|
visualReconnection: "none",
|
|
55
52
|
};
|
|
56
53
|
}
|
|
57
|
-
function parseArguments(source) {
|
|
58
|
-
if (!source)
|
|
59
|
-
return null;
|
|
60
|
-
const value = JSON.parse(source);
|
|
61
|
-
if (!Array.isArray(value) || value.some(item => typeof item !== "string")) {
|
|
62
|
-
throw new TypeError("ADDONE_TERMINAL_ARGUMENTS_JSON must be a JSON array of strings");
|
|
63
|
-
}
|
|
64
|
-
return value;
|
|
65
|
-
}
|
|
66
54
|
function selectedChildEnvironment(environment) {
|
|
67
55
|
const selected = {};
|
|
68
56
|
for (const [name, value] of Object.entries(environment)) {
|
|
69
|
-
if (value !== undefined && !name.startsWith("
|
|
57
|
+
if (value !== undefined && !name.startsWith("A1_"))
|
|
70
58
|
selected[name] = value;
|
|
71
59
|
}
|
|
72
60
|
return selected;
|
|
@@ -104,4 +92,3 @@ function stopSignal() {
|
|
|
104
92
|
},
|
|
105
93
|
};
|
|
106
94
|
}
|
|
107
|
-
//# sourceMappingURL=main.js.map
|
|
@@ -11,4 +11,3 @@ export declare function assertTerminalTopologySnapshot(topology: TerminalTopolog
|
|
|
11
11
|
export declare function assertNativeHostCommand(command: NativeHostCommand): void;
|
|
12
12
|
export declare function assertRecoveryAuthority(authority: AgentRecoveryAuthority): void;
|
|
13
13
|
export declare function assertTerminalSessionLaunch(session: TerminalSessionLaunch): void;
|
|
14
|
-
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
declare const ENVIRONMENT_KEYS: readonly ["certificationTarball", "configDir", "dataDir", "databasePath", "developmentInstanceId", "developmentRoot", "endpoint", "fixture", "fixtureInput", "fixtureToken", "inputAcknowledgement", "internalPackaging", "launchArgumentsJson", "launchProfile", "nativePi", "paneId", "piParityIntentionalMutation", "piPortRoot", "piSourceLedgerPath", "piSourceScanRoot", "probeTrace", "profileHome", "protocolVersion", "releaseDigest", "releaseId", "releaseRoot", "releaseRunnerLabel", "runtimeDir", "structuredFlowLimits", "terminalArgumentsJson", "terminalExecutable", "terminalSessionId"];
|
|
2
|
+
declare const FILESYSTEM_KEYS: readonly ["slug", "windowsDirectory", "unixDirectory", "temporaryPrefix"];
|
|
3
|
+
declare const STATE_KEYS: readonly ["windowsControlDirectory", "unixControlDirectory", "developmentDirectory", "piAgentProfile", "piVanillaProfile", "piSandboxProfile"];
|
|
4
|
+
declare const ENDPOINT_KEYS: readonly ["windowsPipeStem", "unixSocketFilename", "metadataFilename", "supervisorLogFilename", "databaseFilename"];
|
|
5
|
+
declare const MANIFEST_KEYS: readonly ["releaseFilename", "packageFilename"];
|
|
6
|
+
declare const PROTOCOL_KEYS: readonly ["namespace", "controlEnvelope", "supervisorSchema", "nativeHostSchema", "structuredAgentSchema", "controlStoreSchema", "releaseCohortSchema", "updateJournalSchema"];
|
|
7
|
+
declare const EVIDENCE_KEYS: readonly ["nativeSpikeSchema", "terminalProvenanceSchema", "terminalProofSchema", "stableReleaseSchema", "previewReleaseSchema", "releaseCertificationSchema", "previewPlatformVerdictSchema", "piSourceLedgerSchema", "piComponentParitySchema", "piEventFrameParitySchema"];
|
|
8
|
+
declare const ARTIFACT_KEYS: readonly ["cliEntry", "supervisorEntry", "uiEntry", "nativeExecutable", "nativeCrate", "releaseTarballStem", "diagnosticStem"];
|
|
9
|
+
type StringRecord<Keys extends readonly string[]> = {
|
|
10
|
+
readonly [Key in Keys[number]]: string;
|
|
11
|
+
};
|
|
12
|
+
export interface ProductIdentity {
|
|
13
|
+
readonly schema: string;
|
|
14
|
+
readonly displayName: string;
|
|
15
|
+
readonly commandName: string;
|
|
16
|
+
readonly packageName: string;
|
|
17
|
+
readonly filesystem: StringRecord<typeof FILESYSTEM_KEYS>;
|
|
18
|
+
readonly environment: StringRecord<typeof ENVIRONMENT_KEYS>;
|
|
19
|
+
readonly state: StringRecord<typeof STATE_KEYS>;
|
|
20
|
+
readonly endpoint: StringRecord<typeof ENDPOINT_KEYS>;
|
|
21
|
+
readonly manifest: StringRecord<typeof MANIFEST_KEYS>;
|
|
22
|
+
readonly protocol: StringRecord<typeof PROTOCOL_KEYS>;
|
|
23
|
+
readonly evidence: StringRecord<typeof EVIDENCE_KEYS>;
|
|
24
|
+
readonly artifacts: StringRecord<typeof ARTIFACT_KEYS>;
|
|
25
|
+
}
|
|
26
|
+
export declare function validateProductIdentity(value: unknown): ProductIdentity;
|
|
27
|
+
export interface ProductIdentityText {
|
|
28
|
+
readonly displayName: string;
|
|
29
|
+
readonly commandName: string;
|
|
30
|
+
readonly packageName: string;
|
|
31
|
+
readonly diagnostic: (message: string) => string;
|
|
32
|
+
readonly usage: (forms: readonly string[]) => string;
|
|
33
|
+
}
|
|
34
|
+
export declare function createProductIdentityText(identity: Pick<ProductIdentity, "displayName" | "commandName" | "packageName">): ProductIdentityText;
|
|
35
|
+
export declare const PRODUCT_IDENTITY: ProductIdentity;
|
|
36
|
+
export declare const PRODUCT_TEXT: ProductIdentityText;
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import rawIdentity from "./product-identity.json" with { type: "json" };
|
|
2
|
+
const ENVIRONMENT_KEYS = [
|
|
3
|
+
"certificationTarball",
|
|
4
|
+
"configDir",
|
|
5
|
+
"dataDir",
|
|
6
|
+
"databasePath",
|
|
7
|
+
"developmentInstanceId",
|
|
8
|
+
"developmentRoot",
|
|
9
|
+
"endpoint",
|
|
10
|
+
"fixture",
|
|
11
|
+
"fixtureInput",
|
|
12
|
+
"fixtureToken",
|
|
13
|
+
"inputAcknowledgement",
|
|
14
|
+
"internalPackaging",
|
|
15
|
+
"launchArgumentsJson",
|
|
16
|
+
"launchProfile",
|
|
17
|
+
"nativePi",
|
|
18
|
+
"paneId",
|
|
19
|
+
"piParityIntentionalMutation",
|
|
20
|
+
"piPortRoot",
|
|
21
|
+
"piSourceLedgerPath",
|
|
22
|
+
"piSourceScanRoot",
|
|
23
|
+
"probeTrace",
|
|
24
|
+
"profileHome",
|
|
25
|
+
"protocolVersion",
|
|
26
|
+
"releaseDigest",
|
|
27
|
+
"releaseId",
|
|
28
|
+
"releaseRoot",
|
|
29
|
+
"releaseRunnerLabel",
|
|
30
|
+
"runtimeDir",
|
|
31
|
+
"structuredFlowLimits",
|
|
32
|
+
"terminalArgumentsJson",
|
|
33
|
+
"terminalExecutable",
|
|
34
|
+
"terminalSessionId",
|
|
35
|
+
];
|
|
36
|
+
const FILESYSTEM_KEYS = ["slug", "windowsDirectory", "unixDirectory", "temporaryPrefix"];
|
|
37
|
+
const STATE_KEYS = ["windowsControlDirectory", "unixControlDirectory", "developmentDirectory", "piAgentProfile", "piVanillaProfile", "piSandboxProfile"];
|
|
38
|
+
const ENDPOINT_KEYS = ["windowsPipeStem", "unixSocketFilename", "metadataFilename", "supervisorLogFilename", "databaseFilename"];
|
|
39
|
+
const MANIFEST_KEYS = ["releaseFilename", "packageFilename"];
|
|
40
|
+
const PROTOCOL_KEYS = ["namespace", "controlEnvelope", "supervisorSchema", "nativeHostSchema", "structuredAgentSchema", "controlStoreSchema", "releaseCohortSchema", "updateJournalSchema"];
|
|
41
|
+
const EVIDENCE_KEYS = ["nativeSpikeSchema", "terminalProvenanceSchema", "terminalProofSchema", "stableReleaseSchema", "previewReleaseSchema", "releaseCertificationSchema", "previewPlatformVerdictSchema", "piSourceLedgerSchema", "piComponentParitySchema", "piEventFrameParitySchema"];
|
|
42
|
+
const ARTIFACT_KEYS = ["cliEntry", "supervisorEntry", "uiEntry", "nativeExecutable", "nativeCrate", "releaseTarballStem", "diagnosticStem"];
|
|
43
|
+
const ROOT_KEYS = ["schema", "displayName", "commandName", "packageName", "filesystem", "environment", "state", "endpoint", "manifest", "protocol", "evidence", "artifacts"];
|
|
44
|
+
export function validateProductIdentity(value) {
|
|
45
|
+
const root = exactObject(value, ROOT_KEYS, "product identity");
|
|
46
|
+
const schema = stringValue(root.schema, "product identity schema");
|
|
47
|
+
const displayName = stringValue(root.displayName, "product display name");
|
|
48
|
+
const commandName = stringValue(root.commandName, "product command name");
|
|
49
|
+
const packageName = stringValue(root.packageName, "product package name");
|
|
50
|
+
const filesystem = stringObject(root.filesystem, FILESYSTEM_KEYS, "filesystem identity");
|
|
51
|
+
const environment = stringObject(root.environment, ENVIRONMENT_KEYS, "environment identity");
|
|
52
|
+
const state = stringObject(root.state, STATE_KEYS, "state identity");
|
|
53
|
+
const endpoint = stringObject(root.endpoint, ENDPOINT_KEYS, "endpoint identity");
|
|
54
|
+
const manifest = stringObject(root.manifest, MANIFEST_KEYS, "manifest identity");
|
|
55
|
+
const protocol = stringObject(root.protocol, PROTOCOL_KEYS, "protocol identity");
|
|
56
|
+
const evidence = stringObject(root.evidence, EVIDENCE_KEYS, "evidence identity");
|
|
57
|
+
const artifacts = stringObject(root.artifacts, ARTIFACT_KEYS, "artifact identity");
|
|
58
|
+
if (!/^[a-z][a-z0-9-]*$/.test(commandName))
|
|
59
|
+
throw new TypeError("product command name must be a lowercase command slug");
|
|
60
|
+
if (!/^@[a-z0-9-]+\/[a-z0-9-]+$/.test(packageName))
|
|
61
|
+
throw new TypeError("product package name must be a lowercase scoped npm package");
|
|
62
|
+
if (displayName.trim() !== displayName || displayName.length === 0)
|
|
63
|
+
throw new TypeError("product display name must be non-empty without surrounding whitespace");
|
|
64
|
+
if (schema !== `${commandName}-product-identity-v1`)
|
|
65
|
+
throw new TypeError("product identity schema must derive from the command name");
|
|
66
|
+
if (filesystem.slug !== commandName || filesystem.unixDirectory !== filesystem.slug || filesystem.windowsDirectory !== displayName) {
|
|
67
|
+
throw new TypeError("product filesystem identity must derive from display and command names");
|
|
68
|
+
}
|
|
69
|
+
if (filesystem.temporaryPrefix !== `${filesystem.slug}-`)
|
|
70
|
+
throw new TypeError("product temporary prefix must derive from the filesystem slug");
|
|
71
|
+
if (state.windowsControlDirectory !== filesystem.windowsDirectory || state.unixControlDirectory !== filesystem.unixDirectory) {
|
|
72
|
+
throw new TypeError("product state directories must match the filesystem identity");
|
|
73
|
+
}
|
|
74
|
+
if (endpoint.windowsPipeStem !== filesystem.slug)
|
|
75
|
+
throw new TypeError("product endpoint stem must match the filesystem slug");
|
|
76
|
+
if (protocol.namespace !== commandName)
|
|
77
|
+
throw new TypeError("product protocol namespace must match the command name");
|
|
78
|
+
if (artifacts.diagnosticStem !== filesystem.slug)
|
|
79
|
+
throw new TypeError("product diagnostic stem must match the filesystem slug");
|
|
80
|
+
const environmentPrefix = `${commandName.toUpperCase()}_`;
|
|
81
|
+
const environmentValues = Object.values(environment);
|
|
82
|
+
if (new Set(environmentValues).size !== environmentValues.length)
|
|
83
|
+
throw new TypeError("product environment keys must be unique");
|
|
84
|
+
for (const key of environmentValues) {
|
|
85
|
+
if (!key.startsWith(environmentPrefix) || !/^[A-Z][A-Z0-9_]+$/.test(key)) {
|
|
86
|
+
throw new TypeError(`product environment key must use ${environmentPrefix}: ${key}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
for (const [name, identifier] of Object.entries(protocol)) {
|
|
90
|
+
if (name !== "namespace" && !identifier.startsWith(`${protocol.namespace}-`)) {
|
|
91
|
+
throw new TypeError(`product protocol identifier must use ${protocol.namespace}: ${identifier}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
for (const identifier of Object.values(evidence)) {
|
|
95
|
+
if (!identifier.startsWith(`${protocol.namespace}-`))
|
|
96
|
+
throw new TypeError(`product evidence identifier must use ${protocol.namespace}: ${identifier}`);
|
|
97
|
+
}
|
|
98
|
+
return deepFreeze({
|
|
99
|
+
schema,
|
|
100
|
+
displayName,
|
|
101
|
+
commandName,
|
|
102
|
+
packageName,
|
|
103
|
+
filesystem,
|
|
104
|
+
environment,
|
|
105
|
+
state,
|
|
106
|
+
endpoint,
|
|
107
|
+
manifest,
|
|
108
|
+
protocol,
|
|
109
|
+
evidence,
|
|
110
|
+
artifacts,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
export function createProductIdentityText(identity) {
|
|
114
|
+
return Object.freeze({
|
|
115
|
+
displayName: identity.displayName,
|
|
116
|
+
commandName: identity.commandName,
|
|
117
|
+
packageName: identity.packageName,
|
|
118
|
+
diagnostic: (message) => `${identity.displayName} ${message}`,
|
|
119
|
+
usage: (forms) => `Usage: ${forms.map(form => `${identity.commandName}${form ? ` ${form}` : ""}`).join(" | ")}`,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
export const PRODUCT_IDENTITY = validateProductIdentity(rawIdentity);
|
|
123
|
+
export const PRODUCT_TEXT = createProductIdentityText(PRODUCT_IDENTITY);
|
|
124
|
+
function exactObject(value, keys, name) {
|
|
125
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
126
|
+
throw new TypeError(`${name} must be an object`);
|
|
127
|
+
const actualKeys = Object.keys(value).sort();
|
|
128
|
+
const expectedKeys = [...keys].sort();
|
|
129
|
+
if (actualKeys.length !== expectedKeys.length || actualKeys.some((key, index) => key !== expectedKeys[index])) {
|
|
130
|
+
throw new TypeError(`${name} must contain exactly: ${expectedKeys.join(", ")}`);
|
|
131
|
+
}
|
|
132
|
+
return value;
|
|
133
|
+
}
|
|
134
|
+
function stringObject(value, keys, name) {
|
|
135
|
+
const object = exactObject(value, keys, name);
|
|
136
|
+
return Object.fromEntries(keys.map((key) => [key, stringValue(object[key], `${name}.${key}`)]));
|
|
137
|
+
}
|
|
138
|
+
function stringValue(value, name) {
|
|
139
|
+
if (typeof value !== "string" || value.length === 0)
|
|
140
|
+
throw new TypeError(`${name} must be a non-empty string`);
|
|
141
|
+
return value;
|
|
142
|
+
}
|
|
143
|
+
function deepFreeze(value) {
|
|
144
|
+
if (typeof value !== "object" || value === null || Object.isFrozen(value))
|
|
145
|
+
return value;
|
|
146
|
+
for (const child of Object.values(value))
|
|
147
|
+
deepFreeze(child);
|
|
148
|
+
return Object.freeze(value);
|
|
149
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "a1-product-identity-v1",
|
|
3
|
+
"displayName": "A1",
|
|
4
|
+
"commandName": "a1",
|
|
5
|
+
"packageName": "@timurproko/a1",
|
|
6
|
+
"filesystem": {
|
|
7
|
+
"slug": "a1",
|
|
8
|
+
"windowsDirectory": "A1",
|
|
9
|
+
"unixDirectory": "a1",
|
|
10
|
+
"temporaryPrefix": "a1-"
|
|
11
|
+
},
|
|
12
|
+
"environment": {
|
|
13
|
+
"certificationTarball": "A1_CERTIFICATION_TARBALL",
|
|
14
|
+
"configDir": "A1_CONFIG_DIR",
|
|
15
|
+
"dataDir": "A1_DATA_DIR",
|
|
16
|
+
"databasePath": "A1_DATABASE_PATH",
|
|
17
|
+
"developmentInstanceId": "A1_DEV_INSTANCE_ID",
|
|
18
|
+
"developmentRoot": "A1_DEV_ROOT",
|
|
19
|
+
"endpoint": "A1_ENDPOINT",
|
|
20
|
+
"fixture": "A1_FIXTURE",
|
|
21
|
+
"fixtureInput": "A1_FIXTURE_INPUT",
|
|
22
|
+
"fixtureToken": "A1_FIXTURE_TOKEN",
|
|
23
|
+
"inputAcknowledgement": "A1_INPUT_ACK",
|
|
24
|
+
"internalPackaging": "A1_INTERNAL_PACKAGING",
|
|
25
|
+
"launchArgumentsJson": "A1_LAUNCH_ARGUMENTS_JSON",
|
|
26
|
+
"launchProfile": "A1_LAUNCH_PROFILE",
|
|
27
|
+
"nativePi": "A1_NATIVE_PI",
|
|
28
|
+
"paneId": "A1_PANE_ID",
|
|
29
|
+
"piParityIntentionalMutation": "A1_PI_PARITY_INTENTIONAL_MUTATION",
|
|
30
|
+
"piPortRoot": "A1_PI_PORT_ROOT",
|
|
31
|
+
"piSourceLedgerPath": "A1_PI_SOURCE_LEDGER_PATH",
|
|
32
|
+
"piSourceScanRoot": "A1_PI_SOURCE_SCAN_ROOT",
|
|
33
|
+
"probeTrace": "A1_PROBE_TRACE",
|
|
34
|
+
"profileHome": "A1_PROFILE_HOME",
|
|
35
|
+
"protocolVersion": "A1_PROTOCOL_VERSION",
|
|
36
|
+
"releaseDigest": "A1_RELEASE_DIGEST",
|
|
37
|
+
"releaseId": "A1_RELEASE_ID",
|
|
38
|
+
"releaseRoot": "A1_RELEASE_ROOT",
|
|
39
|
+
"releaseRunnerLabel": "A1_RELEASE_RUNNER_LABEL",
|
|
40
|
+
"runtimeDir": "A1_RUNTIME_DIR",
|
|
41
|
+
"structuredFlowLimits": "A1_STRUCTURED_FLOW_LIMITS",
|
|
42
|
+
"terminalArgumentsJson": "A1_TERMINAL_ARGUMENTS_JSON",
|
|
43
|
+
"terminalExecutable": "A1_TERMINAL_EXECUTABLE",
|
|
44
|
+
"terminalSessionId": "A1_TERMINAL_SESSION_ID"
|
|
45
|
+
},
|
|
46
|
+
"state": {
|
|
47
|
+
"windowsControlDirectory": "A1",
|
|
48
|
+
"unixControlDirectory": "a1",
|
|
49
|
+
"developmentDirectory": "a1-development",
|
|
50
|
+
"piAgentProfile": ".a1/agent",
|
|
51
|
+
"piVanillaProfile": ".pi/agent",
|
|
52
|
+
"piSandboxProfile": ".a1/sandbox"
|
|
53
|
+
},
|
|
54
|
+
"endpoint": {
|
|
55
|
+
"windowsPipeStem": "a1",
|
|
56
|
+
"unixSocketFilename": "supervisor.sock",
|
|
57
|
+
"metadataFilename": "supervisor.json",
|
|
58
|
+
"supervisorLogFilename": "supervisor.log",
|
|
59
|
+
"databaseFilename": "control.sqlite3"
|
|
60
|
+
},
|
|
61
|
+
"manifest": {
|
|
62
|
+
"releaseFilename": ".a1-release.json",
|
|
63
|
+
"packageFilename": "package.json"
|
|
64
|
+
},
|
|
65
|
+
"protocol": {
|
|
66
|
+
"namespace": "a1",
|
|
67
|
+
"controlEnvelope": "a1-control-envelope",
|
|
68
|
+
"supervisorSchema": "a1-supervisor-v1",
|
|
69
|
+
"nativeHostSchema": "a1-native-host-v1",
|
|
70
|
+
"structuredAgentSchema": "a1-structured-agent-v1",
|
|
71
|
+
"controlStoreSchema": "a1-control-store-v1",
|
|
72
|
+
"releaseCohortSchema": "a1-release-cohort-v1",
|
|
73
|
+
"updateJournalSchema": "a1-update-journal-v1"
|
|
74
|
+
},
|
|
75
|
+
"evidence": {
|
|
76
|
+
"nativeSpikeSchema": "a1-native-host-spike-evidence-v1",
|
|
77
|
+
"terminalProvenanceSchema": "a1-terminal-host-provenance-v1",
|
|
78
|
+
"terminalProofSchema": "a1-terminal-host-proof-v1",
|
|
79
|
+
"stableReleaseSchema": "a1-stable-release-v1",
|
|
80
|
+
"previewReleaseSchema": "a1-preview-release-v1",
|
|
81
|
+
"releaseCertificationSchema": "a1-release-certification-v1",
|
|
82
|
+
"previewPlatformVerdictSchema": "a1-development-preview-platform-verdict-v2",
|
|
83
|
+
"piSourceLedgerSchema": "a1-pinned-pi-source-port-ledger-v1",
|
|
84
|
+
"piComponentParitySchema": "a1-pi-static-component-parity-v1",
|
|
85
|
+
"piEventFrameParitySchema": "a1-pi-event-frame-parity-v1"
|
|
86
|
+
},
|
|
87
|
+
"artifacts": {
|
|
88
|
+
"cliEntry": "bin/a1.js",
|
|
89
|
+
"supervisorEntry": "bin/a1-supervisor.js",
|
|
90
|
+
"uiEntry": "bin/a1-ui.js",
|
|
91
|
+
"nativeExecutable": "a1-terminal-host",
|
|
92
|
+
"nativeCrate": "a1-terminal-host",
|
|
93
|
+
"releaseTarballStem": "timurproko-a1",
|
|
94
|
+
"diagnosticStem": "a1"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -11,9 +11,9 @@ mutable a1 entry
|
|
|
11
11
|
-> child with inherited physical terminal handles
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
After handoff,
|
|
14
|
+
After handoff, A1 does not read ordinary terminal input, parse child output, render cells, infer frames, synthesize terminal responses, or emit display control. The child and physical terminal own terminal behavior. A1 owns validated launch intent, one exclusive foreground lease, native process identity, lifecycle outcome, and bounded cleanup.
|
|
15
15
|
|
|
16
|
-
Transparent mode has no
|
|
16
|
+
Transparent mode has no A1-authoritative terminal surface, internal pane, virtual scrollback, inactive resident tab, or visual reconnection. A future feature that requires those properties must introduce and certify a separate composed-terminal authority; it must not weaken or silently intercept transparent mode.
|
|
17
17
|
|
|
18
18
|
## Current module responsibilities
|
|
19
19
|
|
|
@@ -74,8 +74,8 @@ Build output belongs in ignored `dist/`; release/test evidence belongs in ignore
|
|
|
74
74
|
|
|
75
75
|
## Terminal capability boundary
|
|
76
76
|
|
|
77
|
-
Transparent terminal attachment owns one foreground child and no
|
|
77
|
+
Transparent terminal attachment owns one foreground child and no A1 surface. It cannot retain inactive terminal state or switch among arbitrary interactive CLIs inside A1. Bare-`a1` multi-agent UX may use structured/RPC surfaces without terminal emulation, but arbitrary-CLI tabs require a separate composed-terminal capability with PTY, authoritative terminal state, rendering, input routing, inactive-surface lifecycle, reconnection, and cross-platform certification. That future capability must not silently intercept or replace the transparent path. Explicit launch profiles and transparent fallback must not import, initialize, launch, or connect to composed terminal-host infrastructure.
|
|
78
78
|
|
|
79
|
-
Composed terminals use a console terminal host that runs inside the user's existing terminal. The host owns pseudoterminal bytes, retained terminal state, keyboard/text/mouse/IME encoding, frame scheduling, and presentation to the containing terminal.
|
|
79
|
+
Composed terminals use a console terminal host that runs inside the user's existing terminal. The host owns pseudoterminal bytes, retained terminal state, keyboard/text/mouse/IME encoding, frame scheduling, and presentation to the containing terminal. A1's JavaScript control plane may exchange typed identity, topology revision, capability, lifecycle, status, and recovery messages only; it must not relay terminal output, per-event child input, or rendered cells. A desktop-native window, GPU renderer, Ghostty GUI runtime, Winghostty Win32 runtime, Metal, GTK, and AppKit are postponed and are not required for the in-terminal product.
|
|
80
80
|
|
|
81
81
|
A tab owns a revisioned split tree. Each leaf pane references one PTY-backed terminal session. Structured/RPC agents remain semantically separate and may not derive state from ANSI text, terminal timing, or screen content. Native source ownership lives outside `src/` when introduced; packaged host selection is governed by release/package owners. Existing architecture tests reject terminal-host hot-path bytes in JavaScript protocol code, terminal inference in structured runtime code, composed imports from explicit launch modes, and replacement lightweight terminal parsers/renderers.
|
|
@@ -32,7 +32,7 @@ Every asynchronous consumer must implement a finite queue or window. Backpressur
|
|
|
32
32
|
|---|---|---|
|
|
33
33
|
| Workspace metadata | IDs, names, lifecycle, capability versions, topology revisions, recovery references | May persist in the control store |
|
|
34
34
|
| Structured payloads | Messages, tool calls, snapshots, attachments | Bound and process; persist only under a future typed retention policy |
|
|
35
|
-
| Terminal content | PTY bytes, scrollback, selection, rendered cells | Never persist in
|
|
35
|
+
| Terminal content | PTY bytes, scrollback, selection, rendered cells | Never persist in A1's control store or diagnostics |
|
|
36
36
|
| Host topology metadata | Window/tab/pane/session IDs, layout shape, dimensions, revision | May persist; not terminal content |
|
|
37
37
|
| Native proof evidence | Artifact hashes, source revisions, workloads, latency/resource measurements, paint diagnostics | May persist in versioned evidence files without terminal content |
|
|
38
38
|
| Environment values | `PATH`, profile overrides, arbitrary launch environment | Do not persist; treat as potentially sensitive |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# In-terminal 2×2 proof gate
|
|
2
2
|
|
|
3
|
-
The composed-terminal proof is a stop/go gate.
|
|
3
|
+
The composed-terminal proof is a stop/go gate. A1 must not merge or productize composed terminal panes until the exact in-terminal spike artifact passes both technical and physical acceptance.
|
|
4
4
|
|
|
5
5
|
## Go criteria
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ A `go` decision requires all of the following:
|
|
|
8
8
|
|
|
9
9
|
1. Every mandatory workload in the terminal-host evidence schema passes.
|
|
10
10
|
2. The proof runs inside an existing terminal without creating a desktop window.
|
|
11
|
-
3. The exact artifact is tied to pinned
|
|
11
|
+
3. The exact artifact is tied to pinned A1 and terminal-component revisions.
|
|
12
12
|
4. Automated evidence came from an isolated worker.
|
|
13
13
|
5. The physical verdict is `accepted` through user-controlled manual validation or an attested isolated disposable worker.
|
|
14
14
|
6. Input-to-process p95 latency is at most 16 ms.
|
|
@@ -10,7 +10,7 @@ The composed-terminal proof uses a small console-hosted stack. It runs inside th
|
|
|
10
10
|
| `portable-pty` | version `0.9.0` | ConPTY/Unix PTY and process ownership | MIT |
|
|
11
11
|
| Crossterm | version `0.29.0` | Outer-terminal raw mode and host input events | MIT-compatible candidate; notice must be vendored before packaging |
|
|
12
12
|
|
|
13
|
-
A buffered
|
|
13
|
+
A buffered A1-owned frame composer is the initial presentation layer. Ratatui is an optional evaluation candidate only if the narrow composer increases rendering risk; it is not selected by default.
|
|
14
14
|
|
|
15
15
|
## Explicitly excluded
|
|
16
16
|
|
|
@@ -44,7 +44,7 @@ Do not patch terminal semantics to support a specific CLI. Report unsupported ge
|
|
|
44
44
|
|
|
45
45
|
The console proof requires:
|
|
46
46
|
|
|
47
|
-
- Rust/Cargo for the
|
|
47
|
+
- Rust/Cargo for the A1 terminal host;
|
|
48
48
|
- Zig `0.15.x` with patch `>= 0.15.2` to build `libghostty-vt`;
|
|
49
49
|
- the platform C/C++ build toolchain required by Rust and the PTY/input crates (Visual Studio 2022 Build Tools/MSVC on Windows);
|
|
50
50
|
- Windows 10/11 x64 or ARM64 for the first proof;
|
|
@@ -58,7 +58,7 @@ No GUI SDK, OpenGL runtime, Win32 window pipeline, Metal, GTK, or AppKit runtime
|
|
|
58
58
|
Every spike or production host artifact must record:
|
|
59
59
|
|
|
60
60
|
- artifact path, SHA-256, size, signature status, and build timestamp;
|
|
61
|
-
-
|
|
61
|
+
- A1 source commit and protocol version;
|
|
62
62
|
- `libghostty-vt`, PTY, input, and renderer component identities;
|
|
63
63
|
- retained/adapted component manifest;
|
|
64
64
|
- compiler/toolchain versions and target triple;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# In-terminal 2×2 spike evidence
|
|
2
2
|
|
|
3
|
-
The spike must produce machine-readable evidence with schema `
|
|
3
|
+
The spike must produce machine-readable evidence with schema `a1-native-host-spike-evidence-v1`. Evidence is valid only when it names the exact artifact, hashes, pinned source commits, isolated worker environment, all mandatory workloads, measurements, paint diagnostics, resources, and physical/manual verdict. The artifact is a console terminal host that runs inside an existing terminal and does not open a desktop window.
|
|
4
4
|
|
|
5
5
|
## Mandatory workloads
|
|
6
6
|
|
|
@@ -45,22 +45,48 @@ npm run test:release
|
|
|
45
45
|
|
|
46
46
|
`check:deprecated` verifies the complete lockfile graph against registry metadata. The release gate exercises durable stable/preview update transitions and writes an ignored machine-readable verdict under `artifacts/release-verdicts/`.
|
|
47
47
|
|
|
48
|
+
## Pi maintenance workflows
|
|
49
|
+
|
|
50
|
+
Engine compatibility and presentation synchronization are intentionally separate:
|
|
51
|
+
|
|
52
|
+
```sh
|
|
53
|
+
npm run test:pi-engine-conformance
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
This mandatory candidate workflow checks documented package-root exports and the owned engine integration. It does not read private interactive source, compare source maps, regenerate UI fixtures, or require presentation provenance to match a candidate package.
|
|
57
|
+
|
|
58
|
+
```sh
|
|
59
|
+
npm run sync:pi-ui
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
This optional, mutating presentation-maintenance workflow regenerates component and event-frame parity evidence when maintainers deliberately adopt upstream UI changes. Review generated diffs, attribution, source-ledger records, and terminal parity before committing them. It is never an engine candidate acceptance gate and is not run by `check`, `prepack`, or release publication.
|
|
63
|
+
|
|
64
|
+
`npm run test:pi-terminal-parity` remains an explicit presentation acceptance command. `node scripts/check-pinned-pi-source-ledger.mjs` validates accepted provenance; its `--engine-only` mode validates the ownership partition without comparing private upstream source.
|
|
65
|
+
|
|
48
66
|
## Preview publication
|
|
49
67
|
|
|
50
68
|
A preview candidate must use a unique `-dev.N` version and exact manually accepted bytes. Publication packs once, binds evidence to source commit/version/integrity, runs applicable non-desktop gates, publishes under npm `next`, and verifies registry identity. It must keep `latest` unchanged and record physical/cross-platform certification as deferred.
|
|
51
69
|
|
|
52
70
|
The GitHub trusted-publishing workflow is `.github/workflows/publish-next.yml`. Stable publication remains a separate release process from a clean tagged `master` commit after all mandatory platform gates pass.
|
|
53
71
|
|
|
54
|
-
##
|
|
72
|
+
## A1 state paths
|
|
55
73
|
|
|
56
|
-
These paths are
|
|
74
|
+
These paths are A1 control and release state, not Pi profile roots. All are overrideable for hermetic tests.
|
|
57
75
|
|
|
58
76
|
| Purpose | Override | Windows default | Unix default |
|
|
59
77
|
|---|---|---|---|
|
|
60
|
-
| Config | `
|
|
61
|
-
| Durable data | `
|
|
62
|
-
| Runtime | `
|
|
63
|
-
| Database | `
|
|
64
|
-
| Endpoint | `
|
|
78
|
+
| Config | `A1_CONFIG_DIR` | `%APPDATA%\\A1` | `$XDG_CONFIG_HOME/a1` or `~/.config/a1` |
|
|
79
|
+
| Durable data | `A1_DATA_DIR` | `%LOCALAPPDATA%\\A1` | `$XDG_DATA_HOME/a1` or `~/.local/share/a1` |
|
|
80
|
+
| Runtime | `A1_RUNTIME_DIR` | `%LOCALAPPDATA%\\A1\\runtime` | `$XDG_RUNTIME_DIR/a1` or `<data>/runtime` |
|
|
81
|
+
| Database | `A1_DATABASE_PATH` | `<data>/control.sqlite3` | `<data>/control.sqlite3` |
|
|
82
|
+
| Endpoint | `A1_ENDPOINT` | runtime-scoped `a1-*` named pipe | `<runtime>/supervisor.sock` |
|
|
83
|
+
|
|
84
|
+
### Identity hard cut and cleanup
|
|
85
|
+
|
|
86
|
+
A1 does not read or migrate legacy `ADDONE_*` variables, `AddOne`/`addone` control-state directories, release manifests, database schemas, endpoint records, or protocol frames. Remove obsolete control state only after stopping old processes: `%APPDATA%\\AddOne` and `%LOCALAPPDATA%\\AddOne` on Windows, or the former `addone` directories under XDG config, data, and runtime roots on Unix. This cleanup is manual and never imports data into A1.
|
|
87
|
+
|
|
88
|
+
Do **not** remove `~/.a1/agent` or `~/.a1/sandbox`; those are current Pi profile roots and are intentionally preserved. `~/.pi/agent` remains the vanilla Pi profile.
|
|
89
|
+
|
|
90
|
+
The obsolete npm package `@timurproko/addone` is deprecated with the registry message `This package is obsolete. Use @timurproko/a1 instead.` It is not a current identity, compatibility channel, or rollback source. Whole-package unpublication was rejected by npm policy; any later removal is owner-controlled registry administration and does not change the A1 runtime contract.
|
|
65
91
|
|
|
66
92
|
The launch-profile feature separately owns Pi roots: `~/.a1/agent`, ordinary `~/.pi/agent`, and `~/.a1/sandbox`.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
| Command | Purpose | Pi user profile |
|
|
6
6
|
|---|---|---|
|
|
7
|
-
| `a1` |
|
|
7
|
+
| `a1` | A1-owned Pi-compatible UI | `~/.a1/agent` |
|
|
8
8
|
| `a1 pi` | Untouched vanilla Pi fallback and comparison oracle | ordinary `~/.pi/agent` |
|
|
9
9
|
| `a1 sandbox` | Unchanged isolated vanilla Pi profile for experiments | `~/.a1/sandbox` |
|
|
10
10
|
|
|
@@ -12,7 +12,7 @@ There is no `a1 agent` command. The former `a1 ui` subcommand is removed. Bare `
|
|
|
12
12
|
|
|
13
13
|
## First launch
|
|
14
14
|
|
|
15
|
-
For
|
|
15
|
+
For A1-owned profiles, A1 creates only the selected profile root and empty `extensions`, `skills`, `prompts`, and `themes` directories. Existing content is preserved. A1 does not copy, link, merge, or delete settings, credentials, sessions, packages, trust decisions, or resources from another profile.
|
|
16
16
|
|
|
17
17
|
Pi owns files within the selected root. Common locations are:
|
|
18
18
|
|
|
@@ -31,7 +31,7 @@ Run Pi’s normal `/login` independently in each profile that needs stored authe
|
|
|
31
31
|
|
|
32
32
|
## Vanilla Pi
|
|
33
33
|
|
|
34
|
-
`a1 pi` bypasses the
|
|
34
|
+
`a1 pi` bypasses the A1-owned UI and launches the untouched pinned Pi CLI. It also removes A1’s Pi configuration-root override, so Pi uses its normal `~/.pi/agent` settings, authentication, sessions, resources, packages, and trust decisions. This is both the comparison oracle and the recovery fallback when diagnosing the owned UI.
|
|
35
35
|
|
|
36
36
|
## Sandbox profile
|
|
37
37
|
|
|
@@ -41,10 +41,10 @@ Run Pi’s normal `/login` independently in each profile that needs stored authe
|
|
|
41
41
|
|
|
42
42
|
## Terminal behavior
|
|
43
43
|
|
|
44
|
-
Bare `a1` runs the
|
|
44
|
+
Bare `a1` runs the A1-owned full-viewport TUI over public Pi engine, component, and terminal APIs. A1 owns composition, input routing, modal focus, selection behavior, scrolling, and restoration without inserting a PTY or terminal-byte relay. Its default presentation is pinned to vanilla Pi parity; structured tabs and A1-specific visual customization are not enabled.
|
|
45
45
|
|
|
46
|
-
`a1 pi` and `a1 sandbox` retain transparent direct attachment. In those profiles, one untouched Pi process and the physical terminal own rendering, input, selection, clipboard, scrollback, and terminal modes;
|
|
46
|
+
`a1 pi` and `a1 sandbox` retain transparent direct attachment. In those profiles, one untouched Pi process and the physical terminal own rendering, input, selection, clipboard, scrollback, and terminal modes; A1 owns foreground lease and lifecycle only.
|
|
47
47
|
|
|
48
48
|
## Recovery and comparison
|
|
49
49
|
|
|
50
|
-
If bare `a1` cannot start or a UI workflow diverges, run `a1 pi` from the same working directory and compare the behavior. Profile data is intentionally separate, so authentication or settings may need to be configured independently. Use `a1 version` to record the installed
|
|
50
|
+
If bare `a1` cannot start or a UI workflow diverges, run `a1 pi` from the same working directory and compare the behavior. Profile data is intentionally separate, so authentication or settings may need to be configured independently. Use `a1 version` to record the installed A1 release before reporting a difference. `a1 sandbox` is for isolated profile experiments, not recovery from the owned UI and not a security boundary.
|