@timurproko/a1 0.1.8-dev.50ebb19 → 0.1.8-dev.512
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 +168 -65
- package/bin/activate.js +8 -0
- package/bin/cli.js +33 -11
- package/bin/guardian.js +16 -6
- package/bin/module-identity.js +76 -69
- package/bin/module-resolver.js +138 -0
- package/bin/pinned-pi-public.d.ts +3 -0
- package/bin/pinned-pi-public.js +93 -0
- package/bin/release-cleanup.js +8 -0
- package/bin/supervisor.js +2 -2
- package/bin/sync-pi-tui-proxy.js +7 -0
- package/bin/ui.js +67 -22
- package/bin/update-recovery.js +343 -0
- package/bin/warmup.js +28 -0
- package/dist/app/session-shell/clipboard-diagnostics.d.ts +16 -0
- package/dist/app/session-shell/clipboard-diagnostics.js +65 -0
- package/dist/app/session-shell/clipboard-image.d.ts +11 -0
- package/dist/app/session-shell/clipboard-image.js +38 -0
- package/dist/app/session-shell/editor-hyperlink-budget.d.ts +9 -0
- package/dist/app/session-shell/editor-hyperlink-budget.js +23 -0
- package/dist/app/session-shell/helper-pool.d.ts +33 -0
- package/dist/app/session-shell/helper-pool.js +98 -0
- package/dist/app/session-shell/image-preparation-client.d.ts +20 -0
- package/dist/app/session-shell/image-preparation-client.js +145 -0
- package/dist/app/session-shell/image-preparation.d.ts +18 -0
- package/dist/app/session-shell/image-preparation.js +126 -0
- package/dist/app/session-shell/image-source.d.ts +13 -0
- package/dist/app/session-shell/image-source.js +171 -0
- package/dist/app/session-shell/image-worker.d.ts +17 -0
- package/dist/app/session-shell/image-worker.js +23 -0
- package/dist/app/session-shell/index.d.ts +7 -0
- package/dist/app/session-shell/index.js +4 -0
- package/dist/app/session-shell/paste-executor.d.ts +18 -0
- package/dist/app/session-shell/paste-executor.js +253 -0
- package/dist/app/session-shell/paste-helper.js +173 -0
- package/dist/app/session-shell/paste-preparation-client.d.ts +31 -0
- package/dist/app/session-shell/paste-preparation-client.js +170 -0
- package/dist/app/session-shell/paste-protocol.d.ts +78 -0
- package/dist/app/session-shell/paste-protocol.js +18 -0
- package/dist/app/session-shell/paste-text-preparation.d.ts +6 -0
- package/dist/app/session-shell/paste-text-preparation.js +134 -0
- package/dist/app/session-shell/paste-text-worker.js +12 -0
- package/dist/app/session-shell/paste-types.d.ts +17 -0
- package/dist/app/session-shell/path-chip-presentation.d.ts +7 -0
- package/dist/app/session-shell/path-chip-presentation.js +24 -0
- package/dist/app/session-shell/prompt-chips.d.ts +76 -0
- package/dist/app/session-shell/prompt-chips.js +507 -0
- package/dist/app/session-shell/prompt-history-controller.d.ts +36 -0
- package/dist/app/session-shell/prompt-history-controller.js +170 -0
- package/dist/app/session-shell/prompt-suggestion-controller.d.ts +35 -0
- package/dist/app/session-shell/prompt-suggestion-controller.js +207 -0
- package/dist/app/session-shell/quit-outro-effects.d.ts +29 -0
- package/dist/app/session-shell/quit-outro-effects.js +242 -0
- package/dist/app/session-shell/quit-outro.d.ts +38 -0
- package/dist/app/session-shell/quit-outro.js +98 -0
- package/dist/app/session-shell/response-copy-coordinator.d.ts +27 -0
- package/dist/app/session-shell/response-copy-coordinator.js +187 -0
- package/dist/app/session-shell/response-copy-helper.js +122 -0
- package/dist/app/session-shell/response-copy-protocol.d.ts +56 -0
- package/dist/app/session-shell/response-copy-protocol.js +5 -0
- package/dist/app/session-shell/response-copy-transport.d.ts +39 -0
- package/dist/app/session-shell/response-copy-transport.js +217 -0
- package/dist/app/session-shell/session-shell-root.d.ts +265 -0
- package/dist/app/session-shell/session-shell-root.js +1366 -0
- package/dist/app/session-shell/session-shell.d.ts +59 -0
- package/dist/app/session-shell/session-shell.js +1917 -0
- package/dist/app/session-shell/session-viewport-controller.d.ts +61 -0
- package/dist/app/session-shell/session-viewport-controller.js +597 -0
- package/dist/app/session-shell/stream-presentation-coalescer.d.ts +29 -0
- package/dist/app/session-shell/stream-presentation-coalescer.js +79 -0
- package/dist/app/session-shell/system-clipboard.d.ts +20 -0
- package/dist/app/session-shell/system-clipboard.js +159 -0
- package/dist/app/session-shell/text-paste.d.ts +5 -0
- package/dist/app/session-shell/text-paste.js +16 -0
- package/dist/cli/capabilities.d.ts +6 -0
- package/dist/cli/capabilities.js +7 -0
- package/dist/cli/dispatch.d.ts +46 -0
- package/dist/cli/dispatch.js +261 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/package-messages.d.ts +26 -0
- package/dist/cli/package-messages.js +71 -0
- package/dist/cli/packages.d.ts +32 -0
- package/dist/cli/packages.js +81 -0
- package/dist/cli/version-stats.d.ts +22 -0
- package/dist/cli/version-stats.js +112 -0
- package/dist/composition/index.d.ts +2 -0
- package/dist/composition/index.js +2 -0
- package/dist/composition/owned-ui.d.ts +37 -0
- package/dist/composition/owned-ui.js +136 -0
- package/dist/composition/settings-route-host.d.ts +7 -0
- package/dist/composition/settings-route-host.js +110 -0
- package/dist/contracts/agent-engine/capability-ports.d.ts +95 -0
- package/dist/contracts/agent-engine/domain-validation.js +107 -0
- package/dist/contracts/agent-engine/domain.d.ts +138 -0
- package/dist/contracts/agent-engine/index.d.ts +11 -0
- package/dist/contracts/agent-engine/index.js +6 -0
- package/dist/contracts/agent-engine/package-ports.d.ts +60 -0
- package/dist/contracts/agent-engine/ports.js +1 -0
- package/dist/contracts/owned-ui/extension-ui.d.ts +310 -0
- package/dist/contracts/owned-ui/image-attachments.d.ts +36 -0
- package/dist/contracts/owned-ui/image-attachments.js +67 -0
- package/dist/contracts/owned-ui/index.d.ts +12 -0
- package/dist/contracts/owned-ui/index.js +8 -0
- package/dist/contracts/owned-ui/model.d.ts +378 -0
- package/dist/contracts/owned-ui/prompt-history.d.ts +55 -0
- package/dist/contracts/owned-ui/prompt-history.js +23 -0
- package/dist/contracts/owned-ui/prompt-suggestions.d.ts +3 -0
- package/dist/contracts/owned-ui/prompt-suggestions.js +44 -0
- package/dist/contracts/owned-ui/suggestion-diagnostics.d.ts +22 -0
- package/dist/contracts/owned-ui/suggestion-diagnostics.js +9 -0
- package/dist/contracts/owned-ui/transcript-lifecycle.d.ts +5 -0
- package/dist/contracts/owned-ui/transcript-lifecycle.js +33 -0
- package/dist/contracts/owned-ui/validation.d.ts +15 -0
- package/dist/contracts/owned-ui/validation.js +523 -0
- package/dist/contracts/presentation/index.d.ts +104 -0
- package/dist/features/launch/development-launch.js +36 -0
- package/dist/features/launch/index.d.ts +12 -0
- package/dist/features/launch/index.js +6 -0
- package/dist/features/launch/intent.d.ts +12 -0
- package/dist/features/launch/intent.js +8 -0
- package/dist/features/launch/prepare-launch.d.ts +11 -0
- package/dist/features/launch/prepare-launch.js +14 -0
- package/dist/features/launch/profile-paths.d.ts +16 -0
- package/dist/features/launch/profile-paths.js +36 -0
- package/dist/features/launch/runtime-selection.d.ts +16 -0
- package/dist/features/launch/runtime-selection.js +13 -0
- package/dist/features/owned-ui/index.d.ts +6 -0
- package/dist/features/owned-ui/index.js +4 -0
- package/dist/features/owned-ui/project-trust-prompt.d.ts +25 -0
- package/dist/features/owned-ui/project-trust-prompt.js +149 -0
- package/dist/features/owned-ui/run.d.ts +17 -0
- package/dist/features/owned-ui/run.js +64 -0
- package/dist/features/owned-ui/session-fork-prompt.d.ts +8 -0
- package/dist/features/owned-ui/session-fork-prompt.js +34 -0
- package/dist/features/owned-ui/settings-app.d.ts +21 -0
- package/dist/features/owned-ui/settings-app.js +807 -0
- package/dist/features/owned-ui/settings-route.d.ts +2 -0
- package/dist/features/owned-ui/settings-route.js +2 -0
- package/dist/features/prompt-history/image-sidecar.d.ts +32 -0
- package/dist/features/prompt-history/image-sidecar.js +130 -0
- package/dist/features/prompt-history/index.d.ts +4 -0
- package/dist/features/prompt-history/index.js +3 -0
- package/dist/features/prompt-history/paths.d.ts +5 -0
- package/dist/features/prompt-history/paths.js +17 -0
- package/dist/features/prompt-history/service.d.ts +54 -0
- package/dist/features/prompt-history/service.js +425 -0
- package/dist/features/prompt-history/store.d.ts +16 -0
- package/dist/features/prompt-history/store.js +219 -0
- package/dist/features/prompt-history/worker.d.ts +9 -0
- package/dist/features/prompt-history/worker.js +45 -0
- package/dist/features/prompt-suggestions/diagnostics.d.ts +18 -0
- package/dist/features/prompt-suggestions/diagnostics.js +82 -0
- package/dist/features/prompt-suggestions/index.d.ts +2 -0
- package/dist/features/prompt-suggestions/index.js +1 -0
- package/dist/foundation/launch-context/index.d.ts +59 -0
- package/dist/foundation/launch-context/index.js +136 -0
- package/dist/foundation/launch-guardian/index.d.ts +2 -0
- package/dist/foundation/launch-guardian/index.js +1 -0
- package/dist/foundation/launch-guardian/main.d.ts +33 -0
- package/dist/foundation/launch-guardian/main.js +180 -0
- package/dist/foundation/lifecycle/commands.js +1 -0
- package/dist/foundation/lifecycle/index.d.ts +11 -0
- package/dist/foundation/lifecycle/index.js +5 -0
- package/dist/foundation/lifecycle/model.d.ts +64 -0
- package/dist/foundation/lifecycle/model.js +40 -0
- package/dist/foundation/lifecycle/paths.d.ts +30 -0
- package/dist/foundation/lifecycle/paths.js +70 -0
- package/dist/foundation/lifecycle/session-selection.d.ts +9 -0
- package/dist/foundation/lifecycle/session-selection.js +39 -0
- package/dist/foundation/lifecycle/supervisor-startup.d.ts +30 -0
- package/dist/foundation/lifecycle/supervisor-startup.js +106 -0
- package/dist/foundation/process-containment/darwin-process-inspector.d.ts +5 -0
- package/dist/foundation/process-containment/darwin-process-inspector.js +7 -0
- package/dist/foundation/process-containment/index.d.ts +8 -0
- package/dist/foundation/process-containment/index.js +6 -0
- package/dist/foundation/process-containment/linux-process-inspector.d.ts +7 -0
- package/dist/foundation/process-containment/linux-process-inspector.js +27 -0
- package/dist/foundation/process-containment/native-guardian-containment.d.ts +17 -0
- package/dist/foundation/process-containment/native-guardian-containment.js +140 -0
- package/dist/foundation/process-containment/windows-process-inspector.d.ts +19 -0
- package/dist/foundation/process-containment/windows-process-inspector.js +56 -0
- package/dist/foundation/protocol/client.d.ts +18 -0
- package/dist/foundation/protocol/client.js +130 -0
- package/dist/foundation/protocol/index.d.ts +3 -0
- package/dist/foundation/protocol/index.js +2 -0
- package/dist/foundation/protocol/messages.d.ts +90 -0
- package/dist/foundation/protocol/messages.js +100 -0
- package/dist/foundation/release/bootstrap.d.ts +51 -0
- package/dist/foundation/release/bootstrap.js +427 -0
- package/dist/foundation/release/cohort-state.d.ts +157 -0
- package/dist/foundation/release/cohort-state.js +472 -0
- package/dist/foundation/release/dependency-certification-retention.d.ts +7 -0
- package/dist/foundation/release/dependency-certification-retention.js +88 -0
- package/dist/foundation/release/dependency-certification.d.ts +24 -0
- package/dist/foundation/release/dependency-certification.js +266 -0
- package/dist/foundation/release/dependency-layer.d.ts +78 -0
- package/dist/foundation/release/dependency-layer.js +466 -0
- package/dist/foundation/release/endpoints.d.ts +24 -0
- package/dist/foundation/release/endpoints.js +134 -0
- package/dist/foundation/release/immutable-platform.d.ts +6 -0
- package/dist/foundation/release/immutable-platform.js +13 -0
- package/dist/foundation/release/index.d.ts +32 -0
- package/dist/foundation/release/index.js +17 -0
- package/dist/foundation/release/release-gc.d.ts +71 -0
- package/dist/foundation/release/release-gc.js +764 -0
- package/dist/foundation/release/release-store.d.ts +49 -0
- package/dist/foundation/release/release-store.js +235 -0
- package/dist/foundation/release/release.d.ts +43 -0
- package/dist/foundation/release/release.js +215 -0
- package/dist/foundation/release/restart-certification.d.ts +68 -0
- package/dist/foundation/release/restart-certification.js +227 -0
- package/dist/foundation/release/types.d.ts +11 -0
- package/dist/foundation/release/types.js +1 -0
- package/dist/foundation/release/update-activation.d.ts +72 -0
- package/dist/foundation/release/update-activation.js +204 -0
- package/dist/foundation/release/update-launch.d.ts +6 -0
- package/dist/foundation/release/update-launch.js +17 -0
- package/dist/foundation/release/update-recovery.d.ts +76 -0
- package/dist/foundation/release/update-recovery.js +356 -0
- package/dist/foundation/release/update-transaction.d.ts +42 -0
- package/dist/foundation/release/update-transaction.js +101 -0
- package/dist/foundation/release/update.d.ts +114 -0
- package/dist/foundation/release/update.js +633 -0
- package/dist/foundation/release/warmup.d.ts +3 -0
- package/dist/foundation/release/warmup.js +47 -0
- package/dist/foundation/startup/index.d.ts +4 -0
- package/dist/foundation/startup/index.js +2 -0
- package/dist/foundation/startup/startup-budget.d.ts +46 -0
- package/dist/foundation/startup/startup-budget.js +42 -0
- package/dist/foundation/startup/startup-descriptor.js +34 -0
- package/dist/foundation/startup/startup-runtime.d.ts +27 -0
- package/dist/foundation/startup/startup-runtime.js +128 -0
- package/dist/foundation/storage/control-store.d.ts +18 -0
- package/dist/foundation/storage/control-store.js +342 -0
- package/dist/foundation/storage/index.d.ts +1 -0
- package/dist/foundation/storage/index.js +1 -0
- package/dist/foundation/supervision/index.d.ts +3 -0
- package/dist/foundation/supervision/index.js +3 -0
- package/dist/foundation/supervision/main.d.ts +1 -0
- package/dist/foundation/supervision/main.js +84 -0
- package/dist/foundation/supervision/paths.d.ts +1 -0
- package/dist/foundation/supervision/paths.js +1 -0
- package/dist/foundation/supervision/server.d.ts +46 -0
- package/dist/foundation/supervision/server.js +573 -0
- package/dist/foundation/terminal-cleanup/fatal-exit.d.ts +12 -0
- package/dist/foundation/terminal-cleanup/fatal-exit.js +87 -0
- package/dist/foundation/terminal-cleanup/index.d.ts +3 -0
- package/dist/foundation/terminal-cleanup/index.js +2 -0
- package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +4 -0
- package/dist/foundation/terminal-cleanup/terminal-reset.js +40 -0
- package/dist/integrations/pi/components/components.d.ts +4 -0
- package/dist/integrations/pi/components/components.js +64 -0
- package/dist/integrations/pi/components/conformance.d.ts +18 -0
- package/dist/integrations/pi/components/conformance.js +70 -0
- package/dist/integrations/pi/components/editor-interaction.d.ts +38 -0
- package/dist/integrations/pi/components/editor-interaction.js +1 -0
- package/dist/integrations/pi/components/history-editor-loader.d.ts +5 -0
- package/dist/integrations/pi/components/history-editor-loader.js +5 -0
- package/dist/integrations/pi/components/index.d.ts +21 -0
- package/dist/integrations/pi/components/index.js +13 -0
- package/dist/integrations/pi/components/owned-editor-ux.d.ts +74 -0
- package/dist/integrations/pi/components/owned-editor-ux.js +1094 -0
- package/dist/integrations/pi/components/path-word-ranges.d.ts +2 -0
- package/dist/integrations/pi/components/path-word-ranges.js +37 -0
- package/dist/integrations/pi/components/prompt-input-port.d.ts +18 -0
- package/dist/integrations/pi/components/prompt-input-port.js +1 -0
- package/dist/integrations/pi/components/resources/builtin-themes.d.ts +167 -0
- package/dist/integrations/pi/components/resources/builtin-themes.js +168 -0
- package/dist/integrations/pi/components/shell-components.d.ts +7 -0
- package/dist/integrations/pi/components/shell-components.js +7 -0
- package/dist/integrations/pi/components/shell-editor-autocomplete.js +298 -0
- package/dist/integrations/pi/components/shell-extension-ui.d.ts +35 -0
- package/dist/integrations/pi/components/shell-extension-ui.js +280 -0
- package/dist/integrations/pi/components/shell-footer-status.d.ts +7 -0
- package/dist/integrations/pi/components/shell-footer-status.js +248 -0
- package/dist/integrations/pi/components/shell-presenters-info.d.ts +43 -0
- package/dist/integrations/pi/components/shell-presenters-info.js +114 -0
- package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +29 -0
- package/dist/integrations/pi/components/shell-presenters-transcript.js +433 -0
- package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +123 -0
- package/dist/integrations/pi/components/shell-selectors-dialogs.js +242 -0
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +217 -0
- package/dist/integrations/pi/components/shell-shared-facade.js +92 -0
- package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +17 -0
- package/dist/integrations/pi/components/submitted-prompt-adapter.js +49 -0
- package/dist/integrations/pi/components/tool-image-presentation.d.ts +21 -0
- package/dist/integrations/pi/components/tool-image-presentation.js +83 -0
- package/dist/integrations/pi/components/tool-result-adapter.d.ts +6 -0
- package/dist/integrations/pi/components/tool-result-adapter.js +27 -0
- package/dist/integrations/pi/components/transcript-image-resolver.d.ts +7 -0
- package/dist/integrations/pi/components/transcript-image-resolver.js +19 -0
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +445 -0
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +370 -0
- package/dist/integrations/pi/components/upstream/assets/earendil-image.json +12 -0
- package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +13 -0
- package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +29 -0
- package/dist/integrations/pi/components/upstream/components/daxnuts.js +146 -0
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.d.ts +4 -0
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +48 -0
- package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +20 -0
- package/dist/integrations/pi/components/upstream/components/extension-editor.js +84 -0
- package/dist/integrations/pi/components/upstream/components/mermaid.js +81 -0
- package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +46 -0
- package/dist/integrations/pi/components/upstream/components/owned-editor.js +187 -0
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +59 -0
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +346 -0
- package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +11 -0
- package/dist/integrations/pi/components/upstream/components/session-footer.js +123 -0
- package/dist/integrations/pi/components/upstream/components/session-selector-search.js +161 -0
- package/dist/integrations/pi/components/upstream/components/session-selector.d.ts +95 -0
- package/dist/integrations/pi/components/upstream/components/session-selector.js +893 -0
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +21 -0
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +46 -0
- package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +35 -0
- package/dist/integrations/pi/components/upstream/components/status-indicator.js +69 -0
- package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +67 -0
- package/dist/integrations/pi/components/upstream/components/tool-execution.js +365 -0
- package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +101 -0
- package/dist/integrations/pi/components/upstream/components/tree-selector.js +1275 -0
- package/dist/integrations/pi/components/upstream/components/trust-selector.d.ts +33 -0
- package/dist/integrations/pi/components/upstream/components/trust-selector.js +81 -0
- package/dist/integrations/pi/components/upstream/external-editor.js +43 -0
- package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +289 -0
- package/dist/integrations/pi/components/upstream/history/editor-core.js +2144 -0
- package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +35 -0
- package/dist/integrations/pi/components/upstream/history/kill-ring.js +51 -0
- package/dist/integrations/pi/components/upstream/history/printable-key.d.ts +1 -0
- package/dist/integrations/pi/components/upstream/history/printable-key.js +43 -0
- package/dist/integrations/pi/components/upstream/history/text-helpers.d.ts +14 -0
- package/dist/integrations/pi/components/upstream/history/text-helpers.js +31 -0
- package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +25 -0
- package/dist/integrations/pi/components/upstream/history/undo-stack.js +39 -0
- package/dist/integrations/pi/components/upstream/history/word-navigation.d.ts +24 -0
- package/dist/integrations/pi/components/upstream/history/word-navigation.js +103 -0
- package/dist/integrations/pi/components/upstream/model-search.d.ts +18 -0
- package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +33 -0
- package/dist/integrations/pi/components/upstream/theme/theme-controller.js +114 -0
- package/dist/integrations/pi/components/upstream/theme/theme.d.ts +61 -0
- package/dist/integrations/pi/components/upstream/theme/theme.js +337 -0
- package/dist/integrations/pi/engine/adapter.d.ts +135 -0
- package/dist/integrations/pi/engine/adapter.js +648 -0
- package/dist/integrations/pi/engine/changelog.d.ts +2 -0
- package/dist/integrations/pi/engine/changelog.js +63 -0
- package/dist/integrations/pi/engine/command-dispatch.d.ts +41 -0
- package/dist/integrations/pi/engine/command-dispatch.js +125 -0
- package/dist/integrations/pi/engine/compaction-progress.d.ts +28 -0
- package/dist/integrations/pi/engine/compaction-progress.js +96 -0
- package/dist/integrations/pi/engine/conformance.d.ts +39 -0
- package/dist/integrations/pi/engine/conformance.js +140 -0
- package/dist/integrations/pi/engine/event-delivery.d.ts +100 -0
- package/dist/integrations/pi/engine/event-delivery.js +184 -0
- package/dist/integrations/pi/engine/extension-ui-binding.d.ts +35 -0
- package/dist/integrations/pi/engine/extension-ui-binding.js +81 -0
- package/dist/integrations/pi/engine/http-dispatcher.d.ts +4 -0
- package/dist/integrations/pi/engine/http-dispatcher.js +25 -0
- package/dist/integrations/pi/engine/index.d.ts +18 -0
- package/dist/integrations/pi/engine/index.js +10 -0
- package/dist/integrations/pi/engine/message-values.d.ts +29 -0
- package/dist/integrations/pi/engine/message-values.js +168 -0
- package/dist/integrations/pi/engine/package-integration.d.ts +13 -0
- package/dist/integrations/pi/engine/package-integration.js +118 -0
- package/dist/integrations/pi/engine/pending-delivery.d.ts +30 -0
- package/dist/integrations/pi/engine/pending-delivery.js +156 -0
- package/dist/integrations/pi/engine/pi-settings-metadata.json +385 -0
- package/dist/integrations/pi/engine/project-trust-preflight.d.ts +22 -0
- package/dist/integrations/pi/engine/project-trust-preflight.js +50 -0
- package/dist/integrations/pi/engine/prompt-suggestions.d.ts +30 -0
- package/dist/integrations/pi/engine/prompt-suggestions.js +102 -0
- package/dist/integrations/pi/engine/provider-authentication.d.ts +34 -0
- package/dist/integrations/pi/engine/provider-authentication.js +209 -0
- package/dist/integrations/pi/engine/resource-catalog.d.ts +49 -0
- package/dist/integrations/pi/engine/resource-catalog.js +289 -0
- package/dist/integrations/pi/engine/resources/changelog.json +12 -0
- package/dist/integrations/pi/engine/runtime-integration.d.ts +53 -0
- package/dist/integrations/pi/engine/runtime-integration.js +118 -0
- package/dist/integrations/pi/engine/session-events.d.ts +48 -0
- package/dist/integrations/pi/engine/session-events.js +223 -0
- package/dist/integrations/pi/engine/session-integration.d.ts +67 -0
- package/dist/integrations/pi/engine/session-integration.js +195 -0
- package/dist/integrations/pi/engine/session-runtime.d.ts +84 -0
- package/dist/integrations/pi/engine/session-runtime.js +249 -0
- package/dist/integrations/pi/engine/session-selection.d.ts +28 -0
- package/dist/integrations/pi/engine/session-selection.js +90 -0
- package/dist/integrations/pi/engine/settings-bridge.d.ts +121 -0
- package/dist/integrations/pi/engine/settings-bridge.js +514 -0
- package/dist/integrations/pi/engine/settings-metadata.d.ts +31 -0
- package/dist/integrations/pi/engine/settings-metadata.js +67 -0
- package/dist/integrations/pi/engine/settings-port.d.ts +42 -0
- package/dist/integrations/pi/engine/settings-port.js +353 -0
- package/dist/integrations/pi/engine/tool-rendering.d.ts +13 -0
- package/dist/integrations/pi/engine/tool-rendering.js +145 -0
- package/dist/integrations/pi/engine/transcript-image-assets.d.ts +11 -0
- package/dist/integrations/pi/engine/transcript-image-assets.js +86 -0
- package/dist/integrations/pi/engine/transcript-projection.d.ts +39 -0
- package/dist/integrations/pi/engine/transcript-projection.js +405 -0
- package/dist/integrations/pi/engine/usage-view.d.ts +4 -0
- package/dist/integrations/pi/engine/usage-view.js +56 -0
- package/dist/integrations/pi/engine/windows-filesystem-hygiene.d.ts +21 -0
- package/dist/integrations/pi/engine/windows-filesystem-hygiene.js +55 -0
- package/dist/integrations/pi/engine/workflow-contexts.d.ts +59 -0
- package/dist/integrations/pi/engine/workflow-contexts.js +316 -0
- package/dist/integrations/pi/engine/workflow-runner.d.ts +60 -0
- package/dist/integrations/pi/engine/workflow-runner.js +509 -0
- package/dist/integrations/pi/engine/workflow-support.d.ts +33 -0
- package/dist/integrations/pi/engine/workflow-support.js +352 -0
- package/dist/integrations/pi/engine/workflows.d.ts +251 -0
- package/dist/integrations/pi/engine/workflows.js +63 -0
- package/dist/integrations/pi/startup-public.d.ts +2 -0
- package/dist/integrations/pi/startup-public.js +2223 -0
- package/dist/integrations/pi/startup-public.manifest.json +12502 -0
- package/dist/integrations/pi/tui-runtime/adapter.d.ts +56 -0
- package/dist/integrations/pi/tui-runtime/adapter.js +783 -0
- package/dist/integrations/pi/tui-runtime/contracts.d.ts +156 -0
- package/dist/integrations/pi/tui-runtime/contracts.js +1 -0
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +88 -0
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +433 -0
- package/dist/integrations/pi/tui-runtime/index.d.ts +9 -0
- package/dist/integrations/pi/tui-runtime/index.js +5 -0
- package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +39 -0
- package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.js +139 -0
- package/dist/integrations/pi/tui-runtime/mouse-report-input.d.ts +13 -0
- package/dist/integrations/pi/tui-runtime/mouse-report-input.js +57 -0
- package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +32 -0
- package/dist/integrations/pi/tui-runtime/overlay-geometry.js +158 -0
- package/dist/integrations/pi/tui-runtime/presentation-adapter.d.ts +4 -0
- package/dist/integrations/pi/tui-runtime/presentation-adapter.js +48 -0
- package/dist/native/darwin-arm64/manifest.json +4 -4
- package/dist/native/darwin-arm64/process-guardian +0 -0
- package/dist/native/linux-x64/manifest.json +3 -3
- package/dist/native/linux-x64/process-guardian +0 -0
- package/dist/native/win32-x64/manifest.json +3 -3
- package/dist/native/win32-x64/process-guardian.exe +0 -0
- package/dist/product-identity.d.ts +37 -0
- package/dist/product-identity.js +119 -0
- package/dist/product-identity.json +85 -0
- package/dist/runtime-payload-inventory.json +127148 -0
- package/dist/ui/apps/contracts.d.ts +64 -0
- package/dist/ui/apps/host.d.ts +42 -0
- package/dist/ui/apps/host.js +156 -0
- package/dist/ui/apps/index.d.ts +5 -0
- package/dist/ui/apps/index.js +3 -0
- package/dist/ui/apps/registry.d.ts +12 -0
- package/dist/ui/apps/registry.js +33 -0
- package/dist/ui/components/dialog-panel.js +49 -0
- package/dist/ui/components/frame.d.ts +22 -0
- package/dist/ui/components/frame.js +55 -0
- package/dist/ui/components/index.d.ts +47 -0
- package/dist/ui/components/index.js +25 -0
- package/dist/ui/components/line-input.d.ts +68 -0
- package/dist/ui/components/line-input.js +224 -0
- package/dist/ui/components/list-view.d.ts +60 -0
- package/dist/ui/components/list-view.js +82 -0
- package/dist/ui/components/mouse.d.ts +25 -0
- package/dist/ui/components/mouse.js +70 -0
- package/dist/ui/components/progress-status.d.ts +2 -0
- package/dist/ui/components/progress-status.js +4 -0
- package/dist/ui/components/prompt-input.d.ts +32 -0
- package/dist/ui/components/prompt-input.js +51 -0
- package/dist/ui/components/scrollbar.d.ts +88 -0
- package/dist/ui/components/scrollbar.js +137 -0
- package/dist/ui/components/selection-copy.d.ts +24 -0
- package/dist/ui/components/selection-copy.js +39 -0
- package/dist/ui/components/shortcuts.d.ts +58 -0
- package/dist/ui/components/shortcuts.js +82 -0
- package/dist/ui/components/spans.d.ts +28 -0
- package/dist/ui/components/spans.js +266 -0
- package/dist/ui/components/submitted-prompt.d.ts +23 -0
- package/dist/ui/components/submitted-prompt.js +50 -0
- package/dist/ui/components/surface.d.ts +20 -0
- package/dist/ui/components/surface.js +44 -0
- package/dist/ui/components/text-selection.d.ts +62 -0
- package/dist/ui/components/text-selection.js +210 -0
- package/dist/ui/components/text.d.ts +38 -0
- package/dist/ui/components/text.js +185 -0
- package/dist/ui/components/transcript-viewport.d.ts +173 -0
- package/dist/ui/components/transcript-viewport.js +753 -0
- package/dist/ui/components/visible-hyperlinks.d.ts +26 -0
- package/dist/ui/components/visible-hyperlinks.js +97 -0
- package/dist/ui/settings/declarations.d.ts +141 -0
- package/dist/ui/settings/declarations.js +135 -0
- package/dist/ui/settings/index.d.ts +10 -0
- package/dist/ui/settings/index.js +5 -0
- package/dist/ui/settings/manager.d.ts +54 -0
- package/dist/ui/settings/manager.js +256 -0
- package/dist/ui/settings/migrations.d.ts +13 -0
- package/dist/ui/settings/migrations.js +74 -0
- package/dist/ui/settings/sections.d.ts +52 -0
- package/dist/ui/settings/sections.js +112 -0
- package/docs/architecture/boundaries.md +17 -13
- package/docs/architecture/code-documentation.md +77 -0
- package/docs/architecture/history-editor-provenance.md +100 -0
- package/docs/architecture/internal-naming.md +93 -0
- package/docs/architecture/process-guardian-provenance.md +3 -1
- package/docs/architecture/project-structure.md +69 -30
- package/docs/architecture/prompt-suggestions.md +68 -0
- package/docs/architecture/resource-and-data-policy.md +28 -2
- package/docs/architecture/response-copy-delivery.md +85 -0
- package/docs/architecture/terminal-host-proof-gate.md +1 -1
- package/docs/architecture/terminal-host-spike-evidence.md +1 -1
- package/docs/architecture/tool-image-presentation.md +62 -0
- package/docs/architecture/toolchain.md +32 -10
- package/docs/architecture/ui-reference-provenance.md +60 -6
- package/docs/ci-release-runbook.md +256 -79
- package/docs/features/launch-profiles.md +24 -17
- package/docs/features/modal-content-interaction.md +37 -0
- package/docs/features/prompt-history.md +149 -0
- package/docs/local-worktree-cleanup.md +212 -0
- package/docs/manual-code-streaming-cleanup.md +88 -0
- package/docs/manual-ghost-link-baseline.md +89 -0
- package/docs/manual-launch-instance-acceptance.md +12 -35
- package/docs/manual-owned-ui-checkpoint.md +79 -0
- package/docs/manual-pi-boundary-candidate.md +4 -5
- package/docs/manual-terminal-colour-check.md +4 -3
- package/docs/openspec-archive-automation.md +259 -0
- package/docs/repository-governance-live-acceptance.md +77 -0
- package/docs/validation.md +100 -0
- package/package.json +52 -34
- package/dist/src/cli/capabilities.d.ts +0 -15
- package/dist/src/cli/capabilities.js +0 -7
- package/dist/src/cli/dispatch.d.ts +0 -32
- package/dist/src/cli/dispatch.js +0 -142
- package/dist/src/cli/index.d.ts +0 -5
- package/dist/src/cli/index.js +0 -5
- package/dist/src/cli/packages.d.ts +0 -23
- package/dist/src/cli/packages.js +0 -84
- package/dist/src/cli/version-stats.d.ts +0 -16
- package/dist/src/cli/version-stats.js +0 -72
- package/dist/src/cli/version.d.ts +0 -2
- package/dist/src/cli/version.js +0 -23
- package/dist/src/composition/index.d.ts +0 -48
- package/dist/src/composition/index.js +0 -258
- package/dist/src/features/launch/development-launch.js +0 -28
- package/dist/src/features/launch/index.d.ts +0 -7
- package/dist/src/features/launch/index.js +0 -7
- package/dist/src/features/launch/intent.d.ts +0 -7
- package/dist/src/features/launch/intent.js +0 -4
- package/dist/src/features/launch/prepare-launch.d.ts +0 -13
- package/dist/src/features/launch/prepare-launch.js +0 -21
- package/dist/src/features/launch/profile-paths.d.ts +0 -15
- package/dist/src/features/launch/profile-paths.js +0 -31
- package/dist/src/features/launch/profiles.d.ts +0 -12
- package/dist/src/features/launch/profiles.js +0 -26
- package/dist/src/features/launch/runtime-selection.d.ts +0 -19
- package/dist/src/features/launch/runtime-selection.js +0 -13
- package/dist/src/features/owned-ui/customization.d.ts +0 -38
- package/dist/src/features/owned-ui/customization.js +0 -108
- package/dist/src/features/owned-ui/diagnostics.d.ts +0 -33
- package/dist/src/features/owned-ui/diagnostics.js +0 -94
- package/dist/src/features/owned-ui/index.d.ts +0 -4
- package/dist/src/features/owned-ui/index.js +0 -4
- package/dist/src/features/owned-ui/run.d.ts +0 -11
- package/dist/src/features/owned-ui/run.js +0 -15
- package/dist/src/features/owned-ui/settings-app.d.ts +0 -22
- package/dist/src/features/owned-ui/settings-app.js +0 -633
- package/dist/src/features/workspace/capabilities.d.ts +0 -31
- package/dist/src/features/workspace/capabilities.js +0 -75
- package/dist/src/features/workspace/index.d.ts +0 -6
- package/dist/src/features/workspace/index.js +0 -6
- package/dist/src/features/workspace/presentation.d.ts +0 -30
- package/dist/src/features/workspace/presentation.js +0 -70
- package/dist/src/features/workspace/reconciliation.d.ts +0 -15
- package/dist/src/features/workspace/reconciliation.js +0 -82
- package/dist/src/features/workspace/reducer.d.ts +0 -42
- package/dist/src/features/workspace/reducer.js +0 -213
- package/dist/src/features/workspace/router.d.ts +0 -31
- package/dist/src/features/workspace/router.js +0 -124
- package/dist/src/features/workspace/store.d.ts +0 -17
- package/dist/src/features/workspace/store.js +0 -54
- package/dist/src/foundation/agent-engine-contracts/capability-ports.d.ts +0 -95
- package/dist/src/foundation/agent-engine-contracts/domain-validation.js +0 -89
- package/dist/src/foundation/agent-engine-contracts/domain.d.ts +0 -116
- package/dist/src/foundation/agent-engine-contracts/index.d.ts +0 -8
- package/dist/src/foundation/agent-engine-contracts/index.js +0 -8
- package/dist/src/foundation/agent-engine-contracts/package-ports.d.ts +0 -54
- package/dist/src/foundation/launch-guardian/index.d.ts +0 -1
- package/dist/src/foundation/launch-guardian/index.js +0 -1
- package/dist/src/foundation/launch-guardian/main.d.ts +0 -31
- package/dist/src/foundation/launch-guardian/main.js +0 -165
- package/dist/src/foundation/lifecycle/index.d.ts +0 -4
- package/dist/src/foundation/lifecycle/index.js +0 -4
- package/dist/src/foundation/lifecycle/model.d.ts +0 -64
- package/dist/src/foundation/lifecycle/model.js +0 -40
- package/dist/src/foundation/lifecycle/paths.d.ts +0 -10
- package/dist/src/foundation/lifecycle/paths.js +0 -42
- package/dist/src/foundation/native-host-protocol/codec.d.ts +0 -11
- package/dist/src/foundation/native-host-protocol/codec.js +0 -56
- package/dist/src/foundation/native-host-protocol/evidence.d.ts +0 -67
- package/dist/src/foundation/native-host-protocol/evidence.js +0 -141
- package/dist/src/foundation/native-host-protocol/index.d.ts +0 -4
- package/dist/src/foundation/native-host-protocol/index.js +0 -4
- package/dist/src/foundation/native-host-protocol/messages.d.ts +0 -56
- package/dist/src/foundation/native-host-protocol/messages.js +0 -149
- package/dist/src/foundation/native-host-protocol/proof-gate.d.ts +0 -13
- package/dist/src/foundation/native-host-protocol/proof-gate.js +0 -33
- package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts +0 -302
- package/dist/src/foundation/owned-ui-contracts/index.d.ts +0 -3
- package/dist/src/foundation/owned-ui-contracts/index.js +0 -3
- package/dist/src/foundation/owned-ui-contracts/model.d.ts +0 -241
- package/dist/src/foundation/owned-ui-contracts/validation.d.ts +0 -11
- package/dist/src/foundation/owned-ui-contracts/validation.js +0 -395
- package/dist/src/foundation/owned-ui-settings/declarations.d.ts +0 -13
- package/dist/src/foundation/owned-ui-settings/declarations.js +0 -39
- package/dist/src/foundation/owned-ui-settings/index.d.ts +0 -6
- package/dist/src/foundation/owned-ui-settings/index.js +0 -6
- package/dist/src/foundation/owned-ui-settings/migrations.d.ts +0 -13
- package/dist/src/foundation/owned-ui-settings/migrations.js +0 -28
- package/dist/src/foundation/owned-ui-settings/sections.d.ts +0 -70
- package/dist/src/foundation/owned-ui-settings/sections.js +0 -93
- package/dist/src/foundation/owned-ui-settings/session.d.ts +0 -44
- package/dist/src/foundation/owned-ui-settings/session.js +0 -145
- package/dist/src/foundation/owned-ui-settings/store.d.ts +0 -28
- package/dist/src/foundation/owned-ui-settings/store.js +0 -90
- package/dist/src/foundation/pi-component-adapter/components.d.ts +0 -4
- package/dist/src/foundation/pi-component-adapter/components.js +0 -64
- package/dist/src/foundation/pi-component-adapter/conformance.d.ts +0 -17
- package/dist/src/foundation/pi-component-adapter/conformance.js +0 -69
- package/dist/src/foundation/pi-component-adapter/index.d.ts +0 -13
- package/dist/src/foundation/pi-component-adapter/index.js +0 -13
- package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.d.ts +0 -165
- package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.js +0 -166
- package/dist/src/foundation/pi-component-adapter/shell-components.d.ts +0 -6
- package/dist/src/foundation/pi-component-adapter/shell-components.js +0 -6
- package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +0 -162
- package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts +0 -35
- package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js +0 -279
- package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts +0 -7
- package/dist/src/foundation/pi-component-adapter/shell-footer-status.js +0 -189
- package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -57
- package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js +0 -429
- package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts +0 -113
- package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js +0 -235
- package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -116
- package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js +0 -87
- package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts +0 -422
- package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js +0 -296
- package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts +0 -10
- package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts +0 -17
- package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js +0 -51
- package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts +0 -22
- package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js +0 -142
- package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts +0 -4
- package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +0 -19
- package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts +0 -17
- package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js +0 -81
- package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts +0 -24
- package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js +0 -105
- package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts +0 -2
- package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js +0 -18
- package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js +0 -77
- package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.d.ts +0 -18
- package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.js +0 -55
- package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts +0 -55
- package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js +0 -342
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.d.ts +0 -10
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.js +0 -120
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js +0 -159
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts +0 -95
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js +0 -889
- package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts +0 -19
- package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js +0 -44
- package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts +0 -30
- package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js +0 -59
- package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts +0 -98
- package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js +0 -1272
- package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts +0 -33
- package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js +0 -76
- package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js +0 -39
- package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts +0 -15
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts +0 -25
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js +0 -117
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts +0 -61
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js +0 -326
- package/dist/src/foundation/pi-engine-adapter/adapter.d.ts +0 -164
- package/dist/src/foundation/pi-engine-adapter/adapter.js +0 -2367
- package/dist/src/foundation/pi-engine-adapter/conformance.d.ts +0 -37
- package/dist/src/foundation/pi-engine-adapter/conformance.js +0 -130
- package/dist/src/foundation/pi-engine-adapter/index.d.ts +0 -10
- package/dist/src/foundation/pi-engine-adapter/index.js +0 -10
- package/dist/src/foundation/pi-engine-adapter/model-auth-integration.d.ts +0 -30
- package/dist/src/foundation/pi-engine-adapter/model-auth-integration.js +0 -61
- package/dist/src/foundation/pi-engine-adapter/package-integration.d.ts +0 -13
- package/dist/src/foundation/pi-engine-adapter/package-integration.js +0 -112
- package/dist/src/foundation/pi-engine-adapter/pi-settings-metadata.json +0 -374
- package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.d.ts +0 -31
- package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.js +0 -80
- package/dist/src/foundation/pi-engine-adapter/runtime-integration.d.ts +0 -35
- package/dist/src/foundation/pi-engine-adapter/runtime-integration.js +0 -67
- package/dist/src/foundation/pi-engine-adapter/session-integration.d.ts +0 -43
- package/dist/src/foundation/pi-engine-adapter/session-integration.js +0 -97
- package/dist/src/foundation/pi-engine-adapter/settings-integration.d.ts +0 -55
- package/dist/src/foundation/pi-engine-adapter/settings-integration.js +0 -233
- package/dist/src/foundation/pi-engine-adapter/workflow-controllers.d.ts +0 -20
- package/dist/src/foundation/pi-engine-adapter/workflow-controllers.js +0 -48
- package/dist/src/foundation/pi-engine-adapter/workflows.d.ts +0 -173
- package/dist/src/foundation/pi-engine-adapter/workflows.js +0 -60
- package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +0 -2
- package/dist/src/foundation/pi-owned-ui-integration/index.js +0 -2
- package/dist/src/foundation/pi-owned-ui-integration/route-host.d.ts +0 -29
- package/dist/src/foundation/pi-owned-ui-integration/session-shell.d.ts +0 -106
- package/dist/src/foundation/pi-owned-ui-integration/session-shell.js +0 -1518
- package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts +0 -39
- package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js +0 -493
- package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts +0 -18
- package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js +0 -145
- package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts +0 -120
- package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts +0 -4
- package/dist/src/foundation/pi-tui-runtime-adapter/index.js +0 -4
- package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.d.ts +0 -4
- package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.js +0 -48
- package/dist/src/foundation/presentation-contracts/index.d.ts +0 -96
- package/dist/src/foundation/process-containment/index.d.ts +0 -5
- package/dist/src/foundation/process-containment/index.js +0 -5
- package/dist/src/foundation/process-containment/linux-process-inspector.d.ts +0 -6
- package/dist/src/foundation/process-containment/linux-process-inspector.js +0 -26
- package/dist/src/foundation/process-containment/native-guardian-containment.d.ts +0 -16
- package/dist/src/foundation/process-containment/native-guardian-containment.js +0 -139
- package/dist/src/foundation/process-containment/windows-process-inspector.d.ts +0 -17
- package/dist/src/foundation/process-containment/windows-process-inspector.js +0 -53
- package/dist/src/foundation/protocol/client.d.ts +0 -17
- package/dist/src/foundation/protocol/client.js +0 -129
- package/dist/src/foundation/protocol/index.d.ts +0 -2
- package/dist/src/foundation/protocol/index.js +0 -2
- package/dist/src/foundation/protocol/messages.d.ts +0 -89
- package/dist/src/foundation/protocol/messages.js +0 -99
- package/dist/src/foundation/release/bootstrap.d.ts +0 -29
- package/dist/src/foundation/release/bootstrap.js +0 -335
- package/dist/src/foundation/release/cohort-state.d.ts +0 -70
- package/dist/src/foundation/release/cohort-state.js +0 -202
- package/dist/src/foundation/release/index.d.ts +0 -10
- package/dist/src/foundation/release/index.js +0 -10
- package/dist/src/foundation/release/release-gc.d.ts +0 -5
- package/dist/src/foundation/release/release-gc.js +0 -16
- package/dist/src/foundation/release/release-store.d.ts +0 -43
- package/dist/src/foundation/release/release-store.js +0 -175
- package/dist/src/foundation/release/release.d.ts +0 -38
- package/dist/src/foundation/release/release.js +0 -204
- package/dist/src/foundation/release/update-transaction.d.ts +0 -31
- package/dist/src/foundation/release/update-transaction.js +0 -89
- package/dist/src/foundation/release/update.d.ts +0 -82
- package/dist/src/foundation/release/update.js +0 -527
- package/dist/src/foundation/storage/control-store.d.ts +0 -61
- package/dist/src/foundation/storage/control-store.js +0 -530
- 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 -46
- package/dist/src/foundation/structured-agent-runtime/backpressure.js +0 -118
- package/dist/src/foundation/structured-agent-runtime/commands.d.ts +0 -52
- package/dist/src/foundation/structured-agent-runtime/commands.js +0 -164
- package/dist/src/foundation/structured-agent-runtime/handshake.d.ts +0 -41
- package/dist/src/foundation/structured-agent-runtime/handshake.js +0 -151
- package/dist/src/foundation/structured-agent-runtime/index.d.ts +0 -5
- package/dist/src/foundation/structured-agent-runtime/index.js +0 -5
- package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts +0 -37
- package/dist/src/foundation/structured-agent-runtime/reconnection.js +0 -129
- package/dist/src/foundation/structured-agent-runtime/state.d.ts +0 -56
- package/dist/src/foundation/structured-agent-runtime/state.js +0 -118
- package/dist/src/foundation/supervision/index.d.ts +0 -3
- package/dist/src/foundation/supervision/index.js +0 -3
- package/dist/src/foundation/supervision/main.d.ts +0 -1
- package/dist/src/foundation/supervision/main.js +0 -41
- package/dist/src/foundation/supervision/paths.d.ts +0 -1
- package/dist/src/foundation/supervision/paths.js +0 -1
- package/dist/src/foundation/supervision/server.d.ts +0 -22
- package/dist/src/foundation/supervision/server.js +0 -451
- package/dist/src/foundation/ui-apps/contracts.d.ts +0 -42
- package/dist/src/foundation/ui-apps/host.d.ts +0 -42
- package/dist/src/foundation/ui-apps/host.js +0 -152
- package/dist/src/foundation/ui-apps/index.d.ts +0 -3
- package/dist/src/foundation/ui-apps/index.js +0 -3
- package/dist/src/foundation/ui-apps/registry.d.ts +0 -11
- package/dist/src/foundation/ui-apps/registry.js +0 -32
- package/dist/src/foundation/ui-components/dialog-panel.js +0 -47
- package/dist/src/foundation/ui-components/frame.d.ts +0 -21
- package/dist/src/foundation/ui-components/frame.js +0 -54
- package/dist/src/foundation/ui-components/index.d.ts +0 -18
- package/dist/src/foundation/ui-components/index.js +0 -18
- package/dist/src/foundation/ui-components/line-input.d.ts +0 -74
- package/dist/src/foundation/ui-components/line-input.js +0 -245
- package/dist/src/foundation/ui-components/list-view.d.ts +0 -66
- package/dist/src/foundation/ui-components/list-view.js +0 -76
- package/dist/src/foundation/ui-components/mouse.d.ts +0 -15
- package/dist/src/foundation/ui-components/mouse.js +0 -46
- package/dist/src/foundation/ui-components/scrollbar.d.ts +0 -62
- package/dist/src/foundation/ui-components/scrollbar.js +0 -102
- package/dist/src/foundation/ui-components/shortcuts.d.ts +0 -57
- package/dist/src/foundation/ui-components/shortcuts.js +0 -81
- package/dist/src/foundation/ui-components/spans.d.ts +0 -7
- package/dist/src/foundation/ui-components/spans.js +0 -59
- package/dist/src/foundation/ui-components/surface.d.ts +0 -20
- package/dist/src/foundation/ui-components/surface.js +0 -38
- package/dist/src/foundation/ui-components/text.d.ts +0 -24
- package/dist/src/foundation/ui-components/text.js +0 -123
- package/dist/src/foundation/workspace-contracts/index.d.ts +0 -2
- package/dist/src/foundation/workspace-contracts/index.js +0 -2
- package/dist/src/foundation/workspace-contracts/model.d.ts +0 -248
- package/dist/src/foundation/workspace-contracts/model.js +0 -2
- package/dist/src/foundation/workspace-contracts/validation.d.ts +0 -13
- package/dist/src/foundation/workspace-contracts/validation.js +0 -335
- package/dist/src/product-identity.d.ts +0 -37
- package/dist/src/product-identity.js +0 -150
- package/dist/src/product-identity.json +0 -99
- package/docs/manual-transparent-checkpoint.md +0 -53
- /package/dist/{src/foundation/agent-engine-contracts/domain.js → app/session-shell/paste-helper.d.ts} +0 -0
- /package/dist/{src/foundation/agent-engine-contracts/ports.js → app/session-shell/paste-text-worker.d.ts} +0 -0
- /package/dist/{src/foundation/lifecycle/commands.js → app/session-shell/paste-types.js} +0 -0
- /package/dist/{src/foundation/pi-owned-ui-integration/route-host.js → app/session-shell/response-copy-helper.d.ts} +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/capability-ports.js +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain-validation.d.ts +0 -0
- /package/dist/{src/foundation/pi-tui-runtime-adapter/contracts.js → contracts/agent-engine/domain.js} +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.d.ts +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.js +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/package-ports.js +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/ports.d.ts +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.d.ts +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.js +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.d.ts +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.js +0 -0
- /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/extension-ui.js +0 -0
- /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/model.js +0 -0
- /package/dist/{src/foundation/presentation-contracts → contracts/presentation}/index.js +0 -0
- /package/dist/{src/features → features}/launch/development-launch.d.ts +0 -0
- /package/dist/{src/features → features}/launch/initialize-profile.d.ts +0 -0
- /package/dist/{src/features → features}/launch/initialize-profile.js +0 -0
- /package/dist/{src/foundation → foundation}/lifecycle/commands.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.js +0 -0
- /package/dist/{src/foundation → foundation}/process-containment/artifact.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/process-containment/artifact.js +0 -0
- /package/dist/{src/foundation → foundation}/process-containment/contracts.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/process-containment/contracts.js +0 -0
- /package/dist/{src/foundation → foundation}/release/cohort-selection.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/release/cohort-selection.js +0 -0
- /package/dist/{src/foundation → foundation}/release/concurrency.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/release/concurrency.js +0 -0
- /package/dist/{src/foundation → foundation}/release/process-cleanup.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/release/process-cleanup.js +0 -0
- /package/dist/{src/foundation → foundation}/release/stable-release.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/release/stable-release.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-editor-autocomplete.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/countdown-timer.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/mermaid.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector-search.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/external-editor.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/model-search.js +0 -0
- /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.d.ts +0 -0
- /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.js +0 -0
- /package/dist/{src/foundation/ui-apps → ui/apps}/contracts.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/dialog-panel.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/label.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/label.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/list-block.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/list-block.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/pane.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/pane.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/revision.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/revision.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/status-line.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/status-line.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/stepper.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/stepper.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/theme.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/theme.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/value-menu.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/value-menu.js +0 -0
- /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.d.ts +0 -0
- /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.js +0 -0
|
@@ -1,530 +0,0 @@
|
|
|
1
|
-
import { DatabaseSync } from "node:sqlite";
|
|
2
|
-
import { mkdirSync } from "node:fs";
|
|
3
|
-
import { dirname } from "node:path";
|
|
4
|
-
import { PRODUCT_IDENTITY } from "../../product-identity.js";
|
|
5
|
-
import { assertManagedAgentDescriptor, assertRecoveryAuthority, assertTerminalSessionLaunch, assertTerminalTopologySnapshot, } from "../workspace-contracts/index.js";
|
|
6
|
-
import { assertLaunchInstance, assertLaunchInstanceOutcome, assertNativeProcessIdentity, assertProcessContainmentIdentity, } from "../lifecycle/index.js";
|
|
7
|
-
export const DEFAULT_WORKSPACE_ID = "workspace-default";
|
|
8
|
-
const INITIAL_WORKSPACE_ID = DEFAULT_WORKSPACE_ID;
|
|
9
|
-
export class ControlStore {
|
|
10
|
-
bootNonce;
|
|
11
|
-
database;
|
|
12
|
-
constructor(path, bootNonce = null) {
|
|
13
|
-
this.bootNonce = bootNonce;
|
|
14
|
-
mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
|
|
15
|
-
this.database = new DatabaseSync(path);
|
|
16
|
-
try {
|
|
17
|
-
this.database.exec("PRAGMA journal_mode = WAL");
|
|
18
|
-
this.database.exec("PRAGMA foreign_keys = ON");
|
|
19
|
-
this.migrate();
|
|
20
|
-
if (bootNonce !== null) {
|
|
21
|
-
this.reconcilePriorBootGenerations(bootNonce);
|
|
22
|
-
this.reconcilePriorBootLaunchInstances(bootNonce);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
26
|
-
this.database.close();
|
|
27
|
-
throw error;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
migrate() {
|
|
31
|
-
const versionRow = this.database.prepare("PRAGMA user_version").get();
|
|
32
|
-
const version = versionRow.user_version;
|
|
33
|
-
if (version > 5)
|
|
34
|
-
throw new Error(`control database version ${version} is newer than supported version 5`);
|
|
35
|
-
if (version !== 0)
|
|
36
|
-
this.#assertCurrentControlSchema();
|
|
37
|
-
if (version === 0) {
|
|
38
|
-
this.database.exec(`
|
|
39
|
-
BEGIN IMMEDIATE;
|
|
40
|
-
CREATE TABLE workspaces (
|
|
41
|
-
id TEXT PRIMARY KEY,
|
|
42
|
-
name TEXT NOT NULL,
|
|
43
|
-
selected_agent_id TEXT,
|
|
44
|
-
created_at TEXT NOT NULL
|
|
45
|
-
);
|
|
46
|
-
CREATE TABLE driver_profiles (
|
|
47
|
-
id TEXT PRIMARY KEY,
|
|
48
|
-
kind TEXT NOT NULL,
|
|
49
|
-
profile_json TEXT NOT NULL,
|
|
50
|
-
created_at TEXT NOT NULL
|
|
51
|
-
);
|
|
52
|
-
CREATE TABLE terminal_agents (
|
|
53
|
-
id TEXT PRIMARY KEY,
|
|
54
|
-
workspace_id TEXT NOT NULL REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
55
|
-
name TEXT NOT NULL,
|
|
56
|
-
profile_id TEXT NOT NULL REFERENCES driver_profiles(id),
|
|
57
|
-
profile_json TEXT NOT NULL,
|
|
58
|
-
surface_json TEXT,
|
|
59
|
-
created_at TEXT NOT NULL
|
|
60
|
-
);
|
|
61
|
-
CREATE TABLE process_generations (
|
|
62
|
-
id TEXT PRIMARY KEY,
|
|
63
|
-
agent_id TEXT NOT NULL REFERENCES terminal_agents(id) ON DELETE CASCADE,
|
|
64
|
-
sequence INTEGER NOT NULL,
|
|
65
|
-
profile_id TEXT NOT NULL REFERENCES driver_profiles(id),
|
|
66
|
-
state TEXT NOT NULL,
|
|
67
|
-
capabilities_json TEXT NOT NULL,
|
|
68
|
-
started_at TEXT NOT NULL,
|
|
69
|
-
exited_at TEXT,
|
|
70
|
-
exit_code INTEGER,
|
|
71
|
-
signal INTEGER,
|
|
72
|
-
error TEXT,
|
|
73
|
-
owner_boot_nonce TEXT,
|
|
74
|
-
UNIQUE(agent_id, sequence)
|
|
75
|
-
);
|
|
76
|
-
CREATE INDEX idx_agents_workspace ON terminal_agents(workspace_id, created_at);
|
|
77
|
-
CREATE INDEX idx_generations_agent ON process_generations(agent_id, sequence DESC);
|
|
78
|
-
CREATE INDEX idx_generations_owner_boot ON process_generations(owner_boot_nonce, state);
|
|
79
|
-
PRAGMA user_version = 1;
|
|
80
|
-
COMMIT;
|
|
81
|
-
`);
|
|
82
|
-
const now = new Date().toISOString();
|
|
83
|
-
this.database.prepare("INSERT INTO workspaces (id, name, selected_agent_id, created_at) VALUES (?, ?, NULL, ?)")
|
|
84
|
-
.run(INITIAL_WORKSPACE_ID, "Workspace", now);
|
|
85
|
-
}
|
|
86
|
-
if (version <= 1) {
|
|
87
|
-
const columns = this.database.prepare("PRAGMA table_info(process_generations)").all();
|
|
88
|
-
if (!columns.some(column => column.name === "owner_boot_nonce")) {
|
|
89
|
-
this.database.exec("ALTER TABLE process_generations ADD COLUMN owner_boot_nonce TEXT");
|
|
90
|
-
}
|
|
91
|
-
this.database.exec(`
|
|
92
|
-
BEGIN IMMEDIATE;
|
|
93
|
-
CREATE INDEX IF NOT EXISTS idx_generations_owner_boot ON process_generations(owner_boot_nonce, state);
|
|
94
|
-
CREATE TABLE foreground_terminal_leases (
|
|
95
|
-
id TEXT PRIMARY KEY,
|
|
96
|
-
owner_id TEXT NOT NULL,
|
|
97
|
-
profile_json TEXT NOT NULL,
|
|
98
|
-
state TEXT NOT NULL,
|
|
99
|
-
generation_id TEXT,
|
|
100
|
-
process_identity_json TEXT,
|
|
101
|
-
acquired_at TEXT NOT NULL,
|
|
102
|
-
heartbeat_at TEXT,
|
|
103
|
-
released_at TEXT,
|
|
104
|
-
outcome_json TEXT,
|
|
105
|
-
owner_boot_nonce TEXT NOT NULL
|
|
106
|
-
);
|
|
107
|
-
CREATE UNIQUE INDEX idx_one_live_foreground_lease ON foreground_terminal_leases((1)) WHERE state IN ('requested', 'active');
|
|
108
|
-
CREATE INDEX idx_foreground_lease_boot ON foreground_terminal_leases(owner_boot_nonce, state);
|
|
109
|
-
PRAGMA user_version = 2;
|
|
110
|
-
COMMIT;
|
|
111
|
-
`);
|
|
112
|
-
}
|
|
113
|
-
if (version <= 2) {
|
|
114
|
-
this.database.exec(`
|
|
115
|
-
BEGIN IMMEDIATE;
|
|
116
|
-
CREATE TABLE workspace_agents (
|
|
117
|
-
id TEXT PRIMARY KEY,
|
|
118
|
-
workspace_id TEXT NOT NULL REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
119
|
-
display_name TEXT NOT NULL,
|
|
120
|
-
adapter_id TEXT NOT NULL,
|
|
121
|
-
runtime_kind TEXT NOT NULL CHECK (runtime_kind IN ('structured', 'composed-terminal')),
|
|
122
|
-
lifecycle TEXT NOT NULL,
|
|
123
|
-
capability_json TEXT NOT NULL,
|
|
124
|
-
recovery_reference_id TEXT,
|
|
125
|
-
created_at TEXT NOT NULL,
|
|
126
|
-
updated_at TEXT NOT NULL,
|
|
127
|
-
CHECK (json_valid(capability_json))
|
|
128
|
-
);
|
|
129
|
-
CREATE INDEX idx_workspace_agents_workspace ON workspace_agents(workspace_id, created_at);
|
|
130
|
-
CREATE INDEX idx_workspace_agents_recovery ON workspace_agents(recovery_reference_id);
|
|
131
|
-
|
|
132
|
-
CREATE TABLE native_host_topology (
|
|
133
|
-
host_instance_id TEXT PRIMARY KEY,
|
|
134
|
-
protocol_version INTEGER NOT NULL CHECK (protocol_version = 1),
|
|
135
|
-
revision INTEGER NOT NULL CHECK (revision >= 0),
|
|
136
|
-
topology_json TEXT NOT NULL CHECK (json_valid(topology_json)),
|
|
137
|
-
rollback_json TEXT NOT NULL CHECK (json_valid(rollback_json)),
|
|
138
|
-
updated_at TEXT NOT NULL
|
|
139
|
-
);
|
|
140
|
-
|
|
141
|
-
CREATE TABLE terminal_sessions (
|
|
142
|
-
id TEXT PRIMARY KEY,
|
|
143
|
-
host_instance_id TEXT NOT NULL REFERENCES native_host_topology(host_instance_id) ON DELETE CASCADE,
|
|
144
|
-
pane_id TEXT NOT NULL,
|
|
145
|
-
lifecycle TEXT NOT NULL,
|
|
146
|
-
launch_json TEXT NOT NULL CHECK (json_valid(launch_json)),
|
|
147
|
-
recovery_reference_id TEXT,
|
|
148
|
-
updated_at TEXT NOT NULL
|
|
149
|
-
);
|
|
150
|
-
CREATE UNIQUE INDEX idx_terminal_sessions_pane ON terminal_sessions(host_instance_id, pane_id);
|
|
151
|
-
CREATE INDEX idx_terminal_sessions_recovery ON terminal_sessions(recovery_reference_id);
|
|
152
|
-
|
|
153
|
-
CREATE TABLE recovery_references (
|
|
154
|
-
id TEXT PRIMARY KEY,
|
|
155
|
-
agent_id TEXT NOT NULL REFERENCES workspace_agents(id) ON DELETE CASCADE,
|
|
156
|
-
authority_json TEXT NOT NULL CHECK (json_valid(authority_json)),
|
|
157
|
-
status TEXT NOT NULL CHECK (status IN ('pending', 'accepted', 'rejected', 'discontinuous')),
|
|
158
|
-
rollback_json TEXT NOT NULL CHECK (json_valid(rollback_json)),
|
|
159
|
-
created_at TEXT NOT NULL,
|
|
160
|
-
updated_at TEXT NOT NULL
|
|
161
|
-
);
|
|
162
|
-
CREATE INDEX idx_recovery_references_agent ON recovery_references(agent_id, status);
|
|
163
|
-
PRAGMA user_version = 3;
|
|
164
|
-
COMMIT;
|
|
165
|
-
`);
|
|
166
|
-
}
|
|
167
|
-
if (version <= 3) {
|
|
168
|
-
this.database.exec(`
|
|
169
|
-
BEGIN IMMEDIATE;
|
|
170
|
-
ALTER TABLE workspace_agents ADD COLUMN unread_count INTEGER NOT NULL DEFAULT 0 CHECK (unread_count >= 0);
|
|
171
|
-
ALTER TABLE workspace_agents ADD COLUMN attention INTEGER NOT NULL DEFAULT 0 CHECK (attention IN (0, 1));
|
|
172
|
-
ALTER TABLE workspace_agents ADD COLUMN failure_json TEXT CHECK (failure_json IS NULL OR json_valid(failure_json));
|
|
173
|
-
ALTER TABLE workspaces ADD COLUMN revision INTEGER NOT NULL DEFAULT 0 CHECK (revision >= 0);
|
|
174
|
-
PRAGMA user_version = 4;
|
|
175
|
-
COMMIT;
|
|
176
|
-
`);
|
|
177
|
-
}
|
|
178
|
-
if (version <= 4) {
|
|
179
|
-
this.database.exec(`
|
|
180
|
-
BEGIN IMMEDIATE;
|
|
181
|
-
UPDATE foreground_terminal_leases
|
|
182
|
-
SET state = 'interrupted',
|
|
183
|
-
released_at = COALESCE(released_at, strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
|
|
184
|
-
outcome_json = '{"kind":"interrupted","reason":"legacy-migration","message":"legacy foreground ownership cannot prove current launch-instance liveness"}'
|
|
185
|
-
WHERE state IN ('requested', 'active');
|
|
186
|
-
DROP INDEX IF EXISTS idx_one_live_foreground_lease;
|
|
187
|
-
CREATE TABLE launch_instances (
|
|
188
|
-
id TEXT PRIMARY KEY,
|
|
189
|
-
owner_client_id TEXT NOT NULL,
|
|
190
|
-
profile_id TEXT NOT NULL CHECK (profile_id IN ('a1', 'pi', 'sandbox')),
|
|
191
|
-
state TEXT NOT NULL CHECK (state IN ('requested', 'active', 'stopping', 'completed', 'interrupted')),
|
|
192
|
-
shutdown_policy TEXT NOT NULL CHECK (shutdown_policy = 'terminate-tree-on-close'),
|
|
193
|
-
guardian_identity_json TEXT NOT NULL CHECK (json_valid(guardian_identity_json)),
|
|
194
|
-
root_identity_json TEXT CHECK (root_identity_json IS NULL OR json_valid(root_identity_json)),
|
|
195
|
-
containment_identity_json TEXT CHECK (containment_identity_json IS NULL OR json_valid(containment_identity_json)),
|
|
196
|
-
created_at TEXT NOT NULL,
|
|
197
|
-
activated_at TEXT,
|
|
198
|
-
stopping_at TEXT,
|
|
199
|
-
completed_at TEXT,
|
|
200
|
-
outcome_json TEXT CHECK (outcome_json IS NULL OR json_valid(outcome_json)),
|
|
201
|
-
owner_boot_nonce TEXT NOT NULL,
|
|
202
|
-
CHECK ((state = 'requested' AND root_identity_json IS NULL AND containment_identity_json IS NULL AND activated_at IS NULL AND stopping_at IS NULL AND completed_at IS NULL AND outcome_json IS NULL)
|
|
203
|
-
OR (state = 'active' AND root_identity_json IS NOT NULL AND containment_identity_json IS NOT NULL AND activated_at IS NOT NULL AND stopping_at IS NULL AND completed_at IS NULL AND outcome_json IS NULL)
|
|
204
|
-
OR (state = 'stopping' AND root_identity_json IS NOT NULL AND containment_identity_json IS NOT NULL AND activated_at IS NOT NULL AND stopping_at IS NOT NULL AND completed_at IS NULL AND outcome_json IS NULL)
|
|
205
|
-
OR (state IN ('completed', 'interrupted') AND completed_at IS NOT NULL AND outcome_json IS NOT NULL))
|
|
206
|
-
);
|
|
207
|
-
CREATE INDEX idx_launch_instances_owner ON launch_instances(owner_client_id, state);
|
|
208
|
-
CREATE INDEX idx_launch_instances_boot ON launch_instances(owner_boot_nonce, state);
|
|
209
|
-
PRAGMA user_version = 5;
|
|
210
|
-
COMMIT;
|
|
211
|
-
`);
|
|
212
|
-
}
|
|
213
|
-
if (version === 0) {
|
|
214
|
-
this.database.exec("CREATE TABLE product_identity (schema TEXT PRIMARY KEY NOT NULL)");
|
|
215
|
-
this.database.prepare("INSERT INTO product_identity (schema) VALUES (?)").run(PRODUCT_IDENTITY.protocol.controlStoreSchema);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
#assertCurrentControlSchema() {
|
|
219
|
-
const table = this.database.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'product_identity'").get();
|
|
220
|
-
if (!table)
|
|
221
|
-
throw new Error("control database has no A1 product schema; legacy state is unsupported");
|
|
222
|
-
const identity = this.database.prepare("SELECT schema FROM product_identity").get();
|
|
223
|
-
if (identity?.schema !== PRODUCT_IDENTITY.protocol.controlStoreSchema) {
|
|
224
|
-
throw new Error(`control database schema ${String(identity?.schema)} is unsupported; expected ${PRODUCT_IDENTITY.protocol.controlStoreSchema}`);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
reconcilePriorBootGenerations(bootNonce) {
|
|
228
|
-
const now = new Date().toISOString();
|
|
229
|
-
return this.#transaction(() => {
|
|
230
|
-
const result = this.database.prepare(`UPDATE process_generations
|
|
231
|
-
SET state = 'interrupted', exited_at = ?, error = COALESCE(error, 'supervisor ownership ended before a terminal outcome')
|
|
232
|
-
WHERE state NOT IN ('exited', 'stopped', 'interrupted', 'error')
|
|
233
|
-
AND (owner_boot_nonce IS NULL OR owner_boot_nonce <> ?)`)
|
|
234
|
-
.run(now, bootNonce);
|
|
235
|
-
return Number(result.changes);
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
createLaunchInstance(instance) {
|
|
239
|
-
if (this.bootNonce === null)
|
|
240
|
-
throw new Error("launch instance storage requires a supervisor boot identity");
|
|
241
|
-
assertLaunchInstance(instance);
|
|
242
|
-
if (instance.state !== "requested")
|
|
243
|
-
throw new Error("new launch instance must be requested");
|
|
244
|
-
this.database.prepare(`INSERT INTO launch_instances
|
|
245
|
-
(id, owner_client_id, profile_id, state, shutdown_policy, guardian_identity_json, root_identity_json, containment_identity_json,
|
|
246
|
-
created_at, activated_at, stopping_at, completed_at, outcome_json, owner_boot_nonce)
|
|
247
|
-
VALUES (?, ?, ?, 'requested', ?, ?, NULL, NULL, ?, NULL, NULL, NULL, NULL, ?)`)
|
|
248
|
-
.run(instance.id, instance.ownerClientId, instance.profileId, instance.shutdownPolicy, JSON.stringify(instance.guardianIdentity), instance.createdAt, this.bootNonce);
|
|
249
|
-
}
|
|
250
|
-
activateLaunchInstance(instanceId, ownerClientId, rootIdentity, containmentIdentity, activatedAt) {
|
|
251
|
-
if (this.bootNonce === null)
|
|
252
|
-
throw new Error("launch instance storage requires a supervisor boot identity");
|
|
253
|
-
assertNativeProcessIdentity(rootIdentity);
|
|
254
|
-
assertProcessContainmentIdentity(containmentIdentity);
|
|
255
|
-
const result = this.database.prepare(`UPDATE launch_instances
|
|
256
|
-
SET state = 'active', root_identity_json = ?, containment_identity_json = ?, activated_at = ?
|
|
257
|
-
WHERE id = ? AND owner_client_id = ? AND owner_boot_nonce = ? AND state = 'requested'`)
|
|
258
|
-
.run(JSON.stringify(rootIdentity), JSON.stringify(containmentIdentity), activatedAt, instanceId, ownerClientId, this.bootNonce);
|
|
259
|
-
return Number(result.changes) === 1;
|
|
260
|
-
}
|
|
261
|
-
beginLaunchInstanceStop(instanceId, ownerClientId, stoppingAt) {
|
|
262
|
-
if (this.bootNonce === null)
|
|
263
|
-
throw new Error("launch instance storage requires a supervisor boot identity");
|
|
264
|
-
const result = this.database.prepare(`UPDATE launch_instances SET state = 'stopping', stopping_at = ?
|
|
265
|
-
WHERE id = ? AND owner_client_id = ? AND owner_boot_nonce = ? AND state = 'active'`)
|
|
266
|
-
.run(stoppingAt, instanceId, ownerClientId, this.bootNonce);
|
|
267
|
-
return Number(result.changes) === 1;
|
|
268
|
-
}
|
|
269
|
-
completeLaunchInstance(instanceId, ownerClientId, terminalState, outcome, completedAt) {
|
|
270
|
-
if (this.bootNonce === null)
|
|
271
|
-
throw new Error("launch instance storage requires a supervisor boot identity");
|
|
272
|
-
assertLaunchInstanceOutcome(outcome);
|
|
273
|
-
if (terminalState === "completed" && outcome.kind === "interrupted")
|
|
274
|
-
throw new Error("completed launch instance cannot carry an interrupted outcome");
|
|
275
|
-
if (terminalState === "interrupted" && outcome.kind !== "interrupted" && outcome.kind !== "cleanup-error") {
|
|
276
|
-
throw new Error("interrupted launch instance requires an interrupted or cleanup-error outcome");
|
|
277
|
-
}
|
|
278
|
-
const result = this.database.prepare(`UPDATE launch_instances
|
|
279
|
-
SET state = ?, completed_at = ?, outcome_json = ?
|
|
280
|
-
WHERE id = ? AND owner_client_id = ? AND owner_boot_nonce = ? AND state IN ('requested', 'active', 'stopping')`)
|
|
281
|
-
.run(terminalState, completedAt, JSON.stringify(outcome), instanceId, ownerClientId, this.bootNonce);
|
|
282
|
-
return Number(result.changes) === 1;
|
|
283
|
-
}
|
|
284
|
-
loadActiveLaunchInstances() {
|
|
285
|
-
return this.database.prepare(`SELECT * FROM launch_instances
|
|
286
|
-
WHERE state IN ('requested', 'active', 'stopping') ORDER BY created_at, id`).all()
|
|
287
|
-
.map(launchInstanceFromRow);
|
|
288
|
-
}
|
|
289
|
-
loadLaunchInstance(instanceId) {
|
|
290
|
-
const row = this.database.prepare("SELECT * FROM launch_instances WHERE id = ?").get(instanceId);
|
|
291
|
-
return row ? launchInstanceFromRow(row) : null;
|
|
292
|
-
}
|
|
293
|
-
reconcilePriorBootLaunchInstances(bootNonce, reconciledAt = new Date().toISOString()) {
|
|
294
|
-
const outcome = {
|
|
295
|
-
kind: "interrupted",
|
|
296
|
-
reason: "supervisor-disconnect",
|
|
297
|
-
message: "launch instance ownership ended with a prior supervisor boot",
|
|
298
|
-
};
|
|
299
|
-
const result = this.database.prepare(`UPDATE launch_instances
|
|
300
|
-
SET state = 'interrupted', completed_at = ?, outcome_json = ?
|
|
301
|
-
WHERE state IN ('requested', 'active', 'stopping') AND owner_boot_nonce <> ?`)
|
|
302
|
-
.run(reconciledAt, JSON.stringify(outcome), bootNonce);
|
|
303
|
-
return Number(result.changes);
|
|
304
|
-
}
|
|
305
|
-
persistWorkspaceAgent(agent, updatedAt = new Date().toISOString()) {
|
|
306
|
-
const existing = this.loadWorkspaceAgentRecord(agent.id);
|
|
307
|
-
this.persistWorkspaceAgentRecord({
|
|
308
|
-
agent,
|
|
309
|
-
presentation: existing?.presentation ?? { unreadActivity: 0, attention: false, failure: null },
|
|
310
|
-
}, updatedAt);
|
|
311
|
-
}
|
|
312
|
-
persistWorkspaceAgentRecord(record, updatedAt = new Date().toISOString()) {
|
|
313
|
-
assertManagedAgentDescriptor(record.agent);
|
|
314
|
-
assertWorkspaceAgentPresentation(record.presentation);
|
|
315
|
-
this.#upsertWorkspaceAgentRecord(record, updatedAt);
|
|
316
|
-
}
|
|
317
|
-
replaceWorkspaceAgentRecords(records, selectedAgentId, revision, updatedAt = new Date().toISOString()) {
|
|
318
|
-
if (!Number.isSafeInteger(revision) || revision < 0)
|
|
319
|
-
throw new RangeError("workspace revision must be a non-negative safe integer");
|
|
320
|
-
const ids = new Set();
|
|
321
|
-
for (const record of records) {
|
|
322
|
-
assertManagedAgentDescriptor(record.agent);
|
|
323
|
-
assertWorkspaceAgentPresentation(record.presentation);
|
|
324
|
-
if (ids.has(record.agent.id))
|
|
325
|
-
throw new TypeError(`duplicate workspace agent id: ${record.agent.id}`);
|
|
326
|
-
ids.add(record.agent.id);
|
|
327
|
-
}
|
|
328
|
-
if (selectedAgentId !== null && !ids.has(selectedAgentId))
|
|
329
|
-
throw new TypeError("selected workspace agent must exist in the replacement set");
|
|
330
|
-
this.#transaction(() => {
|
|
331
|
-
if (records.length === 0)
|
|
332
|
-
this.database.prepare("DELETE FROM workspace_agents").run();
|
|
333
|
-
else {
|
|
334
|
-
const placeholders = records.map(() => "?").join(", ");
|
|
335
|
-
this.database.prepare(`DELETE FROM workspace_agents WHERE id NOT IN (${placeholders})`).run(...records.map(record => record.agent.id));
|
|
336
|
-
}
|
|
337
|
-
for (const record of records)
|
|
338
|
-
this.#upsertWorkspaceAgentRecord(record, updatedAt);
|
|
339
|
-
this.database.prepare("UPDATE workspaces SET selected_agent_id = ?, revision = ? WHERE id = ?").run(selectedAgentId, revision, INITIAL_WORKSPACE_ID);
|
|
340
|
-
});
|
|
341
|
-
}
|
|
342
|
-
loadWorkspaceAgents() {
|
|
343
|
-
return this.loadWorkspaceAgentRecords().map(record => record.agent);
|
|
344
|
-
}
|
|
345
|
-
loadWorkspaceAgentRecord(agentId) {
|
|
346
|
-
const row = this.database.prepare("SELECT * FROM workspace_agents WHERE id = ?").get(agentId);
|
|
347
|
-
return row ? workspaceAgentFromRow(row) : null;
|
|
348
|
-
}
|
|
349
|
-
loadWorkspaceAgentRecords() {
|
|
350
|
-
const rows = this.database.prepare("SELECT * FROM workspace_agents ORDER BY created_at, id").all();
|
|
351
|
-
return rows.map(workspaceAgentFromRow);
|
|
352
|
-
}
|
|
353
|
-
loadSelectedWorkspaceAgentId() {
|
|
354
|
-
const row = this.database.prepare("SELECT selected_agent_id FROM workspaces WHERE id = ?").get(INITIAL_WORKSPACE_ID);
|
|
355
|
-
return row?.selected_agent_id ?? null;
|
|
356
|
-
}
|
|
357
|
-
loadWorkspaceRevision() {
|
|
358
|
-
const row = this.database.prepare("SELECT revision FROM workspaces WHERE id = ?").get(INITIAL_WORKSPACE_ID);
|
|
359
|
-
return row?.revision ?? 0;
|
|
360
|
-
}
|
|
361
|
-
#upsertWorkspaceAgentRecord(record, updatedAt) {
|
|
362
|
-
const agent = record.agent;
|
|
363
|
-
this.database.prepare(`INSERT INTO workspace_agents
|
|
364
|
-
(id, workspace_id, display_name, adapter_id, runtime_kind, lifecycle, capability_json, recovery_reference_id, unread_count, attention, failure_json, created_at, updated_at)
|
|
365
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
366
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
367
|
-
workspace_id = excluded.workspace_id,
|
|
368
|
-
display_name = excluded.display_name,
|
|
369
|
-
adapter_id = excluded.adapter_id,
|
|
370
|
-
runtime_kind = excluded.runtime_kind,
|
|
371
|
-
lifecycle = excluded.lifecycle,
|
|
372
|
-
capability_json = excluded.capability_json,
|
|
373
|
-
recovery_reference_id = excluded.recovery_reference_id,
|
|
374
|
-
unread_count = excluded.unread_count,
|
|
375
|
-
attention = excluded.attention,
|
|
376
|
-
failure_json = excluded.failure_json,
|
|
377
|
-
updated_at = excluded.updated_at`)
|
|
378
|
-
.run(agent.id, INITIAL_WORKSPACE_ID, agent.displayName, agent.adapterId, agent.runtime, agent.lifecycle, JSON.stringify(agent.capability), agent.recoveryReferenceId, record.presentation.unreadActivity, record.presentation.attention ? 1 : 0, record.presentation.failure === null ? null : JSON.stringify(record.presentation.failure), agent.createdAt, updatedAt);
|
|
379
|
-
}
|
|
380
|
-
saveNativeHostTopology(topology, rollbackTopology, updatedAt = new Date().toISOString()) {
|
|
381
|
-
assertTerminalTopologySnapshot(topology);
|
|
382
|
-
if (rollbackTopology !== null)
|
|
383
|
-
assertTerminalTopologySnapshot(rollbackTopology);
|
|
384
|
-
if (rollbackTopology !== null && rollbackTopology.hostInstanceId !== topology.hostInstanceId) {
|
|
385
|
-
throw new TypeError("topology rollback metadata must identify the same native host");
|
|
386
|
-
}
|
|
387
|
-
const prior = this.loadNativeHostTopology(topology.hostInstanceId);
|
|
388
|
-
if (prior !== null && topology.revision < prior.topology.revision) {
|
|
389
|
-
throw new RangeError(`stale native-host topology revision ${topology.revision}; persisted revision is ${prior.topology.revision}`);
|
|
390
|
-
}
|
|
391
|
-
if (rollbackTopology !== null && rollbackTopology.revision > topology.revision) {
|
|
392
|
-
throw new RangeError("topology rollback revision cannot be newer than the persisted topology");
|
|
393
|
-
}
|
|
394
|
-
const rollbackJson = rollbackTopology === null
|
|
395
|
-
? JSON.stringify({ contractVersion: 1, reason: "initial native-host topology", topology: null })
|
|
396
|
-
: JSON.stringify({ contractVersion: 1, reason: "backward-readable prior authoritative topology", topology: rollbackTopology });
|
|
397
|
-
this.database.prepare(`INSERT INTO native_host_topology
|
|
398
|
-
(host_instance_id, protocol_version, revision, topology_json, rollback_json, updated_at)
|
|
399
|
-
VALUES (?, 1, ?, ?, ?, ?)
|
|
400
|
-
ON CONFLICT(host_instance_id) DO UPDATE SET
|
|
401
|
-
revision = excluded.revision,
|
|
402
|
-
topology_json = excluded.topology_json,
|
|
403
|
-
rollback_json = excluded.rollback_json,
|
|
404
|
-
updated_at = excluded.updated_at`)
|
|
405
|
-
.run(topology.hostInstanceId, topology.revision, JSON.stringify(topology), rollbackJson, updatedAt);
|
|
406
|
-
}
|
|
407
|
-
loadNativeHostTopology(hostInstanceId) {
|
|
408
|
-
const row = this.database.prepare("SELECT * FROM native_host_topology WHERE host_instance_id = ?").get(hostInstanceId);
|
|
409
|
-
if (!row)
|
|
410
|
-
return null;
|
|
411
|
-
const topology = JSON.parse(row.topology_json);
|
|
412
|
-
assertTerminalTopologySnapshot(topology);
|
|
413
|
-
return { topology, rollback: JSON.parse(row.rollback_json), updatedAt: row.updated_at };
|
|
414
|
-
}
|
|
415
|
-
persistTerminalSession(session, hostInstanceId, paneId, lifecycle, recoveryReferenceId, updatedAt = new Date().toISOString()) {
|
|
416
|
-
assertTerminalSessionLaunch(session);
|
|
417
|
-
this.database.prepare(`INSERT INTO terminal_sessions
|
|
418
|
-
(id, host_instance_id, pane_id, lifecycle, launch_json, recovery_reference_id, updated_at)
|
|
419
|
-
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
420
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
421
|
-
host_instance_id = excluded.host_instance_id,
|
|
422
|
-
pane_id = excluded.pane_id,
|
|
423
|
-
lifecycle = excluded.lifecycle,
|
|
424
|
-
launch_json = excluded.launch_json,
|
|
425
|
-
recovery_reference_id = excluded.recovery_reference_id,
|
|
426
|
-
updated_at = excluded.updated_at`)
|
|
427
|
-
.run(session.id, hostInstanceId, paneId, lifecycle, JSON.stringify(session), recoveryReferenceId, updatedAt);
|
|
428
|
-
}
|
|
429
|
-
loadTerminalSessions() {
|
|
430
|
-
const rows = this.database.prepare("SELECT * FROM terminal_sessions ORDER BY id").all();
|
|
431
|
-
return rows.map(row => {
|
|
432
|
-
const session = JSON.parse(row.launch_json);
|
|
433
|
-
assertTerminalSessionLaunch(session);
|
|
434
|
-
return { session, hostInstanceId: row.host_instance_id, paneId: row.pane_id, lifecycle: row.lifecycle, recoveryReferenceId: row.recovery_reference_id };
|
|
435
|
-
});
|
|
436
|
-
}
|
|
437
|
-
persistRecoveryReference(authority, status, rollbackMetadata, updatedAt = new Date().toISOString()) {
|
|
438
|
-
assertRecoveryAuthority(authority);
|
|
439
|
-
const createdAt = typeof rollbackMetadata.createdAt === "string" ? rollbackMetadata.createdAt : updatedAt;
|
|
440
|
-
const rollbackJson = JSON.stringify({ contractVersion: 1, ...rollbackMetadata });
|
|
441
|
-
this.database.prepare(`INSERT INTO recovery_references
|
|
442
|
-
(id, agent_id, authority_json, status, rollback_json, created_at, updated_at)
|
|
443
|
-
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
444
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
445
|
-
agent_id = excluded.agent_id,
|
|
446
|
-
authority_json = excluded.authority_json,
|
|
447
|
-
status = excluded.status,
|
|
448
|
-
rollback_json = excluded.rollback_json,
|
|
449
|
-
updated_at = excluded.updated_at`)
|
|
450
|
-
.run(authority.referenceId, authority.agentId, JSON.stringify(authority), status, rollbackJson, createdAt, updatedAt);
|
|
451
|
-
}
|
|
452
|
-
loadRecoveryReference(id) {
|
|
453
|
-
const row = this.database.prepare("SELECT * FROM recovery_references WHERE id = ?").get(id);
|
|
454
|
-
if (!row)
|
|
455
|
-
return null;
|
|
456
|
-
const authority = JSON.parse(row.authority_json);
|
|
457
|
-
assertRecoveryAuthority(authority);
|
|
458
|
-
return { authority, status: row.status, rollback: JSON.parse(row.rollback_json), updatedAt: row.updated_at };
|
|
459
|
-
}
|
|
460
|
-
close() {
|
|
461
|
-
this.database.close();
|
|
462
|
-
}
|
|
463
|
-
#transaction(operation) {
|
|
464
|
-
this.database.exec("BEGIN IMMEDIATE");
|
|
465
|
-
try {
|
|
466
|
-
const result = operation();
|
|
467
|
-
this.database.exec("COMMIT");
|
|
468
|
-
return result;
|
|
469
|
-
}
|
|
470
|
-
catch (error) {
|
|
471
|
-
this.database.exec("ROLLBACK");
|
|
472
|
-
throw error;
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
function workspaceAgentFromRow(row) {
|
|
477
|
-
const descriptor = {
|
|
478
|
-
id: row.id,
|
|
479
|
-
displayName: row.display_name,
|
|
480
|
-
adapterId: row.adapter_id,
|
|
481
|
-
runtime: row.runtime_kind,
|
|
482
|
-
lifecycle: row.lifecycle,
|
|
483
|
-
capability: JSON.parse(row.capability_json),
|
|
484
|
-
createdAt: row.created_at,
|
|
485
|
-
recoveryReferenceId: row.recovery_reference_id,
|
|
486
|
-
};
|
|
487
|
-
assertManagedAgentDescriptor(descriptor);
|
|
488
|
-
const failure = row.failure_json === null ? null : JSON.parse(row.failure_json);
|
|
489
|
-
const presentation = {
|
|
490
|
-
unreadActivity: row.unread_count,
|
|
491
|
-
attention: row.attention === 1,
|
|
492
|
-
failure,
|
|
493
|
-
};
|
|
494
|
-
assertWorkspaceAgentPresentation(presentation);
|
|
495
|
-
return { agent: descriptor, presentation };
|
|
496
|
-
}
|
|
497
|
-
function assertWorkspaceAgentPresentation(presentation) {
|
|
498
|
-
if (!Number.isSafeInteger(presentation.unreadActivity) || presentation.unreadActivity < 0) {
|
|
499
|
-
throw new RangeError("workspace unread activity must be a non-negative safe integer");
|
|
500
|
-
}
|
|
501
|
-
if (typeof presentation.attention !== "boolean")
|
|
502
|
-
throw new TypeError("workspace attention must be boolean");
|
|
503
|
-
if (presentation.failure !== null) {
|
|
504
|
-
if (!presentation.failure.code || presentation.failure.code.length > 128 || presentation.failure.code.includes("\0")) {
|
|
505
|
-
throw new TypeError("workspace failure code is invalid");
|
|
506
|
-
}
|
|
507
|
-
if (!presentation.failure.message || presentation.failure.message.length > 4_096 || presentation.failure.message.includes("\0")) {
|
|
508
|
-
throw new TypeError("workspace failure message is invalid");
|
|
509
|
-
}
|
|
510
|
-
}
|
|
511
|
-
}
|
|
512
|
-
function launchInstanceFromRow(row) {
|
|
513
|
-
const instance = {
|
|
514
|
-
id: row.id,
|
|
515
|
-
ownerClientId: row.owner_client_id,
|
|
516
|
-
profileId: row.profile_id,
|
|
517
|
-
state: row.state,
|
|
518
|
-
shutdownPolicy: row.shutdown_policy,
|
|
519
|
-
guardianIdentity: JSON.parse(row.guardian_identity_json),
|
|
520
|
-
rootIdentity: row.root_identity_json ? JSON.parse(row.root_identity_json) : null,
|
|
521
|
-
containmentIdentity: row.containment_identity_json ? JSON.parse(row.containment_identity_json) : null,
|
|
522
|
-
createdAt: row.created_at,
|
|
523
|
-
activatedAt: row.activated_at,
|
|
524
|
-
stoppingAt: row.stopping_at,
|
|
525
|
-
completedAt: row.completed_at,
|
|
526
|
-
outcome: row.outcome_json ? JSON.parse(row.outcome_json) : null,
|
|
527
|
-
};
|
|
528
|
-
assertLaunchInstance(instance);
|
|
529
|
-
return instance;
|
|
530
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./control-store.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./control-store.js";
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { type StructuredCapabilityContract } from "../workspace-contracts/index.js";
|
|
2
|
-
export type StructuredBackpressureResource = "events" | "commands" | "snapshots" | "attachments" | "reconnect-replay";
|
|
3
|
-
export type StructuredBackpressureAction = "none" | "reject-payload" | "pause-adapter" | "reject-request" | "disconnect-adapter";
|
|
4
|
-
export interface StructuredResourceLease {
|
|
5
|
-
readonly id: string;
|
|
6
|
-
readonly resource: StructuredBackpressureResource;
|
|
7
|
-
readonly units: number;
|
|
8
|
-
readonly bytes: number;
|
|
9
|
-
}
|
|
10
|
-
export interface StructuredResourceUsage {
|
|
11
|
-
readonly resource: StructuredBackpressureResource;
|
|
12
|
-
readonly units: number;
|
|
13
|
-
readonly bytes: number;
|
|
14
|
-
readonly unitLimit: number;
|
|
15
|
-
readonly byteLimit: number;
|
|
16
|
-
}
|
|
17
|
-
export type StructuredBackpressureAcquireResult = {
|
|
18
|
-
readonly kind: "accepted";
|
|
19
|
-
readonly lease: StructuredResourceLease;
|
|
20
|
-
readonly usage: StructuredResourceUsage;
|
|
21
|
-
} | {
|
|
22
|
-
readonly kind: "rejected";
|
|
23
|
-
readonly code: "invalid-request" | "payload-too-large" | "resource-exhausted" | "replay-exhausted";
|
|
24
|
-
readonly action: Exclude<StructuredBackpressureAction, "none">;
|
|
25
|
-
readonly usage: StructuredResourceUsage;
|
|
26
|
-
readonly diagnostic: string;
|
|
27
|
-
};
|
|
28
|
-
export type StructuredBackpressureReleaseResult = {
|
|
29
|
-
readonly kind: "released";
|
|
30
|
-
readonly usage: StructuredResourceUsage;
|
|
31
|
-
} | {
|
|
32
|
-
readonly kind: "rejected";
|
|
33
|
-
readonly code: "unknown-lease" | "invalid-request";
|
|
34
|
-
readonly diagnostic: string;
|
|
35
|
-
};
|
|
36
|
-
export declare class StructuredBackpressureController {
|
|
37
|
-
#private;
|
|
38
|
-
readonly adapterId: string;
|
|
39
|
-
constructor(adapterId: string, capability: StructuredCapabilityContract);
|
|
40
|
-
acquire(resource: StructuredBackpressureResource, units?: number, bytes?: number): StructuredBackpressureAcquireResult;
|
|
41
|
-
release(lease: StructuredResourceLease): StructuredBackpressureReleaseResult;
|
|
42
|
-
resetReconnectReplay(): void;
|
|
43
|
-
usage(resource: StructuredBackpressureResource): StructuredResourceUsage;
|
|
44
|
-
leaseCount(): number;
|
|
45
|
-
replayExhausted(): boolean;
|
|
46
|
-
}
|