@timurproko/a1 0.1.8-dev.50ebb19 → 0.1.8-dev.510
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 +209 -63
- 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 +37 -0
- package/dist/app/session-shell/prompt-suggestion-controller.js +219 -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 +275 -0
- package/dist/app/session-shell/session-shell-root.js +1376 -0
- package/dist/app/session-shell/session-shell.d.ts +66 -0
- package/dist/app/session-shell/session-shell.js +2116 -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 +154 -0
- package/dist/composition/settings-route-host.d.ts +20 -0
- package/dist/composition/settings-route-host.js +141 -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 +374 -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 +9 -0
- package/dist/features/owned-ui/index.js +6 -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/reference-routes.d.ts +6 -0
- package/dist/features/owned-ui/reference-routes.js +6 -0
- package/dist/features/owned-ui/reference-screen-app.d.ts +37 -0
- package/dist/features/owned-ui/reference-screen-app.js +232 -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 +802 -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 +23 -0
- package/dist/integrations/pi/components/index.js +14 -0
- package/dist/integrations/pi/components/models-dialog.d.ts +55 -0
- package/dist/integrations/pi/components/models-dialog.js +310 -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.d.ts +21 -0
- package/dist/integrations/pi/components/shell-editor-autocomplete.js +322 -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 +249 -0
- package/dist/integrations/pi/components/shell-presenters-info.d.ts +53 -0
- package/dist/integrations/pi/components/shell-presenters-info.js +134 -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 +133 -0
- package/dist/integrations/pi/components/shell-selectors-dialogs.js +255 -0
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +225 -0
- package/dist/integrations/pi/components/shell-shared-facade.js +92 -0
- package/dist/integrations/pi/components/skills-command.d.ts +47 -0
- package/dist/integrations/pi/components/skills-command.js +118 -0
- package/dist/integrations/pi/components/skills-dialog.d.ts +9 -0
- package/dist/integrations/pi/components/skills-dialog.js +112 -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 +52 -0
- package/dist/integrations/pi/components/upstream/components/owned-editor.js +222 -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 +139 -0
- package/dist/integrations/pi/engine/adapter.js +660 -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 +50 -0
- package/dist/integrations/pi/engine/resource-catalog.js +299 -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 +66 -0
- package/dist/integrations/pi/engine/workflow-contexts.js +360 -0
- package/dist/integrations/pi/engine/workflow-runner.d.ts +60 -0
- package/dist/integrations/pi/engine/workflow-runner.js +533 -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 +275 -0
- package/dist/integrations/pi/engine/workflows.js +71 -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 +72 -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 +127 -0
- package/dist/ui/settings/declarations.js +124 -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 +92 -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 +61 -6
- package/docs/ci-release-runbook.md +256 -79
- package/docs/features/launch-profiles.md +24 -17
- package/docs/features/modal-content-interaction.md +38 -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.d.ts +0 -11
- 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}/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
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
|
+
import { posix } from "node:path";
|
|
4
|
+
const REPOSITORY = "https://github.com/earendil-works/pi";
|
|
5
|
+
export async function readPinnedCommandChangelog(sinceVersion) {
|
|
6
|
+
const path = new URL("./resources/changelog.json", import.meta.url);
|
|
7
|
+
if (!existsSync(path))
|
|
8
|
+
return sinceVersion === undefined ? "No changelog entries found." : "";
|
|
9
|
+
try {
|
|
10
|
+
const resource = JSON.parse(await readFile(path, "utf8"));
|
|
11
|
+
if (!resource || typeof resource !== "object" || !("data" in resource) || typeof resource.data !== "string")
|
|
12
|
+
throw new TypeError("Invalid owned changelog resource");
|
|
13
|
+
const markdown = resource.data;
|
|
14
|
+
return formatPinnedCommandChangelog(markdown, sinceVersion);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
// Compatibility: Pi's data-file parser reports a warning and supplies an empty changelog.
|
|
18
|
+
console.error(`Warning: Could not parse changelog: ${error}`);
|
|
19
|
+
return sinceVersion === undefined ? "No changelog entries found." : "";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export function formatPinnedCommandChangelog(content, sinceVersion) {
|
|
23
|
+
// Provenance: behavior follows Pi 0.84.2 utils/changelog.ts at 914cf1472e715297caa30db4b9535d534a9eb718.
|
|
24
|
+
// Runtime reads only the owned data resource; maintenance tooling verifies its pinned provenance.
|
|
25
|
+
let releases = content.split(/(?=^## )/m).flatMap((section) => {
|
|
26
|
+
const version = /^##\s+\[?(\d+)\.(\d+)\.(\d+)\]?/.exec(section);
|
|
27
|
+
return version ? [{ version: version.slice(1).map(Number), markdown: section.trim() }] : [];
|
|
28
|
+
});
|
|
29
|
+
if (sinceVersion !== undefined) {
|
|
30
|
+
const previous = sinceVersion.split(".").map(value => Number(value) || 0);
|
|
31
|
+
releases = releases.filter(release => {
|
|
32
|
+
for (let index = 0; index < 3; index++) {
|
|
33
|
+
const difference = release.version[index] - (previous[index] ?? 0);
|
|
34
|
+
if (difference !== 0)
|
|
35
|
+
return difference > 0;
|
|
36
|
+
}
|
|
37
|
+
return false;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
else
|
|
41
|
+
releases.reverse();
|
|
42
|
+
if (releases.length === 0)
|
|
43
|
+
return sinceVersion === undefined ? "No changelog entries found." : "";
|
|
44
|
+
return releases.map(release => release.markdown.replace(/(!?\[[^\]\n]+\]\()([^\s)]+)((?:\s+[^)]*)?\))/g, (_match, prefix, target, suffix) => `${prefix}${releaseLink(target, `v${release.version.join(".")}`)}${suffix}`)).join("\n\n");
|
|
45
|
+
}
|
|
46
|
+
function releaseLink(target, tag) {
|
|
47
|
+
const canonical = target
|
|
48
|
+
.replace(/^https:\/\/github\.com\/(?:badlogic|earendil-works)\/pi-mono(?=\/|$)/, REPOSITORY)
|
|
49
|
+
.replace(/^(https:\/\/github\.com\/earendil-works\/pi\/(?:blob|tree)\/)(?:main|master)\//, `$1${tag}/`);
|
|
50
|
+
if (/^(?:#|\/\/|[a-z][a-z0-9+.-]*:)/i.test(canonical))
|
|
51
|
+
return canonical;
|
|
52
|
+
const boundary = canonical.search(/[?#]/);
|
|
53
|
+
const path = boundary === -1 ? canonical : canonical.slice(0, boundary);
|
|
54
|
+
const suffix = boundary === -1 ? "" : canonical.slice(boundary);
|
|
55
|
+
if (!path)
|
|
56
|
+
return canonical;
|
|
57
|
+
const normalized = path.replaceAll("\\", "/");
|
|
58
|
+
const repositoryPath = posix.normalize(normalized.startsWith("/") ? normalized.replace(/^\/+/, "") : posix.join("packages/coding-agent", normalized));
|
|
59
|
+
if (repositoryPath === "." || repositoryPath === ".." || repositoryPath.startsWith("../"))
|
|
60
|
+
return canonical;
|
|
61
|
+
const route = path.endsWith("/") || !posix.basename(repositoryPath).includes(".") ? "tree" : "blob";
|
|
62
|
+
return `${REPOSITORY}/${route}/${tag}/${encodeURI(repositoryPath)}${suffix}`;
|
|
63
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type OwnedUiCommand, type OwnedUiCommandOutcome, type OwnedUiDiagnostics } from "../../../contracts/owned-ui/index.js";
|
|
2
|
+
import type { PiEmittedEvent } from "./event-delivery.js";
|
|
3
|
+
export interface AdapterCommandResult {
|
|
4
|
+
readonly outcome: OwnedUiCommandOutcome;
|
|
5
|
+
readonly diagnostic: string | null;
|
|
6
|
+
}
|
|
7
|
+
export interface PiCommandDispatchPorts {
|
|
8
|
+
sessionId(): string;
|
|
9
|
+
/** True before the runtime and session exist or after disposal: commands are rejected, not queued. */
|
|
10
|
+
notRunning(): boolean;
|
|
11
|
+
/** True while delivery is overloaded or admission is stopped. */
|
|
12
|
+
admissionStopped(): boolean;
|
|
13
|
+
/** Workflows currently admitted; they share the admission budget with commands. */
|
|
14
|
+
pendingWorkflowCount(): number;
|
|
15
|
+
sessionGeneration(): number;
|
|
16
|
+
beginRunning(): void;
|
|
17
|
+
endRunning(): void;
|
|
18
|
+
/** Carry out one admitted command against the engine; a throw becomes a failed outcome. */
|
|
19
|
+
perform(command: OwnedUiCommand): Promise<void>;
|
|
20
|
+
emit(value: PiEmittedEvent): void;
|
|
21
|
+
emitView(): void;
|
|
22
|
+
diagnostic(severity: OwnedUiDiagnostics["severity"], code: string, message: string, recoverable: boolean): void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Admission and settlement of owned UI commands: the accepted/completed/failed/rejected outcome
|
|
26
|
+
* events, the bounded pending set with its out-of-band cancellation slot per command, the active
|
|
27
|
+
* ids the view reports, and the remembered results that make a retried correlation id idempotent.
|
|
28
|
+
* What a command does to the engine is the adapter's `perform` port.
|
|
29
|
+
*/
|
|
30
|
+
export declare class PiCommandDispatch {
|
|
31
|
+
#private;
|
|
32
|
+
constructor(ports: PiCommandDispatchPorts);
|
|
33
|
+
get activeCommandIds(): readonly string[];
|
|
34
|
+
get pendingCount(): number;
|
|
35
|
+
isPending(correlationId: string): boolean;
|
|
36
|
+
/** Resolve every admitted command as failed, except the listed types. */
|
|
37
|
+
cancelPending(except?: readonly OwnedUiCommand["type"][]): void;
|
|
38
|
+
/** Forget active ids and remembered results; a new session binding cannot inherit them. */
|
|
39
|
+
reset(): void;
|
|
40
|
+
execute(command: OwnedUiCommand): Promise<AdapterCommandResult>;
|
|
41
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { assertOwnedUiCommand } from "../../../contracts/owned-ui/index.js";
|
|
2
|
+
/** How many commands and workflows may be admitted together before new work is rejected. */
|
|
3
|
+
const MAX_PENDING_WORK = 32;
|
|
4
|
+
/** Completed results remembered so a retried correlation id gets its original outcome. */
|
|
5
|
+
const MAX_COMPLETED_COMMANDS = 256;
|
|
6
|
+
/**
|
|
7
|
+
* Admission and settlement of owned UI commands: the accepted/completed/failed/rejected outcome
|
|
8
|
+
* events, the bounded pending set with its out-of-band cancellation slot per command, the active
|
|
9
|
+
* ids the view reports, and the remembered results that make a retried correlation id idempotent.
|
|
10
|
+
* What a command does to the engine is the adapter's `perform` port.
|
|
11
|
+
*/
|
|
12
|
+
export class PiCommandDispatch {
|
|
13
|
+
#ports;
|
|
14
|
+
#activeCommandIds = [];
|
|
15
|
+
#completedCommands = new Map();
|
|
16
|
+
#pendingCommands = new Map();
|
|
17
|
+
constructor(ports) {
|
|
18
|
+
this.#ports = ports;
|
|
19
|
+
}
|
|
20
|
+
get activeCommandIds() {
|
|
21
|
+
return this.#activeCommandIds;
|
|
22
|
+
}
|
|
23
|
+
get pendingCount() {
|
|
24
|
+
return this.#pendingCommands.size;
|
|
25
|
+
}
|
|
26
|
+
isPending(correlationId) {
|
|
27
|
+
return this.#pendingCommands.has(correlationId);
|
|
28
|
+
}
|
|
29
|
+
/** Resolve every admitted command as failed, except the listed types. */
|
|
30
|
+
cancelPending(except = []) {
|
|
31
|
+
for (const pending of this.#pendingCommands.values())
|
|
32
|
+
if (!except.includes(pending.type))
|
|
33
|
+
pending.cancel();
|
|
34
|
+
}
|
|
35
|
+
/** Forget active ids and remembered results; a new session binding cannot inherit them. */
|
|
36
|
+
reset() {
|
|
37
|
+
this.#activeCommandIds = [];
|
|
38
|
+
this.#completedCommands.clear();
|
|
39
|
+
}
|
|
40
|
+
async execute(command) {
|
|
41
|
+
assertOwnedUiCommand(command);
|
|
42
|
+
if (command.sessionId !== this.#ports.sessionId()) {
|
|
43
|
+
return this.#finishCommand(command, "rejected", "command targets a different owned session");
|
|
44
|
+
}
|
|
45
|
+
if (this.#ports.notRunning()) {
|
|
46
|
+
return this.#finishCommand(command, "rejected", "engine adapter is not running");
|
|
47
|
+
}
|
|
48
|
+
// Invariant: the bounded out-of-band cancellation path has one slot per admitted command.
|
|
49
|
+
if (this.#ports.admissionStopped() || this.#pendingCommands.size + this.#ports.pendingWorkflowCount() >= MAX_PENDING_WORK)
|
|
50
|
+
return { outcome: "rejected", diagnostic: null };
|
|
51
|
+
const existing = this.#completedCommands.get(command.correlationId);
|
|
52
|
+
if (existing)
|
|
53
|
+
return existing;
|
|
54
|
+
if (this.#activeCommandIds.includes(command.correlationId)) {
|
|
55
|
+
return this.#finishCommand(command, "rejected", "duplicate engine command correlation id");
|
|
56
|
+
}
|
|
57
|
+
this.#activeCommandIds.push(command.correlationId);
|
|
58
|
+
const generation = this.#ports.sessionGeneration();
|
|
59
|
+
let cancelled = false;
|
|
60
|
+
const cancellation = new Promise(resolve => {
|
|
61
|
+
this.#pendingCommands.set(command.correlationId, { type: command.type, cancel: () => {
|
|
62
|
+
if (cancelled)
|
|
63
|
+
return;
|
|
64
|
+
cancelled = true;
|
|
65
|
+
resolve(this.#recordCommand(command, "failed", null));
|
|
66
|
+
} });
|
|
67
|
+
});
|
|
68
|
+
this.#ports.emit({ type: "command-outcome", correlationId: command.correlationId, outcome: "accepted", diagnostic: null });
|
|
69
|
+
const operation = async () => {
|
|
70
|
+
try {
|
|
71
|
+
if (cancelled)
|
|
72
|
+
return { outcome: "failed", diagnostic: null };
|
|
73
|
+
this.#ports.beginRunning();
|
|
74
|
+
try {
|
|
75
|
+
await this.#ports.perform(command);
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
this.#ports.endRunning();
|
|
79
|
+
}
|
|
80
|
+
if (cancelled)
|
|
81
|
+
return { outcome: "failed", diagnostic: null };
|
|
82
|
+
if (generation === this.#ports.sessionGeneration())
|
|
83
|
+
this.#ports.emitView();
|
|
84
|
+
if (cancelled)
|
|
85
|
+
return { outcome: "failed", diagnostic: null };
|
|
86
|
+
return this.#recordCommand(command, "completed", null);
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
if (cancelled)
|
|
90
|
+
return { outcome: "failed", diagnostic: null };
|
|
91
|
+
const diagnostic = error instanceof Error ? error.message : String(error);
|
|
92
|
+
this.#ports.diagnostic("error", "engine-command", diagnostic, true);
|
|
93
|
+
if (generation === this.#ports.sessionGeneration())
|
|
94
|
+
this.#ports.emitView();
|
|
95
|
+
return this.#recordCommand(command, "failed", diagnostic);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
try {
|
|
99
|
+
return await Promise.race([operation(), cancellation]);
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
this.#pendingCommands.delete(command.correlationId);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
#recordCommand(command, outcome, diagnostic) {
|
|
106
|
+
const result = this.#finishCommand(command, outcome, diagnostic);
|
|
107
|
+
this.#completedCommands.set(command.correlationId, result);
|
|
108
|
+
if (this.#completedCommands.size > MAX_COMPLETED_COMMANDS) {
|
|
109
|
+
const oldest = this.#completedCommands.keys().next().value;
|
|
110
|
+
if (oldest)
|
|
111
|
+
this.#completedCommands.delete(oldest);
|
|
112
|
+
}
|
|
113
|
+
return result;
|
|
114
|
+
}
|
|
115
|
+
#finishCommand(command, outcome, diagnostic) {
|
|
116
|
+
this.#activeCommandIds = this.#activeCommandIds.filter(id => id !== command.correlationId);
|
|
117
|
+
this.#ports.emit({
|
|
118
|
+
type: "command-outcome",
|
|
119
|
+
correlationId: command.correlationId,
|
|
120
|
+
outcome,
|
|
121
|
+
diagnostic,
|
|
122
|
+
});
|
|
123
|
+
return { outcome, diagnostic };
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Expected summary size for a first compaction, when no previous summary on the branch can serve as the estimate. */
|
|
2
|
+
export declare const DEFAULT_EXPECTED_COMPACTION_SUMMARY_CHARS = 4000;
|
|
3
|
+
/** The public session surface compaction progress reads: the agent's stream function and the branch entries. */
|
|
4
|
+
export interface CompactionProgressSession {
|
|
5
|
+
readonly agent?: {
|
|
6
|
+
streamFunction?: unknown;
|
|
7
|
+
} | undefined;
|
|
8
|
+
readonly sessionManager?: {
|
|
9
|
+
getBranch?(): readonly unknown[];
|
|
10
|
+
} | undefined;
|
|
11
|
+
}
|
|
12
|
+
export interface CompactionProgressObserver {
|
|
13
|
+
/** Marks `compaction_start`: resets the streamed count and captures the expected summary size. */
|
|
14
|
+
begin(): void;
|
|
15
|
+
/** Marks `compaction_end`: later stream chunks are ignored. */
|
|
16
|
+
end(): void;
|
|
17
|
+
/** Restores the original stream function; the observer reports nothing afterwards. */
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Observes the summarization stream of a compaction through the session agent's public stream
|
|
22
|
+
* function and reports an estimated integer percent. Pi never iterates that stream itself (it
|
|
23
|
+
* reads only its final result), so the observer iterates it in the background between
|
|
24
|
+
* `begin()` and `end()` and returns the same stream object to Pi. Outside that window the
|
|
25
|
+
* wrapper is a pass-through. Returns null when the agent exposes no callable stream function,
|
|
26
|
+
* in which case compaction proceeds without progress.
|
|
27
|
+
*/
|
|
28
|
+
export declare function observeCompactionProgress(session: CompactionProgressSession, onProgress: (percent: number) => void): CompactionProgressObserver | null;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/** Expected summary size for a first compaction, when no previous summary on the branch can serve as the estimate. */
|
|
2
|
+
export const DEFAULT_EXPECTED_COMPACTION_SUMMARY_CHARS = 4000;
|
|
3
|
+
/** The percent shown while a compaction is still running never reaches this value. */
|
|
4
|
+
const MAX_RUNNING_PERCENT = 99;
|
|
5
|
+
/**
|
|
6
|
+
* Observes the summarization stream of a compaction through the session agent's public stream
|
|
7
|
+
* function and reports an estimated integer percent. Pi never iterates that stream itself (it
|
|
8
|
+
* reads only its final result), so the observer iterates it in the background between
|
|
9
|
+
* `begin()` and `end()` and returns the same stream object to Pi. Outside that window the
|
|
10
|
+
* wrapper is a pass-through. Returns null when the agent exposes no callable stream function,
|
|
11
|
+
* in which case compaction proceeds without progress.
|
|
12
|
+
*/
|
|
13
|
+
export function observeCompactionProgress(session, onProgress) {
|
|
14
|
+
const agent = session.agent;
|
|
15
|
+
if (agent === undefined || typeof agent.streamFunction !== "function")
|
|
16
|
+
return null;
|
|
17
|
+
const original = agent.streamFunction;
|
|
18
|
+
let active = false;
|
|
19
|
+
let disposed = false;
|
|
20
|
+
let generation = 0;
|
|
21
|
+
let streamed = 0;
|
|
22
|
+
let expected = DEFAULT_EXPECTED_COMPACTION_SUMMARY_CHARS;
|
|
23
|
+
let reported = null;
|
|
24
|
+
const report = () => {
|
|
25
|
+
const percent = Math.min(MAX_RUNNING_PERCENT, Math.floor((100 * streamed) / expected));
|
|
26
|
+
if (percent === reported)
|
|
27
|
+
return;
|
|
28
|
+
reported = percent;
|
|
29
|
+
onProgress(percent);
|
|
30
|
+
};
|
|
31
|
+
const wrapped = async (model, context, options) => {
|
|
32
|
+
const stream = await original(model, context, options);
|
|
33
|
+
if (!active || disposed)
|
|
34
|
+
return stream;
|
|
35
|
+
const observed = generation;
|
|
36
|
+
void (async () => {
|
|
37
|
+
report();
|
|
38
|
+
// Invariant: observation never affects the request; a stream that cannot be iterated ends observation only.
|
|
39
|
+
try {
|
|
40
|
+
for await (const event of stream) {
|
|
41
|
+
if (observed !== generation || !active)
|
|
42
|
+
return;
|
|
43
|
+
if (event.type === "text_delta") {
|
|
44
|
+
streamed += event.delta.length;
|
|
45
|
+
report();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
})();
|
|
53
|
+
return stream;
|
|
54
|
+
};
|
|
55
|
+
agent.streamFunction = wrapped;
|
|
56
|
+
return {
|
|
57
|
+
begin() {
|
|
58
|
+
generation += 1;
|
|
59
|
+
streamed = 0;
|
|
60
|
+
reported = null;
|
|
61
|
+
expected = latestCompactionSummaryLength(session) ?? DEFAULT_EXPECTED_COMPACTION_SUMMARY_CHARS;
|
|
62
|
+
active = true;
|
|
63
|
+
},
|
|
64
|
+
end() {
|
|
65
|
+
active = false;
|
|
66
|
+
generation += 1;
|
|
67
|
+
},
|
|
68
|
+
dispose() {
|
|
69
|
+
if (disposed)
|
|
70
|
+
return;
|
|
71
|
+
disposed = true;
|
|
72
|
+
active = false;
|
|
73
|
+
generation += 1;
|
|
74
|
+
if (agent.streamFunction === wrapped)
|
|
75
|
+
agent.streamFunction = original;
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function latestCompactionSummaryLength(session) {
|
|
80
|
+
let entries;
|
|
81
|
+
try {
|
|
82
|
+
entries = session.sessionManager?.getBranch?.() ?? [];
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
for (let index = entries.length - 1; index >= 0; index -= 1) {
|
|
88
|
+
const entry = entries[index];
|
|
89
|
+
if (typeof entry !== "object" || entry === null)
|
|
90
|
+
continue;
|
|
91
|
+
const { type, summary } = entry;
|
|
92
|
+
if (type === "compaction" && typeof summary === "string" && summary.length > 0)
|
|
93
|
+
return summary.length;
|
|
94
|
+
}
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export interface PiCapabilityConformanceResult {
|
|
2
|
+
readonly capability: string;
|
|
3
|
+
readonly operations: readonly string[];
|
|
4
|
+
readonly passed: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const REQUIRED_PI_CAPABILITY_OPERATIONS: Readonly<{
|
|
7
|
+
readonly "public-exports": readonly ["services.create", "session.create", "runtime.create"];
|
|
8
|
+
readonly "session-lifecycle": readonly ["session.new", "session.resume", "session.rebind", "session.dispose"];
|
|
9
|
+
readonly "commands-events": readonly ["prompt", "steer", "followUp", "clearQueue", "abort", "compact", "setModel", "setThinkingLevel", "subscribe", "dispose"];
|
|
10
|
+
readonly "models-authentication": readonly ["models.list", "models.refresh", "models.completeSimple", "auth.status", "auth.login", "auth.logout", "auth.cancel"];
|
|
11
|
+
readonly settings: readonly ["settings.read", "settings.write", "settings.flush"];
|
|
12
|
+
readonly "resources-extensions": readonly ["resources.discover", "extensions.inline", "extensions.bind", "extensions.reload", "renderers.invoke"];
|
|
13
|
+
readonly workflows: readonly ["workflow.route", "workflow.validate", "workflow.diagnostics"];
|
|
14
|
+
readonly disposal: readonly ["subscription.dispose", "session.dispose", "services.cleanup"];
|
|
15
|
+
}>;
|
|
16
|
+
/** Identifies one required Pi capability operation that differs from the accepted integration contract. */
|
|
17
|
+
export declare class PiCapabilityCompatibilityError extends Error {
|
|
18
|
+
readonly packageVersion: string;
|
|
19
|
+
readonly capability: string;
|
|
20
|
+
readonly operation: string;
|
|
21
|
+
constructor(packageVersion: string, capability: string, operation: string, detail: string);
|
|
22
|
+
}
|
|
23
|
+
export interface PiUpgradeConformanceReport {
|
|
24
|
+
readonly schema: "pi-engine-conformance-v1";
|
|
25
|
+
readonly packageName: "@earendil-works/pi-coding-agent";
|
|
26
|
+
readonly packageVersion: string;
|
|
27
|
+
readonly ownedUiContractVersion: number;
|
|
28
|
+
readonly serviceDiagnostics: number;
|
|
29
|
+
readonly sessionId: string;
|
|
30
|
+
readonly commandSurface: readonly string[];
|
|
31
|
+
readonly capabilities: readonly PiCapabilityConformanceResult[];
|
|
32
|
+
}
|
|
33
|
+
/** Identifies the public Pi SDK stage that failed during upgrade conformance. */
|
|
34
|
+
export declare class PiUpgradeConformanceError extends Error {
|
|
35
|
+
readonly stage: "exports" | "services" | "session";
|
|
36
|
+
constructor(stage: "exports" | "services" | "session", cause: unknown);
|
|
37
|
+
}
|
|
38
|
+
export declare function runPiUpgradeConformance(): Promise<PiUpgradeConformanceReport>;
|
|
39
|
+
export declare function validatePiCapabilityResults(packageVersion: string, results: readonly PiCapabilityConformanceResult[]): void;
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { mkdtemp, rm } from "node:fs/promises";
|
|
2
|
+
import { tmpdir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { createAgentSessionFromServices, createAgentSessionRuntime, createAgentSessionServices, ModelRuntime, SessionManager, VERSION, } from "@earendil-works/pi-coding-agent";
|
|
5
|
+
import { OWNED_UI_CONTRACT_VERSION } from "../../../contracts/owned-ui/index.js";
|
|
6
|
+
import { PRODUCT_IDENTITY } from "../../../product-identity.js";
|
|
7
|
+
import { createWindowsNulCleanupExtension } from "./windows-filesystem-hygiene.js";
|
|
8
|
+
export const REQUIRED_PI_CAPABILITY_OPERATIONS = Object.freeze({
|
|
9
|
+
"public-exports": ["services.create", "session.create", "runtime.create"],
|
|
10
|
+
"session-lifecycle": ["session.new", "session.resume", "session.rebind", "session.dispose"],
|
|
11
|
+
"commands-events": ["prompt", "steer", "followUp", "clearQueue", "abort", "compact", "setModel", "setThinkingLevel", "subscribe", "dispose"],
|
|
12
|
+
"models-authentication": ["models.list", "models.refresh", "models.completeSimple", "auth.status", "auth.login", "auth.logout", "auth.cancel"],
|
|
13
|
+
settings: ["settings.read", "settings.write", "settings.flush"],
|
|
14
|
+
"resources-extensions": ["resources.discover", "extensions.inline", "extensions.bind", "extensions.reload", "renderers.invoke"],
|
|
15
|
+
workflows: ["workflow.route", "workflow.validate", "workflow.diagnostics"],
|
|
16
|
+
disposal: ["subscription.dispose", "session.dispose", "services.cleanup"],
|
|
17
|
+
});
|
|
18
|
+
/** Identifies one required Pi capability operation that differs from the accepted integration contract. */
|
|
19
|
+
export class PiCapabilityCompatibilityError extends Error {
|
|
20
|
+
packageVersion;
|
|
21
|
+
capability;
|
|
22
|
+
operation;
|
|
23
|
+
constructor(packageVersion, capability, operation, detail) {
|
|
24
|
+
super(`Pi ${packageVersion} capability ${capability} operation ${operation} is incompatible: ${detail}`);
|
|
25
|
+
this.packageVersion = packageVersion;
|
|
26
|
+
this.capability = capability;
|
|
27
|
+
this.operation = operation;
|
|
28
|
+
this.name = "PiCapabilityCompatibilityError";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/** Identifies the public Pi SDK stage that failed during upgrade conformance. */
|
|
32
|
+
export class PiUpgradeConformanceError extends Error {
|
|
33
|
+
stage;
|
|
34
|
+
constructor(stage, cause) {
|
|
35
|
+
super(`Pi upgrade conformance failed during ${stage}: ${cause instanceof Error ? cause.message : String(cause)}`, { cause });
|
|
36
|
+
this.stage = stage;
|
|
37
|
+
this.name = "PiUpgradeConformanceError";
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export async function runPiUpgradeConformance() {
|
|
41
|
+
try {
|
|
42
|
+
if (typeof createAgentSessionRuntime !== "function"
|
|
43
|
+
|| typeof createAgentSessionServices !== "function"
|
|
44
|
+
|| typeof createAgentSessionFromServices !== "function"
|
|
45
|
+
|| typeof ModelRuntime.create !== "function"
|
|
46
|
+
|| typeof SessionManager.inMemory !== "function") {
|
|
47
|
+
throw new Error("required public SDK exports are missing");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
throw new PiUpgradeConformanceError("exports", error);
|
|
52
|
+
}
|
|
53
|
+
const root = await mkdtemp(join(tmpdir(), `${PRODUCT_IDENTITY.filesystem.temporaryPrefix}pi-conformance-`));
|
|
54
|
+
try {
|
|
55
|
+
let services;
|
|
56
|
+
try {
|
|
57
|
+
const modelRuntime = await ModelRuntime.create({
|
|
58
|
+
authPath: join(root, "agent", "auth.json"),
|
|
59
|
+
modelsPath: null,
|
|
60
|
+
refreshOnCreate: false,
|
|
61
|
+
allowModelNetwork: false,
|
|
62
|
+
});
|
|
63
|
+
const cleanupExtension = createWindowsNulCleanupExtension({ platform: "win32" });
|
|
64
|
+
if (cleanupExtension === null)
|
|
65
|
+
throw new Error("Windows NUL cleanup extension is unavailable");
|
|
66
|
+
services = await createAgentSessionServices({
|
|
67
|
+
cwd: root,
|
|
68
|
+
agentDir: join(root, "agent"),
|
|
69
|
+
modelRuntime,
|
|
70
|
+
resourceLoaderOptions: { extensionFactories: [cleanupExtension] },
|
|
71
|
+
});
|
|
72
|
+
if (!services.resourceLoader.getExtensions().extensions.some(extension => extension.path === "<inline:windows-nul-file-cleanup>")) {
|
|
73
|
+
throw new Error("named inline extension factory was not loaded");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
throw new PiUpgradeConformanceError("services", error);
|
|
78
|
+
}
|
|
79
|
+
let sessionId;
|
|
80
|
+
try {
|
|
81
|
+
const created = await createAgentSessionFromServices({
|
|
82
|
+
services,
|
|
83
|
+
sessionManager: SessionManager.inMemory(root),
|
|
84
|
+
noTools: "all",
|
|
85
|
+
});
|
|
86
|
+
const session = created.session;
|
|
87
|
+
sessionId = session.sessionId;
|
|
88
|
+
requireMethods(session, "session commands", ["prompt", "steer", "followUp", "clearQueue", "abort", "compact", "setModel", "setThinkingLevel", "subscribe", "dispose"]);
|
|
89
|
+
requireMethods(services.modelRuntime, "models/authentication", ["getModels", "getModel", "completeSimple", "checkAuth", "login", "logout", "refresh"]);
|
|
90
|
+
requireMethods(services.settingsManager, "settings", ["getGlobalSettings", "getProjectSettings", "flush"]);
|
|
91
|
+
requireMethods(services.resourceLoader, "resources/extensions", ["getExtensions", "getSkills", "getPrompts", "getThemes", "reload"]);
|
|
92
|
+
const unsubscribe = session.subscribe(() => undefined);
|
|
93
|
+
unsubscribe();
|
|
94
|
+
session.dispose();
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
throw new PiUpgradeConformanceError("session", error);
|
|
98
|
+
}
|
|
99
|
+
const commandSurface = ["prompt", "steer", "followUp", "clearQueue", "abort", "compact", "setModel", "setThinkingLevel", "subscribe", "dispose"];
|
|
100
|
+
const capabilities = Object.entries(REQUIRED_PI_CAPABILITY_OPERATIONS)
|
|
101
|
+
.map(([capabilityName, operations]) => capability(capabilityName, operations));
|
|
102
|
+
validatePiCapabilityResults(VERSION, capabilities);
|
|
103
|
+
return {
|
|
104
|
+
schema: "pi-engine-conformance-v1",
|
|
105
|
+
packageName: "@earendil-works/pi-coding-agent",
|
|
106
|
+
packageVersion: VERSION,
|
|
107
|
+
ownedUiContractVersion: OWNED_UI_CONTRACT_VERSION,
|
|
108
|
+
serviceDiagnostics: services.diagnostics.length,
|
|
109
|
+
sessionId,
|
|
110
|
+
commandSurface,
|
|
111
|
+
capabilities,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
finally {
|
|
115
|
+
await rm(root, { recursive: true, force: true });
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function requireMethods(target, capabilityName, operations) {
|
|
119
|
+
const surface = target;
|
|
120
|
+
for (const operation of operations) {
|
|
121
|
+
if (typeof surface[operation] !== "function")
|
|
122
|
+
throw new Error(`${capabilityName}.${operation} is unavailable`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function capability(capabilityName, operations) {
|
|
126
|
+
return { capability: capabilityName, operations, passed: true };
|
|
127
|
+
}
|
|
128
|
+
export function validatePiCapabilityResults(packageVersion, results) {
|
|
129
|
+
for (const [capabilityName, requiredOperations] of Object.entries(REQUIRED_PI_CAPABILITY_OPERATIONS)) {
|
|
130
|
+
const result = results.find(candidate => candidate.capability === capabilityName);
|
|
131
|
+
if (!result)
|
|
132
|
+
throw new PiCapabilityCompatibilityError(packageVersion, capabilityName, requiredOperations[0], "capability result is missing");
|
|
133
|
+
if (!result.passed)
|
|
134
|
+
throw new PiCapabilityCompatibilityError(packageVersion, capabilityName, requiredOperations[0], "capability reported failure");
|
|
135
|
+
for (const operation of requiredOperations) {
|
|
136
|
+
if (!result.operations.includes(operation))
|
|
137
|
+
throw new PiCapabilityCompatibilityError(packageVersion, capabilityName, operation, "required operation is missing");
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { OwnedUiEvent, OwnedUiTranscriptBlock } from "../../../contracts/owned-ui/index.js";
|
|
2
|
+
/** An event the adapter emits before delivery stamps it with the session id and sequence. */
|
|
3
|
+
export type PiEmittedEvent = Omit<Extract<OwnedUiEvent, {
|
|
4
|
+
type: "session-lifecycle";
|
|
5
|
+
}>, "sessionId" | "sequence"> | Omit<Extract<OwnedUiEvent, {
|
|
6
|
+
type: "session-view";
|
|
7
|
+
}>, "sessionId" | "sequence"> | Omit<Extract<OwnedUiEvent, {
|
|
8
|
+
type: "transcript-block";
|
|
9
|
+
}>, "sessionId" | "sequence"> | Omit<Extract<OwnedUiEvent, {
|
|
10
|
+
type: "assistant-message-completed";
|
|
11
|
+
}>, "sessionId" | "sequence"> | Omit<Extract<OwnedUiEvent, {
|
|
12
|
+
type: "agent-run-started";
|
|
13
|
+
}>, "sessionId" | "sequence"> | Omit<Extract<OwnedUiEvent, {
|
|
14
|
+
type: "agent-run-settled";
|
|
15
|
+
}>, "sessionId" | "sequence"> | Omit<Extract<OwnedUiEvent, {
|
|
16
|
+
type: "editor-state";
|
|
17
|
+
}>, "sessionId" | "sequence"> | Omit<Extract<OwnedUiEvent, {
|
|
18
|
+
type: "status";
|
|
19
|
+
}>, "sessionId" | "sequence"> | Omit<Extract<OwnedUiEvent, {
|
|
20
|
+
type: "command-outcome";
|
|
21
|
+
}>, "sessionId" | "sequence"> | Omit<Extract<OwnedUiEvent, {
|
|
22
|
+
type: "terminal-surface";
|
|
23
|
+
}>, "sessionId" | "sequence"> | Omit<Extract<OwnedUiEvent, {
|
|
24
|
+
type: "diagnostic";
|
|
25
|
+
}>, "sessionId" | "sequence">;
|
|
26
|
+
/** A command outcome held back during an overload so its command can still settle after recovery. */
|
|
27
|
+
export interface ReservedCommandOutcome {
|
|
28
|
+
readonly outcome: Extract<OwnedUiEvent, {
|
|
29
|
+
type: "command-outcome";
|
|
30
|
+
}>["outcome"];
|
|
31
|
+
readonly diagnostic: Extract<OwnedUiEvent, {
|
|
32
|
+
type: "command-outcome";
|
|
33
|
+
}>["diagnostic"];
|
|
34
|
+
}
|
|
35
|
+
export interface PiEventDeliveryPorts {
|
|
36
|
+
sessionId(): string;
|
|
37
|
+
sessionGeneration(): number;
|
|
38
|
+
/** The current block for a lazily materialized transcript event. */
|
|
39
|
+
transcriptBlock(id: string): OwnedUiTranscriptBlock | undefined;
|
|
40
|
+
/** Retain the image assets an event references until the returned release runs. */
|
|
41
|
+
retainEvent(event: OwnedUiEvent): () => void;
|
|
42
|
+
/** Whether a command outcome still has an admitted command waiting for it. */
|
|
43
|
+
isPendingCommand(correlationId: string): boolean;
|
|
44
|
+
/** Cancel admitted work when the queue saturates; resolves once the engine session aborted. */
|
|
45
|
+
cancelForOverload(): Promise<void>;
|
|
46
|
+
/** Rebuild session state once the saturated queue drained; `cancelled` says whether the abort completed. */
|
|
47
|
+
reconcileOverload(cancelled: boolean): Promise<void>;
|
|
48
|
+
/** A listener threw; the adapter records the warning. */
|
|
49
|
+
listenerFailed(message: string): void;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Bounded delivery of owned UI events: stamps sequence numbers, keeps subscribers, queues events
|
|
53
|
+
* through the replaceable pending buffer, yields to the event loop between batches, and when the
|
|
54
|
+
* buffer saturates declares an overload that the adapter reconciles once the queue drains. The
|
|
55
|
+
* adapter decides what an event means; this class decides only when it reaches a listener.
|
|
56
|
+
*/
|
|
57
|
+
export declare class PiEventDelivery {
|
|
58
|
+
#private;
|
|
59
|
+
constructor(ports: PiEventDeliveryPorts);
|
|
60
|
+
/** The sequence number of the most recently stamped event. */
|
|
61
|
+
get sequence(): number;
|
|
62
|
+
/** True from queue saturation until the adapter's reconciliation ends. */
|
|
63
|
+
get overloaded(): boolean;
|
|
64
|
+
/** True once a listener threw or the queue saturated, until the adapter clears it after a flush. */
|
|
65
|
+
get failed(): boolean;
|
|
66
|
+
clearFailure(): void;
|
|
67
|
+
/** Developer-only pressure evidence; never mirrored into visible diagnostic/status arrays. */
|
|
68
|
+
diagnostics(): {
|
|
69
|
+
overloads: number;
|
|
70
|
+
recovering: boolean;
|
|
71
|
+
reservedOutcomes: number;
|
|
72
|
+
invalidatedEvents: number;
|
|
73
|
+
pending: number;
|
|
74
|
+
bytes: number;
|
|
75
|
+
protected: number;
|
|
76
|
+
superseded: number;
|
|
77
|
+
peakNodes: number;
|
|
78
|
+
peakBytes: number;
|
|
79
|
+
};
|
|
80
|
+
/** Give an event its session id and the next sequence number without queueing it. */
|
|
81
|
+
stamp(value: PiEmittedEvent): OwnedUiEvent;
|
|
82
|
+
/** Register a listener that first receives `initial` and afterwards every later-stamped event. */
|
|
83
|
+
subscribe(listener: (event: OwnedUiEvent) => void, initial: OwnedUiEvent): () => void;
|
|
84
|
+
/** Stamp and queue an event for ordered delivery. */
|
|
85
|
+
emit(value: PiEmittedEvent): OwnedUiEvent;
|
|
86
|
+
/** Queue an already stamped event; during an overload only pending command outcomes are kept, as reservations. */
|
|
87
|
+
enqueue(event: OwnedUiEvent): void;
|
|
88
|
+
/** Freeze lazy snapshots before their source is replaced; false means the queue saturated. */
|
|
89
|
+
seal(): boolean;
|
|
90
|
+
/** Drop queued events from earlier session generations. */
|
|
91
|
+
discardObsolete(generation: number): void;
|
|
92
|
+
/** Enter the bounded overload transition; a no-op while one is already in progress. */
|
|
93
|
+
beginOverload(): void;
|
|
94
|
+
/** Deliver out of band, bypassing the queue; used for reconciliation after an overload. */
|
|
95
|
+
deliverNow(event: OwnedUiEvent): void;
|
|
96
|
+
/** The command outcomes reserved during an overload, in arrival order; clears the reservation. */
|
|
97
|
+
takeReservedOutcomes(): [string, ReservedCommandOutcome][];
|
|
98
|
+
/** Resolves once every queued event has been delivered or invalidated. */
|
|
99
|
+
settle(): Promise<void>;
|
|
100
|
+
}
|