@timurproko/a1 0.1.8-dev.472 → 0.1.8-dev.508
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +4 -5
- package/bin/guardian.js +5 -1
- package/bin/module-identity.js +53 -98
- package/bin/module-resolver.js +138 -0
- package/bin/pinned-pi-public.js +25 -6
- package/bin/ui.js +7 -2
- package/bin/update-recovery.js +76 -7
- package/bin/warmup.js +3 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/clipboard-diagnostics.d.ts +1 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/clipboard-image.js +1 -1
- package/dist/app/session-shell/helper-pool.d.ts +33 -0
- package/dist/app/session-shell/helper-pool.js +98 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/image-preparation-client.d.ts +1 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/image-preparation-client.js +1 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/image-preparation.js +1 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/image-source.js +1 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/image-worker.js +1 -1
- 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/{integrations/pi/session-ui → app/session-shell}/paste-executor.js +50 -29
- package/dist/{integrations/pi/session-ui → app/session-shell}/paste-helper.js +1 -1
- package/dist/app/session-shell/paste-preparation-client.d.ts +31 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/paste-preparation-client.js +19 -8
- package/dist/{integrations/pi/session-ui → app/session-shell}/paste-protocol.d.ts +1 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/paste-protocol.js +1 -1
- package/dist/app/session-shell/paste-text-preparation.d.ts +6 -0
- package/dist/{integrations/pi/session-ui/paste-text-preparation.d.ts → app/session-shell/paste-types.d.ts} +1 -4
- package/dist/{integrations/pi/session-ui → app/session-shell}/path-chip-presentation.d.ts +1 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/prompt-chips.d.ts +5 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/prompt-chips.js +6 -2
- package/dist/{integrations/pi/session-ui → app/session-shell}/prompt-history-controller.d.ts +2 -2
- package/dist/{integrations/pi/session-ui → app/session-shell}/prompt-history-controller.js +2 -2
- package/dist/{integrations/pi/session-ui → app/session-shell}/prompt-suggestion-controller.d.ts +1 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/prompt-suggestion-controller.js +2 -2
- package/dist/{integrations/pi/session-ui → app/session-shell}/quit-outro.js +1 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-coordinator.d.ts +1 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-coordinator.js +3 -5
- package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-helper.js +1 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-protocol.d.ts +1 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-transport.d.ts +10 -2
- package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-transport.js +45 -19
- package/dist/{integrations/pi/session-ui → app/session-shell}/session-shell-root.d.ts +75 -53
- package/dist/{integrations/pi/session-ui → app/session-shell}/session-shell-root.js +30 -20
- package/dist/{integrations/pi/session-ui → app/session-shell}/session-shell.d.ts +9 -8
- package/dist/{integrations/pi/session-ui → app/session-shell}/session-shell.js +108 -67
- package/dist/{integrations/pi/session-ui → app/session-shell}/session-viewport-controller.d.ts +5 -5
- package/dist/{integrations/pi/session-ui → app/session-shell}/session-viewport-controller.js +5 -5
- package/dist/{integrations/pi/session-ui → app/session-shell}/system-clipboard.d.ts +1 -1
- package/dist/{integrations/pi/session-ui → app/session-shell}/system-clipboard.js +1 -1
- package/dist/cli/index.d.ts +8 -5
- package/dist/cli/index.js +4 -5
- package/dist/composition/index.d.ts +0 -1
- package/dist/composition/index.js +0 -1
- package/dist/composition/owned-ui.d.ts +2 -2
- package/dist/composition/owned-ui.js +35 -36
- package/dist/composition/settings-route-host.d.ts +2 -2
- package/dist/contracts/agent-engine/domain.d.ts +6 -1
- package/dist/contracts/agent-engine/index.d.ts +11 -8
- package/dist/contracts/agent-engine/index.js +6 -8
- package/dist/contracts/owned-ui/extension-ui.d.ts +8 -0
- package/dist/contracts/owned-ui/index.d.ts +12 -8
- package/dist/contracts/owned-ui/index.js +8 -8
- package/dist/features/launch/index.d.ts +12 -6
- package/dist/features/launch/index.js +6 -6
- package/dist/features/launch/intent.d.ts +5 -5
- package/dist/features/launch/intent.js +2 -2
- package/dist/features/owned-ui/index.d.ts +6 -6
- package/dist/features/owned-ui/index.js +4 -6
- package/dist/features/owned-ui/run.d.ts +2 -2
- package/dist/features/owned-ui/settings-app.d.ts +2 -2
- package/dist/features/owned-ui/settings-app.js +18 -5
- package/dist/features/prompt-history/service.d.ts +1 -1
- package/dist/features/prompt-history/service.js +1 -1
- package/dist/features/prompt-history/store.js +3 -7
- package/dist/features/prompt-suggestions/diagnostics.js +1 -1
- package/dist/features/prompt-suggestions/index.d.ts +2 -1
- package/dist/features/prompt-suggestions/index.js +1 -1
- package/dist/foundation/launch-guardian/index.d.ts +2 -1
- package/dist/foundation/launch-guardian/index.js +1 -1
- package/dist/foundation/lifecycle/index.d.ts +11 -6
- package/dist/foundation/lifecycle/index.js +5 -6
- package/dist/foundation/process-containment/index.d.ts +8 -6
- package/dist/foundation/process-containment/index.js +6 -6
- package/dist/foundation/process-containment/native-guardian-containment.js +3 -3
- package/dist/foundation/protocol/index.d.ts +3 -2
- package/dist/foundation/protocol/index.js +2 -2
- package/dist/foundation/release/bootstrap.d.ts +0 -4
- package/dist/foundation/release/bootstrap.js +1 -82
- package/dist/foundation/release/dependency-layer.d.ts +2 -5
- package/dist/foundation/release/endpoints.d.ts +4 -0
- package/dist/foundation/release/endpoints.js +86 -2
- package/dist/foundation/release/index.d.ts +30 -16
- package/dist/foundation/release/index.js +16 -16
- package/dist/foundation/release/release.d.ts +1 -1
- package/dist/foundation/release/types.d.ts +11 -0
- package/dist/foundation/release/types.js +1 -0
- package/dist/foundation/release/update-transaction.d.ts +1 -1
- package/dist/foundation/release/update.d.ts +2 -1
- package/dist/foundation/release/update.js +3 -18
- package/dist/foundation/startup/index.d.ts +4 -2
- package/dist/foundation/startup/index.js +2 -2
- package/dist/foundation/startup/startup-descriptor.js +2 -2
- package/dist/foundation/storage/control-store.d.ts +1 -45
- package/dist/foundation/storage/control-store.js +54 -277
- package/dist/foundation/storage/index.d.ts +1 -1
- package/dist/foundation/storage/index.js +1 -1
- package/dist/foundation/supervision/index.d.ts +2 -2
- package/dist/foundation/supervision/index.js +2 -2
- package/dist/foundation/supervision/server.d.ts +5 -10
- package/dist/foundation/supervision/server.js +7 -7
- package/dist/foundation/terminal-cleanup/index.d.ts +3 -2
- package/dist/foundation/terminal-cleanup/index.js +2 -2
- package/dist/integrations/pi/components/editor-interaction.d.ts +1 -1
- package/dist/integrations/pi/components/history-editor-loader.d.ts +1 -1
- package/dist/integrations/pi/components/index.d.ts +20 -13
- package/dist/integrations/pi/components/index.js +12 -13
- package/dist/integrations/pi/components/owned-editor-ux.js +5 -8
- package/dist/integrations/pi/components/resources/builtin-themes.d.ts +7 -5
- package/dist/integrations/pi/components/resources/builtin-themes.js +7 -5
- package/dist/integrations/pi/components/shell-editor-autocomplete.js +1 -1
- package/dist/integrations/pi/components/shell-extension-ui.js +2 -1
- package/dist/integrations/pi/components/shell-footer-status.js +1 -1
- package/dist/integrations/pi/components/shell-presenters-info.d.ts +1 -1
- package/dist/integrations/pi/components/shell-presenters-info.js +1 -1
- package/dist/integrations/pi/components/shell-presenters-transcript.js +1 -1
- package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +9 -3
- package/dist/integrations/pi/components/shell-selectors-dialogs.js +9 -6
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +3 -1
- package/dist/integrations/pi/components/shell-shared-facade.js +4 -2
- package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +1 -1
- package/dist/integrations/pi/components/submitted-prompt-adapter.js +1 -1
- package/dist/integrations/pi/components/tool-image-presentation.d.ts +1 -1
- package/dist/integrations/pi/components/tool-image-presentation.js +4 -7
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +36 -22
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +43 -7
- package/dist/integrations/pi/components/upstream/assets/earendil-image.json +2 -2
- package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +6 -3
- package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +8 -1
- package/dist/integrations/pi/components/upstream/components/daxnuts.js +7 -3
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +10 -4
- package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +7 -4
- package/dist/integrations/pi/components/upstream/components/extension-editor.js +7 -4
- package/dist/integrations/pi/components/upstream/components/mermaid.js +8 -4
- package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +9 -5
- package/dist/integrations/pi/components/upstream/components/owned-editor.js +10 -6
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +8 -4
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +27 -25
- package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/session-footer.js +8 -10
- package/dist/integrations/pi/components/upstream/components/session-selector-search.js +6 -4
- package/dist/integrations/pi/components/upstream/components/session-selector.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/session-selector.js +8 -4
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +7 -5
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +8 -6
- package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +9 -4
- package/dist/integrations/pi/components/upstream/components/status-indicator.js +15 -5
- package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +8 -2
- package/dist/integrations/pi/components/upstream/components/tool-execution.js +58 -37
- package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +7 -4
- package/dist/integrations/pi/components/upstream/components/tree-selector.js +7 -4
- package/dist/integrations/pi/components/upstream/components/trust-selector.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/trust-selector.js +10 -5
- package/dist/integrations/pi/components/upstream/external-editor.js +8 -4
- package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +13 -4
- package/dist/integrations/pi/components/upstream/history/editor-core.js +112 -30
- package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +6 -3
- package/dist/integrations/pi/components/upstream/history/kill-ring.js +6 -3
- package/dist/integrations/pi/components/upstream/history/printable-key.js +7 -4
- package/dist/integrations/pi/components/upstream/history/text-helpers.js +6 -3
- package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +6 -3
- package/dist/integrations/pi/components/upstream/history/undo-stack.js +6 -3
- package/dist/integrations/pi/components/upstream/history/word-navigation.js +6 -3
- package/dist/integrations/pi/components/upstream/model-search.d.ts +5 -2
- package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +8 -0
- package/dist/integrations/pi/components/upstream/theme/theme-controller.js +0 -3
- package/dist/integrations/pi/components/upstream/theme/theme.d.ts +2 -2
- package/dist/integrations/pi/components/upstream/theme/theme.js +17 -6
- package/dist/integrations/pi/engine/adapter.d.ts +39 -138
- package/dist/integrations/pi/engine/adapter.js +338 -3226
- 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/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/index.d.ts +18 -14
- package/dist/integrations/pi/engine/index.js +10 -14
- package/dist/integrations/pi/engine/message-values.d.ts +29 -0
- package/dist/integrations/pi/engine/message-values.js +168 -0
- package/dist/integrations/pi/engine/pending-delivery.d.ts +2 -2
- package/dist/integrations/pi/engine/pending-delivery.js +2 -4
- package/dist/integrations/pi/engine/pi-settings-metadata.json +382 -371
- package/dist/integrations/pi/engine/prompt-suggestions.d.ts +30 -0
- package/dist/integrations/pi/engine/prompt-suggestions.js +102 -0
- package/dist/integrations/pi/engine/provider-authentication.d.ts +34 -0
- package/dist/integrations/pi/engine/provider-authentication.js +209 -0
- package/dist/integrations/pi/engine/resource-catalog.d.ts +49 -0
- package/dist/integrations/pi/engine/resource-catalog.js +289 -0
- package/dist/integrations/pi/engine/resources/changelog.json +4 -4
- 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.js +2 -4
- package/dist/integrations/pi/engine/session-runtime.d.ts +84 -0
- package/dist/integrations/pi/engine/session-runtime.js +249 -0
- package/dist/integrations/pi/engine/{settings-effects.d.ts → settings-bridge.d.ts} +57 -2
- package/dist/integrations/pi/engine/settings-bridge.js +514 -0
- package/dist/integrations/pi/engine/settings-metadata.d.ts +31 -0
- package/dist/integrations/pi/engine/settings-metadata.js +67 -0
- package/dist/integrations/pi/engine/settings-port.d.ts +42 -0
- package/dist/integrations/pi/engine/settings-port.js +353 -0
- package/dist/integrations/pi/engine/transcript-projection.d.ts +39 -0
- package/dist/integrations/pi/engine/transcript-projection.js +405 -0
- package/dist/integrations/pi/engine/usage-view.d.ts +4 -0
- package/dist/integrations/pi/engine/usage-view.js +56 -0
- package/dist/integrations/pi/engine/workflow-contexts.d.ts +59 -0
- package/dist/integrations/pi/engine/workflow-contexts.js +316 -0
- package/dist/integrations/pi/engine/workflow-runner.d.ts +60 -0
- package/dist/integrations/pi/engine/workflow-runner.js +509 -0
- package/dist/integrations/pi/engine/workflow-support.d.ts +33 -0
- package/dist/integrations/pi/engine/workflow-support.js +352 -0
- package/dist/integrations/pi/engine/workflows.d.ts +63 -2
- package/dist/integrations/pi/engine/workflows.js +5 -2
- package/dist/integrations/pi/startup-public.js +576 -554
- package/dist/integrations/pi/startup-public.manifest.json +1730 -984
- package/dist/integrations/pi/tui-runtime/adapter.js +10 -13
- package/dist/integrations/pi/tui-runtime/contracts.d.ts +11 -1
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +1 -1
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +4 -7
- package/dist/integrations/pi/tui-runtime/index.d.ts +8 -6
- package/dist/integrations/pi/tui-runtime/index.js +4 -6
- package/dist/integrations/pi/tui-runtime/mouse-report-input.js +2 -4
- package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +2 -2
- package/dist/integrations/pi/tui-runtime/overlay-geometry.js +4 -5
- package/dist/integrations/pi/tui-runtime/presentation-adapter.js +1 -1
- package/dist/native/darwin-arm64/manifest.json +1 -1
- package/dist/native/linux-x64/manifest.json +1 -1
- package/dist/native/win32-x64/manifest.json +2 -2
- package/dist/native/win32-x64/process-guardian.exe +0 -0
- package/dist/runtime-payload-inventory.json +51320 -46509
- package/dist/ui/apps/index.d.ts +5 -3
- package/dist/ui/apps/index.js +3 -3
- package/dist/ui/components/index.d.ts +47 -25
- package/dist/ui/components/index.js +25 -25
- package/dist/ui/components/prompt-input.js +1 -4
- package/dist/ui/settings/declarations.d.ts +119 -0
- package/dist/ui/settings/declarations.js +20 -11
- package/dist/ui/settings/index.d.ts +10 -6
- package/dist/ui/settings/index.js +5 -6
- package/dist/ui/settings/manager.d.ts +54 -0
- package/dist/ui/settings/{session.js → manager.js} +101 -9
- package/dist/ui/settings/sections.d.ts +2 -7
- package/docs/architecture/boundaries.md +4 -4
- package/docs/architecture/history-editor-provenance.md +1 -1
- package/docs/architecture/project-structure.md +6 -6
- package/docs/architecture/prompt-suggestions.md +1 -1
- package/docs/architecture/terminal-host-proof-gate.md +1 -1
- package/docs/architecture/terminal-host-spike-evidence.md +1 -1
- package/docs/architecture/toolchain.md +8 -0
- package/docs/architecture/ui-reference-provenance.md +4 -4
- package/docs/ci-release-runbook.md +7 -1
- package/docs/features/modal-content-interaction.md +2 -2
- package/docs/local-worktree-cleanup.md +4 -2
- package/docs/validation.md +6 -4
- package/package.json +7 -11
- package/bin/pi-tui.d.ts +0 -6
- package/bin/pi-tui.js +0 -28
- package/bin/sync-pi-tui-proxy.js +0 -97
- package/dist/cli/version.d.ts +0 -2
- package/dist/cli/version.js +0 -23
- package/dist/composition/agent-engine-bridge.d.ts +0 -3
- package/dist/composition/agent-engine-bridge.js +0 -108
- package/dist/composition/process.d.ts +0 -16
- package/dist/composition/process.js +0 -45
- package/dist/contracts/workspace/index.d.ts +0 -2
- package/dist/contracts/workspace/index.js +0 -2
- package/dist/contracts/workspace/model.d.ts +0 -248
- package/dist/contracts/workspace/model.js +0 -2
- package/dist/contracts/workspace/validation.d.ts +0 -13
- package/dist/contracts/workspace/validation.js +0 -335
- package/dist/features/owned-ui/customization.d.ts +0 -40
- package/dist/features/owned-ui/customization.js +0 -110
- package/dist/features/owned-ui/diagnostics.d.ts +0 -34
- package/dist/features/owned-ui/diagnostics.js +0 -95
- package/dist/features/workspace/capabilities.d.ts +0 -31
- package/dist/features/workspace/capabilities.js +0 -75
- package/dist/features/workspace/index.d.ts +0 -6
- package/dist/features/workspace/index.js +0 -6
- package/dist/features/workspace/presentation.d.ts +0 -30
- package/dist/features/workspace/presentation.js +0 -70
- package/dist/features/workspace/reconciliation.d.ts +0 -15
- package/dist/features/workspace/reconciliation.js +0 -82
- package/dist/features/workspace/reducer.d.ts +0 -43
- package/dist/features/workspace/reducer.js +0 -214
- package/dist/features/workspace/router.d.ts +0 -32
- package/dist/features/workspace/router.js +0 -125
- package/dist/features/workspace/store.d.ts +0 -18
- package/dist/features/workspace/store.js +0 -55
- package/dist/foundation/native-host-protocol/codec.d.ts +0 -13
- package/dist/foundation/native-host-protocol/codec.js +0 -58
- package/dist/foundation/native-host-protocol/evidence.d.ts +0 -67
- package/dist/foundation/native-host-protocol/evidence.js +0 -141
- package/dist/foundation/native-host-protocol/index.d.ts +0 -4
- package/dist/foundation/native-host-protocol/index.js +0 -4
- package/dist/foundation/native-host-protocol/messages.d.ts +0 -56
- package/dist/foundation/native-host-protocol/messages.js +0 -149
- package/dist/foundation/native-host-protocol/proof-gate.d.ts +0 -13
- package/dist/foundation/native-host-protocol/proof-gate.js +0 -33
- package/dist/foundation/structured-agent-runtime/backpressure.d.ts +0 -47
- package/dist/foundation/structured-agent-runtime/backpressure.js +0 -119
- package/dist/foundation/structured-agent-runtime/commands.d.ts +0 -53
- package/dist/foundation/structured-agent-runtime/commands.js +0 -165
- package/dist/foundation/structured-agent-runtime/handshake.d.ts +0 -41
- package/dist/foundation/structured-agent-runtime/handshake.js +0 -151
- package/dist/foundation/structured-agent-runtime/index.d.ts +0 -5
- package/dist/foundation/structured-agent-runtime/index.js +0 -5
- package/dist/foundation/structured-agent-runtime/reconnection.d.ts +0 -38
- package/dist/foundation/structured-agent-runtime/reconnection.js +0 -130
- package/dist/foundation/structured-agent-runtime/state.d.ts +0 -57
- package/dist/foundation/structured-agent-runtime/state.js +0 -119
- package/dist/integrations/pi/components/upstream/components/custom-entry.d.ts +0 -17
- package/dist/integrations/pi/components/upstream/components/custom-entry.js +0 -51
- package/dist/integrations/pi/components/upstream/components/first-time-setup.d.ts +0 -24
- package/dist/integrations/pi/components/upstream/components/first-time-setup.js +0 -105
- package/dist/integrations/pi/components/upstream/components/markdown-transform.d.ts +0 -2
- package/dist/integrations/pi/components/upstream/components/markdown-transform.js +0 -18
- package/dist/integrations/pi/engine/model-auth-integration.d.ts +0 -31
- package/dist/integrations/pi/engine/model-auth-integration.js +0 -62
- package/dist/integrations/pi/engine/resource-extension-integration.d.ts +0 -32
- package/dist/integrations/pi/engine/resource-extension-integration.js +0 -81
- package/dist/integrations/pi/engine/settings-effects.js +0 -249
- package/dist/integrations/pi/engine/settings-integration.d.ts +0 -43
- package/dist/integrations/pi/engine/settings-integration.js +0 -227
- package/dist/integrations/pi/engine/workflow-controllers.d.ts +0 -21
- package/dist/integrations/pi/engine/workflow-controllers.js +0 -49
- package/dist/integrations/pi/session-ui/index.d.ts +0 -5
- package/dist/integrations/pi/session-ui/index.js +0 -5
- package/dist/integrations/pi/session-ui/paste-executor.d.ts +0 -10
- package/dist/integrations/pi/session-ui/paste-preparation-client.d.ts +0 -16
- package/dist/integrations/pi/session-ui/route-host.d.ts +0 -5
- package/dist/integrations/pi/tui-runtime/conformance.d.ts +0 -18
- package/dist/integrations/pi/tui-runtime/conformance.js +0 -145
- package/dist/ui/components/prompt-row.d.ts +0 -14
- package/dist/ui/components/prompt-row.js +0 -20
- package/dist/ui/settings/session.d.ts +0 -36
- package/dist/ui/settings/store.d.ts +0 -29
- package/dist/ui/settings/store.js +0 -91
- package/dist/{integrations/pi/session-ui → app/session-shell}/clipboard-diagnostics.js +2 -2
- package/dist/{integrations/pi/session-ui → app/session-shell}/clipboard-image.d.ts +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/editor-hyperlink-budget.d.ts +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/editor-hyperlink-budget.js +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/image-preparation.d.ts +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/image-source.d.ts +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/image-worker.d.ts +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/paste-helper.d.ts +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/paste-text-preparation.js +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/paste-text-worker.d.ts +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/paste-text-worker.js +0 -0
- package/dist/{integrations/pi/session-ui/response-copy-helper.d.ts → app/session-shell/paste-types.js} +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/path-chip-presentation.js +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/quit-outro-effects.d.ts +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/quit-outro-effects.js +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/quit-outro.d.ts +0 -0
- package/dist/{integrations/pi/session-ui/route-host.js → app/session-shell/response-copy-helper.d.ts} +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-protocol.js +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/stream-presentation-coalescer.d.ts +0 -0
- package/dist/{integrations/pi/session-ui → app/session-shell}/stream-presentation-coalescer.js +3 -3
- /package/dist/{integrations/pi/session-ui → app/session-shell}/text-paste.d.ts +0 -0
- /package/dist/{integrations/pi/session-ui → app/session-shell}/text-paste.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Attributed owned theme resources adapted from @earendil-works/pi-coding-agent 0.
|
|
3
|
-
* Upstream dark.json SHA-256:
|
|
4
|
-
* Upstream light.json SHA-256:
|
|
2
|
+
* Attributed owned theme resources adapted from @earendil-works/pi-coding-agent 0.85.1 (MIT).
|
|
3
|
+
* Upstream dark.json SHA-256: 103a5aecb74a2dab5cc903c9741845ee6158658ce2ff6e5445948784116eaef8
|
|
4
|
+
* Upstream light.json SHA-256: 14c7172ba7e75eab6f509504de806af0f2d9ff817bfb45d9533bff15c7e6e657
|
|
5
5
|
* Modifications: removed upstream schema/export metadata; runtime color data is unchanged.
|
|
6
6
|
*/
|
|
7
7
|
export declare const BUILTIN_THEME_RESOURCES: Readonly<{
|
|
@@ -38,7 +38,8 @@ export declare const BUILTIN_THEME_RESOURCES: Readonly<{
|
|
|
38
38
|
readonly text: "text";
|
|
39
39
|
readonly thinkingText: "gray";
|
|
40
40
|
readonly selectedBg: "selectedBg";
|
|
41
|
-
readonly
|
|
41
|
+
readonly scrollbarTrack: "darkGray";
|
|
42
|
+
readonly scrollbarThumb: "text";
|
|
42
43
|
readonly searchMatchBg: "selectedBg";
|
|
43
44
|
readonly searchMatchText: "text";
|
|
44
45
|
readonly userMessageBg: "userMsgBg";
|
|
@@ -115,7 +116,8 @@ export declare const BUILTIN_THEME_RESOURCES: Readonly<{
|
|
|
115
116
|
readonly text: "text";
|
|
116
117
|
readonly thinkingText: "mediumGray";
|
|
117
118
|
readonly selectedBg: "selectedBg";
|
|
118
|
-
readonly
|
|
119
|
+
readonly scrollbarTrack: "lightGray";
|
|
120
|
+
readonly scrollbarThumb: "text";
|
|
119
121
|
readonly searchMatchBg: "selectedBg";
|
|
120
122
|
readonly searchMatchText: "text";
|
|
121
123
|
readonly userMessageBg: "userMsgBg";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Attributed owned theme resources adapted from @earendil-works/pi-coding-agent 0.
|
|
3
|
-
* Upstream dark.json SHA-256:
|
|
4
|
-
* Upstream light.json SHA-256:
|
|
2
|
+
* Attributed owned theme resources adapted from @earendil-works/pi-coding-agent 0.85.1 (MIT).
|
|
3
|
+
* Upstream dark.json SHA-256: 103a5aecb74a2dab5cc903c9741845ee6158658ce2ff6e5445948784116eaef8
|
|
4
|
+
* Upstream light.json SHA-256: 14c7172ba7e75eab6f509504de806af0f2d9ff817bfb45d9533bff15c7e6e657
|
|
5
5
|
* Modifications: removed upstream schema/export metadata; runtime color data is unchanged.
|
|
6
6
|
*/
|
|
7
7
|
export const BUILTIN_THEME_RESOURCES = Object.freeze({
|
|
@@ -38,7 +38,8 @@ export const BUILTIN_THEME_RESOURCES = Object.freeze({
|
|
|
38
38
|
"text": "text",
|
|
39
39
|
"thinkingText": "gray",
|
|
40
40
|
"selectedBg": "selectedBg",
|
|
41
|
-
"
|
|
41
|
+
"scrollbarTrack": "darkGray",
|
|
42
|
+
"scrollbarThumb": "text",
|
|
42
43
|
"searchMatchBg": "selectedBg",
|
|
43
44
|
"searchMatchText": "text",
|
|
44
45
|
"userMessageBg": "userMsgBg",
|
|
@@ -115,7 +116,8 @@ export const BUILTIN_THEME_RESOURCES = Object.freeze({
|
|
|
115
116
|
"text": "text",
|
|
116
117
|
"thinkingText": "mediumGray",
|
|
117
118
|
"selectedBg": "selectedBg",
|
|
118
|
-
"
|
|
119
|
+
"scrollbarTrack": "lightGray",
|
|
120
|
+
"scrollbarThumb": "text",
|
|
119
121
|
"searchMatchBg": "selectedBg",
|
|
120
122
|
"searchMatchText": "text",
|
|
121
123
|
"userMessageBg": "userMsgBg",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getSelectListTheme } from "../startup-public.js";
|
|
2
|
-
import { CombinedAutocompleteProvider, matchesKey, setKeybindings, visibleWidth, } from "
|
|
2
|
+
import { CombinedAutocompleteProvider, matchesKey, setKeybindings, visibleWidth, } from "@earendil-works/pi-tui";
|
|
3
3
|
import { PROMPT_HISTORY_EDITOR_REPLACEMENT } from "../../../contracts/owned-ui/index.js";
|
|
4
4
|
import { KeybindingsManager } from "./upstream/adjacent/core/keybindings.js";
|
|
5
5
|
import { OwnedEditor } from "./upstream/components/owned-editor.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ExtensionInputComponent, ExtensionSelectorComponent, getSelectListTheme, } from "../startup-public.js";
|
|
2
2
|
import { ExtensionEditorComponent, } from "./upstream/components/extension-editor.js";
|
|
3
|
-
import { setKeybindings, Text, } from "
|
|
3
|
+
import { setKeybindings, Text, } from "@earendil-works/pi-tui";
|
|
4
4
|
import { KeybindingsManager, } from "./upstream/adjacent/core/keybindings.js";
|
|
5
5
|
import { PINNED_PI_LAYOUT, applyPiTheme, applyPiThemeInstance, getAvailablePiThemes, loadPiTheme, piTheme, } from "./theme.js";
|
|
6
6
|
import { componentPort, createTuiFacade, ensureTheme, isRecord, } from "./shell-shared-facade.js";
|
|
@@ -275,5 +275,6 @@ function publicOverlayHandle(handle) {
|
|
|
275
275
|
? undefined
|
|
276
276
|
: { target: options.target === null ? null : componentPort(options.target) }),
|
|
277
277
|
isFocused: () => handle.isFocused(),
|
|
278
|
+
getBounds: () => handle.getBounds(),
|
|
278
279
|
};
|
|
279
280
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { rawKeyHint, VERSION } from "../startup-public.js";
|
|
2
|
-
import { Spacer, Text, } from "
|
|
2
|
+
import { Spacer, Text, } from "@earendil-works/pi-tui";
|
|
3
3
|
import { SessionFooter } from "./upstream/components/session-footer.js";
|
|
4
4
|
import { KeybindingsManager } from "./upstream/adjacent/core/keybindings.js";
|
|
5
5
|
import { WorkingStatusIndicator } from "./upstream/components/status-indicator.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type KeybindingsConfig } from "
|
|
1
|
+
import { type KeybindingsConfig } from "@earendil-works/pi-tui";
|
|
2
2
|
import { type PiShellComponentPort, type PiShellExtensionRendererResolver } from "./shell-shared-facade.js";
|
|
3
3
|
export interface PiShellSessionInfoPresentation {
|
|
4
4
|
readonly sessionName?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DynamicBorder, getMarkdownTheme } from "../startup-public.js";
|
|
2
|
-
import { Container, Markdown, Spacer, Text } from "
|
|
2
|
+
import { Container, Markdown, Spacer, Text } from "@earendil-works/pi-tui";
|
|
3
3
|
import { KeybindingsManager } from "./upstream/adjacent/core/keybindings.js";
|
|
4
4
|
import { PINNED_PI_LAYOUT, piTheme } from "./theme.js";
|
|
5
5
|
import { componentPort, ensureTheme, formatSessionTokens } from "./shell-shared-facade.js";
|
|
@@ -4,7 +4,7 @@ import { SkillInvocationMessageComponent } from "./upstream/components/skill-inv
|
|
|
4
4
|
import { piToolArguments as toolArguments, updatePiToolResult as updateToolResult } from "./tool-result-adapter.js";
|
|
5
5
|
import { createTranscriptImageResolver } from "./transcript-image-resolver.js";
|
|
6
6
|
import { createMermaidMarkdownTransformer } from "./upstream/components/mermaid.js";
|
|
7
|
-
import { Container, Image, Spacer, Text, } from "
|
|
7
|
+
import { Container, Image, Spacer, Text, } from "@earendil-works/pi-tui";
|
|
8
8
|
import { PRODUCT_TEXT } from "../../../product-identity.js";
|
|
9
9
|
import { createPiSubmittedPromptComponent, isPiPromptStyleCompaction, } from "./submitted-prompt-adapter.js";
|
|
10
10
|
export { isPiPromptStyleCompaction, paintPiSubmittedPromptTimestamp } from "./submitted-prompt-adapter.js";
|
|
@@ -12,12 +12,18 @@ export declare function createPiShellSettingsSelector(options: PiShellSettingsSe
|
|
|
12
12
|
type PiModelSelectorArguments = ConstructorParameters<typeof ModelSelectorComponent>;
|
|
13
13
|
export interface PiShellModelSelectorOptions {
|
|
14
14
|
readonly currentModel: unknown;
|
|
15
|
-
readonly settingsManager: unknown;
|
|
16
15
|
readonly modelRuntime: unknown;
|
|
17
16
|
readonly scopedModels: readonly unknown[];
|
|
17
|
+
/** The persisted default model, when one is set. */
|
|
18
|
+
readonly defaultModel?: {
|
|
19
|
+
readonly provider: string;
|
|
20
|
+
readonly id: string;
|
|
21
|
+
};
|
|
18
22
|
readonly initialSearchInput?: string;
|
|
19
23
|
readonly runtime: Pick<PiShellEditorOptions, "getColumns" | "getRows" | "requestRender">;
|
|
20
|
-
readonly onSelect: PiModelSelectorArguments[
|
|
24
|
+
readonly onSelect: PiModelSelectorArguments[4];
|
|
25
|
+
/** The pinned selector's "select as default" action: the model is chosen and persisted. */
|
|
26
|
+
readonly onSelectAsDefault: PiModelSelectorArguments[4];
|
|
21
27
|
readonly onCancel: () => void;
|
|
22
28
|
}
|
|
23
29
|
export declare function createPiShellModelSelector(options: PiShellModelSelectorOptions): PiShellComponentPort;
|
|
@@ -107,7 +113,7 @@ export interface PiShellAuthProviderOption extends PiShellSelectorOption {
|
|
|
107
113
|
}
|
|
108
114
|
export declare function createPiShellAuthProviderSelector(mode: "login" | "logout", providers: readonly PiShellAuthProviderOption[], onSelect: (id: string) => void, onCancel: () => void, initialSearchInput?: string): PiShellComponentPort;
|
|
109
115
|
export declare function createPiShellExtensionSelector(title: string, options: readonly string[], onSelect: (value: string) => void, onCancel: () => void): PiShellComponentPort;
|
|
110
|
-
export declare function createPiShellThinkingSelector(currentLevel: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", availableLevels: readonly ("off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max")[], onSelect: (level: string) => void, onCancel: () => void): PiShellComponentPort;
|
|
116
|
+
export declare function createPiShellThinkingSelector(currentLevel: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", availableLevels: readonly ("off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max")[], onSelect: (level: string) => void, onCancel: () => void, onSelectAsDefault?: (level: string) => void, defaultLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max"): PiShellComponentPort;
|
|
111
117
|
export declare function createPiShellThemeSelector(currentTheme: string, onSelect: (theme: string) => void, onCancel: () => void, onPreview: (theme: string) => void): PiShellComponentPort;
|
|
112
118
|
export declare function createPiShellShowImagesSelector(currentValue: boolean, onSelect: (show: boolean) => void, onCancel: () => void): PiShellComponentPort;
|
|
113
119
|
export declare function createPiShellDialog(dialog: OwnedUiDialog, handlers?: {
|
|
@@ -3,7 +3,7 @@ import { DaxnutsComponent, } from "./upstream/components/daxnuts.js";
|
|
|
3
3
|
import { EarendilAnnouncementComponent, } from "./upstream/components/earendil-announcement.js";
|
|
4
4
|
import { SessionSelectorComponent, } from "./upstream/components/session-selector.js";
|
|
5
5
|
import { TreeSelectorComponent, } from "./upstream/components/tree-selector.js";
|
|
6
|
-
import { Box, Container, SelectList, Spacer, Text, } from "
|
|
6
|
+
import { Box, Container, SelectList, Spacer, Text, } from "@earendil-works/pi-tui";
|
|
7
7
|
import { ScopedModelsSelectorComponent, } from "./upstream/components/scoped-models-selector.js";
|
|
8
8
|
import { TrustSelectorComponent, } from "./upstream/components/trust-selector.js";
|
|
9
9
|
import { PINNED_PI_LAYOUT, piTheme, } from "./theme.js";
|
|
@@ -25,7 +25,8 @@ export function createPiShellSelector(options) {
|
|
|
25
25
|
}
|
|
26
26
|
export function createPiShellSettingsSelector(options) {
|
|
27
27
|
ensureTheme();
|
|
28
|
-
|
|
28
|
+
// Protocol: one-argument callbacks pass the value; the per-model callbacks carry (provider, modelId[, level]) as a tuple.
|
|
29
|
+
const change = (name) => (...values) => options.onChange(name, values.length > 1 ? values : values[0]);
|
|
29
30
|
const callbacks = {
|
|
30
31
|
onAutoCompactChange: change("onAutoCompactChange"),
|
|
31
32
|
onShowImagesChange: change("onShowImagesChange"),
|
|
@@ -37,7 +38,8 @@ export function createPiShellSettingsSelector(options) {
|
|
|
37
38
|
onFollowUpModeChange: change("onFollowUpModeChange"),
|
|
38
39
|
onTransportChange: change("onTransportChange"),
|
|
39
40
|
onHttpIdleTimeoutMsChange: change("onHttpIdleTimeoutMsChange"),
|
|
40
|
-
|
|
41
|
+
onModelThinkingLevelChange: change("onModelThinkingLevelChange"),
|
|
42
|
+
onModelThinkingLevelRemove: change("onModelThinkingLevelRemove"),
|
|
41
43
|
onThemeChange: change("onThemeChange"),
|
|
42
44
|
onThemePreview: change("onThemePreview"),
|
|
43
45
|
onHideThinkingBlockChange: change("onHideThinkingBlockChange"),
|
|
@@ -58,6 +60,7 @@ export function createPiShellSettingsSelector(options) {
|
|
|
58
60
|
onTuiModeChange: change("onTuiModeChange"),
|
|
59
61
|
onFullscreenExitOutputChange: change("onFullscreenExitOutputChange"),
|
|
60
62
|
onFullscreenScrollbarChange: change("onFullscreenScrollbarChange"),
|
|
63
|
+
onFullscreenCopyOnSelectChange: change("onFullscreenCopyOnSelectChange"),
|
|
61
64
|
onWarningsChange: change("onWarningsChange"),
|
|
62
65
|
onCancel: options.onCancel,
|
|
63
66
|
};
|
|
@@ -67,7 +70,7 @@ export function createPiShellSettingsSelector(options) {
|
|
|
67
70
|
}
|
|
68
71
|
export function createPiShellModelSelector(options) {
|
|
69
72
|
ensureTheme();
|
|
70
|
-
const selector = new ModelSelectorComponent(createTuiFacade(options.runtime), options.currentModel, options.
|
|
73
|
+
const selector = new ModelSelectorComponent(createTuiFacade(options.runtime), options.currentModel, options.modelRuntime, options.scopedModels, options.onSelect, options.onCancel, options.initialSearchInput, options.onSelectAsDefault, options.defaultModel);
|
|
71
74
|
return componentPort(selector);
|
|
72
75
|
}
|
|
73
76
|
function toPiScopedModel(model) {
|
|
@@ -183,9 +186,9 @@ export function createPiShellExtensionSelector(title, options, onSelect, onCance
|
|
|
183
186
|
ensureTheme();
|
|
184
187
|
return componentPort(new ExtensionSelectorComponent(title, [...options], onSelect, onCancel));
|
|
185
188
|
}
|
|
186
|
-
export function createPiShellThinkingSelector(currentLevel, availableLevels, onSelect, onCancel) {
|
|
189
|
+
export function createPiShellThinkingSelector(currentLevel, availableLevels, onSelect, onCancel, onSelectAsDefault, defaultLevel) {
|
|
187
190
|
ensureTheme();
|
|
188
|
-
const selector = new ThinkingSelectorComponent(currentLevel, [...availableLevels], onSelect, onCancel);
|
|
191
|
+
const selector = new ThinkingSelectorComponent(currentLevel, [...availableLevels], onSelect, onCancel, onSelectAsDefault, defaultLevel);
|
|
189
192
|
const list = selector.getSelectList();
|
|
190
193
|
return componentPort(selector, data => list.handleInput(data));
|
|
191
194
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { visibleWidth, type AutocompleteProvider, type Component, type KeybindingsConfig, type TUI } from "
|
|
1
|
+
import { visibleWidth, type AutocompleteProvider, type Component, type KeybindingsConfig, type TUI } from "@earendil-works/pi-tui";
|
|
2
2
|
import type { OwnedUiImageAttachment, OwnedUiSessionViewModel, OwnedUiThinkingLevel, OwnedUiTranscriptBlock, SuggestionDecision } from "../../../contracts/owned-ui/index.js";
|
|
3
3
|
import type { HistoryEditorConstructor } from "./history-editor-loader.js";
|
|
4
4
|
import type { PiShellPromptInputPresentation } from "./prompt-input-port.js";
|
|
@@ -7,6 +7,8 @@ import type { PresentationComponentPort } from "../../../contracts/presentation/
|
|
|
7
7
|
/** Terminal-cell width authority used by Pi-rendered component rows. */
|
|
8
8
|
export declare const piShellVisibleWidth: typeof visibleWidth;
|
|
9
9
|
export declare const piShellTruncateToWidth: (text: string, width: number) => string;
|
|
10
|
+
/** A clickable URL in pinned Pi's grammar: an OSC 8 link where the terminal supports one, the plain URL otherwise. */
|
|
11
|
+
export declare const piShellHyperlink: (url: string, text?: string) => string;
|
|
10
12
|
export interface PiShellComponentPort extends PresentationComponentPort {
|
|
11
13
|
}
|
|
12
14
|
export type PiShellClipboardContent = {
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { setKeybindings, visibleWidth, truncateToWidth, } from "
|
|
1
|
+
import { hyperlink, setKeybindings, visibleWidth, truncateToWidth, } from "@earendil-works/pi-tui";
|
|
2
2
|
import { KeybindingsManager, } from "./upstream/adjacent/core/keybindings.js";
|
|
3
3
|
import { ensurePiTheme, } 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
|
+
/** A clickable URL in pinned Pi's grammar: an OSC 8 link where the terminal supports one, the plain URL otherwise. */
|
|
8
|
+
export const piShellHyperlink = (url, text = url) => hyperlink(url, text);
|
|
7
9
|
// Provenance: pinned from packages/coding-agent/src/core/slash-commands.ts at 914cf14.
|
|
8
10
|
export function createTuiFacade(options) {
|
|
9
11
|
const children = [];
|
|
@@ -33,7 +35,7 @@ export function createTuiFacade(options) {
|
|
|
33
35
|
getClearOnShrink: () => true,
|
|
34
36
|
setClearOnShrink() { },
|
|
35
37
|
setFocus() { },
|
|
36
|
-
showOverlay: () => ({ hide() { }, setHidden() { }, isHidden: () => false, focus() { }, unfocus() { }, isFocused: () => false }),
|
|
38
|
+
showOverlay: () => ({ hide() { }, setHidden() { }, isHidden: () => false, focus() { }, unfocus() { }, isFocused: () => false, getBounds: () => undefined }),
|
|
37
39
|
hideOverlay() { },
|
|
38
40
|
hasOverlay: () => false,
|
|
39
41
|
start() { },
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Component } from "
|
|
1
|
+
import { type Component } from "@earendil-works/pi-tui";
|
|
2
2
|
import type { OwnedUiTranscriptBlock } from "../../../contracts/owned-ui/index.js";
|
|
3
3
|
export interface PiShellSubmittedPromptComposer {
|
|
4
4
|
readonly layout: (width: number, source?: Date | number | null) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getMarkdownTheme } from "../startup-public.js";
|
|
2
|
-
import { Box, Markdown, Text } from "
|
|
2
|
+
import { Box, Markdown, Text } from "@earendil-works/pi-tui";
|
|
3
3
|
import { piTheme } from "./theme.js";
|
|
4
4
|
/** Branch summaries share the block kind but do not participate in prompt navigation. */
|
|
5
5
|
export function isPiPromptStyleCompaction(block) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { convertToPng } from "../startup-public.js";
|
|
2
|
-
import { type Component } from "
|
|
2
|
+
import { type Component } from "@earendil-works/pi-tui";
|
|
3
3
|
/**
|
|
4
4
|
* Own only current attachment presentation; tool renderers still receive original result content.
|
|
5
5
|
* Unlike pinned 0.84.2's index cache, entries follow immutable source bytes and stale completions
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { convertToPng } from "../startup-public.js";
|
|
2
|
-
import { getCapabilities, Image, Text } from "
|
|
2
|
+
import { getCapabilities, Image, Text } from "@earendil-works/pi-tui";
|
|
3
3
|
import { piTheme } from "./theme.js";
|
|
4
4
|
const MAX_BYTES = 20 * 1024 * 1024;
|
|
5
5
|
const MAX_IMAGES = 16;
|
|
@@ -10,16 +10,13 @@ const bytes = (data) => Math.floor(data.length * 3 / 4) - (data.endsWith("==") ?
|
|
|
10
10
|
* cannot republish. At most one conversion runs per mount; queued work is only the current set.
|
|
11
11
|
*/
|
|
12
12
|
export class ToolImagePresentation {
|
|
13
|
-
changed;
|
|
14
|
-
convert;
|
|
15
13
|
#entries = [];
|
|
16
14
|
#visible = false;
|
|
17
15
|
#disposed = false;
|
|
18
16
|
#active = false;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
17
|
+
changed;
|
|
18
|
+
convert;
|
|
19
|
+
constructor(changed, convert = convertToPng) { this.changed = changed; this.convert = convert; }
|
|
23
20
|
update(content, show) {
|
|
24
21
|
if (this.#disposed)
|
|
25
22
|
return;
|
|
@@ -1,11 +1,20 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
|
|
3
|
+
* packages/coding-agent/src/core/keybindings.ts.
|
|
4
|
+
* Modifications: Mechanical source port with Node import prefixes, public package-root agent-directory
|
|
5
|
+
* resolution, and an opt-in bare-A1 input profile including Ctrl+L level cycling and unbound model
|
|
6
|
+
* selection.
|
|
7
|
+
* Deviations: keybindings-public-config-boundary, owned-level-cycle-shortcut,
|
|
8
|
+
* owned-input-keybinding-aliases.
|
|
9
|
+
*/
|
|
10
|
+
import { type Keybinding, type KeybindingDefinitions, type KeybindingsConfig, type KeyId, KeybindingsManager as TuiKeybindingsManager } from "@earendil-works/pi-tui";
|
|
3
11
|
export interface AppKeybindings {
|
|
4
12
|
"app.interrupt": true;
|
|
5
13
|
"app.clear": true;
|
|
6
14
|
"app.exit": true;
|
|
7
15
|
"app.suspend": true;
|
|
8
16
|
"app.thinking.cycle": true;
|
|
17
|
+
"app.thinking.save": true;
|
|
9
18
|
"app.model.cycleForward": true;
|
|
10
19
|
"app.model.cycleBackward": true;
|
|
11
20
|
"app.model.select": true;
|
|
@@ -51,11 +60,28 @@ export interface AppKeybindings {
|
|
|
51
60
|
"owned.editor.extendRight": true;
|
|
52
61
|
}
|
|
53
62
|
export type AppKeybinding = keyof AppKeybindings;
|
|
54
|
-
declare
|
|
63
|
+
export declare function useWindowsKeybindings(platform?: NodeJS.Platform, env?: NodeJS.ProcessEnv): boolean;
|
|
64
|
+
declare module "@earendil-works/pi-tui" {
|
|
55
65
|
interface Keybindings extends AppKeybindings {
|
|
56
66
|
}
|
|
57
67
|
}
|
|
58
68
|
export declare const KEYBINDINGS: {
|
|
69
|
+
readonly "tui.editor.undo": {
|
|
70
|
+
readonly defaultKeys: "ctrl+z" | "alt+z" | "ctrl+-";
|
|
71
|
+
readonly description: "Undo";
|
|
72
|
+
};
|
|
73
|
+
readonly "tui.altScreen.previousPrompt": {
|
|
74
|
+
readonly defaultKeys: "ctrl+up" | ("ctrl+up" | "ctrl+shift+up")[];
|
|
75
|
+
readonly description: "Jump to previous semantic prompt";
|
|
76
|
+
};
|
|
77
|
+
readonly "tui.altScreen.nextPrompt": {
|
|
78
|
+
readonly defaultKeys: "ctrl+down" | ("ctrl+down" | "ctrl+shift+down")[];
|
|
79
|
+
readonly description: "Jump to next semantic prompt";
|
|
80
|
+
};
|
|
81
|
+
readonly "tui.altScreen.search": {
|
|
82
|
+
readonly defaultKeys: "ctrl+f" | "ctrl+shift+f";
|
|
83
|
+
readonly description: "Search the primary scroll view";
|
|
84
|
+
};
|
|
59
85
|
readonly "app.interrupt": {
|
|
60
86
|
readonly defaultKeys: "escape";
|
|
61
87
|
readonly description: "Cancel or abort";
|
|
@@ -76,12 +102,16 @@ export declare const KEYBINDINGS: {
|
|
|
76
102
|
readonly defaultKeys: "shift+tab";
|
|
77
103
|
readonly description: "Cycle thinking level";
|
|
78
104
|
};
|
|
105
|
+
readonly "app.thinking.save": {
|
|
106
|
+
readonly defaultKeys: "ctrl+s";
|
|
107
|
+
readonly description: "Save thinking level";
|
|
108
|
+
};
|
|
79
109
|
readonly "app.model.cycleForward": {
|
|
80
110
|
readonly defaultKeys: "ctrl+p";
|
|
81
111
|
readonly description: "Cycle to next model";
|
|
82
112
|
};
|
|
83
113
|
readonly "app.model.cycleBackward": {
|
|
84
|
-
readonly defaultKeys: "shift+ctrl+p";
|
|
114
|
+
readonly defaultKeys: "alt+p" | "shift+ctrl+p";
|
|
85
115
|
readonly description: "Cycle to previous model";
|
|
86
116
|
};
|
|
87
117
|
readonly "app.model.select": {
|
|
@@ -109,11 +139,11 @@ export declare const KEYBINDINGS: {
|
|
|
109
139
|
readonly description: "Copy message to clipboard";
|
|
110
140
|
};
|
|
111
141
|
readonly "app.message.followUp": {
|
|
112
|
-
readonly defaultKeys: "alt+enter";
|
|
142
|
+
readonly defaultKeys: "ctrl+q" | "alt+enter";
|
|
113
143
|
readonly description: "Queue follow-up message";
|
|
114
144
|
};
|
|
115
145
|
readonly "app.message.dequeue": {
|
|
116
|
-
readonly defaultKeys: "alt+up";
|
|
146
|
+
readonly defaultKeys: "alt+q" | "alt+up";
|
|
117
147
|
readonly description: "Restore queued messages";
|
|
118
148
|
};
|
|
119
149
|
readonly "app.clipboard.pasteImage": {
|
|
@@ -312,10 +342,6 @@ export declare const KEYBINDINGS: {
|
|
|
312
342
|
readonly defaultKeys: "alt+y";
|
|
313
343
|
readonly description: "Yank pop";
|
|
314
344
|
};
|
|
315
|
-
readonly "tui.editor.undo": {
|
|
316
|
-
readonly defaultKeys: "ctrl+-";
|
|
317
|
-
readonly description: "Undo";
|
|
318
|
-
};
|
|
319
345
|
readonly "tui.input.newLine": {
|
|
320
346
|
readonly defaultKeys: ["shift+enter", "ctrl+j"];
|
|
321
347
|
readonly description: "Insert newline";
|
|
@@ -380,18 +406,6 @@ export declare const KEYBINDINGS: {
|
|
|
380
406
|
readonly defaultKeys: [];
|
|
381
407
|
readonly description: "Scroll viewport down one line";
|
|
382
408
|
};
|
|
383
|
-
readonly "tui.altScreen.previousPrompt": {
|
|
384
|
-
readonly defaultKeys: "ctrl+shift+up";
|
|
385
|
-
readonly description: "Jump to previous semantic prompt";
|
|
386
|
-
};
|
|
387
|
-
readonly "tui.altScreen.nextPrompt": {
|
|
388
|
-
readonly defaultKeys: "ctrl+shift+down";
|
|
389
|
-
readonly description: "Jump to next semantic prompt";
|
|
390
|
-
};
|
|
391
|
-
readonly "tui.altScreen.search": {
|
|
392
|
-
readonly defaultKeys: "ctrl+shift+f";
|
|
393
|
-
readonly description: "Search the primary scroll view";
|
|
394
|
-
};
|
|
395
409
|
readonly "tui.altScreen.searchNext": {
|
|
396
410
|
readonly defaultKeys: ["enter", "ctrl+g"];
|
|
397
411
|
readonly description: "Select the next search match";
|
|
@@ -1,10 +1,38 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
|
|
3
|
+
* packages/coding-agent/src/core/keybindings.ts.
|
|
4
|
+
* Modifications: Mechanical source port with Node import prefixes, public package-root agent-directory
|
|
5
|
+
* resolution, and an opt-in bare-A1 input profile including Ctrl+L level cycling and unbound model
|
|
6
|
+
* selection.
|
|
7
|
+
* Deviations: keybindings-public-config-boundary, owned-level-cycle-shortcut,
|
|
8
|
+
* owned-input-keybinding-aliases.
|
|
9
|
+
*/
|
|
10
|
+
import { TUI_KEYBINDINGS, KeybindingsManager as TuiKeybindingsManager, } from "@earendil-works/pi-tui";
|
|
3
11
|
import { existsSync, readFileSync } from "node:fs";
|
|
4
12
|
import { join } from "node:path";
|
|
5
13
|
import { getAgentDir } from "../../../../startup-public.js";
|
|
14
|
+
export function useWindowsKeybindings(platform = process.platform, env = process.env) {
|
|
15
|
+
return platform === "win32" || (platform === "linux" && Boolean(env.WSL_DISTRO_NAME || env.WSL_INTEROP));
|
|
16
|
+
}
|
|
17
|
+
const windowsKeybindings = useWindowsKeybindings();
|
|
6
18
|
export const KEYBINDINGS = {
|
|
7
19
|
...TUI_KEYBINDINGS,
|
|
20
|
+
"tui.editor.undo": {
|
|
21
|
+
...TUI_KEYBINDINGS["tui.editor.undo"],
|
|
22
|
+
defaultKeys: process.platform === "win32" ? "ctrl+z" : windowsKeybindings ? "alt+z" : "ctrl+-",
|
|
23
|
+
},
|
|
24
|
+
"tui.altScreen.previousPrompt": {
|
|
25
|
+
...TUI_KEYBINDINGS["tui.altScreen.previousPrompt"],
|
|
26
|
+
defaultKeys: windowsKeybindings ? "ctrl+up" : ["ctrl+shift+up", "ctrl+up"],
|
|
27
|
+
},
|
|
28
|
+
"tui.altScreen.nextPrompt": {
|
|
29
|
+
...TUI_KEYBINDINGS["tui.altScreen.nextPrompt"],
|
|
30
|
+
defaultKeys: windowsKeybindings ? "ctrl+down" : ["ctrl+shift+down", "ctrl+down"],
|
|
31
|
+
},
|
|
32
|
+
"tui.altScreen.search": {
|
|
33
|
+
...TUI_KEYBINDINGS["tui.altScreen.search"],
|
|
34
|
+
defaultKeys: windowsKeybindings ? "ctrl+f" : "ctrl+shift+f",
|
|
35
|
+
},
|
|
8
36
|
"app.interrupt": { defaultKeys: "escape", description: "Cancel or abort" },
|
|
9
37
|
"app.clear": { defaultKeys: "ctrl+c", description: "Clear editor" },
|
|
10
38
|
"app.exit": { defaultKeys: "ctrl+d", description: "Exit when editor is empty" },
|
|
@@ -16,12 +44,16 @@ export const KEYBINDINGS = {
|
|
|
16
44
|
defaultKeys: "shift+tab",
|
|
17
45
|
description: "Cycle thinking level",
|
|
18
46
|
},
|
|
47
|
+
"app.thinking.save": {
|
|
48
|
+
defaultKeys: "ctrl+s",
|
|
49
|
+
description: "Save thinking level",
|
|
50
|
+
},
|
|
19
51
|
"app.model.cycleForward": {
|
|
20
52
|
defaultKeys: "ctrl+p",
|
|
21
53
|
description: "Cycle to next model",
|
|
22
54
|
},
|
|
23
55
|
"app.model.cycleBackward": {
|
|
24
|
-
defaultKeys: "shift+ctrl+p",
|
|
56
|
+
defaultKeys: windowsKeybindings ? "alt+p" : "shift+ctrl+p",
|
|
25
57
|
description: "Cycle to previous model",
|
|
26
58
|
},
|
|
27
59
|
"app.model.select": { defaultKeys: "ctrl+l", description: "Open model selector" },
|
|
@@ -43,15 +75,15 @@ export const KEYBINDINGS = {
|
|
|
43
75
|
description: "Copy message to clipboard",
|
|
44
76
|
},
|
|
45
77
|
"app.message.followUp": {
|
|
46
|
-
defaultKeys: "alt+enter",
|
|
78
|
+
defaultKeys: windowsKeybindings ? "ctrl+q" : "alt+enter",
|
|
47
79
|
description: "Queue follow-up message",
|
|
48
80
|
},
|
|
49
81
|
"app.message.dequeue": {
|
|
50
|
-
defaultKeys: "alt+up",
|
|
82
|
+
defaultKeys: windowsKeybindings ? "alt+q" : "alt+up",
|
|
51
83
|
description: "Restore queued messages",
|
|
52
84
|
},
|
|
53
85
|
"app.clipboard.pasteImage": {
|
|
54
|
-
defaultKeys:
|
|
86
|
+
defaultKeys: windowsKeybindings ? "alt+v" : "ctrl+v",
|
|
55
87
|
description: "Paste image from clipboard (text fallback)",
|
|
56
88
|
},
|
|
57
89
|
"app.session.new": { defaultKeys: [], description: "Start a new session" },
|
|
@@ -284,11 +316,15 @@ function orderKeybindingsConfig(config) {
|
|
|
284
316
|
}
|
|
285
317
|
return ordered;
|
|
286
318
|
}
|
|
319
|
+
// Rationale: upstream strips the BOM through a private util the package does not export; the one-line helper lives here.
|
|
320
|
+
function stripBom(content) {
|
|
321
|
+
return content.startsWith("\uFEFF") ? content.slice(1) : content;
|
|
322
|
+
}
|
|
287
323
|
function loadRawConfig(path) {
|
|
288
324
|
if (!existsSync(path))
|
|
289
325
|
return undefined;
|
|
290
326
|
try {
|
|
291
|
-
const parsed = JSON.parse(readFileSync(path, "utf-8"));
|
|
327
|
+
const parsed = JSON.parse(stripBom(readFileSync(path, "utf-8")));
|
|
292
328
|
if (typeof parsed !== "object" || parsed === null)
|
|
293
329
|
return undefined;
|
|
294
330
|
return parsed;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"sourcePackage": "@earendil-works/pi-coding-agent",
|
|
3
|
-
"sourceVersion": "0.
|
|
3
|
+
"sourceVersion": "0.85.1",
|
|
4
4
|
"upstreamRepository": "https://github.com/earendil-works/pi.git",
|
|
5
|
-
"upstreamCommit": "
|
|
5
|
+
"upstreamCommit": "d981de1229ef899957bbe968bc8dcda02a21f477",
|
|
6
6
|
"sourcePath": "dist/modes/interactive/assets/clankolas.png",
|
|
7
7
|
"sourceSha256": "169acd0dfe6fbb8d8742ed24a3fc654fd0b2e2d4223c733249c5493723f1b72d",
|
|
8
8
|
"license": "MIT",
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* packages/coding-agent/src/modes/interactive/components/countdown-timer.ts
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
|
|
3
|
+
* packages/coding-agent/src/modes/interactive/components/countdown-timer.ts.
|
|
4
|
+
* Modifications: Mechanical source port with ECMAScript private fields; imports remain on the public
|
|
5
|
+
* Pi TUI package root.
|
|
6
|
+
* Deviations: countdown-owned-private-fields.
|
|
4
7
|
*/
|
|
5
|
-
import type { TUI } from "
|
|
8
|
+
import type { TUI } from "@earendil-works/pi-tui";
|
|
6
9
|
export declare class CountdownTimer {
|
|
7
10
|
#private;
|
|
8
11
|
constructor(timeoutMs: number, tui: TUI | undefined, onTick: (seconds: number) => void, onExpire: () => void);
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
|
|
3
|
+
* packages/coding-agent/src/modes/interactive/components/daxnuts.ts.
|
|
4
|
+
* Modifications: Mechanical pinned source port with private imports remapped to public package-root
|
|
5
|
+
* types/APIs and A1-owned theme boundaries; behavior remains acceptance-tested.
|
|
6
|
+
* Deviations: none.
|
|
7
|
+
*/
|
|
1
8
|
/**
|
|
2
9
|
* POWERED BY DAXNUTS - Easter egg for OpenCode + Kimi K2.5
|
|
3
10
|
*
|
|
4
11
|
* A heartfelt tribute to dax (@thdxr) for providing free Kimi K2.5 access via OpenCode.
|
|
5
12
|
*/
|
|
6
|
-
import type { Component, TUI } from "
|
|
13
|
+
import type { Component, TUI } from "@earendil-works/pi-tui";
|
|
7
14
|
export declare class DaxnutsComponent implements Component {
|
|
8
15
|
private ui;
|
|
9
16
|
private image;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
|
|
3
|
+
* packages/coding-agent/src/modes/interactive/components/daxnuts.ts.
|
|
4
|
+
* Modifications: Mechanical pinned source port with private imports remapped to public package-root
|
|
5
|
+
* types/APIs and A1-owned theme boundaries; behavior remains acceptance-tested.
|
|
6
|
+
* Deviations: none.
|
|
7
|
+
*/
|
|
4
8
|
/**
|
|
5
9
|
* POWERED BY DAXNUTS - Easter egg for OpenCode + Kimi K2.5
|
|
6
10
|
*
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
|
|
3
|
+
* packages/coding-agent/src/modes/interactive/components/earendil-announcement.ts.
|
|
4
|
+
* Modifications: Mechanical pinned source port with private imports remapped to public package-root
|
|
5
|
+
* types/APIs and A1-owned theme boundaries. The unchanged image is loaded lazily from its attributed,
|
|
6
|
+
* verified owned resource, preserving pinned image/fallback rows without runtime dependency-directory
|
|
7
|
+
* reads or package mutation. Command-outcome parity exercises the restored presentation.
|
|
8
|
+
* Deviations: none.
|
|
9
|
+
*/
|
|
4
10
|
import { readFileSync } from "node:fs";
|
|
5
|
-
import { Container, Image, Spacer, Text } from "
|
|
11
|
+
import { Container, Image, Spacer, Text } from "@earendil-works/pi-tui";
|
|
6
12
|
import { DynamicBorder } from "../../../startup-public.js";
|
|
7
13
|
import { piTheme } from "../theme/theme.js";
|
|
8
14
|
const BLOG_URL = "https://mariozechner.at/posts/2026-04-08-ive-sold-out/";
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* packages/coding-agent/src/modes/interactive/components/extension-editor.ts
|
|
4
|
-
* Modifications:
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
|
|
3
|
+
* packages/coding-agent/src/modes/interactive/components/extension-editor.ts.
|
|
4
|
+
* Modifications: Mechanical port: remap pi-tui to the root public singleton, use owned
|
|
5
|
+
* keybindings/theme and external-editor seams, preserve editor layout, hints, focus, submission,
|
|
6
|
+
* cancellation, and external-editor lifecycle.
|
|
7
|
+
* Deviations: none.
|
|
5
8
|
*/
|
|
6
|
-
import { Container, type TUI } from "
|
|
9
|
+
import { Container, type TUI } from "@earendil-works/pi-tui";
|
|
7
10
|
import type { KeybindingsManager } from "../adjacent/core/keybindings.js";
|
|
8
11
|
export declare class ExtensionEditorComponent extends Container {
|
|
9
12
|
#private;
|