@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,184 @@
|
|
|
1
|
+
import { PendingEngineDelivery } from "./pending-delivery.js";
|
|
2
|
+
/**
|
|
3
|
+
* Engine events delivered before the queue hands the event loop a turn. Small enough
|
|
4
|
+
* that a streaming burst never holds input, large enough that an ordinary turn is one
|
|
5
|
+
* batch.
|
|
6
|
+
*/
|
|
7
|
+
// Performance: deliver at most one engine event per event-loop turn. Transcript updates can
|
|
8
|
+
// be expensive in long sessions; a larger synchronous batch starves terminal
|
|
9
|
+
// input and makes an in-progress mouse selection appear frozen.
|
|
10
|
+
const EVENT_DELIVERY_BATCH = 1;
|
|
11
|
+
const OVERLOAD_CANCELLATION_TIMEOUT_MS = 2000;
|
|
12
|
+
/**
|
|
13
|
+
* Bounded delivery of owned UI events: stamps sequence numbers, keeps subscribers, queues events
|
|
14
|
+
* through the replaceable pending buffer, yields to the event loop between batches, and when the
|
|
15
|
+
* buffer saturates declares an overload that the adapter reconciles once the queue drains. The
|
|
16
|
+
* adapter decides what an event means; this class decides only when it reaches a listener.
|
|
17
|
+
*/
|
|
18
|
+
export class PiEventDelivery {
|
|
19
|
+
#listeners = new Map();
|
|
20
|
+
#queue;
|
|
21
|
+
#reservedOutcomes = new Map();
|
|
22
|
+
#ports;
|
|
23
|
+
#sequence = 0;
|
|
24
|
+
#processing;
|
|
25
|
+
#overload;
|
|
26
|
+
#overloads = 0;
|
|
27
|
+
#deliveryFailed = false;
|
|
28
|
+
#invalidatedEvents = 0;
|
|
29
|
+
constructor(ports) {
|
|
30
|
+
this.#ports = ports;
|
|
31
|
+
this.#queue = new PendingEngineDelivery(event => ports.retainEvent(event));
|
|
32
|
+
}
|
|
33
|
+
/** The sequence number of the most recently stamped event. */
|
|
34
|
+
get sequence() {
|
|
35
|
+
return this.#sequence;
|
|
36
|
+
}
|
|
37
|
+
/** True from queue saturation until the adapter's reconciliation ends. */
|
|
38
|
+
get overloaded() {
|
|
39
|
+
return this.#overload !== undefined;
|
|
40
|
+
}
|
|
41
|
+
/** True once a listener threw or the queue saturated, until the adapter clears it after a flush. */
|
|
42
|
+
get failed() {
|
|
43
|
+
return this.#deliveryFailed;
|
|
44
|
+
}
|
|
45
|
+
clearFailure() {
|
|
46
|
+
this.#deliveryFailed = false;
|
|
47
|
+
}
|
|
48
|
+
/** Developer-only pressure evidence; never mirrored into visible diagnostic/status arrays. */
|
|
49
|
+
diagnostics() {
|
|
50
|
+
return { ...this.#queue.diagnostics(), overloads: this.#overloads, recovering: this.overloaded,
|
|
51
|
+
reservedOutcomes: this.#reservedOutcomes.size, invalidatedEvents: this.#invalidatedEvents };
|
|
52
|
+
}
|
|
53
|
+
/** Give an event its session id and the next sequence number without queueing it. */
|
|
54
|
+
stamp(value) {
|
|
55
|
+
this.#sequence += 1;
|
|
56
|
+
return { ...value, sessionId: this.#ports.sessionId(), sequence: this.#sequence };
|
|
57
|
+
}
|
|
58
|
+
/** Register a listener that first receives `initial` and afterwards every later-stamped event. */
|
|
59
|
+
subscribe(listener, initial) {
|
|
60
|
+
this.#listeners.set(listener, initial.sequence);
|
|
61
|
+
listener(initial);
|
|
62
|
+
return () => this.#listeners.delete(listener);
|
|
63
|
+
}
|
|
64
|
+
/** Stamp and queue an event for ordered delivery. */
|
|
65
|
+
emit(value) {
|
|
66
|
+
const event = this.stamp(value);
|
|
67
|
+
this.enqueue(event);
|
|
68
|
+
return event;
|
|
69
|
+
}
|
|
70
|
+
/** Queue an already stamped event; during an overload only pending command outcomes are kept, as reservations. */
|
|
71
|
+
enqueue(event) {
|
|
72
|
+
if (this.#overload !== undefined) {
|
|
73
|
+
if (event.type === "command-outcome" && event.outcome !== "accepted" && this.#ports.isPendingCommand(event.correlationId)) {
|
|
74
|
+
this.#reservedOutcomes.set(event.correlationId, { outcome: event.outcome, diagnostic: event.diagnostic });
|
|
75
|
+
}
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (!this.#queue.push(event, this.#ports.sessionGeneration(), event.type === "transcript-block"
|
|
79
|
+
? this.#blockReconciliation(event.block.id, event.sequence) : undefined)) {
|
|
80
|
+
this.beginOverload();
|
|
81
|
+
if (event.type === "command-outcome" && event.outcome !== "accepted" && this.#ports.isPendingCommand(event.correlationId)
|
|
82
|
+
&& !this.#reservedOutcomes.has(event.correlationId)) {
|
|
83
|
+
this.#reservedOutcomes.set(event.correlationId, { outcome: event.outcome, diagnostic: event.diagnostic });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
this.#processing ??= Promise.resolve().then(() => this.#processQueue());
|
|
87
|
+
}
|
|
88
|
+
// Performance: capture only identity, not the complete block/event retained by an earlier revision.
|
|
89
|
+
#blockReconciliation(id, sequence) {
|
|
90
|
+
return () => ({ type: "transcript-block", sessionId: this.#ports.sessionId(), sequence, block: this.#ports.transcriptBlock(id) });
|
|
91
|
+
}
|
|
92
|
+
/** Freeze lazy snapshots before their source is replaced; false means the queue saturated. */
|
|
93
|
+
seal() {
|
|
94
|
+
return this.#queue.seal();
|
|
95
|
+
}
|
|
96
|
+
/** Drop queued events from earlier session generations. */
|
|
97
|
+
discardObsolete(generation) {
|
|
98
|
+
this.#invalidatedEvents += this.#queue.discardObsolete(generation);
|
|
99
|
+
}
|
|
100
|
+
/** Enter the bounded overload transition; a no-op while one is already in progress. */
|
|
101
|
+
beginOverload() {
|
|
102
|
+
if (this.#overload !== undefined)
|
|
103
|
+
return;
|
|
104
|
+
this.#overloads = Math.min(Number.MAX_SAFE_INTEGER, this.#overloads + 1);
|
|
105
|
+
this.#deliveryFailed = true;
|
|
106
|
+
// Concurrency: reserve before cancellation; outcomes produced reentrantly must not enter the saturated queue.
|
|
107
|
+
this.#overload = Promise.resolve(false);
|
|
108
|
+
const cancellation = this.#ports.cancelForOverload();
|
|
109
|
+
this.#overload = new Promise(resolve => {
|
|
110
|
+
const timer = setTimeout(() => resolve(false), OVERLOAD_CANCELLATION_TIMEOUT_MS);
|
|
111
|
+
cancellation.then(() => {
|
|
112
|
+
clearTimeout(timer);
|
|
113
|
+
resolve(true);
|
|
114
|
+
}, () => { clearTimeout(timer); resolve(false); });
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/** Deliver out of band, bypassing the queue; used for reconciliation after an overload. */
|
|
118
|
+
deliverNow(event) {
|
|
119
|
+
for (const [listener, subscribedAt] of this.#listeners) {
|
|
120
|
+
if (event.sequence <= subscribedAt)
|
|
121
|
+
continue;
|
|
122
|
+
try {
|
|
123
|
+
listener(event);
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
this.#deliveryFailed = true;
|
|
127
|
+
this.#ports.listenerFailed(error instanceof Error ? error.message : String(error));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/** The command outcomes reserved during an overload, in arrival order; clears the reservation. */
|
|
132
|
+
takeReservedOutcomes() {
|
|
133
|
+
const reserved = [...this.#reservedOutcomes];
|
|
134
|
+
this.#reservedOutcomes.clear();
|
|
135
|
+
return reserved;
|
|
136
|
+
}
|
|
137
|
+
/** Resolves once every queued event has been delivered or invalidated. */
|
|
138
|
+
async settle() {
|
|
139
|
+
while (this.#processing)
|
|
140
|
+
await this.#processing;
|
|
141
|
+
}
|
|
142
|
+
async #processQueue() {
|
|
143
|
+
try {
|
|
144
|
+
let deliveredSinceYield = 0;
|
|
145
|
+
while (this.#queue.size > 0) {
|
|
146
|
+
const pending = this.#queue.shift();
|
|
147
|
+
if (pending === undefined)
|
|
148
|
+
continue;
|
|
149
|
+
if (pending.generation !== this.#ports.sessionGeneration() && pending.event.type !== "command-outcome") {
|
|
150
|
+
this.#invalidatedEvents = Math.min(Number.MAX_SAFE_INTEGER, this.#invalidatedEvents + 1);
|
|
151
|
+
pending.release?.();
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
try {
|
|
155
|
+
this.deliverNow(pending.event);
|
|
156
|
+
}
|
|
157
|
+
finally {
|
|
158
|
+
pending.release?.();
|
|
159
|
+
}
|
|
160
|
+
deliveredSinceYield += 1;
|
|
161
|
+
// Concurrency: a microtask chain runs to exhaustion before the loop turns, so a streaming
|
|
162
|
+
// burst would hold typed input, pointer reports, and timed indicators until it
|
|
163
|
+
// drained. Yielding on a macrotask hands those their turn between batches.
|
|
164
|
+
if (deliveredSinceYield >= EVENT_DELIVERY_BATCH && this.#queue.size > 0) {
|
|
165
|
+
deliveredSinceYield = 0;
|
|
166
|
+
await new Promise(resolve => { setImmediate(resolve); });
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
if (this.#overload !== undefined) {
|
|
170
|
+
const cancelled = await this.#overload;
|
|
171
|
+
await this.#ports.reconcileOverload(cancelled);
|
|
172
|
+
// Invariant: an outcome reserved while reconciliation replayed the earlier ones is dropped with the overload.
|
|
173
|
+
this.#reservedOutcomes.clear();
|
|
174
|
+
this.#overload = undefined;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
finally {
|
|
178
|
+
this.#processing = undefined;
|
|
179
|
+
if (this.#queue.size > 0) {
|
|
180
|
+
this.#processing = Promise.resolve().then(() => this.#processQueue());
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { AgentSession } from "../startup-public.js";
|
|
2
|
+
import { OWNED_UI_EXTENSION_CONTRACT_VERSION, OWNED_UI_EXTENSION_RENDER_CALLBACKS, OWNED_UI_EXTENSION_UI_CALLBACKS, OWNED_UI_EXTENSION_UI_PROPERTIES, type OwnedUiDiagnostics } from "../../../contracts/owned-ui/index.js";
|
|
3
|
+
export interface OwnedPiVisualExtensionSupport {
|
|
4
|
+
readonly available: boolean;
|
|
5
|
+
readonly contractComplete: true;
|
|
6
|
+
readonly contractVersion: typeof OWNED_UI_EXTENSION_CONTRACT_VERSION;
|
|
7
|
+
readonly binding: "bound" | "unbound";
|
|
8
|
+
readonly uiCallbacks: typeof OWNED_UI_EXTENSION_UI_CALLBACKS;
|
|
9
|
+
readonly uiProperties: typeof OWNED_UI_EXTENSION_UI_PROPERTIES;
|
|
10
|
+
readonly renderCallbacks: typeof OWNED_UI_EXTENSION_RENDER_CALLBACKS;
|
|
11
|
+
readonly diagnostic: string;
|
|
12
|
+
}
|
|
13
|
+
export interface PiExtensionUiBindingPorts {
|
|
14
|
+
session(): AgentSession | undefined;
|
|
15
|
+
diagnostic(severity: OwnedUiDiagnostics["severity"], code: string, message: string, recoverable: boolean): void;
|
|
16
|
+
emitView(): void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The owned extension UI bridge's attachment to pinned Pi sessions: the bridge the shell hands
|
|
20
|
+
* over, whether the current session is bound to it, and the rebind that every new session needs.
|
|
21
|
+
* Extension errors surface as adapter diagnostics through the ports.
|
|
22
|
+
*/
|
|
23
|
+
export declare class PiExtensionUiBinding {
|
|
24
|
+
#private;
|
|
25
|
+
constructor(ports: PiExtensionUiBindingPorts);
|
|
26
|
+
/** True while a bridge is attached, bound or not. */
|
|
27
|
+
get attached(): boolean;
|
|
28
|
+
support(): OwnedPiVisualExtensionSupport;
|
|
29
|
+
/** Attach the owned extension UI bridge and bind it to the current session. */
|
|
30
|
+
bind(ui: unknown, shutdown?: () => void | Promise<void>): Promise<void>;
|
|
31
|
+
/** Detach the bridge; the next session binding will not rebind it. */
|
|
32
|
+
unbind(): Promise<void>;
|
|
33
|
+
/** Bind the attached bridge to the current session, reporting failures as diagnostics. */
|
|
34
|
+
rebind(): Promise<void>;
|
|
35
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { PRODUCT_IDENTITY } from "../../../product-identity.js";
|
|
2
|
+
import { isRecord } from "./message-values.js";
|
|
3
|
+
import { OWNED_UI_EXTENSION_CONTRACT_VERSION, OWNED_UI_EXTENSION_RENDER_CALLBACKS, OWNED_UI_EXTENSION_UI_CALLBACKS, OWNED_UI_EXTENSION_UI_PROPERTIES, assertOwnedUiExtensionUiPort, } from "../../../contracts/owned-ui/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* The owned extension UI bridge's attachment to pinned Pi sessions: the bridge the shell hands
|
|
6
|
+
* over, whether the current session is bound to it, and the rebind that every new session needs.
|
|
7
|
+
* Extension errors surface as adapter diagnostics through the ports.
|
|
8
|
+
*/
|
|
9
|
+
export class PiExtensionUiBinding {
|
|
10
|
+
#ports;
|
|
11
|
+
#extensionUi;
|
|
12
|
+
#extensionShutdown;
|
|
13
|
+
#extensionBound = false;
|
|
14
|
+
constructor(ports) {
|
|
15
|
+
this.#ports = ports;
|
|
16
|
+
}
|
|
17
|
+
/** True while a bridge is attached, bound or not. */
|
|
18
|
+
get attached() {
|
|
19
|
+
return this.#extensionUi !== undefined;
|
|
20
|
+
}
|
|
21
|
+
support() {
|
|
22
|
+
return {
|
|
23
|
+
available: this.#extensionBound,
|
|
24
|
+
contractComplete: true,
|
|
25
|
+
contractVersion: OWNED_UI_EXTENSION_CONTRACT_VERSION,
|
|
26
|
+
binding: this.#extensionBound ? "bound" : "unbound",
|
|
27
|
+
uiCallbacks: OWNED_UI_EXTENSION_UI_CALLBACKS,
|
|
28
|
+
uiProperties: OWNED_UI_EXTENSION_UI_PROPERTIES,
|
|
29
|
+
renderCallbacks: OWNED_UI_EXTENSION_RENDER_CALLBACKS,
|
|
30
|
+
diagnostic: this.#extensionBound
|
|
31
|
+
? `Pinned public extension UI lifecycle is bound through the ${PRODUCT_IDENTITY.displayName}-owned bridge.`
|
|
32
|
+
: `The complete ${PRODUCT_IDENTITY.displayName}-owned extension UI contract is available; the active session has not been bound to the owned UI bridge.`,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** Attach the owned extension UI bridge and bind it to the current session. */
|
|
36
|
+
async bind(ui, shutdown) {
|
|
37
|
+
assertPiExtensionUiContext(ui);
|
|
38
|
+
this.#extensionUi = ui;
|
|
39
|
+
this.#extensionShutdown = shutdown;
|
|
40
|
+
await this.rebind();
|
|
41
|
+
}
|
|
42
|
+
/** Detach the bridge; the next session binding will not rebind it. */
|
|
43
|
+
async unbind() {
|
|
44
|
+
this.#extensionUi = undefined;
|
|
45
|
+
this.#extensionShutdown = undefined;
|
|
46
|
+
this.#extensionBound = false;
|
|
47
|
+
}
|
|
48
|
+
/** Bind the attached bridge to the current session, reporting failures as diagnostics. */
|
|
49
|
+
async rebind() {
|
|
50
|
+
const session = this.#ports.session();
|
|
51
|
+
const ui = this.#extensionUi;
|
|
52
|
+
if (session === undefined || ui === undefined || session.bindExtensions === undefined) {
|
|
53
|
+
this.#extensionBound = false;
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
await session.bindExtensions({
|
|
58
|
+
uiContext: ui,
|
|
59
|
+
mode: "tui",
|
|
60
|
+
shutdownHandler: () => this.#extensionShutdown?.(),
|
|
61
|
+
onError: error => {
|
|
62
|
+
const message = isRecord(error) && typeof error.error === "string"
|
|
63
|
+
? error.error
|
|
64
|
+
: error instanceof Error ? error.message : String(error);
|
|
65
|
+
this.#ports.diagnostic("warning", "extension-ui", message, true);
|
|
66
|
+
this.#ports.emitView();
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
this.#extensionBound = true;
|
|
70
|
+
this.#ports.emitView();
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
this.#extensionBound = false;
|
|
74
|
+
this.#ports.diagnostic("error", "extension-ui-bind", error instanceof Error ? error.message : String(error), true);
|
|
75
|
+
this.#ports.emitView();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function assertPiExtensionUiContext(value) {
|
|
80
|
+
assertOwnedUiExtensionUiPort(value);
|
|
81
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Apply the profile's HTTP timeout to npm undici and its fetch globals. */
|
|
2
|
+
export declare function configureOwnedHttpDispatcher(timeoutMs: number): void;
|
|
3
|
+
/** Test and diagnostics seam; reports configured semantics, not the max-int implementation detail. */
|
|
4
|
+
export declare function configuredOwnedHttpIdleTimeoutMs(): number | null;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Provenance: mechanically adapted from Pi commit 914cf14
|
|
2
|
+
// packages/coding-agent/src/core/http-dispatcher.ts (MIT).
|
|
3
|
+
// Local modifications: expose only A1's owned timeout seam and retain no private Pi imports.
|
|
4
|
+
import { EnvHttpProxyAgent, install, setGlobalDispatcher } from "undici";
|
|
5
|
+
const MAX_DISABLED_TIMEOUT_MS = 2_147_483_647;
|
|
6
|
+
let configuredTimeoutMs = null;
|
|
7
|
+
/** Apply the profile's HTTP timeout to npm undici and its fetch globals. */
|
|
8
|
+
export function configureOwnedHttpDispatcher(timeoutMs) {
|
|
9
|
+
if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 0)
|
|
10
|
+
throw new TypeError("HTTP idle timeout is invalid");
|
|
11
|
+
const effectiveTimeoutMs = timeoutMs === 0 ? MAX_DISABLED_TIMEOUT_MS : timeoutMs;
|
|
12
|
+
const dispatcher = new EnvHttpProxyAgent({
|
|
13
|
+
allowH2: false,
|
|
14
|
+
bodyTimeout: effectiveTimeoutMs,
|
|
15
|
+
headersTimeout: effectiveTimeoutMs,
|
|
16
|
+
connect: { autoSelectFamilyAttemptTimeout: 2_000 },
|
|
17
|
+
});
|
|
18
|
+
setGlobalDispatcher(dispatcher);
|
|
19
|
+
install?.();
|
|
20
|
+
configuredTimeoutMs = timeoutMs;
|
|
21
|
+
}
|
|
22
|
+
/** Test and diagnostics seam; reports configured semantics, not the max-int implementation detail. */
|
|
23
|
+
export function configuredOwnedHttpIdleTimeoutMs() {
|
|
24
|
+
return configuredTimeoutMs;
|
|
25
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { EngineDeliveryError, PiEngineAdapter, createPiEngineAdapter } from "./adapter.js";
|
|
2
|
+
export type { AdapterCommandResult, OwnedPiExtensionResourceSummary, OwnedPiExtensionSourceSummary, OwnedPiResourceSummary, OwnedPiVisualExtensionSupport, PiEngineAdapterOptions, PiEngineRuntimeFactory, PiEngineRuntimeFactoryInput, } from "./adapter.js";
|
|
3
|
+
export { bindPiRuntimeSession, createPiRuntimeIntegration, createPiRuntimeServicesAfterTrust, disposePiRuntimeIntegration, replacePiRuntimeSession, resolveConfiguredModelScope, } from "./runtime-integration.js";
|
|
4
|
+
export type { PiRuntimeIntegrationOptions, PiRuntimePreflightDependencies, PiSessionReplacement } from "./runtime-integration.js";
|
|
5
|
+
export { PiSessionSelectionError, openSelectedPiSession, resolveSessionArgumentPath } from "./session-selection.js";
|
|
6
|
+
export type { PiSessionForkPrompt, PiSessionSelection } from "./session-selection.js";
|
|
7
|
+
export { PiSessionCommandIntegration, convertPiSessionEvent, subscribeToPiSessionEvents } from "./session-integration.js";
|
|
8
|
+
export type { PiDocumentedSessionCommands, PiOrderedEventIntegration, PiSessionCommand, PiSessionCommandResult } from "./session-integration.js";
|
|
9
|
+
export { AUTOMATIC_THEME, EXPOSED_SETTING_KEYS, PI_SETTING_EFFECTS, PiSettingsBridge, PiSettingsCoordinator, parseAutomaticTheme, settingsEffectInventoryDrift, settingsInventoryDrift, settingsVisualInventoryViolations, } from "./settings-bridge.js";
|
|
10
|
+
export { assertPiSettingsMetadata, loadPiSettingsMetadata, PI_SETTINGS_METADATA_FILE } from "./settings-metadata.js";
|
|
11
|
+
export type { PiSettingBounds, PiSettingPresentation, PiSettingsMetadata } from "./settings-metadata.js";
|
|
12
|
+
export type { PiSettingEffectDefinition, PiSettingEffectHandler, PiSettingKey, PiSettingOwnerHandlers, PiSettingStorageOperation, PiSettingVisualClass, PiSettingVisualEvidence, PiSettingsCoordinatorOptions, PiSettingsModelChoice, PiSettingsProviders, } from "./settings-bridge.js";
|
|
13
|
+
export { resolvePiProjectTrustPreflight } from "./project-trust-preflight.js";
|
|
14
|
+
export type { PiProjectTrustPreflightPrompt, PiProjectTrustPreflightRequest, PiProjectTrustPreflightResult, ResolvePiProjectTrustPreflightOptions, } from "./project-trust-preflight.js";
|
|
15
|
+
export { configureOwnedHttpDispatcher, configuredOwnedHttpIdleTimeoutMs } from "./http-dispatcher.js";
|
|
16
|
+
export { createPiPackagesPort } from "./package-integration.js";
|
|
17
|
+
export { OWNED_MODELS_COMMAND_NAME, OWNED_WORKFLOW_COMMAND_NAMES, PINNED_PI_HIDDEN_COMMAND_NAMES, PINNED_PI_SETTINGS_CALLBACKS, PINNED_PI_WORKFLOW_COMMAND_NAMES, workflowCommandNames, } from "./workflows.js";
|
|
18
|
+
export type { PiAuthenticationProviderOption, PiAuthenticationProviderStatus, PiBashWorkflowResult, PiHiddenWorkflowCommandName, PiModelsContext, PiModelsRefreshResult, PiPinnedSettingsCallback, PiPinnedSettingsSnapshot, PiProjectTrustContext, PiProductMode, PiProjectTrustUpdate, PiScopedModelDescriptor, PiScopedModelsContext, PiScopedModelsRefreshResult, PiSessionInfoPresentation, PiSessionResumeMetadata, PiSessionSelectorContext, PiTreeSelectorContext, PiWorkflowAutocompleteCommand, PiWorkflowCommandName, PiWorkflowHost, PiWorkflowInteractionHost, PiWorkflowInteractionRequest, PiWorkflowLoginNotification, PiWorkflowLoginStart, PiWorkflowMessage, PiWorkflowMessageKind, PiWorkflowOption, PiWorkflowOutcome, PiWorkflowPresentation, PiWorkflowRequest, PiWorkflowResult, PiWorkflowRoute, } from "./workflows.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { EngineDeliveryError, PiEngineAdapter, createPiEngineAdapter } from "./adapter.js";
|
|
2
|
+
export { bindPiRuntimeSession, createPiRuntimeIntegration, createPiRuntimeServicesAfterTrust, disposePiRuntimeIntegration, replacePiRuntimeSession, resolveConfiguredModelScope, } from "./runtime-integration.js";
|
|
3
|
+
export { PiSessionSelectionError, openSelectedPiSession, resolveSessionArgumentPath } from "./session-selection.js";
|
|
4
|
+
export { PiSessionCommandIntegration, convertPiSessionEvent, subscribeToPiSessionEvents } from "./session-integration.js";
|
|
5
|
+
export { AUTOMATIC_THEME, EXPOSED_SETTING_KEYS, PI_SETTING_EFFECTS, PiSettingsBridge, PiSettingsCoordinator, parseAutomaticTheme, settingsEffectInventoryDrift, settingsInventoryDrift, settingsVisualInventoryViolations, } from "./settings-bridge.js";
|
|
6
|
+
export { assertPiSettingsMetadata, loadPiSettingsMetadata, PI_SETTINGS_METADATA_FILE } from "./settings-metadata.js";
|
|
7
|
+
export { resolvePiProjectTrustPreflight } from "./project-trust-preflight.js";
|
|
8
|
+
export { configureOwnedHttpDispatcher, configuredOwnedHttpIdleTimeoutMs } from "./http-dispatcher.js";
|
|
9
|
+
export { createPiPackagesPort } from "./package-integration.js";
|
|
10
|
+
export { OWNED_MODELS_COMMAND_NAME, OWNED_WORKFLOW_COMMAND_NAMES, PINNED_PI_HIDDEN_COMMAND_NAMES, PINNED_PI_SETTINGS_CALLBACKS, PINNED_PI_WORKFLOW_COMMAND_NAMES, workflowCommandNames, } from "./workflows.js";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Pure readers over Pi's untyped session messages and the blocks projected from them. */
|
|
2
|
+
import type { OwnedUiModelInfo, OwnedUiThinkingLevel, OwnedUiTranscriptBlock } from "../../../contracts/owned-ui/index.js";
|
|
3
|
+
export declare function stringValue(value: unknown): string | undefined;
|
|
4
|
+
export declare function messageFallbackKey(message: unknown, fallbackIndex: number): string;
|
|
5
|
+
/** A later error may restate a declaration, but cannot make completed arguments incomplete. */
|
|
6
|
+
export declare function retainCompletedArguments(current: OwnedUiTranscriptBlock, next: OwnedUiTranscriptBlock): OwnedUiTranscriptBlock;
|
|
7
|
+
/**
|
|
8
|
+
* Whether two blocks say the same thing. A block that says what it already said is not a
|
|
9
|
+
* new revision: the shell renders a block once per revision, so bumping one it did not
|
|
10
|
+
* need re-renders it for nothing.
|
|
11
|
+
*/
|
|
12
|
+
export declare function sameBlockContent(left: OwnedUiTranscriptBlock, right: OwnedUiTranscriptBlock): boolean;
|
|
13
|
+
export declare function sameValue(left: unknown, right: unknown): boolean;
|
|
14
|
+
export declare function textFromContent(content: unknown): string;
|
|
15
|
+
export declare function assistantContent(content: readonly unknown[]): readonly Record<string, unknown>[];
|
|
16
|
+
export declare function contentImageCount(content: unknown): number;
|
|
17
|
+
export declare function jsonSummary(value: unknown): {
|
|
18
|
+
readonly summary: string;
|
|
19
|
+
readonly json: unknown;
|
|
20
|
+
};
|
|
21
|
+
export declare function sanitizeJson(value: unknown, depth?: number): unknown;
|
|
22
|
+
export declare function finiteNumber(value: unknown): number;
|
|
23
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
24
|
+
export declare function dynamicObject(value: unknown, key?: string): Record<string, unknown>;
|
|
25
|
+
export declare function requireCapability<T>(capability: T | undefined, name: string): T;
|
|
26
|
+
export declare function readModel(value: unknown): OwnedUiModelInfo | null;
|
|
27
|
+
export declare function readThinkingLevel(value: unknown): OwnedUiThinkingLevel;
|
|
28
|
+
export declare function stringProperty(value: unknown, key: string): string | undefined;
|
|
29
|
+
export declare function readStringArray(value: unknown): readonly string[];
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
export function stringValue(value) {
|
|
2
|
+
return typeof value === "string" && value.length > 0 ? value : undefined;
|
|
3
|
+
}
|
|
4
|
+
export function messageFallbackKey(message, fallbackIndex) {
|
|
5
|
+
if (!isRecord(message))
|
|
6
|
+
return `message-unknown-${fallbackIndex}`;
|
|
7
|
+
const timestamp = typeof message.timestamp === "number" && Number.isSafeInteger(message.timestamp)
|
|
8
|
+
? message.timestamp
|
|
9
|
+
: `index-${fallbackIndex}`;
|
|
10
|
+
return `message-${stringValue(message.role) ?? "unknown"}-${timestamp}`;
|
|
11
|
+
}
|
|
12
|
+
/** A later error may restate a declaration, but cannot make completed arguments incomplete. */
|
|
13
|
+
export function retainCompletedArguments(current, next) {
|
|
14
|
+
if (current.toolState?.argsComplete !== true || next.toolState === undefined || next.toolState.argsComplete)
|
|
15
|
+
return next;
|
|
16
|
+
return { ...next, toolState: { ...next.toolState, argsComplete: true },
|
|
17
|
+
...(next.toolRendering === undefined || current.toolRendering === undefined ? {} : {
|
|
18
|
+
toolRendering: { ...next.toolRendering, arguments: current.toolRendering.arguments },
|
|
19
|
+
}),
|
|
20
|
+
payload: { ...(isRecord(next.payload) ? next.payload : {}), argsComplete: true } };
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Whether two blocks say the same thing. A block that says what it already said is not a
|
|
24
|
+
* new revision: the shell renders a block once per revision, so bumping one it did not
|
|
25
|
+
* need re-renders it for nothing.
|
|
26
|
+
*/
|
|
27
|
+
export function sameBlockContent(left, right) {
|
|
28
|
+
return left.kind === right.kind
|
|
29
|
+
&& left.status === right.status
|
|
30
|
+
&& left.title === right.title
|
|
31
|
+
&& left.text === right.text
|
|
32
|
+
&& sameValue(left.toolState, right.toolState)
|
|
33
|
+
&& sameValue(left.toolRendering, right.toolRendering)
|
|
34
|
+
&& sameValue(left.payload, right.payload)
|
|
35
|
+
&& sameValue(left.imageReferences ?? [], right.imageReferences ?? []);
|
|
36
|
+
}
|
|
37
|
+
export function sameValue(left, right) {
|
|
38
|
+
if (left === right)
|
|
39
|
+
return true;
|
|
40
|
+
if (typeof left !== typeof right || left === null || right === null)
|
|
41
|
+
return false;
|
|
42
|
+
if (Array.isArray(left) || Array.isArray(right)) {
|
|
43
|
+
if (!Array.isArray(left) || !Array.isArray(right) || left.length !== right.length)
|
|
44
|
+
return false;
|
|
45
|
+
return left.every((value, index) => sameValue(value, right[index]));
|
|
46
|
+
}
|
|
47
|
+
if (typeof left !== "object")
|
|
48
|
+
return false;
|
|
49
|
+
const leftKeys = Object.keys(left);
|
|
50
|
+
const rightRecord = right;
|
|
51
|
+
if (leftKeys.length !== Object.keys(rightRecord).length)
|
|
52
|
+
return false;
|
|
53
|
+
return leftKeys.every(key => Object.hasOwn(rightRecord, key) && sameValue(left[key], rightRecord[key]));
|
|
54
|
+
}
|
|
55
|
+
export function textFromContent(content) {
|
|
56
|
+
if (typeof content === "string")
|
|
57
|
+
return content;
|
|
58
|
+
if (!Array.isArray(content))
|
|
59
|
+
return "";
|
|
60
|
+
return content
|
|
61
|
+
.map(item => isRecord(item) && item.type === "text" ? stringValue(item.text) ?? "" : "")
|
|
62
|
+
.filter(text => text.length > 0)
|
|
63
|
+
.join("\n");
|
|
64
|
+
}
|
|
65
|
+
export function assistantContent(content) {
|
|
66
|
+
const result = [];
|
|
67
|
+
for (const item of content) {
|
|
68
|
+
if (!isRecord(item))
|
|
69
|
+
continue;
|
|
70
|
+
if (item.type === "text")
|
|
71
|
+
result.push({ type: "text", text: stringValue(item.text) ?? "" });
|
|
72
|
+
else if (item.type === "thinking") {
|
|
73
|
+
result.push({
|
|
74
|
+
type: "thinking",
|
|
75
|
+
thinking: stringValue(item.thinking) ?? "",
|
|
76
|
+
...(item.redacted === true ? { redacted: true } : {}),
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
else if (item.type === "toolCall") {
|
|
80
|
+
result.push({
|
|
81
|
+
type: "toolCall",
|
|
82
|
+
id: stringValue(item.id) ?? "",
|
|
83
|
+
name: stringValue(item.name) ?? "unknown",
|
|
84
|
+
arguments: sanitizeJson(item.arguments),
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
export function contentImageCount(content) {
|
|
91
|
+
return Array.isArray(content)
|
|
92
|
+
? content.filter(item => isRecord(item) && item.type === "image").length
|
|
93
|
+
: 0;
|
|
94
|
+
}
|
|
95
|
+
export function jsonSummary(value) {
|
|
96
|
+
const json = sanitizeJson(value);
|
|
97
|
+
let summary = "";
|
|
98
|
+
try {
|
|
99
|
+
summary = JSON.stringify(json);
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
summary = String(value);
|
|
103
|
+
}
|
|
104
|
+
if (summary.length > 512)
|
|
105
|
+
summary = `${summary.slice(0, 509)}...`;
|
|
106
|
+
return { summary, json };
|
|
107
|
+
}
|
|
108
|
+
export function sanitizeJson(value, depth = 0) {
|
|
109
|
+
if (typeof value === "bigint")
|
|
110
|
+
return value.toString();
|
|
111
|
+
if (value === null || ["string", "number", "boolean"].includes(typeof value))
|
|
112
|
+
return value;
|
|
113
|
+
if (depth >= 8)
|
|
114
|
+
return "[truncated]";
|
|
115
|
+
if (Array.isArray(value))
|
|
116
|
+
return value.slice(0, 100).map(item => sanitizeJson(item, depth + 1));
|
|
117
|
+
if (isRecord(value)) {
|
|
118
|
+
const output = {};
|
|
119
|
+
for (const [key, item] of Object.entries(value).slice(0, 100)) {
|
|
120
|
+
output[key] = sanitizeJson(item, depth + 1);
|
|
121
|
+
}
|
|
122
|
+
return output;
|
|
123
|
+
}
|
|
124
|
+
return String(value);
|
|
125
|
+
}
|
|
126
|
+
export function finiteNumber(value) {
|
|
127
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : 0;
|
|
128
|
+
}
|
|
129
|
+
export function isRecord(value) {
|
|
130
|
+
return typeof value === "object" && value !== null;
|
|
131
|
+
}
|
|
132
|
+
export function dynamicObject(value, key) {
|
|
133
|
+
const candidate = key === undefined ? value : isRecord(value) ? value[key] : undefined;
|
|
134
|
+
return isRecord(candidate) ? candidate : {};
|
|
135
|
+
}
|
|
136
|
+
export function requireCapability(capability, name) {
|
|
137
|
+
if (typeof capability !== "function")
|
|
138
|
+
throw new Error(`Pi workflow capability is unavailable: ${name}`);
|
|
139
|
+
return capability;
|
|
140
|
+
}
|
|
141
|
+
export function readModel(value) {
|
|
142
|
+
if (!isRecord(value))
|
|
143
|
+
return null;
|
|
144
|
+
const providerId = stringValue(value.provider) ?? stringValue(value.providerId);
|
|
145
|
+
const modelId = stringValue(value.id) ?? stringValue(value.modelId);
|
|
146
|
+
if (!providerId || !modelId)
|
|
147
|
+
return null;
|
|
148
|
+
return {
|
|
149
|
+
providerId,
|
|
150
|
+
modelId,
|
|
151
|
+
displayName: stringValue(value.name) ?? modelId,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
export function readThinkingLevel(value) {
|
|
155
|
+
return value === "off" || value === "minimal" || value === "low" || value === "medium"
|
|
156
|
+
|| value === "high" || value === "xhigh"
|
|
157
|
+
? value
|
|
158
|
+
: "medium";
|
|
159
|
+
}
|
|
160
|
+
export function stringProperty(value, key) {
|
|
161
|
+
if (!isRecord(value))
|
|
162
|
+
return undefined;
|
|
163
|
+
const item = value[key];
|
|
164
|
+
return typeof item === "string" && item.length > 0 ? item : undefined;
|
|
165
|
+
}
|
|
166
|
+
export function readStringArray(value) {
|
|
167
|
+
return Array.isArray(value) ? value.filter((item) => typeof item === "string") : [];
|
|
168
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type AgentPackagesPort, type AgentPackagesPortInput } from "../../../contracts/agent-engine/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Pinned Pi's package manager already takes the profile root as an argument, so
|
|
4
|
+
* this binds it to the root A1 chose rather than to whatever the configuration-root
|
|
5
|
+
* environment variable happens to say. Pi's own package command handler is not used:
|
|
6
|
+
* it prints Pi's command names and ends the process, and both of those belong to
|
|
7
|
+
* whichever A1 command is running.
|
|
8
|
+
*
|
|
9
|
+
* The settings manager is created with project trust withheld, which is what keeps
|
|
10
|
+
* every operation to the user scope of the selected profile — a project-local
|
|
11
|
+
* `packages` list is never read, so it can never be written either.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createPiPackagesPort(input: AgentPackagesPortInput): AgentPackagesPort;
|