@timurproko/a1 0.1.0 → 0.1.1-dev.10
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 +10 -43
- package/bin/{addone.js → cli.js} +2 -2
- package/bin/guardian.js +22 -0
- package/bin/ui.js +20 -0
- package/dist/native/darwin-arm64/manifest.json +20 -0
- package/dist/native/darwin-arm64/process-guardian +0 -0
- package/dist/native/linux-x64/manifest.json +20 -0
- package/dist/native/linux-x64/process-guardian +0 -0
- package/dist/native/win32-x64/manifest.json +20 -0
- package/dist/native/win32-x64/process-guardian.exe +0 -0
- 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 +48 -0
- package/dist/src/composition/index.js +258 -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 +24 -4
- 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 +3 -4
- package/dist/src/features/launch/profiles.js +7 -8
- package/dist/src/features/launch/runtime-selection.d.ts +13 -9
- package/dist/src/features/launch/runtime-selection.js +6 -7
- 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 +1 -2
- package/dist/src/features/owned-ui/index.js +1 -2
- package/dist/src/features/owned-ui/run.d.ts +9 -7
- package/dist/src/features/owned-ui/run.js +9 -15
- package/dist/src/features/owned-ui/settings-app.d.ts +22 -0
- package/dist/src/features/owned-ui/settings-app.js +633 -0
- 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 +116 -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/launch-guardian/index.d.ts +1 -0
- package/dist/src/foundation/launch-guardian/index.js +1 -0
- package/dist/src/foundation/launch-guardian/main.d.ts +31 -0
- package/dist/src/foundation/launch-guardian/main.js +165 -0
- package/dist/src/foundation/lifecycle/commands.d.ts +40 -0
- package/dist/src/foundation/lifecycle/commands.js +1 -0
- package/dist/src/foundation/lifecycle/index.d.ts +2 -1
- package/dist/src/foundation/lifecycle/index.js +2 -1
- package/dist/src/foundation/lifecycle/launch-instance.d.ts +46 -0
- package/dist/src/foundation/lifecycle/launch-instance.js +134 -0
- package/dist/src/foundation/lifecycle/model.d.ts +7 -44
- 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/owned-ui-settings/declarations.d.ts +13 -0
- package/dist/src/foundation/owned-ui-settings/declarations.js +39 -0
- package/dist/src/foundation/owned-ui-settings/index.d.ts +6 -0
- package/dist/src/foundation/owned-ui-settings/index.js +6 -0
- package/dist/src/foundation/owned-ui-settings/migrations.d.ts +13 -0
- package/dist/src/foundation/owned-ui-settings/migrations.js +28 -0
- package/dist/src/foundation/owned-ui-settings/resolution.d.ts +45 -0
- package/dist/src/foundation/owned-ui-settings/resolution.js +147 -0
- package/dist/src/foundation/owned-ui-settings/sections.d.ts +70 -0
- package/dist/src/foundation/owned-ui-settings/sections.js +93 -0
- package/dist/src/foundation/owned-ui-settings/session.d.ts +44 -0
- package/dist/src/foundation/owned-ui-settings/session.js +145 -0
- package/dist/src/foundation/owned-ui-settings/store.d.ts +28 -0
- package/dist/src/foundation/owned-ui-settings/store.js +90 -0
- 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 +1 -1
- package/dist/src/foundation/pi-component-adapter/index.js +1 -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 +9 -2
- package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js +10 -9
- 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 +8 -1
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js +30 -15
- package/dist/src/foundation/pi-engine-adapter/adapter.d.ts +19 -205
- package/dist/src/foundation/pi-engine-adapter/adapter.js +156 -181
- 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/pi-settings-metadata.json +374 -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 +27 -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 +55 -0
- package/dist/src/foundation/pi-engine-adapter/settings-integration.js +233 -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 +9 -1
- package/dist/src/foundation/pi-engine-adapter/workflows.js +0 -1
- package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +2 -0
- package/dist/src/foundation/pi-owned-ui-integration/index.js +2 -0
- package/dist/src/foundation/pi-owned-ui-integration/route-host.d.ts +29 -0
- package/dist/src/foundation/pi-owned-ui-integration/route-host.js +1 -0
- package/dist/src/{features/owned-ui/pi-session-shell.d.ts → foundation/pi-owned-ui-integration/session-shell.d.ts} +23 -14
- package/dist/src/{features/owned-ui/pi-session-shell.js → foundation/pi-owned-ui-integration/session-shell.js} +130 -61
- package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts +6 -1
- package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js +9 -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/process-containment/artifact.d.ts +1 -0
- package/dist/src/foundation/process-containment/artifact.js +34 -0
- package/dist/src/foundation/process-containment/contracts.d.ts +31 -0
- package/dist/src/foundation/process-containment/contracts.js +35 -0
- package/dist/src/foundation/process-containment/index.d.ts +5 -0
- package/dist/src/foundation/process-containment/index.js +5 -0
- package/dist/src/foundation/process-containment/linux-process-inspector.d.ts +6 -0
- package/dist/src/foundation/process-containment/linux-process-inspector.js +26 -0
- package/dist/src/foundation/process-containment/native-guardian-containment.d.ts +16 -0
- package/dist/src/foundation/process-containment/native-guardian-containment.js +139 -0
- package/dist/src/foundation/process-containment/windows-process-inspector.d.ts +17 -0
- package/dist/src/foundation/process-containment/windows-process-inspector.js +53 -0
- package/dist/src/foundation/protocol/client.d.ts +2 -2
- package/dist/src/foundation/protocol/client.js +3 -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 +6 -7
- package/dist/src/foundation/protocol/messages.js +3 -3
- package/dist/src/foundation/release/bootstrap.d.ts +2 -3
- package/dist/src/foundation/release/bootstrap.js +85 -33
- package/dist/src/foundation/release/cohort-selection.d.ts +0 -1
- package/dist/src/foundation/release/cohort-selection.js +3 -4
- package/dist/src/foundation/release/cohort-state.d.ts +6 -4
- 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 +1 -2
- package/dist/src/foundation/release/process-cleanup.js +2 -3
- 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 +38 -6
- package/dist/src/foundation/release/release-store.js +103 -43
- package/dist/src/foundation/release/release.d.ts +20 -6
- package/dist/src/foundation/release/release.js +77 -48
- 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 +20 -4
- package/dist/src/foundation/release/update.js +152 -36
- package/dist/src/foundation/storage/control-store.d.ts +8 -8
- package/dist/src/foundation/storage/control-store.js +132 -61
- 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 +6 -5
- package/dist/src/foundation/supervision/server.js +259 -91
- package/dist/src/foundation/ui-apps/contracts.d.ts +42 -0
- package/dist/src/foundation/ui-apps/contracts.js +12 -0
- package/dist/src/foundation/ui-apps/host.d.ts +42 -0
- package/dist/src/foundation/ui-apps/host.js +152 -0
- package/dist/src/foundation/ui-apps/index.d.ts +3 -0
- package/dist/src/foundation/ui-apps/index.js +3 -0
- package/dist/src/foundation/ui-apps/registry.d.ts +11 -0
- package/dist/src/foundation/ui-apps/registry.js +32 -0
- package/dist/src/foundation/ui-components/dialog-panel.d.ts +36 -0
- package/dist/src/foundation/ui-components/dialog-panel.js +47 -0
- package/dist/src/foundation/ui-components/frame.d.ts +21 -0
- package/dist/src/foundation/ui-components/frame.js +54 -0
- package/dist/src/foundation/ui-components/index.d.ts +18 -0
- package/dist/src/foundation/ui-components/index.js +18 -0
- package/dist/src/foundation/ui-components/label.d.ts +8 -0
- package/dist/src/foundation/ui-components/label.js +36 -0
- package/dist/src/foundation/ui-components/line-input.d.ts +74 -0
- package/dist/src/foundation/ui-components/line-input.js +245 -0
- package/dist/src/foundation/ui-components/list-block.d.ts +66 -0
- package/dist/src/foundation/ui-components/list-block.js +176 -0
- package/dist/src/foundation/ui-components/list-view.d.ts +66 -0
- package/dist/src/foundation/ui-components/list-view.js +76 -0
- package/dist/src/foundation/ui-components/mouse.d.ts +15 -0
- package/dist/src/foundation/ui-components/mouse.js +46 -0
- package/dist/src/foundation/ui-components/pane.d.ts +33 -0
- package/dist/src/foundation/ui-components/pane.js +7 -0
- package/dist/src/foundation/ui-components/revision.d.ts +35 -0
- package/dist/src/foundation/ui-components/revision.js +79 -0
- package/dist/src/foundation/ui-components/scrollbar.d.ts +62 -0
- package/dist/src/foundation/ui-components/scrollbar.js +102 -0
- package/dist/src/foundation/ui-components/shortcuts.d.ts +57 -0
- package/dist/src/foundation/ui-components/shortcuts.js +81 -0
- package/dist/src/foundation/ui-components/spans.d.ts +7 -0
- package/dist/src/foundation/ui-components/spans.js +59 -0
- package/dist/src/foundation/ui-components/status-line.d.ts +16 -0
- package/dist/src/foundation/ui-components/status-line.js +14 -0
- package/dist/src/foundation/ui-components/stepper.d.ts +24 -0
- package/dist/src/foundation/ui-components/stepper.js +33 -0
- package/dist/src/foundation/ui-components/surface.d.ts +20 -0
- package/dist/src/foundation/ui-components/surface.js +38 -0
- package/dist/src/foundation/ui-components/text.d.ts +24 -0
- package/dist/src/foundation/ui-components/text.js +123 -0
- package/dist/src/foundation/ui-components/theme.d.ts +23 -0
- package/dist/src/foundation/ui-components/theme.js +13 -0
- package/dist/src/foundation/ui-components/value-menu.d.ts +41 -0
- package/dist/src/foundation/ui-components/value-menu.js +33 -0
- 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 +150 -0
- package/dist/src/product-identity.json +99 -0
- package/docs/architecture/boundaries.md +32 -14
- package/docs/architecture/process-guardian-provenance.md +26 -0
- 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 +40 -8
- package/docs/architecture/ui-reference-provenance.md +50 -0
- package/docs/ci-release-runbook.md +67 -0
- package/docs/features/launch-profiles.md +12 -6
- package/docs/manual-launch-instance-acceptance.md +66 -0
- package/docs/manual-pi-boundary-candidate.md +33 -0
- package/docs/manual-terminal-colour-check.md +55 -0
- package/docs/manual-transparent-checkpoint.md +11 -11
- package/package.json +27 -14
- 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 +0 -14
- package/dist/src/foundation/transparent-terminal/command-resolution.d.ts.map +0 -1
- package/dist/src/foundation/transparent-terminal/command-resolution.js +0 -70
- package/dist/src/foundation/transparent-terminal/command-resolution.js.map +0 -1
- package/dist/src/foundation/transparent-terminal/foreground-broker.d.ts +0 -33
- package/dist/src/foundation/transparent-terminal/foreground-broker.d.ts.map +0 -1
- package/dist/src/foundation/transparent-terminal/foreground-broker.js +0 -88
- package/dist/src/foundation/transparent-terminal/foreground-broker.js.map +0 -1
- package/dist/src/foundation/transparent-terminal/index.d.ts +0 -4
- package/dist/src/foundation/transparent-terminal/index.d.ts.map +0 -1
- package/dist/src/foundation/transparent-terminal/index.js +0 -4
- package/dist/src/foundation/transparent-terminal/index.js.map +0 -1
- package/dist/src/foundation/transparent-terminal/main.d.ts +0 -10
- package/dist/src/foundation/transparent-terminal/main.d.ts.map +0 -1
- package/dist/src/foundation/transparent-terminal/main.js +0 -107
- package/dist/src/foundation/transparent-terminal/main.js.map +0 -1
- package/dist/src/foundation/transparent-terminal/native-launcher.d.ts +0 -26
- package/dist/src/foundation/transparent-terminal/native-launcher.d.ts.map +0 -1
- package/dist/src/foundation/transparent-terminal/native-launcher.js +0 -147
- 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 → supervisor.js} +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { PaneMouseEvent } from "../ui-components/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* The seam between the pinned shell and A1-owned screens. The shell asks whether
|
|
4
|
+
* a route is claimed, mounts whatever surface it is handed, and forwards keys to
|
|
5
|
+
* it — it never learns what an app is, and the app layer never reaches into the
|
|
6
|
+
* shell.
|
|
7
|
+
*/
|
|
8
|
+
export interface UiRouteSurface {
|
|
9
|
+
readonly id: string;
|
|
10
|
+
/** Renders exactly `height` rows of at most `width` columns. */
|
|
11
|
+
render(width: number, height: number): readonly string[];
|
|
12
|
+
/** True when the key was consumed; false leaves it to the shell. */
|
|
13
|
+
handleInput(data: string): boolean;
|
|
14
|
+
/** Mouse report in surface-local coordinates. True when consumed. */
|
|
15
|
+
handleMouse(event: PaneMouseEvent): boolean;
|
|
16
|
+
/** True once the surface has asked to be dismissed. */
|
|
17
|
+
isClosed(): boolean;
|
|
18
|
+
close(): void;
|
|
19
|
+
/** Called by the shell when the surface should repaint. */
|
|
20
|
+
onRenderRequested(listener: () => void): void;
|
|
21
|
+
/** The surface asks to leave A1 entirely, not merely to close itself. */
|
|
22
|
+
onExitRequested(listener: () => void): void;
|
|
23
|
+
}
|
|
24
|
+
export interface UiRouteHost {
|
|
25
|
+
/** True when a declared A1-owned surface claims this route. */
|
|
26
|
+
claims(route: string): boolean;
|
|
27
|
+
/** Opens the route's surface, or null when it could not be presented. */
|
|
28
|
+
open(route: string): UiRouteSurface | null;
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,14 +1,23 @@
|
|
|
1
|
-
import type { OwnedUiSessionViewModel, OwnedUiThinkingLevel } from "
|
|
2
|
-
import
|
|
3
|
-
import { type
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import type { OwnedUiSessionViewModel, OwnedUiThinkingLevel } from "../owned-ui-contracts/index.js";
|
|
2
|
+
import type { UiRouteHost } from "./route-host.js";
|
|
3
|
+
import { type AdapterCommandResult, type PiEngineAdapter, type PiWorkflowRequest, type PiWorkflowResult } from "../pi-engine-adapter/index.js";
|
|
4
|
+
import { type PiShellComponentPort, type PiShellEditorPort, type PiShellExtensionRendererResolver, type PiShellHeaderOptions, type PiShellHeaderPort, type PiShellLoadedResourcesPort, type PiShellSelectorOption, type PiShellTranscriptComponentPort } from "../pi-component-adapter/index.js";
|
|
5
|
+
import { PiTuiRuntimeAdapter, type PiTuiComponentPort, type PiTuiLayoutNode, type PiTuiOverlayHandle, type PiTuiTerminalPort } from "../pi-tui-runtime-adapter/index.js";
|
|
6
|
+
type OwnedUiBackendPort = PiEngineAdapter;
|
|
7
|
+
type OwnedUiTerminalPort = PiTuiTerminalPort;
|
|
8
|
+
type OwnedUiStartupOptions = PiShellHeaderOptions;
|
|
9
|
+
export interface OwnedUiSessionShellOptions {
|
|
10
|
+
readonly backend: OwnedUiBackendPort;
|
|
7
11
|
readonly cwd: string;
|
|
8
|
-
readonly terminal?:
|
|
9
|
-
readonly startup?:
|
|
12
|
+
readonly terminal?: OwnedUiTerminalPort;
|
|
13
|
+
readonly startup?: OwnedUiStartupOptions;
|
|
14
|
+
/**
|
|
15
|
+
* Declared A1-owned routes. A route this host claims resolves to its app;
|
|
16
|
+
* every other route continues to the pinned workflow table unchanged.
|
|
17
|
+
*/
|
|
18
|
+
readonly routeHost?: UiRouteHost;
|
|
10
19
|
}
|
|
11
|
-
export declare class
|
|
20
|
+
export declare class OwnedUiSessionShellRoot implements PiTuiComponentPort {
|
|
12
21
|
#private;
|
|
13
22
|
readonly editor: PiShellEditorPort;
|
|
14
23
|
readonly header: PiShellHeaderPort;
|
|
@@ -54,12 +63,12 @@ export declare class PiSessionShellRoot implements PiTuiComponentPort {
|
|
|
54
63
|
setFocused(focused: boolean): void;
|
|
55
64
|
dispose(): void;
|
|
56
65
|
}
|
|
57
|
-
export declare class
|
|
66
|
+
export declare class OwnedUiSessionShell {
|
|
58
67
|
#private;
|
|
59
|
-
readonly
|
|
60
|
-
readonly root:
|
|
68
|
+
readonly backend: OwnedUiBackendPort;
|
|
69
|
+
readonly root: OwnedUiSessionShellRoot;
|
|
61
70
|
readonly runtime: PiTuiRuntimeAdapter;
|
|
62
|
-
constructor(options:
|
|
71
|
+
constructor(options: OwnedUiSessionShellOptions);
|
|
63
72
|
view(): OwnedUiSessionViewModel;
|
|
64
73
|
start(): void;
|
|
65
74
|
onView(listener: (view: OwnedUiSessionViewModel) => void): () => void;
|
|
@@ -94,4 +103,4 @@ export declare class PiSessionShell {
|
|
|
94
103
|
showScopedModelsSelector(): void;
|
|
95
104
|
dispose(): Promise<void>;
|
|
96
105
|
}
|
|
97
|
-
|
|
106
|
+
export {};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import { MOUSE_TRACKING_OFF, MOUSE_TRACKING_ON, parseMouseInput } from "../ui-components/index.js";
|
|
2
|
+
import { PINNED_PI_HIDDEN_COMMAND_NAMES, PINNED_PI_WORKFLOW_COMMAND_NAMES, } from "../pi-engine-adapter/index.js";
|
|
3
|
+
import { createPiExtensionUiBridge, createPiQueuedInputStatus, createPiShellArmin, createPiShellAuthProviderSelector, createPiShellChangelog, createPiShellDaxnuts, createPiShellDialog, createPiShellEarendilAnnouncement, createPiShellEditor, createPiShellExtensionSelector, createPiShellFooter, createPiShellHeader, createPiShellHotkeys, createPiShellLoadedResources, createPiShellLoginDialog, createPiShellModelSelector, createPiShellOperationLoader, createPiShellReloadBox, createPiShellScopedModelsSelector, createPiShellSelector, createPiShellSessionInfo, createPiShellSessionSelector, createPiShellSettingsSelector, createPiShellStatus, createPiShellTranscriptComponent, createPiShellTreeSelector, createPiShellTrustSelector, createPiShellUserMessageSelector, piTheme, renderPiShellStatusText, renderPiShellTranscriptBlock, } from "../pi-component-adapter/index.js";
|
|
4
|
+
import { PiTuiRuntimeAdapter, } from "../pi-tui-runtime-adapter/index.js";
|
|
5
|
+
export class OwnedUiSessionShellRoot {
|
|
5
6
|
editor;
|
|
6
7
|
header;
|
|
7
8
|
resources;
|
|
@@ -495,8 +496,8 @@ function layoutPort(render, invalidate, handleInput) {
|
|
|
495
496
|
...(handleInput === undefined ? {} : { handleInput }),
|
|
496
497
|
};
|
|
497
498
|
}
|
|
498
|
-
function shellResourceEntries(
|
|
499
|
-
const resources =
|
|
499
|
+
function shellResourceEntries(backend) {
|
|
500
|
+
const resources = backend.nonVisualResources().map(resource => ({
|
|
500
501
|
section: resource.kind === "skill"
|
|
501
502
|
? "Skills"
|
|
502
503
|
: resource.kind === "prompt-template"
|
|
@@ -512,7 +513,7 @@ function shellResourceEntries(adapter) {
|
|
|
512
513
|
sourcePath: resource.sourcePath,
|
|
513
514
|
diagnostic: resource.diagnostic,
|
|
514
515
|
}));
|
|
515
|
-
for (const extension of
|
|
516
|
+
for (const extension of backend.extensionResources()) {
|
|
516
517
|
if (extension.hidden)
|
|
517
518
|
continue;
|
|
518
519
|
resources.push({
|
|
@@ -531,8 +532,8 @@ function compactResourceLabel(path) {
|
|
|
531
532
|
return segments.at(-2) ?? leaf;
|
|
532
533
|
return leaf;
|
|
533
534
|
}
|
|
534
|
-
export class
|
|
535
|
-
|
|
535
|
+
export class OwnedUiSessionShell {
|
|
536
|
+
backend;
|
|
536
537
|
root;
|
|
537
538
|
runtime;
|
|
538
539
|
#cwd;
|
|
@@ -542,6 +543,7 @@ export class PiSessionShell {
|
|
|
542
543
|
#stopped;
|
|
543
544
|
#resolveStopped;
|
|
544
545
|
#dialogId;
|
|
546
|
+
#routeHost;
|
|
545
547
|
#dialogHandle;
|
|
546
548
|
#sequence = 0;
|
|
547
549
|
#started = false;
|
|
@@ -551,14 +553,15 @@ export class PiSessionShell {
|
|
|
551
553
|
#activeLoginDialog;
|
|
552
554
|
#sessionGeneration;
|
|
553
555
|
constructor(options) {
|
|
554
|
-
this.
|
|
555
|
-
this.#sessionGeneration = this.
|
|
556
|
+
this.backend = options.backend;
|
|
557
|
+
this.#sessionGeneration = this.backend.sessionGeneration;
|
|
556
558
|
this.#cwd = options.cwd;
|
|
559
|
+
this.#routeHost = options.routeHost ?? null;
|
|
557
560
|
this.#stopped = new Promise(resolve => {
|
|
558
561
|
this.#resolveStopped = resolve;
|
|
559
562
|
});
|
|
560
563
|
let runtime;
|
|
561
|
-
this.root = new
|
|
564
|
+
this.root = new OwnedUiSessionShellRoot(this.backend.view(), options.cwd, {
|
|
562
565
|
getColumns: () => runtime?.viewport().columns ?? options.terminal?.columns ?? 80,
|
|
563
566
|
getRows: () => runtime?.viewport().rows ?? options.terminal?.rows ?? 24,
|
|
564
567
|
requestRender: () => runtime?.requestRender(),
|
|
@@ -578,15 +581,15 @@ export class PiSessionShell {
|
|
|
578
581
|
onDequeue: () => this.restoreQueuedInput(),
|
|
579
582
|
}, {
|
|
580
583
|
...options.startup,
|
|
581
|
-
resources: options.startup?.resources ?? shellResourceEntries(this.
|
|
582
|
-
}, this.
|
|
583
|
-
getMessageRenderer: customType => this.
|
|
584
|
-
getToolDefinition: toolName => this.
|
|
584
|
+
resources: options.startup?.resources ?? shellResourceEntries(this.backend),
|
|
585
|
+
}, this.backend.agentDir, {
|
|
586
|
+
getMessageRenderer: customType => this.backend.pinnedMessageRenderer(customType),
|
|
587
|
+
getToolDefinition: toolName => this.backend.pinnedToolDefinition(toolName),
|
|
585
588
|
});
|
|
586
|
-
const tuiMode = this.
|
|
589
|
+
const tuiMode = this.backend.disposed ? "regular" : this.backend.pinnedSettingsSnapshot().tuiMode;
|
|
587
590
|
const runtimeOptions = options.terminal === undefined
|
|
588
|
-
? { root: this.root, mode: tuiMode, layoutRoot: this.root.layoutRoot(), hardwareCursor: this.
|
|
589
|
-
: { root: this.root, mode: tuiMode, layoutRoot: this.root.layoutRoot(), terminal: options.terminal, hardwareCursor: this.
|
|
591
|
+
? { root: this.root, mode: tuiMode, layoutRoot: this.root.layoutRoot(), hardwareCursor: this.backend.view().terminal.hardwareCursor }
|
|
592
|
+
: { root: this.root, mode: tuiMode, layoutRoot: this.root.layoutRoot(), terminal: options.terminal, hardwareCursor: this.backend.view().terminal.hardwareCursor };
|
|
590
593
|
runtime = new PiTuiRuntimeAdapter(runtimeOptions);
|
|
591
594
|
this.runtime = runtime;
|
|
592
595
|
this.#extensionBridge = createPiExtensionUiBridge({
|
|
@@ -595,7 +598,7 @@ export class PiSessionShell {
|
|
|
595
598
|
getRows: () => this.runtime.viewport().rows,
|
|
596
599
|
requestRender: () => this.runtime.requestRender(),
|
|
597
600
|
},
|
|
598
|
-
agentDir: this.
|
|
601
|
+
agentDir: this.backend.agentDir,
|
|
599
602
|
setInputSurface: component => this.root.setInputSurface(component),
|
|
600
603
|
showOverlay: (component, overlayOptions) => this.runtime.showOverlay(component, overlayOptions),
|
|
601
604
|
listenInput: handler => this.runtime.addInputListener(handler),
|
|
@@ -615,32 +618,32 @@ export class PiSessionShell {
|
|
|
615
618
|
getToolsExpanded: () => this.root.toolsExpanded,
|
|
616
619
|
setToolsExpanded: expanded => this.root.setToolsExpanded(expanded),
|
|
617
620
|
});
|
|
618
|
-
this.
|
|
621
|
+
this.backend.setWorkflowInteractionHost({
|
|
619
622
|
startLogin: request => this.#startWorkflowLogin(request),
|
|
620
623
|
prompt: request => this.#requestWorkflowInput(request),
|
|
621
624
|
notify: event => this.#notifyWorkflowLogin(event),
|
|
622
625
|
finishLogin: () => this.#finishWorkflowLogin(),
|
|
623
626
|
});
|
|
624
|
-
this.root.editor.setAutocompleteCommands(this.
|
|
625
|
-
this.#unsubscribe = this.
|
|
627
|
+
this.root.editor.setAutocompleteCommands(this.backend.workflowAutocompleteCommands());
|
|
628
|
+
this.#unsubscribe = this.backend.onEvent(event => {
|
|
626
629
|
this.#syncView();
|
|
627
630
|
if (this.view().lifecycle === "ready" && this.#compactionQueue.length > 0)
|
|
628
631
|
void this.#flushCompactionQueue();
|
|
629
632
|
if (event.type === "session-lifecycle" && event.lifecycle === "stopped")
|
|
630
633
|
this.#resolveStopped?.();
|
|
631
634
|
});
|
|
632
|
-
if (this.
|
|
635
|
+
if (this.backend.view().lifecycle === "stopped")
|
|
633
636
|
this.#resolveStopped?.();
|
|
634
637
|
}
|
|
635
638
|
view() {
|
|
636
|
-
return this.
|
|
639
|
+
return this.backend.view();
|
|
637
640
|
}
|
|
638
641
|
start() {
|
|
639
642
|
if (this.#started)
|
|
640
643
|
return;
|
|
641
644
|
this.#started = true;
|
|
642
645
|
this.runtime.start();
|
|
643
|
-
void this.
|
|
646
|
+
void this.backend.bindExtensionUi(this.#extensionBridge.context, () => { void this.shutdown(); });
|
|
644
647
|
this.#syncView();
|
|
645
648
|
}
|
|
646
649
|
onView(listener) {
|
|
@@ -663,7 +666,7 @@ export class PiSessionShell {
|
|
|
663
666
|
if (command) {
|
|
664
667
|
this.root.editor.addToHistory(input);
|
|
665
668
|
try {
|
|
666
|
-
const result = await this.
|
|
669
|
+
const result = await this.backend.executeBashWorkflow(command, excludeFromContext);
|
|
667
670
|
const workflow = {
|
|
668
671
|
command: "debug",
|
|
669
672
|
outcome: result.cancelled ? "cancelled" : result.exitCode === 0 || result.exitCode === undefined ? "completed" : "failed",
|
|
@@ -694,7 +697,7 @@ export class PiSessionShell {
|
|
|
694
697
|
return this.#execute({
|
|
695
698
|
type,
|
|
696
699
|
correlationId: this.#correlation(type),
|
|
697
|
-
sessionId: this.
|
|
700
|
+
sessionId: this.backend.sessionId,
|
|
698
701
|
text: input,
|
|
699
702
|
});
|
|
700
703
|
}
|
|
@@ -731,7 +734,7 @@ export class PiSessionShell {
|
|
|
731
734
|
return this.#execute({
|
|
732
735
|
type: "resume-session",
|
|
733
736
|
correlationId: this.#correlation("resume"),
|
|
734
|
-
sessionId: this.
|
|
737
|
+
sessionId: this.backend.sessionId,
|
|
735
738
|
sessionPath,
|
|
736
739
|
});
|
|
737
740
|
}
|
|
@@ -739,7 +742,7 @@ export class PiSessionShell {
|
|
|
739
742
|
return this.#execute({
|
|
740
743
|
type: "set-model",
|
|
741
744
|
correlationId: this.#correlation("model"),
|
|
742
|
-
sessionId: this.
|
|
745
|
+
sessionId: this.backend.sessionId,
|
|
743
746
|
model: { providerId, modelId, displayName: modelId },
|
|
744
747
|
});
|
|
745
748
|
}
|
|
@@ -747,7 +750,7 @@ export class PiSessionShell {
|
|
|
747
750
|
return this.#execute({
|
|
748
751
|
type: "set-thinking-level",
|
|
749
752
|
correlationId: this.#correlation("thinking"),
|
|
750
|
-
sessionId: this.
|
|
753
|
+
sessionId: this.backend.sessionId,
|
|
751
754
|
thinkingLevel,
|
|
752
755
|
});
|
|
753
756
|
}
|
|
@@ -757,7 +760,7 @@ export class PiSessionShell {
|
|
|
757
760
|
return this.setThinkingLevel(levels[(current + 1) % levels.length] ?? "off");
|
|
758
761
|
}
|
|
759
762
|
async cycleModel(direction) {
|
|
760
|
-
const result = await this.
|
|
763
|
+
const result = await this.backend.cycleModelWorkflow(direction);
|
|
761
764
|
this.root.appendWorkflowResult(result);
|
|
762
765
|
if (result.outcome === "completed")
|
|
763
766
|
this.#showDaxnutsForActiveModel();
|
|
@@ -777,12 +780,12 @@ export class PiSessionShell {
|
|
|
777
780
|
return this.#execute({
|
|
778
781
|
type: "follow-up",
|
|
779
782
|
correlationId: this.#correlation("follow-up"),
|
|
780
|
-
sessionId: this.
|
|
783
|
+
sessionId: this.backend.sessionId,
|
|
781
784
|
text,
|
|
782
785
|
});
|
|
783
786
|
}
|
|
784
787
|
restoreQueuedInput() {
|
|
785
|
-
const queued = [...this.
|
|
788
|
+
const queued = [...this.backend.clearQueuedWorkflows(), ...this.#compactionQueue.map(item => item.text)];
|
|
786
789
|
this.#compactionQueue = [];
|
|
787
790
|
if (queued.length === 0)
|
|
788
791
|
return;
|
|
@@ -810,7 +813,7 @@ export class PiSessionShell {
|
|
|
810
813
|
return handle;
|
|
811
814
|
}
|
|
812
815
|
showModelSelector() {
|
|
813
|
-
const context = this.
|
|
816
|
+
const context = this.backend.pinnedModelSelectorContext();
|
|
814
817
|
const close = () => {
|
|
815
818
|
this.root.setInputSurface(null);
|
|
816
819
|
this.runtime.requestRender();
|
|
@@ -832,7 +835,7 @@ export class PiSessionShell {
|
|
|
832
835
|
this.runtime.requestRender();
|
|
833
836
|
}
|
|
834
837
|
showForkSelector() {
|
|
835
|
-
const options = this.
|
|
838
|
+
const options = this.backend.pinnedForkOptions();
|
|
836
839
|
if (options.length === 0) {
|
|
837
840
|
this.root.appendWorkflowResult({ command: "fork", outcome: "failed", message: "No user messages available to fork from" });
|
|
838
841
|
this.runtime.requestRender();
|
|
@@ -850,7 +853,7 @@ export class PiSessionShell {
|
|
|
850
853
|
this.runtime.requestRender();
|
|
851
854
|
}
|
|
852
855
|
async showLogoutSelector() {
|
|
853
|
-
const options = await this.
|
|
856
|
+
const options = await this.backend.pinnedLogoutOptions();
|
|
854
857
|
if (options.length === 0) {
|
|
855
858
|
this.root.appendWorkflowStatus("No authenticated providers available.");
|
|
856
859
|
this.runtime.requestRender();
|
|
@@ -868,7 +871,7 @@ export class PiSessionShell {
|
|
|
868
871
|
this.runtime.requestRender();
|
|
869
872
|
}
|
|
870
873
|
showLoginMethodSelector(providerReference) {
|
|
871
|
-
const method = this.
|
|
874
|
+
const method = this.backend.pinnedLoginMethodOptions(providerReference);
|
|
872
875
|
if (method.options.length === 0) {
|
|
873
876
|
this.root.appendWorkflowResult({ command: "login", outcome: "failed", message: `No authentication methods available for ${providerReference}` });
|
|
874
877
|
this.runtime.requestRender();
|
|
@@ -896,7 +899,7 @@ export class PiSessionShell {
|
|
|
896
899
|
this.runtime.requestRender();
|
|
897
900
|
}
|
|
898
901
|
showTreeSelector(initialSelectedId) {
|
|
899
|
-
const context = this.
|
|
902
|
+
const context = this.backend.pinnedTreeSelectorContext();
|
|
900
903
|
if (context.tree.length === 0) {
|
|
901
904
|
this.root.appendWorkflowStatus("No entries in session");
|
|
902
905
|
this.runtime.requestRender();
|
|
@@ -941,7 +944,7 @@ export class PiSessionShell {
|
|
|
941
944
|
this.runtime.requestRender();
|
|
942
945
|
}
|
|
943
946
|
showLoginProviderSelector(authType) {
|
|
944
|
-
const options = this.
|
|
947
|
+
const options = this.backend.pinnedLoginOptions(authType);
|
|
945
948
|
if (options.length === 0) {
|
|
946
949
|
this.root.appendWorkflowStatus(authType === "oauth" ? "No subscription providers available." : "No API key providers available.");
|
|
947
950
|
this.runtime.requestRender();
|
|
@@ -962,7 +965,7 @@ export class PiSessionShell {
|
|
|
962
965
|
this.runtime.requestRender();
|
|
963
966
|
}
|
|
964
967
|
showSessionSelector() {
|
|
965
|
-
const context = this.
|
|
968
|
+
const context = this.backend.pinnedSessionSelectorContext();
|
|
966
969
|
const close = () => {
|
|
967
970
|
this.root.setInputSurface(null);
|
|
968
971
|
this.runtime.requestRender();
|
|
@@ -987,7 +990,7 @@ export class PiSessionShell {
|
|
|
987
990
|
this.runtime.requestRender();
|
|
988
991
|
}
|
|
989
992
|
showSettingsSelector() {
|
|
990
|
-
const snapshot = this.
|
|
993
|
+
const snapshot = this.backend.pinnedSettingsSnapshot();
|
|
991
994
|
const close = () => {
|
|
992
995
|
this.root.setInputSurface(null);
|
|
993
996
|
this.runtime.requestRender();
|
|
@@ -1013,7 +1016,7 @@ export class PiSessionShell {
|
|
|
1013
1016
|
return;
|
|
1014
1017
|
}
|
|
1015
1018
|
}
|
|
1016
|
-
const result = this.
|
|
1019
|
+
const result = this.backend.applyPinnedSettingValue(callback, value);
|
|
1017
1020
|
if (result.outcome === "failed")
|
|
1018
1021
|
this.root.appendWorkflowResult(result);
|
|
1019
1022
|
else if (callback === "onTuiModeChange")
|
|
@@ -1091,7 +1094,7 @@ export class PiSessionShell {
|
|
|
1091
1094
|
}
|
|
1092
1095
|
let result;
|
|
1093
1096
|
try {
|
|
1094
|
-
result = await this.
|
|
1097
|
+
result = await this.backend.executeWorkflow(request);
|
|
1095
1098
|
}
|
|
1096
1099
|
finally {
|
|
1097
1100
|
if (operationSurface) {
|
|
@@ -1109,7 +1112,7 @@ export class PiSessionShell {
|
|
|
1109
1112
|
return { outcome: "failed", diagnostic: `Owned controller missing for ${request.command}` };
|
|
1110
1113
|
}
|
|
1111
1114
|
if (request.command === "reload" && result.outcome === "completed") {
|
|
1112
|
-
this.root.editor.setAutocompleteCommands(this.
|
|
1115
|
+
this.root.editor.setAutocompleteCommands(this.backend.workflowAutocompleteCommands());
|
|
1113
1116
|
}
|
|
1114
1117
|
this.root.appendWorkflowResult(result);
|
|
1115
1118
|
if (request.command === "model" && result.outcome === "completed")
|
|
@@ -1118,7 +1121,7 @@ export class PiSessionShell {
|
|
|
1118
1121
|
return workflowAdapterResult(result);
|
|
1119
1122
|
}
|
|
1120
1123
|
showTrustSelector() {
|
|
1121
|
-
const context = this.
|
|
1124
|
+
const context = this.backend.pinnedProjectTrustContext();
|
|
1122
1125
|
const close = () => {
|
|
1123
1126
|
this.root.setInputSurface(null);
|
|
1124
1127
|
this.runtime.requestRender();
|
|
@@ -1127,7 +1130,7 @@ export class PiSessionShell {
|
|
|
1127
1130
|
...context,
|
|
1128
1131
|
onSelect: selection => {
|
|
1129
1132
|
try {
|
|
1130
|
-
this.
|
|
1133
|
+
this.backend.persistProjectTrust(selection.updates);
|
|
1131
1134
|
close();
|
|
1132
1135
|
this.root.appendWorkflowStatus(`Saved trust decision: ${selection.trusted ? "trusted" : "untrusted"}. Restart pi for this to take effect.`);
|
|
1133
1136
|
}
|
|
@@ -1143,7 +1146,7 @@ export class PiSessionShell {
|
|
|
1143
1146
|
this.runtime.requestRender();
|
|
1144
1147
|
}
|
|
1145
1148
|
showScopedModelsSelector() {
|
|
1146
|
-
const initial = this.
|
|
1149
|
+
const initial = this.backend.pinnedScopedModelsContext();
|
|
1147
1150
|
let currentEnabledIds = initial.enabledModelIds === null ? null : [...initial.enabledModelIds];
|
|
1148
1151
|
let selectionChanged = false;
|
|
1149
1152
|
let disposed = false;
|
|
@@ -1167,12 +1170,12 @@ export class PiSessionShell {
|
|
|
1167
1170
|
onChange: enabledIds => {
|
|
1168
1171
|
selectionChanged = true;
|
|
1169
1172
|
currentEnabledIds = enabledIds === null ? null : [...enabledIds];
|
|
1170
|
-
this.
|
|
1173
|
+
this.backend.updateScopedModels(currentEnabledIds);
|
|
1171
1174
|
this.runtime.requestRender();
|
|
1172
1175
|
},
|
|
1173
1176
|
onPersist: enabledIds => {
|
|
1174
1177
|
currentEnabledIds = enabledIds === null ? null : [...enabledIds];
|
|
1175
|
-
this.
|
|
1178
|
+
this.backend.persistScopedModels(currentEnabledIds);
|
|
1176
1179
|
this.root.appendWorkflowStatus("Model selection saved to settings");
|
|
1177
1180
|
this.runtime.requestRender();
|
|
1178
1181
|
},
|
|
@@ -1189,7 +1192,7 @@ export class PiSessionShell {
|
|
|
1189
1192
|
};
|
|
1190
1193
|
this.root.setInputSurface(component);
|
|
1191
1194
|
this.runtime.requestRender();
|
|
1192
|
-
void this.
|
|
1195
|
+
void this.backend.refreshScopedModels(controller.signal).then(refreshed => {
|
|
1193
1196
|
if (disposed)
|
|
1194
1197
|
return;
|
|
1195
1198
|
if (!selectionChanged) {
|
|
@@ -1198,7 +1201,7 @@ export class PiSessionShell {
|
|
|
1198
1201
|
}
|
|
1199
1202
|
else {
|
|
1200
1203
|
component.updateModels(refreshed.models);
|
|
1201
|
-
this.
|
|
1204
|
+
this.backend.updateScopedModels(currentEnabledIds);
|
|
1202
1205
|
}
|
|
1203
1206
|
component.setRefreshStatus(timedOut ? "Model refresh timed out; showing cached models." : refreshed.status, timedOut ? "warning" : refreshed.statusKind);
|
|
1204
1207
|
this.runtime.requestRender();
|
|
@@ -1223,14 +1226,14 @@ export class PiSessionShell {
|
|
|
1223
1226
|
this.#disposed = true;
|
|
1224
1227
|
this.#unsubscribe();
|
|
1225
1228
|
this.#dialogHandle?.hide();
|
|
1226
|
-
await this.
|
|
1229
|
+
await this.backend.unbindExtensionUi();
|
|
1227
1230
|
this.#extensionBridge.dispose();
|
|
1228
1231
|
await this.runtime.dispose();
|
|
1229
1232
|
}
|
|
1230
1233
|
#syncView() {
|
|
1231
1234
|
const view = this.view();
|
|
1232
|
-
if (this.
|
|
1233
|
-
this.#sessionGeneration = this.
|
|
1235
|
+
if (this.backend.sessionGeneration !== this.#sessionGeneration) {
|
|
1236
|
+
this.#sessionGeneration = this.backend.sessionGeneration;
|
|
1234
1237
|
this.#activeLoginDialog = undefined;
|
|
1235
1238
|
this.#extensionBridge.reset();
|
|
1236
1239
|
this.root.setInputSurface(null);
|
|
@@ -1243,6 +1246,69 @@ export class PiSessionShell {
|
|
|
1243
1246
|
for (const listener of this.#listeners)
|
|
1244
1247
|
listener(view);
|
|
1245
1248
|
}
|
|
1249
|
+
#openOwnedRoute(route) {
|
|
1250
|
+
const surface = this.#routeHost?.open(route) ?? null;
|
|
1251
|
+
if (surface === null)
|
|
1252
|
+
return { outcome: "failed", diagnostic: `route is unavailable: ${route}` };
|
|
1253
|
+
if (!this.runtime.active)
|
|
1254
|
+
return { outcome: "failed", diagnostic: "runtime is not active" };
|
|
1255
|
+
this.#dialogHandle?.hide();
|
|
1256
|
+
// Any-event reporting: hover and drag are what the screen is driven by, and
|
|
1257
|
+
// it also stops the terminal treating a drag as a text selection.
|
|
1258
|
+
this.runtime.writeControl(MOUSE_TRACKING_ON);
|
|
1259
|
+
// The interrupt chord is global, so it is watched on raw input rather than
|
|
1260
|
+
// through the overlay: the pinned shell handles that key before an overlay
|
|
1261
|
+
// ever sees it, which is why an owned screen must not rely on being asked.
|
|
1262
|
+
let armedAt = 0;
|
|
1263
|
+
const removeInterruptWatch = this.runtime.addInputListener(data => {
|
|
1264
|
+
if (!data.includes(INTERRUPT))
|
|
1265
|
+
return undefined;
|
|
1266
|
+
const now = Date.now();
|
|
1267
|
+
if (armedAt !== 0 && now - armedAt <= INTERRUPT_CHORD_MS) {
|
|
1268
|
+
armedAt = 0;
|
|
1269
|
+
closeSurface();
|
|
1270
|
+
void this.shutdown();
|
|
1271
|
+
return { consume: true };
|
|
1272
|
+
}
|
|
1273
|
+
armedAt = now;
|
|
1274
|
+
this.runtime.requestRender();
|
|
1275
|
+
// The presented screen owns the chord, so the pinned shell never sees a
|
|
1276
|
+
// stray interrupt while it is up.
|
|
1277
|
+
return { consume: true };
|
|
1278
|
+
});
|
|
1279
|
+
const closeSurface = () => {
|
|
1280
|
+
removeInterruptWatch();
|
|
1281
|
+
this.runtime.writeControl(MOUSE_TRACKING_OFF);
|
|
1282
|
+
this.#dialogHandle?.hide();
|
|
1283
|
+
this.#dialogHandle = undefined;
|
|
1284
|
+
this.#dialogId = undefined;
|
|
1285
|
+
};
|
|
1286
|
+
const rows = () => Math.max(1, this.runtime.viewport().rows);
|
|
1287
|
+
const component = {
|
|
1288
|
+
render: (width) => [...surface.render(Math.max(1, width), rows())],
|
|
1289
|
+
handleInput: (data) => {
|
|
1290
|
+
const { events, rest } = parseMouseInput(data);
|
|
1291
|
+
for (const event of events)
|
|
1292
|
+
surface.handleMouse(event);
|
|
1293
|
+
if (rest.length > 0)
|
|
1294
|
+
surface.handleInput(rest);
|
|
1295
|
+
if (surface.isClosed()) {
|
|
1296
|
+
closeSurface();
|
|
1297
|
+
return;
|
|
1298
|
+
}
|
|
1299
|
+
this.runtime.requestRender();
|
|
1300
|
+
},
|
|
1301
|
+
invalidate: () => this.runtime.requestRender(),
|
|
1302
|
+
};
|
|
1303
|
+
surface.onRenderRequested(() => this.runtime.requestRender());
|
|
1304
|
+
surface.onExitRequested(() => {
|
|
1305
|
+
closeSurface();
|
|
1306
|
+
void this.shutdown();
|
|
1307
|
+
});
|
|
1308
|
+
this.#dialogHandle = this.runtime.showOverlay(component, { width: "100%", maxHeight: "100%", anchor: "top-left" });
|
|
1309
|
+
this.#dialogId = surface.id;
|
|
1310
|
+
return { outcome: "completed", diagnostic: null };
|
|
1311
|
+
}
|
|
1246
1312
|
#syncDialog(dialog) {
|
|
1247
1313
|
if (!this.runtime.active)
|
|
1248
1314
|
return;
|
|
@@ -1273,6 +1339,8 @@ export class PiSessionShell {
|
|
|
1273
1339
|
const separator = body.search(/\s/);
|
|
1274
1340
|
const name = separator < 0 ? body : body.slice(0, separator);
|
|
1275
1341
|
const argument = separator < 0 ? "" : body.slice(separator + 1).trimStart();
|
|
1342
|
+
if (this.#routeHost?.claims(name))
|
|
1343
|
+
return this.#openOwnedRoute(name);
|
|
1276
1344
|
if (isWorkflowRoute(name))
|
|
1277
1345
|
return this.runWorkflow({ command: name, argument });
|
|
1278
1346
|
// Unknown slash input, prompt templates, skills, and extension commands remain Pi prompt input.
|
|
@@ -1280,7 +1348,7 @@ export class PiSessionShell {
|
|
|
1280
1348
|
return this.#execute({
|
|
1281
1349
|
type: this.view().lifecycle === "busy" ? "steer" : "prompt",
|
|
1282
1350
|
correlationId: this.#correlation("prompt-command"),
|
|
1283
|
-
sessionId: this.
|
|
1351
|
+
sessionId: this.backend.sessionId,
|
|
1284
1352
|
text,
|
|
1285
1353
|
});
|
|
1286
1354
|
}
|
|
@@ -1362,7 +1430,7 @@ export class PiSessionShell {
|
|
|
1362
1430
|
? dialog.showManualInput(request.message)
|
|
1363
1431
|
: dialog.showPrompt(request.message, request.placeholder);
|
|
1364
1432
|
this.runtime.requestRender();
|
|
1365
|
-
return response.then(value => value
|
|
1433
|
+
return response.then(value => value, () => null);
|
|
1366
1434
|
}
|
|
1367
1435
|
#notifyWorkflowLogin(event) {
|
|
1368
1436
|
const dialog = this.#activeLoginDialog;
|
|
@@ -1396,16 +1464,16 @@ export class PiSessionShell {
|
|
|
1396
1464
|
await this.#execute({
|
|
1397
1465
|
type: item.type,
|
|
1398
1466
|
correlationId: this.#correlation(`compaction-${item.type}`),
|
|
1399
|
-
sessionId: this.
|
|
1467
|
+
sessionId: this.backend.sessionId,
|
|
1400
1468
|
text: item.text,
|
|
1401
1469
|
});
|
|
1402
1470
|
}
|
|
1403
1471
|
}
|
|
1404
1472
|
async #execute(command) {
|
|
1405
|
-
return this.
|
|
1473
|
+
return this.backend.execute(command);
|
|
1406
1474
|
}
|
|
1407
1475
|
#simple(type) {
|
|
1408
|
-
return { type, correlationId: this.#correlation(type), sessionId: this.
|
|
1476
|
+
return { type, correlationId: this.#correlation(type), sessionId: this.backend.sessionId };
|
|
1409
1477
|
}
|
|
1410
1478
|
#correlation(prefix) {
|
|
1411
1479
|
this.#sequence += 1;
|
|
@@ -1430,8 +1498,9 @@ function workflowAdapterResult(result) {
|
|
|
1430
1498
|
return { outcome: "failed", diagnostic: result.message };
|
|
1431
1499
|
return { outcome: "rejected", diagnostic: result.message };
|
|
1432
1500
|
}
|
|
1501
|
+
const INTERRUPT = "\u0003";
|
|
1502
|
+
const INTERRUPT_CHORD_MS = 1_500;
|
|
1433
1503
|
function isWorkflowRoute(value) {
|
|
1434
1504
|
return PINNED_PI_WORKFLOW_COMMAND_NAMES.includes(value)
|
|
1435
1505
|
|| PINNED_PI_HIDDEN_COMMAND_NAMES.includes(value);
|
|
1436
1506
|
}
|
|
1437
|
-
//# sourceMappingURL=pi-session-shell.js.map
|
|
@@ -20,6 +20,12 @@ export declare class PiTuiRuntimeAdapter {
|
|
|
20
20
|
setFocus(component: PiTuiComponentPort | null): void;
|
|
21
21
|
showOverlay(component: PiTuiComponentPort, options?: PiTuiOverlayOptions): PiTuiOverlayHandle;
|
|
22
22
|
hasOverlay(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Writes a terminal control sequence. Used to enable and disable mouse
|
|
25
|
+
* reporting while an A1-owned application is presented, and for nothing else:
|
|
26
|
+
* the transparent and pinned paths never call it.
|
|
27
|
+
*/
|
|
28
|
+
writeControl(data: string): void;
|
|
23
29
|
addInputListener(listener: PiTuiInputListener): () => void;
|
|
24
30
|
switchMode(mode: "regular" | "fullscreen"): boolean;
|
|
25
31
|
setHardwareCursor(enabled: boolean): void;
|
|
@@ -31,4 +37,3 @@ export declare class PiTuiRuntimeAdapter {
|
|
|
31
37
|
stop(options?: PiTuiStopOptions): Promise<void>;
|
|
32
38
|
dispose(options?: PiTuiStopOptions): Promise<void>;
|
|
33
39
|
}
|
|
34
|
-
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -230,6 +230,15 @@ export class PiTuiRuntimeAdapter {
|
|
|
230
230
|
hasOverlay() {
|
|
231
231
|
return this.#tui.hasOverlay();
|
|
232
232
|
}
|
|
233
|
+
/**
|
|
234
|
+
* Writes a terminal control sequence. Used to enable and disable mouse
|
|
235
|
+
* reporting while an A1-owned application is presented, and for nothing else:
|
|
236
|
+
* the transparent and pinned paths never call it.
|
|
237
|
+
*/
|
|
238
|
+
writeControl(data) {
|
|
239
|
+
this.#assertRunning("control sequence");
|
|
240
|
+
this.#terminal.write(data);
|
|
241
|
+
}
|
|
233
242
|
addInputListener(listener) {
|
|
234
243
|
this.#assertRunning("input listener");
|
|
235
244
|
if (this.#inputListeners.has(listener))
|
|
@@ -482,4 +491,3 @@ function toOverlayOptions(options) {
|
|
|
482
491
|
mapped.nonCapturing = options.nonCapturing;
|
|
483
492
|
return mapped;
|
|
484
493
|
}
|
|
485
|
-
//# sourceMappingURL=adapter.js.map
|