@timurproko/a1 0.1.8-dev.3b54f21 → 0.1.8-dev.402
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 +159 -65
- package/bin/cli.js +28 -10
- package/bin/guardian.js +12 -6
- package/bin/module-identity.js +69 -35
- package/bin/pi-tui.d.ts +6 -0
- package/bin/pi-tui.js +28 -0
- package/bin/release-cleanup.js +8 -0
- package/bin/supervisor.js +2 -2
- package/bin/sync-pi-tui-proxy.js +97 -0
- package/bin/ui.js +62 -21
- package/bin/update-recovery.js +274 -0
- package/bin/warmup.js +27 -0
- package/dist/cli/capabilities.d.ts +6 -0
- package/dist/{src/cli → cli}/capabilities.js +1 -1
- package/dist/{src/cli → cli}/dispatch.d.ts +15 -1
- package/dist/cli/dispatch.js +261 -0
- package/dist/cli/package-messages.d.ts +26 -0
- package/dist/cli/package-messages.js +71 -0
- package/dist/{src/cli → cli}/packages.d.ts +11 -2
- package/dist/{src/cli → cli}/packages.js +24 -27
- package/dist/{src/cli → cli}/version-stats.d.ts +6 -0
- package/dist/cli/version-stats.js +112 -0
- package/dist/composition/agent-engine-bridge.d.ts +3 -0
- package/dist/composition/agent-engine-bridge.js +108 -0
- package/dist/composition/index.d.ts +3 -0
- package/dist/composition/index.js +3 -0
- package/dist/composition/owned-ui.d.ts +35 -0
- package/dist/composition/owned-ui.js +118 -0
- package/dist/composition/process.d.ts +16 -0
- package/dist/composition/process.js +45 -0
- package/dist/composition/settings-route-host.d.ts +8 -0
- package/dist/composition/settings-route-host.js +75 -0
- package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/capability-ports.d.ts +2 -2
- package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain-validation.js +22 -4
- package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain.d.ts +17 -0
- package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/package-ports.d.ts +6 -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 +8 -0
- package/dist/contracts/owned-ui/index.js +8 -0
- package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/model.d.ts +123 -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/{src/foundation/owned-ui-contracts → contracts/owned-ui}/validation.d.ts +5 -1
- package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/validation.js +129 -4
- package/dist/{src/foundation/presentation-contracts → contracts/presentation}/index.d.ts +8 -0
- package/dist/{src/features → features}/launch/development-launch.js +11 -3
- package/dist/{src/features → features}/launch/index.d.ts +0 -1
- package/dist/{src/features → features}/launch/index.js +0 -1
- package/dist/features/launch/intent.d.ts +10 -0
- package/dist/features/launch/intent.js +8 -0
- package/dist/{src/features → features}/launch/prepare-launch.d.ts +0 -2
- package/dist/{src/features → features}/launch/prepare-launch.js +2 -9
- package/dist/{src/features → features}/launch/profile-paths.d.ts +3 -2
- package/dist/{src/features → features}/launch/profile-paths.js +13 -8
- package/dist/{src/features → features}/launch/runtime-selection.d.ts +2 -5
- package/dist/{src/features → features}/owned-ui/customization.d.ts +3 -1
- package/dist/{src/features → features}/owned-ui/customization.js +3 -1
- package/dist/{src/features → features}/owned-ui/diagnostics.d.ts +2 -1
- package/dist/{src/features → features}/owned-ui/diagnostics.js +1 -0
- package/dist/{src/features → features}/owned-ui/index.d.ts +2 -0
- package/dist/{src/features → features}/owned-ui/index.js +2 -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/{src/features → features}/owned-ui/run.d.ts +2 -2
- package/dist/features/owned-ui/run.js +32 -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/{src/features → features}/owned-ui/settings-app.d.ts +3 -3
- package/dist/{src/features → features}/owned-ui/settings-app.js +105 -56
- 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 +223 -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 +1 -0
- package/dist/features/prompt-suggestions/index.js +1 -0
- package/dist/{src/features → features}/workspace/capabilities.d.ts +1 -1
- package/dist/{src/features → features}/workspace/reducer.d.ts +2 -1
- package/dist/{src/features → features}/workspace/reducer.js +2 -1
- package/dist/{src/features → features}/workspace/router.d.ts +2 -1
- package/dist/{src/features → features}/workspace/router.js +1 -0
- package/dist/{src/features → features}/workspace/store.d.ts +2 -1
- package/dist/{src/features → features}/workspace/store.js +1 -0
- package/dist/foundation/launch-context/index.d.ts +59 -0
- package/dist/foundation/launch-context/index.js +136 -0
- package/dist/{src/foundation → foundation}/launch-guardian/main.d.ts +2 -0
- package/dist/{src/foundation → foundation}/launch-guardian/main.js +23 -8
- package/dist/{src/foundation → foundation}/lifecycle/index.d.ts +2 -0
- package/dist/{src/foundation → foundation}/lifecycle/index.js +2 -0
- package/dist/{src/foundation → foundation}/lifecycle/model.d.ts +1 -1
- package/dist/{src/foundation → foundation}/lifecycle/model.js +1 -1
- package/dist/foundation/lifecycle/paths.d.ts +30 -0
- package/dist/{src/foundation → foundation}/lifecycle/paths.js +29 -1
- 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/{src/foundation → foundation}/native-host-protocol/codec.d.ts +2 -0
- package/dist/{src/foundation → foundation}/native-host-protocol/codec.js +2 -0
- package/dist/{src/foundation → foundation}/native-host-protocol/messages.d.ts +1 -1
- package/dist/{src/foundation → foundation}/native-host-protocol/messages.js +1 -1
- 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/{src/foundation → foundation}/process-containment/index.d.ts +1 -0
- package/dist/{src/foundation → foundation}/process-containment/index.js +1 -0
- package/dist/{src/foundation → foundation}/process-containment/linux-process-inspector.d.ts +1 -0
- package/dist/{src/foundation → foundation}/process-containment/linux-process-inspector.js +1 -0
- package/dist/{src/foundation → foundation}/process-containment/native-guardian-containment.d.ts +1 -0
- package/dist/{src/foundation → foundation}/process-containment/native-guardian-containment.js +1 -0
- package/dist/{src/foundation → foundation}/process-containment/windows-process-inspector.d.ts +3 -1
- package/dist/{src/foundation → foundation}/process-containment/windows-process-inspector.js +5 -2
- package/dist/{src/foundation → foundation}/protocol/client.d.ts +1 -0
- package/dist/{src/foundation → foundation}/protocol/client.js +1 -0
- package/dist/{src/foundation → foundation}/protocol/messages.d.ts +1 -0
- package/dist/{src/foundation → foundation}/protocol/messages.js +1 -0
- package/dist/foundation/release/bootstrap.d.ts +55 -0
- package/dist/{src/foundation → foundation}/release/bootstrap.js +219 -46
- 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 +81 -0
- package/dist/foundation/release/dependency-layer.js +466 -0
- package/dist/foundation/release/endpoints.d.ts +20 -0
- package/dist/foundation/release/endpoints.js +50 -0
- package/dist/foundation/release/immutable-platform.d.ts +6 -0
- package/dist/foundation/release/immutable-platform.js +13 -0
- package/dist/{src/foundation → foundation}/release/index.d.ts +6 -0
- package/dist/{src/foundation → foundation}/release/index.js +6 -0
- package/dist/foundation/release/release-gc.d.ts +71 -0
- package/dist/foundation/release/release-gc.js +764 -0
- package/dist/{src/foundation → foundation}/release/release-store.d.ts +9 -3
- package/dist/{src/foundation → foundation}/release/release-store.js +74 -14
- package/dist/{src/foundation → foundation}/release/release.d.ts +6 -1
- package/dist/{src/foundation → foundation}/release/release.js +15 -4
- package/dist/foundation/release/restart-certification.d.ts +68 -0
- package/dist/foundation/release/restart-certification.js +227 -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/{src/foundation → foundation}/release/update-transaction.d.ts +11 -0
- package/dist/{src/foundation → foundation}/release/update-transaction.js +13 -1
- package/dist/{src/foundation → foundation}/release/update.d.ts +40 -4
- package/dist/{src/foundation → foundation}/release/update.js +196 -78
- package/dist/foundation/release/warmup.d.ts +3 -0
- package/dist/foundation/release/warmup.js +47 -0
- package/dist/foundation/startup/index.d.ts +1 -0
- package/dist/foundation/startup/index.js +1 -0
- package/dist/foundation/startup/startup-runtime.d.ts +36 -0
- package/dist/foundation/startup/startup-runtime.js +142 -0
- package/dist/{src/foundation → foundation}/storage/control-store.d.ts +2 -1
- package/dist/{src/foundation → foundation}/storage/control-store.js +39 -4
- package/dist/{src/foundation → foundation}/structured-agent-runtime/backpressure.d.ts +2 -1
- package/dist/{src/foundation → foundation}/structured-agent-runtime/backpressure.js +2 -1
- package/dist/{src/foundation → foundation}/structured-agent-runtime/commands.d.ts +2 -1
- package/dist/{src/foundation → foundation}/structured-agent-runtime/commands.js +2 -1
- package/dist/{src/foundation → foundation}/structured-agent-runtime/handshake.d.ts +1 -1
- package/dist/{src/foundation → foundation}/structured-agent-runtime/handshake.js +1 -1
- package/dist/{src/foundation → foundation}/structured-agent-runtime/reconnection.d.ts +2 -1
- package/dist/{src/foundation → foundation}/structured-agent-runtime/reconnection.js +2 -1
- package/dist/{src/foundation → foundation}/structured-agent-runtime/state.d.ts +2 -1
- package/dist/{src/foundation → foundation}/structured-agent-runtime/state.js +2 -1
- 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 +51 -0
- package/dist/{src/foundation → foundation}/supervision/server.js +142 -20
- package/dist/foundation/terminal-cleanup/fatal-exit.d.ts +12 -0
- package/dist/foundation/terminal-cleanup/fatal-exit.js +85 -0
- package/dist/foundation/terminal-cleanup/index.d.ts +2 -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/{src/foundation/pi-component-adapter → integrations/pi/components}/components.d.ts +1 -1
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/conformance.d.ts +1 -0
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/conformance.js +3 -2
- package/dist/integrations/pi/components/editor-interaction.d.ts +38 -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/{src/foundation/pi-component-adapter → integrations/pi/components}/index.d.ts +2 -1
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/index.js +2 -1
- package/dist/integrations/pi/components/owned-editor-ux.d.ts +74 -0
- package/dist/integrations/pi/components/owned-editor-ux.js +1093 -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/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-components.d.ts +1 -0
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-components.js +1 -0
- package/dist/integrations/pi/components/shell-editor-autocomplete.js +297 -0
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-extension-ui.d.ts +1 -1
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-footer-status.d.ts +4 -4
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-footer-status.js +58 -23
- 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/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-presenters-transcript.js +174 -170
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-selectors-dialogs.d.ts +8 -4
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-selectors-dialogs.js +10 -6
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +213 -0
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-shared-facade.js +5 -2
- package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +15 -0
- package/dist/integrations/pi/components/submitted-prompt-adapter.js +43 -0
- package/dist/integrations/pi/components/tool-image-presentation.d.ts +21 -0
- package/dist/integrations/pi/components/tool-image-presentation.js +86 -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/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/adjacent/core/keybindings.d.ts +11 -2
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/adjacent/core/keybindings.js +41 -3
- package/dist/integrations/pi/components/upstream/assets/earendil-image.json +12 -0
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +42 -0
- package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +40 -0
- package/dist/integrations/pi/components/upstream/components/owned-editor.js +166 -0
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/scoped-models-selector.d.ts +1 -1
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/scoped-models-selector.js +3 -1
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-footer.d.ts +3 -2
- package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-footer.js +12 -7
- package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +61 -0
- package/dist/integrations/pi/components/upstream/components/tool-execution.js +344 -0
- package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +280 -0
- package/dist/integrations/pi/components/upstream/history/editor-core.js +2062 -0
- package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +32 -0
- package/dist/integrations/pi/components/upstream/history/kill-ring.js +48 -0
- package/dist/integrations/pi/components/upstream/history/printable-key.d.ts +1 -0
- package/dist/integrations/pi/components/upstream/history/printable-key.js +40 -0
- package/dist/integrations/pi/components/upstream/history/text-helpers.d.ts +14 -0
- package/dist/integrations/pi/components/upstream/history/text-helpers.js +28 -0
- package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +22 -0
- package/dist/integrations/pi/components/upstream/history/undo-stack.js +36 -0
- package/dist/integrations/pi/components/upstream/history/word-navigation.d.ts +24 -0
- package/dist/integrations/pi/components/upstream/history/word-navigation.js +100 -0
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/adapter.d.ts +74 -6
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/adapter.js +1340 -228
- package/dist/integrations/pi/engine/changelog.d.ts +2 -0
- package/dist/integrations/pi/engine/changelog.js +63 -0
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/conformance.d.ts +4 -2
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/conformance.js +15 -5
- package/dist/integrations/pi/engine/http-dispatcher.d.ts +4 -0
- package/dist/integrations/pi/engine/http-dispatcher.js +25 -0
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/index.d.ts +4 -0
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/index.js +4 -0
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/model-auth-integration.d.ts +2 -1
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/model-auth-integration.js +1 -0
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/package-integration.d.ts +1 -1
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/package-integration.js +32 -26
- package/dist/integrations/pi/engine/pending-delivery.d.ts +30 -0
- package/dist/integrations/pi/engine/pending-delivery.js +158 -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/{src/foundation/pi-engine-adapter → integrations/pi/engine}/resource-extension-integration.d.ts +2 -1
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/resource-extension-integration.js +1 -0
- package/dist/integrations/pi/engine/resources/changelog.json +12 -0
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/runtime-integration.d.ts +19 -1
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/runtime-integration.js +56 -5
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/session-integration.d.ts +4 -2
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/session-integration.js +19 -4
- 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-effects.d.ts +66 -0
- package/dist/integrations/pi/engine/settings-effects.js +249 -0
- package/dist/integrations/pi/engine/settings-integration.d.ts +43 -0
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/settings-integration.js +102 -108
- 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/windows-filesystem-hygiene.d.ts +21 -0
- package/dist/integrations/pi/engine/windows-filesystem-hygiene.js +55 -0
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/workflow-controllers.d.ts +3 -2
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/workflow-controllers.js +1 -0
- package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/workflows.d.ts +19 -2
- package/dist/integrations/pi/session-ui/clipboard-diagnostics.d.ts +16 -0
- package/dist/integrations/pi/session-ui/clipboard-diagnostics.js +65 -0
- package/dist/integrations/pi/session-ui/clipboard-image.d.ts +11 -0
- package/dist/integrations/pi/session-ui/clipboard-image.js +38 -0
- package/dist/integrations/pi/session-ui/editor-hyperlink-budget.d.ts +9 -0
- package/dist/integrations/pi/session-ui/editor-hyperlink-budget.js +23 -0
- package/dist/integrations/pi/session-ui/image-preparation-client.d.ts +20 -0
- package/dist/integrations/pi/session-ui/image-preparation-client.js +145 -0
- package/dist/integrations/pi/session-ui/image-preparation.d.ts +18 -0
- package/dist/integrations/pi/session-ui/image-preparation.js +126 -0
- package/dist/integrations/pi/session-ui/image-source.d.ts +13 -0
- package/dist/integrations/pi/session-ui/image-source.js +171 -0
- package/dist/integrations/pi/session-ui/image-worker.d.ts +17 -0
- package/dist/integrations/pi/session-ui/image-worker.js +23 -0
- package/dist/integrations/pi/session-ui/index.d.ts +5 -0
- package/dist/integrations/pi/session-ui/index.js +5 -0
- package/dist/integrations/pi/session-ui/paste-executor.d.ts +10 -0
- package/dist/integrations/pi/session-ui/paste-executor.js +232 -0
- package/dist/integrations/pi/session-ui/paste-helper.d.ts +1 -0
- package/dist/integrations/pi/session-ui/paste-helper.js +173 -0
- package/dist/integrations/pi/session-ui/paste-preparation-client.d.ts +16 -0
- package/dist/integrations/pi/session-ui/paste-preparation-client.js +159 -0
- package/dist/integrations/pi/session-ui/paste-protocol.d.ts +78 -0
- package/dist/integrations/pi/session-ui/paste-protocol.js +18 -0
- package/dist/integrations/pi/session-ui/paste-text-preparation.d.ts +20 -0
- package/dist/integrations/pi/session-ui/paste-text-preparation.js +134 -0
- package/dist/integrations/pi/session-ui/paste-text-worker.d.ts +1 -0
- package/dist/integrations/pi/session-ui/paste-text-worker.js +12 -0
- package/dist/integrations/pi/session-ui/path-chip-presentation.d.ts +7 -0
- package/dist/integrations/pi/session-ui/path-chip-presentation.js +24 -0
- package/dist/integrations/pi/session-ui/prompt-chips.d.ts +72 -0
- package/dist/integrations/pi/session-ui/prompt-chips.js +503 -0
- package/dist/integrations/pi/session-ui/prompt-history-controller.d.ts +36 -0
- package/dist/integrations/pi/session-ui/prompt-history-controller.js +170 -0
- package/dist/integrations/pi/session-ui/prompt-suggestion-controller.d.ts +35 -0
- package/dist/integrations/pi/session-ui/prompt-suggestion-controller.js +207 -0
- package/dist/integrations/pi/session-ui/response-copy-coordinator.d.ts +27 -0
- package/dist/integrations/pi/session-ui/response-copy-coordinator.js +189 -0
- package/dist/integrations/pi/session-ui/response-copy-helper.d.ts +1 -0
- package/dist/integrations/pi/session-ui/response-copy-helper.js +122 -0
- package/dist/integrations/pi/session-ui/response-copy-protocol.d.ts +56 -0
- package/dist/integrations/pi/session-ui/response-copy-protocol.js +5 -0
- package/dist/integrations/pi/session-ui/response-copy-transport.d.ts +31 -0
- package/dist/integrations/pi/session-ui/response-copy-transport.js +187 -0
- package/dist/integrations/pi/session-ui/route-host.d.ts +5 -0
- package/dist/integrations/pi/session-ui/route-host.js +1 -0
- package/dist/integrations/pi/session-ui/session-shell-root.d.ts +221 -0
- package/dist/integrations/pi/session-ui/session-shell-root.js +1305 -0
- package/dist/integrations/pi/session-ui/session-shell.d.ts +55 -0
- package/dist/integrations/pi/session-ui/session-shell.js +1792 -0
- package/dist/integrations/pi/session-ui/session-viewport-controller.d.ts +56 -0
- package/dist/integrations/pi/session-ui/session-viewport-controller.js +569 -0
- package/dist/integrations/pi/session-ui/stream-presentation-coalescer.d.ts +29 -0
- package/dist/integrations/pi/session-ui/stream-presentation-coalescer.js +79 -0
- package/dist/integrations/pi/session-ui/system-clipboard.d.ts +20 -0
- package/dist/integrations/pi/session-ui/system-clipboard.js +156 -0
- package/dist/integrations/pi/session-ui/text-paste.d.ts +5 -0
- package/dist/integrations/pi/session-ui/text-paste.js +16 -0
- package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/adapter.d.ts +10 -1
- package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/adapter.js +255 -11
- package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/contracts.d.ts +32 -6
- package/dist/integrations/pi/tui-runtime/contracts.js +1 -0
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +81 -0
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +424 -0
- package/dist/integrations/pi/tui-runtime/index.d.ts +7 -0
- package/dist/integrations/pi/tui-runtime/index.js +7 -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 +59 -0
- package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +32 -0
- package/dist/integrations/pi/tui-runtime/overlay-geometry.js +159 -0
- package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/presentation-adapter.d.ts +1 -1
- 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/{src/product-identity.d.ts → product-identity.d.ts} +4 -4
- package/dist/{src/product-identity.js → product-identity.js} +7 -38
- package/dist/{src/product-identity.json → product-identity.json} +13 -27
- package/dist/runtime-payload-inventory.json +122333 -0
- package/dist/{src/foundation/ui-apps → ui/apps}/contracts.d.ts +23 -1
- package/dist/{src/foundation/ui-apps → ui/apps}/host.d.ts +1 -1
- package/dist/{src/foundation/ui-apps → ui/apps}/host.js +14 -10
- package/dist/{src/foundation/ui-apps → ui/apps}/registry.d.ts +1 -0
- package/dist/{src/foundation/ui-apps → ui/apps}/registry.js +1 -0
- package/dist/{src/foundation/ui-components → ui/components}/dialog-panel.js +5 -3
- package/dist/{src/foundation/ui-components → ui/components}/frame.d.ts +1 -0
- package/dist/{src/foundation/ui-components → ui/components}/frame.js +1 -0
- package/dist/{src/foundation/ui-components → ui/components}/index.d.ts +7 -0
- package/dist/{src/foundation/ui-components → ui/components}/index.js +7 -0
- package/dist/{src/foundation/ui-components → ui/components}/line-input.d.ts +2 -8
- package/dist/{src/foundation/ui-components → ui/components}/line-input.js +7 -28
- package/dist/{src/foundation/ui-components → ui/components}/list-view.d.ts +0 -6
- package/dist/{src/foundation/ui-components → ui/components}/list-view.js +14 -7
- package/dist/{src/foundation/ui-components → ui/components}/mouse.d.ts +10 -0
- package/dist/{src/foundation/ui-components → ui/components}/mouse.js +24 -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 +54 -0
- package/dist/ui/components/prompt-row.d.ts +14 -0
- package/dist/ui/components/prompt-row.js +20 -0
- package/dist/{src/foundation/ui-components → ui/components}/scrollbar.d.ts +26 -0
- package/dist/{src/foundation/ui-components → ui/components}/scrollbar.js +35 -0
- package/dist/ui/components/selection-copy.d.ts +24 -0
- package/dist/ui/components/selection-copy.js +39 -0
- package/dist/{src/foundation/ui-components → ui/components}/shortcuts.d.ts +1 -0
- package/dist/{src/foundation/ui-components → ui/components}/shortcuts.js +1 -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/{src/foundation/ui-components → ui/components}/surface.d.ts +0 -5
- package/dist/{src/foundation/ui-components → ui/components}/surface.js +1 -5
- package/dist/ui/components/text-selection.d.ts +62 -0
- package/dist/ui/components/text-selection.js +210 -0
- package/dist/{src/foundation/ui-components → ui/components}/text.d.ts +14 -0
- package/dist/{src/foundation/ui-components → ui/components}/text.js +67 -5
- 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/{src/foundation/owned-ui-settings → ui/settings}/declarations.d.ts +8 -1
- package/dist/ui/settings/declarations.js +94 -0
- package/dist/{src/foundation/owned-ui-settings → ui/settings}/migrations.d.ts +1 -1
- package/dist/{src/foundation/owned-ui-settings → ui/settings}/migrations.js +28 -2
- package/dist/{src/foundation/owned-ui-settings → ui/settings}/sections.d.ts +6 -19
- package/dist/{src/foundation/owned-ui-settings → ui/settings}/sections.js +41 -22
- package/dist/{src/foundation/owned-ui-settings → ui/settings}/session.d.ts +9 -17
- package/dist/ui/settings/session.js +164 -0
- package/dist/{src/foundation/owned-ui-settings → ui/settings}/store.d.ts +1 -0
- package/dist/{src/foundation/owned-ui-settings → ui/settings}/store.js +2 -1
- package/docs/architecture/boundaries.md +14 -10
- package/docs/architecture/code-documentation.md +77 -0
- package/docs/architecture/history-editor-provenance.md +100 -0
- package/docs/architecture/internal-naming.md +91 -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 +83 -0
- package/docs/architecture/tool-image-presentation.md +62 -0
- package/docs/architecture/toolchain.md +24 -10
- package/docs/architecture/ui-reference-provenance.md +59 -5
- package/docs/ci-release-runbook.md +236 -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/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 +78 -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 +124 -0
- package/docs/repository-governance-live-acceptance.md +77 -0
- package/package.json +45 -28
- package/dist/src/cli/capabilities.d.ts +0 -15
- package/dist/src/cli/dispatch.js +0 -142
- package/dist/src/cli/version-stats.js +0 -72
- package/dist/src/composition/index.d.ts +0 -48
- package/dist/src/composition/index.js +0 -258
- package/dist/src/features/launch/intent.d.ts +0 -7
- package/dist/src/features/launch/intent.js +0 -4
- package/dist/src/features/launch/profiles.d.ts +0 -12
- package/dist/src/features/launch/profiles.js +0 -26
- package/dist/src/features/owned-ui/run.js +0 -15
- package/dist/src/foundation/lifecycle/paths.d.ts +0 -10
- 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-settings/declarations.js +0 -39
- package/dist/src/foundation/owned-ui-settings/session.js +0 -145
- package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +0 -162
- package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -57
- package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -116
- package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +0 -19
- 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-engine-adapter/settings-integration.d.ts +0 -55
- 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/index.d.ts +0 -4
- package/dist/src/foundation/pi-tui-runtime-adapter/index.js +0 -4
- package/dist/src/foundation/release/bootstrap.d.ts +0 -29
- 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/release-gc.d.ts +0 -5
- package/dist/src/foundation/release/release-gc.js +0 -16
- 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/ui-components/spans.d.ts +0 -7
- package/dist/src/foundation/ui-components/spans.js +0 -59
- package/docs/manual-transparent-checkpoint.md +0 -53
- /package/dist/{src/cli → cli}/index.d.ts +0 -0
- /package/dist/{src/cli → cli}/index.js +0 -0
- /package/dist/{src/cli → cli}/version.d.ts +0 -0
- /package/dist/{src/cli → cli}/version.js +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/agent-engine-contracts → contracts/agent-engine}/domain.js +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/index.d.ts +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/index.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}/ports.js +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.d.ts +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/foundation/workspace-contracts → contracts/workspace}/index.d.ts +0 -0
- /package/dist/{src/foundation/workspace-contracts → contracts/workspace}/index.js +0 -0
- /package/dist/{src/foundation/workspace-contracts → contracts/workspace}/model.d.ts +0 -0
- /package/dist/{src/foundation/workspace-contracts → contracts/workspace}/model.js +0 -0
- /package/dist/{src/foundation/workspace-contracts → contracts/workspace}/validation.d.ts +0 -0
- /package/dist/{src/foundation/workspace-contracts → contracts/workspace}/validation.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/features → features}/launch/runtime-selection.js +0 -0
- /package/dist/{src/features → features}/workspace/capabilities.js +0 -0
- /package/dist/{src/features → features}/workspace/index.d.ts +0 -0
- /package/dist/{src/features → features}/workspace/index.js +0 -0
- /package/dist/{src/features → features}/workspace/presentation.d.ts +0 -0
- /package/dist/{src/features → features}/workspace/presentation.js +0 -0
- /package/dist/{src/features → features}/workspace/reconciliation.d.ts +0 -0
- /package/dist/{src/features → features}/workspace/reconciliation.js +0 -0
- /package/dist/{src/foundation → foundation}/launch-guardian/index.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/launch-guardian/index.js +0 -0
- /package/dist/{src/foundation → foundation}/lifecycle/commands.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/lifecycle/commands.js +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}/native-host-protocol/evidence.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/native-host-protocol/evidence.js +0 -0
- /package/dist/{src/foundation → foundation}/native-host-protocol/index.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/native-host-protocol/index.js +0 -0
- /package/dist/{src/foundation → foundation}/native-host-protocol/proof-gate.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/native-host-protocol/proof-gate.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}/protocol/index.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/protocol/index.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 → foundation}/storage/index.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/storage/index.js +0 -0
- /package/dist/{src/foundation → foundation}/structured-agent-runtime/index.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/structured-agent-runtime/index.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/components.js +0 -0
- /package/dist/{src/foundation/pi-owned-ui-integration/route-host.js → integrations/pi/components/editor-interaction.js} +0 -0
- /package/dist/{src/foundation/pi-tui-runtime-adapter/contracts.js → integrations/pi/components/prompt-input-port.js} +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/resources/builtin-themes.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/resources/builtin-themes.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}/shell-extension-ui.js +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.d.ts +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/custom-entry.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/custom-entry.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/daxnuts.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/daxnuts.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/earendil-announcement.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/extension-editor.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/extension-editor.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/first-time-setup.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/first-time-setup.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/markdown-transform.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/markdown-transform.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/mermaid.js +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/components/session-selector-search.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/skill-invocation-message.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/skill-invocation-message.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/status-indicator.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/status-indicator.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/tree-selector.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/tree-selector.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/trust-selector.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/trust-selector.js +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/external-editor.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/model-search.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-component-adapter → integrations/pi/components}/upstream/theme/theme-controller.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/theme/theme-controller.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/theme/theme.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/theme/theme.js +0 -0
- /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/pi-settings-metadata.json +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/pi-engine-adapter → integrations/pi/engine}/workflows.js +0 -0
- /package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/conformance.d.ts +0 -0
- /package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/conformance.js +0 -0
- /package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/presentation-adapter.js +0 -0
- /package/dist/{src/foundation/ui-apps → ui/apps}/contracts.js +0 -0
- /package/dist/{src/foundation/ui-apps → ui/apps}/index.d.ts +0 -0
- /package/dist/{src/foundation/ui-apps → ui/apps}/index.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}/index.d.ts +0 -0
- /package/dist/{src/foundation/owned-ui-settings → ui/settings}/index.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
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Automatic OpenSpec archival
|
|
2
|
+
|
|
3
|
+
The archive workflow handles accepted implementation merges into `develop`, a daily 90-day catch-up, and targeted retries. It creates an OpenSpec-only PR; existing documentation auto-merge remains responsible for squash integration after real current-head CI. An archive PR being open is not a completed archive.
|
|
4
|
+
|
|
5
|
+
Documentation CI installs only the pinned OpenSpec archive tool into runner temporary storage, not the repository dependency tree. Candidate validation selects that installation with `--tool-root`; the override is unavailable to publication and audit modes. The documentation job has read-only contents, PR, and Actions permissions; the existing merge owner also declares Actions read access for checking source validation.
|
|
6
|
+
|
|
7
|
+
## One draft PR from planning through implementation
|
|
8
|
+
|
|
9
|
+
A new implementation-bound change starts as OpenSpec-only artifacts in one draft PR, not a plan merged ahead of its implementation. Planning requests authorize no code. The agent prepares the link below while opening that draft. After explicit plan approval and an implementation request, continue in the same worktree, branch, history, and PR; reconcile approved planning refinements before their code edits and include related product documentation there too.
|
|
10
|
+
|
|
11
|
+
Keep the PR draft while incomplete, then make it ready for final review. Approval to implement is not final acceptance or merge authorization. The completed PR still requires required CI, actual final-head maintainer review, and explicit manual integration. The documentation merge owner holds implementation-associated PRs and new active changes even if marked ready or their marker is removed. PR body edits trigger reconciliation and disable an excluded armed merge. Ordinary docs, standalone revisions to existing merged plans, and verified archive moves remain automatic under the exact path allowlist.
|
|
12
|
+
|
|
13
|
+
## Normal implementation handoff
|
|
14
|
+
|
|
15
|
+
The delivery agent adds one version-2 block to the initial draft PR description. It identifies the plan and implementation in that same PR, without `specificationPr`:
|
|
16
|
+
|
|
17
|
+
````markdown
|
|
18
|
+
```openspec-implementation
|
|
19
|
+
{
|
|
20
|
+
"version": 2,
|
|
21
|
+
"change": "example-change",
|
|
22
|
+
"archivePreparationTasks": { "recordEvidence": "7.1", "stageArchive": "7.2" }
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
````
|
|
26
|
+
|
|
27
|
+
The minimal link is `{ "version": 2, "change": "example-change" }`. Version 2 verifies that the linked artifacts are present and identical in the accepted source and implementation merge; it never invents a separate specification PR. Omit `archivePreparationTasks` when no mechanical task mapping is needed. If used, the mapped task IDs must have exactly these descriptions:
|
|
28
|
+
|
|
29
|
+
```markdown
|
|
30
|
+
- [ ] 7.1 Record verified implementation acceptance and merge evidence for archive preparation.
|
|
31
|
+
- [ ] 7.2 Stage and verify delta synchronization and the archive move in an OpenSpec-only candidate.
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
All implementation, tests, CI, and manual-review tasks must be completed separately before acceptance. Never combine physical review or merge authorization into these mechanical tasks. An old mixed task is a blocker, not permission to tick unperformed work.
|
|
35
|
+
|
|
36
|
+
After the maintainer actually accepts the final candidate, record one authorized maintainer PR comment:
|
|
37
|
+
|
|
38
|
+
````markdown
|
|
39
|
+
```openspec-acceptance
|
|
40
|
+
{
|
|
41
|
+
"version": 1,
|
|
42
|
+
"change": "example-change",
|
|
43
|
+
"headSha": "REPLACE_WITH_FINAL_REVIEWED_40_CHARACTER_SHA",
|
|
44
|
+
"specBaseSha": "REPLACE_WITH_REVIEWED_SPEC_BASELINE_40_CHARACTER_SHA",
|
|
45
|
+
"verdict": "accepted",
|
|
46
|
+
"implementationComplete": true,
|
|
47
|
+
"manualReview": "passed",
|
|
48
|
+
"specSyncReviewed": true,
|
|
49
|
+
"evidence": "Identify the exact candidate, applicable commands, scenarios reviewed, and actual outcomes."
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
````
|
|
53
|
+
|
|
54
|
+
The placeholders intentionally fail validation. The agent fills actual identities and reports; it must never invent a positive review. The spec baseline is an ancestor commit containing the canonical requirements against which the maintainer reviewed the deltas. It is not automatically moved to a newer baseline to conceal conflicts.
|
|
55
|
+
|
|
56
|
+
The comment author needs repository write/maintain/admin authority. A newer head needs renewed acceptance; missing, edited, contradictory, revoked, stale, or known-gap records block the automatic route. Acceptance records remain version 1 and require one unambiguous current-head acceptance record. Earlier-head records are retained; same-head contradictions or a later conflicting record require explicit reconciliation before retrying. Source acceptance is copied into the archived `acceptance.md` with PR, head, merge, check-run, and comment provenance.
|
|
57
|
+
|
|
58
|
+
The code PR still requires explicit manual merge authorization. After that merge, no additional archive request is needed for an eligible change. Planning-only and archive PRs never count as implemented changes. Existing `acceptance.md` files require manual reconciliation rather than being silently overwritten.
|
|
59
|
+
|
|
60
|
+
## Rejection, standalone docs, and legacy migration
|
|
61
|
+
|
|
62
|
+
- **New draft rejected:** if `example-change` never merged, close its PR. Neither its plan nor code lands on `develop`, and no main-branch reconciliation or completed-change archive is required. Closing alone does not authorize deleting an unmerged branch or dirty worktree; follow separate cleanup approvals.
|
|
63
|
+
- **Legacy merged plan rejected:** preserve its historical merge. Obtain an explicit reconciliation disposition; do not claim successful implementation or archive it as complete.
|
|
64
|
+
- **Legacy implementation continues:** keep the existing PR (for example #376 following #362), or create an isolated implementation stream only if none exists and implementation is explicitly requested. Retain the original version-1 link; the historical specification merge and ancestry are still verified. Unknown versions and version-2 links containing `specificationPr` are rejected.
|
|
65
|
+
- **Standalone docs/revision:** an unassociated non-draft README/docs PR or revision of an already-present active change retains the usual CI-gated automatic path. Renaming an archive into a new active plan establishes a hold; moving a completed active change into its archive does not.
|
|
66
|
+
|
|
67
|
+
Legacy link example:
|
|
68
|
+
|
|
69
|
+
````markdown
|
|
70
|
+
```openspec-implementation
|
|
71
|
+
{ "version": 1, "change": "legacy-change", "specificationPr": 123 }
|
|
72
|
+
```
|
|
73
|
+
````
|
|
74
|
+
|
|
75
|
+
The repository-owned [change-delivery skill](../.agents/skills/change-delivery/SKILL.md) follows these boundaries without changing external or globally installed skills. This bootstrap still needs live evidence of the new draft/approval/same-PR/refinement lifecycle, a ready-but-unimplemented plan remaining held, rejection without archival, an ordinary docs control, and accepted merge through automatic archival. Unit tests are not that evidence.
|
|
76
|
+
|
|
77
|
+
## One-time publication setup
|
|
78
|
+
|
|
79
|
+
Provisioning is a separate maintainer-approved operation, not performed by installing or running the script.
|
|
80
|
+
|
|
81
|
+
1. Create and install a repository-scoped GitHub App for this repository, without administration permissions or ruleset bypass.
|
|
82
|
+
2. Grant repository contents and pull-request read/write permissions. The workflow's ordinary token reads contents, PR metadata, and Actions validation; the App token is restricted to publication and status comments.
|
|
83
|
+
3. Set repository Actions secrets `OPENSPEC_ARCHIVE_APP_ID` and `OPENSPEC_ARCHIVE_APP_PRIVATE_KEY`. Do not paste keys into PRs, source, reports, or acceptance evidence.
|
|
84
|
+
4. Verify trusted default-branch deployment and run a read-only audit before the isolated live lifecycle test.
|
|
85
|
+
5. Record a real App-authored archive PR triggering ordinary CI, automatic protected squash integration, and exact-head branch cleanup before accepting live operation.
|
|
86
|
+
|
|
87
|
+
The script mints and revokes a short-lived installation token. It does not publish with `GITHUB_TOKEN`: GitHub can suppress the resulting PR events, leaving a PR without required CI. Missing App setup blocks mutation and does not relax protection. No extra merge owner, status spoofing, or automatic repository-settings application is introduced.
|
|
88
|
+
|
|
89
|
+
## Audit and retry
|
|
90
|
+
|
|
91
|
+
From a dependency-installed checkout, run a read-only audit using existing GitHub CLI authentication:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
GH_TOKEN="$(gh auth token)" node scripts/governance/reconcile-openspec-archive.mjs --dry-run
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
To inspect one implementation PR, including one older than the scheduled window:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
GH_TOKEN="$(gh auth token)" node scripts/governance/reconcile-openspec-archive.mjs --dry-run --pr 123
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
These commands do not launch the product UI and do not require a product build. They never mutate remote refs, PRs, comments, source specs/tasks, or persistent scan checkpoints. Disposable local staging verifies the proposed archive; the audit report is written to `.artifacts/openspec-archive/report.json`.
|
|
104
|
+
|
|
105
|
+
For authorized publication or retry, use the **OpenSpec archive** Actions dispatch. Keep `dry_run` enabled for inspection. Set a specific PR and `retry_closed` only when deliberately authorizing replacement of its closed/unmerged archive PR. Closing an archive PR otherwise stops automatic recreation.
|
|
106
|
+
|
|
107
|
+
## Outcomes and bounds
|
|
108
|
+
|
|
109
|
+
- **eligible**: evidence and isolated staging passed; dry-run did not publish.
|
|
110
|
+
- **blocked**: a named evidence/task/spec/setup/ownership problem requires attention.
|
|
111
|
+
- **pending**: archive PR exists; current-head CI and automatic merge are not yet complete.
|
|
112
|
+
- **already-archived**: merged archive identity and retained evidence were verified.
|
|
113
|
+
- **deferred**: the queue or scan budget prevented work this run.
|
|
114
|
+
- **unlinked**: no explicit implementation metadata; not presumed accepted or archived.
|
|
115
|
+
|
|
116
|
+
Only one automatic archive PR is outstanding at a time. Runs never wait on CI. A failing pending PR blocks the queue until fixed or explicitly closed; neither a rerun nor a successful old head bypasses its required checks. Human-edited branches and unrelated paths are preserved.
|
|
117
|
+
|
|
118
|
+
Catch-up scans a fixed 90-day window, up to 500 PRs per pass, with a 10-minute workflow budget and one publication per run. A small versioned cursor resumes unfinished windows; reports and cursors are retained for 14 days. Missing/expired cursors restart a bounded scan, not an assumed complete audit. Older PRs remain targetable. Exceptionally dense search buckets or incomplete GitHub search results are explicit blockers rather than silent truncation.
|
|
119
|
+
|
|
120
|
+
Known-gap archival remains a separately authorized manual path. The existing backlog is not bulk-approved when automation starts. Local worktree cleanup remains with the local agent after verified integration and a clean-tree check.
|
|
121
|
+
|
|
122
|
+
## Disable or roll back
|
|
123
|
+
|
|
124
|
+
Disable the **OpenSpec archive** workflow or revoke its App publication credentials. Preserve active changes and open archive PRs for review. Do not delete documents, undo synchronized specs, or modify repository rulesets merely to stop automation. Existing documentation auto-merge and remote branch cleanup remain independently governed.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Repository governance live acceptance
|
|
2
|
+
|
|
3
|
+
## Implementation lifecycle
|
|
4
|
+
|
|
5
|
+
- PR #165 was manually squash-merged by `timurproko` from validated head
|
|
6
|
+
`45aab61c5e4568d3d26dc970f76e9ec86918f323` to `develop` commit
|
|
7
|
+
`e4cdc67555e9f25d03f251be19baa8fc446ac313`.
|
|
8
|
+
- Cleanup run `33185942656` used trusted `develop` policy with `contents: write` only
|
|
9
|
+
and reported `already-absent`; the implementation branch remained absent.
|
|
10
|
+
- The read-only live governance report matched every declared field after merge.
|
|
11
|
+
|
|
12
|
+
## Acceptance defect and correction
|
|
13
|
+
|
|
14
|
+
- Initial OpenSpec probe PR #166 automatically squash-merged validated head
|
|
15
|
+
`c30c0a091a6a6a727057befcdd775422988be382` to
|
|
16
|
+
`f8d60080cfd9925b33a19a5d40c707637ac00b08`, but GitHub suppressed the recursive
|
|
17
|
+
close-event workflow because integration was authored with `GITHUB_TOKEN`.
|
|
18
|
+
- Its exact unchanged branch remained, proving the first implementation incomplete.
|
|
19
|
+
The branch was manually deleted only after its expected SHA and lack of an open PR
|
|
20
|
+
were reverified.
|
|
21
|
+
- Corrective PR #167 was manually squash-merged from validated head
|
|
22
|
+
`3a09042386df2501accc1eec3b424b94ae84daa4` to
|
|
23
|
+
`e8d639985a811f01cd5daeb027db5069d1724596`. Cleanup run `33188206793`
|
|
24
|
+
succeeded with `already-absent`.
|
|
25
|
+
|
|
26
|
+
## Automatic OpenSpec acceptance
|
|
27
|
+
|
|
28
|
+
- PR #168 contained only `openspec/**` paths.
|
|
29
|
+
- Development validation run `33188285639` passed for exact head
|
|
30
|
+
`6678d9237ca7c4109beaed0d97d5fb1183fe5f97` without product tests.
|
|
31
|
+
- `github-actions` automatically squash-merged it to
|
|
32
|
+
`c2fa730a4b070f9f6717329c24158def5c766f11`.
|
|
33
|
+
- Trusted documentation reconciliation run `33188329123` reported `deleted` for the
|
|
34
|
+
same expected head SHA, and the remote branch was verified absent.
|
|
35
|
+
|
|
36
|
+
## Automatic root README acceptance
|
|
37
|
+
|
|
38
|
+
- PR #169 changed only root `README.md`.
|
|
39
|
+
- Development validation run `33188400573` passed for exact head
|
|
40
|
+
`165c5159031d80059c4d93c36c6d10113ec7ba8e` without product tests.
|
|
41
|
+
- `github-actions` automatically squash-merged it to
|
|
42
|
+
`0180088a42b7cdacaf84ec66ff5a87be1a697155`.
|
|
43
|
+
- Trusted documentation reconciliation run `33188434277` reported `deleted` for the
|
|
44
|
+
same expected head SHA, and the remote branch was verified absent.
|
|
45
|
+
|
|
46
|
+
## Mixed-path manual acceptance
|
|
47
|
+
|
|
48
|
+
PR #170 combined this evidence file outside the exact automatic allowlist with an
|
|
49
|
+
OpenSpec task update. Development validation run `33188542485` passed for exact head
|
|
50
|
+
`b95bdbf08ad6db76c5fab2bfca254026a3c4bcc1` without product tests. Auto-merge
|
|
51
|
+
remained disabled and the pull request remained open and mergeable until `timurproko`
|
|
52
|
+
manually squash-merged it to `6ab1e4d29b9edec8501bac774bc755e66240ea40`.
|
|
53
|
+
Close-event cleanup run `33188616709` reported `already-absent`, and the remote branch
|
|
54
|
+
was verified absent after the explicit merge.
|
|
55
|
+
|
|
56
|
+
## Automatic maintained-documentation acceptance
|
|
57
|
+
|
|
58
|
+
- Implementation PR #180 was manually squash-merged after required validation from
|
|
59
|
+
head `8f40bfaaa5e8410e77b1c9cc0667c62bc4c62d4b` to
|
|
60
|
+
`45a59a7b696d537a4dc8fe62000a60c20e504ab2`.
|
|
61
|
+
- PR #181 changes only this maintained `docs/**` file and is the live acceptance
|
|
62
|
+
probe for the expanded allowlist.
|
|
63
|
+
- Acceptance requires current-head documentation validation, automatic squash
|
|
64
|
+
integration without maintainer merge action, and exact-head remote branch cleanup.
|
|
65
|
+
Exact run and merge evidence is recorded with the completed OpenSpec change.
|
|
66
|
+
|
|
67
|
+
## Advanced-ref refusal and final policy state
|
|
68
|
+
|
|
69
|
+
The isolated mocked-GitHub fixture executed the production shared reconciler with
|
|
70
|
+
expected SHA `1111111111111111111111111111111111111111` and advanced live SHA
|
|
71
|
+
`2222222222222222222222222222222222222222`. It returned `refused` with reason
|
|
72
|
+
`live branch advanced after merge` and issued zero DELETE requests. The bounded
|
|
73
|
+
record is archived as `evidence/advanced-ref-refusal.json`.
|
|
74
|
+
|
|
75
|
+
The final read-only live report matched all declared repository settings, Actions
|
|
76
|
+
policy, security capabilities, environments, protected refs, complete rulesets, and
|
|
77
|
+
workflow inventory with zero differences. No policy apply was run.
|
package/package.json
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@timurproko/a1",
|
|
3
|
-
"version": "0.1.8-dev.
|
|
3
|
+
"version": "0.1.8-dev.402",
|
|
4
4
|
"description": "Standalone terminal workspace for supervised native and managed agents",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"privateLaunchContract": "neutral-launch-v1",
|
|
6
7
|
"packageManager": "npm@11.13.0",
|
|
7
8
|
"bin": {
|
|
8
9
|
"a1": "bin/cli.js"
|
|
9
10
|
},
|
|
10
11
|
"imports": {
|
|
11
|
-
"#pi-tui":
|
|
12
|
-
"./node_modules/@earendil-works/pi-coding-agent/node_modules/@earendil-works/pi-tui/dist/index.js",
|
|
13
|
-
"@earendil-works/pi-tui"
|
|
14
|
-
]
|
|
12
|
+
"#pi-tui": "./bin/pi-tui.js"
|
|
15
13
|
},
|
|
16
14
|
"files": [
|
|
17
15
|
"bin",
|
|
@@ -24,44 +22,59 @@
|
|
|
24
22
|
"node": ">=22.19.0 <25"
|
|
25
23
|
},
|
|
26
24
|
"scripts": {
|
|
25
|
+
"postinstall": "node bin/sync-pi-tui-proxy.js",
|
|
27
26
|
"clean": "node scripts/clean.mjs",
|
|
28
|
-
"build": "npm run clean && tsc -p tsconfig.build.json && node scripts/build-process-guardian.mjs",
|
|
29
|
-
"build:process-guardian": "node scripts/build-process-guardian.mjs",
|
|
27
|
+
"build": "npm run clean && tsc -p tsconfig.build.json && node scripts/development/build-process-guardian.mjs && node scripts/release/generate-runtime-payload-inventory.mjs",
|
|
28
|
+
"build:process-guardian": "node scripts/development/build-process-guardian.mjs",
|
|
30
29
|
"typecheck": "tsgo -p tsconfig.json --noEmit",
|
|
31
|
-
"check:architecture": "node scripts/check-architecture.mjs && node scripts/
|
|
32
|
-
"check:
|
|
33
|
-
"check:
|
|
30
|
+
"check:architecture": "node scripts/governance/check-architecture.mjs && node scripts/governance/check-product-identity-boundaries.mjs && node scripts/governance/check-package-identity.mjs && node scripts/governance/check-pinned-pi-source-ledger.mjs && node scripts/governance/check-terminal-host-provenance.mjs",
|
|
31
|
+
"check:names": "node scripts/governance/product-identifier-policy.mjs --check",
|
|
32
|
+
"check:names:changed": "node scripts/governance/product-identifier-policy.mjs --check --selection .artifacts/validation/impact.json",
|
|
33
|
+
"check:code-documentation": "node scripts/governance/check-code-documentation.mjs --mode full",
|
|
34
|
+
"check:code-documentation:changed": "node scripts/release/run-changed-documentation.mjs",
|
|
35
|
+
"select:validation-impact": "node scripts/release/select-validation-impact.mjs",
|
|
36
|
+
"check:customization-ready": "node scripts/governance/check-owned-ui-customization-prerequisites.mjs",
|
|
37
|
+
"check:deprecated": "node scripts/governance/check-deprecated-dependencies.mjs",
|
|
38
|
+
"check:docs-governance": "node scripts/governance/check-docs-governance.mjs",
|
|
39
|
+
"check:repository-governance": "node scripts/governance/check-github-repository-governance.mjs --check",
|
|
34
40
|
"branches:prune": "node scripts/prune-merged-branches.mjs",
|
|
35
41
|
"check": "npm run test:fast",
|
|
36
|
-
"
|
|
42
|
+
"develop": "node scripts/development/develop.mjs",
|
|
43
|
+
"release": "node scripts/release/release.mjs",
|
|
37
44
|
"test": "npm run test:fast",
|
|
38
|
-
"test:fast": "node scripts/run-validation-tier.mjs typecheck fast",
|
|
39
|
-
"test:scope": "node scripts/run-validation-tier.mjs",
|
|
40
|
-
"test:full": "node scripts/run-validation-tier.mjs full-release",
|
|
41
|
-
"test:release": "node scripts/run-release-gates.mjs",
|
|
42
|
-
"test:terminal-host": "node scripts/run-terminal-host-probe.mjs",
|
|
43
|
-
"test:pi-engine-conformance": "vitest run test/
|
|
44
|
-
"report:pi-engine-conformance": "npm run build --silent && node scripts/run-pi-engine-conformance.mjs",
|
|
45
|
+
"test:fast": "node scripts/release/run-validation-tier.mjs typecheck documentation-changed fast",
|
|
46
|
+
"test:scope": "node scripts/release/run-validation-tier.mjs",
|
|
47
|
+
"test:full": "node scripts/release/run-validation-tier.mjs full-release",
|
|
48
|
+
"test:release": "node scripts/release/run-release-gates.mjs",
|
|
49
|
+
"test:terminal-host": "node scripts/development/run-terminal-host-probe.mjs",
|
|
50
|
+
"test:pi-engine-conformance": "vitest run test/integrations/pi/engine/conformance.test.ts test/integrations/pi/engine/runtime-integration.test.ts test/integrations/pi/engine/session-integration.test.ts",
|
|
51
|
+
"report:pi-engine-conformance": "npm run build --silent && node scripts/pi/run-pi-engine-conformance.mjs",
|
|
52
|
+
"report:rendering-stability": "tsx scripts/pi/report-rendering-stability.ts",
|
|
53
|
+
"report:input-responsiveness": "tsx scripts/pi/report-input-responsiveness.ts",
|
|
45
54
|
"sync:pi-ui": "npm run update:pi-component-parity && npm run update:pi-event-frame-parity && npm run update:pi-settings-metadata",
|
|
46
|
-
"update:pi-component-parity": "tsx scripts/update-pi-component-parity.ts",
|
|
47
|
-
"update:pi-event-frame-parity": "tsx scripts/update-pi-event-frame-parity.ts",
|
|
48
|
-
"proof:terminal-host": "node scripts/run-terminal-host.mjs",
|
|
49
|
-
"start": "npm run build && node scripts/dev-launch.mjs",
|
|
50
|
-
"start:pi": "npm run build && node scripts/dev-launch.mjs pi",
|
|
51
|
-
"
|
|
52
|
-
"prepack": "node scripts/prepack-gate.mjs",
|
|
55
|
+
"update:pi-component-parity": "tsx scripts/pi/update-pi-component-parity.ts",
|
|
56
|
+
"update:pi-event-frame-parity": "tsx scripts/pi/update-pi-event-frame-parity.ts",
|
|
57
|
+
"proof:terminal-host": "node scripts/development/run-terminal-host.mjs",
|
|
58
|
+
"start": "npm run build && node scripts/development/dev-launch.mjs",
|
|
59
|
+
"start:pi": "npm run build && node scripts/development/dev-launch.mjs pi",
|
|
60
|
+
"prepack": "node scripts/release/prepack-gate.mjs",
|
|
53
61
|
"prepublishOnly": "npm run test:release",
|
|
54
62
|
"prepare": "npm run build",
|
|
55
|
-
"update:pi-settings-metadata": "node scripts/update-pi-settings-metadata.mjs"
|
|
63
|
+
"update:pi-settings-metadata": "node scripts/pi/update-pi-settings-metadata.mjs"
|
|
56
64
|
},
|
|
57
65
|
"dependencies": {
|
|
58
66
|
"@earendil-works/pi-coding-agent": "0.84.2",
|
|
59
67
|
"@earendil-works/pi-tui": "0.84.2",
|
|
68
|
+
"@silvia-odwyer/photon-node": "0.3.4",
|
|
69
|
+
"chalk": "5.6.2",
|
|
60
70
|
"cross-spawn": "7.0.6",
|
|
61
71
|
"grok-mermaid": "0.2.2",
|
|
62
|
-
"semver": "7.8.5"
|
|
72
|
+
"semver": "7.8.5",
|
|
73
|
+
"undici": "8.9.0"
|
|
63
74
|
},
|
|
64
75
|
"devDependencies": {
|
|
76
|
+
"@fission-ai/openspec": "1.11.0",
|
|
77
|
+
"@lezer/python": "1.1.19",
|
|
65
78
|
"@types/cross-spawn": "6.0.6",
|
|
66
79
|
"@types/node": "24.2.1",
|
|
67
80
|
"@types/semver": "7.8.0",
|
|
@@ -70,7 +83,8 @@
|
|
|
70
83
|
"node-pty": "1.1.0",
|
|
71
84
|
"tsx": "4.20.3",
|
|
72
85
|
"typescript": "5.9.2",
|
|
73
|
-
"vitest": "3.2.7"
|
|
86
|
+
"vitest": "3.2.7",
|
|
87
|
+
"yaml": "2.9.1"
|
|
74
88
|
},
|
|
75
89
|
"keywords": [
|
|
76
90
|
"cli",
|
|
@@ -87,5 +101,8 @@
|
|
|
87
101
|
},
|
|
88
102
|
"publishConfig": {
|
|
89
103
|
"access": "public"
|
|
104
|
+
},
|
|
105
|
+
"optionalDependencies": {
|
|
106
|
+
"@mariozechner/clipboard": "^0.3.9"
|
|
90
107
|
}
|
|
91
108
|
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `pi` and `sandbox` exist to compare A1 against pinned Pi and to try resources
|
|
3
|
-
* against an isolated profile. Both are development instruments rather than
|
|
4
|
-
* product, so a stable release does not carry them: what a released `a1` exposes
|
|
5
|
-
* is the product plus its maintenance and package commands.
|
|
6
|
-
*
|
|
7
|
-
* Which build this is comes from its own version. A prerelease version is a
|
|
8
|
-
* `next`-channel build, which is where that work happens; a release version is
|
|
9
|
-
* not. Nothing to configure, and no way for a released build to be talked into it.
|
|
10
|
-
*/
|
|
11
|
-
export interface CliCapabilities {
|
|
12
|
-
readonly developmentProfiles: boolean;
|
|
13
|
-
}
|
|
14
|
-
export declare function cliCapabilities(version: string): CliCapabilities;
|
|
15
|
-
export declare function isPrereleaseVersion(version: string): boolean;
|
package/dist/src/cli/dispatch.js
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { interactiveLaunchIntent } from "../features/launch/index.js";
|
|
2
|
-
import { PRODUCT_TEXT } from "../product-identity.js";
|
|
3
|
-
export function cliUsage(capabilities) {
|
|
4
|
-
return PRODUCT_TEXT.usage([
|
|
5
|
-
"",
|
|
6
|
-
...(capabilities.developmentProfiles ? ["pi", "sandbox"] : []),
|
|
7
|
-
"version",
|
|
8
|
-
"update [self|<source>|--extensions|--models]",
|
|
9
|
-
"update:next",
|
|
10
|
-
"update:<commit>",
|
|
11
|
-
"install <source>",
|
|
12
|
-
"remove <source>",
|
|
13
|
-
"list",
|
|
14
|
-
]);
|
|
15
|
-
}
|
|
16
|
-
const PROFILE_WORDS = new Set(["pi", "sandbox"]);
|
|
17
|
-
export async function dispatchCli(arguments_, handlers, output, capabilities) {
|
|
18
|
-
const command = parseCliCommand(arguments_, capabilities);
|
|
19
|
-
if (command.kind === "error") {
|
|
20
|
-
output.stderr(`${command.message}\n${cliUsage(capabilities)}\n`);
|
|
21
|
-
return 2;
|
|
22
|
-
}
|
|
23
|
-
if (command.kind === "launch")
|
|
24
|
-
return await handlers.launch(interactiveLaunchIntent(command.profileId));
|
|
25
|
-
if (command.kind === "version")
|
|
26
|
-
return await handlers.version();
|
|
27
|
-
if (command.kind === "packages")
|
|
28
|
-
return await handlers.packages(command.request);
|
|
29
|
-
return await handlers.update(command.channel, command.target);
|
|
30
|
-
}
|
|
31
|
-
export function parseCliCommand(arguments_, capabilities) {
|
|
32
|
-
if (arguments_.length === 0)
|
|
33
|
-
return { kind: "launch", profileId: "a1" };
|
|
34
|
-
const [command, ...rest] = arguments_;
|
|
35
|
-
if (capabilities.developmentProfiles && (command === "pi" || command === "sandbox")) {
|
|
36
|
-
return withoutArguments(rest, { kind: "launch", profileId: command });
|
|
37
|
-
}
|
|
38
|
-
if (command === "version")
|
|
39
|
-
return withoutArguments(rest, { kind: "version" });
|
|
40
|
-
if (command !== undefined && command.startsWith("update:"))
|
|
41
|
-
return parseColonUpdate(command.slice("update:".length), rest);
|
|
42
|
-
if (command === "update")
|
|
43
|
-
return parseUpdate(rest);
|
|
44
|
-
if (command === "install" || command === "remove" || command === "uninstall") {
|
|
45
|
-
return parseSourceCommand(command === "install" ? "install" : "remove", rest);
|
|
46
|
-
}
|
|
47
|
-
if (command === "list")
|
|
48
|
-
return withoutArguments(rest, { kind: "packages", request: { verb: "list", source: null } });
|
|
49
|
-
if (command === "ui")
|
|
50
|
-
return { kind: "error", message: `The ui subcommand was removed; run bare ${PRODUCT_TEXT.commandName} for the owned UI.` };
|
|
51
|
-
if (command === "agent")
|
|
52
|
-
return { kind: "error", message: `Bare ${PRODUCT_TEXT.commandName} is the ${PRODUCT_TEXT.displayName} agent experience; there is no agent subcommand.` };
|
|
53
|
-
return { kind: "error", message: PRODUCT_TEXT.diagnostic(`received an unknown command: ${command ?? ""}`) };
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* What follows the colon says which build to move to. `next` is the newest
|
|
57
|
-
* preview; anything else names one outright, by the commit it was built from or by
|
|
58
|
-
* its full version — a preview is published as `<version>-dev.<commit>`, so the
|
|
59
|
-
* commit alone is enough to find it.
|
|
60
|
-
*/
|
|
61
|
-
function parseColonUpdate(suffix, rest) {
|
|
62
|
-
if (rest.length > 0)
|
|
63
|
-
return { kind: "error", message: PRODUCT_TEXT.diagnostic("update takes what to move to after the colon, and nothing else.") };
|
|
64
|
-
if (suffix === "next")
|
|
65
|
-
return { kind: "update", channel: "next" };
|
|
66
|
-
if (suffix.length === 0)
|
|
67
|
-
return { kind: "error", message: PRODUCT_TEXT.diagnostic(`update: needs a preview after the colon, as in ${PRODUCT_TEXT.commandName} update:next.`) };
|
|
68
|
-
if (!/^[0-9a-z][0-9a-z.+-]*$/i.test(suffix)) {
|
|
69
|
-
return { kind: "error", message: PRODUCT_TEXT.diagnostic(`received an unusable preview: ${suffix}`) };
|
|
70
|
-
}
|
|
71
|
-
return { kind: "update", channel: "next", target: suffix };
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* `update` carries both meanings pinned Pi gives it: itself by default, and the
|
|
75
|
-
* profile's packages when a target says so. Pi is refused as a target because A1
|
|
76
|
-
* certifies each release against one pinned Pi, so moving Pi underneath it would
|
|
77
|
-
* invalidate what was certified.
|
|
78
|
-
*/
|
|
79
|
-
function parseUpdate(rest) {
|
|
80
|
-
if (rest.length === 0)
|
|
81
|
-
return { kind: "update", channel: "stable" };
|
|
82
|
-
if (rest.length > 1)
|
|
83
|
-
return { kind: "error", message: PRODUCT_TEXT.diagnostic("update accepts one target.") };
|
|
84
|
-
const [target] = rest;
|
|
85
|
-
if (target === "self")
|
|
86
|
-
return { kind: "update", channel: "stable" };
|
|
87
|
-
if (target === "pi") {
|
|
88
|
-
return {
|
|
89
|
-
kind: "error",
|
|
90
|
-
message: PRODUCT_TEXT.diagnostic(`pins the Pi version it was certified against; run ${PRODUCT_TEXT.commandName} update to move ${PRODUCT_TEXT.displayName} itself.`),
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
// A release channel is spelled with the colon. Taking the bare word as a package
|
|
94
|
-
// source would turn a near miss into a confident search for a package nobody has.
|
|
95
|
-
if (target === "next" || target === "stable") {
|
|
96
|
-
const form = target === "next" ? `${PRODUCT_TEXT.commandName} update:next` : `${PRODUCT_TEXT.commandName} update`;
|
|
97
|
-
return { kind: "error", message: PRODUCT_TEXT.diagnostic(`selects a release channel with a colon; run ${form}.`) };
|
|
98
|
-
}
|
|
99
|
-
if (target === "--extensions")
|
|
100
|
-
return { kind: "packages", request: { verb: "update", source: null } };
|
|
101
|
-
if (target === "--models")
|
|
102
|
-
return { kind: "packages", request: { verb: "refresh-models", source: null } };
|
|
103
|
-
if (target === undefined || target.startsWith("-"))
|
|
104
|
-
return unknownOption(target ?? "", "update");
|
|
105
|
-
if (PROFILE_WORDS.has(target))
|
|
106
|
-
return profileRejection("update");
|
|
107
|
-
return { kind: "packages", request: { verb: "update", source: target } };
|
|
108
|
-
}
|
|
109
|
-
function parseSourceCommand(verb, rest) {
|
|
110
|
-
const flag = rest.find(argument => argument.startsWith("-"));
|
|
111
|
-
if (flag !== undefined)
|
|
112
|
-
return unknownOption(flag, verb);
|
|
113
|
-
if (rest.length === 0)
|
|
114
|
-
return { kind: "error", message: PRODUCT_TEXT.diagnostic(`${verb} requires a package source.`) };
|
|
115
|
-
if (rest.length > 1)
|
|
116
|
-
return { kind: "error", message: PRODUCT_TEXT.diagnostic(`${verb} accepts one package source.`) };
|
|
117
|
-
const [source] = rest;
|
|
118
|
-
if (source === undefined)
|
|
119
|
-
return { kind: "error", message: PRODUCT_TEXT.diagnostic(`${verb} requires a package source.`) };
|
|
120
|
-
if (PROFILE_WORDS.has(source))
|
|
121
|
-
return profileRejection(verb);
|
|
122
|
-
return { kind: "packages", request: { verb, source } };
|
|
123
|
-
}
|
|
124
|
-
function withoutArguments(rest, command) {
|
|
125
|
-
if (rest.length === 0)
|
|
126
|
-
return command;
|
|
127
|
-
const [argument] = rest;
|
|
128
|
-
if (argument !== undefined && (PROFILE_WORDS.has(argument) || argument.startsWith("--profile")))
|
|
129
|
-
return profileRejection("list");
|
|
130
|
-
return { kind: "error", message: PRODUCT_TEXT.diagnostic("commands do not accept additional arguments.") };
|
|
131
|
-
}
|
|
132
|
-
function profileRejection(verb) {
|
|
133
|
-
return {
|
|
134
|
-
kind: "error",
|
|
135
|
-
message: PRODUCT_TEXT.diagnostic(`manages packages in its own profile, so ${verb} takes no profile; Pi manages Pi's own profile.`),
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
function unknownOption(option, verb) {
|
|
139
|
-
if (option.startsWith("--profile"))
|
|
140
|
-
return profileRejection(verb);
|
|
141
|
-
return { kind: "error", message: PRODUCT_TEXT.diagnostic(`received an unknown option for ${verb}: ${option}`) };
|
|
142
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
|
-
import { readFile } from "node:fs/promises";
|
|
3
|
-
import { resolve } from "node:path";
|
|
4
|
-
import crossSpawn from "cross-spawn";
|
|
5
|
-
import { valid as validSemver } from "semver";
|
|
6
|
-
import { PRODUCT_TEXT } from "../product-identity.js";
|
|
7
|
-
const defaultOutput = {
|
|
8
|
-
stdout(message) { process.stdout.write(message); },
|
|
9
|
-
stderr(message) { process.stderr.write(message); },
|
|
10
|
-
};
|
|
11
|
-
export async function runVersionStats(options) {
|
|
12
|
-
const output = options.output ?? defaultOutput;
|
|
13
|
-
const runner = options.runner ?? createVersionProcessRunner();
|
|
14
|
-
let installed;
|
|
15
|
-
try {
|
|
16
|
-
const manifest = JSON.parse(await readFile(resolve(options.packageRoot, "package.json"), "utf8"));
|
|
17
|
-
installed = parseVersion(manifest.version, "installed package");
|
|
18
|
-
}
|
|
19
|
-
catch (error) {
|
|
20
|
-
output.stderr(`${PRODUCT_TEXT.diagnostic(`could not read its installed version: ${message(error)}`)}\n`);
|
|
21
|
-
return 1;
|
|
22
|
-
}
|
|
23
|
-
const remote = await queryDistTags(runner);
|
|
24
|
-
output.stdout(`Installed: ${installed}\nRelease: ${remote.release ?? "unavailable"}\nNext: ${remote.next ?? "unavailable"}\n`);
|
|
25
|
-
if (remote.error)
|
|
26
|
-
output.stderr(`${PRODUCT_TEXT.diagnostic(`could not resolve npm dist-tags: ${remote.error}`)}\n`);
|
|
27
|
-
return 0;
|
|
28
|
-
}
|
|
29
|
-
async function queryDistTags(runner) {
|
|
30
|
-
let result;
|
|
31
|
-
try {
|
|
32
|
-
result = await runner("npm", ["view", PRODUCT_TEXT.packageName, "dist-tags", "--json"]);
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
return unavailable(message(error));
|
|
36
|
-
}
|
|
37
|
-
if (result.code !== 0)
|
|
38
|
-
return unavailable(`npm exited with status ${result.code ?? "unknown"}`);
|
|
39
|
-
try {
|
|
40
|
-
const metadata = JSON.parse(result.stdout);
|
|
41
|
-
if (typeof metadata !== "object" || metadata === null || Array.isArray(metadata))
|
|
42
|
-
throw new TypeError("npm returned a non-object dist-tags value");
|
|
43
|
-
const tags = metadata;
|
|
44
|
-
const release = parseVersion(tags.latest, "npm latest");
|
|
45
|
-
const next = tags.next === undefined ? null : parseVersion(tags.next, "npm next");
|
|
46
|
-
return { release, next, error: null };
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
return unavailable(message(error));
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
function unavailable(error) {
|
|
53
|
-
return { release: null, next: null, error };
|
|
54
|
-
}
|
|
55
|
-
function createVersionProcessRunner() {
|
|
56
|
-
return async (command, arguments_) => await new Promise((resolvePromise, rejectPromise) => {
|
|
57
|
-
const child = process.platform === "win32"
|
|
58
|
-
? crossSpawn(command, [...arguments_], { stdio: ["ignore", "pipe", "ignore"] })
|
|
59
|
-
: spawn(command, [...arguments_], { stdio: ["ignore", "pipe", "ignore"] });
|
|
60
|
-
const stdout = [];
|
|
61
|
-
child.stdout?.on("data", chunk => stdout.push(Buffer.from(chunk)));
|
|
62
|
-
child.once("error", rejectPromise);
|
|
63
|
-
child.once("close", code => resolvePromise({ code, stdout: Buffer.concat(stdout).toString("utf8") }));
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
function parseVersion(value, source) {
|
|
67
|
-
const parsed = typeof value === "string" ? validSemver(value) : null;
|
|
68
|
-
if (!parsed)
|
|
69
|
-
throw new Error(`${source} did not provide a valid semantic version`);
|
|
70
|
-
return parsed;
|
|
71
|
-
}
|
|
72
|
-
function message(error) { return error instanceof Error ? error.message : String(error); }
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { type AgentEnginePort } from "../foundation/agent-engine-contracts/index.js";
|
|
2
|
-
import { type PiEngineAdapter } from "../foundation/pi-engine-adapter/index.js";
|
|
3
|
-
import { type OwnedUiApplicationPort, type PresentationComponentPort, type PresentationRuntimePort, type PresentationTerminalPort } from "../foundation/presentation-contracts/index.js";
|
|
4
|
-
import { OwnedUiSettingsSession } from "../foundation/owned-ui-settings/index.js";
|
|
5
|
-
import type { UiRouteHost } from "../foundation/pi-owned-ui-integration/index.js";
|
|
6
|
-
export interface ProcessCompositionOptions {
|
|
7
|
-
readonly cwd?: string;
|
|
8
|
-
readonly sessionId?: string;
|
|
9
|
-
readonly engine?: AgentEnginePort;
|
|
10
|
-
readonly presentationFactory?: (root: PresentationComponentPort, terminal: PresentationTerminalPort) => PresentationRuntimePort;
|
|
11
|
-
readonly createPiAdapter?: () => Promise<PiEngineAdapter>;
|
|
12
|
-
}
|
|
13
|
-
export interface OwnedUiCompositionOptions {
|
|
14
|
-
readonly cwd?: string;
|
|
15
|
-
readonly terminal?: PresentationTerminalPort;
|
|
16
|
-
readonly createPiAdapter?: () => Promise<PiEngineAdapter>;
|
|
17
|
-
/**
|
|
18
|
-
* A1 profile whose settings this session reads and writes. Omitted keeps the
|
|
19
|
-
* session settings-free, which is what the pinned comparison paths use.
|
|
20
|
-
*/
|
|
21
|
-
readonly profileId?: string;
|
|
22
|
-
/**
|
|
23
|
-
* Whether A1's own surfaces are reachable. Withheld for the rendering parity
|
|
24
|
-
* comparison, which measures this composition against pinned Pi and so must
|
|
25
|
-
* present Pi's interface and nothing of A1's own. It is the same composition
|
|
26
|
-
* either way: a parity run built beside the product would measure itself.
|
|
27
|
-
*/
|
|
28
|
-
readonly ownedSurfaces?: "on" | "off";
|
|
29
|
-
}
|
|
30
|
-
export interface OwnedUiComposition {
|
|
31
|
-
readonly application: OwnedUiApplicationPort;
|
|
32
|
-
/** Present when a profile was supplied, so the caller can resolve settings before start. */
|
|
33
|
-
readonly settings: OwnedUiSettingsSession | null;
|
|
34
|
-
}
|
|
35
|
-
export declare function composeOwnedUiApplication(options?: OwnedUiCompositionOptions): Promise<OwnedUiApplicationPort>;
|
|
36
|
-
export declare function composeOwnedUi(options?: OwnedUiCompositionOptions): Promise<OwnedUiComposition>;
|
|
37
|
-
export interface ProcessComposition {
|
|
38
|
-
readonly engine: AgentEnginePort;
|
|
39
|
-
createPresentation(root: PresentationComponentPort, terminal: PresentationTerminalPort): PresentationRuntimePort;
|
|
40
|
-
dispose(): Promise<void>;
|
|
41
|
-
}
|
|
42
|
-
export declare function composeProcess(options?: ProcessCompositionOptions): Promise<ProcessComposition>;
|
|
43
|
-
/**
|
|
44
|
-
* Registers the A1-owned screens and adapts the app host to the shell's route
|
|
45
|
-
* seam. The shell mounts whatever surface it is handed and forwards keys; it
|
|
46
|
-
* never learns what an app is.
|
|
47
|
-
*/
|
|
48
|
-
export declare function createOwnedRouteHost(settings: OwnedUiSettingsSession): UiRouteHost;
|