@timurproko/a1 0.1.8-dev.49ff83a → 0.1.8-dev.508
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +168 -65
- package/bin/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/ui.js +67 -22
- package/bin/update-recovery.js +343 -0
- package/bin/warmup.js +28 -0
- package/dist/app/session-shell/clipboard-diagnostics.d.ts +16 -0
- package/dist/app/session-shell/clipboard-diagnostics.js +65 -0
- package/dist/app/session-shell/clipboard-image.d.ts +11 -0
- package/dist/app/session-shell/clipboard-image.js +38 -0
- package/dist/app/session-shell/editor-hyperlink-budget.d.ts +9 -0
- package/dist/app/session-shell/editor-hyperlink-budget.js +23 -0
- package/dist/app/session-shell/helper-pool.d.ts +33 -0
- package/dist/app/session-shell/helper-pool.js +98 -0
- package/dist/app/session-shell/image-preparation-client.d.ts +20 -0
- package/dist/app/session-shell/image-preparation-client.js +145 -0
- package/dist/app/session-shell/image-preparation.d.ts +18 -0
- package/dist/app/session-shell/image-preparation.js +126 -0
- package/dist/app/session-shell/image-source.d.ts +13 -0
- package/dist/app/session-shell/image-source.js +171 -0
- package/dist/app/session-shell/image-worker.d.ts +17 -0
- package/dist/app/session-shell/image-worker.js +23 -0
- package/dist/app/session-shell/index.d.ts +7 -0
- package/dist/app/session-shell/index.js +4 -0
- package/dist/app/session-shell/paste-executor.d.ts +18 -0
- package/dist/app/session-shell/paste-executor.js +253 -0
- package/dist/app/session-shell/paste-helper.js +173 -0
- package/dist/app/session-shell/paste-preparation-client.d.ts +31 -0
- package/dist/app/session-shell/paste-preparation-client.js +170 -0
- package/dist/app/session-shell/paste-protocol.d.ts +78 -0
- package/dist/app/session-shell/paste-protocol.js +18 -0
- package/dist/app/session-shell/paste-text-preparation.d.ts +6 -0
- package/dist/app/session-shell/paste-text-preparation.js +134 -0
- package/dist/app/session-shell/paste-text-worker.js +12 -0
- package/dist/app/session-shell/paste-types.d.ts +17 -0
- package/dist/app/session-shell/path-chip-presentation.d.ts +7 -0
- package/dist/app/session-shell/path-chip-presentation.js +24 -0
- package/dist/app/session-shell/prompt-chips.d.ts +76 -0
- package/dist/app/session-shell/prompt-chips.js +507 -0
- package/dist/app/session-shell/prompt-history-controller.d.ts +36 -0
- package/dist/app/session-shell/prompt-history-controller.js +170 -0
- package/dist/app/session-shell/prompt-suggestion-controller.d.ts +35 -0
- package/dist/app/session-shell/prompt-suggestion-controller.js +207 -0
- package/dist/app/session-shell/quit-outro-effects.d.ts +29 -0
- package/dist/app/session-shell/quit-outro-effects.js +242 -0
- package/dist/app/session-shell/quit-outro.d.ts +38 -0
- package/dist/app/session-shell/quit-outro.js +98 -0
- package/dist/app/session-shell/response-copy-coordinator.d.ts +27 -0
- package/dist/app/session-shell/response-copy-coordinator.js +187 -0
- package/dist/app/session-shell/response-copy-helper.js +122 -0
- package/dist/app/session-shell/response-copy-protocol.d.ts +56 -0
- package/dist/app/session-shell/response-copy-protocol.js +5 -0
- package/dist/app/session-shell/response-copy-transport.d.ts +39 -0
- package/dist/app/session-shell/response-copy-transport.js +217 -0
- package/dist/app/session-shell/session-shell-root.d.ts +265 -0
- package/dist/app/session-shell/session-shell-root.js +1366 -0
- package/dist/app/session-shell/session-shell.d.ts +59 -0
- package/dist/app/session-shell/session-shell.js +1917 -0
- package/dist/app/session-shell/session-viewport-controller.d.ts +61 -0
- package/dist/app/session-shell/session-viewport-controller.js +597 -0
- package/dist/app/session-shell/stream-presentation-coalescer.d.ts +29 -0
- package/dist/app/session-shell/stream-presentation-coalescer.js +79 -0
- package/dist/app/session-shell/system-clipboard.d.ts +20 -0
- package/dist/app/session-shell/system-clipboard.js +159 -0
- package/dist/app/session-shell/text-paste.d.ts +5 -0
- package/dist/app/session-shell/text-paste.js +16 -0
- package/dist/cli/capabilities.d.ts +6 -0
- package/dist/cli/capabilities.js +7 -0
- package/dist/cli/dispatch.d.ts +46 -0
- package/dist/cli/dispatch.js +261 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/package-messages.d.ts +26 -0
- package/dist/cli/package-messages.js +71 -0
- package/dist/cli/packages.d.ts +32 -0
- package/dist/cli/packages.js +81 -0
- package/dist/cli/version-stats.d.ts +22 -0
- package/dist/cli/version-stats.js +112 -0
- package/dist/composition/index.d.ts +2 -0
- package/dist/composition/index.js +2 -0
- package/dist/composition/owned-ui.d.ts +37 -0
- package/dist/composition/owned-ui.js +136 -0
- package/dist/composition/settings-route-host.d.ts +7 -0
- package/dist/composition/settings-route-host.js +110 -0
- package/dist/contracts/agent-engine/capability-ports.d.ts +95 -0
- package/dist/contracts/agent-engine/domain-validation.js +107 -0
- package/dist/contracts/agent-engine/domain.d.ts +138 -0
- package/dist/contracts/agent-engine/index.d.ts +11 -0
- package/dist/contracts/agent-engine/index.js +6 -0
- package/dist/contracts/agent-engine/package-ports.d.ts +60 -0
- package/dist/contracts/agent-engine/ports.js +1 -0
- package/dist/contracts/owned-ui/extension-ui.d.ts +310 -0
- package/dist/contracts/owned-ui/image-attachments.d.ts +36 -0
- package/dist/contracts/owned-ui/image-attachments.js +67 -0
- package/dist/contracts/owned-ui/index.d.ts +12 -0
- package/dist/contracts/owned-ui/index.js +8 -0
- package/dist/contracts/owned-ui/model.d.ts +378 -0
- package/dist/contracts/owned-ui/prompt-history.d.ts +55 -0
- package/dist/contracts/owned-ui/prompt-history.js +23 -0
- package/dist/contracts/owned-ui/prompt-suggestions.d.ts +3 -0
- package/dist/contracts/owned-ui/prompt-suggestions.js +44 -0
- package/dist/contracts/owned-ui/suggestion-diagnostics.d.ts +22 -0
- package/dist/contracts/owned-ui/suggestion-diagnostics.js +9 -0
- package/dist/contracts/owned-ui/transcript-lifecycle.d.ts +5 -0
- package/dist/contracts/owned-ui/transcript-lifecycle.js +33 -0
- package/dist/contracts/owned-ui/validation.d.ts +15 -0
- package/dist/contracts/owned-ui/validation.js +523 -0
- package/dist/contracts/presentation/index.d.ts +104 -0
- package/dist/features/launch/development-launch.js +36 -0
- package/dist/features/launch/index.d.ts +12 -0
- package/dist/features/launch/index.js +6 -0
- package/dist/features/launch/intent.d.ts +12 -0
- package/dist/features/launch/intent.js +8 -0
- package/dist/features/launch/prepare-launch.d.ts +11 -0
- package/dist/features/launch/prepare-launch.js +14 -0
- package/dist/features/launch/profile-paths.d.ts +16 -0
- package/dist/features/launch/profile-paths.js +36 -0
- package/dist/features/launch/runtime-selection.d.ts +16 -0
- package/dist/features/launch/runtime-selection.js +13 -0
- package/dist/features/owned-ui/index.d.ts +6 -0
- package/dist/features/owned-ui/index.js +4 -0
- package/dist/features/owned-ui/project-trust-prompt.d.ts +25 -0
- package/dist/features/owned-ui/project-trust-prompt.js +149 -0
- package/dist/features/owned-ui/run.d.ts +17 -0
- package/dist/features/owned-ui/run.js +64 -0
- package/dist/features/owned-ui/session-fork-prompt.d.ts +8 -0
- package/dist/features/owned-ui/session-fork-prompt.js +34 -0
- package/dist/features/owned-ui/settings-app.d.ts +21 -0
- package/dist/features/owned-ui/settings-app.js +807 -0
- package/dist/features/owned-ui/settings-route.d.ts +2 -0
- package/dist/features/owned-ui/settings-route.js +2 -0
- package/dist/features/prompt-history/image-sidecar.d.ts +32 -0
- package/dist/features/prompt-history/image-sidecar.js +130 -0
- package/dist/features/prompt-history/index.d.ts +4 -0
- package/dist/features/prompt-history/index.js +3 -0
- package/dist/features/prompt-history/paths.d.ts +5 -0
- package/dist/features/prompt-history/paths.js +17 -0
- package/dist/features/prompt-history/service.d.ts +54 -0
- package/dist/features/prompt-history/service.js +425 -0
- package/dist/features/prompt-history/store.d.ts +16 -0
- package/dist/features/prompt-history/store.js +219 -0
- package/dist/features/prompt-history/worker.d.ts +9 -0
- package/dist/features/prompt-history/worker.js +45 -0
- package/dist/features/prompt-suggestions/diagnostics.d.ts +18 -0
- package/dist/features/prompt-suggestions/diagnostics.js +82 -0
- package/dist/features/prompt-suggestions/index.d.ts +2 -0
- package/dist/features/prompt-suggestions/index.js +1 -0
- package/dist/foundation/launch-context/index.d.ts +59 -0
- package/dist/foundation/launch-context/index.js +136 -0
- package/dist/foundation/launch-guardian/index.d.ts +2 -0
- package/dist/foundation/launch-guardian/index.js +1 -0
- package/dist/foundation/launch-guardian/main.d.ts +33 -0
- package/dist/foundation/launch-guardian/main.js +180 -0
- package/dist/foundation/lifecycle/commands.js +1 -0
- package/dist/foundation/lifecycle/index.d.ts +11 -0
- package/dist/foundation/lifecycle/index.js +5 -0
- package/dist/foundation/lifecycle/model.d.ts +64 -0
- package/dist/foundation/lifecycle/model.js +40 -0
- package/dist/foundation/lifecycle/paths.d.ts +30 -0
- package/dist/foundation/lifecycle/paths.js +70 -0
- package/dist/foundation/lifecycle/session-selection.d.ts +9 -0
- package/dist/foundation/lifecycle/session-selection.js +39 -0
- package/dist/foundation/lifecycle/supervisor-startup.d.ts +30 -0
- package/dist/foundation/lifecycle/supervisor-startup.js +106 -0
- package/dist/foundation/process-containment/darwin-process-inspector.d.ts +5 -0
- package/dist/foundation/process-containment/darwin-process-inspector.js +7 -0
- package/dist/foundation/process-containment/index.d.ts +8 -0
- package/dist/foundation/process-containment/index.js +6 -0
- package/dist/foundation/process-containment/linux-process-inspector.d.ts +7 -0
- package/dist/foundation/process-containment/linux-process-inspector.js +27 -0
- package/dist/foundation/process-containment/native-guardian-containment.d.ts +17 -0
- package/dist/foundation/process-containment/native-guardian-containment.js +140 -0
- package/dist/foundation/process-containment/windows-process-inspector.d.ts +19 -0
- package/dist/foundation/process-containment/windows-process-inspector.js +56 -0
- package/dist/foundation/protocol/client.d.ts +18 -0
- package/dist/foundation/protocol/client.js +130 -0
- package/dist/foundation/protocol/index.d.ts +3 -0
- package/dist/foundation/protocol/index.js +2 -0
- package/dist/foundation/protocol/messages.d.ts +90 -0
- package/dist/foundation/protocol/messages.js +100 -0
- package/dist/foundation/release/bootstrap.d.ts +51 -0
- package/dist/foundation/release/bootstrap.js +427 -0
- package/dist/foundation/release/cohort-state.d.ts +157 -0
- package/dist/foundation/release/cohort-state.js +472 -0
- package/dist/foundation/release/dependency-certification-retention.d.ts +7 -0
- package/dist/foundation/release/dependency-certification-retention.js +88 -0
- package/dist/foundation/release/dependency-certification.d.ts +24 -0
- package/dist/foundation/release/dependency-certification.js +266 -0
- package/dist/foundation/release/dependency-layer.d.ts +78 -0
- package/dist/foundation/release/dependency-layer.js +466 -0
- package/dist/foundation/release/endpoints.d.ts +24 -0
- package/dist/foundation/release/endpoints.js +134 -0
- package/dist/foundation/release/immutable-platform.d.ts +6 -0
- package/dist/foundation/release/immutable-platform.js +13 -0
- package/dist/foundation/release/index.d.ts +30 -0
- package/dist/foundation/release/index.js +16 -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-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 +119 -0
- package/dist/foundation/release/update.js +632 -0
- package/dist/foundation/release/warmup.d.ts +3 -0
- package/dist/foundation/release/warmup.js +47 -0
- package/dist/foundation/startup/index.d.ts +4 -0
- package/dist/foundation/startup/index.js +2 -0
- package/dist/foundation/startup/startup-budget.d.ts +46 -0
- package/dist/foundation/startup/startup-budget.js +42 -0
- package/dist/foundation/startup/startup-descriptor.js +34 -0
- package/dist/foundation/startup/startup-runtime.d.ts +27 -0
- package/dist/foundation/startup/startup-runtime.js +128 -0
- package/dist/foundation/storage/control-store.d.ts +18 -0
- package/dist/foundation/storage/control-store.js +342 -0
- package/dist/foundation/storage/index.d.ts +1 -0
- package/dist/foundation/storage/index.js +1 -0
- package/dist/foundation/supervision/index.d.ts +3 -0
- package/dist/foundation/supervision/index.js +3 -0
- package/dist/foundation/supervision/main.d.ts +1 -0
- package/dist/foundation/supervision/main.js +84 -0
- package/dist/foundation/supervision/paths.d.ts +1 -0
- package/dist/foundation/supervision/paths.js +1 -0
- package/dist/foundation/supervision/server.d.ts +46 -0
- package/dist/foundation/supervision/server.js +573 -0
- package/dist/foundation/terminal-cleanup/fatal-exit.d.ts +12 -0
- package/dist/foundation/terminal-cleanup/fatal-exit.js +87 -0
- package/dist/foundation/terminal-cleanup/index.d.ts +3 -0
- package/dist/foundation/terminal-cleanup/index.js +2 -0
- package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +4 -0
- package/dist/foundation/terminal-cleanup/terminal-reset.js +40 -0
- package/dist/integrations/pi/components/components.d.ts +4 -0
- package/dist/integrations/pi/components/components.js +64 -0
- package/dist/integrations/pi/components/conformance.d.ts +18 -0
- package/dist/integrations/pi/components/conformance.js +70 -0
- package/dist/integrations/pi/components/editor-interaction.d.ts +38 -0
- package/dist/integrations/pi/components/editor-interaction.js +1 -0
- package/dist/integrations/pi/components/history-editor-loader.d.ts +5 -0
- package/dist/integrations/pi/components/history-editor-loader.js +5 -0
- package/dist/integrations/pi/components/index.d.ts +21 -0
- package/dist/integrations/pi/components/index.js +13 -0
- package/dist/integrations/pi/components/owned-editor-ux.d.ts +74 -0
- package/dist/integrations/pi/components/owned-editor-ux.js +1094 -0
- package/dist/integrations/pi/components/path-word-ranges.d.ts +2 -0
- package/dist/integrations/pi/components/path-word-ranges.js +37 -0
- package/dist/integrations/pi/components/prompt-input-port.d.ts +18 -0
- package/dist/integrations/pi/components/prompt-input-port.js +1 -0
- package/dist/integrations/pi/components/resources/builtin-themes.d.ts +167 -0
- package/dist/integrations/pi/components/resources/builtin-themes.js +168 -0
- package/dist/integrations/pi/components/shell-components.d.ts +7 -0
- package/dist/integrations/pi/components/shell-components.js +7 -0
- package/dist/integrations/pi/components/shell-editor-autocomplete.js +298 -0
- package/dist/integrations/pi/components/shell-extension-ui.d.ts +35 -0
- package/dist/integrations/pi/components/shell-extension-ui.js +280 -0
- package/dist/integrations/pi/components/shell-footer-status.d.ts +7 -0
- package/dist/integrations/pi/components/shell-footer-status.js +248 -0
- package/dist/integrations/pi/components/shell-presenters-info.d.ts +43 -0
- package/dist/integrations/pi/components/shell-presenters-info.js +114 -0
- package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +29 -0
- package/dist/integrations/pi/components/shell-presenters-transcript.js +433 -0
- package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +123 -0
- package/dist/integrations/pi/components/shell-selectors-dialogs.js +242 -0
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +217 -0
- package/dist/integrations/pi/components/shell-shared-facade.js +92 -0
- package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +17 -0
- package/dist/integrations/pi/components/submitted-prompt-adapter.js +49 -0
- package/dist/integrations/pi/components/tool-image-presentation.d.ts +21 -0
- package/dist/integrations/pi/components/tool-image-presentation.js +83 -0
- package/dist/integrations/pi/components/tool-result-adapter.d.ts +6 -0
- package/dist/integrations/pi/components/tool-result-adapter.js +27 -0
- package/dist/integrations/pi/components/transcript-image-resolver.d.ts +7 -0
- package/dist/integrations/pi/components/transcript-image-resolver.js +19 -0
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +445 -0
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +370 -0
- package/dist/integrations/pi/components/upstream/assets/earendil-image.json +12 -0
- package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +13 -0
- package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +29 -0
- package/dist/integrations/pi/components/upstream/components/daxnuts.js +146 -0
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.d.ts +4 -0
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +48 -0
- package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +20 -0
- package/dist/integrations/pi/components/upstream/components/extension-editor.js +84 -0
- package/dist/integrations/pi/components/upstream/components/mermaid.js +81 -0
- package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +46 -0
- package/dist/integrations/pi/components/upstream/components/owned-editor.js +187 -0
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +59 -0
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +346 -0
- package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +11 -0
- package/dist/integrations/pi/components/upstream/components/session-footer.js +123 -0
- package/dist/integrations/pi/components/upstream/components/session-selector-search.js +161 -0
- package/dist/integrations/pi/components/upstream/components/session-selector.d.ts +95 -0
- package/dist/integrations/pi/components/upstream/components/session-selector.js +893 -0
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +21 -0
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +46 -0
- package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +35 -0
- package/dist/integrations/pi/components/upstream/components/status-indicator.js +69 -0
- package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +67 -0
- package/dist/integrations/pi/components/upstream/components/tool-execution.js +365 -0
- package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +101 -0
- package/dist/integrations/pi/components/upstream/components/tree-selector.js +1275 -0
- package/dist/integrations/pi/components/upstream/components/trust-selector.d.ts +33 -0
- package/dist/integrations/pi/components/upstream/components/trust-selector.js +81 -0
- package/dist/integrations/pi/components/upstream/external-editor.js +43 -0
- package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +289 -0
- package/dist/integrations/pi/components/upstream/history/editor-core.js +2144 -0
- package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +35 -0
- package/dist/integrations/pi/components/upstream/history/kill-ring.js +51 -0
- package/dist/integrations/pi/components/upstream/history/printable-key.d.ts +1 -0
- package/dist/integrations/pi/components/upstream/history/printable-key.js +43 -0
- package/dist/integrations/pi/components/upstream/history/text-helpers.d.ts +14 -0
- package/dist/integrations/pi/components/upstream/history/text-helpers.js +31 -0
- package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +25 -0
- package/dist/integrations/pi/components/upstream/history/undo-stack.js +39 -0
- package/dist/integrations/pi/components/upstream/history/word-navigation.d.ts +24 -0
- package/dist/integrations/pi/components/upstream/history/word-navigation.js +103 -0
- package/dist/integrations/pi/components/upstream/model-search.d.ts +18 -0
- package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +33 -0
- package/dist/integrations/pi/components/upstream/theme/theme-controller.js +114 -0
- package/dist/integrations/pi/components/upstream/theme/theme.d.ts +61 -0
- package/dist/integrations/pi/components/upstream/theme/theme.js +337 -0
- package/dist/integrations/pi/engine/adapter.d.ts +135 -0
- package/dist/integrations/pi/engine/adapter.js +648 -0
- package/dist/integrations/pi/engine/changelog.d.ts +2 -0
- package/dist/integrations/pi/engine/changelog.js +63 -0
- package/dist/integrations/pi/engine/command-dispatch.d.ts +41 -0
- package/dist/integrations/pi/engine/command-dispatch.js +125 -0
- package/dist/integrations/pi/engine/compaction-progress.d.ts +28 -0
- package/dist/integrations/pi/engine/compaction-progress.js +96 -0
- package/dist/integrations/pi/engine/conformance.d.ts +39 -0
- package/dist/integrations/pi/engine/conformance.js +140 -0
- package/dist/integrations/pi/engine/event-delivery.d.ts +100 -0
- package/dist/integrations/pi/engine/event-delivery.js +184 -0
- package/dist/integrations/pi/engine/extension-ui-binding.d.ts +35 -0
- package/dist/integrations/pi/engine/extension-ui-binding.js +81 -0
- package/dist/integrations/pi/engine/http-dispatcher.d.ts +4 -0
- package/dist/integrations/pi/engine/http-dispatcher.js +25 -0
- package/dist/integrations/pi/engine/index.d.ts +18 -0
- package/dist/integrations/pi/engine/index.js +10 -0
- package/dist/integrations/pi/engine/message-values.d.ts +29 -0
- package/dist/integrations/pi/engine/message-values.js +168 -0
- package/dist/integrations/pi/engine/package-integration.d.ts +13 -0
- package/dist/integrations/pi/engine/package-integration.js +118 -0
- package/dist/integrations/pi/engine/pending-delivery.d.ts +30 -0
- package/dist/integrations/pi/engine/pending-delivery.js +156 -0
- package/dist/integrations/pi/engine/pi-settings-metadata.json +385 -0
- package/dist/integrations/pi/engine/project-trust-preflight.d.ts +22 -0
- package/dist/integrations/pi/engine/project-trust-preflight.js +50 -0
- package/dist/integrations/pi/engine/prompt-suggestions.d.ts +30 -0
- package/dist/integrations/pi/engine/prompt-suggestions.js +102 -0
- package/dist/integrations/pi/engine/provider-authentication.d.ts +34 -0
- package/dist/integrations/pi/engine/provider-authentication.js +209 -0
- package/dist/integrations/pi/engine/resource-catalog.d.ts +49 -0
- package/dist/integrations/pi/engine/resource-catalog.js +289 -0
- package/dist/integrations/pi/engine/resources/changelog.json +12 -0
- package/dist/integrations/pi/engine/runtime-integration.d.ts +53 -0
- package/dist/integrations/pi/engine/runtime-integration.js +118 -0
- package/dist/integrations/pi/engine/session-events.d.ts +48 -0
- package/dist/integrations/pi/engine/session-events.js +223 -0
- package/dist/integrations/pi/engine/session-integration.d.ts +67 -0
- package/dist/integrations/pi/engine/session-integration.js +195 -0
- package/dist/integrations/pi/engine/session-runtime.d.ts +84 -0
- package/dist/integrations/pi/engine/session-runtime.js +249 -0
- package/dist/integrations/pi/engine/session-selection.d.ts +28 -0
- package/dist/integrations/pi/engine/session-selection.js +90 -0
- package/dist/integrations/pi/engine/settings-bridge.d.ts +121 -0
- package/dist/integrations/pi/engine/settings-bridge.js +514 -0
- package/dist/integrations/pi/engine/settings-metadata.d.ts +31 -0
- package/dist/integrations/pi/engine/settings-metadata.js +67 -0
- package/dist/integrations/pi/engine/settings-port.d.ts +42 -0
- package/dist/integrations/pi/engine/settings-port.js +353 -0
- package/dist/integrations/pi/engine/tool-rendering.d.ts +13 -0
- package/dist/integrations/pi/engine/tool-rendering.js +145 -0
- package/dist/integrations/pi/engine/transcript-image-assets.d.ts +11 -0
- package/dist/integrations/pi/engine/transcript-image-assets.js +86 -0
- package/dist/integrations/pi/engine/transcript-projection.d.ts +39 -0
- package/dist/integrations/pi/engine/transcript-projection.js +405 -0
- package/dist/integrations/pi/engine/usage-view.d.ts +4 -0
- package/dist/integrations/pi/engine/usage-view.js +56 -0
- package/dist/integrations/pi/engine/windows-filesystem-hygiene.d.ts +21 -0
- package/dist/integrations/pi/engine/windows-filesystem-hygiene.js +55 -0
- package/dist/integrations/pi/engine/workflow-contexts.d.ts +59 -0
- package/dist/integrations/pi/engine/workflow-contexts.js +316 -0
- package/dist/integrations/pi/engine/workflow-runner.d.ts +60 -0
- package/dist/integrations/pi/engine/workflow-runner.js +509 -0
- package/dist/integrations/pi/engine/workflow-support.d.ts +33 -0
- package/dist/integrations/pi/engine/workflow-support.js +352 -0
- package/dist/integrations/pi/engine/workflows.d.ts +251 -0
- package/dist/integrations/pi/engine/workflows.js +63 -0
- package/dist/integrations/pi/startup-public.d.ts +2 -0
- package/dist/integrations/pi/startup-public.js +2223 -0
- package/dist/integrations/pi/startup-public.manifest.json +12502 -0
- package/dist/integrations/pi/tui-runtime/adapter.d.ts +56 -0
- package/dist/integrations/pi/tui-runtime/adapter.js +783 -0
- package/dist/integrations/pi/tui-runtime/contracts.d.ts +156 -0
- package/dist/integrations/pi/tui-runtime/contracts.js +1 -0
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +88 -0
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +433 -0
- package/dist/integrations/pi/tui-runtime/index.d.ts +9 -0
- package/dist/integrations/pi/tui-runtime/index.js +5 -0
- package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +39 -0
- package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.js +139 -0
- package/dist/integrations/pi/tui-runtime/mouse-report-input.d.ts +13 -0
- package/dist/integrations/pi/tui-runtime/mouse-report-input.js +57 -0
- package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +32 -0
- package/dist/integrations/pi/tui-runtime/overlay-geometry.js +158 -0
- package/dist/integrations/pi/tui-runtime/presentation-adapter.d.ts +4 -0
- package/dist/integrations/pi/tui-runtime/presentation-adapter.js +48 -0
- package/dist/native/darwin-arm64/manifest.json +4 -4
- package/dist/native/darwin-arm64/process-guardian +0 -0
- package/dist/native/linux-x64/manifest.json +3 -3
- package/dist/native/linux-x64/process-guardian +0 -0
- package/dist/native/win32-x64/manifest.json +3 -3
- package/dist/native/win32-x64/process-guardian.exe +0 -0
- package/dist/product-identity.d.ts +37 -0
- package/dist/product-identity.js +119 -0
- package/dist/product-identity.json +85 -0
- package/dist/runtime-payload-inventory.json +127147 -0
- package/dist/ui/apps/contracts.d.ts +64 -0
- package/dist/ui/apps/host.d.ts +42 -0
- package/dist/ui/apps/host.js +156 -0
- package/dist/ui/apps/index.d.ts +5 -0
- package/dist/ui/apps/index.js +3 -0
- package/dist/ui/apps/registry.d.ts +12 -0
- package/dist/ui/apps/registry.js +33 -0
- package/dist/ui/components/dialog-panel.js +49 -0
- package/dist/ui/components/frame.d.ts +22 -0
- package/dist/ui/components/frame.js +55 -0
- package/dist/ui/components/index.d.ts +47 -0
- package/dist/ui/components/index.js +25 -0
- package/dist/ui/components/line-input.d.ts +68 -0
- package/dist/ui/components/line-input.js +224 -0
- package/dist/ui/components/list-view.d.ts +60 -0
- package/dist/ui/components/list-view.js +82 -0
- package/dist/ui/components/mouse.d.ts +25 -0
- package/dist/ui/components/mouse.js +70 -0
- package/dist/ui/components/progress-status.d.ts +2 -0
- package/dist/ui/components/progress-status.js +4 -0
- package/dist/ui/components/prompt-input.d.ts +32 -0
- package/dist/ui/components/prompt-input.js +51 -0
- package/dist/ui/components/scrollbar.d.ts +88 -0
- package/dist/ui/components/scrollbar.js +137 -0
- package/dist/ui/components/selection-copy.d.ts +24 -0
- package/dist/ui/components/selection-copy.js +39 -0
- package/dist/ui/components/shortcuts.d.ts +58 -0
- package/dist/ui/components/shortcuts.js +82 -0
- package/dist/ui/components/spans.d.ts +28 -0
- package/dist/ui/components/spans.js +266 -0
- package/dist/ui/components/submitted-prompt.d.ts +23 -0
- package/dist/ui/components/submitted-prompt.js +50 -0
- package/dist/ui/components/surface.d.ts +20 -0
- package/dist/ui/components/surface.js +44 -0
- package/dist/ui/components/text-selection.d.ts +62 -0
- package/dist/ui/components/text-selection.js +210 -0
- package/dist/ui/components/text.d.ts +38 -0
- package/dist/ui/components/text.js +185 -0
- package/dist/ui/components/transcript-viewport.d.ts +173 -0
- package/dist/ui/components/transcript-viewport.js +753 -0
- package/dist/ui/components/visible-hyperlinks.d.ts +26 -0
- package/dist/ui/components/visible-hyperlinks.js +97 -0
- package/dist/ui/settings/declarations.d.ts +141 -0
- package/dist/ui/settings/declarations.js +135 -0
- package/dist/ui/settings/index.d.ts +10 -0
- package/dist/ui/settings/index.js +5 -0
- package/dist/ui/settings/manager.d.ts +54 -0
- package/dist/ui/settings/manager.js +256 -0
- package/dist/ui/settings/migrations.d.ts +13 -0
- package/dist/ui/settings/migrations.js +74 -0
- package/dist/ui/settings/sections.d.ts +52 -0
- package/dist/ui/settings/sections.js +112 -0
- package/docs/architecture/boundaries.md +17 -13
- package/docs/architecture/code-documentation.md +77 -0
- package/docs/architecture/history-editor-provenance.md +100 -0
- package/docs/architecture/internal-naming.md +91 -0
- package/docs/architecture/process-guardian-provenance.md +3 -1
- package/docs/architecture/project-structure.md +69 -30
- package/docs/architecture/prompt-suggestions.md +68 -0
- package/docs/architecture/resource-and-data-policy.md +28 -2
- package/docs/architecture/response-copy-delivery.md +85 -0
- package/docs/architecture/terminal-host-proof-gate.md +1 -1
- package/docs/architecture/terminal-host-spike-evidence.md +1 -1
- package/docs/architecture/tool-image-presentation.md +62 -0
- package/docs/architecture/toolchain.md +32 -10
- package/docs/architecture/ui-reference-provenance.md +60 -6
- package/docs/ci-release-runbook.md +256 -79
- package/docs/features/launch-profiles.md +24 -17
- package/docs/features/modal-content-interaction.md +37 -0
- package/docs/features/prompt-history.md +149 -0
- package/docs/local-worktree-cleanup.md +212 -0
- package/docs/manual-code-streaming-cleanup.md +88 -0
- package/docs/manual-ghost-link-baseline.md +89 -0
- package/docs/manual-launch-instance-acceptance.md +12 -35
- package/docs/manual-owned-ui-checkpoint.md +79 -0
- package/docs/manual-pi-boundary-candidate.md +4 -5
- package/docs/manual-terminal-colour-check.md +4 -3
- package/docs/openspec-archive-automation.md +259 -0
- package/docs/repository-governance-live-acceptance.md +77 -0
- package/docs/validation.md +100 -0
- package/package.json +49 -34
- package/dist/src/cli/capabilities.d.ts +0 -15
- package/dist/src/cli/capabilities.js +0 -7
- package/dist/src/cli/dispatch.d.ts +0 -32
- package/dist/src/cli/dispatch.js +0 -142
- package/dist/src/cli/index.d.ts +0 -5
- package/dist/src/cli/index.js +0 -5
- package/dist/src/cli/packages.d.ts +0 -23
- package/dist/src/cli/packages.js +0 -84
- package/dist/src/cli/version-stats.d.ts +0 -16
- package/dist/src/cli/version-stats.js +0 -72
- package/dist/src/cli/version.d.ts +0 -2
- package/dist/src/cli/version.js +0 -23
- package/dist/src/composition/index.d.ts +0 -48
- package/dist/src/composition/index.js +0 -258
- package/dist/src/features/launch/development-launch.js +0 -28
- package/dist/src/features/launch/index.d.ts +0 -7
- package/dist/src/features/launch/index.js +0 -7
- package/dist/src/features/launch/intent.d.ts +0 -7
- package/dist/src/features/launch/intent.js +0 -4
- package/dist/src/features/launch/prepare-launch.d.ts +0 -13
- package/dist/src/features/launch/prepare-launch.js +0 -21
- package/dist/src/features/launch/profile-paths.d.ts +0 -15
- package/dist/src/features/launch/profile-paths.js +0 -31
- package/dist/src/features/launch/profiles.d.ts +0 -12
- package/dist/src/features/launch/profiles.js +0 -26
- package/dist/src/features/launch/runtime-selection.d.ts +0 -19
- package/dist/src/features/launch/runtime-selection.js +0 -13
- package/dist/src/features/owned-ui/customization.d.ts +0 -38
- package/dist/src/features/owned-ui/customization.js +0 -108
- package/dist/src/features/owned-ui/diagnostics.d.ts +0 -33
- package/dist/src/features/owned-ui/diagnostics.js +0 -94
- package/dist/src/features/owned-ui/index.d.ts +0 -4
- package/dist/src/features/owned-ui/index.js +0 -4
- package/dist/src/features/owned-ui/run.d.ts +0 -11
- package/dist/src/features/owned-ui/run.js +0 -15
- package/dist/src/features/owned-ui/settings-app.d.ts +0 -22
- package/dist/src/features/owned-ui/settings-app.js +0 -633
- package/dist/src/features/workspace/capabilities.d.ts +0 -31
- package/dist/src/features/workspace/capabilities.js +0 -75
- package/dist/src/features/workspace/index.d.ts +0 -6
- package/dist/src/features/workspace/index.js +0 -6
- package/dist/src/features/workspace/presentation.d.ts +0 -30
- package/dist/src/features/workspace/presentation.js +0 -70
- package/dist/src/features/workspace/reconciliation.d.ts +0 -15
- package/dist/src/features/workspace/reconciliation.js +0 -82
- package/dist/src/features/workspace/reducer.d.ts +0 -42
- package/dist/src/features/workspace/reducer.js +0 -213
- package/dist/src/features/workspace/router.d.ts +0 -31
- package/dist/src/features/workspace/router.js +0 -124
- package/dist/src/features/workspace/store.d.ts +0 -17
- package/dist/src/features/workspace/store.js +0 -54
- package/dist/src/foundation/agent-engine-contracts/capability-ports.d.ts +0 -95
- package/dist/src/foundation/agent-engine-contracts/domain-validation.js +0 -89
- package/dist/src/foundation/agent-engine-contracts/domain.d.ts +0 -116
- package/dist/src/foundation/agent-engine-contracts/index.d.ts +0 -8
- package/dist/src/foundation/agent-engine-contracts/index.js +0 -8
- package/dist/src/foundation/agent-engine-contracts/package-ports.d.ts +0 -54
- package/dist/src/foundation/launch-guardian/index.d.ts +0 -1
- package/dist/src/foundation/launch-guardian/index.js +0 -1
- package/dist/src/foundation/launch-guardian/main.d.ts +0 -31
- package/dist/src/foundation/launch-guardian/main.js +0 -165
- package/dist/src/foundation/lifecycle/index.d.ts +0 -4
- package/dist/src/foundation/lifecycle/index.js +0 -4
- package/dist/src/foundation/lifecycle/model.d.ts +0 -64
- package/dist/src/foundation/lifecycle/model.js +0 -40
- package/dist/src/foundation/lifecycle/paths.d.ts +0 -10
- package/dist/src/foundation/lifecycle/paths.js +0 -42
- package/dist/src/foundation/native-host-protocol/codec.d.ts +0 -11
- package/dist/src/foundation/native-host-protocol/codec.js +0 -56
- package/dist/src/foundation/native-host-protocol/evidence.d.ts +0 -67
- package/dist/src/foundation/native-host-protocol/evidence.js +0 -141
- package/dist/src/foundation/native-host-protocol/index.d.ts +0 -4
- package/dist/src/foundation/native-host-protocol/index.js +0 -4
- package/dist/src/foundation/native-host-protocol/messages.d.ts +0 -56
- package/dist/src/foundation/native-host-protocol/messages.js +0 -149
- package/dist/src/foundation/native-host-protocol/proof-gate.d.ts +0 -13
- package/dist/src/foundation/native-host-protocol/proof-gate.js +0 -33
- package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts +0 -302
- package/dist/src/foundation/owned-ui-contracts/index.d.ts +0 -3
- package/dist/src/foundation/owned-ui-contracts/index.js +0 -3
- package/dist/src/foundation/owned-ui-contracts/model.d.ts +0 -241
- package/dist/src/foundation/owned-ui-contracts/validation.d.ts +0 -11
- package/dist/src/foundation/owned-ui-contracts/validation.js +0 -395
- package/dist/src/foundation/owned-ui-settings/declarations.d.ts +0 -13
- package/dist/src/foundation/owned-ui-settings/declarations.js +0 -39
- package/dist/src/foundation/owned-ui-settings/index.d.ts +0 -6
- package/dist/src/foundation/owned-ui-settings/index.js +0 -6
- package/dist/src/foundation/owned-ui-settings/migrations.d.ts +0 -13
- package/dist/src/foundation/owned-ui-settings/migrations.js +0 -28
- package/dist/src/foundation/owned-ui-settings/sections.d.ts +0 -70
- package/dist/src/foundation/owned-ui-settings/sections.js +0 -93
- package/dist/src/foundation/owned-ui-settings/session.d.ts +0 -44
- package/dist/src/foundation/owned-ui-settings/session.js +0 -145
- package/dist/src/foundation/owned-ui-settings/store.d.ts +0 -28
- package/dist/src/foundation/owned-ui-settings/store.js +0 -90
- package/dist/src/foundation/pi-component-adapter/components.d.ts +0 -4
- package/dist/src/foundation/pi-component-adapter/components.js +0 -64
- package/dist/src/foundation/pi-component-adapter/conformance.d.ts +0 -17
- package/dist/src/foundation/pi-component-adapter/conformance.js +0 -69
- package/dist/src/foundation/pi-component-adapter/index.d.ts +0 -13
- package/dist/src/foundation/pi-component-adapter/index.js +0 -13
- package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.d.ts +0 -165
- package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.js +0 -166
- package/dist/src/foundation/pi-component-adapter/shell-components.d.ts +0 -6
- package/dist/src/foundation/pi-component-adapter/shell-components.js +0 -6
- package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +0 -162
- package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts +0 -35
- package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js +0 -279
- package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts +0 -7
- package/dist/src/foundation/pi-component-adapter/shell-footer-status.js +0 -189
- package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -57
- package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js +0 -429
- package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts +0 -113
- package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js +0 -235
- package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -116
- package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js +0 -87
- package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts +0 -422
- package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js +0 -296
- package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts +0 -10
- package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts +0 -17
- package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js +0 -51
- package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts +0 -22
- package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js +0 -142
- package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts +0 -4
- package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +0 -19
- package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts +0 -17
- package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js +0 -81
- package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts +0 -24
- package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js +0 -105
- package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts +0 -2
- package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js +0 -18
- package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js +0 -77
- package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.d.ts +0 -18
- package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.js +0 -55
- package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts +0 -55
- package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js +0 -342
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.d.ts +0 -10
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.js +0 -120
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js +0 -159
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts +0 -95
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js +0 -889
- package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts +0 -19
- package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js +0 -44
- package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts +0 -30
- package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js +0 -59
- package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts +0 -98
- package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js +0 -1272
- package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts +0 -33
- package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js +0 -76
- package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js +0 -39
- package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts +0 -15
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts +0 -25
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js +0 -117
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts +0 -61
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js +0 -326
- package/dist/src/foundation/pi-engine-adapter/adapter.d.ts +0 -164
- package/dist/src/foundation/pi-engine-adapter/adapter.js +0 -2367
- package/dist/src/foundation/pi-engine-adapter/conformance.d.ts +0 -37
- package/dist/src/foundation/pi-engine-adapter/conformance.js +0 -130
- package/dist/src/foundation/pi-engine-adapter/index.d.ts +0 -10
- package/dist/src/foundation/pi-engine-adapter/index.js +0 -10
- package/dist/src/foundation/pi-engine-adapter/model-auth-integration.d.ts +0 -30
- package/dist/src/foundation/pi-engine-adapter/model-auth-integration.js +0 -61
- package/dist/src/foundation/pi-engine-adapter/package-integration.d.ts +0 -13
- package/dist/src/foundation/pi-engine-adapter/package-integration.js +0 -112
- package/dist/src/foundation/pi-engine-adapter/pi-settings-metadata.json +0 -374
- package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.d.ts +0 -31
- package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.js +0 -80
- package/dist/src/foundation/pi-engine-adapter/runtime-integration.d.ts +0 -35
- package/dist/src/foundation/pi-engine-adapter/runtime-integration.js +0 -67
- package/dist/src/foundation/pi-engine-adapter/session-integration.d.ts +0 -43
- package/dist/src/foundation/pi-engine-adapter/session-integration.js +0 -97
- package/dist/src/foundation/pi-engine-adapter/settings-integration.d.ts +0 -55
- package/dist/src/foundation/pi-engine-adapter/settings-integration.js +0 -233
- package/dist/src/foundation/pi-engine-adapter/workflow-controllers.d.ts +0 -20
- package/dist/src/foundation/pi-engine-adapter/workflow-controllers.js +0 -48
- package/dist/src/foundation/pi-engine-adapter/workflows.d.ts +0 -173
- package/dist/src/foundation/pi-engine-adapter/workflows.js +0 -60
- package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +0 -2
- package/dist/src/foundation/pi-owned-ui-integration/index.js +0 -2
- package/dist/src/foundation/pi-owned-ui-integration/route-host.d.ts +0 -29
- package/dist/src/foundation/pi-owned-ui-integration/session-shell.d.ts +0 -106
- package/dist/src/foundation/pi-owned-ui-integration/session-shell.js +0 -1518
- package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts +0 -39
- package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js +0 -493
- package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts +0 -18
- package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js +0 -145
- package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts +0 -120
- package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts +0 -4
- package/dist/src/foundation/pi-tui-runtime-adapter/index.js +0 -4
- package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.d.ts +0 -4
- package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.js +0 -48
- package/dist/src/foundation/presentation-contracts/index.d.ts +0 -96
- package/dist/src/foundation/process-containment/index.d.ts +0 -5
- package/dist/src/foundation/process-containment/index.js +0 -5
- package/dist/src/foundation/process-containment/linux-process-inspector.d.ts +0 -6
- package/dist/src/foundation/process-containment/linux-process-inspector.js +0 -26
- package/dist/src/foundation/process-containment/native-guardian-containment.d.ts +0 -16
- package/dist/src/foundation/process-containment/native-guardian-containment.js +0 -139
- package/dist/src/foundation/process-containment/windows-process-inspector.d.ts +0 -17
- package/dist/src/foundation/process-containment/windows-process-inspector.js +0 -53
- package/dist/src/foundation/protocol/client.d.ts +0 -17
- package/dist/src/foundation/protocol/client.js +0 -129
- package/dist/src/foundation/protocol/index.d.ts +0 -2
- package/dist/src/foundation/protocol/index.js +0 -2
- package/dist/src/foundation/protocol/messages.d.ts +0 -89
- package/dist/src/foundation/protocol/messages.js +0 -99
- package/dist/src/foundation/release/bootstrap.d.ts +0 -29
- package/dist/src/foundation/release/bootstrap.js +0 -335
- package/dist/src/foundation/release/cohort-state.d.ts +0 -70
- package/dist/src/foundation/release/cohort-state.js +0 -202
- package/dist/src/foundation/release/index.d.ts +0 -10
- package/dist/src/foundation/release/index.js +0 -10
- package/dist/src/foundation/release/release-gc.d.ts +0 -5
- package/dist/src/foundation/release/release-gc.js +0 -16
- package/dist/src/foundation/release/release-store.d.ts +0 -43
- package/dist/src/foundation/release/release-store.js +0 -175
- package/dist/src/foundation/release/release.d.ts +0 -38
- package/dist/src/foundation/release/release.js +0 -204
- package/dist/src/foundation/release/update-transaction.d.ts +0 -31
- package/dist/src/foundation/release/update-transaction.js +0 -89
- package/dist/src/foundation/release/update.d.ts +0 -82
- package/dist/src/foundation/release/update.js +0 -529
- package/dist/src/foundation/storage/control-store.d.ts +0 -61
- package/dist/src/foundation/storage/control-store.js +0 -530
- package/dist/src/foundation/storage/index.d.ts +0 -1
- package/dist/src/foundation/storage/index.js +0 -1
- package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts +0 -46
- package/dist/src/foundation/structured-agent-runtime/backpressure.js +0 -118
- package/dist/src/foundation/structured-agent-runtime/commands.d.ts +0 -52
- package/dist/src/foundation/structured-agent-runtime/commands.js +0 -164
- package/dist/src/foundation/structured-agent-runtime/handshake.d.ts +0 -41
- package/dist/src/foundation/structured-agent-runtime/handshake.js +0 -151
- package/dist/src/foundation/structured-agent-runtime/index.d.ts +0 -5
- package/dist/src/foundation/structured-agent-runtime/index.js +0 -5
- package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts +0 -37
- package/dist/src/foundation/structured-agent-runtime/reconnection.js +0 -129
- package/dist/src/foundation/structured-agent-runtime/state.d.ts +0 -56
- package/dist/src/foundation/structured-agent-runtime/state.js +0 -118
- package/dist/src/foundation/supervision/index.d.ts +0 -3
- package/dist/src/foundation/supervision/index.js +0 -3
- package/dist/src/foundation/supervision/main.d.ts +0 -1
- package/dist/src/foundation/supervision/main.js +0 -41
- package/dist/src/foundation/supervision/paths.d.ts +0 -1
- package/dist/src/foundation/supervision/paths.js +0 -1
- package/dist/src/foundation/supervision/server.d.ts +0 -22
- package/dist/src/foundation/supervision/server.js +0 -451
- package/dist/src/foundation/ui-apps/contracts.d.ts +0 -42
- package/dist/src/foundation/ui-apps/host.d.ts +0 -42
- package/dist/src/foundation/ui-apps/host.js +0 -152
- package/dist/src/foundation/ui-apps/index.d.ts +0 -3
- package/dist/src/foundation/ui-apps/index.js +0 -3
- package/dist/src/foundation/ui-apps/registry.d.ts +0 -11
- package/dist/src/foundation/ui-apps/registry.js +0 -32
- package/dist/src/foundation/ui-components/dialog-panel.js +0 -47
- package/dist/src/foundation/ui-components/frame.d.ts +0 -21
- package/dist/src/foundation/ui-components/frame.js +0 -54
- package/dist/src/foundation/ui-components/index.d.ts +0 -18
- package/dist/src/foundation/ui-components/index.js +0 -18
- package/dist/src/foundation/ui-components/line-input.d.ts +0 -74
- package/dist/src/foundation/ui-components/line-input.js +0 -245
- package/dist/src/foundation/ui-components/list-view.d.ts +0 -66
- package/dist/src/foundation/ui-components/list-view.js +0 -76
- package/dist/src/foundation/ui-components/mouse.d.ts +0 -15
- package/dist/src/foundation/ui-components/mouse.js +0 -46
- package/dist/src/foundation/ui-components/scrollbar.d.ts +0 -62
- package/dist/src/foundation/ui-components/scrollbar.js +0 -102
- package/dist/src/foundation/ui-components/shortcuts.d.ts +0 -57
- package/dist/src/foundation/ui-components/shortcuts.js +0 -81
- package/dist/src/foundation/ui-components/spans.d.ts +0 -7
- package/dist/src/foundation/ui-components/spans.js +0 -59
- package/dist/src/foundation/ui-components/surface.d.ts +0 -20
- package/dist/src/foundation/ui-components/surface.js +0 -38
- package/dist/src/foundation/ui-components/text.d.ts +0 -24
- package/dist/src/foundation/ui-components/text.js +0 -123
- package/dist/src/foundation/workspace-contracts/index.d.ts +0 -2
- package/dist/src/foundation/workspace-contracts/index.js +0 -2
- package/dist/src/foundation/workspace-contracts/model.d.ts +0 -248
- package/dist/src/foundation/workspace-contracts/model.js +0 -2
- package/dist/src/foundation/workspace-contracts/validation.d.ts +0 -13
- package/dist/src/foundation/workspace-contracts/validation.js +0 -335
- package/dist/src/product-identity.d.ts +0 -37
- package/dist/src/product-identity.js +0 -150
- package/dist/src/product-identity.json +0 -99
- package/docs/manual-transparent-checkpoint.md +0 -53
- /package/dist/{src/foundation/agent-engine-contracts/domain.js → app/session-shell/paste-helper.d.ts} +0 -0
- /package/dist/{src/foundation/agent-engine-contracts/ports.js → app/session-shell/paste-text-worker.d.ts} +0 -0
- /package/dist/{src/foundation/lifecycle/commands.js → app/session-shell/paste-types.js} +0 -0
- /package/dist/{src/foundation/pi-owned-ui-integration/route-host.js → app/session-shell/response-copy-helper.d.ts} +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/capability-ports.js +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain-validation.d.ts +0 -0
- /package/dist/{src/foundation/pi-tui-runtime-adapter/contracts.js → contracts/agent-engine/domain.js} +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.d.ts +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.js +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/package-ports.js +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/ports.d.ts +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.d.ts +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.js +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.d.ts +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.js +0 -0
- /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/extension-ui.js +0 -0
- /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/model.js +0 -0
- /package/dist/{src/foundation/presentation-contracts → contracts/presentation}/index.js +0 -0
- /package/dist/{src/features → features}/launch/development-launch.d.ts +0 -0
- /package/dist/{src/features → features}/launch/initialize-profile.d.ts +0 -0
- /package/dist/{src/features → features}/launch/initialize-profile.js +0 -0
- /package/dist/{src/foundation → foundation}/lifecycle/commands.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.js +0 -0
- /package/dist/{src/foundation → foundation}/process-containment/artifact.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/process-containment/artifact.js +0 -0
- /package/dist/{src/foundation → foundation}/process-containment/contracts.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/process-containment/contracts.js +0 -0
- /package/dist/{src/foundation → foundation}/release/cohort-selection.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/release/cohort-selection.js +0 -0
- /package/dist/{src/foundation → foundation}/release/concurrency.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/release/concurrency.js +0 -0
- /package/dist/{src/foundation → foundation}/release/process-cleanup.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/release/process-cleanup.js +0 -0
- /package/dist/{src/foundation → foundation}/release/stable-release.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/release/stable-release.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-editor-autocomplete.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/countdown-timer.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/mermaid.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector-search.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/external-editor.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/model-search.js +0 -0
- /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.d.ts +0 -0
- /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.js +0 -0
- /package/dist/{src/foundation/ui-apps → ui/apps}/contracts.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/dialog-panel.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/label.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/label.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/list-block.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/list-block.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/pane.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/pane.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/revision.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/revision.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/status-line.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/status-line.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/stepper.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/stepper.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/theme.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/theme.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/value-menu.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/value-menu.js +0 -0
- /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.d.ts +0 -0
- /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.js +0 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { ArminComponent, BorderedLoader, DynamicBorder, ExtensionSelectorComponent, getSelectListTheme, LoginDialogComponent, ModelSelectorComponent, OAuthSelectorComponent, SettingsSelectorComponent, ShowImagesSelectorComponent, ThemeSelectorComponent, ThinkingSelectorComponent, UserMessageSelectorComponent, } from "../startup-public.js";
|
|
2
|
+
import { DaxnutsComponent, } from "./upstream/components/daxnuts.js";
|
|
3
|
+
import { EarendilAnnouncementComponent, } from "./upstream/components/earendil-announcement.js";
|
|
4
|
+
import { SessionSelectorComponent, } from "./upstream/components/session-selector.js";
|
|
5
|
+
import { TreeSelectorComponent, } from "./upstream/components/tree-selector.js";
|
|
6
|
+
import { Box, Container, SelectList, Spacer, Text, } from "@earendil-works/pi-tui";
|
|
7
|
+
import { ScopedModelsSelectorComponent, } from "./upstream/components/scoped-models-selector.js";
|
|
8
|
+
import { TrustSelectorComponent, } from "./upstream/components/trust-selector.js";
|
|
9
|
+
import { PINNED_PI_LAYOUT, piTheme, } from "./theme.js";
|
|
10
|
+
import { componentFromPort, componentPort, createTuiFacade, ensureTheme, isRecord, } from "./shell-shared-facade.js";
|
|
11
|
+
export function createPiShellSelector(options) {
|
|
12
|
+
ensureTheme();
|
|
13
|
+
const items = options.options.map(toSelectItem);
|
|
14
|
+
const list = new SelectList(items, options.maxVisible ?? Math.min(PINNED_PI_LAYOUT.selectorMaxVisible, Math.max(1, items.length)), getSelectListTheme());
|
|
15
|
+
if (options.onSelect !== undefined)
|
|
16
|
+
list.onSelect = item => options.onSelect?.(item.value);
|
|
17
|
+
if (options.onCancel !== undefined)
|
|
18
|
+
list.onCancel = options.onCancel;
|
|
19
|
+
if (!options.title)
|
|
20
|
+
return componentPort(list);
|
|
21
|
+
const container = new Container();
|
|
22
|
+
container.addChild(new Text(piTheme().fg("accent", piTheme().bold(options.title)), PINNED_PI_LAYOUT.contentPaddingX, 0));
|
|
23
|
+
container.addChild(list);
|
|
24
|
+
return componentPort(container, data => list.handleInput(data));
|
|
25
|
+
}
|
|
26
|
+
export function createPiShellSettingsSelector(options) {
|
|
27
|
+
ensureTheme();
|
|
28
|
+
// Protocol: one-argument callbacks pass the value; the per-model callbacks carry (provider, modelId[, level]) as a tuple.
|
|
29
|
+
const change = (name) => (...values) => options.onChange(name, values.length > 1 ? values : values[0]);
|
|
30
|
+
const callbacks = {
|
|
31
|
+
onAutoCompactChange: change("onAutoCompactChange"),
|
|
32
|
+
onShowImagesChange: change("onShowImagesChange"),
|
|
33
|
+
onImageWidthCellsChange: change("onImageWidthCellsChange"),
|
|
34
|
+
onAutoResizeImagesChange: change("onAutoResizeImagesChange"),
|
|
35
|
+
onBlockImagesChange: change("onBlockImagesChange"),
|
|
36
|
+
onEnableSkillCommandsChange: change("onEnableSkillCommandsChange"),
|
|
37
|
+
onSteeringModeChange: change("onSteeringModeChange"),
|
|
38
|
+
onFollowUpModeChange: change("onFollowUpModeChange"),
|
|
39
|
+
onTransportChange: change("onTransportChange"),
|
|
40
|
+
onHttpIdleTimeoutMsChange: change("onHttpIdleTimeoutMsChange"),
|
|
41
|
+
onModelThinkingLevelChange: change("onModelThinkingLevelChange"),
|
|
42
|
+
onModelThinkingLevelRemove: change("onModelThinkingLevelRemove"),
|
|
43
|
+
onThemeChange: change("onThemeChange"),
|
|
44
|
+
onThemePreview: change("onThemePreview"),
|
|
45
|
+
onHideThinkingBlockChange: change("onHideThinkingBlockChange"),
|
|
46
|
+
onMermaidRenderingModeChange: change("onMermaidRenderingModeChange"),
|
|
47
|
+
onShowCacheMissNoticesChange: change("onShowCacheMissNoticesChange"),
|
|
48
|
+
onCollapseChangelogChange: change("onCollapseChangelogChange"),
|
|
49
|
+
onEnableInstallTelemetryChange: change("onEnableInstallTelemetryChange"),
|
|
50
|
+
onDoubleEscapeActionChange: change("onDoubleEscapeActionChange"),
|
|
51
|
+
onTreeFilterModeChange: change("onTreeFilterModeChange"),
|
|
52
|
+
onShowHardwareCursorChange: change("onShowHardwareCursorChange"),
|
|
53
|
+
onEditorPaddingXChange: change("onEditorPaddingXChange"),
|
|
54
|
+
onOutputPadChange: change("onOutputPadChange"),
|
|
55
|
+
onAutocompleteMaxVisibleChange: change("onAutocompleteMaxVisibleChange"),
|
|
56
|
+
onQuietStartupChange: change("onQuietStartupChange"),
|
|
57
|
+
onDefaultProjectTrustChange: change("onDefaultProjectTrustChange"),
|
|
58
|
+
onClearOnShrinkChange: change("onClearOnShrinkChange"),
|
|
59
|
+
onShowTerminalProgressChange: change("onShowTerminalProgressChange"),
|
|
60
|
+
onTuiModeChange: change("onTuiModeChange"),
|
|
61
|
+
onFullscreenExitOutputChange: change("onFullscreenExitOutputChange"),
|
|
62
|
+
onFullscreenScrollbarChange: change("onFullscreenScrollbarChange"),
|
|
63
|
+
onFullscreenCopyOnSelectChange: change("onFullscreenCopyOnSelectChange"),
|
|
64
|
+
onWarningsChange: change("onWarningsChange"),
|
|
65
|
+
onCancel: options.onCancel,
|
|
66
|
+
};
|
|
67
|
+
const selector = new SettingsSelectorComponent(options.config, callbacks);
|
|
68
|
+
const settingsList = selector.getSettingsList();
|
|
69
|
+
return componentPort(selector, data => settingsList.handleInput(data));
|
|
70
|
+
}
|
|
71
|
+
export function createPiShellModelSelector(options) {
|
|
72
|
+
ensureTheme();
|
|
73
|
+
const selector = new ModelSelectorComponent(createTuiFacade(options.runtime), options.currentModel, options.modelRuntime, options.scopedModels, options.onSelect, options.onCancel, options.initialSearchInput, options.onSelectAsDefault, options.defaultModel);
|
|
74
|
+
return componentPort(selector);
|
|
75
|
+
}
|
|
76
|
+
function toPiScopedModel(model) {
|
|
77
|
+
const candidate = { provider: model.provider, id: model.id, name: model.name };
|
|
78
|
+
if (!isPiScopedModel(candidate))
|
|
79
|
+
throw new TypeError("Pi scoped-model façade rejected malformed model metadata");
|
|
80
|
+
return candidate;
|
|
81
|
+
}
|
|
82
|
+
function isPiScopedModel(value) {
|
|
83
|
+
return isRecord(value) && typeof value.provider === "string" && typeof value.id === "string" && typeof value.name === "string";
|
|
84
|
+
}
|
|
85
|
+
export function createPiShellScopedModelsSelector(options) {
|
|
86
|
+
ensureTheme();
|
|
87
|
+
const selector = new ScopedModelsSelectorComponent({
|
|
88
|
+
allModels: options.models.map(toPiScopedModel),
|
|
89
|
+
enabledModelIds: options.enabledModelIds === null ? null : [...options.enabledModelIds],
|
|
90
|
+
...(options.refreshStatus === undefined ? {} : { refreshStatus: options.refreshStatus }),
|
|
91
|
+
}, {
|
|
92
|
+
onChange: ids => options.onChange(ids),
|
|
93
|
+
onPersist: ids => options.onPersist(ids),
|
|
94
|
+
onCancel: options.onCancel,
|
|
95
|
+
});
|
|
96
|
+
return {
|
|
97
|
+
...componentPort(selector),
|
|
98
|
+
updateModels(models, enabledModelIds) {
|
|
99
|
+
selector.updateModels(models.map(toPiScopedModel), enabledModelIds === undefined
|
|
100
|
+
? undefined
|
|
101
|
+
: enabledModelIds === null ? null : [...enabledModelIds]);
|
|
102
|
+
},
|
|
103
|
+
setRefreshStatus: (message, kind) => selector.setRefreshStatus(message, kind),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
export function createPiShellTrustSelector(options) {
|
|
107
|
+
ensureTheme();
|
|
108
|
+
return componentPort(new TrustSelectorComponent(options));
|
|
109
|
+
}
|
|
110
|
+
export function createPiShellSessionSelector(options) {
|
|
111
|
+
ensureTheme();
|
|
112
|
+
const selector = new SessionSelectorComponent(options.currentSessionsLoader, options.allSessionsLoader, options.onSelect, options.onCancel, options.onExit, options.requestRender, { renameSession: options.renameSession, showRenameHint: true }, options.currentSessionFilePath);
|
|
113
|
+
return componentPort(selector);
|
|
114
|
+
}
|
|
115
|
+
export function createPiShellTreeSelector(options) {
|
|
116
|
+
ensureTheme();
|
|
117
|
+
const selector = new TreeSelectorComponent([...options.tree], options.currentLeafId, options.terminalHeight, options.onSelect, options.onCancel, options.onLabelChange, options.initialSelectedId, options.initialFilterMode);
|
|
118
|
+
if (options.onCopy)
|
|
119
|
+
selector.onCopy = options.onCopy;
|
|
120
|
+
return componentPort(selector);
|
|
121
|
+
}
|
|
122
|
+
export function createPiShellUserMessageSelector(messages, onSelect, onCancel, initialSelectedId) {
|
|
123
|
+
ensureTheme();
|
|
124
|
+
const selector = new UserMessageSelectorComponent(messages.map(message => ({ id: message.id, text: message.label })), onSelect, onCancel, initialSelectedId);
|
|
125
|
+
const list = selector.getMessageList();
|
|
126
|
+
return componentPort(selector, data => list.handleInput(data));
|
|
127
|
+
}
|
|
128
|
+
export function createPiShellLoginDialog(runtime, providerId, onComplete, providerName, title) {
|
|
129
|
+
ensureTheme();
|
|
130
|
+
const dialog = new LoginDialogComponent(createTuiFacade(runtime), providerId, onComplete, providerName, title);
|
|
131
|
+
return {
|
|
132
|
+
...componentPort(dialog),
|
|
133
|
+
showAuth: (url, instructions) => dialog.showAuth(url, instructions),
|
|
134
|
+
showDeviceCode: info => dialog.showDeviceCode(info),
|
|
135
|
+
showManualInput: message => dialog.showManualInput(message),
|
|
136
|
+
showPrompt: (message, placeholder) => dialog.showPrompt(message, placeholder),
|
|
137
|
+
showDetails: lines => dialog.showDetails([...lines]),
|
|
138
|
+
showInfo: (message, links = [], showCloseHint = false) => dialog.showInfo(message, [...links], showCloseHint),
|
|
139
|
+
showWaiting: message => dialog.showWaiting(message),
|
|
140
|
+
showProgress: message => dialog.showProgress(message),
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
export function createPiShellArmin(runtime) {
|
|
144
|
+
ensureTheme();
|
|
145
|
+
return componentPort(new ArminComponent(createTuiFacade(runtime)));
|
|
146
|
+
}
|
|
147
|
+
export function createPiShellDaxnuts(runtime) {
|
|
148
|
+
ensureTheme();
|
|
149
|
+
return componentPort(new DaxnutsComponent(createTuiFacade(runtime)));
|
|
150
|
+
}
|
|
151
|
+
export function createPiShellEarendilAnnouncement() {
|
|
152
|
+
ensureTheme();
|
|
153
|
+
return componentPort(new EarendilAnnouncementComponent());
|
|
154
|
+
}
|
|
155
|
+
export function createPiShellOperationLoader(runtime, message) {
|
|
156
|
+
ensureTheme();
|
|
157
|
+
const loader = new BorderedLoader(createTuiFacade(runtime), piTheme(), message, { cancellable: true });
|
|
158
|
+
return { ...componentPort(loader), signal: loader.signal };
|
|
159
|
+
}
|
|
160
|
+
export function createPiShellReloadBox() {
|
|
161
|
+
ensureTheme();
|
|
162
|
+
const container = new Container();
|
|
163
|
+
const borderColor = (text) => piTheme().fg("border", text);
|
|
164
|
+
container.addChild(new DynamicBorder(borderColor));
|
|
165
|
+
container.addChild(new Spacer(1));
|
|
166
|
+
container.addChild(new Text(piTheme().fg("muted", "Reloading keybindings, extensions, skills, prompts, themes, and context files..."), 1, 0));
|
|
167
|
+
container.addChild(new Spacer(1));
|
|
168
|
+
container.addChild(new DynamicBorder(borderColor));
|
|
169
|
+
return componentPort(container);
|
|
170
|
+
}
|
|
171
|
+
export function createPiShellAuthProviderSelector(mode, providers, onSelect, onCancel, initialSearchInput) {
|
|
172
|
+
ensureTheme();
|
|
173
|
+
const selector = new OAuthSelectorComponent(mode, providers.map(provider => ({
|
|
174
|
+
id: provider.providerId,
|
|
175
|
+
name: provider.label,
|
|
176
|
+
authType: provider.authType,
|
|
177
|
+
...(provider.status === undefined ? {} : { status: provider.status }),
|
|
178
|
+
})), (providerId, authType) => {
|
|
179
|
+
const selected = providers.find(provider => provider.providerId === providerId && provider.authType === authType);
|
|
180
|
+
if (selected)
|
|
181
|
+
onSelect(selected.id);
|
|
182
|
+
}, onCancel, initialSearchInput);
|
|
183
|
+
return componentPort(selector);
|
|
184
|
+
}
|
|
185
|
+
export function createPiShellExtensionSelector(title, options, onSelect, onCancel) {
|
|
186
|
+
ensureTheme();
|
|
187
|
+
return componentPort(new ExtensionSelectorComponent(title, [...options], onSelect, onCancel));
|
|
188
|
+
}
|
|
189
|
+
export function createPiShellThinkingSelector(currentLevel, availableLevels, onSelect, onCancel, onSelectAsDefault, defaultLevel) {
|
|
190
|
+
ensureTheme();
|
|
191
|
+
const selector = new ThinkingSelectorComponent(currentLevel, [...availableLevels], onSelect, onCancel, onSelectAsDefault, defaultLevel);
|
|
192
|
+
const list = selector.getSelectList();
|
|
193
|
+
return componentPort(selector, data => list.handleInput(data));
|
|
194
|
+
}
|
|
195
|
+
export function createPiShellThemeSelector(currentTheme, onSelect, onCancel, onPreview) {
|
|
196
|
+
ensureTheme();
|
|
197
|
+
const selector = new ThemeSelectorComponent(currentTheme, onSelect, onCancel, onPreview);
|
|
198
|
+
const list = selector.getSelectList();
|
|
199
|
+
return componentPort(selector, data => list.handleInput(data));
|
|
200
|
+
}
|
|
201
|
+
export function createPiShellShowImagesSelector(currentValue, onSelect, onCancel) {
|
|
202
|
+
ensureTheme();
|
|
203
|
+
const selector = new ShowImagesSelectorComponent(currentValue, onSelect, onCancel);
|
|
204
|
+
const list = selector.getSelectList();
|
|
205
|
+
return componentPort(selector, data => list.handleInput(data));
|
|
206
|
+
}
|
|
207
|
+
export function createPiShellDialog(dialog, handlers = {}) {
|
|
208
|
+
ensureTheme();
|
|
209
|
+
const selector = createPiShellSelector({
|
|
210
|
+
title: dialog.title,
|
|
211
|
+
options: dialogOptions(dialog),
|
|
212
|
+
maxVisible: 8,
|
|
213
|
+
...(handlers.onSelect === undefined ? {} : { onSelect: handlers.onSelect }),
|
|
214
|
+
...(handlers.onCancel === undefined ? {} : { onCancel: handlers.onCancel }),
|
|
215
|
+
});
|
|
216
|
+
const box = new Box(1, 1);
|
|
217
|
+
box.addChild(componentFromPort(selector));
|
|
218
|
+
return componentPort(box, data => selector.handleInput?.(data));
|
|
219
|
+
}
|
|
220
|
+
function toSelectItem(option) {
|
|
221
|
+
return {
|
|
222
|
+
value: option.id,
|
|
223
|
+
label: option.label,
|
|
224
|
+
...(option.description === undefined ? {} : { description: option.description }),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
function dialogOptions(dialog) {
|
|
228
|
+
if (isRecord(dialog.payload) && Array.isArray(dialog.payload.options)) {
|
|
229
|
+
const values = dialog.payload.options.filter(isRecord).flatMap(option => {
|
|
230
|
+
if (typeof option.id !== "string" || typeof option.label !== "string")
|
|
231
|
+
return [];
|
|
232
|
+
return [{
|
|
233
|
+
id: option.id,
|
|
234
|
+
label: option.label,
|
|
235
|
+
...(typeof option.description === "string" ? { description: option.description } : {}),
|
|
236
|
+
}];
|
|
237
|
+
});
|
|
238
|
+
if (values.length > 0)
|
|
239
|
+
return values;
|
|
240
|
+
}
|
|
241
|
+
return [{ id: "accept", label: "Accept" }, { id: "cancel", label: "Cancel" }];
|
|
242
|
+
}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { visibleWidth, type AutocompleteProvider, type Component, type KeybindingsConfig, type TUI } from "@earendil-works/pi-tui";
|
|
2
|
+
import type { OwnedUiImageAttachment, OwnedUiSessionViewModel, OwnedUiThinkingLevel, OwnedUiTranscriptBlock, SuggestionDecision } from "../../../contracts/owned-ui/index.js";
|
|
3
|
+
import type { HistoryEditorConstructor } from "./history-editor-loader.js";
|
|
4
|
+
import type { PiShellPromptInputPresentation } from "./prompt-input-port.js";
|
|
5
|
+
import type { EditorRecallPort } from "./editor-interaction.js";
|
|
6
|
+
import type { PresentationComponentPort } from "../../../contracts/presentation/index.js";
|
|
7
|
+
/** Terminal-cell width authority used by Pi-rendered component rows. */
|
|
8
|
+
export declare const piShellVisibleWidth: typeof visibleWidth;
|
|
9
|
+
export declare const piShellTruncateToWidth: (text: string, width: number) => string;
|
|
10
|
+
/** A clickable URL in pinned Pi's grammar: an OSC 8 link where the terminal supports one, the plain URL otherwise. */
|
|
11
|
+
export declare const piShellHyperlink: (url: string, text?: string) => string;
|
|
12
|
+
export interface PiShellComponentPort extends PresentationComponentPort {
|
|
13
|
+
}
|
|
14
|
+
export type PiShellClipboardContent = {
|
|
15
|
+
readonly kind: "text";
|
|
16
|
+
readonly text: string;
|
|
17
|
+
} | {
|
|
18
|
+
readonly kind: "image";
|
|
19
|
+
readonly data: string;
|
|
20
|
+
readonly mimeType: string;
|
|
21
|
+
};
|
|
22
|
+
export interface PiShellEditorTextRange {
|
|
23
|
+
readonly start: number;
|
|
24
|
+
readonly end: number;
|
|
25
|
+
}
|
|
26
|
+
export interface PiShellEditorPointerEvent {
|
|
27
|
+
readonly kind: "press" | "motion" | "release";
|
|
28
|
+
readonly button: number;
|
|
29
|
+
readonly column: number;
|
|
30
|
+
/** One-based row relative to the top border of the editor body, excluding its menu. */
|
|
31
|
+
readonly row: number;
|
|
32
|
+
}
|
|
33
|
+
export interface PiShellEditorBodyGeometry {
|
|
34
|
+
/** Zero-based body offset in the most recently rendered component rows. */
|
|
35
|
+
readonly rowOffset: number;
|
|
36
|
+
/** Border-inclusive body height, excluding autocomplete. */
|
|
37
|
+
readonly rowCount: number;
|
|
38
|
+
}
|
|
39
|
+
export interface PiShellEditorPort extends PiShellComponentPort {
|
|
40
|
+
/** Present only for the owned above-prompt autocomplete presentation. */
|
|
41
|
+
bodyGeometry?(): PiShellEditorBodyGeometry;
|
|
42
|
+
readonly recall?: EditorRecallPort;
|
|
43
|
+
readonly historyReplacement?: typeof import("../../../contracts/owned-ui/index.js").PROMPT_HISTORY_EDITOR_REPLACEMENT;
|
|
44
|
+
/** Restores this editor's profile after another Pi component changed the global manager. */
|
|
45
|
+
activateKeybindings(): void;
|
|
46
|
+
keybindingConfig(): KeybindingsConfig;
|
|
47
|
+
reloadKeybindings(): void;
|
|
48
|
+
/** Uses Pi's terminal decoder rather than assuming one terminal escape spelling. */
|
|
49
|
+
matchesTerminalKey(data: string, key: "home" | "end" | "ctrl+home" | "ctrl+end" | "alt+home" | "ctrl+v"): boolean;
|
|
50
|
+
getText(): string;
|
|
51
|
+
setText(text: string): void;
|
|
52
|
+
insertText(text: string): void;
|
|
53
|
+
addToHistory(text: string): void;
|
|
54
|
+
setSubmitEnabled(enabled: boolean): void;
|
|
55
|
+
setSubmitHandler(handler: (text: string) => void): void;
|
|
56
|
+
setInterruptHandler(handler: () => void): void;
|
|
57
|
+
setAutocompleteCommands(commands: readonly PiShellAutocompleteCommand[]): void;
|
|
58
|
+
setPaddingX(padding: number): void;
|
|
59
|
+
setAutocompleteMaxVisible(maxVisible: number): void;
|
|
60
|
+
addAutocompleteProvider(factory: unknown): void;
|
|
61
|
+
setThinkingLevel(level: OwnedUiThinkingLevel): void;
|
|
62
|
+
setPromptSuggestion(text: string | null): void;
|
|
63
|
+
canPresentPromptSuggestion(): boolean;
|
|
64
|
+
promptSuggestionBlockReason?(): SuggestionDecision;
|
|
65
|
+
hasSelection(): boolean;
|
|
66
|
+
ownsPointer(): boolean;
|
|
67
|
+
handlePointer(event: PiShellEditorPointerEvent): boolean;
|
|
68
|
+
pasteClipboard(): boolean;
|
|
69
|
+
cancelPendingPastes?(): void;
|
|
70
|
+
}
|
|
71
|
+
export interface PiShellAutocompleteCommand {
|
|
72
|
+
readonly name: string;
|
|
73
|
+
readonly description?: string;
|
|
74
|
+
readonly argumentHint?: string;
|
|
75
|
+
readonly argumentOptions?: readonly PiShellSelectorOption[];
|
|
76
|
+
}
|
|
77
|
+
export interface PiShellViewComponentPort extends PiShellComponentPort {
|
|
78
|
+
update(view: OwnedUiSessionViewModel): void;
|
|
79
|
+
}
|
|
80
|
+
export type PiShellStatusPlacement = "live" | "dock" | "hidden";
|
|
81
|
+
export interface PiShellStatusPort extends PiShellViewComponentPort {
|
|
82
|
+
setWorkingOverride(message: string | undefined): void;
|
|
83
|
+
setOutputPad(padding: 0 | 1): void;
|
|
84
|
+
/** Bare A1 shows engine-measured progress beside the working word; the pinned route keeps the bare word. */
|
|
85
|
+
setProgressPresentation(presentation: "pinned" | "custom-viewport"): void;
|
|
86
|
+
/** Semantic row placement; callers must not inspect rendered text. */
|
|
87
|
+
placement(): PiShellStatusPlacement;
|
|
88
|
+
renderDock(width: number): readonly string[];
|
|
89
|
+
renderLive(width: number): readonly string[];
|
|
90
|
+
}
|
|
91
|
+
export interface PiShellQueuedInputPort extends PiShellComponentPort {
|
|
92
|
+
update(submissions: readonly string[]): void;
|
|
93
|
+
}
|
|
94
|
+
export interface PiShellHeaderPort extends PiShellComponentPort {
|
|
95
|
+
readonly expanded: boolean;
|
|
96
|
+
setExpanded(expanded: boolean): void;
|
|
97
|
+
}
|
|
98
|
+
export type PiShellResourceSection = "Context" | "Skills" | "Prompts" | "Extensions" | "Themes";
|
|
99
|
+
export interface PiShellResourceEntry {
|
|
100
|
+
readonly section: PiShellResourceSection;
|
|
101
|
+
readonly label: string;
|
|
102
|
+
readonly sourcePath: string | null;
|
|
103
|
+
readonly diagnostic?: string | null;
|
|
104
|
+
}
|
|
105
|
+
export interface PiShellLoadedResourcesPort extends PiShellComponentPort {
|
|
106
|
+
setExpanded(expanded: boolean): void;
|
|
107
|
+
}
|
|
108
|
+
export interface PiShellImageAssetResolver {
|
|
109
|
+
resolve(assetId: string): OwnedUiImageAttachment | null;
|
|
110
|
+
}
|
|
111
|
+
export interface PiShellExtensionRendererResolver {
|
|
112
|
+
getMessageRenderer(customType: string): unknown;
|
|
113
|
+
getToolDefinition(toolName: string): unknown;
|
|
114
|
+
getShortcuts?(bindings: KeybindingsConfig): readonly {
|
|
115
|
+
readonly key: string;
|
|
116
|
+
readonly description: string;
|
|
117
|
+
}[];
|
|
118
|
+
}
|
|
119
|
+
export interface PiShellTranscriptComponentPort extends PiShellComponentPort {
|
|
120
|
+
readonly id: string;
|
|
121
|
+
readonly revision: number;
|
|
122
|
+
readonly presentationRevision?: number;
|
|
123
|
+
update(block: OwnedUiTranscriptBlock): void;
|
|
124
|
+
setExpanded(expanded: boolean): void;
|
|
125
|
+
setOutputPad(padding: 0 | 1): void;
|
|
126
|
+
setHideThinkingBlock(hidden: boolean): void;
|
|
127
|
+
setMermaidRenderingMode(mode: "off" | "final" | "streaming"): void;
|
|
128
|
+
setImagePresentation(showImages: boolean, imageWidthCells: number): void;
|
|
129
|
+
}
|
|
130
|
+
export interface PiShellStartupNotice {
|
|
131
|
+
readonly kind: "info" | "warning" | "error";
|
|
132
|
+
readonly message: string;
|
|
133
|
+
}
|
|
134
|
+
export interface PiShellHeaderOptions {
|
|
135
|
+
readonly getKeybindings?: () => KeybindingsConfig;
|
|
136
|
+
readonly quiet?: boolean;
|
|
137
|
+
readonly expanded?: boolean;
|
|
138
|
+
readonly notices?: readonly PiShellStartupNotice[];
|
|
139
|
+
readonly resources?: readonly PiShellResourceEntry[];
|
|
140
|
+
}
|
|
141
|
+
/** An owned paste reserves its edit immediately and acknowledges completion only after insertion. */
|
|
142
|
+
export interface PiShellPasteReservation {
|
|
143
|
+
readonly marker: string;
|
|
144
|
+
readonly result: Promise<string>;
|
|
145
|
+
complete?(): void;
|
|
146
|
+
isCurrent?(): boolean;
|
|
147
|
+
}
|
|
148
|
+
export interface PiShellEditorOptions {
|
|
149
|
+
readonly persistentHistory?: boolean;
|
|
150
|
+
readonly historyEditor?: HistoryEditorConstructor;
|
|
151
|
+
/** Bare A1 adds ergonomic aliases while comparison profiles retain Pi defaults. */
|
|
152
|
+
readonly keybindingProfile?: "pi" | "a1";
|
|
153
|
+
readonly getColumns: () => number;
|
|
154
|
+
readonly getRows: () => number;
|
|
155
|
+
readonly requestRender: () => void;
|
|
156
|
+
readonly onSubmit: (text: string) => void;
|
|
157
|
+
readonly onChange?: (text: string) => void;
|
|
158
|
+
readonly onInterrupt?: () => void;
|
|
159
|
+
readonly onClear?: () => void;
|
|
160
|
+
readonly onExit?: () => void;
|
|
161
|
+
readonly onSuspend?: () => void;
|
|
162
|
+
readonly onExternalEditor?: () => void;
|
|
163
|
+
readonly onPasteImage?: () => void;
|
|
164
|
+
readonly onExtensionShortcut?: (data: string) => boolean;
|
|
165
|
+
readonly onModelSelect?: () => void;
|
|
166
|
+
readonly onModelCycle?: ((direction: "forward" | "backward") => void) | undefined;
|
|
167
|
+
readonly onThinkingCycle?: (() => void) | undefined;
|
|
168
|
+
readonly onThinkingToggle?: (() => void) | undefined;
|
|
169
|
+
readonly onToolsExpand?: (() => void) | undefined;
|
|
170
|
+
readonly onMessageCopy?: (() => void) | undefined;
|
|
171
|
+
readonly onFollowUp?: (() => void) | undefined;
|
|
172
|
+
readonly onDequeue?: (() => void) | undefined;
|
|
173
|
+
readonly onPromptSuggestionAccepted?: (text: string) => void;
|
|
174
|
+
readonly onCopyText?: (text: string) => void;
|
|
175
|
+
readonly readClipboardContent?: (signal?: AbortSignal) => Promise<PiShellClipboardContent | null>;
|
|
176
|
+
readonly beginClipboardPaste?: () => PiShellPasteReservation;
|
|
177
|
+
readonly beginTextPaste?: (text: string) => PiShellPasteReservation;
|
|
178
|
+
readonly deferTextPaste?: (text: string) => boolean;
|
|
179
|
+
readonly onPasteRejected?: (error: unknown) => void;
|
|
180
|
+
readonly onPasteInput?: (bytes: number, phase: "framing" | "inserting" | "settled") => void;
|
|
181
|
+
readonly editorHiddenRanges?: (line: string) => readonly PiShellEditorTextRange[];
|
|
182
|
+
readonly transformPastedContent?: (content: PiShellClipboardContent) => string;
|
|
183
|
+
readonly editorAtomicRanges?: (line: string) => readonly PiShellEditorTextRange[];
|
|
184
|
+
readonly expandCopiedEditorText?: (text: string) => string;
|
|
185
|
+
readonly paintEditorSelection?: (line: string, from: number, to: number, atomic: boolean) => string;
|
|
186
|
+
/** Row indices restart at zero for each complete owned editor decoration pass. */
|
|
187
|
+
readonly decorateEditorRow?: (row: string, width: number, rowIndex: number) => string;
|
|
188
|
+
readonly cwd?: string;
|
|
189
|
+
readonly agentDir?: string;
|
|
190
|
+
readonly autocompleteCommands?: readonly PiShellAutocompleteCommand[];
|
|
191
|
+
readonly promptPresentation?: {
|
|
192
|
+
readonly input: PiShellPromptInputPresentation;
|
|
193
|
+
readonly styleSuggestion: (text: string) => string;
|
|
194
|
+
readonly styleSuggestionCaret: (text: string) => string;
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
export interface PiShellSelectorOption {
|
|
198
|
+
readonly id: string;
|
|
199
|
+
readonly label: string;
|
|
200
|
+
readonly description?: string;
|
|
201
|
+
}
|
|
202
|
+
export interface PiShellSelectorOptions {
|
|
203
|
+
readonly title?: string;
|
|
204
|
+
readonly options: readonly PiShellSelectorOption[];
|
|
205
|
+
readonly maxVisible?: number;
|
|
206
|
+
readonly onSelect?: (id: string) => void;
|
|
207
|
+
readonly onCancel?: () => void;
|
|
208
|
+
}
|
|
209
|
+
export declare function createTuiFacade(options: Pick<PiShellEditorOptions, "getColumns" | "getRows" | "requestRender"> & {
|
|
210
|
+
readonly onSubmit?: (text: string) => void;
|
|
211
|
+
}): TUI;
|
|
212
|
+
export declare function componentPort(component: Component, handleInput?: (data: string) => void): PiShellComponentPort;
|
|
213
|
+
export declare function componentFromPort(port: PiShellComponentPort): Component;
|
|
214
|
+
export declare function formatSessionTokens(count: number): string;
|
|
215
|
+
export declare function isAutocompleteProvider(value: unknown): value is AutocompleteProvider;
|
|
216
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
217
|
+
export declare function ensureTheme(): void;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { hyperlink, setKeybindings, visibleWidth, truncateToWidth, } from "@earendil-works/pi-tui";
|
|
2
|
+
import { KeybindingsManager, } from "./upstream/adjacent/core/keybindings.js";
|
|
3
|
+
import { ensurePiTheme, } from "./theme.js";
|
|
4
|
+
/** Terminal-cell width authority used by Pi-rendered component rows. */
|
|
5
|
+
export const piShellVisibleWidth = visibleWidth;
|
|
6
|
+
export const piShellTruncateToWidth = (text, width) => truncateToWidth(text, width, "");
|
|
7
|
+
/** A clickable URL in pinned Pi's grammar: an OSC 8 link where the terminal supports one, the plain URL otherwise. */
|
|
8
|
+
export const piShellHyperlink = (url, text = url) => hyperlink(url, text);
|
|
9
|
+
// Provenance: pinned from packages/coding-agent/src/core/slash-commands.ts at 914cf14.
|
|
10
|
+
export function createTuiFacade(options) {
|
|
11
|
+
const children = [];
|
|
12
|
+
const terminal = {
|
|
13
|
+
start() { }, stop() { }, async drainInput() { }, write() { },
|
|
14
|
+
get columns() { return Math.max(1, options.getColumns()); },
|
|
15
|
+
get rows() { return Math.max(1, options.getRows()); },
|
|
16
|
+
get kittyProtocolActive() { return false; },
|
|
17
|
+
moveBy() { }, hideCursor() { }, showCursor() { }, clearLine() { }, clearFromCursor() { }, clearScreen() { }, setTitle() { }, setProgress() { },
|
|
18
|
+
};
|
|
19
|
+
return {
|
|
20
|
+
mode: "regular",
|
|
21
|
+
children,
|
|
22
|
+
terminal,
|
|
23
|
+
fullRedraws: 0,
|
|
24
|
+
addChild: component => children.push(component),
|
|
25
|
+
removeChild: component => {
|
|
26
|
+
const index = children.indexOf(component);
|
|
27
|
+
if (index >= 0)
|
|
28
|
+
children.splice(index, 1);
|
|
29
|
+
},
|
|
30
|
+
clear: () => children.splice(0),
|
|
31
|
+
render: width => children.flatMap(component => component.render(width)),
|
|
32
|
+
invalidate: () => children.forEach(component => component.invalidate()),
|
|
33
|
+
getShowHardwareCursor: () => false,
|
|
34
|
+
setShowHardwareCursor() { },
|
|
35
|
+
getClearOnShrink: () => true,
|
|
36
|
+
setClearOnShrink() { },
|
|
37
|
+
setFocus() { },
|
|
38
|
+
showOverlay: () => ({ hide() { }, setHidden() { }, isHidden: () => false, focus() { }, unfocus() { }, isFocused: () => false, getBounds: () => undefined }),
|
|
39
|
+
hideOverlay() { },
|
|
40
|
+
hasOverlay: () => false,
|
|
41
|
+
start() { },
|
|
42
|
+
stop() { },
|
|
43
|
+
renderNow() { },
|
|
44
|
+
requestRender: options.requestRender,
|
|
45
|
+
addInputListener: () => () => { },
|
|
46
|
+
removeInputListener() { },
|
|
47
|
+
onTerminalColorSchemeChange: () => () => { },
|
|
48
|
+
setTerminalColorSchemeNotifications() { },
|
|
49
|
+
queryTerminalBackgroundColor: async () => undefined,
|
|
50
|
+
queryTerminalColorScheme: async () => undefined,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function componentPort(component, handleInput) {
|
|
54
|
+
const input = handleInput ?? component.handleInput;
|
|
55
|
+
const focusable = component;
|
|
56
|
+
const disposable = component;
|
|
57
|
+
return {
|
|
58
|
+
render: width => component.render(width),
|
|
59
|
+
...(input === undefined ? {} : { handleInput: (data) => input.call(component, data) }),
|
|
60
|
+
invalidate: () => component.invalidate(),
|
|
61
|
+
...("focused" in focusable ? { setFocused: (focused) => { focusable.focused = focused; } } : {}),
|
|
62
|
+
...(typeof disposable.dispose === "function" ? { dispose: () => disposable.dispose?.() } : {}),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export function componentFromPort(port) {
|
|
66
|
+
return {
|
|
67
|
+
render: width => [...port.render(width)],
|
|
68
|
+
...(port.handleInput === undefined ? {} : { handleInput: (data) => port.handleInput?.(data) }),
|
|
69
|
+
invalidate: () => port.invalidate(),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export function formatSessionTokens(count) {
|
|
73
|
+
if (count < 1000)
|
|
74
|
+
return count.toString();
|
|
75
|
+
if (count < 10_000)
|
|
76
|
+
return `${(count / 1000).toFixed(1)}k`;
|
|
77
|
+
if (count < 1_000_000)
|
|
78
|
+
return `${Math.round(count / 1000)}k`;
|
|
79
|
+
if (count < 10_000_000)
|
|
80
|
+
return `${(count / 1_000_000).toFixed(1)}M`;
|
|
81
|
+
return `${Math.round(count / 1_000_000)}M`;
|
|
82
|
+
}
|
|
83
|
+
export function isAutocompleteProvider(value) {
|
|
84
|
+
return isRecord(value) && typeof value.getSuggestions === "function" && typeof value.applyCompletion === "function";
|
|
85
|
+
}
|
|
86
|
+
export function isRecord(value) {
|
|
87
|
+
return typeof value === "object" && value !== null;
|
|
88
|
+
}
|
|
89
|
+
export function ensureTheme() {
|
|
90
|
+
ensurePiTheme();
|
|
91
|
+
setKeybindings(KeybindingsManager.create());
|
|
92
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type Component } from "@earendil-works/pi-tui";
|
|
2
|
+
import type { OwnedUiTranscriptBlock } from "../../../contracts/owned-ui/index.js";
|
|
3
|
+
export interface PiShellSubmittedPromptComposer {
|
|
4
|
+
readonly layout: (width: number, source?: Date | number | null) => {
|
|
5
|
+
readonly contentWidth: number;
|
|
6
|
+
};
|
|
7
|
+
readonly compose: (contentRows: readonly string[], width: number, source?: Date | number | null, style?: {
|
|
8
|
+
readonly prefix?: (text: string) => string;
|
|
9
|
+
readonly timestamp?: (text: string) => string;
|
|
10
|
+
}) => readonly string[];
|
|
11
|
+
}
|
|
12
|
+
/** Branch summaries share the block kind but do not participate in prompt navigation. */
|
|
13
|
+
export declare function isPiPromptStyleCompaction(block: OwnedUiTranscriptBlock): boolean;
|
|
14
|
+
/** Keep prompt timestamps metadata-grey even inside hover and quiet whole-row wrappers. */
|
|
15
|
+
export declare function paintPiSubmittedPromptTimestamp(text: string): string;
|
|
16
|
+
/** Pi owns Markdown and theme adaptation; the injected composer owns neutral row geometry. */
|
|
17
|
+
export declare function createPiSubmittedPromptComponent(block: OwnedUiTranscriptBlock, composer: PiShellSubmittedPromptComposer, heading?: string): Component;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { getMarkdownTheme } from "../startup-public.js";
|
|
2
|
+
import { Box, Markdown, Text } from "@earendil-works/pi-tui";
|
|
3
|
+
import { piTheme } from "./theme.js";
|
|
4
|
+
/** Branch summaries share the block kind but do not participate in prompt navigation. */
|
|
5
|
+
export function isPiPromptStyleCompaction(block) {
|
|
6
|
+
return block.kind === "compaction" && block.status === "finalized"
|
|
7
|
+
&& typeof block.payload === "object" && block.payload !== null
|
|
8
|
+
&& block.payload.role === "compactionSummary";
|
|
9
|
+
}
|
|
10
|
+
/** Keep prompt timestamps metadata-grey even inside hover and quiet whole-row wrappers. */
|
|
11
|
+
export function paintPiSubmittedPromptTimestamp(text) {
|
|
12
|
+
// Protocol: combine the intensity/foreground reset so quietSticky does not immediately
|
|
13
|
+
// reapply faint; the semantic foreground that follows remains theme-controlled.
|
|
14
|
+
return `\u001b[22;39m${piTheme().fg("dim", text)}`;
|
|
15
|
+
}
|
|
16
|
+
/** Pi owns Markdown and theme adaptation; the injected composer owns neutral row geometry. */
|
|
17
|
+
export function createPiSubmittedPromptComponent(block, composer, heading) {
|
|
18
|
+
const timestamp = numericTimestamp(block);
|
|
19
|
+
// Invariant: presentation-only chrome stays outside the summary's Markdown parser and stored text.
|
|
20
|
+
const header = heading === undefined ? undefined : new Text(heading, 0, 0);
|
|
21
|
+
const markdown = new Markdown(block.text, 0, 0, getMarkdownTheme(), { color: content => piTheme().fg("userMessageText", content) }, { preserveOrderedListMarkers: true, preserveBackslashEscapes: true });
|
|
22
|
+
const content = {
|
|
23
|
+
render(width) {
|
|
24
|
+
const layout = composer.layout(width, timestamp);
|
|
25
|
+
const bodyRows = markdown.render(layout.contentWidth);
|
|
26
|
+
const rows = header === undefined ? bodyRows : [
|
|
27
|
+
...header.render(layout.contentWidth).map(row => piTheme().fg("userMessageText", row)),
|
|
28
|
+
...(bodyRows.length === 0 ? [] : ["", ...bodyRows]),
|
|
29
|
+
];
|
|
30
|
+
return [...composer.compose(rows, width, timestamp, {
|
|
31
|
+
prefix: text => piTheme().fg("muted", text),
|
|
32
|
+
timestamp: paintPiSubmittedPromptTimestamp,
|
|
33
|
+
})];
|
|
34
|
+
},
|
|
35
|
+
invalidate() {
|
|
36
|
+
header?.invalidate();
|
|
37
|
+
markdown.invalidate();
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
const box = new Box(0, 0, line => piTheme().bg("userMessageBg", line));
|
|
41
|
+
box.addChild(content);
|
|
42
|
+
return box;
|
|
43
|
+
}
|
|
44
|
+
function numericTimestamp(block) {
|
|
45
|
+
if (typeof block.payload !== "object" || block.payload === null)
|
|
46
|
+
return null;
|
|
47
|
+
const value = block.payload.timestamp;
|
|
48
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
49
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { convertToPng } from "../startup-public.js";
|
|
2
|
+
import { type Component } from "@earendil-works/pi-tui";
|
|
3
|
+
/**
|
|
4
|
+
* Own only current attachment presentation; tool renderers still receive original result content.
|
|
5
|
+
* Unlike pinned 0.84.2's index cache, entries follow immutable source bytes and stale completions
|
|
6
|
+
* cannot republish. At most one conversion runs per mount; queued work is only the current set.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ToolImagePresentation {
|
|
9
|
+
#private;
|
|
10
|
+
private readonly changed;
|
|
11
|
+
private readonly convert;
|
|
12
|
+
constructor(changed: () => void, convert?: typeof convertToPng);
|
|
13
|
+
update(content: readonly {
|
|
14
|
+
type: string;
|
|
15
|
+
data?: string;
|
|
16
|
+
mimeType?: string;
|
|
17
|
+
}[], show: boolean): void;
|
|
18
|
+
/** Public Image remains responsible for Kitty/iTerm protocol and dimension-aware fallback. */
|
|
19
|
+
components(width: number): Component[];
|
|
20
|
+
dispose(): void;
|
|
21
|
+
}
|