@timurproko/a1 0.1.8-dev.50ebb19 → 0.1.8-dev.510
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +209 -63
- package/bin/activate.js +8 -0
- package/bin/cli.js +33 -11
- package/bin/guardian.js +16 -6
- package/bin/module-identity.js +76 -69
- package/bin/module-resolver.js +138 -0
- package/bin/pinned-pi-public.d.ts +3 -0
- package/bin/pinned-pi-public.js +93 -0
- package/bin/release-cleanup.js +8 -0
- package/bin/supervisor.js +2 -2
- package/bin/sync-pi-tui-proxy.js +7 -0
- package/bin/ui.js +67 -22
- package/bin/update-recovery.js +343 -0
- package/bin/warmup.js +28 -0
- package/dist/app/session-shell/clipboard-diagnostics.d.ts +16 -0
- package/dist/app/session-shell/clipboard-diagnostics.js +65 -0
- package/dist/app/session-shell/clipboard-image.d.ts +11 -0
- package/dist/app/session-shell/clipboard-image.js +38 -0
- package/dist/app/session-shell/editor-hyperlink-budget.d.ts +9 -0
- package/dist/app/session-shell/editor-hyperlink-budget.js +23 -0
- package/dist/app/session-shell/helper-pool.d.ts +33 -0
- package/dist/app/session-shell/helper-pool.js +98 -0
- package/dist/app/session-shell/image-preparation-client.d.ts +20 -0
- package/dist/app/session-shell/image-preparation-client.js +145 -0
- package/dist/app/session-shell/image-preparation.d.ts +18 -0
- package/dist/app/session-shell/image-preparation.js +126 -0
- package/dist/app/session-shell/image-source.d.ts +13 -0
- package/dist/app/session-shell/image-source.js +171 -0
- package/dist/app/session-shell/image-worker.d.ts +17 -0
- package/dist/app/session-shell/image-worker.js +23 -0
- package/dist/app/session-shell/index.d.ts +7 -0
- package/dist/app/session-shell/index.js +4 -0
- package/dist/app/session-shell/paste-executor.d.ts +18 -0
- package/dist/app/session-shell/paste-executor.js +253 -0
- package/dist/app/session-shell/paste-helper.js +173 -0
- package/dist/app/session-shell/paste-preparation-client.d.ts +31 -0
- package/dist/app/session-shell/paste-preparation-client.js +170 -0
- package/dist/app/session-shell/paste-protocol.d.ts +78 -0
- package/dist/app/session-shell/paste-protocol.js +18 -0
- package/dist/app/session-shell/paste-text-preparation.d.ts +6 -0
- package/dist/app/session-shell/paste-text-preparation.js +134 -0
- package/dist/app/session-shell/paste-text-worker.js +12 -0
- package/dist/app/session-shell/paste-types.d.ts +17 -0
- package/dist/app/session-shell/path-chip-presentation.d.ts +7 -0
- package/dist/app/session-shell/path-chip-presentation.js +24 -0
- package/dist/app/session-shell/prompt-chips.d.ts +76 -0
- package/dist/app/session-shell/prompt-chips.js +507 -0
- package/dist/app/session-shell/prompt-history-controller.d.ts +36 -0
- package/dist/app/session-shell/prompt-history-controller.js +170 -0
- package/dist/app/session-shell/prompt-suggestion-controller.d.ts +37 -0
- package/dist/app/session-shell/prompt-suggestion-controller.js +219 -0
- package/dist/app/session-shell/quit-outro-effects.d.ts +29 -0
- package/dist/app/session-shell/quit-outro-effects.js +242 -0
- package/dist/app/session-shell/quit-outro.d.ts +38 -0
- package/dist/app/session-shell/quit-outro.js +98 -0
- package/dist/app/session-shell/response-copy-coordinator.d.ts +27 -0
- package/dist/app/session-shell/response-copy-coordinator.js +187 -0
- package/dist/app/session-shell/response-copy-helper.js +122 -0
- package/dist/app/session-shell/response-copy-protocol.d.ts +56 -0
- package/dist/app/session-shell/response-copy-protocol.js +5 -0
- package/dist/app/session-shell/response-copy-transport.d.ts +39 -0
- package/dist/app/session-shell/response-copy-transport.js +217 -0
- package/dist/app/session-shell/session-shell-root.d.ts +275 -0
- package/dist/app/session-shell/session-shell-root.js +1376 -0
- package/dist/app/session-shell/session-shell.d.ts +66 -0
- package/dist/app/session-shell/session-shell.js +2116 -0
- package/dist/app/session-shell/session-viewport-controller.d.ts +61 -0
- package/dist/app/session-shell/session-viewport-controller.js +597 -0
- package/dist/app/session-shell/stream-presentation-coalescer.d.ts +29 -0
- package/dist/app/session-shell/stream-presentation-coalescer.js +79 -0
- package/dist/app/session-shell/system-clipboard.d.ts +20 -0
- package/dist/app/session-shell/system-clipboard.js +159 -0
- package/dist/app/session-shell/text-paste.d.ts +5 -0
- package/dist/app/session-shell/text-paste.js +16 -0
- package/dist/cli/capabilities.d.ts +6 -0
- package/dist/cli/capabilities.js +7 -0
- package/dist/cli/dispatch.d.ts +46 -0
- package/dist/cli/dispatch.js +261 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/package-messages.d.ts +26 -0
- package/dist/cli/package-messages.js +71 -0
- package/dist/cli/packages.d.ts +32 -0
- package/dist/cli/packages.js +81 -0
- package/dist/cli/version-stats.d.ts +22 -0
- package/dist/cli/version-stats.js +112 -0
- package/dist/composition/index.d.ts +2 -0
- package/dist/composition/index.js +2 -0
- package/dist/composition/owned-ui.d.ts +37 -0
- package/dist/composition/owned-ui.js +154 -0
- package/dist/composition/settings-route-host.d.ts +20 -0
- package/dist/composition/settings-route-host.js +141 -0
- package/dist/contracts/agent-engine/capability-ports.d.ts +95 -0
- package/dist/contracts/agent-engine/domain-validation.js +107 -0
- package/dist/contracts/agent-engine/domain.d.ts +138 -0
- package/dist/contracts/agent-engine/index.d.ts +11 -0
- package/dist/contracts/agent-engine/index.js +6 -0
- package/dist/contracts/agent-engine/package-ports.d.ts +60 -0
- package/dist/contracts/agent-engine/ports.js +1 -0
- package/dist/contracts/owned-ui/extension-ui.d.ts +310 -0
- package/dist/contracts/owned-ui/image-attachments.d.ts +36 -0
- package/dist/contracts/owned-ui/image-attachments.js +67 -0
- package/dist/contracts/owned-ui/index.d.ts +12 -0
- package/dist/contracts/owned-ui/index.js +8 -0
- package/dist/contracts/owned-ui/model.d.ts +374 -0
- package/dist/contracts/owned-ui/prompt-history.d.ts +55 -0
- package/dist/contracts/owned-ui/prompt-history.js +23 -0
- package/dist/contracts/owned-ui/prompt-suggestions.d.ts +3 -0
- package/dist/contracts/owned-ui/prompt-suggestions.js +44 -0
- package/dist/contracts/owned-ui/suggestion-diagnostics.d.ts +22 -0
- package/dist/contracts/owned-ui/suggestion-diagnostics.js +9 -0
- package/dist/contracts/owned-ui/transcript-lifecycle.d.ts +5 -0
- package/dist/contracts/owned-ui/transcript-lifecycle.js +33 -0
- package/dist/contracts/owned-ui/validation.d.ts +15 -0
- package/dist/contracts/owned-ui/validation.js +523 -0
- package/dist/contracts/presentation/index.d.ts +104 -0
- package/dist/features/launch/development-launch.js +36 -0
- package/dist/features/launch/index.d.ts +12 -0
- package/dist/features/launch/index.js +6 -0
- package/dist/features/launch/intent.d.ts +12 -0
- package/dist/features/launch/intent.js +8 -0
- package/dist/features/launch/prepare-launch.d.ts +11 -0
- package/dist/features/launch/prepare-launch.js +14 -0
- package/dist/features/launch/profile-paths.d.ts +16 -0
- package/dist/features/launch/profile-paths.js +36 -0
- package/dist/features/launch/runtime-selection.d.ts +16 -0
- package/dist/features/launch/runtime-selection.js +13 -0
- package/dist/features/owned-ui/index.d.ts +9 -0
- package/dist/features/owned-ui/index.js +6 -0
- package/dist/features/owned-ui/project-trust-prompt.d.ts +25 -0
- package/dist/features/owned-ui/project-trust-prompt.js +149 -0
- package/dist/features/owned-ui/reference-routes.d.ts +6 -0
- package/dist/features/owned-ui/reference-routes.js +6 -0
- package/dist/features/owned-ui/reference-screen-app.d.ts +37 -0
- package/dist/features/owned-ui/reference-screen-app.js +232 -0
- package/dist/features/owned-ui/run.d.ts +17 -0
- package/dist/features/owned-ui/run.js +64 -0
- package/dist/features/owned-ui/session-fork-prompt.d.ts +8 -0
- package/dist/features/owned-ui/session-fork-prompt.js +34 -0
- package/dist/features/owned-ui/settings-app.d.ts +21 -0
- package/dist/features/owned-ui/settings-app.js +802 -0
- package/dist/features/owned-ui/settings-route.d.ts +2 -0
- package/dist/features/owned-ui/settings-route.js +2 -0
- package/dist/features/prompt-history/image-sidecar.d.ts +32 -0
- package/dist/features/prompt-history/image-sidecar.js +130 -0
- package/dist/features/prompt-history/index.d.ts +4 -0
- package/dist/features/prompt-history/index.js +3 -0
- package/dist/features/prompt-history/paths.d.ts +5 -0
- package/dist/features/prompt-history/paths.js +17 -0
- package/dist/features/prompt-history/service.d.ts +54 -0
- package/dist/features/prompt-history/service.js +425 -0
- package/dist/features/prompt-history/store.d.ts +16 -0
- package/dist/features/prompt-history/store.js +219 -0
- package/dist/features/prompt-history/worker.d.ts +9 -0
- package/dist/features/prompt-history/worker.js +45 -0
- package/dist/features/prompt-suggestions/diagnostics.d.ts +18 -0
- package/dist/features/prompt-suggestions/diagnostics.js +82 -0
- package/dist/features/prompt-suggestions/index.d.ts +2 -0
- package/dist/features/prompt-suggestions/index.js +1 -0
- package/dist/foundation/launch-context/index.d.ts +59 -0
- package/dist/foundation/launch-context/index.js +136 -0
- package/dist/foundation/launch-guardian/index.d.ts +2 -0
- package/dist/foundation/launch-guardian/index.js +1 -0
- package/dist/foundation/launch-guardian/main.d.ts +33 -0
- package/dist/foundation/launch-guardian/main.js +180 -0
- package/dist/foundation/lifecycle/commands.js +1 -0
- package/dist/foundation/lifecycle/index.d.ts +11 -0
- package/dist/foundation/lifecycle/index.js +5 -0
- package/dist/foundation/lifecycle/model.d.ts +64 -0
- package/dist/foundation/lifecycle/model.js +40 -0
- package/dist/foundation/lifecycle/paths.d.ts +30 -0
- package/dist/foundation/lifecycle/paths.js +70 -0
- package/dist/foundation/lifecycle/session-selection.d.ts +9 -0
- package/dist/foundation/lifecycle/session-selection.js +39 -0
- package/dist/foundation/lifecycle/supervisor-startup.d.ts +30 -0
- package/dist/foundation/lifecycle/supervisor-startup.js +106 -0
- package/dist/foundation/process-containment/darwin-process-inspector.d.ts +5 -0
- package/dist/foundation/process-containment/darwin-process-inspector.js +7 -0
- package/dist/foundation/process-containment/index.d.ts +8 -0
- package/dist/foundation/process-containment/index.js +6 -0
- package/dist/foundation/process-containment/linux-process-inspector.d.ts +7 -0
- package/dist/foundation/process-containment/linux-process-inspector.js +27 -0
- package/dist/foundation/process-containment/native-guardian-containment.d.ts +17 -0
- package/dist/foundation/process-containment/native-guardian-containment.js +140 -0
- package/dist/foundation/process-containment/windows-process-inspector.d.ts +19 -0
- package/dist/foundation/process-containment/windows-process-inspector.js +56 -0
- package/dist/foundation/protocol/client.d.ts +18 -0
- package/dist/foundation/protocol/client.js +130 -0
- package/dist/foundation/protocol/index.d.ts +3 -0
- package/dist/foundation/protocol/index.js +2 -0
- package/dist/foundation/protocol/messages.d.ts +90 -0
- package/dist/foundation/protocol/messages.js +100 -0
- package/dist/foundation/release/bootstrap.d.ts +51 -0
- package/dist/foundation/release/bootstrap.js +427 -0
- package/dist/foundation/release/cohort-state.d.ts +157 -0
- package/dist/foundation/release/cohort-state.js +472 -0
- package/dist/foundation/release/dependency-certification-retention.d.ts +7 -0
- package/dist/foundation/release/dependency-certification-retention.js +88 -0
- package/dist/foundation/release/dependency-certification.d.ts +24 -0
- package/dist/foundation/release/dependency-certification.js +266 -0
- package/dist/foundation/release/dependency-layer.d.ts +78 -0
- package/dist/foundation/release/dependency-layer.js +466 -0
- package/dist/foundation/release/endpoints.d.ts +24 -0
- package/dist/foundation/release/endpoints.js +134 -0
- package/dist/foundation/release/immutable-platform.d.ts +6 -0
- package/dist/foundation/release/immutable-platform.js +13 -0
- package/dist/foundation/release/index.d.ts +32 -0
- package/dist/foundation/release/index.js +17 -0
- package/dist/foundation/release/release-gc.d.ts +71 -0
- package/dist/foundation/release/release-gc.js +764 -0
- package/dist/foundation/release/release-store.d.ts +49 -0
- package/dist/foundation/release/release-store.js +235 -0
- package/dist/foundation/release/release.d.ts +43 -0
- package/dist/foundation/release/release.js +215 -0
- package/dist/foundation/release/restart-certification.d.ts +68 -0
- package/dist/foundation/release/restart-certification.js +227 -0
- package/dist/foundation/release/types.d.ts +11 -0
- package/dist/foundation/release/types.js +1 -0
- package/dist/foundation/release/update-activation.d.ts +72 -0
- package/dist/foundation/release/update-activation.js +204 -0
- package/dist/foundation/release/update-launch.d.ts +6 -0
- package/dist/foundation/release/update-launch.js +17 -0
- package/dist/foundation/release/update-recovery.d.ts +76 -0
- package/dist/foundation/release/update-recovery.js +356 -0
- package/dist/foundation/release/update-transaction.d.ts +42 -0
- package/dist/foundation/release/update-transaction.js +101 -0
- package/dist/foundation/release/update.d.ts +114 -0
- package/dist/foundation/release/update.js +633 -0
- package/dist/foundation/release/warmup.d.ts +3 -0
- package/dist/foundation/release/warmup.js +47 -0
- package/dist/foundation/startup/index.d.ts +4 -0
- package/dist/foundation/startup/index.js +2 -0
- package/dist/foundation/startup/startup-budget.d.ts +46 -0
- package/dist/foundation/startup/startup-budget.js +42 -0
- package/dist/foundation/startup/startup-descriptor.js +34 -0
- package/dist/foundation/startup/startup-runtime.d.ts +27 -0
- package/dist/foundation/startup/startup-runtime.js +128 -0
- package/dist/foundation/storage/control-store.d.ts +18 -0
- package/dist/foundation/storage/control-store.js +342 -0
- package/dist/foundation/storage/index.d.ts +1 -0
- package/dist/foundation/storage/index.js +1 -0
- package/dist/foundation/supervision/index.d.ts +3 -0
- package/dist/foundation/supervision/index.js +3 -0
- package/dist/foundation/supervision/main.d.ts +1 -0
- package/dist/foundation/supervision/main.js +84 -0
- package/dist/foundation/supervision/paths.d.ts +1 -0
- package/dist/foundation/supervision/paths.js +1 -0
- package/dist/foundation/supervision/server.d.ts +46 -0
- package/dist/foundation/supervision/server.js +573 -0
- package/dist/foundation/terminal-cleanup/fatal-exit.d.ts +12 -0
- package/dist/foundation/terminal-cleanup/fatal-exit.js +87 -0
- package/dist/foundation/terminal-cleanup/index.d.ts +3 -0
- package/dist/foundation/terminal-cleanup/index.js +2 -0
- package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +4 -0
- package/dist/foundation/terminal-cleanup/terminal-reset.js +40 -0
- package/dist/integrations/pi/components/components.d.ts +4 -0
- package/dist/integrations/pi/components/components.js +64 -0
- package/dist/integrations/pi/components/conformance.d.ts +18 -0
- package/dist/integrations/pi/components/conformance.js +70 -0
- package/dist/integrations/pi/components/editor-interaction.d.ts +38 -0
- package/dist/integrations/pi/components/editor-interaction.js +1 -0
- package/dist/integrations/pi/components/history-editor-loader.d.ts +5 -0
- package/dist/integrations/pi/components/history-editor-loader.js +5 -0
- package/dist/integrations/pi/components/index.d.ts +23 -0
- package/dist/integrations/pi/components/index.js +14 -0
- package/dist/integrations/pi/components/models-dialog.d.ts +55 -0
- package/dist/integrations/pi/components/models-dialog.js +310 -0
- package/dist/integrations/pi/components/owned-editor-ux.d.ts +74 -0
- package/dist/integrations/pi/components/owned-editor-ux.js +1094 -0
- package/dist/integrations/pi/components/path-word-ranges.d.ts +2 -0
- package/dist/integrations/pi/components/path-word-ranges.js +37 -0
- package/dist/integrations/pi/components/prompt-input-port.d.ts +18 -0
- package/dist/integrations/pi/components/prompt-input-port.js +1 -0
- package/dist/integrations/pi/components/resources/builtin-themes.d.ts +167 -0
- package/dist/integrations/pi/components/resources/builtin-themes.js +168 -0
- package/dist/integrations/pi/components/shell-components.d.ts +7 -0
- package/dist/integrations/pi/components/shell-components.js +7 -0
- package/dist/integrations/pi/components/shell-editor-autocomplete.d.ts +21 -0
- package/dist/integrations/pi/components/shell-editor-autocomplete.js +322 -0
- package/dist/integrations/pi/components/shell-extension-ui.d.ts +35 -0
- package/dist/integrations/pi/components/shell-extension-ui.js +280 -0
- package/dist/integrations/pi/components/shell-footer-status.d.ts +7 -0
- package/dist/integrations/pi/components/shell-footer-status.js +249 -0
- package/dist/integrations/pi/components/shell-presenters-info.d.ts +53 -0
- package/dist/integrations/pi/components/shell-presenters-info.js +134 -0
- package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +29 -0
- package/dist/integrations/pi/components/shell-presenters-transcript.js +433 -0
- package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +133 -0
- package/dist/integrations/pi/components/shell-selectors-dialogs.js +255 -0
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +225 -0
- package/dist/integrations/pi/components/shell-shared-facade.js +92 -0
- package/dist/integrations/pi/components/skills-command.d.ts +47 -0
- package/dist/integrations/pi/components/skills-command.js +118 -0
- package/dist/integrations/pi/components/skills-dialog.d.ts +9 -0
- package/dist/integrations/pi/components/skills-dialog.js +112 -0
- package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +17 -0
- package/dist/integrations/pi/components/submitted-prompt-adapter.js +49 -0
- package/dist/integrations/pi/components/tool-image-presentation.d.ts +21 -0
- package/dist/integrations/pi/components/tool-image-presentation.js +83 -0
- package/dist/integrations/pi/components/tool-result-adapter.d.ts +6 -0
- package/dist/integrations/pi/components/tool-result-adapter.js +27 -0
- package/dist/integrations/pi/components/transcript-image-resolver.d.ts +7 -0
- package/dist/integrations/pi/components/transcript-image-resolver.js +19 -0
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +445 -0
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +370 -0
- package/dist/integrations/pi/components/upstream/assets/earendil-image.json +12 -0
- package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +13 -0
- package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +29 -0
- package/dist/integrations/pi/components/upstream/components/daxnuts.js +146 -0
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.d.ts +4 -0
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +48 -0
- package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +20 -0
- package/dist/integrations/pi/components/upstream/components/extension-editor.js +84 -0
- package/dist/integrations/pi/components/upstream/components/mermaid.js +81 -0
- package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +52 -0
- package/dist/integrations/pi/components/upstream/components/owned-editor.js +222 -0
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +59 -0
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +346 -0
- package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +11 -0
- package/dist/integrations/pi/components/upstream/components/session-footer.js +123 -0
- package/dist/integrations/pi/components/upstream/components/session-selector-search.js +161 -0
- package/dist/integrations/pi/components/upstream/components/session-selector.d.ts +95 -0
- package/dist/integrations/pi/components/upstream/components/session-selector.js +893 -0
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +21 -0
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +46 -0
- package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +35 -0
- package/dist/integrations/pi/components/upstream/components/status-indicator.js +69 -0
- package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +67 -0
- package/dist/integrations/pi/components/upstream/components/tool-execution.js +365 -0
- package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +101 -0
- package/dist/integrations/pi/components/upstream/components/tree-selector.js +1275 -0
- package/dist/integrations/pi/components/upstream/components/trust-selector.d.ts +33 -0
- package/dist/integrations/pi/components/upstream/components/trust-selector.js +81 -0
- package/dist/integrations/pi/components/upstream/external-editor.js +43 -0
- package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +289 -0
- package/dist/integrations/pi/components/upstream/history/editor-core.js +2144 -0
- package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +35 -0
- package/dist/integrations/pi/components/upstream/history/kill-ring.js +51 -0
- package/dist/integrations/pi/components/upstream/history/printable-key.d.ts +1 -0
- package/dist/integrations/pi/components/upstream/history/printable-key.js +43 -0
- package/dist/integrations/pi/components/upstream/history/text-helpers.d.ts +14 -0
- package/dist/integrations/pi/components/upstream/history/text-helpers.js +31 -0
- package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +25 -0
- package/dist/integrations/pi/components/upstream/history/undo-stack.js +39 -0
- package/dist/integrations/pi/components/upstream/history/word-navigation.d.ts +24 -0
- package/dist/integrations/pi/components/upstream/history/word-navigation.js +103 -0
- package/dist/integrations/pi/components/upstream/model-search.d.ts +18 -0
- package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +33 -0
- package/dist/integrations/pi/components/upstream/theme/theme-controller.js +114 -0
- package/dist/integrations/pi/components/upstream/theme/theme.d.ts +61 -0
- package/dist/integrations/pi/components/upstream/theme/theme.js +337 -0
- package/dist/integrations/pi/engine/adapter.d.ts +139 -0
- package/dist/integrations/pi/engine/adapter.js +660 -0
- package/dist/integrations/pi/engine/changelog.d.ts +2 -0
- package/dist/integrations/pi/engine/changelog.js +63 -0
- package/dist/integrations/pi/engine/command-dispatch.d.ts +41 -0
- package/dist/integrations/pi/engine/command-dispatch.js +125 -0
- package/dist/integrations/pi/engine/compaction-progress.d.ts +28 -0
- package/dist/integrations/pi/engine/compaction-progress.js +96 -0
- package/dist/integrations/pi/engine/conformance.d.ts +39 -0
- package/dist/integrations/pi/engine/conformance.js +140 -0
- package/dist/integrations/pi/engine/event-delivery.d.ts +100 -0
- package/dist/integrations/pi/engine/event-delivery.js +184 -0
- package/dist/integrations/pi/engine/extension-ui-binding.d.ts +35 -0
- package/dist/integrations/pi/engine/extension-ui-binding.js +81 -0
- package/dist/integrations/pi/engine/http-dispatcher.d.ts +4 -0
- package/dist/integrations/pi/engine/http-dispatcher.js +25 -0
- package/dist/integrations/pi/engine/index.d.ts +18 -0
- package/dist/integrations/pi/engine/index.js +10 -0
- package/dist/integrations/pi/engine/message-values.d.ts +29 -0
- package/dist/integrations/pi/engine/message-values.js +168 -0
- package/dist/integrations/pi/engine/package-integration.d.ts +13 -0
- package/dist/integrations/pi/engine/package-integration.js +118 -0
- package/dist/integrations/pi/engine/pending-delivery.d.ts +30 -0
- package/dist/integrations/pi/engine/pending-delivery.js +156 -0
- package/dist/integrations/pi/engine/pi-settings-metadata.json +385 -0
- package/dist/integrations/pi/engine/project-trust-preflight.d.ts +22 -0
- package/dist/integrations/pi/engine/project-trust-preflight.js +50 -0
- package/dist/integrations/pi/engine/prompt-suggestions.d.ts +30 -0
- package/dist/integrations/pi/engine/prompt-suggestions.js +102 -0
- package/dist/integrations/pi/engine/provider-authentication.d.ts +34 -0
- package/dist/integrations/pi/engine/provider-authentication.js +209 -0
- package/dist/integrations/pi/engine/resource-catalog.d.ts +50 -0
- package/dist/integrations/pi/engine/resource-catalog.js +299 -0
- package/dist/integrations/pi/engine/resources/changelog.json +12 -0
- package/dist/integrations/pi/engine/runtime-integration.d.ts +53 -0
- package/dist/integrations/pi/engine/runtime-integration.js +118 -0
- package/dist/integrations/pi/engine/session-events.d.ts +48 -0
- package/dist/integrations/pi/engine/session-events.js +223 -0
- package/dist/integrations/pi/engine/session-integration.d.ts +67 -0
- package/dist/integrations/pi/engine/session-integration.js +195 -0
- package/dist/integrations/pi/engine/session-runtime.d.ts +84 -0
- package/dist/integrations/pi/engine/session-runtime.js +249 -0
- package/dist/integrations/pi/engine/session-selection.d.ts +28 -0
- package/dist/integrations/pi/engine/session-selection.js +90 -0
- package/dist/integrations/pi/engine/settings-bridge.d.ts +121 -0
- package/dist/integrations/pi/engine/settings-bridge.js +514 -0
- package/dist/integrations/pi/engine/settings-metadata.d.ts +31 -0
- package/dist/integrations/pi/engine/settings-metadata.js +67 -0
- package/dist/integrations/pi/engine/settings-port.d.ts +42 -0
- package/dist/integrations/pi/engine/settings-port.js +353 -0
- package/dist/integrations/pi/engine/tool-rendering.d.ts +13 -0
- package/dist/integrations/pi/engine/tool-rendering.js +145 -0
- package/dist/integrations/pi/engine/transcript-image-assets.d.ts +11 -0
- package/dist/integrations/pi/engine/transcript-image-assets.js +86 -0
- package/dist/integrations/pi/engine/transcript-projection.d.ts +39 -0
- package/dist/integrations/pi/engine/transcript-projection.js +405 -0
- package/dist/integrations/pi/engine/usage-view.d.ts +4 -0
- package/dist/integrations/pi/engine/usage-view.js +56 -0
- package/dist/integrations/pi/engine/windows-filesystem-hygiene.d.ts +21 -0
- package/dist/integrations/pi/engine/windows-filesystem-hygiene.js +55 -0
- package/dist/integrations/pi/engine/workflow-contexts.d.ts +66 -0
- package/dist/integrations/pi/engine/workflow-contexts.js +360 -0
- package/dist/integrations/pi/engine/workflow-runner.d.ts +60 -0
- package/dist/integrations/pi/engine/workflow-runner.js +533 -0
- package/dist/integrations/pi/engine/workflow-support.d.ts +33 -0
- package/dist/integrations/pi/engine/workflow-support.js +352 -0
- package/dist/integrations/pi/engine/workflows.d.ts +275 -0
- package/dist/integrations/pi/engine/workflows.js +71 -0
- package/dist/integrations/pi/startup-public.d.ts +2 -0
- package/dist/integrations/pi/startup-public.js +2223 -0
- package/dist/integrations/pi/startup-public.manifest.json +12502 -0
- package/dist/integrations/pi/tui-runtime/adapter.d.ts +56 -0
- package/dist/integrations/pi/tui-runtime/adapter.js +783 -0
- package/dist/integrations/pi/tui-runtime/contracts.d.ts +156 -0
- package/dist/integrations/pi/tui-runtime/contracts.js +1 -0
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +88 -0
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +433 -0
- package/dist/integrations/pi/tui-runtime/index.d.ts +9 -0
- package/dist/integrations/pi/tui-runtime/index.js +5 -0
- package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +39 -0
- package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.js +139 -0
- package/dist/integrations/pi/tui-runtime/mouse-report-input.d.ts +13 -0
- package/dist/integrations/pi/tui-runtime/mouse-report-input.js +57 -0
- package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +32 -0
- package/dist/integrations/pi/tui-runtime/overlay-geometry.js +158 -0
- package/dist/integrations/pi/tui-runtime/presentation-adapter.d.ts +4 -0
- package/dist/integrations/pi/tui-runtime/presentation-adapter.js +48 -0
- package/dist/native/darwin-arm64/manifest.json +4 -4
- package/dist/native/darwin-arm64/process-guardian +0 -0
- package/dist/native/linux-x64/manifest.json +3 -3
- package/dist/native/linux-x64/process-guardian +0 -0
- package/dist/native/win32-x64/manifest.json +3 -3
- package/dist/native/win32-x64/process-guardian.exe +0 -0
- package/dist/product-identity.d.ts +37 -0
- package/dist/product-identity.js +119 -0
- package/dist/product-identity.json +85 -0
- package/dist/runtime-payload-inventory.json +127148 -0
- package/dist/ui/apps/contracts.d.ts +72 -0
- package/dist/ui/apps/host.d.ts +42 -0
- package/dist/ui/apps/host.js +156 -0
- package/dist/ui/apps/index.d.ts +5 -0
- package/dist/ui/apps/index.js +3 -0
- package/dist/ui/apps/registry.d.ts +12 -0
- package/dist/ui/apps/registry.js +33 -0
- package/dist/ui/components/dialog-panel.js +49 -0
- package/dist/ui/components/frame.d.ts +22 -0
- package/dist/ui/components/frame.js +55 -0
- package/dist/ui/components/index.d.ts +47 -0
- package/dist/ui/components/index.js +25 -0
- package/dist/ui/components/line-input.d.ts +68 -0
- package/dist/ui/components/line-input.js +224 -0
- package/dist/ui/components/list-view.d.ts +60 -0
- package/dist/ui/components/list-view.js +82 -0
- package/dist/ui/components/mouse.d.ts +25 -0
- package/dist/ui/components/mouse.js +70 -0
- package/dist/ui/components/progress-status.d.ts +2 -0
- package/dist/ui/components/progress-status.js +4 -0
- package/dist/ui/components/prompt-input.d.ts +32 -0
- package/dist/ui/components/prompt-input.js +51 -0
- package/dist/ui/components/scrollbar.d.ts +88 -0
- package/dist/ui/components/scrollbar.js +137 -0
- package/dist/ui/components/selection-copy.d.ts +24 -0
- package/dist/ui/components/selection-copy.js +39 -0
- package/dist/ui/components/shortcuts.d.ts +58 -0
- package/dist/ui/components/shortcuts.js +82 -0
- package/dist/ui/components/spans.d.ts +28 -0
- package/dist/ui/components/spans.js +266 -0
- package/dist/ui/components/submitted-prompt.d.ts +23 -0
- package/dist/ui/components/submitted-prompt.js +50 -0
- package/dist/ui/components/surface.d.ts +20 -0
- package/dist/ui/components/surface.js +44 -0
- package/dist/ui/components/text-selection.d.ts +62 -0
- package/dist/ui/components/text-selection.js +210 -0
- package/dist/ui/components/text.d.ts +38 -0
- package/dist/ui/components/text.js +185 -0
- package/dist/ui/components/transcript-viewport.d.ts +173 -0
- package/dist/ui/components/transcript-viewport.js +753 -0
- package/dist/ui/components/visible-hyperlinks.d.ts +26 -0
- package/dist/ui/components/visible-hyperlinks.js +97 -0
- package/dist/ui/settings/declarations.d.ts +127 -0
- package/dist/ui/settings/declarations.js +124 -0
- package/dist/ui/settings/index.d.ts +10 -0
- package/dist/ui/settings/index.js +5 -0
- package/dist/ui/settings/manager.d.ts +54 -0
- package/dist/ui/settings/manager.js +256 -0
- package/dist/ui/settings/migrations.d.ts +13 -0
- package/dist/ui/settings/migrations.js +92 -0
- package/dist/ui/settings/sections.d.ts +52 -0
- package/dist/ui/settings/sections.js +112 -0
- package/docs/architecture/boundaries.md +17 -13
- package/docs/architecture/code-documentation.md +77 -0
- package/docs/architecture/history-editor-provenance.md +100 -0
- package/docs/architecture/internal-naming.md +93 -0
- package/docs/architecture/process-guardian-provenance.md +3 -1
- package/docs/architecture/project-structure.md +69 -30
- package/docs/architecture/prompt-suggestions.md +68 -0
- package/docs/architecture/resource-and-data-policy.md +28 -2
- package/docs/architecture/response-copy-delivery.md +85 -0
- package/docs/architecture/terminal-host-proof-gate.md +1 -1
- package/docs/architecture/terminal-host-spike-evidence.md +1 -1
- package/docs/architecture/tool-image-presentation.md +62 -0
- package/docs/architecture/toolchain.md +32 -10
- package/docs/architecture/ui-reference-provenance.md +61 -6
- package/docs/ci-release-runbook.md +256 -79
- package/docs/features/launch-profiles.md +24 -17
- package/docs/features/modal-content-interaction.md +38 -0
- package/docs/features/prompt-history.md +149 -0
- package/docs/local-worktree-cleanup.md +212 -0
- package/docs/manual-code-streaming-cleanup.md +88 -0
- package/docs/manual-ghost-link-baseline.md +89 -0
- package/docs/manual-launch-instance-acceptance.md +12 -35
- package/docs/manual-owned-ui-checkpoint.md +79 -0
- package/docs/manual-pi-boundary-candidate.md +4 -5
- package/docs/manual-terminal-colour-check.md +4 -3
- package/docs/openspec-archive-automation.md +259 -0
- package/docs/repository-governance-live-acceptance.md +77 -0
- package/docs/validation.md +100 -0
- package/package.json +52 -34
- package/dist/src/cli/capabilities.d.ts +0 -15
- package/dist/src/cli/capabilities.js +0 -7
- package/dist/src/cli/dispatch.d.ts +0 -32
- package/dist/src/cli/dispatch.js +0 -142
- package/dist/src/cli/index.d.ts +0 -5
- package/dist/src/cli/index.js +0 -5
- package/dist/src/cli/packages.d.ts +0 -23
- package/dist/src/cli/packages.js +0 -84
- package/dist/src/cli/version-stats.d.ts +0 -16
- package/dist/src/cli/version-stats.js +0 -72
- package/dist/src/cli/version.d.ts +0 -2
- package/dist/src/cli/version.js +0 -23
- package/dist/src/composition/index.d.ts +0 -48
- package/dist/src/composition/index.js +0 -258
- package/dist/src/features/launch/development-launch.js +0 -28
- package/dist/src/features/launch/index.d.ts +0 -7
- package/dist/src/features/launch/index.js +0 -7
- package/dist/src/features/launch/intent.d.ts +0 -7
- package/dist/src/features/launch/intent.js +0 -4
- package/dist/src/features/launch/prepare-launch.d.ts +0 -13
- package/dist/src/features/launch/prepare-launch.js +0 -21
- package/dist/src/features/launch/profile-paths.d.ts +0 -15
- package/dist/src/features/launch/profile-paths.js +0 -31
- package/dist/src/features/launch/profiles.d.ts +0 -12
- package/dist/src/features/launch/profiles.js +0 -26
- package/dist/src/features/launch/runtime-selection.d.ts +0 -19
- package/dist/src/features/launch/runtime-selection.js +0 -13
- package/dist/src/features/owned-ui/customization.d.ts +0 -38
- package/dist/src/features/owned-ui/customization.js +0 -108
- package/dist/src/features/owned-ui/diagnostics.d.ts +0 -33
- package/dist/src/features/owned-ui/diagnostics.js +0 -94
- package/dist/src/features/owned-ui/index.d.ts +0 -4
- package/dist/src/features/owned-ui/index.js +0 -4
- package/dist/src/features/owned-ui/run.d.ts +0 -11
- package/dist/src/features/owned-ui/run.js +0 -15
- package/dist/src/features/owned-ui/settings-app.d.ts +0 -22
- package/dist/src/features/owned-ui/settings-app.js +0 -633
- package/dist/src/features/workspace/capabilities.d.ts +0 -31
- package/dist/src/features/workspace/capabilities.js +0 -75
- package/dist/src/features/workspace/index.d.ts +0 -6
- package/dist/src/features/workspace/index.js +0 -6
- package/dist/src/features/workspace/presentation.d.ts +0 -30
- package/dist/src/features/workspace/presentation.js +0 -70
- package/dist/src/features/workspace/reconciliation.d.ts +0 -15
- package/dist/src/features/workspace/reconciliation.js +0 -82
- package/dist/src/features/workspace/reducer.d.ts +0 -42
- package/dist/src/features/workspace/reducer.js +0 -213
- package/dist/src/features/workspace/router.d.ts +0 -31
- package/dist/src/features/workspace/router.js +0 -124
- package/dist/src/features/workspace/store.d.ts +0 -17
- package/dist/src/features/workspace/store.js +0 -54
- package/dist/src/foundation/agent-engine-contracts/capability-ports.d.ts +0 -95
- package/dist/src/foundation/agent-engine-contracts/domain-validation.js +0 -89
- package/dist/src/foundation/agent-engine-contracts/domain.d.ts +0 -116
- package/dist/src/foundation/agent-engine-contracts/index.d.ts +0 -8
- package/dist/src/foundation/agent-engine-contracts/index.js +0 -8
- package/dist/src/foundation/agent-engine-contracts/package-ports.d.ts +0 -54
- package/dist/src/foundation/launch-guardian/index.d.ts +0 -1
- package/dist/src/foundation/launch-guardian/index.js +0 -1
- package/dist/src/foundation/launch-guardian/main.d.ts +0 -31
- package/dist/src/foundation/launch-guardian/main.js +0 -165
- package/dist/src/foundation/lifecycle/index.d.ts +0 -4
- package/dist/src/foundation/lifecycle/index.js +0 -4
- package/dist/src/foundation/lifecycle/model.d.ts +0 -64
- package/dist/src/foundation/lifecycle/model.js +0 -40
- package/dist/src/foundation/lifecycle/paths.d.ts +0 -10
- package/dist/src/foundation/lifecycle/paths.js +0 -42
- package/dist/src/foundation/native-host-protocol/codec.d.ts +0 -11
- package/dist/src/foundation/native-host-protocol/codec.js +0 -56
- package/dist/src/foundation/native-host-protocol/evidence.d.ts +0 -67
- package/dist/src/foundation/native-host-protocol/evidence.js +0 -141
- package/dist/src/foundation/native-host-protocol/index.d.ts +0 -4
- package/dist/src/foundation/native-host-protocol/index.js +0 -4
- package/dist/src/foundation/native-host-protocol/messages.d.ts +0 -56
- package/dist/src/foundation/native-host-protocol/messages.js +0 -149
- package/dist/src/foundation/native-host-protocol/proof-gate.d.ts +0 -13
- package/dist/src/foundation/native-host-protocol/proof-gate.js +0 -33
- package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts +0 -302
- package/dist/src/foundation/owned-ui-contracts/index.d.ts +0 -3
- package/dist/src/foundation/owned-ui-contracts/index.js +0 -3
- package/dist/src/foundation/owned-ui-contracts/model.d.ts +0 -241
- package/dist/src/foundation/owned-ui-contracts/validation.d.ts +0 -11
- package/dist/src/foundation/owned-ui-contracts/validation.js +0 -395
- package/dist/src/foundation/owned-ui-settings/declarations.d.ts +0 -13
- package/dist/src/foundation/owned-ui-settings/declarations.js +0 -39
- package/dist/src/foundation/owned-ui-settings/index.d.ts +0 -6
- package/dist/src/foundation/owned-ui-settings/index.js +0 -6
- package/dist/src/foundation/owned-ui-settings/migrations.d.ts +0 -13
- package/dist/src/foundation/owned-ui-settings/migrations.js +0 -28
- package/dist/src/foundation/owned-ui-settings/sections.d.ts +0 -70
- package/dist/src/foundation/owned-ui-settings/sections.js +0 -93
- package/dist/src/foundation/owned-ui-settings/session.d.ts +0 -44
- package/dist/src/foundation/owned-ui-settings/session.js +0 -145
- package/dist/src/foundation/owned-ui-settings/store.d.ts +0 -28
- package/dist/src/foundation/owned-ui-settings/store.js +0 -90
- package/dist/src/foundation/pi-component-adapter/components.d.ts +0 -4
- package/dist/src/foundation/pi-component-adapter/components.js +0 -64
- package/dist/src/foundation/pi-component-adapter/conformance.d.ts +0 -17
- package/dist/src/foundation/pi-component-adapter/conformance.js +0 -69
- package/dist/src/foundation/pi-component-adapter/index.d.ts +0 -13
- package/dist/src/foundation/pi-component-adapter/index.js +0 -13
- package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.d.ts +0 -165
- package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.js +0 -166
- package/dist/src/foundation/pi-component-adapter/shell-components.d.ts +0 -6
- package/dist/src/foundation/pi-component-adapter/shell-components.js +0 -6
- package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.d.ts +0 -11
- package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +0 -162
- package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts +0 -35
- package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js +0 -279
- package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts +0 -7
- package/dist/src/foundation/pi-component-adapter/shell-footer-status.js +0 -189
- package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -57
- package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js +0 -429
- package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts +0 -113
- package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js +0 -235
- package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -116
- package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js +0 -87
- package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts +0 -422
- package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js +0 -296
- package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts +0 -10
- package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts +0 -17
- package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js +0 -51
- package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts +0 -22
- package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js +0 -142
- package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts +0 -4
- package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +0 -19
- package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts +0 -17
- package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js +0 -81
- package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts +0 -24
- package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js +0 -105
- package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts +0 -2
- package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js +0 -18
- package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js +0 -77
- package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.d.ts +0 -18
- package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.js +0 -55
- package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts +0 -55
- package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js +0 -342
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.d.ts +0 -10
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.js +0 -120
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js +0 -159
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts +0 -95
- package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js +0 -889
- package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts +0 -19
- package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js +0 -44
- package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts +0 -30
- package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js +0 -59
- package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts +0 -98
- package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js +0 -1272
- package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts +0 -33
- package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js +0 -76
- package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js +0 -39
- package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts +0 -15
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts +0 -25
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js +0 -117
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts +0 -61
- package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js +0 -326
- package/dist/src/foundation/pi-engine-adapter/adapter.d.ts +0 -164
- package/dist/src/foundation/pi-engine-adapter/adapter.js +0 -2367
- package/dist/src/foundation/pi-engine-adapter/conformance.d.ts +0 -37
- package/dist/src/foundation/pi-engine-adapter/conformance.js +0 -130
- package/dist/src/foundation/pi-engine-adapter/index.d.ts +0 -10
- package/dist/src/foundation/pi-engine-adapter/index.js +0 -10
- package/dist/src/foundation/pi-engine-adapter/model-auth-integration.d.ts +0 -30
- package/dist/src/foundation/pi-engine-adapter/model-auth-integration.js +0 -61
- package/dist/src/foundation/pi-engine-adapter/package-integration.d.ts +0 -13
- package/dist/src/foundation/pi-engine-adapter/package-integration.js +0 -112
- package/dist/src/foundation/pi-engine-adapter/pi-settings-metadata.json +0 -374
- package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.d.ts +0 -31
- package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.js +0 -80
- package/dist/src/foundation/pi-engine-adapter/runtime-integration.d.ts +0 -35
- package/dist/src/foundation/pi-engine-adapter/runtime-integration.js +0 -67
- package/dist/src/foundation/pi-engine-adapter/session-integration.d.ts +0 -43
- package/dist/src/foundation/pi-engine-adapter/session-integration.js +0 -97
- package/dist/src/foundation/pi-engine-adapter/settings-integration.d.ts +0 -55
- package/dist/src/foundation/pi-engine-adapter/settings-integration.js +0 -233
- package/dist/src/foundation/pi-engine-adapter/workflow-controllers.d.ts +0 -20
- package/dist/src/foundation/pi-engine-adapter/workflow-controllers.js +0 -48
- package/dist/src/foundation/pi-engine-adapter/workflows.d.ts +0 -173
- package/dist/src/foundation/pi-engine-adapter/workflows.js +0 -60
- package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +0 -2
- package/dist/src/foundation/pi-owned-ui-integration/index.js +0 -2
- package/dist/src/foundation/pi-owned-ui-integration/route-host.d.ts +0 -29
- package/dist/src/foundation/pi-owned-ui-integration/session-shell.d.ts +0 -106
- package/dist/src/foundation/pi-owned-ui-integration/session-shell.js +0 -1518
- package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts +0 -39
- package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js +0 -493
- package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts +0 -18
- package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js +0 -145
- package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts +0 -120
- package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts +0 -4
- package/dist/src/foundation/pi-tui-runtime-adapter/index.js +0 -4
- package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.d.ts +0 -4
- package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.js +0 -48
- package/dist/src/foundation/presentation-contracts/index.d.ts +0 -96
- package/dist/src/foundation/process-containment/index.d.ts +0 -5
- package/dist/src/foundation/process-containment/index.js +0 -5
- package/dist/src/foundation/process-containment/linux-process-inspector.d.ts +0 -6
- package/dist/src/foundation/process-containment/linux-process-inspector.js +0 -26
- package/dist/src/foundation/process-containment/native-guardian-containment.d.ts +0 -16
- package/dist/src/foundation/process-containment/native-guardian-containment.js +0 -139
- package/dist/src/foundation/process-containment/windows-process-inspector.d.ts +0 -17
- package/dist/src/foundation/process-containment/windows-process-inspector.js +0 -53
- package/dist/src/foundation/protocol/client.d.ts +0 -17
- package/dist/src/foundation/protocol/client.js +0 -129
- package/dist/src/foundation/protocol/index.d.ts +0 -2
- package/dist/src/foundation/protocol/index.js +0 -2
- package/dist/src/foundation/protocol/messages.d.ts +0 -89
- package/dist/src/foundation/protocol/messages.js +0 -99
- package/dist/src/foundation/release/bootstrap.d.ts +0 -29
- package/dist/src/foundation/release/bootstrap.js +0 -335
- package/dist/src/foundation/release/cohort-state.d.ts +0 -70
- package/dist/src/foundation/release/cohort-state.js +0 -202
- package/dist/src/foundation/release/index.d.ts +0 -10
- package/dist/src/foundation/release/index.js +0 -10
- package/dist/src/foundation/release/release-gc.d.ts +0 -5
- package/dist/src/foundation/release/release-gc.js +0 -16
- package/dist/src/foundation/release/release-store.d.ts +0 -43
- package/dist/src/foundation/release/release-store.js +0 -175
- package/dist/src/foundation/release/release.d.ts +0 -38
- package/dist/src/foundation/release/release.js +0 -204
- package/dist/src/foundation/release/update-transaction.d.ts +0 -31
- package/dist/src/foundation/release/update-transaction.js +0 -89
- package/dist/src/foundation/release/update.d.ts +0 -82
- package/dist/src/foundation/release/update.js +0 -527
- package/dist/src/foundation/storage/control-store.d.ts +0 -61
- package/dist/src/foundation/storage/control-store.js +0 -530
- package/dist/src/foundation/storage/index.d.ts +0 -1
- package/dist/src/foundation/storage/index.js +0 -1
- package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts +0 -46
- package/dist/src/foundation/structured-agent-runtime/backpressure.js +0 -118
- package/dist/src/foundation/structured-agent-runtime/commands.d.ts +0 -52
- package/dist/src/foundation/structured-agent-runtime/commands.js +0 -164
- package/dist/src/foundation/structured-agent-runtime/handshake.d.ts +0 -41
- package/dist/src/foundation/structured-agent-runtime/handshake.js +0 -151
- package/dist/src/foundation/structured-agent-runtime/index.d.ts +0 -5
- package/dist/src/foundation/structured-agent-runtime/index.js +0 -5
- package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts +0 -37
- package/dist/src/foundation/structured-agent-runtime/reconnection.js +0 -129
- package/dist/src/foundation/structured-agent-runtime/state.d.ts +0 -56
- package/dist/src/foundation/structured-agent-runtime/state.js +0 -118
- package/dist/src/foundation/supervision/index.d.ts +0 -3
- package/dist/src/foundation/supervision/index.js +0 -3
- package/dist/src/foundation/supervision/main.d.ts +0 -1
- package/dist/src/foundation/supervision/main.js +0 -41
- package/dist/src/foundation/supervision/paths.d.ts +0 -1
- package/dist/src/foundation/supervision/paths.js +0 -1
- package/dist/src/foundation/supervision/server.d.ts +0 -22
- package/dist/src/foundation/supervision/server.js +0 -451
- package/dist/src/foundation/ui-apps/contracts.d.ts +0 -42
- package/dist/src/foundation/ui-apps/host.d.ts +0 -42
- package/dist/src/foundation/ui-apps/host.js +0 -152
- package/dist/src/foundation/ui-apps/index.d.ts +0 -3
- package/dist/src/foundation/ui-apps/index.js +0 -3
- package/dist/src/foundation/ui-apps/registry.d.ts +0 -11
- package/dist/src/foundation/ui-apps/registry.js +0 -32
- package/dist/src/foundation/ui-components/dialog-panel.js +0 -47
- package/dist/src/foundation/ui-components/frame.d.ts +0 -21
- package/dist/src/foundation/ui-components/frame.js +0 -54
- package/dist/src/foundation/ui-components/index.d.ts +0 -18
- package/dist/src/foundation/ui-components/index.js +0 -18
- package/dist/src/foundation/ui-components/line-input.d.ts +0 -74
- package/dist/src/foundation/ui-components/line-input.js +0 -245
- package/dist/src/foundation/ui-components/list-view.d.ts +0 -66
- package/dist/src/foundation/ui-components/list-view.js +0 -76
- package/dist/src/foundation/ui-components/mouse.d.ts +0 -15
- package/dist/src/foundation/ui-components/mouse.js +0 -46
- package/dist/src/foundation/ui-components/scrollbar.d.ts +0 -62
- package/dist/src/foundation/ui-components/scrollbar.js +0 -102
- package/dist/src/foundation/ui-components/shortcuts.d.ts +0 -57
- package/dist/src/foundation/ui-components/shortcuts.js +0 -81
- package/dist/src/foundation/ui-components/spans.d.ts +0 -7
- package/dist/src/foundation/ui-components/spans.js +0 -59
- package/dist/src/foundation/ui-components/surface.d.ts +0 -20
- package/dist/src/foundation/ui-components/surface.js +0 -38
- package/dist/src/foundation/ui-components/text.d.ts +0 -24
- package/dist/src/foundation/ui-components/text.js +0 -123
- package/dist/src/foundation/workspace-contracts/index.d.ts +0 -2
- package/dist/src/foundation/workspace-contracts/index.js +0 -2
- package/dist/src/foundation/workspace-contracts/model.d.ts +0 -248
- package/dist/src/foundation/workspace-contracts/model.js +0 -2
- package/dist/src/foundation/workspace-contracts/validation.d.ts +0 -13
- package/dist/src/foundation/workspace-contracts/validation.js +0 -335
- package/dist/src/product-identity.d.ts +0 -37
- package/dist/src/product-identity.js +0 -150
- package/dist/src/product-identity.json +0 -99
- package/docs/manual-transparent-checkpoint.md +0 -53
- /package/dist/{src/foundation/agent-engine-contracts/domain.js → app/session-shell/paste-helper.d.ts} +0 -0
- /package/dist/{src/foundation/agent-engine-contracts/ports.js → app/session-shell/paste-text-worker.d.ts} +0 -0
- /package/dist/{src/foundation/lifecycle/commands.js → app/session-shell/paste-types.js} +0 -0
- /package/dist/{src/foundation/pi-owned-ui-integration/route-host.js → app/session-shell/response-copy-helper.d.ts} +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/capability-ports.js +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain-validation.d.ts +0 -0
- /package/dist/{src/foundation/pi-tui-runtime-adapter/contracts.js → contracts/agent-engine/domain.js} +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.d.ts +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.js +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/package-ports.js +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/ports.d.ts +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.d.ts +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.js +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.d.ts +0 -0
- /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.js +0 -0
- /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/extension-ui.js +0 -0
- /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/model.js +0 -0
- /package/dist/{src/foundation/presentation-contracts → contracts/presentation}/index.js +0 -0
- /package/dist/{src/features → features}/launch/development-launch.d.ts +0 -0
- /package/dist/{src/features → features}/launch/initialize-profile.d.ts +0 -0
- /package/dist/{src/features → features}/launch/initialize-profile.js +0 -0
- /package/dist/{src/foundation → foundation}/lifecycle/commands.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.js +0 -0
- /package/dist/{src/foundation → foundation}/process-containment/artifact.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/process-containment/artifact.js +0 -0
- /package/dist/{src/foundation → foundation}/process-containment/contracts.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/process-containment/contracts.js +0 -0
- /package/dist/{src/foundation → foundation}/release/cohort-selection.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/release/cohort-selection.js +0 -0
- /package/dist/{src/foundation → foundation}/release/concurrency.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/release/concurrency.js +0 -0
- /package/dist/{src/foundation → foundation}/release/process-cleanup.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/release/process-cleanup.js +0 -0
- /package/dist/{src/foundation → foundation}/release/stable-release.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/release/stable-release.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/countdown-timer.js +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/mermaid.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector-search.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/external-editor.d.ts +0 -0
- /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/model-search.js +0 -0
- /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.d.ts +0 -0
- /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.js +0 -0
- /package/dist/{src/foundation/ui-apps → ui/apps}/contracts.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/dialog-panel.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/label.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/label.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/list-block.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/list-block.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/pane.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/pane.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/revision.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/revision.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/status-line.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/status-line.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/stepper.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/stepper.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/theme.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/theme.js +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/value-menu.d.ts +0 -0
- /package/dist/{src/foundation/ui-components → ui/components}/value-menu.js +0 -0
- /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.d.ts +0 -0
- /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.js +0 -0
|
@@ -0,0 +1,255 @@
|
|
|
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 { ModelsDialogComponent, } from "./models-dialog.js";
|
|
9
|
+
import { TrustSelectorComponent, } from "./upstream/components/trust-selector.js";
|
|
10
|
+
import { PINNED_PI_LAYOUT, piTheme, } from "./theme.js";
|
|
11
|
+
import { componentFromPort, componentPort, createTuiFacade, ensureTheme, isRecord, } from "./shell-shared-facade.js";
|
|
12
|
+
export { createPiShellSkillsSelector } from "./skills-dialog.js";
|
|
13
|
+
export function createPiShellSelector(options) {
|
|
14
|
+
ensureTheme();
|
|
15
|
+
const items = options.options.map(toSelectItem);
|
|
16
|
+
const list = new SelectList(items, options.maxVisible ?? Math.min(PINNED_PI_LAYOUT.selectorMaxVisible, Math.max(1, items.length)), getSelectListTheme());
|
|
17
|
+
if (options.onSelect !== undefined)
|
|
18
|
+
list.onSelect = item => options.onSelect?.(item.value);
|
|
19
|
+
if (options.onCancel !== undefined)
|
|
20
|
+
list.onCancel = options.onCancel;
|
|
21
|
+
if (!options.title)
|
|
22
|
+
return componentPort(list);
|
|
23
|
+
const container = new Container();
|
|
24
|
+
container.addChild(new Text(piTheme().fg("accent", piTheme().bold(options.title)), PINNED_PI_LAYOUT.contentPaddingX, 0));
|
|
25
|
+
container.addChild(list);
|
|
26
|
+
return componentPort(container, data => list.handleInput(data));
|
|
27
|
+
}
|
|
28
|
+
export function createPiShellSettingsSelector(options) {
|
|
29
|
+
ensureTheme();
|
|
30
|
+
// Protocol: one-argument callbacks pass the value; the per-model callbacks carry (provider, modelId[, level]) as a tuple.
|
|
31
|
+
const change = (name) => (...values) => options.onChange(name, values.length > 1 ? values : values[0]);
|
|
32
|
+
const callbacks = {
|
|
33
|
+
onAutoCompactChange: change("onAutoCompactChange"),
|
|
34
|
+
onShowImagesChange: change("onShowImagesChange"),
|
|
35
|
+
onImageWidthCellsChange: change("onImageWidthCellsChange"),
|
|
36
|
+
onAutoResizeImagesChange: change("onAutoResizeImagesChange"),
|
|
37
|
+
onBlockImagesChange: change("onBlockImagesChange"),
|
|
38
|
+
onEnableSkillCommandsChange: change("onEnableSkillCommandsChange"),
|
|
39
|
+
onSteeringModeChange: change("onSteeringModeChange"),
|
|
40
|
+
onFollowUpModeChange: change("onFollowUpModeChange"),
|
|
41
|
+
onTransportChange: change("onTransportChange"),
|
|
42
|
+
onHttpIdleTimeoutMsChange: change("onHttpIdleTimeoutMsChange"),
|
|
43
|
+
onModelThinkingLevelChange: change("onModelThinkingLevelChange"),
|
|
44
|
+
onModelThinkingLevelRemove: change("onModelThinkingLevelRemove"),
|
|
45
|
+
onThemeChange: change("onThemeChange"),
|
|
46
|
+
onThemePreview: change("onThemePreview"),
|
|
47
|
+
onHideThinkingBlockChange: change("onHideThinkingBlockChange"),
|
|
48
|
+
onMermaidRenderingModeChange: change("onMermaidRenderingModeChange"),
|
|
49
|
+
onShowCacheMissNoticesChange: change("onShowCacheMissNoticesChange"),
|
|
50
|
+
onCollapseChangelogChange: change("onCollapseChangelogChange"),
|
|
51
|
+
onEnableInstallTelemetryChange: change("onEnableInstallTelemetryChange"),
|
|
52
|
+
onDoubleEscapeActionChange: change("onDoubleEscapeActionChange"),
|
|
53
|
+
onTreeFilterModeChange: change("onTreeFilterModeChange"),
|
|
54
|
+
onShowHardwareCursorChange: change("onShowHardwareCursorChange"),
|
|
55
|
+
onEditorPaddingXChange: change("onEditorPaddingXChange"),
|
|
56
|
+
onOutputPadChange: change("onOutputPadChange"),
|
|
57
|
+
onAutocompleteMaxVisibleChange: change("onAutocompleteMaxVisibleChange"),
|
|
58
|
+
onQuietStartupChange: change("onQuietStartupChange"),
|
|
59
|
+
onDefaultProjectTrustChange: change("onDefaultProjectTrustChange"),
|
|
60
|
+
onClearOnShrinkChange: change("onClearOnShrinkChange"),
|
|
61
|
+
onShowTerminalProgressChange: change("onShowTerminalProgressChange"),
|
|
62
|
+
onTuiModeChange: change("onTuiModeChange"),
|
|
63
|
+
onFullscreenExitOutputChange: change("onFullscreenExitOutputChange"),
|
|
64
|
+
onFullscreenScrollbarChange: change("onFullscreenScrollbarChange"),
|
|
65
|
+
onFullscreenCopyOnSelectChange: change("onFullscreenCopyOnSelectChange"),
|
|
66
|
+
onWarningsChange: change("onWarningsChange"),
|
|
67
|
+
onCancel: options.onCancel,
|
|
68
|
+
};
|
|
69
|
+
const selector = new SettingsSelectorComponent(options.config, callbacks);
|
|
70
|
+
const settingsList = selector.getSettingsList();
|
|
71
|
+
return componentPort(selector, data => settingsList.handleInput(data));
|
|
72
|
+
}
|
|
73
|
+
export function createPiShellModelSelector(options) {
|
|
74
|
+
ensureTheme();
|
|
75
|
+
const selector = new ModelSelectorComponent(createTuiFacade(options.runtime), options.currentModel, options.modelRuntime, options.scopedModels, options.onSelect, options.onCancel, options.initialSearchInput, options.onSelectAsDefault, options.defaultModel);
|
|
76
|
+
return componentPort(selector);
|
|
77
|
+
}
|
|
78
|
+
function toPiScopedModel(model) {
|
|
79
|
+
const candidate = { provider: model.provider, id: model.id, name: model.name };
|
|
80
|
+
if (!isPiScopedModel(candidate))
|
|
81
|
+
throw new TypeError("Pi scoped-model façade rejected malformed model metadata");
|
|
82
|
+
return candidate;
|
|
83
|
+
}
|
|
84
|
+
function isPiScopedModel(value) {
|
|
85
|
+
return isRecord(value) && typeof value.provider === "string" && typeof value.id === "string" && typeof value.name === "string";
|
|
86
|
+
}
|
|
87
|
+
export function createPiShellScopedModelsSelector(options) {
|
|
88
|
+
ensureTheme();
|
|
89
|
+
const selector = new ScopedModelsSelectorComponent({
|
|
90
|
+
allModels: options.models.map(toPiScopedModel),
|
|
91
|
+
enabledModelIds: options.enabledModelIds === null ? null : [...options.enabledModelIds],
|
|
92
|
+
...(options.refreshStatus === undefined ? {} : { refreshStatus: options.refreshStatus }),
|
|
93
|
+
}, {
|
|
94
|
+
onChange: ids => options.onChange(ids),
|
|
95
|
+
onPersist: ids => options.onPersist(ids),
|
|
96
|
+
onCancel: options.onCancel,
|
|
97
|
+
});
|
|
98
|
+
return {
|
|
99
|
+
...componentPort(selector),
|
|
100
|
+
updateModels(models, enabledModelIds) {
|
|
101
|
+
selector.updateModels(models.map(toPiScopedModel), enabledModelIds === undefined
|
|
102
|
+
? undefined
|
|
103
|
+
: enabledModelIds === null ? null : [...enabledModelIds]);
|
|
104
|
+
},
|
|
105
|
+
setRefreshStatus: (message, kind) => selector.setRefreshStatus(message, kind),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/** The bare-A1 unified Models dialog behind the owned component boundary; the pinned selectors above stay for `a1 pi`. */
|
|
109
|
+
export function createPiShellModelsDialog(options) {
|
|
110
|
+
ensureTheme();
|
|
111
|
+
const dialog = new ModelsDialogComponent(options, options);
|
|
112
|
+
return {
|
|
113
|
+
...componentPort(dialog),
|
|
114
|
+
updateModels: models => dialog.updateModels(models),
|
|
115
|
+
setRefreshStatus: (message, kind) => dialog.setRefreshStatus(message, kind),
|
|
116
|
+
dirty: () => dialog.dirty,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
export function createPiShellTrustSelector(options) {
|
|
120
|
+
ensureTheme();
|
|
121
|
+
return componentPort(new TrustSelectorComponent(options));
|
|
122
|
+
}
|
|
123
|
+
export function createPiShellSessionSelector(options) {
|
|
124
|
+
ensureTheme();
|
|
125
|
+
const selector = new SessionSelectorComponent(options.currentSessionsLoader, options.allSessionsLoader, options.onSelect, options.onCancel, options.onExit, options.requestRender, { renameSession: options.renameSession, showRenameHint: true }, options.currentSessionFilePath);
|
|
126
|
+
return componentPort(selector);
|
|
127
|
+
}
|
|
128
|
+
export function createPiShellTreeSelector(options) {
|
|
129
|
+
ensureTheme();
|
|
130
|
+
const selector = new TreeSelectorComponent([...options.tree], options.currentLeafId, options.terminalHeight, options.onSelect, options.onCancel, options.onLabelChange, options.initialSelectedId, options.initialFilterMode);
|
|
131
|
+
if (options.onCopy)
|
|
132
|
+
selector.onCopy = options.onCopy;
|
|
133
|
+
return componentPort(selector);
|
|
134
|
+
}
|
|
135
|
+
export function createPiShellUserMessageSelector(messages, onSelect, onCancel, initialSelectedId) {
|
|
136
|
+
ensureTheme();
|
|
137
|
+
const selector = new UserMessageSelectorComponent(messages.map(message => ({ id: message.id, text: message.label })), onSelect, onCancel, initialSelectedId);
|
|
138
|
+
const list = selector.getMessageList();
|
|
139
|
+
return componentPort(selector, data => list.handleInput(data));
|
|
140
|
+
}
|
|
141
|
+
export function createPiShellLoginDialog(runtime, providerId, onComplete, providerName, title) {
|
|
142
|
+
ensureTheme();
|
|
143
|
+
const dialog = new LoginDialogComponent(createTuiFacade(runtime), providerId, onComplete, providerName, title);
|
|
144
|
+
return {
|
|
145
|
+
...componentPort(dialog),
|
|
146
|
+
showAuth: (url, instructions) => dialog.showAuth(url, instructions),
|
|
147
|
+
showDeviceCode: info => dialog.showDeviceCode(info),
|
|
148
|
+
showManualInput: message => dialog.showManualInput(message),
|
|
149
|
+
showPrompt: (message, placeholder) => dialog.showPrompt(message, placeholder),
|
|
150
|
+
showDetails: lines => dialog.showDetails([...lines]),
|
|
151
|
+
showInfo: (message, links = [], showCloseHint = false) => dialog.showInfo(message, [...links], showCloseHint),
|
|
152
|
+
showWaiting: message => dialog.showWaiting(message),
|
|
153
|
+
showProgress: message => dialog.showProgress(message),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
export function createPiShellArmin(runtime) {
|
|
157
|
+
ensureTheme();
|
|
158
|
+
return componentPort(new ArminComponent(createTuiFacade(runtime)));
|
|
159
|
+
}
|
|
160
|
+
export function createPiShellDaxnuts(runtime) {
|
|
161
|
+
ensureTheme();
|
|
162
|
+
return componentPort(new DaxnutsComponent(createTuiFacade(runtime)));
|
|
163
|
+
}
|
|
164
|
+
export function createPiShellEarendilAnnouncement() {
|
|
165
|
+
ensureTheme();
|
|
166
|
+
return componentPort(new EarendilAnnouncementComponent());
|
|
167
|
+
}
|
|
168
|
+
export function createPiShellOperationLoader(runtime, message) {
|
|
169
|
+
ensureTheme();
|
|
170
|
+
const loader = new BorderedLoader(createTuiFacade(runtime), piTheme(), message, { cancellable: true });
|
|
171
|
+
return { ...componentPort(loader), signal: loader.signal };
|
|
172
|
+
}
|
|
173
|
+
export function createPiShellReloadBox() {
|
|
174
|
+
ensureTheme();
|
|
175
|
+
const container = new Container();
|
|
176
|
+
const borderColor = (text) => piTheme().fg("border", text);
|
|
177
|
+
container.addChild(new DynamicBorder(borderColor));
|
|
178
|
+
container.addChild(new Spacer(1));
|
|
179
|
+
container.addChild(new Text(piTheme().fg("muted", "Reloading keybindings, extensions, skills, prompts, themes, and context files..."), 1, 0));
|
|
180
|
+
container.addChild(new Spacer(1));
|
|
181
|
+
container.addChild(new DynamicBorder(borderColor));
|
|
182
|
+
return componentPort(container);
|
|
183
|
+
}
|
|
184
|
+
export function createPiShellAuthProviderSelector(mode, providers, onSelect, onCancel, initialSearchInput) {
|
|
185
|
+
ensureTheme();
|
|
186
|
+
const selector = new OAuthSelectorComponent(mode, providers.map(provider => ({
|
|
187
|
+
id: provider.providerId,
|
|
188
|
+
name: provider.label,
|
|
189
|
+
authType: provider.authType,
|
|
190
|
+
...(provider.status === undefined ? {} : { status: provider.status }),
|
|
191
|
+
})), (providerId, authType) => {
|
|
192
|
+
const selected = providers.find(provider => provider.providerId === providerId && provider.authType === authType);
|
|
193
|
+
if (selected)
|
|
194
|
+
onSelect(selected.id);
|
|
195
|
+
}, onCancel, initialSearchInput);
|
|
196
|
+
return componentPort(selector);
|
|
197
|
+
}
|
|
198
|
+
export function createPiShellExtensionSelector(title, options, onSelect, onCancel) {
|
|
199
|
+
ensureTheme();
|
|
200
|
+
return componentPort(new ExtensionSelectorComponent(title, [...options], onSelect, onCancel));
|
|
201
|
+
}
|
|
202
|
+
export function createPiShellThinkingSelector(currentLevel, availableLevels, onSelect, onCancel, onSelectAsDefault, defaultLevel) {
|
|
203
|
+
ensureTheme();
|
|
204
|
+
const selector = new ThinkingSelectorComponent(currentLevel, [...availableLevels], onSelect, onCancel, onSelectAsDefault, defaultLevel);
|
|
205
|
+
const list = selector.getSelectList();
|
|
206
|
+
return componentPort(selector, data => list.handleInput(data));
|
|
207
|
+
}
|
|
208
|
+
export function createPiShellThemeSelector(currentTheme, onSelect, onCancel, onPreview) {
|
|
209
|
+
ensureTheme();
|
|
210
|
+
const selector = new ThemeSelectorComponent(currentTheme, onSelect, onCancel, onPreview);
|
|
211
|
+
const list = selector.getSelectList();
|
|
212
|
+
return componentPort(selector, data => list.handleInput(data));
|
|
213
|
+
}
|
|
214
|
+
export function createPiShellShowImagesSelector(currentValue, onSelect, onCancel) {
|
|
215
|
+
ensureTheme();
|
|
216
|
+
const selector = new ShowImagesSelectorComponent(currentValue, onSelect, onCancel);
|
|
217
|
+
const list = selector.getSelectList();
|
|
218
|
+
return componentPort(selector, data => list.handleInput(data));
|
|
219
|
+
}
|
|
220
|
+
export function createPiShellDialog(dialog, handlers = {}) {
|
|
221
|
+
ensureTheme();
|
|
222
|
+
const selector = createPiShellSelector({
|
|
223
|
+
title: dialog.title,
|
|
224
|
+
options: dialogOptions(dialog),
|
|
225
|
+
maxVisible: 8,
|
|
226
|
+
...(handlers.onSelect === undefined ? {} : { onSelect: handlers.onSelect }),
|
|
227
|
+
...(handlers.onCancel === undefined ? {} : { onCancel: handlers.onCancel }),
|
|
228
|
+
});
|
|
229
|
+
const box = new Box(1, 1);
|
|
230
|
+
box.addChild(componentFromPort(selector));
|
|
231
|
+
return componentPort(box, data => selector.handleInput?.(data));
|
|
232
|
+
}
|
|
233
|
+
function toSelectItem(option) {
|
|
234
|
+
return {
|
|
235
|
+
value: option.id,
|
|
236
|
+
label: option.label,
|
|
237
|
+
...(option.description === undefined ? {} : { description: option.description }),
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
function dialogOptions(dialog) {
|
|
241
|
+
if (isRecord(dialog.payload) && Array.isArray(dialog.payload.options)) {
|
|
242
|
+
const values = dialog.payload.options.filter(isRecord).flatMap(option => {
|
|
243
|
+
if (typeof option.id !== "string" || typeof option.label !== "string")
|
|
244
|
+
return [];
|
|
245
|
+
return [{
|
|
246
|
+
id: option.id,
|
|
247
|
+
label: option.label,
|
|
248
|
+
...(typeof option.description === "string" ? { description: option.description } : {}),
|
|
249
|
+
}];
|
|
250
|
+
});
|
|
251
|
+
if (values.length > 0)
|
|
252
|
+
return values;
|
|
253
|
+
}
|
|
254
|
+
return [{ id: "accept", label: "Accept" }, { id: "cancel", label: "Cancel" }];
|
|
255
|
+
}
|
|
@@ -0,0 +1,225 @@
|
|
|
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
|
+
/** Built-in entries decorate the active profile's catalog; everything else is a discovered resource. */
|
|
77
|
+
readonly source?: "builtin" | "prompt" | "skill" | "extension";
|
|
78
|
+
}
|
|
79
|
+
export interface PiShellViewComponentPort extends PiShellComponentPort {
|
|
80
|
+
update(view: OwnedUiSessionViewModel): void;
|
|
81
|
+
}
|
|
82
|
+
export type PiShellStatusPlacement = "live" | "dock" | "hidden";
|
|
83
|
+
export interface PiShellStatusPort extends PiShellViewComponentPort {
|
|
84
|
+
setWorkingOverride(message: string | undefined): void;
|
|
85
|
+
setOutputPad(padding: 0 | 1): void;
|
|
86
|
+
/** Bare A1 shows engine-measured progress beside the working word; the pinned route keeps the bare word. */
|
|
87
|
+
setProgressPresentation(presentation: "pinned" | "custom-viewport"): void;
|
|
88
|
+
/** Semantic row placement; callers must not inspect rendered text. */
|
|
89
|
+
placement(): PiShellStatusPlacement;
|
|
90
|
+
renderDock(width: number): readonly string[];
|
|
91
|
+
renderLive(width: number): readonly string[];
|
|
92
|
+
}
|
|
93
|
+
export interface PiShellQueuedInputPort extends PiShellComponentPort {
|
|
94
|
+
update(submissions: readonly string[]): void;
|
|
95
|
+
}
|
|
96
|
+
export interface PiShellHeaderPort extends PiShellComponentPort {
|
|
97
|
+
readonly expanded: boolean;
|
|
98
|
+
setExpanded(expanded: boolean): void;
|
|
99
|
+
}
|
|
100
|
+
export type PiShellResourceSection = "Context" | "Skills" | "Prompts" | "Extensions" | "Themes";
|
|
101
|
+
export interface PiShellResourceEntry {
|
|
102
|
+
readonly section: PiShellResourceSection;
|
|
103
|
+
readonly label: string;
|
|
104
|
+
readonly sourcePath: string | null;
|
|
105
|
+
readonly diagnostic?: string | null;
|
|
106
|
+
}
|
|
107
|
+
export interface PiShellLoadedResourcesPort extends PiShellComponentPort {
|
|
108
|
+
setExpanded(expanded: boolean): void;
|
|
109
|
+
}
|
|
110
|
+
export interface PiShellImageAssetResolver {
|
|
111
|
+
resolve(assetId: string): OwnedUiImageAttachment | null;
|
|
112
|
+
}
|
|
113
|
+
export interface PiShellExtensionRendererResolver {
|
|
114
|
+
getMessageRenderer(customType: string): unknown;
|
|
115
|
+
getToolDefinition(toolName: string): unknown;
|
|
116
|
+
getShortcuts?(bindings: KeybindingsConfig): readonly {
|
|
117
|
+
readonly key: string;
|
|
118
|
+
readonly description: string;
|
|
119
|
+
}[];
|
|
120
|
+
}
|
|
121
|
+
export interface PiShellTranscriptComponentPort extends PiShellComponentPort {
|
|
122
|
+
readonly id: string;
|
|
123
|
+
readonly revision: number;
|
|
124
|
+
readonly presentationRevision?: number;
|
|
125
|
+
update(block: OwnedUiTranscriptBlock): void;
|
|
126
|
+
setExpanded(expanded: boolean): void;
|
|
127
|
+
setOutputPad(padding: 0 | 1): void;
|
|
128
|
+
setHideThinkingBlock(hidden: boolean): void;
|
|
129
|
+
setMermaidRenderingMode(mode: "off" | "final" | "streaming"): void;
|
|
130
|
+
setImagePresentation(showImages: boolean, imageWidthCells: number): void;
|
|
131
|
+
}
|
|
132
|
+
export interface PiShellStartupNotice {
|
|
133
|
+
readonly kind: "info" | "warning" | "error";
|
|
134
|
+
readonly message: string;
|
|
135
|
+
}
|
|
136
|
+
export interface PiShellHeaderOptions {
|
|
137
|
+
readonly getKeybindings?: () => KeybindingsConfig;
|
|
138
|
+
readonly quiet?: boolean;
|
|
139
|
+
readonly expanded?: boolean;
|
|
140
|
+
readonly notices?: readonly PiShellStartupNotice[];
|
|
141
|
+
readonly resources?: readonly PiShellResourceEntry[];
|
|
142
|
+
}
|
|
143
|
+
/** An owned paste reserves its edit immediately and acknowledges completion only after insertion. */
|
|
144
|
+
export interface PiShellPasteReservation {
|
|
145
|
+
readonly marker: string;
|
|
146
|
+
readonly result: Promise<string>;
|
|
147
|
+
complete?(): void;
|
|
148
|
+
isCurrent?(): boolean;
|
|
149
|
+
}
|
|
150
|
+
export interface PiShellEditorOptions {
|
|
151
|
+
readonly persistentHistory?: boolean;
|
|
152
|
+
readonly historyEditor?: HistoryEditorConstructor;
|
|
153
|
+
/** Bare A1 adds ergonomic aliases while comparison profiles retain Pi defaults. */
|
|
154
|
+
readonly keybindingProfile?: "pi" | "a1";
|
|
155
|
+
readonly getColumns: () => number;
|
|
156
|
+
readonly getRows: () => number;
|
|
157
|
+
readonly requestRender: () => void;
|
|
158
|
+
readonly onSubmit: (text: string) => void;
|
|
159
|
+
readonly onChange?: (text: string) => void;
|
|
160
|
+
readonly onInterrupt?: () => void;
|
|
161
|
+
readonly onClear?: () => void;
|
|
162
|
+
readonly onExit?: () => void;
|
|
163
|
+
readonly onSuspend?: () => void;
|
|
164
|
+
readonly onExternalEditor?: () => void;
|
|
165
|
+
readonly onPasteImage?: () => void;
|
|
166
|
+
readonly onExtensionShortcut?: (data: string) => boolean;
|
|
167
|
+
readonly onModelSelect?: () => void;
|
|
168
|
+
readonly onModelCycle?: ((direction: "forward" | "backward") => void) | undefined;
|
|
169
|
+
readonly onThinkingCycle?: (() => void) | undefined;
|
|
170
|
+
readonly onThinkingToggle?: (() => void) | undefined;
|
|
171
|
+
readonly onToolsExpand?: (() => void) | undefined;
|
|
172
|
+
readonly onMessageCopy?: (() => void) | undefined;
|
|
173
|
+
readonly onFollowUp?: (() => void) | undefined;
|
|
174
|
+
readonly onDequeue?: (() => void) | undefined;
|
|
175
|
+
readonly onPromptSuggestionAccepted?: (text: string) => void;
|
|
176
|
+
readonly onCopyText?: (text: string) => void;
|
|
177
|
+
readonly readClipboardContent?: (signal?: AbortSignal) => Promise<PiShellClipboardContent | null>;
|
|
178
|
+
readonly beginClipboardPaste?: () => PiShellPasteReservation;
|
|
179
|
+
readonly beginTextPaste?: (text: string) => PiShellPasteReservation;
|
|
180
|
+
readonly deferTextPaste?: (text: string) => boolean;
|
|
181
|
+
readonly onPasteRejected?: (error: unknown) => void;
|
|
182
|
+
readonly onPasteInput?: (bytes: number, phase: "framing" | "inserting" | "settled") => void;
|
|
183
|
+
readonly editorHiddenRanges?: (line: string) => readonly PiShellEditorTextRange[];
|
|
184
|
+
readonly transformPastedContent?: (content: PiShellClipboardContent) => string;
|
|
185
|
+
readonly editorAtomicRanges?: (line: string) => readonly PiShellEditorTextRange[];
|
|
186
|
+
readonly expandCopiedEditorText?: (text: string) => string;
|
|
187
|
+
readonly paintEditorSelection?: (line: string, from: number, to: number, atomic: boolean) => string;
|
|
188
|
+
/** Row indices restart at zero for each complete owned editor decoration pass. */
|
|
189
|
+
readonly decorateEditorRow?: (row: string, width: number, rowIndex: number) => string;
|
|
190
|
+
readonly cwd?: string;
|
|
191
|
+
readonly agentDir?: string;
|
|
192
|
+
readonly autocompleteCommands?: readonly PiShellAutocompleteCommand[];
|
|
193
|
+
/**
|
|
194
|
+
* Bare A1's skills presentation, read at every command-list installation. `collapse` replaces the
|
|
195
|
+
* `skill:<name>` entries with one `skills` command and its tunnel; absent or `expand` keeps the
|
|
196
|
+
* pinned per-skill entries. Comparison profiles ignore it.
|
|
197
|
+
*/
|
|
198
|
+
readonly skillsPresentation?: () => "collapse" | "expand";
|
|
199
|
+
readonly promptPresentation?: {
|
|
200
|
+
readonly input: PiShellPromptInputPresentation;
|
|
201
|
+
readonly styleSuggestion: (text: string) => string;
|
|
202
|
+
readonly styleSuggestionCaret: (text: string) => string;
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
export interface PiShellSelectorOption {
|
|
206
|
+
readonly id: string;
|
|
207
|
+
readonly label: string;
|
|
208
|
+
readonly description?: string;
|
|
209
|
+
}
|
|
210
|
+
export interface PiShellSelectorOptions {
|
|
211
|
+
readonly title?: string;
|
|
212
|
+
readonly options: readonly PiShellSelectorOption[];
|
|
213
|
+
readonly maxVisible?: number;
|
|
214
|
+
readonly onSelect?: (id: string) => void;
|
|
215
|
+
readonly onCancel?: () => void;
|
|
216
|
+
}
|
|
217
|
+
export declare function createTuiFacade(options: Pick<PiShellEditorOptions, "getColumns" | "getRows" | "requestRender"> & {
|
|
218
|
+
readonly onSubmit?: (text: string) => void;
|
|
219
|
+
}): TUI;
|
|
220
|
+
export declare function componentPort(component: Component, handleInput?: (data: string) => void): PiShellComponentPort;
|
|
221
|
+
export declare function componentFromPort(port: PiShellComponentPort): Component;
|
|
222
|
+
export declare function formatSessionTokens(count: number): string;
|
|
223
|
+
export declare function isAutocompleteProvider(value: unknown): value is AutocompleteProvider;
|
|
224
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
225
|
+
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,47 @@
|
|
|
1
|
+
import type { AutocompleteItem, AutocompleteProvider } from "@earendil-works/pi-tui";
|
|
2
|
+
import type { PiShellAutocompleteCommand } from "./shell-shared-facade.js";
|
|
3
|
+
/** The collapsed bare-A1 replacement for the per-skill command listing. */
|
|
4
|
+
export declare const SKILLS_COMMAND_NAME = "skills";
|
|
5
|
+
export declare const SKILLS_COMMAND_DESCRIPTION = "Browse, search, and apply a skill";
|
|
6
|
+
/** Pi's own command prefix; the engine expands `/skill:<name>` regardless of how the menu presents it. */
|
|
7
|
+
export declare const SKILL_COMMAND_PREFIX = "skill:";
|
|
8
|
+
export interface PiShellSkillSummary {
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly description: string;
|
|
11
|
+
}
|
|
12
|
+
export interface PiShellCollapsedSkillCommands {
|
|
13
|
+
readonly commands: readonly PiShellAutocompleteCommand[];
|
|
14
|
+
/** The skills withheld from the top-level menu, in the engine's discovery order. */
|
|
15
|
+
readonly skills: readonly PiShellSkillSummary[];
|
|
16
|
+
}
|
|
17
|
+
/** One line of description, as the v2 extension shows it beside a row. */
|
|
18
|
+
export declare function oneLineSkillDescription(description: string): string;
|
|
19
|
+
/** The skills the engine registered as `skill:<name>` commands, in its order. */
|
|
20
|
+
export declare function skillsFromCommands(commands: readonly PiShellAutocompleteCommand[]): readonly PiShellSkillSummary[];
|
|
21
|
+
/**
|
|
22
|
+
* Replace every `skill:<name>` entry with one `skills` command whose argument completions are the
|
|
23
|
+
* skill names. A list without skill entries (registration disabled, or no skills) is returned
|
|
24
|
+
* unchanged with no `skills` command, so the collapsed presentation never invents a command.
|
|
25
|
+
*/
|
|
26
|
+
export declare function collapseSkillCommands(commands: readonly PiShellAutocompleteCommand[]): PiShellCollapsedSkillCommands;
|
|
27
|
+
/** Case-insensitive substring match on the name or description; a leading `skill:`/`skills:` in the query is ignored for the name. */
|
|
28
|
+
export declare function skillMatchesQuery(skill: PiShellSkillSummary, query: string): boolean;
|
|
29
|
+
/** Resolve a `/skills` argument token to a skill, accepting the name with or without `skill:`. */
|
|
30
|
+
export declare function findSkillByArgument(skills: readonly PiShellSkillSummary[], token: string): PiShellSkillSummary | undefined;
|
|
31
|
+
/** The `/skill:<name>` prompt the engine expands, with any arguments after one space. */
|
|
32
|
+
export declare function skillPrompt(name: string, args?: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Rewrite a submitted tunnel form `/skills:<name> rest` to `/skill:<name> rest`; anything else is
|
|
35
|
+
* returned unchanged so ordinary prompts, `/skills <name>`, and `/skill:` input keep their text.
|
|
36
|
+
*/
|
|
37
|
+
export declare function rewriteSkillsTunnelSubmission(text: string): string;
|
|
38
|
+
/** The tunnel query when single-line content before the cursor is exactly `/skills:<query>`. */
|
|
39
|
+
export declare function skillsTunnelQuery(lines: readonly string[], cursorLine: number, cursorCol: number): string | null;
|
|
40
|
+
export declare function skillsTunnelItems(skills: readonly PiShellSkillSummary[], query: string): AutocompleteItem[];
|
|
41
|
+
/**
|
|
42
|
+
* Wrap the pinned combined provider with the `skills` tunnel: `/skills:<query>` lists matching
|
|
43
|
+
* skills as `skills:<name>` rows and shows nothing when none match; every other request, the
|
|
44
|
+
* completion application, and the file-completion decision are delegated unchanged so extension
|
|
45
|
+
* wrappers registered over this provider see one ordinary provider.
|
|
46
|
+
*/
|
|
47
|
+
export declare function createSkillsTunnelProvider(base: AutocompleteProvider, skills: readonly PiShellSkillSummary[]): AutocompleteProvider;
|