@timurproko/a1 0.2.7-dev.1249 → 0.2.7-dev.1255
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 +11 -36
- package/bin/cli.js +2 -17
- package/bin/ui.js +10 -51
- package/dist/app/session-shell/clipboard-diagnostics.d.ts +2 -2
- package/dist/app/session-shell/clipboard-image.d.ts +0 -1
- package/dist/app/session-shell/clipboard-image.js +1 -1
- package/dist/app/session-shell/dialog-coordinator.d.ts +6 -5
- package/dist/app/session-shell/dialog-coordinator.js +3 -4
- package/dist/app/session-shell/dock-chrome.d.ts +11 -6
- package/dist/app/session-shell/dock-chrome.js +5 -8
- package/dist/app/session-shell/editor-hyperlink-budget.d.ts +0 -2
- package/dist/app/session-shell/editor-hyperlink-budget.js +1 -1
- package/dist/app/session-shell/exit-notice.d.ts +3 -3
- package/dist/app/session-shell/exit-notice.js +10 -10
- package/dist/app/session-shell/extension-surface.d.ts +8 -7
- package/dist/app/session-shell/helper-pool.d.ts +3 -4
- package/dist/app/session-shell/helper-pool.js +1 -1
- package/dist/app/session-shell/image-preparation-client.d.ts +4 -3
- package/dist/app/session-shell/image-preparation.d.ts +0 -2
- package/dist/app/session-shell/image-preparation.js +2 -2
- package/dist/app/session-shell/image-source.d.ts +2 -3
- package/dist/app/session-shell/image-source.js +2 -2
- package/dist/app/session-shell/input-surface-switch.d.ts +9 -7
- package/dist/app/session-shell/input-surface-switch.js +1 -2
- package/dist/app/session-shell/login-interaction.d.ts +5 -4
- package/dist/app/session-shell/login-interaction.js +2 -3
- package/dist/app/session-shell/paste-executor.d.ts +4 -8
- package/dist/app/session-shell/paste-executor.js +2 -2
- package/dist/app/session-shell/paste-protocol.d.ts +2 -2
- package/dist/app/session-shell/path-chip-presentation.d.ts +0 -5
- package/dist/app/session-shell/path-chip-presentation.js +3 -3
- package/dist/app/session-shell/prompt-chips.d.ts +8 -7
- package/dist/app/session-shell/prompt-history-controller.d.ts +3 -3
- package/dist/app/session-shell/prompt-submission.d.ts +7 -6
- package/dist/app/session-shell/prompt-submission.js +7 -28
- package/dist/app/session-shell/quit-outro-effects.d.ts +3 -3
- package/dist/app/session-shell/quit-outro-effects.js +1 -4
- package/dist/app/session-shell/quit-outro.d.ts +9 -12
- package/dist/app/session-shell/quit-outro.js +11 -11
- package/dist/app/session-shell/response-copy-protocol.d.ts +3 -2
- package/dist/app/session-shell/response-copy-transport.d.ts +2 -14
- package/dist/app/session-shell/response-copy-transport.js +2 -3
- package/dist/app/session-shell/session-lifecycle.d.ts +3 -3
- package/dist/app/session-shell/session-lifecycle.js +2 -4
- package/dist/app/session-shell/session-shell-root.d.ts +74 -120
- package/dist/app/session-shell/session-shell-root.js +82 -115
- package/dist/app/session-shell/session-shell.d.ts +13 -16
- package/dist/app/session-shell/session-shell.js +149 -314
- package/dist/app/session-shell/session-viewport-controller.d.ts +7 -6
- package/dist/app/session-shell/session-viewport-controller.js +5 -8
- package/dist/app/session-shell/settings-bindings.d.ts +24 -2
- package/dist/app/session-shell/settings-bindings.js +24 -0
- package/dist/app/session-shell/share-operation.d.ts +3 -3
- package/dist/app/session-shell/share-operation.js +4 -6
- package/dist/app/session-shell/shell-clipboard.d.ts +59 -0
- package/dist/app/session-shell/shell-clipboard.js +119 -0
- package/dist/app/session-shell/shell-editor-factory.d.ts +8 -4
- package/dist/app/session-shell/shell-editor-factory.js +13 -15
- package/dist/app/session-shell/shell-host.d.ts +16 -17
- package/dist/app/session-shell/shell-host.js +20 -37
- package/dist/app/session-shell/shell-layout.d.ts +2 -2
- package/dist/app/session-shell/shell-prompt-suggestions.d.ts +26 -0
- package/dist/app/session-shell/shell-prompt-suggestions.js +48 -0
- package/dist/app/session-shell/suggestion-surface.d.ts +1 -6
- package/dist/app/session-shell/suggestion-surface.js +1 -1
- package/dist/app/session-shell/system-clipboard.d.ts +2 -14
- package/dist/app/session-shell/system-clipboard.js +2 -7
- package/dist/app/session-shell/transcript-document.d.ts +12 -10
- package/dist/app/session-shell/transcript-document.js +15 -41
- package/dist/app/session-shell/viewport-layout.d.ts +2 -2
- package/dist/app/session-shell/workflow-output.d.ts +5 -3
- package/dist/app/session-shell/workflow-output.js +13 -15
- package/dist/app/session-shell/workflow-router.d.ts +1 -3
- package/dist/app/session-shell/workflow-router.js +1 -4
- package/dist/cli/dispatch.d.ts +1 -11
- package/dist/cli/dispatch.js +5 -92
- package/dist/cli/package-messages.d.ts +0 -1
- package/dist/cli/package-messages.js +1 -1
- package/dist/cli/session-context.d.ts +1 -1
- package/dist/cli/session-context.js +5 -7
- package/dist/cli/uninstall.d.ts +4 -7
- package/dist/cli/uninstall.js +6 -35
- package/dist/cli/version-stats.js +4 -7
- package/dist/composition/owned-settings.d.ts +2 -2
- package/dist/composition/owned-settings.js +0 -4
- package/dist/composition/owned-ui.d.ts +3 -25
- package/dist/composition/owned-ui.js +37 -113
- package/dist/composition/reference-selection-options.d.ts +1 -1
- package/dist/composition/reference-selection-options.js +1 -1
- package/dist/composition/release-update-observation.d.ts +4 -4
- package/dist/composition/release-update-observation.js +17 -47
- package/dist/composition/session-backend.d.ts +0 -1
- package/dist/composition/session-runtime-registry.d.ts +5 -4
- package/dist/composition/settings-route-host.d.ts +0 -7
- package/dist/composition/settings-route-host.js +7 -20
- package/dist/composition/settings-search-input.d.ts +2 -1
- package/dist/composition/startup-route.d.ts +2 -3
- package/dist/composition/startup-route.js +2 -3
- package/dist/contracts/owned-ui/extension-ui.d.ts +2 -1
- package/dist/contracts/owned-ui/index.d.ts +2 -1
- package/dist/contracts/owned-ui/model.d.ts +0 -3
- package/dist/contracts/owned-ui/session-presenters.d.ts +3 -0
- package/dist/contracts/owned-ui/session-workflows.d.ts +1 -4
- package/dist/contracts/owned-ui/shell-components.d.ts +543 -0
- package/dist/contracts/presentation/component.d.ts +17 -0
- package/dist/contracts/presentation/component.js +8 -0
- package/dist/contracts/presentation/index.d.ts +6 -15
- package/dist/contracts/presentation/index.js +2 -0
- package/dist/contracts/presentation/terminal.d.ts +290 -0
- package/dist/contracts/presentation/theme.d.ts +46 -0
- package/dist/features/launch/development-launch.js +1 -2
- package/dist/features/launch/index.d.ts +1 -1
- package/dist/features/launch/intent.d.ts +1 -3
- package/dist/features/launch/intent.js +2 -4
- package/dist/features/launch/runtime-selection.d.ts +2 -2
- package/dist/features/launch/runtime-selection.js +2 -2
- package/dist/features/launch/session-context.d.ts +2 -2
- package/dist/features/owned-ui/project-trust-prompt.d.ts +2 -2
- package/dist/features/owned-ui/project-trust-prompt.js +1 -1
- package/dist/features/owned-ui/reference-screen-app.d.ts +0 -2
- package/dist/features/owned-ui/reference-screen-app.js +2 -9
- package/dist/features/owned-ui/release-note-state.d.ts +2 -1
- package/dist/features/owned-ui/settings-app.d.ts +0 -6
- package/dist/features/owned-ui/settings-app.js +42 -254
- package/dist/features/owned-ui/settings-edits.d.ts +31 -0
- package/dist/features/owned-ui/settings-edits.js +139 -0
- package/dist/features/owned-ui/settings-scroll-rail.d.ts +29 -0
- package/dist/features/owned-ui/settings-scroll-rail.js +79 -0
- package/dist/features/owned-ui/settings-search-input.d.ts +2 -1
- package/dist/features/prompt-history/service.d.ts +3 -2
- package/dist/foundation/launch-context/index.d.ts +0 -12
- package/dist/foundation/launch-context/index.js +0 -26
- package/dist/foundation/lifecycle/claim-gate.d.ts +9 -0
- package/dist/foundation/lifecycle/claim-gate.js +37 -0
- package/dist/foundation/lifecycle/index.d.ts +5 -9
- package/dist/foundation/lifecycle/index.js +3 -4
- package/dist/foundation/lifecycle/model.d.ts +2 -59
- package/dist/foundation/lifecycle/model.js +0 -35
- package/dist/foundation/lifecycle/paths.d.ts +0 -24
- package/dist/foundation/lifecycle/paths.js +0 -40
- package/dist/foundation/lifecycle/process-liveness.d.ts +8 -0
- package/dist/foundation/lifecycle/process-liveness.js +18 -0
- package/dist/foundation/lifecycle/session-claim-lock.d.ts +1 -1
- package/dist/foundation/lifecycle/session-claim-lock.js +2 -2
- package/dist/foundation/lifecycle/session-repository-context.d.ts +6 -6
- package/dist/foundation/lifecycle/session-repository-context.js +2 -3
- package/dist/foundation/release/automatic-update.d.ts +6 -17
- package/dist/foundation/release/automatic-update.js +23 -44
- package/dist/foundation/release/bootstrap.d.ts +2 -25
- package/dist/foundation/release/bootstrap.js +37 -348
- package/dist/foundation/release/dependency-certification.d.ts +1 -2
- package/dist/foundation/release/dependency-certification.js +1 -1
- package/dist/foundation/release/early-accent.d.ts +2 -2
- package/dist/foundation/release/early-accent.js +1 -1
- package/dist/foundation/release/index.d.ts +10 -17
- package/dist/foundation/release/index.js +7 -11
- package/dist/foundation/release/latest-release.d.ts +3 -19
- package/dist/foundation/release/latest-release.js +11 -12
- package/dist/foundation/release/ordinary-launch-selection.d.ts +1 -1
- package/dist/foundation/release/ordinary-launch-selection.js +1 -1
- package/dist/foundation/release/process-liveness.d.ts +2 -0
- package/dist/foundation/release/process-liveness.js +12 -0
- package/dist/foundation/release/release-gc.d.ts +13 -10
- package/dist/foundation/release/release-gc.js +37 -101
- package/dist/foundation/release/{cohort-state.d.ts → release-state.d.ts} +44 -69
- package/dist/foundation/release/{cohort-state.js → release-state.js} +38 -70
- package/dist/foundation/release/release-store.d.ts +2 -2
- package/dist/foundation/release/release-store.js +2 -2
- package/dist/foundation/release/restart-certification.js +1 -1
- package/dist/foundation/release/update-activation.d.ts +2 -9
- package/dist/foundation/release/update-activation.js +30 -45
- package/dist/foundation/release/update-execution-lease.d.ts +2 -3
- package/dist/foundation/release/update-execution-lease.js +2 -2
- package/dist/foundation/release/update-launch.d.ts +2 -4
- package/dist/foundation/release/update-launch.js +0 -7
- package/dist/foundation/release/update-recovery.js +1 -1
- package/dist/foundation/release/update-transaction.d.ts +1 -1
- package/dist/foundation/release/update-transaction.js +5 -2
- package/dist/foundation/release/update.d.ts +2 -12
- package/dist/foundation/release/update.js +37 -214
- package/dist/foundation/session-writer-lock/index.d.ts +14 -6
- package/dist/foundation/session-writer-lock/index.js +48 -103
- package/dist/foundation/startup/startup-budget.d.ts +5 -5
- package/dist/foundation/startup/startup-budget.js +2 -2
- package/dist/foundation/startup/startup-runtime.d.ts +1 -1
- package/dist/foundation/terminal-cleanup/exit-notice.d.ts +6 -0
- package/dist/foundation/terminal-cleanup/exit-notice.js +36 -0
- package/dist/foundation/terminal-cleanup/index.d.ts +2 -1
- package/dist/foundation/terminal-cleanup/index.js +2 -1
- package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +0 -5
- package/dist/foundation/terminal-cleanup/terminal-reset.js +0 -5
- package/dist/integrations/pi/components/editor-interaction.d.ts +4 -12
- package/dist/integrations/pi/components/index.d.ts +15 -9
- package/dist/integrations/pi/components/index.js +9 -5
- package/dist/integrations/pi/components/lazy-selectors.d.ts +2 -10
- package/dist/integrations/pi/components/lazy-selectors.js +1 -1
- package/dist/integrations/pi/components/modal-frame.d.ts +5 -22
- package/dist/integrations/pi/components/modal-frame.js +3 -23
- package/dist/integrations/pi/components/owned-editor-ux.d.ts +4 -3
- package/dist/integrations/pi/components/prompt-input-port.d.ts +2 -19
- package/dist/integrations/pi/components/resources/builtin-themes.d.ts +2 -1
- package/dist/integrations/pi/components/shell-editor-autocomplete.d.ts +3 -2
- package/dist/integrations/pi/components/shell-editor-autocomplete.js +1 -4
- package/dist/integrations/pi/components/shell-footer-status.d.ts +3 -3
- package/dist/integrations/pi/components/shell-footer-status.js +5 -4
- package/dist/integrations/pi/components/shell-hotkey-sections.js +1 -1
- package/dist/integrations/pi/components/shell-presenters-info.d.ts +6 -8
- package/dist/integrations/pi/components/shell-presenters-info.js +6 -19
- package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +1 -1
- package/dist/integrations/pi/components/shell-presenters-transcript.js +1 -1
- package/dist/integrations/pi/components/shell-session-info-reference.d.ts +2 -1
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +33 -229
- package/dist/integrations/pi/components/shell-shared-facade.js +8 -1
- package/dist/integrations/pi/components/skills-command.d.ts +1 -9
- package/dist/integrations/pi/components/skills-command.js +5 -5
- package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +2 -5
- package/dist/integrations/pi/components/submitted-prompt-adapter.js +2 -16
- package/dist/integrations/pi/components/theme.d.ts +9 -2
- package/dist/integrations/pi/components/theme.js +17 -2
- package/dist/integrations/pi/components/thinking-selector-dialog.d.ts +2 -1
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +2 -2
- package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +1 -2
- package/dist/integrations/pi/components/upstream/components/session-footer.js +6 -8
- package/dist/integrations/pi/engine/adapter.d.ts +3 -6
- package/dist/integrations/pi/engine/adapter.js +4 -28
- package/dist/integrations/pi/engine/changelog.d.ts +2 -2
- package/dist/integrations/pi/engine/changelog.js +3 -3
- package/dist/integrations/pi/engine/compaction-progress.d.ts +2 -3
- package/dist/integrations/pi/engine/compaction-progress.js +1 -1
- package/dist/integrations/pi/engine/conformance.d.ts +2 -1
- package/dist/integrations/pi/engine/default-model-setting.d.ts +0 -2
- package/dist/integrations/pi/engine/default-model-setting.js +1 -2
- package/dist/integrations/pi/engine/diagnostics-state.d.ts +0 -1
- package/dist/integrations/pi/engine/diagnostics-state.js +0 -14
- package/dist/integrations/pi/engine/event-delivery.d.ts +2 -1
- package/dist/integrations/pi/engine/extension-ui-binding.d.ts +2 -1
- package/dist/integrations/pi/engine/host.js +2 -2
- package/dist/integrations/pi/engine/message-values.d.ts +0 -1
- package/dist/integrations/pi/engine/message-values.js +1 -1
- package/dist/integrations/pi/engine/pending-delivery.d.ts +0 -4
- package/dist/integrations/pi/engine/pending-delivery.js +3 -3
- package/dist/integrations/pi/engine/ports.d.ts +7 -1
- package/dist/integrations/pi/engine/ports.js +4 -0
- package/dist/integrations/pi/engine/project-trust-preflight.d.ts +2 -1
- package/dist/integrations/pi/engine/prompt-suggestions.d.ts +3 -3
- package/dist/integrations/pi/engine/prompt-suggestions.js +0 -40
- package/dist/integrations/pi/engine/provider-authentication.d.ts +1 -1
- package/dist/integrations/pi/engine/public-main-entry.d.ts +1 -5
- package/dist/integrations/pi/engine/public-main-entry.js +1 -1
- package/dist/integrations/pi/engine/repository-pr-rest.d.ts +1 -9
- package/dist/integrations/pi/engine/repository-pr-rest.js +2 -2
- package/dist/integrations/pi/engine/repository-pr.d.ts +1 -3
- package/dist/integrations/pi/engine/repository-pr.js +1 -1
- package/dist/integrations/pi/engine/resource-catalog.d.ts +2 -1
- package/dist/integrations/pi/engine/session-integration.d.ts +1 -1
- package/dist/integrations/pi/engine/session-runtime.d.ts +4 -3
- package/dist/integrations/pi/engine/session-runtime.js +0 -2
- package/dist/integrations/pi/engine/settings-bridge.d.ts +0 -2
- package/dist/integrations/pi/engine/settings-bridge.js +1 -1
- package/dist/integrations/pi/engine/settings-port.d.ts +3 -2
- package/dist/integrations/pi/engine/transcript-projection.d.ts +2 -1
- package/dist/integrations/pi/engine/workflow-contexts.d.ts +1 -1
- package/dist/integrations/pi/engine/workflow-runner.d.ts +1 -1
- package/dist/integrations/pi/engine/workflow-runner.js +1 -1
- package/dist/integrations/pi/engine/workflow-support.d.ts +0 -6
- package/dist/integrations/pi/engine/workflow-support.js +4 -18
- package/dist/integrations/pi/engine/workflows.d.ts +5 -5
- package/dist/integrations/pi/session-presenters/components.d.ts +3 -0
- package/dist/integrations/pi/session-presenters/components.js +75 -0
- package/dist/integrations/pi/session-presenters/index.d.ts +1 -0
- package/dist/integrations/pi/session-presenters/index.js +1 -0
- package/dist/integrations/pi/session-presenters/presentation.d.ts +3 -0
- package/dist/integrations/pi/session-presenters/presentation.js +10 -0
- package/dist/integrations/pi/session-presenters/presenters.d.ts +2 -1
- package/dist/integrations/pi/session-presenters/presenters.js +3 -1
- package/dist/integrations/pi/tui-runtime/adapter.d.ts +2 -2
- package/dist/integrations/pi/tui-runtime/adapter.js +23 -32
- package/dist/integrations/pi/tui-runtime/contracts.d.ts +22 -166
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +5 -40
- package/dist/integrations/pi/tui-runtime/index.d.ts +1 -0
- package/dist/integrations/pi/tui-runtime/index.js +1 -0
- package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +4 -6
- package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +2 -8
- package/dist/integrations/pi/tui-runtime/overlay-geometry.js +3 -9
- package/dist/integrations/pi/tui-runtime/runtime-factory.d.ts +3 -0
- package/dist/integrations/pi/tui-runtime/runtime-factory.js +11 -0
- package/dist/product-identity.d.ts +4 -6
- package/dist/product-identity.js +6 -11
- package/dist/product-identity.json +1 -40
- package/dist/runtime-payload-inventory.json +0 -3
- package/dist/ui/components/index.d.ts +4 -4
- package/dist/ui/components/index.js +2 -2
- package/dist/ui/components/selection-copy.d.ts +0 -1
- package/dist/ui/components/selection-copy.js +0 -12
- package/dist/ui/components/submitted-prompt.d.ts +3 -13
- package/dist/ui/components/submitted-prompt.js +8 -41
- package/dist/ui/components/theme.d.ts +4 -19
- package/dist/ui/components/theme.js +6 -0
- package/dist/ui/components/transcript-viewport.d.ts +1 -3
- package/dist/ui/components/transcript-viewport.js +1 -4
- package/dist/ui/settings/declarations.d.ts +2 -97
- package/dist/ui/settings/declarations.js +2 -78
- package/dist/ui/settings/early-accent.js +1 -1
- package/dist/ui/settings/index.d.ts +3 -5
- package/dist/ui/settings/index.js +2 -3
- package/dist/ui/settings/manager.d.ts +0 -4
- package/dist/ui/settings/manager.js +6 -62
- package/dist/ui/settings/resolution.d.ts +6 -18
- package/dist/ui/settings/resolution.js +4 -103
- package/dist/ui/settings/sections.d.ts +0 -4
- package/dist/ui/settings/sections.js +1 -1
- package/docs/architecture/boundaries.md +23 -40
- package/docs/architecture/code-documentation.md +2 -2
- package/docs/architecture/internal-naming.md +11 -17
- package/docs/architecture/project-structure.md +13 -16
- package/docs/architecture/resource-and-data-policy.md +16 -31
- package/docs/architecture/toolchain.md +14 -19
- package/docs/architecture/ui-reference-provenance.md +2 -2
- package/docs/ci-release-runbook.md +5 -5
- package/docs/features/launch-profiles.md +11 -17
- package/docs/features/prompt-history.md +10 -11
- package/docs/local-worktree-cleanup.md +28 -1
- package/docs/manual-owned-ui-checkpoint.md +0 -1
- package/docs/validation.md +5 -11
- package/docs/worktree-link-recovery.md +6 -6
- package/package.json +7 -20
- package/bin/guardian.js +0 -42
- package/bin/supervisor.js +0 -7
- package/bin/tab-launch-context.d.ts +0 -27
- package/bin/tab-launch-context.js +0 -94
- package/dist/app/session-shell/resident-tab-coordinator.d.ts +0 -38
- package/dist/app/session-shell/resident-tab-coordinator.js +0 -77
- package/dist/cli/tabs-request.d.ts +0 -7
- package/dist/cli/tabs.d.ts +0 -14
- package/dist/cli/tabs.js +0 -151
- package/dist/composition/resident-tab-bridge.d.ts +0 -41
- package/dist/composition/resident-tab-bridge.js +0 -209
- package/dist/composition/utility-tab.d.ts +0 -28
- package/dist/composition/utility-tab.js +0 -244
- package/dist/features/owned-ui/plus-menu-dialog.d.ts +0 -28
- package/dist/features/owned-ui/plus-menu-dialog.js +0 -89
- package/dist/features/resident-tab/auto-name.d.ts +0 -11
- package/dist/features/resident-tab/auto-name.js +0 -44
- package/dist/features/resident-tab/index.d.ts +0 -5
- package/dist/features/resident-tab/index.js +0 -7
- package/dist/features/resident-tab/shortcut-bindings-file.d.ts +0 -8
- package/dist/features/resident-tab/shortcut-bindings-file.js +0 -40
- package/dist/features/resident-tab/shortcut-declarations.d.ts +0 -13
- package/dist/features/resident-tab/shortcut-declarations.js +0 -26
- package/dist/features/resident-tab/shortcut-projection.d.ts +0 -29
- package/dist/features/resident-tab/shortcut-projection.js +0 -64
- package/dist/features/resident-tab/status-deriver.d.ts +0 -10
- package/dist/features/resident-tab/status-deriver.js +0 -12
- package/dist/foundation/launch-guardian/exit-watcher.d.ts +0 -14
- package/dist/foundation/launch-guardian/exit-watcher.js +0 -103
- package/dist/foundation/launch-guardian/index.d.ts +0 -2
- package/dist/foundation/launch-guardian/index.js +0 -1
- package/dist/foundation/launch-guardian/main.d.ts +0 -39
- package/dist/foundation/launch-guardian/main.js +0 -232
- package/dist/foundation/lifecycle/commands.d.ts +0 -40
- package/dist/foundation/lifecycle/launch-instance.d.ts +0 -46
- package/dist/foundation/lifecycle/launch-instance.js +0 -134
- package/dist/foundation/lifecycle/native-claim-gate.d.ts +0 -5
- package/dist/foundation/lifecycle/native-claim-gate.js +0 -41
- package/dist/foundation/lifecycle/supervisor-startup.d.ts +0 -30
- package/dist/foundation/lifecycle/supervisor-startup.js +0 -106
- package/dist/foundation/process-containment/addon-containment.d.ts +0 -20
- package/dist/foundation/process-containment/addon-containment.js +0 -139
- package/dist/foundation/process-containment/addon-process-inspector.d.ts +0 -11
- package/dist/foundation/process-containment/addon-process-inspector.js +0 -36
- package/dist/foundation/process-containment/addon.d.ts +0 -47
- package/dist/foundation/process-containment/addon.js +0 -57
- package/dist/foundation/process-containment/artifact.d.ts +0 -1
- package/dist/foundation/process-containment/artifact.js +0 -35
- package/dist/foundation/process-containment/contracts.d.ts +0 -33
- package/dist/foundation/process-containment/contracts.js +0 -35
- package/dist/foundation/process-containment/index.d.ts +0 -9
- package/dist/foundation/process-containment/index.js +0 -7
- package/dist/foundation/process-containment/linux-process-inspector.d.ts +0 -7
- package/dist/foundation/process-containment/linux-process-inspector.js +0 -27
- package/dist/foundation/process-containment/native-process-inspector.d.ts +0 -4
- package/dist/foundation/process-containment/native-process-inspector.js +0 -21
- package/dist/foundation/protocol/client.d.ts +0 -18
- package/dist/foundation/protocol/client.js +0 -130
- package/dist/foundation/protocol/index.d.ts +0 -3
- package/dist/foundation/protocol/index.js +0 -2
- package/dist/foundation/protocol/messages.d.ts +0 -90
- package/dist/foundation/protocol/messages.js +0 -100
- package/dist/foundation/release/cohort-selection.d.ts +0 -33
- package/dist/foundation/release/cohort-selection.js +0 -67
- package/dist/foundation/release/endpoint-lock.d.ts +0 -2
- package/dist/foundation/release/endpoint-lock.js +0 -37
- package/dist/foundation/release/endpoint-recovery.d.ts +0 -10
- package/dist/foundation/release/endpoint-recovery.js +0 -45
- package/dist/foundation/release/endpoints.d.ts +0 -32
- package/dist/foundation/release/endpoints.js +0 -152
- package/dist/foundation/release/prepared-update-activation.d.ts +0 -3
- package/dist/foundation/release/prepared-update-activation.js +0 -27
- package/dist/foundation/release/process-cleanup.d.ts +0 -14
- package/dist/foundation/release/process-cleanup.js +0 -76
- package/dist/foundation/release/supervisor-identity.d.ts +0 -15
- package/dist/foundation/release/supervisor-identity.js +0 -63
- package/dist/foundation/resident-tabs/boot-identity.d.ts +0 -6
- package/dist/foundation/resident-tabs/boot-identity.js +0 -16
- package/dist/foundation/resident-tabs/bounded-host-command.d.ts +0 -20
- package/dist/foundation/resident-tabs/bounded-host-command.js +0 -62
- package/dist/foundation/resident-tabs/bridge-client.d.ts +0 -73
- package/dist/foundation/resident-tabs/bridge-client.js +0 -327
- package/dist/foundation/resident-tabs/continuity.d.ts +0 -12
- package/dist/foundation/resident-tabs/continuity.js +0 -63
- package/dist/foundation/resident-tabs/doctor.d.ts +0 -28
- package/dist/foundation/resident-tabs/doctor.js +0 -166
- package/dist/foundation/resident-tabs/draft-checkpoint.d.ts +0 -27
- package/dist/foundation/resident-tabs/draft-checkpoint.js +0 -145
- package/dist/foundation/resident-tabs/ensure-terminal-host.d.ts +0 -36
- package/dist/foundation/resident-tabs/ensure-terminal-host.js +0 -151
- package/dist/foundation/resident-tabs/fault-injection.d.ts +0 -8
- package/dist/foundation/resident-tabs/fault-injection.js +0 -26
- package/dist/foundation/resident-tabs/fixture-control.d.ts +0 -7
- package/dist/foundation/resident-tabs/fixture-control.js +0 -35
- package/dist/foundation/resident-tabs/host-entry.js +0 -17
- package/dist/foundation/resident-tabs/index.d.ts +0 -15
- package/dist/foundation/resident-tabs/index.js +0 -10
- package/dist/foundation/resident-tabs/maintenance.d.ts +0 -39
- package/dist/foundation/resident-tabs/maintenance.js +0 -75
- package/dist/foundation/resident-tabs/progress-observation-schema.d.ts +0 -34
- package/dist/foundation/resident-tabs/progress-observation-schema.js +0 -1
- package/dist/foundation/resident-tabs/progress-observation.d.ts +0 -4
- package/dist/foundation/resident-tabs/progress-observation.js +0 -150
- package/dist/foundation/resident-tabs/prompt-journal.d.ts +0 -63
- package/dist/foundation/resident-tabs/prompt-journal.js +0 -213
- package/dist/foundation/resident-tabs/protocol.d.ts +0 -12
- package/dist/foundation/resident-tabs/protocol.js +0 -195
- package/dist/foundation/resident-tabs/recovery.d.ts +0 -26
- package/dist/foundation/resident-tabs/recovery.js +0 -205
- package/dist/foundation/resident-tabs/release-holds.d.ts +0 -28
- package/dist/foundation/resident-tabs/release-holds.js +0 -78
- package/dist/foundation/resident-tabs/routes.d.ts +0 -5
- package/dist/foundation/resident-tabs/routes.js +0 -5
- package/dist/foundation/resident-tabs/routing.d.ts +0 -11
- package/dist/foundation/resident-tabs/routing.js +0 -10
- package/dist/foundation/resident-tabs/runtime-control.d.ts +0 -38
- package/dist/foundation/resident-tabs/runtime-control.js +0 -74
- package/dist/foundation/resident-tabs/session-sync.d.ts +0 -14
- package/dist/foundation/resident-tabs/session-sync.js +0 -37
- package/dist/foundation/resident-tabs/settings.d.ts +0 -16
- package/dist/foundation/resident-tabs/settings.js +0 -60
- package/dist/foundation/resident-tabs/terminal-host-artifact.d.ts +0 -14
- package/dist/foundation/resident-tabs/terminal-host-artifact.js +0 -78
- package/dist/foundation/resident-tabs/zip-archive.d.ts +0 -9
- package/dist/foundation/resident-tabs/zip-archive.js +0 -56
- package/dist/foundation/storage/control-store.d.ts +0 -20
- package/dist/foundation/storage/control-store.js +0 -331
- package/dist/foundation/storage/index.d.ts +0 -1
- package/dist/foundation/storage/index.js +0 -1
- package/dist/foundation/supervision/index.d.ts +0 -3
- package/dist/foundation/supervision/index.js +0 -3
- package/dist/foundation/supervision/main.d.ts +0 -1
- package/dist/foundation/supervision/main.js +0 -86
- package/dist/foundation/supervision/paths.d.ts +0 -1
- package/dist/foundation/supervision/paths.js +0 -1
- package/dist/foundation/supervision/server.d.ts +0 -46
- package/dist/foundation/supervision/server.js +0 -611
- package/dist/integrations/pi/components/components.d.ts +0 -4
- package/dist/integrations/pi/components/components.js +0 -48
- package/dist/integrations/pi/components/conformance.d.ts +0 -18
- package/dist/integrations/pi/components/conformance.js +0 -70
- package/dist/integrations/pi/components/shell-components.d.ts +0 -7
- package/dist/integrations/pi/components/shell-components.js +0 -7
- package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +0 -33
- package/dist/integrations/pi/components/upstream/theme/theme-controller.js +0 -114
- package/dist/integrations/pi/engine/offline-settings-port.d.ts +0 -23
- package/dist/integrations/pi/engine/offline-settings-port.js +0 -54
- package/dist/native/darwin-arm64/manifest.json +0 -23
- package/dist/native/darwin-arm64/process-guardian.node +0 -0
- package/dist/native/darwin-arm64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10500
- package/dist/native/darwin-arm64/terminal-host.manifest.json +0 -46
- package/dist/native/darwin-arm64/terminal-host.node +0 -0
- package/dist/native/darwin-x64/manifest.json +0 -23
- package/dist/native/darwin-x64/process-guardian.node +0 -0
- package/dist/native/darwin-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10737
- package/dist/native/darwin-x64/terminal-host.manifest.json +0 -46
- package/dist/native/darwin-x64/terminal-host.node +0 -0
- package/dist/native/linux-x64/manifest.json +0 -23
- package/dist/native/linux-x64/process-guardian.node +0 -0
- package/dist/native/linux-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -11226
- package/dist/native/linux-x64/terminal-host.manifest.json +0 -46
- package/dist/native/linux-x64/terminal-host.node +0 -0
- package/dist/native/win32-x64/manifest.json +0 -23
- package/dist/native/win32-x64/process-guardian.node +0 -0
- package/dist/native/win32-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10757
- package/dist/native/win32-x64/terminal-host.manifest.json +0 -46
- package/dist/native/win32-x64/terminal-host.node +0 -0
- package/dist/ui/settings/migrations.d.ts +0 -19
- package/dist/ui/settings/migrations.js +0 -209
- package/dist/ui/settings/progress-palette.generated.d.ts +0 -139
- package/dist/ui/settings/progress-palette.generated.js +0 -139
- package/docs/architecture/evidence/resident-tabs/linux-x64.md +0 -37
- package/docs/architecture/evidence/resident-tabs/macos-arm64.md +0 -36
- package/docs/architecture/evidence/resident-tabs/macos-x64.md +0 -35
- package/docs/architecture/evidence/resident-tabs/windows-x64.md +0 -36
- package/docs/architecture/evidence/terminal-host-spike/manual-one-pane-terminal-host.md +0 -70
- package/docs/architecture/evidence/terminal-host-spike/manual-two-by-two-basic-terminal-host.md +0 -32
- package/docs/architecture/evidence/terminal-host-spike/milestone-baseline.json +0 -115
- package/docs/architecture/evidence/terminal-host-spike/owned-ui-foundation-prerequisite.json +0 -48
- package/docs/architecture/evidence/terminal-host-spike/terminal-host-provenance.json +0 -125
- package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-1.json +0 -56
- package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-3.json +0 -174
- package/docs/architecture/evidence/terminal-host-spike/terminal-spike-acceptance-record.json +0 -18
- package/docs/architecture/native-fixture-isolation.md +0 -23
- package/docs/architecture/process-guardian-provenance.md +0 -36
- package/docs/architecture/resident-tabs-requirements.md +0 -18
- package/docs/architecture/resident-tabs.md +0 -668
- package/docs/architecture/terminal-host-proof-gate.md +0 -34
- package/docs/architecture/terminal-host-provenance.md +0 -81
- package/docs/architecture/terminal-host-spike-evidence.md +0 -39
- package/docs/launch-recovery.md +0 -23
- package/docs/manual-launch-instance-acceptance.md +0 -43
- package/docs/manual-resident-tabs-acceptance.md +0 -51
- /package/dist/{cli/tabs-request.js → contracts/owned-ui/shell-components.js} +0 -0
- /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.d.ts +0 -0
- /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.js +0 -0
- /package/dist/{foundation/lifecycle/commands.js → contracts/presentation/terminal.js} +0 -0
- /package/dist/{foundation/resident-tabs/host-entry.d.ts → contracts/presentation/theme.js} +0 -0
|
@@ -1,19 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
readonly innerWidth: number;
|
|
4
|
-
readonly paddingX: number;
|
|
5
|
-
readonly contentWidth: number;
|
|
6
|
-
readonly layoutWidth: number;
|
|
7
|
-
}
|
|
8
|
-
export interface PiShellPromptInputBody {
|
|
9
|
-
readonly rows: readonly string[];
|
|
10
|
-
readonly topRule?: string | undefined;
|
|
11
|
-
readonly bottomRule?: string | undefined;
|
|
12
|
-
readonly after?: readonly string[];
|
|
13
|
-
readonly afterIndent?: number;
|
|
14
|
-
}
|
|
15
|
-
export interface PiShellPromptInputPresentation {
|
|
16
|
-
geometry(width: number, padding?: number): PiShellPromptInputGeometry;
|
|
17
|
-
styleRule(text: string): string;
|
|
18
|
-
render(width: number, body: (innerWidth: number) => PiShellPromptInputBody, ruled?: boolean, padding?: number): string[];
|
|
19
|
-
}
|
|
1
|
+
import type { OwnedUiShellPromptInputPresentation } from "../../../contracts/owned-ui/index.js";
|
|
2
|
+
export type PiShellPromptInputPresentation = OwnedUiShellPromptInputPresentation;
|
|
@@ -151,5 +151,6 @@ export declare const BUILTIN_THEME_RESOURCES: Readonly<{
|
|
|
151
151
|
};
|
|
152
152
|
};
|
|
153
153
|
}>;
|
|
154
|
-
|
|
154
|
+
type BuiltinThemeName = keyof typeof BUILTIN_THEME_RESOURCES;
|
|
155
155
|
export declare function isBuiltinThemeName(name: string): name is BuiltinThemeName;
|
|
156
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type OwnedUiShellEditorOptions } from "../../../contracts/owned-ui/index.js";
|
|
2
|
+
import { type PiShellEditorPort } from "./shell-shared-facade.js";
|
|
2
3
|
export declare const PINNED_PI_BUILTIN_SLASH_COMMANDS: ({
|
|
3
4
|
readonly name: "thinking";
|
|
4
5
|
readonly description: "Set thinking level";
|
|
@@ -20,4 +21,4 @@ export declare const OWNED_BUILTIN_SLASH_COMMANDS: ({
|
|
|
20
21
|
name: string;
|
|
21
22
|
description: string;
|
|
22
23
|
})[];
|
|
23
|
-
export declare function createPiShellEditor(options:
|
|
24
|
+
export declare function createPiShellEditor(options: OwnedUiShellEditorOptions): PiShellEditorPort;
|
|
@@ -5,8 +5,6 @@ import { OwnedEditorUxInterception, createPromptSelectionInterceptor, editorVisu
|
|
|
5
5
|
import { PINNED_PI_LAYOUT, getPiSelectListTheme, piTheme, renderPiListSelection, } from "./theme.js";
|
|
6
6
|
import { createPiKeybindingsHost, createTuiFacade, ensureTheme, isAutocompleteProvider, } from "./shell-shared-facade.js";
|
|
7
7
|
import { SKILLS_COMMAND_NAME, collapseSkillCommands, createSkillsTunnelProvider, } from "./skills-command.js";
|
|
8
|
-
/** The built-in commands resident A1 serves from its tab bar instead: utility tabs, and the tab rename for `/name`. */
|
|
9
|
-
const RESIDENT_UTILITY_TAB_COMMANDS = new Set(["settings", "changelog", "name"]);
|
|
10
8
|
/** A selected autocomplete row: its arrow/primary column, then the aligned description. */
|
|
11
9
|
const SELECTED_DESCRIBED_ROW = /^(→ .*?\S)(\s{2,}.*)$/u;
|
|
12
10
|
const INPUT_COUNTER_INSET = 3;
|
|
@@ -336,8 +334,7 @@ export function createPiShellEditor(options) {
|
|
|
336
334
|
};
|
|
337
335
|
}
|
|
338
336
|
function autocompleteCommandSetter(options, editor, state, enabled) {
|
|
339
|
-
const builtInCatalog =
|
|
340
|
-
.filter(command => !options.hideUtilityTabCommands || !RESIDENT_UTILITY_TAB_COMMANDS.has(command.name));
|
|
337
|
+
const builtInCatalog = options.keybindingProfile === "a1" ? OWNED_BUILTIN_SLASH_COMMANDS : PINNED_PI_BUILTIN_SLASH_COMMANDS;
|
|
341
338
|
return installed => {
|
|
342
339
|
if (!enabled) {
|
|
343
340
|
state.provider = emptyAutocompleteProvider();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import type { OwnedUiShellKeybindings } from "../../../contracts/owned-ui/index.js";
|
|
1
2
|
import type { OwnedUiSessionViewModel } from "../../../contracts/owned-ui/index.js";
|
|
2
|
-
import { type KeybindingsConfig } from "./upstream/adjacent/core/keybindings.js";
|
|
3
3
|
import { type PiShellViewComponentPort, type PiShellStatusPort, type PiShellProgressStatusPresentation, type PiShellQueuedInputPort, type PiShellHeaderPort, type PiShellResourceEntry, type PiShellLoadedResourcesPort, type PiShellHeaderOptions, type PiShellEditorOptions } from "./shell-shared-facade.js";
|
|
4
4
|
export declare function createPiShellHeader(options?: PiShellHeaderOptions): PiShellHeaderPort;
|
|
5
5
|
export declare function createPiShellLoadedResources(resources: readonly PiShellResourceEntry[], initialExpanded?: boolean): PiShellLoadedResourcesPort;
|
|
6
6
|
export declare function createPiShellStatus(view: OwnedUiSessionViewModel, progressStatus: PiShellProgressStatusPresentation, runtime?: Pick<PiShellEditorOptions, "getColumns" | "getRows" | "requestRender">): PiShellStatusPort;
|
|
7
|
-
export declare function createPiShellFooter(view: OwnedUiSessionViewModel, cwd: string, profile?: "pi" | "a1", showLevel?: () => boolean
|
|
8
|
-
export declare function createPiQueuedInputStatus(submissions: readonly string[], presentation?: "pinned" | "custom-viewport", getKeybindings?: () =>
|
|
7
|
+
export declare function createPiShellFooter(view: OwnedUiSessionViewModel, cwd: string, profile?: "pi" | "a1", showLevel?: () => boolean): PiShellViewComponentPort;
|
|
8
|
+
export declare function createPiQueuedInputStatus(submissions: readonly string[], presentation?: "pinned" | "custom-viewport", getKeybindings?: () => OwnedUiShellKeybindings): PiShellQueuedInputPort;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { piKeybindings } from "./shell-shared-facade.js";
|
|
1
2
|
import { rawKeyHint, VERSION } from "../startup-public.js";
|
|
2
3
|
import { Spacer, Text, } from "@earendil-works/pi-tui";
|
|
3
4
|
import { SessionFooter } from "./upstream/components/session-footer.js";
|
|
@@ -136,9 +137,9 @@ export function createPiShellStatus(view, progressStatus, runtime) {
|
|
|
136
137
|
},
|
|
137
138
|
};
|
|
138
139
|
}
|
|
139
|
-
export function createPiShellFooter(view, cwd, profile = "pi", showLevel = () => true
|
|
140
|
+
export function createPiShellFooter(view, cwd, profile = "pi", showLevel = () => true) {
|
|
140
141
|
ensureTheme();
|
|
141
|
-
const footer = new SessionFooter(() => view, cwd, profile, showLevel
|
|
142
|
+
const footer = new SessionFooter(() => view, cwd, profile, showLevel);
|
|
142
143
|
return {
|
|
143
144
|
render: width => footer.render(width),
|
|
144
145
|
invalidate: () => footer.invalidate(),
|
|
@@ -263,7 +264,7 @@ function queuedInputText(submissions, presentation, bindings) {
|
|
|
263
264
|
return submissions.map(submission => theme.fg("muted", `Steering: ${submission.replaceAll("\n", " ⏎ ")}`)).join("\n");
|
|
264
265
|
}
|
|
265
266
|
const messages = submissions.map(submission => theme.fg("dim", `Steering: ${submission.replaceAll("\n", " ⏎ ")}`));
|
|
266
|
-
const keys = KeybindingsManager.fromOwnedBindings(bindings).getKeys("app.message.dequeue");
|
|
267
|
+
const keys = KeybindingsManager.fromOwnedBindings(piKeybindings(bindings)).getKeys("app.message.dequeue");
|
|
267
268
|
const label = keys.length === 0 ? "Unbound" : keys.map(displayKeybinding).join("/");
|
|
268
269
|
const dequeueHint = theme.fg("dim", `↳ ${label} to edit all queued messages`);
|
|
269
270
|
// Compatibility: the custom viewport matches Pi's interactive queue presentation while the
|
|
@@ -290,7 +291,7 @@ function compactHeaderText() {
|
|
|
290
291
|
return `${headerWithLogo(instructions)}\n${compactOnboarding}\n\n${onboarding}`;
|
|
291
292
|
}
|
|
292
293
|
function expandedHeaderText(bindings) {
|
|
293
|
-
const keys = bindings === undefined ? undefined : KeybindingsManager.fromOwnedBindings(bindings);
|
|
294
|
+
const keys = bindings === undefined ? undefined : KeybindingsManager.fromOwnedBindings(piKeybindings(bindings));
|
|
294
295
|
const instructions = [
|
|
295
296
|
rawKeyHint("escape", "to interrupt"),
|
|
296
297
|
rawKeyHint("ctrl+c", "to clear"),
|
|
@@ -6,7 +6,7 @@ import { hotkeysMarkdown } from "./shell-presenters-info.js";
|
|
|
6
6
|
export function renderPiShellHotkeySections(presentation, width) {
|
|
7
7
|
ensureTheme();
|
|
8
8
|
const shortcuts = presentation.getShortcuts ?? (() => []);
|
|
9
|
-
const markdown = hotkeysMarkdown(presentation.bindings, shortcuts, presentation.profile ?? "pi"
|
|
9
|
+
const markdown = hotkeysMarkdown(presentation.bindings, shortcuts, presentation.profile ?? "pi");
|
|
10
10
|
const sections = [];
|
|
11
11
|
for (const line of markdown.split("\n")) {
|
|
12
12
|
const heading = /^\*\*(.+)\*\*$/.exec(line)?.[1];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { OwnedUiShellKeybindings } from "../../../contracts/owned-ui/index.js";
|
|
2
2
|
import { type PiShellComponentPort, type PiShellExtensionRendererResolver } from "./shell-shared-facade.js";
|
|
3
3
|
export interface PiShellSessionInfoPresentation {
|
|
4
4
|
readonly sessionName?: string;
|
|
@@ -31,7 +31,7 @@ export interface PiShellSessionInfoPresentation {
|
|
|
31
31
|
}[];
|
|
32
32
|
readonly cacheWarming: PiShellCacheWarmingPresentation;
|
|
33
33
|
}
|
|
34
|
-
|
|
34
|
+
interface PiShellCacheWarmingPresentation {
|
|
35
35
|
readonly mode: string;
|
|
36
36
|
readonly status?: {
|
|
37
37
|
readonly state: "inactive" | "scheduled" | "refreshing";
|
|
@@ -65,17 +65,14 @@ export declare function createPiShellChangelog(markdown: string): PiShellCompone
|
|
|
65
65
|
export declare function renderPiShellChangelogLines(markdown: string, width: number): readonly string[];
|
|
66
66
|
/** What the hotkeys presenters render: the editor bindings and the extension shortcuts declared over them. */
|
|
67
67
|
export interface PiShellHotkeysPresentation {
|
|
68
|
-
readonly bindings?:
|
|
68
|
+
readonly bindings?: OwnedUiShellKeybindings;
|
|
69
69
|
readonly getShortcuts?: NonNullable<PiShellExtensionRendererResolver["getShortcuts"]>;
|
|
70
70
|
readonly profile?: "pi" | "a1";
|
|
71
|
-
readonly residentTabs?: boolean;
|
|
72
71
|
}
|
|
73
|
-
export declare function createPiShellHotkeys(bindings?:
|
|
72
|
+
export declare function createPiShellHotkeys(bindings?: OwnedUiShellKeybindings, getShortcuts?: NonNullable<PiShellExtensionRendererResolver["getShortcuts"]>, profile?: "pi" | "a1"): PiShellComponentPort;
|
|
74
73
|
/** The keyboard-shortcut document rows the feed presenter shows, without its spacer, borders, and heading. */
|
|
75
74
|
export declare function renderPiShellHotkeysLines(presentation: PiShellHotkeysPresentation, width: number): readonly string[];
|
|
76
|
-
|
|
77
|
-
export declare const TAB_HOTKEYS: readonly (readonly [string, string | null, string])[];
|
|
78
|
-
export declare function hotkeysMarkdown(bindings: KeybindingsConfig | undefined, getShortcuts: NonNullable<PiShellExtensionRendererResolver["getShortcuts"]>, profile: "pi" | "a1", residentTabs?: boolean): string;
|
|
75
|
+
export declare function hotkeysMarkdown(bindings: OwnedUiShellKeybindings | undefined, getShortcuts: NonNullable<PiShellExtensionRendererResolver["getShortcuts"]>, profile: "pi" | "a1"): string;
|
|
79
76
|
/**
|
|
80
77
|
* Pinned Pi's `showPackageUpdateNotification` banner: warning-coloured dynamic
|
|
81
78
|
* borders around a bold warning title, the muted update instruction with the
|
|
@@ -112,3 +109,4 @@ export declare function renderPiShellReleaseUpdateBanner(release: {
|
|
|
112
109
|
readonly command: string;
|
|
113
110
|
readonly changelogUrl: string | null;
|
|
114
111
|
}, width: number, closeHovered: boolean): PiShellReleaseUpdateBanner;
|
|
112
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { piKeybindings } from "./shell-shared-facade.js";
|
|
1
2
|
import { DynamicBorder } from "../startup-public.js";
|
|
2
3
|
import { Container, getCapabilities, hyperlink, Markdown, Spacer, Text, visibleWidth } from "@earendil-works/pi-tui";
|
|
3
4
|
import { PRODUCT_TEXT } from "../../../product-identity.js";
|
|
4
|
-
import { projectResidentTabShortcuts, RESIDENT_TAB_GLOBAL_SHORTCUTS } from "../../../features/resident-tab/index.js";
|
|
5
5
|
import { KeybindingsManager } from "./upstream/adjacent/core/keybindings.js";
|
|
6
6
|
import { getPiHotkeysMarkdownTheme, getPiMarkdownTheme, paintPiBorder, PINNED_PI_LAYOUT, piTheme } from "./theme.js";
|
|
7
7
|
import { componentPort, ensureTheme, formatSessionTokens } from "./shell-shared-facade.js";
|
|
@@ -148,9 +148,9 @@ function shortcutDisplay(key) {
|
|
|
148
148
|
return label.charAt(0).toUpperCase() + label.slice(1);
|
|
149
149
|
}).join("+")).join("/");
|
|
150
150
|
}
|
|
151
|
-
export function createPiShellHotkeys(bindings, getShortcuts = () => [], profile = "pi"
|
|
151
|
+
export function createPiShellHotkeys(bindings, getShortcuts = () => [], profile = "pi") {
|
|
152
152
|
ensureTheme();
|
|
153
|
-
const markdown = hotkeysMarkdown(bindings, getShortcuts, profile
|
|
153
|
+
const markdown = hotkeysMarkdown(bindings, getShortcuts, profile);
|
|
154
154
|
const container = new Container();
|
|
155
155
|
container.addChild(new Spacer(1));
|
|
156
156
|
container.addChild(new DynamicBorder(paintPiBorder));
|
|
@@ -163,15 +163,13 @@ export function createPiShellHotkeys(bindings, getShortcuts = () => [], profile
|
|
|
163
163
|
/** The keyboard-shortcut document rows the feed presenter shows, without its spacer, borders, and heading. */
|
|
164
164
|
export function renderPiShellHotkeysLines(presentation, width) {
|
|
165
165
|
ensureTheme();
|
|
166
|
-
return hotkeysMarkdownComponent(hotkeysMarkdown(presentation.bindings, presentation.getShortcuts ?? (() => []), presentation.profile ?? "pi"
|
|
166
|
+
return hotkeysMarkdownComponent(hotkeysMarkdown(presentation.bindings, presentation.getShortcuts ?? (() => []), presentation.profile ?? "pi")).render(width);
|
|
167
167
|
}
|
|
168
168
|
function hotkeysMarkdownComponent(markdown) {
|
|
169
169
|
return new Markdown(markdown, 1, 1, getPiHotkeysMarkdownTheme());
|
|
170
170
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
export function hotkeysMarkdown(bindings, getShortcuts, profile, residentTabs = false) {
|
|
174
|
-
const keys = profile === "a1" ? KeybindingsManager.fromOwnedBindings(bindings) : new KeybindingsManager(bindings);
|
|
171
|
+
export function hotkeysMarkdown(bindings, getShortcuts, profile) {
|
|
172
|
+
const keys = profile === "a1" ? KeybindingsManager.fromOwnedBindings(piKeybindings(bindings)) : new KeybindingsManager(piKeybindings(bindings));
|
|
175
173
|
// Compatibility: the owned viewport consumes these physical chords before editor actions.
|
|
176
174
|
const display = (action) => keys.getKeys(action)
|
|
177
175
|
.filter(key => profile !== "a1" || (key !== "ctrl+home" && key !== "ctrl+end"))
|
|
@@ -183,17 +181,6 @@ export function hotkeysMarkdown(bindings, getShortcuts, profile, residentTabs =
|
|
|
183
181
|
: `\`${label}\``;
|
|
184
182
|
}).join(" / ")} | ${description} |`;
|
|
185
183
|
let markdown = ["**Navigation**", "| Key | Action |", "|-----|--------|", row(["tui.editor.cursorUp", "tui.editor.cursorDown", "tui.editor.cursorLeft", "tui.editor.cursorRight"], "Move cursor / browse history"), row(["tui.editor.cursorWordLeft", "tui.editor.cursorWordRight"], "Move by word"), row(["tui.editor.cursorLineStart"], profile === "a1" ? "Start of prompt line" : "Start of line"), row(["tui.editor.cursorLineEnd"], profile === "a1" ? "End of prompt line" : "End of line"), ...(profile === "a1" ? ["| `Ctrl+Home` | Start of content |", "| `Ctrl+End` | End of content / follow output |"] : []), row(["tui.editor.jumpForward"], "Jump forward to character"), row(["tui.editor.jumpBackward"], "Jump backward to character"), row(["tui.editor.pageUp", "tui.editor.pageDown"], "Scroll by page"), "", "**Editing**", "| Key | Action |", "|-----|--------|", row(["tui.input.submit"], "Send message"), row(["tui.input.newLine"], `New line${process.platform === "win32" ? " (Ctrl+Enter on Windows Terminal)" : ""}`), row(["tui.editor.deleteWordBackward"], "Delete word backwards"), row(["tui.editor.deleteWordForward"], "Delete word forwards"), row(["tui.editor.deleteToLineStart"], "Delete to start of line"), row(["tui.editor.deleteToLineEnd"], "Delete to end of line"), row(["tui.editor.yank"], "Paste the most-recently-deleted text"), row(["tui.editor.yankPop"], "Cycle through the deleted text after pasting"), row(["tui.editor.undo"], "Undo"), "", "**Other**", "| Key | Action |", "|-----|--------|", row(["tui.input.tab"], "Path completion / accept autocomplete"), row(["app.interrupt"], "Cancel autocomplete / abort streaming"), row(["app.clear"], "Clear editor (first) / exit (second)"), row(["app.exit"], "Exit (when editor is empty)"), row(["app.suspend"], "Suspend to background"), row(["app.thinking.cycle"], "Cycle thinking level"), row(["app.model.cycleForward", "app.model.cycleBackward"], "Cycle models"), row(["app.model.select"], profile === "a1" ? "Open the Models dialog" : "Open model selector"), row(["app.tools.expand"], "Toggle tool output expansion"), row(["app.thinking.toggle"], "Toggle thinking block visibility"), row(["app.editor.external"], "Edit message in external editor"), row(["app.message.copy"], "Copy selection or last assistant message"), row(["app.message.followUp"], "Queue follow-up message"), row(["app.message.dequeue"], "Restore queued messages"), row(["app.clipboard.pasteImage"], profile === "a1" ? "Paste image or text from clipboard" : "Paste files on macOS, images, or text from clipboard"), "| `/` | Slash commands |", "| `!` | Run bash command |", "| `!!` | Run bash command (excluded from context) |", ...(profile === "a1" ? ["", "**Models dialog**", "| Key | Action |", "|-----|--------|", "| `Space` | Toggle the selected model in the cycling scope |", "| `Tab` | Switch the all/scoped filter |", row(["app.models.save"], "Save the scope to settings"), row(["app.models.enableAll"], "Scope every listed model"), row(["app.models.clearAll"], "Clear the listed models from the scope"), row(["app.models.toggleProvider"], "Toggle the selected model's provider"), row(["app.models.reorderUp", "app.models.reorderDown"], "Reorder the cycling scope")] : [])].join("\n");
|
|
186
|
-
if (profile === "a1" && residentTabs) {
|
|
187
|
-
// Invariant: the Tabs section shows the same projection the resident shell dispatches: the
|
|
188
|
-
// effective A1 declarations keep their keys and earlier tab declarations keep duplicates.
|
|
189
|
-
const projection = projectResidentTabShortcuts({ configured: bindings, reserved: keys.getEffectiveConfig() });
|
|
190
|
-
markdown += "\n\n**Tabs**\n| Key | Action |\n|-----|--------|\n";
|
|
191
|
-
markdown += RESIDENT_TAB_GLOBAL_SHORTCUTS.map(shortcut => {
|
|
192
|
-
const assigned = projection.assignments[shortcut.id];
|
|
193
|
-
const label = assigned === null ? "Unbound" : `\`${shortcutDisplay(assigned)}\``;
|
|
194
|
-
return `| ${label} | ${shortcut.description} |`;
|
|
195
|
-
}).join("\n");
|
|
196
|
-
}
|
|
197
184
|
const shortcuts = getShortcuts(bindings ?? keys.getEffectiveConfig());
|
|
198
185
|
if (shortcuts.length > 0) {
|
|
199
186
|
markdown += "\n\n**Extensions**\n| Key | Action |\n|-----|--------|\n";
|
|
@@ -2,7 +2,7 @@ import { AssistantMessageComponent } from "../startup-public.js";
|
|
|
2
2
|
import { type MermaidRenderingMode } from "./upstream/components/mermaid.js";
|
|
3
3
|
import type { OwnedUiTranscriptBlock } from "../../../contracts/owned-ui/index.js";
|
|
4
4
|
import { type PiShellSubmittedPromptComposer } from "./submitted-prompt-adapter.js";
|
|
5
|
-
export { isPiPromptStyleCompaction,
|
|
5
|
+
export { isPiPromptStyleCompaction, type PiShellSubmittedPromptComposer } from "./submitted-prompt-adapter.js";
|
|
6
6
|
import { type PiShellExtensionRendererResolver, type PiShellImageAssetResolver, type PiShellTranscriptComponentPort } from "./shell-shared-facade.js";
|
|
7
7
|
export declare function createPiShellTranscriptComponent(initial: OwnedUiTranscriptBlock, cwd: string, extensions?: PiShellExtensionRendererResolver, submittedPrompt?: PiShellSubmittedPromptComposer, initialOutputPad?: 0 | 1, initialHideThinkingBlock?: boolean, initialMermaidRenderingMode?: MermaidRenderingMode, initialShowImages?: boolean, initialImageWidthCells?: number, imageAssets?: PiShellImageAssetResolver, presentation?: {
|
|
8
8
|
readonly getColumns: () => number;
|
|
@@ -6,7 +6,7 @@ import { createTranscriptImageResolver } from "./transcript-image-resolver.js";
|
|
|
6
6
|
import { createMermaidMarkdownTransformer } from "./upstream/components/mermaid.js";
|
|
7
7
|
import { Container, getCapabilities, Image, Spacer, Text, } from "@earendil-works/pi-tui";
|
|
8
8
|
import { createPiSubmittedPromptComponent, isPiPromptStyleCompaction, } from "./submitted-prompt-adapter.js";
|
|
9
|
-
export { isPiPromptStyleCompaction
|
|
9
|
+
export { isPiPromptStyleCompaction } from "./submitted-prompt-adapter.js";
|
|
10
10
|
import { getPiMarkdownTheme, PINNED_PI_LAYOUT, piTheme, } from "./theme.js";
|
|
11
11
|
import { createTuiFacade, ensureTheme, isRecord, } from "./shell-shared-facade.js";
|
|
12
12
|
export function createPiShellTranscriptComponent(initial, cwd, extensions, submittedPrompt, initialOutputPad = PINNED_PI_LAYOUT.outputPad, initialHideThinkingBlock = false, initialMermaidRenderingMode = "off", initialShowImages = true, initialImageWidthCells = 80, imageAssets, presentation) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type PiShellSessionInfoPresentation } from "./shell-presenters-info.js";
|
|
2
|
-
|
|
2
|
+
interface PiShellSessionInfoReferenceDocument {
|
|
3
3
|
readonly preamble: readonly string[];
|
|
4
4
|
readonly sections: readonly {
|
|
5
5
|
readonly title: string;
|
|
@@ -8,3 +8,4 @@ export interface PiShellSessionInfoReferenceDocument {
|
|
|
8
8
|
}
|
|
9
9
|
/** Renders the pinned report values while leaving group names semantic for the owned screen. */
|
|
10
10
|
export declare function renderPiShellSessionInfoReferenceDocument(presentation: PiShellSessionInfoPresentation, width: number): PiShellSessionInfoReferenceDocument;
|
|
11
|
+
export {};
|
|
@@ -1,244 +1,48 @@
|
|
|
1
1
|
import { visibleWidth, type AutocompleteProvider, type Component, type KeybindingsConfig, type TUI } from "@earendil-works/pi-tui";
|
|
2
|
-
import type { OwnedUiImageAttachment, OwnedUiSessionViewModel, OwnedUiThinkingLevel, OwnedUiTranscriptBlock, SuggestionDecision } from "../../../contracts/owned-ui/index.js";
|
|
3
2
|
import type { HistoryEditorConstructor } from "./history-editor-loader.js";
|
|
4
|
-
import type {
|
|
5
|
-
import type { EditorRecallPort } from "./editor-interaction.js";
|
|
6
|
-
import type { PresentationComponentPort } from "../../../contracts/presentation/index.js";
|
|
3
|
+
import type { OwnedUiShellAutocompleteCommand, OwnedUiShellClipboardContent, OwnedUiShellComponentPort, OwnedUiShellEditorBodyGeometry, OwnedUiShellEditorOptions, OwnedUiShellKeybindings, OwnedUiShellEditorPointerEvent, OwnedUiShellEditorPort, OwnedUiShellEditorTextRange, OwnedUiShellExtensionRendererResolver, OwnedUiShellHeaderOptions, OwnedUiShellHeaderPort, OwnedUiShellImageAssetResolver, OwnedUiShellLoadedResourcesPort, OwnedUiShellPasteReservation, OwnedUiShellProgressPresentationMode, OwnedUiShellProgressStatusPresentation, OwnedUiShellQueuedInputPort, OwnedUiShellResourceEntry, OwnedUiShellResourceSection, OwnedUiShellSelectorOption, OwnedUiShellSelectorOptions, OwnedUiShellStartupNotice, OwnedUiShellStatusPlacement, OwnedUiShellStatusPort, OwnedUiShellTranscriptComponentPort, OwnedUiShellViewComponentPort } from "../../../contracts/owned-ui/index.js";
|
|
7
4
|
import { KeybindingsManager } from "./upstream/adjacent/core/keybindings.js";
|
|
8
5
|
/** Terminal-cell width authority used by Pi-rendered component rows. */
|
|
9
6
|
export declare const piShellVisibleWidth: typeof visibleWidth;
|
|
10
7
|
export declare const piShellTruncateToWidth: (text: string, width: number) => string;
|
|
11
|
-
export declare const INSTALLED_UPDATE_STATUS_TEXT = "Update installed, restart to update";
|
|
12
8
|
/** Shared green restart notice for the pinned status and bare-A1 prompt overlay. */
|
|
13
9
|
export declare function renderPiShellInstalledUpdateStatus(width: number): string;
|
|
14
10
|
/** A clickable URL in pinned Pi's grammar: an OSC 8 link where the terminal supports one, the plain URL otherwise. */
|
|
15
11
|
export declare const piShellHyperlink: (url: string, text?: string) => string;
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
export type
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
export
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
export
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
export
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
/** Restores the shared manager if anything replaced pi-tui's registry; a no-op when it is already active. */
|
|
49
|
-
activateKeybindings(): void;
|
|
50
|
-
keybindingConfig(): KeybindingsConfig;
|
|
51
|
-
reloadKeybindings(): void;
|
|
52
|
-
/** Uses Pi's terminal decoder rather than assuming one terminal escape spelling. */
|
|
53
|
-
matchesTerminalKey(data: string, key: "home" | "end" | "pageUp" | "pageDown" | "ctrl+home" | "ctrl+end" | "alt+home" | "ctrl+v"): boolean;
|
|
54
|
-
getText(): string;
|
|
55
|
-
setText(text: string): void;
|
|
56
|
-
insertText(text: string): void;
|
|
57
|
-
addToHistory(text: string): void;
|
|
58
|
-
setSubmitEnabled(enabled: boolean): void;
|
|
59
|
-
setSubmitHandler(handler: (text: string) => void): void;
|
|
60
|
-
setInterruptHandler(handler: () => void): void;
|
|
61
|
-
setAutocompleteCommands(commands: readonly PiShellAutocompleteCommand[]): void;
|
|
62
|
-
setPaddingX(padding: number): void;
|
|
63
|
-
setAutocompleteMaxVisible(maxVisible: number): void;
|
|
64
|
-
addAutocompleteProvider(factory: unknown): void;
|
|
65
|
-
setThinkingLevel(level: OwnedUiThinkingLevel): void;
|
|
66
|
-
setPromptSuggestion(text: string | null): void;
|
|
67
|
-
canPresentPromptSuggestion(): boolean;
|
|
68
|
-
promptSuggestionBlockReason?(): SuggestionDecision;
|
|
69
|
-
hasSelection(): boolean;
|
|
70
|
-
/** Exact expanded semantic editor selection without mutating or collapsing it. */
|
|
71
|
-
selectedText?(): string | undefined;
|
|
72
|
-
ownsPointer(): boolean;
|
|
73
|
-
handlePointer(event: PiShellEditorPointerEvent): boolean;
|
|
74
|
-
pasteClipboard(): boolean;
|
|
75
|
-
cancelPendingPastes?(): void;
|
|
76
|
-
}
|
|
77
|
-
export interface PiShellAutocompleteCommand {
|
|
78
|
-
readonly name: string;
|
|
79
|
-
readonly description?: string;
|
|
80
|
-
readonly argumentHint?: string;
|
|
81
|
-
readonly argumentOptions?: readonly PiShellSelectorOption[];
|
|
82
|
-
/** Built-in entries decorate the active profile's catalog; everything else is a discovered resource. */
|
|
83
|
-
readonly source?: "builtin" | "prompt" | "skill" | "extension";
|
|
84
|
-
}
|
|
85
|
-
export interface PiShellViewComponentPort extends PiShellComponentPort {
|
|
86
|
-
update(view: OwnedUiSessionViewModel): void;
|
|
87
|
-
}
|
|
88
|
-
export type PiShellStatusPlacement = "live" | "dock" | "hidden";
|
|
89
|
-
export type PiShellProgressPresentationMode = "pinned" | "custom-viewport";
|
|
90
|
-
export interface PiShellProgressStatusPresentation {
|
|
91
|
-
readonly text: (message: string, mode: PiShellProgressPresentationMode) => string;
|
|
92
|
-
readonly frame: (message: string, phase: number, styles: {
|
|
93
|
-
readonly muted: (text: string) => string;
|
|
94
|
-
readonly highlight: (text: string) => string;
|
|
95
|
-
}) => string;
|
|
96
|
-
}
|
|
97
|
-
export interface PiShellStatusPort extends PiShellViewComponentPort {
|
|
98
|
-
/** `active` owns a live operation before the engine lifecycle itself becomes busy. */
|
|
99
|
-
setWorkingOverride(message: string | undefined, active?: boolean): void;
|
|
100
|
-
setOutputPad(padding: 0 | 1): void;
|
|
101
|
-
/** Bare A1 shows engine-measured progress beside the working word; the pinned route keeps the bare word. */
|
|
102
|
-
setProgressPresentation(presentation: PiShellProgressPresentationMode): void;
|
|
103
|
-
/** Semantic row placement; callers must not inspect rendered text. */
|
|
104
|
-
placement(): PiShellStatusPlacement;
|
|
105
|
-
renderDock(width: number): readonly string[];
|
|
106
|
-
renderLive(width: number): readonly string[];
|
|
107
|
-
}
|
|
108
|
-
export interface PiShellQueuedInputPort extends PiShellComponentPort {
|
|
109
|
-
update(submissions: readonly string[]): void;
|
|
110
|
-
}
|
|
111
|
-
export interface PiShellHeaderPort extends PiShellComponentPort {
|
|
112
|
-
readonly expanded: boolean;
|
|
113
|
-
setExpanded(expanded: boolean): void;
|
|
114
|
-
}
|
|
115
|
-
export type PiShellResourceSection = "Context" | "Skills" | "Prompts" | "Extensions" | "Themes";
|
|
116
|
-
export interface PiShellResourceEntry {
|
|
117
|
-
readonly section: PiShellResourceSection;
|
|
118
|
-
readonly label: string;
|
|
119
|
-
readonly sourcePath: string | null;
|
|
120
|
-
readonly diagnostic?: string | null;
|
|
121
|
-
}
|
|
122
|
-
export interface PiShellLoadedResourcesPort extends PiShellComponentPort {
|
|
123
|
-
setExpanded(expanded: boolean): void;
|
|
124
|
-
}
|
|
125
|
-
export interface PiShellImageAssetResolver {
|
|
126
|
-
resolve(assetId: string): OwnedUiImageAttachment | null;
|
|
127
|
-
}
|
|
128
|
-
export interface PiShellExtensionRendererResolver {
|
|
129
|
-
getMessageRenderer(customType: string): unknown;
|
|
130
|
-
getToolRenderers(toolName: string): unknown;
|
|
131
|
-
getShortcuts?(bindings: KeybindingsConfig): readonly {
|
|
132
|
-
readonly key: string;
|
|
133
|
-
readonly description: string;
|
|
134
|
-
}[];
|
|
135
|
-
}
|
|
136
|
-
export interface PiShellTranscriptComponentPort extends PiShellComponentPort {
|
|
137
|
-
readonly id: string;
|
|
138
|
-
readonly revision: number;
|
|
139
|
-
readonly presentationRevision?: number;
|
|
140
|
-
update(block: OwnedUiTranscriptBlock): void;
|
|
141
|
-
setExpanded(expanded: boolean): void;
|
|
142
|
-
setOutputPad(padding: 0 | 1): void;
|
|
143
|
-
setHideThinkingBlock(hidden: boolean): void;
|
|
144
|
-
setMermaidRenderingMode(mode: "off" | "final" | "streaming"): void;
|
|
145
|
-
setImagePresentation(showImages: boolean, imageWidthCells: number): void;
|
|
146
|
-
}
|
|
147
|
-
export interface PiShellStartupNotice {
|
|
148
|
-
readonly kind: "info" | "warning" | "error";
|
|
149
|
-
readonly message: string;
|
|
150
|
-
}
|
|
151
|
-
export interface PiShellHeaderOptions {
|
|
152
|
-
readonly getKeybindings?: () => KeybindingsConfig;
|
|
153
|
-
readonly quiet?: boolean;
|
|
154
|
-
readonly expanded?: boolean;
|
|
155
|
-
readonly notices?: readonly PiShellStartupNotice[];
|
|
156
|
-
readonly resources?: readonly PiShellResourceEntry[];
|
|
157
|
-
}
|
|
158
|
-
/** An owned paste reserves its edit immediately and acknowledges completion only after insertion. */
|
|
159
|
-
export interface PiShellPasteReservation {
|
|
160
|
-
readonly marker: string;
|
|
161
|
-
readonly result: Promise<string>;
|
|
162
|
-
complete?(): void;
|
|
163
|
-
isCurrent?(): boolean;
|
|
164
|
-
}
|
|
165
|
-
export interface PiShellEditorOptions {
|
|
166
|
-
readonly persistentHistory?: boolean;
|
|
167
|
-
/** Configures the shared interactive input for a caller narrower than the agent prompt. */
|
|
168
|
-
readonly inputCapabilities?: {
|
|
169
|
-
readonly singleLine?: boolean;
|
|
170
|
-
readonly paste?: boolean;
|
|
171
|
-
readonly autocomplete?: boolean;
|
|
172
|
-
readonly placeholder?: string;
|
|
173
|
-
};
|
|
12
|
+
export type PiShellComponentPort = OwnedUiShellComponentPort;
|
|
13
|
+
export type PiShellClipboardContent = OwnedUiShellClipboardContent;
|
|
14
|
+
export type PiShellEditorTextRange = OwnedUiShellEditorTextRange;
|
|
15
|
+
export type PiShellEditorPointerEvent = OwnedUiShellEditorPointerEvent;
|
|
16
|
+
export type PiShellEditorBodyGeometry = OwnedUiShellEditorBodyGeometry;
|
|
17
|
+
export type PiShellEditorPort = OwnedUiShellEditorPort;
|
|
18
|
+
export type PiShellAutocompleteCommand = OwnedUiShellAutocompleteCommand;
|
|
19
|
+
export type PiShellViewComponentPort = OwnedUiShellViewComponentPort;
|
|
20
|
+
export type PiShellStatusPlacement = OwnedUiShellStatusPlacement;
|
|
21
|
+
export type PiShellProgressPresentationMode = OwnedUiShellProgressPresentationMode;
|
|
22
|
+
export type PiShellProgressStatusPresentation = OwnedUiShellProgressStatusPresentation;
|
|
23
|
+
export type PiShellStatusPort = OwnedUiShellStatusPort;
|
|
24
|
+
export type PiShellQueuedInputPort = OwnedUiShellQueuedInputPort;
|
|
25
|
+
export type PiShellHeaderPort = OwnedUiShellHeaderPort;
|
|
26
|
+
export type PiShellResourceSection = OwnedUiShellResourceSection;
|
|
27
|
+
export type PiShellResourceEntry = OwnedUiShellResourceEntry;
|
|
28
|
+
export type PiShellLoadedResourcesPort = OwnedUiShellLoadedResourcesPort;
|
|
29
|
+
export type PiShellImageAssetResolver = OwnedUiShellImageAssetResolver;
|
|
30
|
+
export type PiShellExtensionRendererResolver = OwnedUiShellExtensionRendererResolver;
|
|
31
|
+
export type PiShellTranscriptComponentPort = OwnedUiShellTranscriptComponentPort;
|
|
32
|
+
export type PiShellStartupNotice = OwnedUiShellStartupNotice;
|
|
33
|
+
export type PiShellHeaderOptions = OwnedUiShellHeaderOptions;
|
|
34
|
+
export type PiShellPasteReservation = OwnedUiShellPasteReservation;
|
|
35
|
+
export type PiShellSelectorOption = OwnedUiShellSelectorOption;
|
|
36
|
+
export type PiShellSelectorOptions = OwnedUiShellSelectorOptions;
|
|
37
|
+
/**
|
|
38
|
+
* Restores Pi's keybinding type to bindings the shell carried through the neutral contract. They were read from
|
|
39
|
+
* Pi's keybinding manager in the first place, so the narrowing loses nothing.
|
|
40
|
+
*/
|
|
41
|
+
export declare function piKeybindings(bindings: OwnedUiShellKeybindings | undefined): KeybindingsConfig | undefined;
|
|
42
|
+
/** The editor factory's options with the opaque history editor and keybindings narrowed to their Pi types. */
|
|
43
|
+
export interface PiShellEditorOptions extends Omit<OwnedUiShellEditorOptions, "historyEditor" | "keybindings"> {
|
|
174
44
|
readonly historyEditor?: HistoryEditorConstructor;
|
|
175
|
-
/** Bare A1 adds ergonomic aliases while comparison profiles retain Pi defaults. */
|
|
176
|
-
readonly keybindingProfile?: "pi" | "a1";
|
|
177
|
-
/** Resident Agents expose Settings and the changelog as utility tabs instead of slash commands. */
|
|
178
|
-
readonly hideUtilityTabCommands?: boolean;
|
|
179
|
-
/** The process's shared keybindings; its profile must match `keybindingProfile`. */
|
|
180
45
|
readonly keybindings?: PiKeybindingsHost;
|
|
181
|
-
readonly getColumns: () => number;
|
|
182
|
-
readonly getRows: () => number;
|
|
183
|
-
readonly requestRender: () => void;
|
|
184
|
-
readonly onSubmit: (text: string) => void;
|
|
185
|
-
readonly onChange?: (text: string) => void;
|
|
186
|
-
readonly onInterrupt?: () => void;
|
|
187
|
-
readonly onClear?: () => void;
|
|
188
|
-
readonly onExit?: () => void;
|
|
189
|
-
readonly onSuspend?: () => void;
|
|
190
|
-
readonly onExternalEditor?: () => void;
|
|
191
|
-
readonly onPasteImage?: () => void;
|
|
192
|
-
readonly onExtensionShortcut?: (data: string) => boolean;
|
|
193
|
-
readonly onModelSelect?: () => void;
|
|
194
|
-
readonly onModelCycle?: ((direction: "forward" | "backward") => void) | undefined;
|
|
195
|
-
readonly onThinkingCycle?: (() => void) | undefined;
|
|
196
|
-
readonly onThinkingToggle?: (() => void) | undefined;
|
|
197
|
-
readonly onToolsExpand?: (() => void) | undefined;
|
|
198
|
-
readonly onMessageCopy?: (() => void) | undefined;
|
|
199
|
-
readonly onFollowUp?: (() => void) | undefined;
|
|
200
|
-
readonly onDequeue?: (() => void) | undefined;
|
|
201
|
-
readonly onPromptSuggestionAccepted?: (text: string) => void;
|
|
202
|
-
readonly onCopyText?: (text: string, cut: boolean) => void;
|
|
203
|
-
readonly readClipboardContent?: (signal?: AbortSignal) => Promise<PiShellClipboardContent | null>;
|
|
204
|
-
readonly beginClipboardPaste?: () => PiShellPasteReservation;
|
|
205
|
-
readonly beginTextPaste?: (text: string) => PiShellPasteReservation;
|
|
206
|
-
readonly deferTextPaste?: (text: string) => boolean;
|
|
207
|
-
readonly onPasteRejected?: (error: unknown) => void;
|
|
208
|
-
readonly onPasteInput?: (bytes: number, phase: "framing" | "inserting" | "settled") => void;
|
|
209
|
-
readonly editorHiddenRanges?: (line: string) => readonly PiShellEditorTextRange[];
|
|
210
|
-
readonly transformPastedContent?: (content: PiShellClipboardContent) => string;
|
|
211
|
-
readonly editorAtomicRanges?: (line: string) => readonly PiShellEditorTextRange[];
|
|
212
|
-
readonly expandCopiedEditorText?: (text: string) => string;
|
|
213
|
-
readonly paintEditorSelection?: (line: string, from: number, to: number, atomic: boolean) => string;
|
|
214
|
-
/** Row indices restart at zero for each complete owned editor decoration pass. */
|
|
215
|
-
readonly decorateEditorRow?: (row: string, width: number, rowIndex: number) => string;
|
|
216
|
-
readonly cwd?: string;
|
|
217
|
-
readonly agentDir?: string;
|
|
218
|
-
readonly autocompleteCommands?: readonly PiShellAutocompleteCommand[];
|
|
219
|
-
/**
|
|
220
|
-
* Bare A1's skills presentation, read at every command-list installation. `collapse` replaces the
|
|
221
|
-
* `skill:<name>` entries with one `skills` command and its tunnel; absent or `expand` keeps the
|
|
222
|
-
* pinned per-skill entries. Comparison profiles ignore it.
|
|
223
|
-
*/
|
|
224
|
-
readonly skillsPresentation?: () => "collapse" | "expand";
|
|
225
|
-
readonly promptPresentation?: {
|
|
226
|
-
readonly input: PiShellPromptInputPresentation;
|
|
227
|
-
readonly styleSuggestion: (text: string) => string;
|
|
228
|
-
readonly styleSuggestionCaret: (text: string) => string;
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
export interface PiShellSelectorOption {
|
|
232
|
-
readonly id: string;
|
|
233
|
-
readonly label: string;
|
|
234
|
-
readonly description?: string;
|
|
235
|
-
}
|
|
236
|
-
export interface PiShellSelectorOptions {
|
|
237
|
-
readonly title?: string;
|
|
238
|
-
readonly options: readonly PiShellSelectorOption[];
|
|
239
|
-
readonly maxVisible?: number;
|
|
240
|
-
readonly onSelect?: (id: string) => void;
|
|
241
|
-
readonly onCancel?: () => void;
|
|
242
46
|
}
|
|
243
47
|
export declare function createTuiFacade(options: Pick<PiShellEditorOptions, "getColumns" | "getRows" | "requestRender"> & {
|
|
244
48
|
readonly onSubmit?: (text: string) => void;
|
|
@@ -4,7 +4,7 @@ import { ensurePiTheme, piTheme, } from "./theme.js";
|
|
|
4
4
|
/** Terminal-cell width authority used by Pi-rendered component rows. */
|
|
5
5
|
export const piShellVisibleWidth = visibleWidth;
|
|
6
6
|
export const piShellTruncateToWidth = (text, width) => truncateToWidth(text, width, "");
|
|
7
|
-
|
|
7
|
+
const INSTALLED_UPDATE_STATUS_TEXT = "Update installed, restart to update";
|
|
8
8
|
/** Shared green restart notice for the pinned status and bare-A1 prompt overlay. */
|
|
9
9
|
export function renderPiShellInstalledUpdateStatus(width) {
|
|
10
10
|
if (width <= 0)
|
|
@@ -14,6 +14,13 @@ export function renderPiShellInstalledUpdateStatus(width) {
|
|
|
14
14
|
}
|
|
15
15
|
/** A clickable URL in pinned Pi's grammar: an OSC 8 link where the terminal supports one, the plain URL otherwise. */
|
|
16
16
|
export const piShellHyperlink = (url, text = url) => hyperlink(url, text);
|
|
17
|
+
/**
|
|
18
|
+
* Restores Pi's keybinding type to bindings the shell carried through the neutral contract. They were read from
|
|
19
|
+
* Pi's keybinding manager in the first place, so the narrowing loses nothing.
|
|
20
|
+
*/
|
|
21
|
+
export function piKeybindings(bindings) {
|
|
22
|
+
return bindings;
|
|
23
|
+
}
|
|
17
24
|
// Provenance: pinned from packages/coding-agent/src/core/slash-commands.ts at 914cf14.
|
|
18
25
|
export function createTuiFacade(options) {
|
|
19
26
|
const children = [];
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AutocompleteProvider } from "@earendil-works/pi-tui";
|
|
2
2
|
import type { PiShellAutocompleteCommand } from "./shell-shared-facade.js";
|
|
3
3
|
/** The collapsed bare-A1 replacement for the per-skill command listing. */
|
|
4
4
|
export declare const SKILLS_COMMAND_NAME = "skills";
|
|
5
|
-
export declare const SKILLS_COMMAND_DESCRIPTION = "Browse, search, and apply a skill";
|
|
6
|
-
/** Pi's own command prefix; the engine expands `/skill:<name>` regardless of how the menu presents it. */
|
|
7
|
-
export declare const SKILL_COMMAND_PREFIX = "skill:";
|
|
8
5
|
export interface PiShellSkillSummary {
|
|
9
6
|
readonly name: string;
|
|
10
7
|
readonly description: string;
|
|
@@ -16,8 +13,6 @@ export interface PiShellCollapsedSkillCommands {
|
|
|
16
13
|
/** The skills withheld from the top-level menu, in the engine's discovery order. */
|
|
17
14
|
readonly skills: readonly PiShellSkillSummary[];
|
|
18
15
|
}
|
|
19
|
-
/** One line of description, as the v2 extension shows it beside a row. */
|
|
20
|
-
export declare function oneLineSkillDescription(description: string): string;
|
|
21
16
|
/** The skills the engine registered as `skill:<name>` commands, in its order. */
|
|
22
17
|
export declare function skillsFromCommands(commands: readonly PiShellAutocompleteCommand[]): readonly PiShellSkillSummary[];
|
|
23
18
|
/**
|
|
@@ -37,9 +32,6 @@ export declare function skillPrompt(name: string, args?: string): string;
|
|
|
37
32
|
* returned unchanged so ordinary prompts, `/skills <name>`, and `/skill:` input keep their text.
|
|
38
33
|
*/
|
|
39
34
|
export declare function rewriteSkillsTunnelSubmission(text: string): string;
|
|
40
|
-
/** The tunnel query when single-line content before the cursor is exactly `/skills:<query>`. */
|
|
41
|
-
export declare function skillsTunnelQuery(lines: readonly string[], cursorLine: number, cursorCol: number): string | null;
|
|
42
|
-
export declare function skillsTunnelItems(skills: readonly PiShellSkillSummary[], query: string): AutocompleteItem[];
|
|
43
35
|
/**
|
|
44
36
|
* Wrap the pinned combined provider with the `skills` tunnel: `/skills:<query>` lists matching
|
|
45
37
|
* skills as `skills:<name>` rows and shows nothing when none match; every other request, the
|