@timurproko/a1 0.1.8-dev.ece8cef → 0.2.1-dev.590
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 +104 -58
- package/bin/activate.js +8 -0
- package/bin/cli.js +39 -13
- package/bin/guardian.js +21 -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 +365 -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 +499 -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 +278 -0
- package/dist/app/session-shell/session-shell-root.js +1442 -0
- package/dist/app/session-shell/session-shell.d.ts +66 -0
- package/dist/app/session-shell/session-shell.js +2151 -0
- package/dist/app/session-shell/session-viewport-controller.d.ts +62 -0
- package/dist/app/session-shell/session-viewport-controller.js +623 -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 +53 -0
- package/dist/cli/dispatch.js +287 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/package-messages.d.ts +27 -0
- package/dist/cli/package-messages.js +83 -0
- package/dist/cli/packages.d.ts +32 -0
- package/dist/cli/packages.js +81 -0
- package/dist/cli/session-context.d.ts +9 -0
- package/dist/cli/session-context.js +29 -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 +159 -0
- package/dist/composition/settings-route-host.d.ts +16 -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 +14 -0
- package/dist/contracts/owned-ui/index.js +9 -0
- package/dist/contracts/owned-ui/model.d.ts +383 -0
- package/dist/contracts/owned-ui/prompt-chips.d.ts +15 -0
- package/dist/contracts/owned-ui/prompt-chips.js +59 -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 +554 -0
- package/dist/contracts/presentation/index.d.ts +117 -0
- package/dist/contracts/presentation/index.js +68 -0
- package/dist/features/launch/development-launch.js +36 -0
- package/dist/features/launch/index.d.ts +14 -0
- package/dist/features/launch/index.js +7 -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/launch/session-context.d.ts +8 -0
- package/dist/features/launch/session-context.js +8 -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-dialog.d.ts +2 -0
- package/dist/features/owned-ui/project-trust-dialog.js +55 -0
- package/dist/features/owned-ui/project-trust-prompt.d.ts +23 -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 +43 -0
- package/dist/features/owned-ui/reference-screen-app.js +279 -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 +851 -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 +179 -0
- package/dist/foundation/lifecycle/commands.js +1 -0
- package/dist/foundation/lifecycle/index.d.ts +13 -0
- package/dist/foundation/lifecycle/index.js +6 -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-repository-context.d.ts +18 -0
- package/dist/foundation/lifecycle/session-repository-context.js +173 -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 +470 -0
- package/dist/foundation/release/cohort-state.d.ts +159 -0
- package/dist/foundation/release/cohort-state.js +507 -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 +33 -0
- package/dist/foundation/release/index.js +18 -0
- package/dist/foundation/release/ordinary-launch-selection.d.ts +14 -0
- package/dist/foundation/release/ordinary-launch-selection.js +15 -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 +82 -0
- package/dist/foundation/release/update-recovery.js +386 -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 +142 -0
- package/dist/foundation/release/update.js +773 -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 +584 -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 +26 -0
- package/dist/integrations/pi/components/index.js +16 -0
- package/dist/integrations/pi/components/modal-frame.d.ts +41 -0
- package/dist/integrations/pi/components/modal-frame.js +110 -0
- package/dist/integrations/pi/components/models-dialog.d.ts +55 -0
- package/dist/integrations/pi/components/models-dialog.js +403 -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 +23 -0
- package/dist/integrations/pi/components/shell-editor-autocomplete.js +357 -0
- package/dist/integrations/pi/components/shell-extension-ui.d.ts +35 -0
- package/dist/integrations/pi/components/shell-extension-ui.js +282 -0
- package/dist/integrations/pi/components/shell-footer-status.d.ts +8 -0
- package/dist/integrations/pi/components/shell-footer-status.js +287 -0
- package/dist/integrations/pi/components/shell-hotkey-sections.d.ts +7 -0
- package/dist/integrations/pi/components/shell-hotkey-sections.js +29 -0
- package/dist/integrations/pi/components/shell-presenters-info.d.ts +73 -0
- package/dist/integrations/pi/components/shell-presenters-info.js +188 -0
- package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +29 -0
- package/dist/integrations/pi/components/shell-presenters-transcript.js +435 -0
- package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +134 -0
- package/dist/integrations/pi/components/shell-selectors-dialogs.js +286 -0
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +233 -0
- package/dist/integrations/pi/components/shell-shared-facade.js +92 -0
- package/dist/integrations/pi/components/skills-command.d.ts +49 -0
- package/dist/integrations/pi/components/skills-command.js +119 -0
- package/dist/integrations/pi/components/skills-dialog.d.ts +9 -0
- package/dist/integrations/pi/components/skills-dialog.js +128 -0
- package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +17 -0
- package/dist/integrations/pi/components/submitted-prompt-adapter.js +52 -0
- package/dist/integrations/pi/components/theme.d.ts +5 -0
- package/dist/integrations/pi/components/theme.js +11 -0
- package/dist/integrations/pi/components/thinking-selector-dialog.d.ts +8 -0
- package/dist/integrations/pi/components/thinking-selector-dialog.js +22 -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 +371 -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 +22 -0
- package/dist/integrations/pi/components/upstream/components/extension-editor.js +89 -0
- package/dist/integrations/pi/components/upstream/components/extension-input.d.ts +17 -0
- package/dist/integrations/pi/components/upstream/components/extension-input.js +73 -0
- package/dist/integrations/pi/components/upstream/components/extension-selector.d.ts +15 -0
- package/dist/integrations/pi/components/upstream/components/extension-selector.js +93 -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 +60 -0
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +347 -0
- package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +12 -0
- package/dist/integrations/pi/components/upstream/components/session-footer.js +150 -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 +97 -0
- package/dist/integrations/pi/components/upstream/components/session-selector.js +935 -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 +54 -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/thinking-selector.d.ts +36 -0
- package/dist/integrations/pi/components/upstream/components/thinking-selector.js +153 -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 +102 -0
- package/dist/integrations/pi/components/upstream/components/tree-selector.js +1294 -0
- package/dist/integrations/pi/components/upstream/components/trust-selector.d.ts +33 -0
- package/dist/integrations/pi/components/upstream/components/trust-selector.js +87 -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 +2145 -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 +17 -0
- package/dist/integrations/pi/components/upstream/history/text-helpers.js +34 -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 +140 -0
- package/dist/integrations/pi/engine/adapter.js +663 -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 +24 -0
- package/dist/integrations/pi/engine/compaction-progress.js +97 -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 +169 -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 +397 -0
- package/dist/integrations/pi/engine/project-trust-preflight.d.ts +21 -0
- package/dist/integrations/pi/engine/project-trust-preflight.js +46 -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/repository-pr-rest.d.ts +21 -0
- package/dist/integrations/pi/engine/repository-pr-rest.js +155 -0
- package/dist/integrations/pi/engine/repository-pr.d.ts +16 -0
- package/dist/integrations/pi/engine/repository-pr.js +79 -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 +98 -0
- package/dist/integrations/pi/engine/session-runtime.js +412 -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 +516 -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 +363 -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 +440 -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 +536 -0
- package/dist/integrations/pi/engine/workflow-support.d.ts +38 -0
- package/dist/integrations/pi/engine/workflow-support.js +386 -0
- package/dist/integrations/pi/engine/workflows.d.ts +308 -0
- package/dist/integrations/pi/engine/workflows.js +81 -0
- package/dist/integrations/pi/startup-public.d.ts +2 -0
- package/dist/integrations/pi/startup-public.js +2254 -0
- package/dist/integrations/pi/startup-public.manifest.json +12679 -0
- package/dist/integrations/pi/tui-runtime/adapter.d.ts +58 -0
- package/dist/integrations/pi/tui-runtime/adapter.js +792 -0
- package/dist/integrations/pi/tui-runtime/contracts.d.ts +158 -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 +439 -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 +19 -0
- package/dist/integrations/pi/tui-runtime/mouse-report-input.js +91 -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 +87 -0
- package/dist/runtime-payload-inventory.json +134179 -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.d.ts +37 -0
- package/dist/ui/components/dialog-panel.js +58 -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 +50 -0
- package/dist/ui/components/index.js +26 -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-block.d.ts +70 -0
- package/dist/ui/components/list-block.js +189 -0
- package/dist/ui/components/list-view.d.ts +60 -0
- package/dist/ui/components/list-view.js +84 -0
- package/dist/ui/components/mouse.d.ts +25 -0
- package/dist/ui/components/mouse.js +72 -0
- package/dist/ui/components/progress-status.d.ts +9 -0
- package/dist/ui/components/progress-status.js +25 -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/shortcut-hints.d.ts +7 -0
- package/dist/ui/components/shortcut-hints.js +12 -0
- package/dist/ui/components/shortcuts.d.ts +60 -0
- package/dist/ui/components/shortcuts.js +85 -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/theme.d.ts +19 -0
- package/dist/ui/components/theme.js +9 -0
- package/dist/ui/components/transcript-viewport.d.ts +187 -0
- package/dist/ui/components/transcript-viewport.js +886 -0
- package/dist/ui/components/value-menu.d.ts +43 -0
- package/dist/ui/components/value-menu.js +41 -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 +94 -0
- package/docs/architecture/process-guardian-provenance.md +3 -1
- package/docs/architecture/project-structure.md +72 -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 +34 -10
- package/docs/architecture/ui-reference-provenance.md +73 -6
- package/docs/ci-release-runbook.md +266 -77
- 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 +214 -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 +269 -0
- package/docs/repository-governance-live-acceptance.md +77 -0
- package/docs/validation.md +105 -0
- package/package.json +53 -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 -31
- package/dist/src/cli/dispatch.js +0 -123
- 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/theme.d.ts +0 -1
- package/dist/src/foundation/pi-component-adapter/theme.js +0 -1
- 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/presentation-contracts/index.js +0 -38
- 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/development-preview-release.d.ts +0 -49
- package/dist/src/foundation/release/development-preview-release.js +0 -114
- package/dist/src/foundation/release/index.d.ts +0 -11
- package/dist/src/foundation/release/index.js +0 -11
- 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 -80
- package/dist/src/foundation/release/update.js +0 -458
- 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.d.ts +0 -36
- 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-block.d.ts +0 -66
- package/dist/src/foundation/ui-components/list-block.js +0 -176
- 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/ui-components/theme.d.ts +0 -23
- package/dist/src/foundation/ui-components/theme.js +0 -13
- package/dist/src/foundation/ui-components/value-menu.d.ts +0 -41
- package/dist/src/foundation/ui-components/value-menu.js +0 -33
- 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/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}/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}/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}/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/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,72 @@
|
|
|
1
|
+
import type { PaneInputResult, PaneMouseEvent, PaneRect, RenderCacheContract, UiTheme } from "../components/index.js";
|
|
2
|
+
export interface AppSize {
|
|
3
|
+
readonly width: number;
|
|
4
|
+
readonly height: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* What a host offers a presented app. An app reaches the terminal, the pinned
|
|
8
|
+
* shell, or another app only through these — never around them.
|
|
9
|
+
*/
|
|
10
|
+
export interface AppHostServices {
|
|
11
|
+
getSize(): AppSize;
|
|
12
|
+
requestRender(): void;
|
|
13
|
+
close(): void;
|
|
14
|
+
/** Restores the surface that opened this app without closing the host. */
|
|
15
|
+
returnToPrevious(): void;
|
|
16
|
+
/** Leaves A1 entirely, as the interrupt chord does from any screen. */
|
|
17
|
+
exit(): void;
|
|
18
|
+
/** True once one interrupt has been seen and the chord is waiting for the second. */
|
|
19
|
+
readonly interruptArmed: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Whether an idle interrupt closes the presented app. Every host chooses
|
|
22
|
+
* explicitly: a standalone screen closes, a persistent host stays open.
|
|
23
|
+
*/
|
|
24
|
+
readonly closeOnInterrupt: boolean;
|
|
25
|
+
/** Colours for the presented app. Absent renders plain text. */
|
|
26
|
+
readonly theme?: UiTheme;
|
|
27
|
+
}
|
|
28
|
+
export interface UiApp {
|
|
29
|
+
readonly id: string;
|
|
30
|
+
/** Optional declared revisions used by the host's shared frame cache. */
|
|
31
|
+
readonly renderCache?: RenderCacheContract;
|
|
32
|
+
render(rect: PaneRect, host: AppHostServices): readonly string[];
|
|
33
|
+
onInput?(data: string, host: AppHostServices): PaneInputResult;
|
|
34
|
+
onMouse?(event: PaneMouseEvent, host: AppHostServices): PaneInputResult;
|
|
35
|
+
onActivate?(host: AppHostServices): void;
|
|
36
|
+
onClose?(host: AppHostServices): void;
|
|
37
|
+
}
|
|
38
|
+
export interface AppRegistration {
|
|
39
|
+
readonly id: string;
|
|
40
|
+
/** Route that opens the app, without its leading slash. */
|
|
41
|
+
readonly route: string;
|
|
42
|
+
create(): UiApp;
|
|
43
|
+
}
|
|
44
|
+
/** A neutral owned-app surface mounted by a surrounding presentation runtime. */
|
|
45
|
+
export interface UiRouteSurface {
|
|
46
|
+
readonly id: string;
|
|
47
|
+
/** Renders exactly `height` rows of at most `width` columns. */
|
|
48
|
+
render(width: number, height: number): readonly string[];
|
|
49
|
+
/** True when the key was consumed; false leaves it to the surrounding shell. */
|
|
50
|
+
handleInput(data: string): boolean;
|
|
51
|
+
/** Mouse report in surface-local coordinates. True when consumed. */
|
|
52
|
+
handleMouse(event: PaneMouseEvent): boolean;
|
|
53
|
+
isClosed(): boolean;
|
|
54
|
+
close(): void;
|
|
55
|
+
onRenderRequested(listener: () => void): void;
|
|
56
|
+
/** The surface asks to leave A1 entirely, not merely to close itself. */
|
|
57
|
+
onExitRequested(listener: () => void): void;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* What a shell may hand a route when it opens it. A route that does not use the
|
|
61
|
+
* input opens exactly as it does without one.
|
|
62
|
+
*/
|
|
63
|
+
export interface UiRouteInput {
|
|
64
|
+
/** A caller-supplied document for a route that presents documents. */
|
|
65
|
+
readonly document?: string;
|
|
66
|
+
}
|
|
67
|
+
/** Route lookup seam shared by owned apps and any presentation runtime hosting them. */
|
|
68
|
+
export interface UiRouteHost {
|
|
69
|
+
claims(route: string): boolean;
|
|
70
|
+
open(route: string, input?: UiRouteInput): UiRouteSurface | null;
|
|
71
|
+
}
|
|
72
|
+
export declare function assertAppRegistration(registration: AppRegistration): void;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type PaneInputResult, type PaneMouseEvent, type UiTheme } from "../components/index.js";
|
|
2
|
+
import type { AppSize, UiApp } from "./contracts.js";
|
|
3
|
+
import type { UiAppRegistry } from "./registry.js";
|
|
4
|
+
export interface AppHostSurface {
|
|
5
|
+
/** Current viewport, re-read on every frame so a resize is picked up. */
|
|
6
|
+
size(): AppSize;
|
|
7
|
+
/** Asks the surrounding runtime to repaint. */
|
|
8
|
+
requestRender(): void;
|
|
9
|
+
/** Presents these rows, or clears the surface when null. */
|
|
10
|
+
present(lines: readonly string[] | null): void;
|
|
11
|
+
/** Reports a failure that closed an app. */
|
|
12
|
+
reportFailure?(appId: string, error: unknown): void;
|
|
13
|
+
/** Leaves A1 entirely. Invoked by the interrupt chord from a presented app. */
|
|
14
|
+
exit?(): void;
|
|
15
|
+
}
|
|
16
|
+
export interface AppHostOptions {
|
|
17
|
+
readonly registry: UiAppRegistry;
|
|
18
|
+
readonly surface: AppHostSurface;
|
|
19
|
+
/** Whether an idle interrupt closes the presented app. Chosen explicitly. */
|
|
20
|
+
readonly closeOnInterrupt: boolean;
|
|
21
|
+
/** Colours handed to every presented app. Absent renders plain text. */
|
|
22
|
+
readonly theme?: UiTheme;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Presents at most one app. Input reaches the presented app first; anything it
|
|
26
|
+
* does not consume continues to the caller. A failure while rendering or
|
|
27
|
+
* handling input closes the app rather than leaving a broken surface on screen.
|
|
28
|
+
*/
|
|
29
|
+
export declare class UiAppHost {
|
|
30
|
+
#private;
|
|
31
|
+
constructor(options: AppHostOptions);
|
|
32
|
+
get presented(): UiApp | null;
|
|
33
|
+
get isPresenting(): boolean;
|
|
34
|
+
/** Opens a registered app, replacing whatever was presented. */
|
|
35
|
+
open(id: string): void;
|
|
36
|
+
openRoute(route: string): boolean;
|
|
37
|
+
render(): void;
|
|
38
|
+
handleInput(data: string): PaneInputResult;
|
|
39
|
+
handleMouse(event: PaneMouseEvent): PaneInputResult;
|
|
40
|
+
get interruptArmed(): boolean;
|
|
41
|
+
close(): void;
|
|
42
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { FrameCache, finalizeFrame, } from "../components/index.js";
|
|
2
|
+
// Invariant: the interrupt byte is written as an escape: as a raw byte it is invisible to
|
|
3
|
+
// every text tool, and this constant had already been emptied by one.
|
|
4
|
+
const INTERRUPT = "";
|
|
5
|
+
/** How long the first interrupt of the chord stays armed. */
|
|
6
|
+
const INTERRUPT_CHORD_MS = 1_500;
|
|
7
|
+
/**
|
|
8
|
+
* Presents at most one app. Input reaches the presented app first; anything it
|
|
9
|
+
* does not consume continues to the caller. A failure while rendering or
|
|
10
|
+
* handling input closes the app rather than leaving a broken surface on screen.
|
|
11
|
+
*/
|
|
12
|
+
export class UiAppHost {
|
|
13
|
+
#registry;
|
|
14
|
+
#surface;
|
|
15
|
+
#closeOnInterrupt;
|
|
16
|
+
#theme;
|
|
17
|
+
// Invariant: the first interrupt timestamp is null whenever the chord is disarmed.
|
|
18
|
+
#interruptArmedAt = null;
|
|
19
|
+
#renderedInterruptArmed;
|
|
20
|
+
#cache = new FrameCache();
|
|
21
|
+
#app = null;
|
|
22
|
+
constructor(options) {
|
|
23
|
+
this.#registry = options.registry;
|
|
24
|
+
this.#surface = options.surface;
|
|
25
|
+
this.#closeOnInterrupt = options.closeOnInterrupt;
|
|
26
|
+
this.#theme = options.theme;
|
|
27
|
+
}
|
|
28
|
+
get presented() {
|
|
29
|
+
return this.#app;
|
|
30
|
+
}
|
|
31
|
+
get isPresenting() {
|
|
32
|
+
return this.#app !== null;
|
|
33
|
+
}
|
|
34
|
+
/** Opens a registered app, replacing whatever was presented. */
|
|
35
|
+
open(id) {
|
|
36
|
+
const registration = this.#registry.get(id);
|
|
37
|
+
if (registration === null)
|
|
38
|
+
throw new Error(`owned UI app is not registered: ${id}`);
|
|
39
|
+
if (this.#app !== null)
|
|
40
|
+
this.#closeCurrent();
|
|
41
|
+
const app = registration.create();
|
|
42
|
+
this.#app = app;
|
|
43
|
+
this.#cache.invalidate();
|
|
44
|
+
this.#guard(() => app.onActivate?.(this.#services()));
|
|
45
|
+
this.render();
|
|
46
|
+
}
|
|
47
|
+
openRoute(route) {
|
|
48
|
+
const registration = this.#registry.forRoute(route);
|
|
49
|
+
if (registration === null)
|
|
50
|
+
return false;
|
|
51
|
+
this.open(registration.id);
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
render() {
|
|
55
|
+
const app = this.#app;
|
|
56
|
+
if (app === null) {
|
|
57
|
+
this.#surface.present(null);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const size = this.#surface.size();
|
|
61
|
+
const rect = { width: Math.max(0, size.width), height: Math.max(0, size.height) };
|
|
62
|
+
const interruptArmed = this.interruptArmed;
|
|
63
|
+
if (this.#renderedInterruptArmed !== interruptArmed)
|
|
64
|
+
this.#cache.invalidate();
|
|
65
|
+
this.#renderedInterruptArmed = interruptArmed;
|
|
66
|
+
const lines = this.#guard(() => this.#cache.render(app, rect, () => finalizeFrame(app.render(rect, this.#services()), rect, app.id)));
|
|
67
|
+
this.#surface.present(lines ?? null);
|
|
68
|
+
}
|
|
69
|
+
handleInput(data) {
|
|
70
|
+
const app = this.#app;
|
|
71
|
+
if (app === null)
|
|
72
|
+
return { consumed: false };
|
|
73
|
+
const result = this.#guard(() => app.onInput?.(data, this.#services())) ?? { consumed: false };
|
|
74
|
+
if (this.#app === null)
|
|
75
|
+
return { consumed: true, render: true };
|
|
76
|
+
if (result.consumed) {
|
|
77
|
+
if (result.render !== false)
|
|
78
|
+
this.render();
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
if (data === INTERRUPT)
|
|
82
|
+
return this.#interrupt();
|
|
83
|
+
return { consumed: false };
|
|
84
|
+
}
|
|
85
|
+
handleMouse(event) {
|
|
86
|
+
const app = this.#app;
|
|
87
|
+
if (app === null)
|
|
88
|
+
return { consumed: false };
|
|
89
|
+
const result = this.#guard(() => app.onMouse?.(event, this.#services())) ?? { consumed: false };
|
|
90
|
+
if (result.consumed && result.render !== false)
|
|
91
|
+
this.render();
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
// Protocol: two interrupts within the chord window leave A1 from every screen.
|
|
95
|
+
#interrupt() {
|
|
96
|
+
const now = Date.now();
|
|
97
|
+
const armed = this.#interruptArmedAt;
|
|
98
|
+
if (armed !== null && now - armed <= INTERRUPT_CHORD_MS) {
|
|
99
|
+
this.#interruptArmedAt = null;
|
|
100
|
+
this.close();
|
|
101
|
+
this.#surface.exit?.();
|
|
102
|
+
return { consumed: true, render: true };
|
|
103
|
+
}
|
|
104
|
+
this.#interruptArmedAt = now;
|
|
105
|
+
// Invariant: host-owned state participates in the app's next frame independently of
|
|
106
|
+
// the app's own revision contract.
|
|
107
|
+
this.#cache.invalidate();
|
|
108
|
+
return { consumed: true, render: true };
|
|
109
|
+
}
|
|
110
|
+
get interruptArmed() {
|
|
111
|
+
const armed = this.#interruptArmedAt;
|
|
112
|
+
return armed !== null && Date.now() - armed <= INTERRUPT_CHORD_MS;
|
|
113
|
+
}
|
|
114
|
+
close() {
|
|
115
|
+
if (this.#app === null)
|
|
116
|
+
return;
|
|
117
|
+
this.#closeCurrent();
|
|
118
|
+
this.#surface.present(null);
|
|
119
|
+
}
|
|
120
|
+
#closeCurrent() {
|
|
121
|
+
const app = this.#app;
|
|
122
|
+
this.#app = null;
|
|
123
|
+
this.#cache.invalidate();
|
|
124
|
+
if (app !== null)
|
|
125
|
+
this.#guard(() => app.onClose?.(this.#services()));
|
|
126
|
+
}
|
|
127
|
+
#services() {
|
|
128
|
+
return {
|
|
129
|
+
getSize: () => this.#surface.size(),
|
|
130
|
+
requestRender: () => this.#surface.requestRender(),
|
|
131
|
+
close: () => this.close(),
|
|
132
|
+
returnToPrevious: () => this.close(),
|
|
133
|
+
closeOnInterrupt: this.#closeOnInterrupt,
|
|
134
|
+
exit: () => {
|
|
135
|
+
this.close();
|
|
136
|
+
this.#surface.exit?.();
|
|
137
|
+
},
|
|
138
|
+
interruptArmed: this.interruptArmed,
|
|
139
|
+
...(this.#theme === undefined ? {} : { theme: this.#theme }),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
// Security: an app failure closes its app and restores the surface.
|
|
143
|
+
#guard(work) {
|
|
144
|
+
try {
|
|
145
|
+
return work();
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
const app = this.#app;
|
|
149
|
+
this.#app = null;
|
|
150
|
+
this.#cache.invalidate();
|
|
151
|
+
this.#surface.present(null);
|
|
152
|
+
this.#surface.reportFailure?.(app?.id ?? "unknown", error);
|
|
153
|
+
return undefined;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { assertAppRegistration } from "./contracts.js";
|
|
2
|
+
export type { AppHostServices, AppRegistration, AppSize, UiApp, UiRouteHost, UiRouteInput, UiRouteSurface } from "./contracts.js";
|
|
3
|
+
export { UiAppHost } from "./host.js";
|
|
4
|
+
export type { AppHostOptions, AppHostSurface } from "./host.js";
|
|
5
|
+
export { UiAppRegistry } from "./registry.js";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type AppRegistration } from "./contracts.js";
|
|
2
|
+
/** Registers owned applications under unique routes and unregisters only the matching definition. */
|
|
3
|
+
export declare class UiAppRegistry {
|
|
4
|
+
#private;
|
|
5
|
+
/** Registering a known id replaces its definition rather than adding a second app. */
|
|
6
|
+
register(registration: AppRegistration): () => void;
|
|
7
|
+
get(id: string): AppRegistration | null;
|
|
8
|
+
forRoute(route: string): AppRegistration | null;
|
|
9
|
+
ids(): readonly string[];
|
|
10
|
+
routes(): readonly string[];
|
|
11
|
+
clear(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { assertAppRegistration } from "./contracts.js";
|
|
2
|
+
/** Registers owned applications under unique routes and unregisters only the matching definition. */
|
|
3
|
+
export class UiAppRegistry {
|
|
4
|
+
#byId = new Map();
|
|
5
|
+
/** Registering a known id replaces its definition rather than adding a second app. */
|
|
6
|
+
register(registration) {
|
|
7
|
+
assertAppRegistration(registration);
|
|
8
|
+
const existing = [...this.#byId.values()].find(candidate => candidate.route === registration.route && candidate.id !== registration.id);
|
|
9
|
+
if (existing) {
|
|
10
|
+
throw new Error(`owned UI route ${registration.route} is already taken by ${existing.id}`);
|
|
11
|
+
}
|
|
12
|
+
this.#byId.set(registration.id, registration);
|
|
13
|
+
return () => {
|
|
14
|
+
if (this.#byId.get(registration.id) === registration)
|
|
15
|
+
this.#byId.delete(registration.id);
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
get(id) {
|
|
19
|
+
return this.#byId.get(id) ?? null;
|
|
20
|
+
}
|
|
21
|
+
forRoute(route) {
|
|
22
|
+
return [...this.#byId.values()].find(registration => registration.route === route) ?? null;
|
|
23
|
+
}
|
|
24
|
+
ids() {
|
|
25
|
+
return Object.freeze([...this.#byId.keys()].sort());
|
|
26
|
+
}
|
|
27
|
+
routes() {
|
|
28
|
+
return Object.freeze([...this.#byId.values()].map(registration => registration.route).sort());
|
|
29
|
+
}
|
|
30
|
+
clear() {
|
|
31
|
+
this.#byId.clear();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type ShortcutHintEntry } from "./shortcut-hints.js";
|
|
2
|
+
import type { UiTheme } from "./theme.js";
|
|
3
|
+
/**
|
|
4
|
+
* The panel a value with parts is edited in: at the foot of the screen, over the
|
|
5
|
+
* surface it was opened from, ruled off above and below. It shows every part,
|
|
6
|
+
* marks the one in hand, says what that part does, and says how to change it.
|
|
7
|
+
*/
|
|
8
|
+
export interface DialogRow {
|
|
9
|
+
readonly label: string;
|
|
10
|
+
readonly value: string;
|
|
11
|
+
/** What this part does, shown while it is the one in hand. */
|
|
12
|
+
readonly description?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface DialogPanelState {
|
|
15
|
+
readonly rows: readonly DialogRow[];
|
|
16
|
+
/** The row in hand. */
|
|
17
|
+
readonly index: number;
|
|
18
|
+
/** How to change it, in the words the engine uses. */
|
|
19
|
+
readonly hint: string | readonly ShortcutHintEntry[];
|
|
20
|
+
}
|
|
21
|
+
/** Where the panel sits, for reading a pointer against its rows. */
|
|
22
|
+
export interface DialogPanelFrame {
|
|
23
|
+
/** Screen row the panel's first row is drawn on. */
|
|
24
|
+
readonly firstRow: number;
|
|
25
|
+
readonly rows: number;
|
|
26
|
+
/** Column the values start at, so a label stays a label. */
|
|
27
|
+
readonly valueColumn: number;
|
|
28
|
+
}
|
|
29
|
+
/** The column values start at: past the widest label, capped so one long name cannot push them off. */
|
|
30
|
+
export declare function dialogValueColumn(rows: readonly DialogRow[]): number;
|
|
31
|
+
/**
|
|
32
|
+
* The panel's lines. The first line is its rule, so the row at index N is drawn
|
|
33
|
+
* one line below the panel's top.
|
|
34
|
+
*/
|
|
35
|
+
export declare function renderDialogPanel(state: DialogPanelState, width: number, theme: UiTheme): readonly string[];
|
|
36
|
+
/** The row a pointer report lands on, or null when it is not on one. */
|
|
37
|
+
export declare function dialogRowAt(frame: DialogPanelFrame, row: number, column: number, valueWidth: number): number | null;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { renderShortcutHints, shortcutHintsText } from "./shortcut-hints.js";
|
|
2
|
+
import { displayWidth, truncateToWidth } from "./text.js";
|
|
3
|
+
const LABEL_COLUMN_CAP = 30;
|
|
4
|
+
/** The column values start at: past the widest label, capped so one long name cannot push them off. */
|
|
5
|
+
export function dialogValueColumn(rows) {
|
|
6
|
+
const widest = Math.min(LABEL_COLUMN_CAP, Math.max(0, ...rows.map(row => displayWidth(row.label))));
|
|
7
|
+
return 2 + widest + 2;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The panel's lines. The first line is its rule, so the row at index N is drawn
|
|
11
|
+
* one line below the panel's top.
|
|
12
|
+
*/
|
|
13
|
+
export function renderDialogPanel(state, width, theme) {
|
|
14
|
+
const labelColumn = Math.min(LABEL_COLUMN_CAP, Math.max(0, ...state.rows.map(row => displayWidth(row.label))));
|
|
15
|
+
const rule = theme.fg("border", "─".repeat(Math.max(0, width)));
|
|
16
|
+
const contentPadding = Math.min(1, Math.max(0, width));
|
|
17
|
+
const contentWidth = Math.max(0, width - contentPadding);
|
|
18
|
+
const inset = " ".repeat(contentPadding);
|
|
19
|
+
const contentRow = (painted, raw) => `${inset}${pad(truncateToWidth(painted, contentWidth), contentWidth, raw)}`;
|
|
20
|
+
const rows = state.rows.map((row, index) => {
|
|
21
|
+
const selected = index === state.index;
|
|
22
|
+
const padded = `${row.label}${" ".repeat(Math.max(0, labelColumn - displayWidth(row.label)))}`;
|
|
23
|
+
const cursor = selected ? "→ " : " ";
|
|
24
|
+
const raw = `${cursor}${padded} ${row.value}`;
|
|
25
|
+
// Compatibility: match pinned SettingsList: selected cursor, label, and value all use the
|
|
26
|
+
// accent role; an unselected label is plain and its value is muted.
|
|
27
|
+
const painted = selected
|
|
28
|
+
? `${theme.fg("accent", cursor)}${theme.fg("accent", padded)} ${theme.fg("accent", row.value)}`
|
|
29
|
+
: `${cursor}${padded} ${theme.fg("muted", row.value)}`;
|
|
30
|
+
return contentRow(painted, raw);
|
|
31
|
+
});
|
|
32
|
+
const description = state.rows[state.index]?.description ?? "";
|
|
33
|
+
const hint = typeof state.hint === "string"
|
|
34
|
+
? theme.fg("dim", state.hint)
|
|
35
|
+
: renderShortcutHints(state.hint, theme, 0);
|
|
36
|
+
const plainHint = typeof state.hint === "string" ? state.hint : shortcutHintsText(state.hint, 0);
|
|
37
|
+
return [
|
|
38
|
+
rule,
|
|
39
|
+
...rows,
|
|
40
|
+
"",
|
|
41
|
+
contentRow(theme.fg("dim", ` ${description}`), ` ${description}`),
|
|
42
|
+
"",
|
|
43
|
+
contentRow(hint, plainHint),
|
|
44
|
+
rule,
|
|
45
|
+
];
|
|
46
|
+
}
|
|
47
|
+
/** The row a pointer report lands on, or null when it is not on one. */
|
|
48
|
+
export function dialogRowAt(frame, row, column, valueWidth) {
|
|
49
|
+
const at = row - frame.firstRow;
|
|
50
|
+
if (at < 0 || at >= frame.rows)
|
|
51
|
+
return null;
|
|
52
|
+
const start = frame.valueColumn + 1;
|
|
53
|
+
return column >= start && column < start + valueWidth ? at : null;
|
|
54
|
+
}
|
|
55
|
+
function pad(line, width, raw) {
|
|
56
|
+
const visible = displayWidth(raw);
|
|
57
|
+
return visible >= width ? line : line + " ".repeat(width - visible);
|
|
58
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface PaneRect {
|
|
2
|
+
readonly width: number;
|
|
3
|
+
readonly height: number;
|
|
4
|
+
}
|
|
5
|
+
/** Identifies the pane whose bounded frame geometry or rendered rows violated the contract. */
|
|
6
|
+
export declare class FrameContractError extends Error {
|
|
7
|
+
readonly pane: string;
|
|
8
|
+
constructor(pane: string, message: string);
|
|
9
|
+
}
|
|
10
|
+
export declare function assertPaneRect(rect: PaneRect, pane?: string): void;
|
|
11
|
+
/**
|
|
12
|
+
* A pane owns its rectangle exactly: one row per row of height, each within
|
|
13
|
+
* width, and never an embedded newline — the host counts rows to place
|
|
14
|
+
* everything below, so a miscount corrupts the surrounding layout.
|
|
15
|
+
*/
|
|
16
|
+
export declare function validateFrame(lines: readonly string[], rect: PaneRect, pane?: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* Brings a rendered body up to the contract: truncates overlong rows, pads a
|
|
19
|
+
* short body with blank rows, and drops rows beyond the rectangle. Panes that
|
|
20
|
+
* compose other panes use this so one child cannot break the parent's layout.
|
|
21
|
+
*/
|
|
22
|
+
export declare function finalizeFrame(lines: readonly string[], rect: PaneRect, pane?: string): readonly string[];
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { displayWidth, truncateToWidth } from "./text.js";
|
|
2
|
+
/** Identifies the pane whose bounded frame geometry or rendered rows violated the contract. */
|
|
3
|
+
export class FrameContractError extends Error {
|
|
4
|
+
pane;
|
|
5
|
+
constructor(pane, message) {
|
|
6
|
+
super(`${pane}: ${message}`);
|
|
7
|
+
this.pane = pane;
|
|
8
|
+
this.name = "FrameContractError";
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
const MAX_DIMENSION = 10_000;
|
|
12
|
+
export function assertPaneRect(rect, pane = "pane") {
|
|
13
|
+
for (const [name, value] of [["width", rect.width], ["height", rect.height]]) {
|
|
14
|
+
if (!Number.isInteger(value) || value < 0 || value > MAX_DIMENSION) {
|
|
15
|
+
throw new FrameContractError(pane, `${name} must be an integer between 0 and ${MAX_DIMENSION}, received ${value}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A pane owns its rectangle exactly: one row per row of height, each within
|
|
21
|
+
* width, and never an embedded newline — the host counts rows to place
|
|
22
|
+
* everything below, so a miscount corrupts the surrounding layout.
|
|
23
|
+
*/
|
|
24
|
+
export function validateFrame(lines, rect, pane = "pane") {
|
|
25
|
+
assertPaneRect(rect, pane);
|
|
26
|
+
if (lines.length !== rect.height) {
|
|
27
|
+
throw new FrameContractError(pane, `rendered ${lines.length} rows for a height of ${rect.height}`);
|
|
28
|
+
}
|
|
29
|
+
lines.forEach((line, index) => {
|
|
30
|
+
if (line.includes("\n") || line.includes("\r")) {
|
|
31
|
+
throw new FrameContractError(pane, `row ${index} contains a line break`);
|
|
32
|
+
}
|
|
33
|
+
const width = displayWidth(line);
|
|
34
|
+
if (width > rect.width) {
|
|
35
|
+
throw new FrameContractError(pane, `row ${index} is ${width} columns wide for a width of ${rect.width}`);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Brings a rendered body up to the contract: truncates overlong rows, pads a
|
|
41
|
+
* short body with blank rows, and drops rows beyond the rectangle. Panes that
|
|
42
|
+
* compose other panes use this so one child cannot break the parent's layout.
|
|
43
|
+
*/
|
|
44
|
+
export function finalizeFrame(lines, rect, pane = "pane") {
|
|
45
|
+
assertPaneRect(rect, pane);
|
|
46
|
+
const rows = [];
|
|
47
|
+
for (let index = 0; index < rect.height; index++) {
|
|
48
|
+
const line = lines[index] ?? "";
|
|
49
|
+
if (line.includes("\n") || line.includes("\r")) {
|
|
50
|
+
throw new FrameContractError(pane, `row ${index} contains a line break`);
|
|
51
|
+
}
|
|
52
|
+
rows.push(displayWidth(line) > rect.width ? truncateToWidth(line, rect.width) : line);
|
|
53
|
+
}
|
|
54
|
+
return Object.freeze(rows);
|
|
55
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export { dialogRowAt, dialogValueColumn, renderDialogPanel } from "./dialog-panel.js";
|
|
2
|
+
export type { DialogPanelFrame, DialogPanelState, DialogRow } from "./dialog-panel.js";
|
|
3
|
+
export { FrameContractError, assertPaneRect, finalizeFrame, validateFrame } from "./frame.js";
|
|
4
|
+
export type { PaneRect } from "./frame.js";
|
|
5
|
+
export { humanizeLabel, humanizeTitle } from "./label.js";
|
|
6
|
+
export { LineInput, caretCell, handleLineInputKey, renderInputRow, wordLeft, wordRight } from "./line-input.js";
|
|
7
|
+
export type { InputRow, InputRowOptions, LineInputOutcome, LineInputView } from "./line-input.js";
|
|
8
|
+
export { PROMPT_GLYPH, PROMPT_PREFIX_WIDTH, PromptInput, promptArrow, promptRule, promptRuleText } from "./prompt-input.js";
|
|
9
|
+
export type { PromptInputBody, PromptInputMetrics } from "./prompt-input.js";
|
|
10
|
+
export { blockJumpTarget, blockRowSpan, clampScroll, indexOfKey, layoutList, maxScrollFor, moveSelection, rowKey, scrollForSelection, selectableIndexes, stickyHeaderFor, topPaddingRows, visibleRowCount, } from "./list-block.js";
|
|
11
|
+
export type { ListLayout, ListLayoutOptions, ListRow, ListRowSpan } from "./list-block.js";
|
|
12
|
+
export { STEPPER_RESERVE, placementFor, regionAt, renderGroupHeader, renderListRow, renderNote, valueColumnFor } from "./list-view.js";
|
|
13
|
+
export type { ListRegion, ListRowPlacement, ListRowState, ListViewRow } from "./list-view.js";
|
|
14
|
+
export { MOUSE_TRACKING_OFF, MOUSE_TRACKING_ON, parseMouseInput, routeMouseInput } from "./mouse.js";
|
|
15
|
+
export type { ParsedMouseInput, RoutedMouseInput } from "./mouse.js";
|
|
16
|
+
export { isInsidePane, toPaneLocalMouse } from "./pane.js";
|
|
17
|
+
export type { Pane, PaneInputResult, PaneMouseEvent } from "./pane.js";
|
|
18
|
+
export { progressStatusFrame, progressStatusText } from "./progress-status.js";
|
|
19
|
+
export type { ProgressStatusFrameStyles, ProgressStatusMarker } from "./progress-status.js";
|
|
20
|
+
export { FrameCache, RENDER_REVISION_KINDS, RenderRevisionTracker, ZERO_REVISIONS, normalizeRevisions, revisionsEqual } from "./revision.js";
|
|
21
|
+
export type { RenderCacheContract, RenderRevisionKind, RenderRevisions } from "./revision.js";
|
|
22
|
+
export { MAX_COPY_ROWS, MAX_COPY_SOURCE_UNITS, selectionCopyLineContent, selectionCopyRowText } from "./selection-copy.js";
|
|
23
|
+
export type { SelectionCopyPrompt, SelectionCopyRow, SelectionCopySnapshot } from "./selection-copy.js";
|
|
24
|
+
export { ScrollbarRails, isThumbRow, scrollForThumbRow, scrollForTrackPage, scrollbarGeometry, scrollbarPresentation, scrollbarReservesSpace, scrollbarSelectionRows, scrollbarWheelRows, } from "./scrollbar.js";
|
|
25
|
+
export type { RailPointer, RailPosition, ScrollbarAppearance, ScrollbarGeometry, ScrollbarInput, ScrollbarPresentation, ScrollbarPresentationInput, ScrollbarSpeed, ScrollbarStyle, } from "./scrollbar.js";
|
|
26
|
+
export { renderShortcutHints } from "./shortcut-hints.js";
|
|
27
|
+
export type { ShortcutHintEntry } from "./shortcut-hints.js";
|
|
28
|
+
export { GLOBAL_SCOPE, ShortcutRegistry, assembleShortcuts, assertNoShortcutConflicts } from "./shortcuts.js";
|
|
29
|
+
export type { ShortcutConflict, ShortcutDeclaration, ShortcutRegistryResult } from "./shortcuts.js";
|
|
30
|
+
export { backgroundSgrSpan, heldNativeHyperlinkStyle, hyperlinkSgrSpan, hyperlinkTargetAtColumn, nativeHyperlinkStyle, overlaySpan } from "./spans.js";
|
|
31
|
+
export { readVisibleHyperlinks } from "./visible-hyperlinks.js";
|
|
32
|
+
export type { VisibleHyperlinkRange, VisibleHyperlinkRow } from "./visible-hyperlinks.js";
|
|
33
|
+
export { renderStatusLine, statusText } from "./status-line.js";
|
|
34
|
+
export type { StatusLineInput } from "./status-line.js";
|
|
35
|
+
export { SUBMITTED_PROMPT_PREFIX_WIDTH, composeSubmittedPromptRows, formatSubmittedPromptTime, submittedPromptLayout } from "./submitted-prompt.js";
|
|
36
|
+
export type { SubmittedPromptLayout, SubmittedPromptStyle } from "./submitted-prompt.js";
|
|
37
|
+
export { numericValues, steppedValue, stepperEnds } from "./stepper.js";
|
|
38
|
+
export type { NumericRange } from "./stepper.js";
|
|
39
|
+
export { TranscriptViewport, assertTranscriptViewportFrameDescriptor } from "./transcript-viewport.js";
|
|
40
|
+
export type { TranscriptPromptAnchor, TranscriptViewportConfig, TranscriptViewportFrame, TranscriptViewportFrameDescriptor, TranscriptViewportFrameInput, TranscriptViewportHitRegions, TranscriptViewportTheme, } from "./transcript-viewport.js";
|
|
41
|
+
export { RAIL_COLUMNS, renderEmptyState, withScrollbarRail } from "./surface.js";
|
|
42
|
+
export type { RailOptions } from "./surface.js";
|
|
43
|
+
export { displayColumnSlice, displayWidth, displayWordColumnRange, faint, padToWidth, stripAnsi, truncateToWidth } from "./text.js";
|
|
44
|
+
export type { DisplayColumnRange, DisplayColumnSlice } from "./text.js";
|
|
45
|
+
export { TEXT_SELECTION_MULTI_CLICK_MS, extendTextSelection, orderedTextSelection, plainTextBetweenColumns, pressTextSelection, releaseTextSelection, textSelectionLineExtendColumn, textSelectionPointAt, textSelectionText, usefulTextLineContent, } from "./text-selection.js";
|
|
46
|
+
export type { OrderedTextSelection, TextSelection, TextSelectionClick, TextSelectionLineContent, TextSelectionPoint, TextSelectionPressInput, } from "./text-selection.js";
|
|
47
|
+
export { PLAIN_THEME } from "./theme.js";
|
|
48
|
+
export type { UiTheme, UiThemeToken } from "./theme.js";
|
|
49
|
+
export { menuRowAt, renderValueMenu, valueMenuFrame } from "./value-menu.js";
|
|
50
|
+
export type { ValueMenuAnchor, ValueMenuFrame, ValueMenuLayout, ValueMenuState } from "./value-menu.js";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export { dialogRowAt, dialogValueColumn, renderDialogPanel } from "./dialog-panel.js";
|
|
2
|
+
export { FrameContractError, assertPaneRect, finalizeFrame, validateFrame } from "./frame.js";
|
|
3
|
+
export { humanizeLabel, humanizeTitle } from "./label.js";
|
|
4
|
+
export { LineInput, caretCell, handleLineInputKey, renderInputRow, wordLeft, wordRight } from "./line-input.js";
|
|
5
|
+
export { PROMPT_GLYPH, PROMPT_PREFIX_WIDTH, PromptInput, promptArrow, promptRule, promptRuleText } from "./prompt-input.js";
|
|
6
|
+
export { blockJumpTarget, blockRowSpan, clampScroll, indexOfKey, layoutList, maxScrollFor, moveSelection, rowKey, scrollForSelection, selectableIndexes, stickyHeaderFor, topPaddingRows, visibleRowCount, } from "./list-block.js";
|
|
7
|
+
export { STEPPER_RESERVE, placementFor, regionAt, renderGroupHeader, renderListRow, renderNote, valueColumnFor } from "./list-view.js";
|
|
8
|
+
export { MOUSE_TRACKING_OFF, MOUSE_TRACKING_ON, parseMouseInput, routeMouseInput } from "./mouse.js";
|
|
9
|
+
export { isInsidePane, toPaneLocalMouse } from "./pane.js";
|
|
10
|
+
export { progressStatusFrame, progressStatusText } from "./progress-status.js";
|
|
11
|
+
export { FrameCache, RENDER_REVISION_KINDS, RenderRevisionTracker, ZERO_REVISIONS, normalizeRevisions, revisionsEqual } from "./revision.js";
|
|
12
|
+
export { MAX_COPY_ROWS, MAX_COPY_SOURCE_UNITS, selectionCopyLineContent, selectionCopyRowText } from "./selection-copy.js";
|
|
13
|
+
export { ScrollbarRails, isThumbRow, scrollForThumbRow, scrollForTrackPage, scrollbarGeometry, scrollbarPresentation, scrollbarReservesSpace, scrollbarSelectionRows, scrollbarWheelRows, } from "./scrollbar.js";
|
|
14
|
+
export { renderShortcutHints } from "./shortcut-hints.js";
|
|
15
|
+
export { GLOBAL_SCOPE, ShortcutRegistry, assembleShortcuts, assertNoShortcutConflicts } from "./shortcuts.js";
|
|
16
|
+
export { backgroundSgrSpan, heldNativeHyperlinkStyle, hyperlinkSgrSpan, hyperlinkTargetAtColumn, nativeHyperlinkStyle, overlaySpan } from "./spans.js";
|
|
17
|
+
export { readVisibleHyperlinks } from "./visible-hyperlinks.js";
|
|
18
|
+
export { renderStatusLine, statusText } from "./status-line.js";
|
|
19
|
+
export { SUBMITTED_PROMPT_PREFIX_WIDTH, composeSubmittedPromptRows, formatSubmittedPromptTime, submittedPromptLayout } from "./submitted-prompt.js";
|
|
20
|
+
export { numericValues, steppedValue, stepperEnds } from "./stepper.js";
|
|
21
|
+
export { TranscriptViewport, assertTranscriptViewportFrameDescriptor } from "./transcript-viewport.js";
|
|
22
|
+
export { RAIL_COLUMNS, renderEmptyState, withScrollbarRail } from "./surface.js";
|
|
23
|
+
export { displayColumnSlice, displayWidth, displayWordColumnRange, faint, padToWidth, stripAnsi, truncateToWidth } from "./text.js";
|
|
24
|
+
export { TEXT_SELECTION_MULTI_CLICK_MS, extendTextSelection, orderedTextSelection, plainTextBetweenColumns, pressTextSelection, releaseTextSelection, textSelectionLineExtendColumn, textSelectionPointAt, textSelectionText, usefulTextLineContent, } from "./text-selection.js";
|
|
25
|
+
export { PLAIN_THEME } from "./theme.js";
|
|
26
|
+
export { menuRowAt, renderValueMenu, valueMenuFrame } from "./value-menu.js";
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { UiTheme } from "./theme.js";
|
|
2
|
+
export type LineInputOutcome = {
|
|
3
|
+
readonly kind: "editing";
|
|
4
|
+
} | {
|
|
5
|
+
readonly kind: "accepted";
|
|
6
|
+
readonly value: string;
|
|
7
|
+
} | {
|
|
8
|
+
readonly kind: "cancelled";
|
|
9
|
+
};
|
|
10
|
+
export interface LineInputView {
|
|
11
|
+
/** Visible slice of the value, already fitted to the width. */
|
|
12
|
+
readonly text: string;
|
|
13
|
+
/** Zero-based column of the caret within the visible slice. */
|
|
14
|
+
readonly caretColumn: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Where a word jump to the left lands: past any whitespace, then past the run of
|
|
18
|
+
* characters of one class, so a word and a run of punctuation each count as one.
|
|
19
|
+
*/
|
|
20
|
+
export declare function wordLeft(text: string, from: number): number;
|
|
21
|
+
/** Where a word jump to the right lands, by the same rules mirrored. */
|
|
22
|
+
export declare function wordRight(text: string, from: number): number;
|
|
23
|
+
/**
|
|
24
|
+
* A single-line editable value with a caret and horizontal scrolling. Accept and
|
|
25
|
+
* cancel are reported distinctly so a caller can commit or discard; cancelling
|
|
26
|
+
* never changes the caller's value.
|
|
27
|
+
*/
|
|
28
|
+
export declare class LineInput {
|
|
29
|
+
#private;
|
|
30
|
+
constructor(value?: string);
|
|
31
|
+
get value(): string;
|
|
32
|
+
get caret(): number;
|
|
33
|
+
setValue(value: string): void;
|
|
34
|
+
insert(text: string): void;
|
|
35
|
+
backspace(): void;
|
|
36
|
+
deleteForward(): void;
|
|
37
|
+
moveCaret(delta: number): void;
|
|
38
|
+
/** Moves the caret one word, in whichever direction the sign says. */
|
|
39
|
+
moveCaretByWord(direction: -1 | 1): void;
|
|
40
|
+
/** Removes the word before the caret, leaving the caret where it began. */
|
|
41
|
+
deleteWordBefore(): void;
|
|
42
|
+
/** Removes the word after the caret, leaving the caret where it is. */
|
|
43
|
+
deleteWordAfter(): void;
|
|
44
|
+
moveCaretToStart(): void;
|
|
45
|
+
moveCaretToEnd(): void;
|
|
46
|
+
/** Visible slice for a width, scrolled so the caret stays on screen. */
|
|
47
|
+
view(width: number): LineInputView;
|
|
48
|
+
}
|
|
49
|
+
/** Applies one key to the input and reports whether the caller should commit. */
|
|
50
|
+
export declare function handleLineInputKey(input: LineInput, data: string): LineInputOutcome;
|
|
51
|
+
/**
|
|
52
|
+
* The caret the reference draws: the cell under it is reversed rather than given
|
|
53
|
+
* a colour of its own, so it reads as a block in whatever theme is in use.
|
|
54
|
+
*/
|
|
55
|
+
export declare function caretCell(text: string): string;
|
|
56
|
+
export interface InputRowOptions {
|
|
57
|
+
/** Shown quietly while nothing has been typed, with the caret on its first cell. */
|
|
58
|
+
readonly placeholder?: string;
|
|
59
|
+
/** Rules above and below, in the prompt's own grey. Default true. */
|
|
60
|
+
readonly ruled?: boolean;
|
|
61
|
+
readonly theme?: Pick<UiTheme, "fg">;
|
|
62
|
+
}
|
|
63
|
+
export interface InputRow {
|
|
64
|
+
/** The rows to draw, already padded to the width. */
|
|
65
|
+
readonly lines: readonly string[];
|
|
66
|
+
}
|
|
67
|
+
/** The input row as the reference draws one, padded to exactly the width. */
|
|
68
|
+
export declare function renderInputRow(input: LineInput, width: number, options?: InputRowOptions): InputRow;
|