@timurproko/a1 0.2.6 → 0.2.7-dev.1222
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 +41 -3
- package/bin/automatic-update.js +7 -0
- package/bin/cli.js +4 -0
- package/bin/guardian.js +5 -0
- package/bin/tab-launch-context.d.ts +27 -0
- package/bin/tab-launch-context.js +94 -0
- package/bin/ui.js +107 -59
- package/dist/app/session-shell/clipboard-diagnostics.js +1 -1
- package/dist/app/session-shell/dialog-coordinator.d.ts +42 -0
- package/dist/app/session-shell/dialog-coordinator.js +133 -0
- package/dist/app/session-shell/dock-chrome.d.ts +34 -0
- package/dist/app/session-shell/dock-chrome.js +109 -0
- package/dist/app/session-shell/exit-notice.d.ts +1 -1
- package/dist/app/session-shell/exit-notice.js +1 -1
- package/dist/app/session-shell/extension-surface.d.ts +30 -0
- package/dist/app/session-shell/extension-surface.js +105 -0
- package/dist/app/session-shell/helper-pool.d.ts +3 -5
- package/dist/app/session-shell/helper-pool.js +3 -5
- package/dist/app/session-shell/input-surface-switch.d.ts +36 -0
- package/dist/app/session-shell/input-surface-switch.js +85 -0
- package/dist/app/session-shell/login-interaction.d.ts +27 -0
- package/dist/app/session-shell/login-interaction.js +91 -0
- package/dist/app/session-shell/prompt-submission.d.ts +48 -0
- package/dist/app/session-shell/prompt-submission.js +276 -0
- package/dist/app/session-shell/resident-tab-coordinator.d.ts +38 -0
- package/dist/app/session-shell/resident-tab-coordinator.js +77 -0
- package/dist/app/session-shell/response-copy-helper.js +21 -6
- package/dist/app/session-shell/response-copy-protocol.d.ts +1 -1
- package/dist/app/session-shell/response-copy-transport.d.ts +16 -6
- package/dist/app/session-shell/response-copy-transport.js +69 -17
- package/dist/app/session-shell/session-concern.d.ts +22 -0
- package/dist/app/session-shell/session-concern.js +29 -0
- package/dist/app/session-shell/session-lifecycle.d.ts +29 -0
- package/dist/app/session-shell/session-lifecycle.js +49 -0
- package/dist/app/session-shell/session-shell-root.d.ts +42 -6
- package/dist/app/session-shell/session-shell-root.js +197 -908
- package/dist/app/session-shell/session-shell.d.ts +3 -8
- package/dist/app/session-shell/session-shell.js +327 -835
- package/dist/app/session-shell/session-viewport-controller.d.ts +2 -1
- package/dist/app/session-shell/session-viewport-controller.js +41 -38
- package/dist/app/session-shell/settings-bindings.d.ts +17 -0
- package/dist/app/session-shell/settings-bindings.js +91 -0
- package/dist/app/session-shell/shell-editor-factory.d.ts +27 -0
- package/dist/app/session-shell/shell-editor-factory.js +105 -0
- package/dist/app/session-shell/shell-host.d.ts +6 -0
- package/dist/app/session-shell/shell-host.js +34 -7
- package/dist/app/session-shell/shell-layout.d.ts +64 -0
- package/dist/app/session-shell/shell-layout.js +18 -0
- package/dist/app/session-shell/suggestion-surface.d.ts +25 -0
- package/dist/app/session-shell/suggestion-surface.js +63 -0
- package/dist/app/session-shell/transcript-document.d.ts +78 -0
- package/dist/app/session-shell/transcript-document.js +365 -0
- package/dist/app/session-shell/viewport-layout.d.ts +31 -0
- package/dist/app/session-shell/viewport-layout.js +160 -0
- package/dist/app/session-shell/workflow-output.d.ts +33 -0
- package/dist/app/session-shell/workflow-output.js +174 -0
- package/dist/app/session-shell/workflow-router.d.ts +25 -0
- package/dist/app/session-shell/workflow-router.js +39 -0
- package/dist/cli/dispatch.d.ts +11 -1
- package/dist/cli/dispatch.js +79 -5
- package/dist/cli/tabs-request.d.ts +7 -0
- package/dist/cli/tabs-request.js +1 -0
- package/dist/cli/tabs.d.ts +14 -0
- package/dist/cli/tabs.js +151 -0
- package/dist/cli/version-stats.js +38 -3
- package/dist/composition/owned-settings.d.ts +12 -0
- package/dist/composition/owned-settings.js +36 -0
- package/dist/composition/owned-ui.d.ts +27 -28
- package/dist/composition/owned-ui.js +207 -153
- package/dist/composition/reference-selection-options.d.ts +3 -0
- package/dist/composition/reference-selection-options.js +16 -0
- package/dist/composition/resident-tab-bridge.d.ts +25 -0
- package/dist/composition/resident-tab-bridge.js +180 -0
- package/dist/composition/session-backend.d.ts +19 -0
- package/dist/composition/session-backend.js +1 -0
- package/dist/composition/session-runtime-registry.d.ts +20 -0
- package/dist/composition/session-runtime-registry.js +85 -0
- package/dist/composition/settings-route-host.d.ts +16 -2
- package/dist/composition/settings-route-host.js +42 -17
- package/dist/composition/settings-search-input.d.ts +9 -0
- package/dist/composition/settings-search-input.js +61 -0
- package/dist/composition/startup-route.d.ts +32 -0
- package/dist/composition/startup-route.js +72 -0
- package/dist/composition/utility-tab.d.ts +28 -0
- package/dist/composition/utility-tab.js +244 -0
- package/dist/contracts/owned-ui/index.d.ts +1 -1
- package/dist/contracts/owned-ui/model.d.ts +3 -0
- package/dist/contracts/owned-ui/session-backend.d.ts +3 -0
- package/dist/contracts/owned-ui/session-workflows.d.ts +11 -4
- package/dist/contracts/presentation/index.d.ts +11 -0
- package/dist/contracts/presentation/index.js +12 -0
- package/dist/features/launch/development-launch.js +6 -0
- package/dist/features/launch/index.d.ts +1 -1
- package/dist/features/launch/intent.d.ts +3 -1
- package/dist/features/launch/intent.js +7 -4
- package/dist/features/launch/profile-paths.js +4 -0
- package/dist/features/owned-ui/plus-menu-dialog.d.ts +22 -0
- package/dist/features/owned-ui/plus-menu-dialog.js +84 -0
- package/dist/features/owned-ui/project-trust-dialog.d.ts +1 -1
- package/dist/features/owned-ui/project-trust-dialog.js +6 -8
- package/dist/features/owned-ui/project-trust-prompt.d.ts +1 -0
- package/dist/features/owned-ui/project-trust-prompt.js +7 -3
- package/dist/features/owned-ui/reference-document-selection.d.ts +30 -0
- package/dist/features/owned-ui/reference-document-selection.js +179 -0
- package/dist/features/owned-ui/reference-screen-app.d.ts +6 -1
- package/dist/features/owned-ui/reference-screen-app.js +51 -10
- package/dist/features/owned-ui/settings-app.d.ts +13 -2
- package/dist/features/owned-ui/settings-app.js +136 -97
- package/dist/features/owned-ui/settings-search-input.d.ts +29 -0
- package/dist/features/owned-ui/settings-search-input.js +1 -0
- package/dist/features/prompt-history/index.d.ts +1 -1
- package/dist/features/prompt-history/paths.d.ts +2 -1
- package/dist/features/prompt-history/paths.js +10 -2
- package/dist/features/prompt-history/service.d.ts +5 -0
- package/dist/features/prompt-history/service.js +1 -1
- package/dist/features/resident-tab/auto-name.d.ts +11 -0
- package/dist/features/resident-tab/auto-name.js +44 -0
- package/dist/features/resident-tab/index.d.ts +5 -0
- package/dist/features/resident-tab/index.js +7 -0
- package/dist/features/resident-tab/shortcut-bindings-file.d.ts +8 -0
- package/dist/features/resident-tab/shortcut-bindings-file.js +40 -0
- package/dist/features/resident-tab/shortcut-declarations.d.ts +13 -0
- package/dist/features/resident-tab/shortcut-declarations.js +26 -0
- package/dist/features/resident-tab/shortcut-projection.d.ts +29 -0
- package/dist/features/resident-tab/shortcut-projection.js +64 -0
- package/dist/features/resident-tab/status-deriver.d.ts +10 -0
- package/dist/features/resident-tab/status-deriver.js +12 -0
- package/dist/foundation/launch-context/index.d.ts +12 -0
- package/dist/foundation/launch-context/index.js +26 -0
- package/dist/foundation/launch-guardian/exit-watcher.d.ts +14 -0
- package/dist/foundation/launch-guardian/exit-watcher.js +94 -0
- package/dist/foundation/launch-guardian/main.d.ts +7 -1
- package/dist/foundation/launch-guardian/main.js +60 -7
- package/dist/foundation/lifecycle/session-repository-context.js +16 -2
- package/dist/foundation/process-containment/{native-guardian-containment.d.ts → addon-containment.d.ts} +7 -5
- package/dist/foundation/process-containment/addon-containment.js +139 -0
- package/dist/foundation/process-containment/addon-process-inspector.d.ts +11 -0
- package/dist/foundation/process-containment/addon-process-inspector.js +36 -0
- package/dist/foundation/process-containment/addon.d.ts +42 -0
- package/dist/foundation/process-containment/addon.js +57 -0
- package/dist/foundation/process-containment/artifact.d.ts +1 -1
- package/dist/foundation/process-containment/artifact.js +6 -5
- package/dist/foundation/process-containment/contracts.d.ts +2 -0
- package/dist/foundation/process-containment/index.d.ts +4 -4
- package/dist/foundation/process-containment/index.js +3 -3
- package/dist/foundation/process-containment/native-process-inspector.d.ts +2 -1
- package/dist/foundation/process-containment/native-process-inspector.js +10 -10
- package/dist/foundation/release/automatic-update.d.ts +37 -0
- package/dist/foundation/release/automatic-update.js +265 -0
- package/dist/foundation/release/bootstrap.d.ts +7 -9
- package/dist/foundation/release/bootstrap.js +107 -24
- package/dist/foundation/release/cohort-state.d.ts +1 -1
- package/dist/foundation/release/cohort-state.js +1 -1
- package/dist/foundation/release/dependency-certification.js +54 -19
- package/dist/foundation/release/early-accent.d.ts +12 -0
- package/dist/foundation/release/early-accent.js +59 -0
- package/dist/foundation/release/index.d.ts +2 -2
- package/dist/foundation/release/index.js +2 -2
- package/dist/foundation/release/latest-release.d.ts +24 -2
- package/dist/foundation/release/latest-release.js +51 -1
- package/dist/foundation/release/progress-palette.generated.d.ts +137 -3
- package/dist/foundation/release/progress-palette.generated.js +137 -3
- package/dist/foundation/release/release-gc.d.ts +3 -0
- package/dist/foundation/release/release-gc.js +59 -8
- package/dist/foundation/release/release-store.d.ts +12 -0
- package/dist/foundation/release/release-store.js +124 -2
- package/dist/foundation/release/update-execution-lease.d.ts +48 -0
- package/dist/foundation/release/update-execution-lease.js +161 -0
- package/dist/foundation/release/update.d.ts +12 -7
- package/dist/foundation/release/update.js +281 -196
- package/dist/foundation/resident-tabs/bounded-host-command.d.ts +18 -0
- package/dist/foundation/resident-tabs/bounded-host-command.js +39 -0
- package/dist/foundation/resident-tabs/bridge-client.d.ts +70 -0
- package/dist/foundation/resident-tabs/bridge-client.js +321 -0
- package/dist/foundation/resident-tabs/doctor.d.ts +28 -0
- package/dist/foundation/resident-tabs/doctor.js +166 -0
- package/dist/foundation/resident-tabs/draft-checkpoint.d.ts +27 -0
- package/dist/foundation/resident-tabs/draft-checkpoint.js +145 -0
- package/dist/foundation/resident-tabs/ensure-terminal-host.d.ts +36 -0
- package/dist/foundation/resident-tabs/ensure-terminal-host.js +151 -0
- package/dist/foundation/resident-tabs/fault-injection.d.ts +8 -0
- package/dist/foundation/resident-tabs/fault-injection.js +26 -0
- package/dist/foundation/resident-tabs/fixture-control.d.ts +7 -0
- package/dist/foundation/resident-tabs/fixture-control.js +35 -0
- package/dist/foundation/resident-tabs/host-entry.d.ts +1 -0
- package/dist/foundation/resident-tabs/host-entry.js +17 -0
- package/dist/foundation/resident-tabs/index.d.ts +12 -0
- package/dist/foundation/resident-tabs/index.js +6 -0
- package/dist/foundation/resident-tabs/maintenance.d.ts +39 -0
- package/dist/foundation/resident-tabs/maintenance.js +75 -0
- package/dist/foundation/resident-tabs/progress-observation-schema.d.ts +34 -0
- package/dist/foundation/resident-tabs/progress-observation-schema.js +1 -0
- package/dist/foundation/resident-tabs/progress-observation.d.ts +4 -0
- package/dist/foundation/resident-tabs/progress-observation.js +150 -0
- package/dist/foundation/resident-tabs/prompt-journal.d.ts +63 -0
- package/dist/foundation/resident-tabs/prompt-journal.js +213 -0
- package/dist/foundation/resident-tabs/protocol.d.ts +12 -0
- package/dist/foundation/resident-tabs/protocol.js +195 -0
- package/dist/foundation/resident-tabs/recovery.d.ts +26 -0
- package/dist/foundation/resident-tabs/recovery.js +205 -0
- package/dist/foundation/resident-tabs/release-holds.d.ts +28 -0
- package/dist/foundation/resident-tabs/release-holds.js +75 -0
- package/dist/foundation/resident-tabs/routes.d.ts +5 -0
- package/dist/foundation/resident-tabs/routes.js +5 -0
- package/dist/foundation/resident-tabs/routing.d.ts +11 -0
- package/dist/foundation/resident-tabs/routing.js +10 -0
- package/dist/foundation/resident-tabs/session-sync.d.ts +14 -0
- package/dist/foundation/resident-tabs/session-sync.js +37 -0
- package/dist/foundation/resident-tabs/settings.d.ts +12 -0
- package/dist/foundation/resident-tabs/settings.js +58 -0
- package/dist/foundation/resident-tabs/terminal-host-artifact.d.ts +14 -0
- package/dist/foundation/resident-tabs/terminal-host-artifact.js +78 -0
- package/dist/foundation/resident-tabs/zip-archive.d.ts +9 -0
- package/dist/foundation/resident-tabs/zip-archive.js +56 -0
- package/dist/foundation/session-writer-lock/index.d.ts +30 -0
- package/dist/foundation/session-writer-lock/index.js +203 -0
- package/dist/foundation/startup/startup-descriptor.js +2 -2
- package/dist/foundation/terminal-cleanup/index.d.ts +1 -1
- package/dist/foundation/terminal-cleanup/index.js +1 -1
- package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +6 -0
- package/dist/foundation/terminal-cleanup/terminal-reset.js +6 -0
- package/dist/integrations/pi/components/editor-interaction.d.ts +2 -0
- package/dist/integrations/pi/components/modal-frame.d.ts +17 -1
- package/dist/integrations/pi/components/modal-frame.js +48 -9
- package/dist/integrations/pi/components/models-dialog.js +4 -52
- package/dist/integrations/pi/components/owned-editor-ux.d.ts +6 -1
- package/dist/integrations/pi/components/owned-editor-ux.js +138 -11
- package/dist/integrations/pi/components/resources/builtin-themes.d.ts +4 -4
- package/dist/integrations/pi/components/resources/builtin-themes.js +4 -4
- package/dist/integrations/pi/components/share-operation-dialog.d.ts +2 -0
- package/dist/integrations/pi/components/share-operation-dialog.js +2 -1
- package/dist/integrations/pi/components/shell-editor-autocomplete.js +58 -36
- package/dist/integrations/pi/components/shell-extension-ui.js +79 -60
- package/dist/integrations/pi/components/shell-footer-status.d.ts +1 -1
- package/dist/integrations/pi/components/shell-footer-status.js +21 -5
- package/dist/integrations/pi/components/shell-hotkey-sections.js +1 -1
- package/dist/integrations/pi/components/shell-presenters-info.d.ts +5 -2
- package/dist/integrations/pi/components/shell-presenters-info.js +18 -4
- package/dist/integrations/pi/components/shell-presenters-transcript.js +4 -1
- package/dist/integrations/pi/components/shell-selectors-dialogs.js +5 -1
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +12 -1
- package/dist/integrations/pi/components/skills-dialog.js +2 -2
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +17 -4
- package/dist/integrations/pi/components/upstream/assets/earendil-image.json +2 -2
- package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-editor.js +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-input.js +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/components/mermaid.js +1 -1
- package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +8 -6
- package/dist/integrations/pi/components/upstream/components/owned-editor.js +16 -9
- package/dist/integrations/pi/components/upstream/components/pi-logo.js +1 -1
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +4 -4
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +2 -2
- package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +2 -1
- package/dist/integrations/pi/components/upstream/components/session-footer.js +31 -25
- package/dist/integrations/pi/components/upstream/components/session-selector-search.js +1 -1
- package/dist/integrations/pi/components/upstream/components/session-selector.js +8 -7
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +1 -1
- package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +2 -2
- package/dist/integrations/pi/components/upstream/components/status-indicator.js +3 -3
- package/dist/integrations/pi/components/upstream/components/themed-text.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/themed-text.js +1 -1
- package/dist/integrations/pi/components/upstream/components/thinking-selector.d.ts +8 -7
- package/dist/integrations/pi/components/upstream/components/thinking-selector.js +10 -9
- package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +2 -6
- package/dist/integrations/pi/components/upstream/components/tool-execution.js +103 -101
- package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +9 -9
- package/dist/integrations/pi/components/upstream/components/tree-selector.js +13 -21
- package/dist/integrations/pi/components/upstream/components/trust-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/external-editor.js +1 -1
- package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +2 -2
- package/dist/integrations/pi/components/upstream/history/editor-core.js +7 -5
- package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/history/kill-ring.js +1 -1
- package/dist/integrations/pi/components/upstream/history/printable-key.js +1 -1
- package/dist/integrations/pi/components/upstream/history/text-helpers.js +1 -1
- package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/history/undo-stack.js +1 -1
- package/dist/integrations/pi/components/upstream/history/word-navigation.js +1 -1
- package/dist/integrations/pi/components/upstream/model-search.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/program-status-reporter.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/theme/theme.d.ts +5 -0
- package/dist/integrations/pi/components/upstream/theme/theme.js +29 -2
- package/dist/integrations/pi/engine/adapter.d.ts +5 -77
- package/dist/integrations/pi/engine/adapter.js +95 -394
- package/dist/integrations/pi/engine/command-dispatch.d.ts +13 -0
- package/dist/integrations/pi/engine/command-dispatch.js +57 -0
- package/dist/integrations/pi/engine/host.js +2 -2
- package/dist/integrations/pi/engine/offline-settings-port.d.ts +23 -0
- package/dist/integrations/pi/engine/offline-settings-port.js +53 -0
- package/dist/integrations/pi/engine/pi-settings-metadata.json +14 -2
- package/dist/integrations/pi/engine/ports.d.ts +56 -0
- package/dist/integrations/pi/engine/ports.js +93 -0
- package/dist/integrations/pi/engine/prompt-suggestions.d.ts +1 -0
- package/dist/integrations/pi/engine/prompt-suggestions.js +40 -0
- package/dist/integrations/pi/engine/resources/changelog.json +4 -4
- package/dist/integrations/pi/engine/runtime-integration.js +102 -29
- package/dist/integrations/pi/engine/session-runtime.d.ts +0 -6
- package/dist/integrations/pi/engine/session-runtime.js +13 -5
- package/dist/integrations/pi/engine/session-selection.d.ts +3 -0
- package/dist/integrations/pi/engine/session-selection.js +45 -9
- package/dist/integrations/pi/engine/settings-bridge.d.ts +5 -0
- package/dist/integrations/pi/engine/settings-bridge.js +15 -0
- package/dist/integrations/pi/engine/settings-port.js +11 -15
- package/dist/integrations/pi/engine/view-state.d.ts +42 -0
- package/dist/integrations/pi/engine/view-state.js +126 -0
- package/dist/integrations/pi/engine/workflow-contexts.js +10 -1
- package/dist/integrations/pi/engine/workflow-runner.js +74 -5
- package/dist/integrations/pi/engine/workflow-support.d.ts +12 -0
- package/dist/integrations/pi/engine/workflow-support.js +36 -0
- package/dist/integrations/pi/engine/workflows.d.ts +3 -1
- package/dist/integrations/pi/engine/workflows.js +1 -0
- package/dist/integrations/pi/startup-public.js +257 -310
- package/dist/integrations/pi/startup-public.manifest.json +564 -440
- package/dist/integrations/pi/tui-runtime/adapter.d.ts +6 -0
- package/dist/integrations/pi/tui-runtime/adapter.js +32 -1
- package/dist/integrations/pi/tui-runtime/contracts.d.ts +5 -0
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +12 -1
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +31 -2
- package/dist/native/darwin-arm64/manifest.json +10 -7
- package/dist/native/darwin-arm64/process-guardian.node +0 -0
- package/dist/native/darwin-arm64/terminal-host-THIRD-PARTY-NOTICES.txt +10500 -0
- package/dist/native/darwin-arm64/terminal-host.manifest.json +46 -0
- package/dist/native/darwin-arm64/terminal-host.node +0 -0
- package/dist/native/darwin-x64/manifest.json +23 -0
- package/dist/native/darwin-x64/process-guardian.node +0 -0
- package/dist/native/darwin-x64/terminal-host-THIRD-PARTY-NOTICES.txt +10737 -0
- package/dist/native/darwin-x64/terminal-host.manifest.json +46 -0
- package/dist/native/darwin-x64/terminal-host.node +0 -0
- package/dist/native/linux-x64/manifest.json +10 -7
- package/dist/native/linux-x64/process-guardian.node +0 -0
- package/dist/native/linux-x64/terminal-host-THIRD-PARTY-NOTICES.txt +11226 -0
- package/dist/native/linux-x64/terminal-host.manifest.json +46 -0
- package/dist/native/linux-x64/terminal-host.node +0 -0
- package/dist/native/win32-x64/manifest.json +10 -7
- package/dist/native/win32-x64/process-guardian.node +0 -0
- package/dist/native/win32-x64/terminal-host-THIRD-PARTY-NOTICES.txt +10757 -0
- package/dist/native/win32-x64/terminal-host.manifest.json +46 -0
- package/dist/native/win32-x64/terminal-host.node +0 -0
- package/dist/product-identity.d.ts +3 -3
- package/dist/product-identity.js +4 -4
- package/dist/product-identity.json +16 -2
- package/dist/runtime-payload-inventory.json +6330 -6677
- package/dist/ui/apps/host.d.ts +2 -0
- package/dist/ui/apps/host.js +7 -1
- package/dist/ui/components/dialog-panel.d.ts +17 -8
- package/dist/ui/components/dialog-panel.js +117 -41
- package/dist/ui/components/index.d.ts +5 -5
- package/dist/ui/components/index.js +4 -4
- package/dist/ui/components/line-input.d.ts +4 -1
- package/dist/ui/components/line-input.js +3 -1
- package/dist/ui/components/prompt-input.d.ts +11 -8
- package/dist/ui/components/prompt-input.js +15 -13
- package/dist/ui/components/scrollbar.d.ts +1 -1
- package/dist/ui/components/scrollbar.js +1 -1
- package/dist/ui/components/selection-copy.d.ts +3 -3
- package/dist/ui/components/selection-copy.js +16 -1
- package/dist/ui/components/spans.js +2 -2
- package/dist/ui/components/submitted-prompt.d.ts +9 -6
- package/dist/ui/components/submitted-prompt.js +20 -12
- package/dist/ui/components/surface.js +4 -2
- package/dist/ui/components/text-selection.d.ts +1 -2
- package/dist/ui/components/text-selection.js +5 -2
- package/dist/ui/components/text.d.ts +3 -6
- package/dist/ui/components/text.js +6 -8
- package/dist/ui/components/transcript-viewport.d.ts +9 -2
- package/dist/ui/components/transcript-viewport.js +179 -58
- package/dist/ui/settings/declarations.d.ts +90 -16
- package/dist/ui/settings/declarations.js +67 -14
- package/dist/ui/settings/early-accent.d.ts +81 -0
- package/dist/ui/settings/early-accent.js +50 -0
- package/dist/ui/settings/index.d.ts +4 -2
- package/dist/ui/settings/index.js +2 -1
- package/dist/ui/settings/manager.d.ts +16 -3
- package/dist/ui/settings/manager.js +122 -33
- package/dist/ui/settings/migrations.d.ts +6 -0
- package/dist/ui/settings/migrations.js +73 -0
- package/dist/ui/settings/profile-document.d.ts +26 -0
- package/dist/ui/settings/profile-document.js +164 -0
- package/dist/ui/settings/progress-palette.generated.d.ts +139 -0
- package/dist/ui/settings/progress-palette.generated.js +139 -0
- package/dist/ui/settings/sections.d.ts +4 -0
- package/dist/ui/settings/sections.js +9 -3
- package/docs/architecture/boundaries.md +24 -9
- package/docs/architecture/evidence/resident-tabs/linux-x64.md +37 -0
- package/docs/architecture/evidence/resident-tabs/macos-arm64.md +36 -0
- package/docs/architecture/evidence/resident-tabs/macos-x64.md +35 -0
- package/docs/architecture/evidence/resident-tabs/windows-x64.md +36 -0
- package/docs/architecture/internal-naming.md +3 -1
- package/docs/architecture/process-guardian-provenance.md +18 -10
- package/docs/architecture/project-structure.md +8 -0
- package/docs/architecture/resident-tabs-requirements.md +18 -0
- package/docs/architecture/resident-tabs.md +649 -0
- package/docs/architecture/response-copy-delivery.md +1 -1
- package/docs/architecture/terminal-host-proof-gate.md +2 -0
- package/docs/architecture/terminal-host-provenance.md +16 -4
- package/docs/architecture/tool-image-presentation.md +2 -1
- package/docs/architecture/toolchain.md +11 -9
- package/docs/ci-release-runbook.md +14 -7
- package/docs/features/launch-profiles.md +11 -8
- package/docs/features/prompt-history.md +41 -20
- package/docs/manual-resident-tabs-acceptance.md +51 -0
- package/docs/openspec-archive-automation.md +49 -22
- package/docs/validation.md +49 -9
- package/package.json +19 -6
- package/dist/foundation/process-containment/darwin-process-inspector.d.ts +0 -5
- package/dist/foundation/process-containment/darwin-process-inspector.js +0 -7
- package/dist/foundation/process-containment/native-guardian-containment.js +0 -152
- package/dist/foundation/process-containment/windows-process-inspector.d.ts +0 -19
- package/dist/foundation/process-containment/windows-process-inspector.js +0 -56
- package/dist/native/darwin-arm64/process-guardian +0 -0
- package/dist/native/linux-x64/process-guardian +0 -0
- package/dist/native/win32-x64/process-guardian.exe +0 -0
|
@@ -1,18 +1,61 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/tool-execution.ts.
|
|
4
|
-
* Modifications: Retain pinned shell
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Modifications: Retain pinned shell/public renderers. Own image conversion; replace private APIs with
|
|
5
|
+
* public/local equivalents. Use bare-A1 secondary-accent read ranges and concise collapse shortcut
|
|
6
|
+
* hints. Restore the enclosing default-shell background after nested renderer resets. Omit
|
|
7
|
+
* non-actionable image fallback rows when the terminal has no image protocol. See
|
|
8
8
|
* docs/architecture/tool-image-presentation.md.
|
|
9
|
-
* Deviations: current-tool-image-conversion-ownership
|
|
9
|
+
* Deviations: current-tool-image-conversion-ownership, read-range-secondary-accent,
|
|
10
|
+
* concise-tool-expand-shortcut-hint, default-shell-background-reset-scoping,
|
|
11
|
+
* unsupported-image-fallback-omission.
|
|
10
12
|
*/
|
|
11
13
|
import { stripVTControlCharacters } from "node:util";
|
|
12
|
-
import { Box, Container,
|
|
13
|
-
import { createReadToolDefinition, createBashToolDefinition, createEditToolDefinition, createWriteToolDefinition, createGrepToolDefinition, createFindToolDefinition, createLsToolDefinition, keyHint, } from "../../../startup-public.js";
|
|
14
|
-
import {
|
|
14
|
+
import { Box, Container, getImageDimensions, imageFallback, MouseRegion, Spacer, Text } from "@earendil-works/pi-tui";
|
|
15
|
+
import { createReadToolDefinition, createBashToolDefinition, createEditToolDefinition, createWriteToolDefinition, createGrepToolDefinition, createFindToolDefinition, createLsToolDefinition, keyHint, keyText, } from "../../../startup-public.js";
|
|
16
|
+
import { renderPiModalShortcutHints } from "../../theme.js";
|
|
17
|
+
import { isPiAccentProjectionEnabled, piTheme } from "../theme/theme.js";
|
|
15
18
|
import { ToolImagePresentation } from "../../tool-image-presentation.js";
|
|
19
|
+
function conciseExpandHint() {
|
|
20
|
+
return renderPiModalShortcutHints([{ key: keyText("app.tools.expand"), action: "expand" }]);
|
|
21
|
+
}
|
|
22
|
+
function withConciseExpandHint(component) {
|
|
23
|
+
return new Proxy(component, { get(target, property) {
|
|
24
|
+
if (property === "render")
|
|
25
|
+
return (width) => {
|
|
26
|
+
const theme = piTheme(), key = keyText("app.tools.expand"), concise = conciseExpandHint();
|
|
27
|
+
const compact = theme.fg("dim", ` (${key} to expand)`);
|
|
28
|
+
return target.render(width).map(row => row.replaceAll(keyHint("app.tools.expand", "to expand"), concise)
|
|
29
|
+
.replaceAll(compact, `${theme.fg("dim", " (")}${concise}${theme.fg("dim", ")")}`));
|
|
30
|
+
};
|
|
31
|
+
const value = Reflect.get(target, property, target);
|
|
32
|
+
return typeof value === "function" ? value.bind(target) : value;
|
|
33
|
+
} });
|
|
34
|
+
}
|
|
35
|
+
function enclosingToolBackground(theme, role) {
|
|
36
|
+
const background = theme.bg(role, "\u0000").split("\u0000")[0];
|
|
37
|
+
// Invariant: child defaults return to the enclosing shell, not the terminal canvas.
|
|
38
|
+
return text => theme.bg(role, text.replace(/\u001b\[([0-9:;]*)m/gu, (ansi, parameters) => {
|
|
39
|
+
const values = parameters.split(";");
|
|
40
|
+
let restore = false;
|
|
41
|
+
for (let index = 0; index < values.length; index++) {
|
|
42
|
+
const token = values[index], code = Number(token.split(":", 1)[0] || "0");
|
|
43
|
+
if (code === 0 || code === 49)
|
|
44
|
+
restore = true;
|
|
45
|
+
else if (code >= 40 && code <= 47 || code >= 100 && code <= 107)
|
|
46
|
+
restore = false;
|
|
47
|
+
else if (code === 38 || code === 48 || code === 58) {
|
|
48
|
+
if (code === 48)
|
|
49
|
+
restore = false;
|
|
50
|
+
if (!token.includes(":")) {
|
|
51
|
+
const mode = Number(values[index + 1]);
|
|
52
|
+
index += mode === 2 ? 4 : mode === 5 ? 2 : 1;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return restore ? ansi + background : ansi;
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
16
59
|
export function mergeBuiltInRenderers(definition, builtIn) {
|
|
17
60
|
if (definition === undefined)
|
|
18
61
|
return builtIn;
|
|
@@ -31,7 +74,6 @@ const definitions = { read: createReadToolDefinition, bash: createBashToolDefini
|
|
|
31
74
|
write: createWriteToolDefinition, grep: createGrepToolDefinition, find: createFindToolDefinition, ls: createLsToolDefinition };
|
|
32
75
|
const FALLBACK_PREVIEW_LINES = 10;
|
|
33
76
|
const COLLAPSED_ARGS_CHARS = 100;
|
|
34
|
-
/** Locally attributed equivalent of pinned Pi's private generic tool-call formatter. */
|
|
35
77
|
function formatToolCallWithArgs(title, args, expanded) {
|
|
36
78
|
const theme = piTheme();
|
|
37
79
|
const header = theme.fg("toolTitle", theme.bold(title));
|
|
@@ -56,7 +98,6 @@ function formatToolCallWithArgs(title, args, expanded) {
|
|
|
56
98
|
export class ToolExecutionComponent extends Container {
|
|
57
99
|
contentBox;
|
|
58
100
|
contentText;
|
|
59
|
-
contentTextRegion;
|
|
60
101
|
selfRenderContainer;
|
|
61
102
|
selfRenderHeight = 0;
|
|
62
103
|
callRendererComponent;
|
|
@@ -90,8 +131,6 @@ export class ToolExecutionComponent extends Container {
|
|
|
90
131
|
this.args = args;
|
|
91
132
|
this.builtInToolDefinition = Object.hasOwn(definitions, toolName)
|
|
92
133
|
? definitions[toolName](cwd) : undefined;
|
|
93
|
-
// Rationale: 0.85.1 moved the built-in renderer fallback to the caller; A1 keeps it here so every caller of
|
|
94
|
-
// the owned component gets the built-in edit/read/bash renderers without reaching into the tool registry.
|
|
95
134
|
this.toolDefinition = mergeBuiltInRenderers(toolDefinition, this.builtInToolDefinition);
|
|
96
135
|
this.showImages = options.showImages ?? true;
|
|
97
136
|
this.imageWidthCells = options.imageWidthCells ?? 60;
|
|
@@ -105,30 +144,17 @@ export class ToolExecutionComponent extends Container {
|
|
|
105
144
|
this.ui.requestRender();
|
|
106
145
|
});
|
|
107
146
|
this.addChild(new Spacer(1));
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
// contentText is reserved for generic fallback rendering when no tool definition exists.
|
|
111
|
-
this.contentBox = new Box(1, 1, (text) => piTheme().bg("toolPendingBg", text));
|
|
112
|
-
this.contentText = new Text("", 1, 1, (text) => piTheme().bg("toolPendingBg", text));
|
|
113
|
-
this.contentTextRegion = this.createResultRegion(this.contentText);
|
|
147
|
+
this.contentBox = new Box(1, 1, enclosingToolBackground(piTheme(), "toolPendingBg"));
|
|
148
|
+
this.contentText = new Text("", 1, 1, enclosingToolBackground(piTheme(), "toolPendingBg"));
|
|
114
149
|
this.selfRenderContainer = new Container();
|
|
115
|
-
if (this.
|
|
150
|
+
if (this.toolDefinition !== undefined) {
|
|
116
151
|
this.addChild(this.getRenderShell() === "self" ? this.selfRenderContainer : this.contentBox);
|
|
117
152
|
}
|
|
118
153
|
else {
|
|
119
|
-
this.addChild(this.
|
|
154
|
+
this.addChild(this.createResultRegion(this.contentText));
|
|
120
155
|
}
|
|
121
156
|
this.updateDisplay();
|
|
122
157
|
}
|
|
123
|
-
getCallRenderer() {
|
|
124
|
-
return this.toolDefinition?.renderCall;
|
|
125
|
-
}
|
|
126
|
-
getResultRenderer() {
|
|
127
|
-
return this.toolDefinition?.renderResult;
|
|
128
|
-
}
|
|
129
|
-
hasRendererDefinition() {
|
|
130
|
-
return this.toolDefinition !== undefined;
|
|
131
|
-
}
|
|
132
158
|
getRenderShell() {
|
|
133
159
|
return this.toolDefinition?.renderShell ?? "default";
|
|
134
160
|
}
|
|
@@ -161,15 +187,14 @@ export class ToolExecutionComponent extends Container {
|
|
|
161
187
|
createResultFallback() {
|
|
162
188
|
const theme = piTheme();
|
|
163
189
|
const output = this.getTextOutput();
|
|
164
|
-
if (!output)
|
|
190
|
+
if (!output)
|
|
165
191
|
return undefined;
|
|
166
|
-
}
|
|
167
192
|
const lines = output.split("\n");
|
|
168
193
|
const displayLines = this.expanded ? lines : lines.slice(0, FALLBACK_PREVIEW_LINES);
|
|
169
194
|
const remaining = lines.length - displayLines.length;
|
|
170
195
|
let text = displayLines.map((line) => theme.fg("toolOutput", line)).join("\n");
|
|
171
196
|
if (remaining > 0) {
|
|
172
|
-
text += `${theme.fg("muted", `\n... (${remaining} more lines,`)} ${
|
|
197
|
+
text += `${theme.fg("muted", `\n... (${remaining} more lines,`)} ${conciseExpandHint()}${theme.fg("muted", ")")}`;
|
|
173
198
|
}
|
|
174
199
|
return new Text(text, 0, 0);
|
|
175
200
|
}
|
|
@@ -200,7 +225,6 @@ export class ToolExecutionComponent extends Container {
|
|
|
200
225
|
this.isPartial = isPartial;
|
|
201
226
|
this.updateDisplay();
|
|
202
227
|
}
|
|
203
|
-
/** End mount ownership without letting an obsolete conversion or extension callback repaint. */
|
|
204
228
|
dispose() {
|
|
205
229
|
this.disposed = true;
|
|
206
230
|
this.images.dispose();
|
|
@@ -236,7 +260,7 @@ export class ToolExecutionComponent extends Container {
|
|
|
236
260
|
if (this.hideComponent) {
|
|
237
261
|
return [];
|
|
238
262
|
}
|
|
239
|
-
if (this.
|
|
263
|
+
if (this.toolDefinition !== undefined && this.getRenderShell() === "self") {
|
|
240
264
|
const contentLines = this.selfRenderContainer.render(width);
|
|
241
265
|
this.selfRenderHeight = contentLines.length;
|
|
242
266
|
if (contentLines.length === 0 && this.imageComponents.length === 0) {
|
|
@@ -262,7 +286,7 @@ export class ToolExecutionComponent extends Container {
|
|
|
262
286
|
return super.render(width);
|
|
263
287
|
}
|
|
264
288
|
handleMouse(event) {
|
|
265
|
-
if (
|
|
289
|
+
if (this.toolDefinition === undefined || this.getRenderShell() !== "self")
|
|
266
290
|
return super.handleMouse(event);
|
|
267
291
|
if (event.y <= 0 || event.y > this.selfRenderHeight)
|
|
268
292
|
return undefined;
|
|
@@ -283,65 +307,52 @@ export class ToolExecutionComponent extends Container {
|
|
|
283
307
|
this.updatingDisplay = false;
|
|
284
308
|
}
|
|
285
309
|
}
|
|
310
|
+
callTheme(theme, renderer) {
|
|
311
|
+
if (this.toolName !== "read" || renderer !== this.builtInToolDefinition?.renderCall || !isPiAccentProjectionEnabled)
|
|
312
|
+
return theme;
|
|
313
|
+
return new Proxy(theme, { get(target, property) {
|
|
314
|
+
if (property === "fg")
|
|
315
|
+
return (...args) => target.fg(args[0] === "warning" ? "mdHeading" : args[0], args[1]);
|
|
316
|
+
const value = Reflect.get(target, property, target);
|
|
317
|
+
return typeof value === "function" ? value.bind(target) : value;
|
|
318
|
+
} });
|
|
319
|
+
}
|
|
320
|
+
appendRenderer(container, field, render, fallback, builtIn) {
|
|
321
|
+
if (render) {
|
|
322
|
+
try {
|
|
323
|
+
const component = render(this.getRenderContext(this[field]));
|
|
324
|
+
this[field] = component;
|
|
325
|
+
container.addChild(this.createResultRegion(builtIn ? withConciseExpandHint(component) : component));
|
|
326
|
+
return true;
|
|
327
|
+
}
|
|
328
|
+
catch {
|
|
329
|
+
this[field] = undefined;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
const component = fallback();
|
|
333
|
+
if (component)
|
|
334
|
+
container.addChild(this.createResultRegion(component));
|
|
335
|
+
return component !== undefined;
|
|
336
|
+
}
|
|
286
337
|
composeDisplay() {
|
|
287
338
|
const theme = piTheme();
|
|
288
|
-
const bgFn = this.isPartial
|
|
289
|
-
?
|
|
290
|
-
: this.result?.isError
|
|
291
|
-
? (text) => theme.bg("toolErrorBg", text)
|
|
292
|
-
: (text) => theme.bg("toolSuccessBg", text);
|
|
339
|
+
const bgFn = enclosingToolBackground(theme, this.isPartial ? "toolPendingBg"
|
|
340
|
+
: this.result?.isError ? "toolErrorBg" : "toolSuccessBg");
|
|
293
341
|
let hasContent = false;
|
|
294
342
|
this.hideComponent = false;
|
|
295
|
-
if (this.
|
|
343
|
+
if (this.toolDefinition !== undefined) {
|
|
296
344
|
const renderContainer = this.getRenderShell() === "self" ? this.selfRenderContainer : this.contentBox;
|
|
297
345
|
if (renderContainer instanceof Box) {
|
|
298
346
|
renderContainer.setBgFn(bgFn);
|
|
299
347
|
renderContainer.setPaddingX(this.outputPad);
|
|
300
348
|
}
|
|
301
349
|
renderContainer.clear();
|
|
302
|
-
const
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
try {
|
|
309
|
-
const component = callRenderer(this.args, theme, this.getRenderContext(this.callRendererComponent));
|
|
310
|
-
this.callRendererComponent = component;
|
|
311
|
-
renderContainer.addChild(this.createResultRegion(component));
|
|
312
|
-
hasContent = true;
|
|
313
|
-
}
|
|
314
|
-
catch {
|
|
315
|
-
this.callRendererComponent = undefined;
|
|
316
|
-
renderContainer.addChild(this.createResultRegion(this.createCallFallback()));
|
|
317
|
-
hasContent = true;
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
if (this.result) {
|
|
321
|
-
const resultRenderer = this.getResultRenderer();
|
|
322
|
-
if (!resultRenderer) {
|
|
323
|
-
const component = this.createResultFallback();
|
|
324
|
-
if (component) {
|
|
325
|
-
renderContainer.addChild(this.createResultRegion(component));
|
|
326
|
-
hasContent = true;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
else {
|
|
330
|
-
try {
|
|
331
|
-
const component = resultRenderer({ content: this.result.content, details: this.result.details }, { expanded: this.expanded, isPartial: this.isPartial }, theme, this.getRenderContext(this.resultRendererComponent));
|
|
332
|
-
this.resultRendererComponent = component;
|
|
333
|
-
renderContainer.addChild(this.createResultRegion(component));
|
|
334
|
-
hasContent = true;
|
|
335
|
-
}
|
|
336
|
-
catch {
|
|
337
|
-
this.resultRendererComponent = undefined;
|
|
338
|
-
const component = this.createResultFallback();
|
|
339
|
-
if (component) {
|
|
340
|
-
renderContainer.addChild(this.createResultRegion(component));
|
|
341
|
-
hasContent = true;
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
}
|
|
350
|
+
const call = this.toolDefinition?.renderCall;
|
|
351
|
+
hasContent = this.appendRenderer(renderContainer, "callRendererComponent", call ? context => call(this.args, this.callTheme(theme, call), context) : undefined, () => this.createCallFallback(), call === this.builtInToolDefinition?.renderCall);
|
|
352
|
+
const result = this.result;
|
|
353
|
+
if (result) {
|
|
354
|
+
const render = this.toolDefinition?.renderResult;
|
|
355
|
+
hasContent = this.appendRenderer(renderContainer, "resultRendererComponent", render ? context => render({ content: result.content, details: result.details }, { expanded: this.expanded, isPartial: this.isPartial }, theme, context) : undefined, () => this.createResultFallback(), render === this.builtInToolDefinition?.renderResult) || hasContent;
|
|
345
356
|
}
|
|
346
357
|
}
|
|
347
358
|
else {
|
|
@@ -350,13 +361,9 @@ export class ToolExecutionComponent extends Container {
|
|
|
350
361
|
this.contentText.setText(this.formatToolExecution());
|
|
351
362
|
hasContent = true;
|
|
352
363
|
}
|
|
353
|
-
for (const
|
|
354
|
-
this.removeChild(
|
|
355
|
-
}
|
|
364
|
+
for (const child of [...this.imageComponents, ...this.imageSpacers])
|
|
365
|
+
this.removeChild(child);
|
|
356
366
|
this.imageComponents = [];
|
|
357
|
-
for (const spacer of this.imageSpacers) {
|
|
358
|
-
this.removeChild(spacer);
|
|
359
|
-
}
|
|
360
367
|
this.imageSpacers = [];
|
|
361
368
|
this.images.update(this.result?.content ?? [], this.showImages);
|
|
362
369
|
for (const imageComponent of this.images.components(this.imageWidthCells)) {
|
|
@@ -366,18 +373,15 @@ export class ToolExecutionComponent extends Container {
|
|
|
366
373
|
this.imageComponents.push(imageComponent);
|
|
367
374
|
this.addChild(imageComponent);
|
|
368
375
|
}
|
|
369
|
-
if (this.
|
|
376
|
+
if (this.toolDefinition !== undefined && !hasContent && this.imageComponents.length === 0) {
|
|
370
377
|
this.hideComponent = true;
|
|
371
378
|
}
|
|
372
379
|
}
|
|
373
380
|
getTextOutput() {
|
|
374
381
|
if (!this.result)
|
|
375
382
|
return "";
|
|
376
|
-
const text = this.result.content.filter(part => part.type === "text").map(part =>
|
|
377
|
-
|
|
378
|
-
return code === 9 || code === 10 || code > 31 && (code < 0xfff9 || code > 0xfffb);
|
|
379
|
-
}).join("")).join("\n");
|
|
380
|
-
if (getCapabilities().images && this.showImages)
|
|
383
|
+
const text = this.result.content.filter(part => part.type === "text").map(part => stripVTControlCharacters(part.text ?? "").replace(/[\u0000-\u0008\u000b-\u001f\ufff9-\ufffb]/gu, "")).join("\n");
|
|
384
|
+
if (this.showImages)
|
|
381
385
|
return text;
|
|
382
386
|
const indicators = this.result.content.filter(part => part.type === "image").map(part => imageFallback(part.mimeType ?? "image/unknown", part.data && part.mimeType ? getImageDimensions(part.data, part.mimeType) ?? undefined : undefined)).join("\n");
|
|
383
387
|
return text && indicators ? `${text}\n${indicators}` : text || indicators;
|
|
@@ -386,13 +390,11 @@ export class ToolExecutionComponent extends Container {
|
|
|
386
390
|
const theme = piTheme();
|
|
387
391
|
let text = theme.fg("toolTitle", theme.bold(this.toolName));
|
|
388
392
|
const content = JSON.stringify(this.args, null, 2);
|
|
389
|
-
if (content)
|
|
393
|
+
if (content)
|
|
390
394
|
text += `\n\n${content}`;
|
|
391
|
-
}
|
|
392
395
|
const output = this.getTextOutput();
|
|
393
|
-
if (output)
|
|
396
|
+
if (output)
|
|
394
397
|
text += `\n${output}`;
|
|
395
|
-
}
|
|
396
398
|
return text;
|
|
397
399
|
}
|
|
398
400
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/tree-selector.ts.
|
|
4
4
|
* Modifications: Port remaps public types/components plus owned keybindings/theme helpers while
|
|
5
5
|
* preserving tree behavior; bare A1 uses compact modal chrome and label editing, four-mode
|
|
6
6
|
* Models-style filter status with Tab/Shift+Tab directional cycling and concise all-first presentation
|
|
7
|
-
* excluding internal bookkeeping, standard search input, blue full-row menu-arrow
|
|
8
|
-
* preserves per-entry semantic foregrounds and has no path bullets, accent entry
|
|
9
|
-
* timestamps, numeric result counters without duplicate label-time status, and a
|
|
10
|
-
* shortcut, semantic role colors with session naming for the system root,
|
|
11
|
-
* paging/first-last/non-root containing-branch folding keys with a permanently expanded
|
|
12
|
-
* entry even behind hidden metadata, single-character ellipses on both clipped edges
|
|
13
|
-
* bracket-delimiter preservation and selected-fragment highlighting, and Models-ordered semantic
|
|
7
|
+
* excluding internal bookkeeping, a standard accent-marked search input, blue full-row menu-arrow
|
|
8
|
+
* selection that preserves per-entry semantic foregrounds and has no path bullets, accent entry
|
|
9
|
+
* labels, bracketed timestamps, numeric result counters without duplicate label-time status, and a
|
|
10
|
+
* stateful time on/off shortcut, semantic role colors with session naming for the system root,
|
|
11
|
+
* standard paging/first-last/non-root containing-branch folding keys with a permanently expanded
|
|
12
|
+
* system session entry even behind hidden metadata, single-character ellipses on both clipped edges
|
|
13
|
+
* with bracket-delimiter preservation and selected-fragment highlighting, and Models-ordered semantic
|
|
14
14
|
* Type/search shortcut footers without a redundant select hint.
|
|
15
|
-
* Deviations: owned-modal-shortcut-hints, owned-session-tree-dialog.
|
|
15
|
+
* Deviations: owned-modal-shortcut-hints, owned-session-tree-dialog, owned-dialog-search-marker.
|
|
16
16
|
*/
|
|
17
17
|
import { type Component, Container, type Focusable } from "@earendil-works/pi-tui";
|
|
18
18
|
import { type SessionTreeNode } from "@earendil-works/pi-coding-agent";
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/tree-selector.ts.
|
|
4
4
|
* Modifications: Port remaps public types/components plus owned keybindings/theme helpers while
|
|
5
5
|
* preserving tree behavior; bare A1 uses compact modal chrome and label editing, four-mode
|
|
6
6
|
* Models-style filter status with Tab/Shift+Tab directional cycling and concise all-first presentation
|
|
7
|
-
* excluding internal bookkeeping, standard search input, blue full-row menu-arrow
|
|
8
|
-
* preserves per-entry semantic foregrounds and has no path bullets, accent entry
|
|
9
|
-
* timestamps, numeric result counters without duplicate label-time status, and a
|
|
10
|
-
* shortcut, semantic role colors with session naming for the system root,
|
|
11
|
-
* paging/first-last/non-root containing-branch folding keys with a permanently expanded
|
|
12
|
-
* entry even behind hidden metadata, single-character ellipses on both clipped edges
|
|
13
|
-
* bracket-delimiter preservation and selected-fragment highlighting, and Models-ordered semantic
|
|
7
|
+
* excluding internal bookkeeping, a standard accent-marked search input, blue full-row menu-arrow
|
|
8
|
+
* selection that preserves per-entry semantic foregrounds and has no path bullets, accent entry
|
|
9
|
+
* labels, bracketed timestamps, numeric result counters without duplicate label-time status, and a
|
|
10
|
+
* stateful time on/off shortcut, semantic role colors with session naming for the system root,
|
|
11
|
+
* standard paging/first-last/non-root containing-branch folding keys with a permanently expanded
|
|
12
|
+
* system session entry even behind hidden metadata, single-character ellipses on both clipped edges
|
|
13
|
+
* with bracket-delimiter preservation and selected-fragment highlighting, and Models-ordered semantic
|
|
14
14
|
* Type/search shortcut footers without a redundant select hint.
|
|
15
|
-
* Deviations: owned-modal-shortcut-hints, owned-session-tree-dialog.
|
|
15
|
+
* Deviations: owned-modal-shortcut-hints, owned-session-tree-dialog, owned-dialog-search-marker.
|
|
16
16
|
*/
|
|
17
17
|
import { Container, Input, matchesKey, Spacer, sliceByColumn, Text, truncateToWidth, visibleWidth, wrapTextWithAnsi, } from "@earendil-works/pi-tui";
|
|
18
|
-
import { DynamicBorder } from "../../../startup-public.js";
|
|
18
|
+
import { DynamicBorder, formatReadLineRange } from "../../../startup-public.js";
|
|
19
19
|
import { KeybindingsManager } from "../adjacent/core/keybindings.js";
|
|
20
|
-
import { addPiModalHeader, adoptPiModalFrame } from "../../modal-frame.js";
|
|
20
|
+
import { addPiModalHeader, adoptPiModalFrame, renderPiModalSearchInput } from "../../modal-frame.js";
|
|
21
21
|
import { DIALOG_CLOSE_SHORTCUT_HINT, paintPiBorder, piTheme, renderPiModalShortcutHints } from "../../theme.js";
|
|
22
22
|
const theme = new Proxy({}, {
|
|
23
23
|
get(_target, property) {
|
|
@@ -814,15 +814,7 @@ class TreeList {
|
|
|
814
814
|
switch (name) {
|
|
815
815
|
case "read": {
|
|
816
816
|
const path = shortenPath(String(args.path || args.file_path || ""));
|
|
817
|
-
|
|
818
|
-
const limit = args.limit;
|
|
819
|
-
let display = path;
|
|
820
|
-
if (offset !== undefined || limit !== undefined) {
|
|
821
|
-
const start = offset ?? 1;
|
|
822
|
-
const end = limit !== undefined ? start + limit - 1 : "";
|
|
823
|
-
display += `:${start}${end ? `-${end}` : ""}`;
|
|
824
|
-
}
|
|
825
|
-
return `[read: ${display}]`;
|
|
817
|
+
return `[read: ${path}${formatReadLineRange(args.offset, args.limit)}]`;
|
|
826
818
|
}
|
|
827
819
|
case "write": {
|
|
828
820
|
const path = shortenPath(String(args.path || args.file_path || ""));
|
|
@@ -1085,7 +1077,7 @@ class TreeSearchInput {
|
|
|
1085
1077
|
this.input.handleInput(query);
|
|
1086
1078
|
this.renderedQuery = query;
|
|
1087
1079
|
}
|
|
1088
|
-
return this.input
|
|
1080
|
+
return renderPiModalSearchInput(this.input, width);
|
|
1089
1081
|
}
|
|
1090
1082
|
}
|
|
1091
1083
|
/** Models-style summary of the active tree filter. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/trust-selector.ts.
|
|
4
4
|
* Modifications: Mechanical source-synchronized trust selector port with injected public
|
|
5
5
|
* ProjectTrustStore-derived options, remapped owned theme imports, the shared bare-A1 modal shortcut
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/external-editor.ts.
|
|
4
4
|
* Modifications: Mechanical port: retain temporary prompt file, asynchronous inherited-stdio editor
|
|
5
5
|
* process, completion readback, and best-effort cleanup behind the owned extension-editor component.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/components/editor.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, semantic border state with the user-approved numeric-only
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* Deviations: compact-history-counter-label, history-overflow-cue-separation,
|
|
10
10
|
* history-recall-cursor-retention, persistent-history-owned-editor-boundary.
|
|
11
11
|
*/
|
|
12
|
-
import { type AutocompleteProvider, type Component, type Focusable, type
|
|
12
|
+
import { type AutocompleteProvider, type Component, type Focusable, type SelectListTheme, type TUI, type TuiMouseEvent, type TuiMouseEventResult } from "@earendil-works/pi-tui";
|
|
13
13
|
import type { EditorInteractionPort, EditorRecallPort } from "../../editor-interaction.js";
|
|
14
14
|
/**
|
|
15
15
|
* Represents a chunk of text for word-wrap layout.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/components/editor.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, semantic border state with the user-approved numeric-only
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
* Deviations: compact-history-counter-label, history-overflow-cue-separation,
|
|
10
10
|
* history-recall-cursor-retention, persistent-history-owned-editor-boundary.
|
|
11
11
|
*/
|
|
12
|
-
import { getKeybindings, matchesKey,
|
|
12
|
+
import { CURSOR_MARKER, SelectList, getKeybindings, matchesKey, renderFakeCursor, sliceByColumn, truncateToWidth, visibleWidth, } from "@earendil-works/pi-tui";
|
|
13
13
|
import { decodePrintableKey } from "./printable-key.js";
|
|
14
14
|
import { KillRing } from "./kill-ring.js";
|
|
15
15
|
import { UndoStack } from "./undo-stack.js";
|
|
16
|
-
import { autocompleteBoundaryRegex, autocompleteSeparatorRegex, cjkBreakRegex, getGraphemeSegmenter, getWordSegmenter, isWhitespaceChar } from "./text-helpers.js";
|
|
16
|
+
import { autocompleteBoundaryRegex, autocompleteSeparatorRegex, cjkBreakRegex, getGraphemeSegmenter, getWordSegmenter, isWhitespaceChar, } from "./text-helpers.js";
|
|
17
17
|
import { findWordBackward, findWordForward } from "./word-navigation.js";
|
|
18
18
|
const graphemeSegmenter = getGraphemeSegmenter();
|
|
19
19
|
const wordSegmenter = getWordSegmenter();
|
|
@@ -287,6 +287,8 @@ export class HistoryEditorCore {
|
|
|
287
287
|
delete this.onHistoryChange; };
|
|
288
288
|
},
|
|
289
289
|
reset: () => this.resetHistoryBrowsing(),
|
|
290
|
+
restoreDraft: () => { while (this.historyIndex >= 0)
|
|
291
|
+
this.navigateHistory(1); },
|
|
290
292
|
};
|
|
291
293
|
persistentHistory = false;
|
|
292
294
|
styleHistoryLabel;
|
|
@@ -574,13 +576,13 @@ export class HistoryEditorCore {
|
|
|
574
576
|
const afterGraphemes = [...this.segment(after, "grapheme")];
|
|
575
577
|
const firstGrapheme = afterGraphemes[0]?.segment || "";
|
|
576
578
|
const restAfter = after.slice(firstGrapheme.length);
|
|
577
|
-
const cursor =
|
|
579
|
+
const cursor = renderFakeCursor(firstGrapheme);
|
|
578
580
|
displayText = before + marker + cursor + restAfter;
|
|
579
581
|
// lineVisibleWidth stays the same - we're replacing, not adding
|
|
580
582
|
}
|
|
581
583
|
else {
|
|
582
584
|
// Cursor is at the end - add highlighted space
|
|
583
|
-
const cursor = "
|
|
585
|
+
const cursor = renderFakeCursor(" ");
|
|
584
586
|
displayText = before + marker + cursor;
|
|
585
587
|
lineVisibleWidth = lineVisibleWidth + 1;
|
|
586
588
|
// If cursor overflows content width into the padding, flag it
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/kill-ring.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/kill-ring.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/keys.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/utils.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/undo-stack.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/undo-stack.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/word-navigation.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/model-search.ts.
|
|
4
4
|
* Modifications: Mechanical source-synchronized port preserving pinned model search terms for stateful
|
|
5
5
|
* scoped-model filtering.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/program-status-reporter.ts.
|
|
4
4
|
* Modifications: Remap Pi session events to A1's neutral run events, inject the terminal reporter, use
|
|
5
5
|
* A1's application identity, and clear dialog state when the owned session changes.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/theme/theme-controller.ts.
|
|
4
4
|
* Modifications: Source-synchronized controller port: renamed owner class, injected dependency-free
|
|
5
5
|
* settings/runtime ports, remapped private theme helpers to the public-backed A1 theme adapter, and
|
|
@@ -43,8 +43,11 @@ export interface PiAccentProjection {
|
|
|
43
43
|
readonly selectedBg: Color;
|
|
44
44
|
readonly userMessageBg: Color;
|
|
45
45
|
}
|
|
46
|
+
/** Canonical named color used by both the interactive theme and pre-load palette generation. */
|
|
47
|
+
export declare function namedPiAccent(color: UiAccentColor, appearance: PiTerminalTheme): Color;
|
|
46
48
|
/** Derive the complete semantic family from any primary accent, including future custom colors. */
|
|
47
49
|
export declare function derivePiAccentProjection(accent: Color, appearance: PiTerminalTheme): PiAccentProjection;
|
|
50
|
+
declare let packageBorderProjectionEnabled: boolean;
|
|
48
51
|
export declare function ensurePiTheme(): Theme;
|
|
49
52
|
export declare function piTheme(): Theme;
|
|
50
53
|
export declare function currentPiThemeName(): string;
|
|
@@ -55,6 +58,8 @@ export declare function renderPiAccentPreview(color: string, text: string): stri
|
|
|
55
58
|
export declare function derivePiCanvasBackground(style: OwnedUiBackgroundStyle, accent: Color): Color | null;
|
|
56
59
|
/** Resolves the selected canvas through the active accent and terminal color mode. */
|
|
57
60
|
export declare function piCanvasBackgroundAnsi(style: OwnedUiBackgroundStyle): string | null;
|
|
61
|
+
/** Read-only live view of whether bare A1's semantic accent family is active. */
|
|
62
|
+
export { packageBorderProjectionEnabled as isPiAccentProjectionEnabled };
|
|
58
63
|
/** Keeps the complete comparison theme unmodified while bare A1 projects its semantic accent family. */
|
|
59
64
|
export declare function setPiPackageBorderProjectionEnabled(enabled: boolean): void;
|
|
60
65
|
/** Reprojects the active base theme; repeated changes never derive from an earlier projection. */
|