@timurproko/a1 0.2.7-dev.1249 → 0.2.7-dev.1255
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -36
- package/bin/cli.js +2 -17
- package/bin/ui.js +10 -51
- package/dist/app/session-shell/clipboard-diagnostics.d.ts +2 -2
- package/dist/app/session-shell/clipboard-image.d.ts +0 -1
- package/dist/app/session-shell/clipboard-image.js +1 -1
- package/dist/app/session-shell/dialog-coordinator.d.ts +6 -5
- package/dist/app/session-shell/dialog-coordinator.js +3 -4
- package/dist/app/session-shell/dock-chrome.d.ts +11 -6
- package/dist/app/session-shell/dock-chrome.js +5 -8
- package/dist/app/session-shell/editor-hyperlink-budget.d.ts +0 -2
- package/dist/app/session-shell/editor-hyperlink-budget.js +1 -1
- package/dist/app/session-shell/exit-notice.d.ts +3 -3
- package/dist/app/session-shell/exit-notice.js +10 -10
- package/dist/app/session-shell/extension-surface.d.ts +8 -7
- package/dist/app/session-shell/helper-pool.d.ts +3 -4
- package/dist/app/session-shell/helper-pool.js +1 -1
- package/dist/app/session-shell/image-preparation-client.d.ts +4 -3
- package/dist/app/session-shell/image-preparation.d.ts +0 -2
- package/dist/app/session-shell/image-preparation.js +2 -2
- package/dist/app/session-shell/image-source.d.ts +2 -3
- package/dist/app/session-shell/image-source.js +2 -2
- package/dist/app/session-shell/input-surface-switch.d.ts +9 -7
- package/dist/app/session-shell/input-surface-switch.js +1 -2
- package/dist/app/session-shell/login-interaction.d.ts +5 -4
- package/dist/app/session-shell/login-interaction.js +2 -3
- package/dist/app/session-shell/paste-executor.d.ts +4 -8
- package/dist/app/session-shell/paste-executor.js +2 -2
- package/dist/app/session-shell/paste-protocol.d.ts +2 -2
- package/dist/app/session-shell/path-chip-presentation.d.ts +0 -5
- package/dist/app/session-shell/path-chip-presentation.js +3 -3
- package/dist/app/session-shell/prompt-chips.d.ts +8 -7
- package/dist/app/session-shell/prompt-history-controller.d.ts +3 -3
- package/dist/app/session-shell/prompt-submission.d.ts +7 -6
- package/dist/app/session-shell/prompt-submission.js +7 -28
- package/dist/app/session-shell/quit-outro-effects.d.ts +3 -3
- package/dist/app/session-shell/quit-outro-effects.js +1 -4
- package/dist/app/session-shell/quit-outro.d.ts +9 -12
- package/dist/app/session-shell/quit-outro.js +11 -11
- package/dist/app/session-shell/response-copy-protocol.d.ts +3 -2
- package/dist/app/session-shell/response-copy-transport.d.ts +2 -14
- package/dist/app/session-shell/response-copy-transport.js +2 -3
- package/dist/app/session-shell/session-lifecycle.d.ts +3 -3
- package/dist/app/session-shell/session-lifecycle.js +2 -4
- package/dist/app/session-shell/session-shell-root.d.ts +74 -120
- package/dist/app/session-shell/session-shell-root.js +82 -115
- package/dist/app/session-shell/session-shell.d.ts +13 -16
- package/dist/app/session-shell/session-shell.js +149 -314
- package/dist/app/session-shell/session-viewport-controller.d.ts +7 -6
- package/dist/app/session-shell/session-viewport-controller.js +5 -8
- package/dist/app/session-shell/settings-bindings.d.ts +24 -2
- package/dist/app/session-shell/settings-bindings.js +24 -0
- package/dist/app/session-shell/share-operation.d.ts +3 -3
- package/dist/app/session-shell/share-operation.js +4 -6
- package/dist/app/session-shell/shell-clipboard.d.ts +59 -0
- package/dist/app/session-shell/shell-clipboard.js +119 -0
- package/dist/app/session-shell/shell-editor-factory.d.ts +8 -4
- package/dist/app/session-shell/shell-editor-factory.js +13 -15
- package/dist/app/session-shell/shell-host.d.ts +16 -17
- package/dist/app/session-shell/shell-host.js +20 -37
- package/dist/app/session-shell/shell-layout.d.ts +2 -2
- package/dist/app/session-shell/shell-prompt-suggestions.d.ts +26 -0
- package/dist/app/session-shell/shell-prompt-suggestions.js +48 -0
- package/dist/app/session-shell/suggestion-surface.d.ts +1 -6
- package/dist/app/session-shell/suggestion-surface.js +1 -1
- package/dist/app/session-shell/system-clipboard.d.ts +2 -14
- package/dist/app/session-shell/system-clipboard.js +2 -7
- package/dist/app/session-shell/transcript-document.d.ts +12 -10
- package/dist/app/session-shell/transcript-document.js +15 -41
- package/dist/app/session-shell/viewport-layout.d.ts +2 -2
- package/dist/app/session-shell/workflow-output.d.ts +5 -3
- package/dist/app/session-shell/workflow-output.js +13 -15
- package/dist/app/session-shell/workflow-router.d.ts +1 -3
- package/dist/app/session-shell/workflow-router.js +1 -4
- package/dist/cli/dispatch.d.ts +1 -11
- package/dist/cli/dispatch.js +5 -92
- package/dist/cli/package-messages.d.ts +0 -1
- package/dist/cli/package-messages.js +1 -1
- package/dist/cli/session-context.d.ts +1 -1
- package/dist/cli/session-context.js +5 -7
- package/dist/cli/uninstall.d.ts +4 -7
- package/dist/cli/uninstall.js +6 -35
- package/dist/cli/version-stats.js +4 -7
- package/dist/composition/owned-settings.d.ts +2 -2
- package/dist/composition/owned-settings.js +0 -4
- package/dist/composition/owned-ui.d.ts +3 -25
- package/dist/composition/owned-ui.js +37 -113
- package/dist/composition/reference-selection-options.d.ts +1 -1
- package/dist/composition/reference-selection-options.js +1 -1
- package/dist/composition/release-update-observation.d.ts +4 -4
- package/dist/composition/release-update-observation.js +17 -47
- package/dist/composition/session-backend.d.ts +0 -1
- package/dist/composition/session-runtime-registry.d.ts +5 -4
- package/dist/composition/settings-route-host.d.ts +0 -7
- package/dist/composition/settings-route-host.js +7 -20
- package/dist/composition/settings-search-input.d.ts +2 -1
- package/dist/composition/startup-route.d.ts +2 -3
- package/dist/composition/startup-route.js +2 -3
- package/dist/contracts/owned-ui/extension-ui.d.ts +2 -1
- package/dist/contracts/owned-ui/index.d.ts +2 -1
- package/dist/contracts/owned-ui/model.d.ts +0 -3
- package/dist/contracts/owned-ui/session-presenters.d.ts +3 -0
- package/dist/contracts/owned-ui/session-workflows.d.ts +1 -4
- package/dist/contracts/owned-ui/shell-components.d.ts +543 -0
- package/dist/contracts/presentation/component.d.ts +17 -0
- package/dist/contracts/presentation/component.js +8 -0
- package/dist/contracts/presentation/index.d.ts +6 -15
- package/dist/contracts/presentation/index.js +2 -0
- package/dist/contracts/presentation/terminal.d.ts +290 -0
- package/dist/contracts/presentation/theme.d.ts +46 -0
- package/dist/features/launch/development-launch.js +1 -2
- package/dist/features/launch/index.d.ts +1 -1
- package/dist/features/launch/intent.d.ts +1 -3
- package/dist/features/launch/intent.js +2 -4
- package/dist/features/launch/runtime-selection.d.ts +2 -2
- package/dist/features/launch/runtime-selection.js +2 -2
- package/dist/features/launch/session-context.d.ts +2 -2
- package/dist/features/owned-ui/project-trust-prompt.d.ts +2 -2
- package/dist/features/owned-ui/project-trust-prompt.js +1 -1
- package/dist/features/owned-ui/reference-screen-app.d.ts +0 -2
- package/dist/features/owned-ui/reference-screen-app.js +2 -9
- package/dist/features/owned-ui/release-note-state.d.ts +2 -1
- package/dist/features/owned-ui/settings-app.d.ts +0 -6
- package/dist/features/owned-ui/settings-app.js +42 -254
- package/dist/features/owned-ui/settings-edits.d.ts +31 -0
- package/dist/features/owned-ui/settings-edits.js +139 -0
- package/dist/features/owned-ui/settings-scroll-rail.d.ts +29 -0
- package/dist/features/owned-ui/settings-scroll-rail.js +79 -0
- package/dist/features/owned-ui/settings-search-input.d.ts +2 -1
- package/dist/features/prompt-history/service.d.ts +3 -2
- package/dist/foundation/launch-context/index.d.ts +0 -12
- package/dist/foundation/launch-context/index.js +0 -26
- package/dist/foundation/lifecycle/claim-gate.d.ts +9 -0
- package/dist/foundation/lifecycle/claim-gate.js +37 -0
- package/dist/foundation/lifecycle/index.d.ts +5 -9
- package/dist/foundation/lifecycle/index.js +3 -4
- package/dist/foundation/lifecycle/model.d.ts +2 -59
- package/dist/foundation/lifecycle/model.js +0 -35
- package/dist/foundation/lifecycle/paths.d.ts +0 -24
- package/dist/foundation/lifecycle/paths.js +0 -40
- package/dist/foundation/lifecycle/process-liveness.d.ts +8 -0
- package/dist/foundation/lifecycle/process-liveness.js +18 -0
- package/dist/foundation/lifecycle/session-claim-lock.d.ts +1 -1
- package/dist/foundation/lifecycle/session-claim-lock.js +2 -2
- package/dist/foundation/lifecycle/session-repository-context.d.ts +6 -6
- package/dist/foundation/lifecycle/session-repository-context.js +2 -3
- package/dist/foundation/release/automatic-update.d.ts +6 -17
- package/dist/foundation/release/automatic-update.js +23 -44
- package/dist/foundation/release/bootstrap.d.ts +2 -25
- package/dist/foundation/release/bootstrap.js +37 -348
- package/dist/foundation/release/dependency-certification.d.ts +1 -2
- package/dist/foundation/release/dependency-certification.js +1 -1
- package/dist/foundation/release/early-accent.d.ts +2 -2
- package/dist/foundation/release/early-accent.js +1 -1
- package/dist/foundation/release/index.d.ts +10 -17
- package/dist/foundation/release/index.js +7 -11
- package/dist/foundation/release/latest-release.d.ts +3 -19
- package/dist/foundation/release/latest-release.js +11 -12
- package/dist/foundation/release/ordinary-launch-selection.d.ts +1 -1
- package/dist/foundation/release/ordinary-launch-selection.js +1 -1
- package/dist/foundation/release/process-liveness.d.ts +2 -0
- package/dist/foundation/release/process-liveness.js +12 -0
- package/dist/foundation/release/release-gc.d.ts +13 -10
- package/dist/foundation/release/release-gc.js +37 -101
- package/dist/foundation/release/{cohort-state.d.ts → release-state.d.ts} +44 -69
- package/dist/foundation/release/{cohort-state.js → release-state.js} +38 -70
- package/dist/foundation/release/release-store.d.ts +2 -2
- package/dist/foundation/release/release-store.js +2 -2
- package/dist/foundation/release/restart-certification.js +1 -1
- package/dist/foundation/release/update-activation.d.ts +2 -9
- package/dist/foundation/release/update-activation.js +30 -45
- package/dist/foundation/release/update-execution-lease.d.ts +2 -3
- package/dist/foundation/release/update-execution-lease.js +2 -2
- package/dist/foundation/release/update-launch.d.ts +2 -4
- package/dist/foundation/release/update-launch.js +0 -7
- package/dist/foundation/release/update-recovery.js +1 -1
- package/dist/foundation/release/update-transaction.d.ts +1 -1
- package/dist/foundation/release/update-transaction.js +5 -2
- package/dist/foundation/release/update.d.ts +2 -12
- package/dist/foundation/release/update.js +37 -214
- package/dist/foundation/session-writer-lock/index.d.ts +14 -6
- package/dist/foundation/session-writer-lock/index.js +48 -103
- package/dist/foundation/startup/startup-budget.d.ts +5 -5
- package/dist/foundation/startup/startup-budget.js +2 -2
- package/dist/foundation/startup/startup-runtime.d.ts +1 -1
- package/dist/foundation/terminal-cleanup/exit-notice.d.ts +6 -0
- package/dist/foundation/terminal-cleanup/exit-notice.js +36 -0
- package/dist/foundation/terminal-cleanup/index.d.ts +2 -1
- package/dist/foundation/terminal-cleanup/index.js +2 -1
- package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +0 -5
- package/dist/foundation/terminal-cleanup/terminal-reset.js +0 -5
- package/dist/integrations/pi/components/editor-interaction.d.ts +4 -12
- package/dist/integrations/pi/components/index.d.ts +15 -9
- package/dist/integrations/pi/components/index.js +9 -5
- package/dist/integrations/pi/components/lazy-selectors.d.ts +2 -10
- package/dist/integrations/pi/components/lazy-selectors.js +1 -1
- package/dist/integrations/pi/components/modal-frame.d.ts +5 -22
- package/dist/integrations/pi/components/modal-frame.js +3 -23
- package/dist/integrations/pi/components/owned-editor-ux.d.ts +4 -3
- package/dist/integrations/pi/components/prompt-input-port.d.ts +2 -19
- package/dist/integrations/pi/components/resources/builtin-themes.d.ts +2 -1
- package/dist/integrations/pi/components/shell-editor-autocomplete.d.ts +3 -2
- package/dist/integrations/pi/components/shell-editor-autocomplete.js +1 -4
- package/dist/integrations/pi/components/shell-footer-status.d.ts +3 -3
- package/dist/integrations/pi/components/shell-footer-status.js +5 -4
- package/dist/integrations/pi/components/shell-hotkey-sections.js +1 -1
- package/dist/integrations/pi/components/shell-presenters-info.d.ts +6 -8
- package/dist/integrations/pi/components/shell-presenters-info.js +6 -19
- package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +1 -1
- package/dist/integrations/pi/components/shell-presenters-transcript.js +1 -1
- package/dist/integrations/pi/components/shell-session-info-reference.d.ts +2 -1
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +33 -229
- package/dist/integrations/pi/components/shell-shared-facade.js +8 -1
- package/dist/integrations/pi/components/skills-command.d.ts +1 -9
- package/dist/integrations/pi/components/skills-command.js +5 -5
- package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +2 -5
- package/dist/integrations/pi/components/submitted-prompt-adapter.js +2 -16
- package/dist/integrations/pi/components/theme.d.ts +9 -2
- package/dist/integrations/pi/components/theme.js +17 -2
- package/dist/integrations/pi/components/thinking-selector-dialog.d.ts +2 -1
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +2 -2
- package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +1 -2
- package/dist/integrations/pi/components/upstream/components/session-footer.js +6 -8
- package/dist/integrations/pi/engine/adapter.d.ts +3 -6
- package/dist/integrations/pi/engine/adapter.js +4 -28
- package/dist/integrations/pi/engine/changelog.d.ts +2 -2
- package/dist/integrations/pi/engine/changelog.js +3 -3
- package/dist/integrations/pi/engine/compaction-progress.d.ts +2 -3
- package/dist/integrations/pi/engine/compaction-progress.js +1 -1
- package/dist/integrations/pi/engine/conformance.d.ts +2 -1
- package/dist/integrations/pi/engine/default-model-setting.d.ts +0 -2
- package/dist/integrations/pi/engine/default-model-setting.js +1 -2
- package/dist/integrations/pi/engine/diagnostics-state.d.ts +0 -1
- package/dist/integrations/pi/engine/diagnostics-state.js +0 -14
- package/dist/integrations/pi/engine/event-delivery.d.ts +2 -1
- package/dist/integrations/pi/engine/extension-ui-binding.d.ts +2 -1
- package/dist/integrations/pi/engine/host.js +2 -2
- package/dist/integrations/pi/engine/message-values.d.ts +0 -1
- package/dist/integrations/pi/engine/message-values.js +1 -1
- package/dist/integrations/pi/engine/pending-delivery.d.ts +0 -4
- package/dist/integrations/pi/engine/pending-delivery.js +3 -3
- package/dist/integrations/pi/engine/ports.d.ts +7 -1
- package/dist/integrations/pi/engine/ports.js +4 -0
- package/dist/integrations/pi/engine/project-trust-preflight.d.ts +2 -1
- package/dist/integrations/pi/engine/prompt-suggestions.d.ts +3 -3
- package/dist/integrations/pi/engine/prompt-suggestions.js +0 -40
- package/dist/integrations/pi/engine/provider-authentication.d.ts +1 -1
- package/dist/integrations/pi/engine/public-main-entry.d.ts +1 -5
- package/dist/integrations/pi/engine/public-main-entry.js +1 -1
- package/dist/integrations/pi/engine/repository-pr-rest.d.ts +1 -9
- package/dist/integrations/pi/engine/repository-pr-rest.js +2 -2
- package/dist/integrations/pi/engine/repository-pr.d.ts +1 -3
- package/dist/integrations/pi/engine/repository-pr.js +1 -1
- package/dist/integrations/pi/engine/resource-catalog.d.ts +2 -1
- package/dist/integrations/pi/engine/session-integration.d.ts +1 -1
- package/dist/integrations/pi/engine/session-runtime.d.ts +4 -3
- package/dist/integrations/pi/engine/session-runtime.js +0 -2
- package/dist/integrations/pi/engine/settings-bridge.d.ts +0 -2
- package/dist/integrations/pi/engine/settings-bridge.js +1 -1
- package/dist/integrations/pi/engine/settings-port.d.ts +3 -2
- package/dist/integrations/pi/engine/transcript-projection.d.ts +2 -1
- package/dist/integrations/pi/engine/workflow-contexts.d.ts +1 -1
- package/dist/integrations/pi/engine/workflow-runner.d.ts +1 -1
- package/dist/integrations/pi/engine/workflow-runner.js +1 -1
- package/dist/integrations/pi/engine/workflow-support.d.ts +0 -6
- package/dist/integrations/pi/engine/workflow-support.js +4 -18
- package/dist/integrations/pi/engine/workflows.d.ts +5 -5
- package/dist/integrations/pi/session-presenters/components.d.ts +3 -0
- package/dist/integrations/pi/session-presenters/components.js +75 -0
- package/dist/integrations/pi/session-presenters/index.d.ts +1 -0
- package/dist/integrations/pi/session-presenters/index.js +1 -0
- package/dist/integrations/pi/session-presenters/presentation.d.ts +3 -0
- package/dist/integrations/pi/session-presenters/presentation.js +10 -0
- package/dist/integrations/pi/session-presenters/presenters.d.ts +2 -1
- package/dist/integrations/pi/session-presenters/presenters.js +3 -1
- package/dist/integrations/pi/tui-runtime/adapter.d.ts +2 -2
- package/dist/integrations/pi/tui-runtime/adapter.js +23 -32
- package/dist/integrations/pi/tui-runtime/contracts.d.ts +22 -166
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +5 -40
- package/dist/integrations/pi/tui-runtime/index.d.ts +1 -0
- package/dist/integrations/pi/tui-runtime/index.js +1 -0
- package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +4 -6
- package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +2 -8
- package/dist/integrations/pi/tui-runtime/overlay-geometry.js +3 -9
- package/dist/integrations/pi/tui-runtime/runtime-factory.d.ts +3 -0
- package/dist/integrations/pi/tui-runtime/runtime-factory.js +11 -0
- package/dist/product-identity.d.ts +4 -6
- package/dist/product-identity.js +6 -11
- package/dist/product-identity.json +1 -40
- package/dist/runtime-payload-inventory.json +0 -3
- package/dist/ui/components/index.d.ts +4 -4
- package/dist/ui/components/index.js +2 -2
- package/dist/ui/components/selection-copy.d.ts +0 -1
- package/dist/ui/components/selection-copy.js +0 -12
- package/dist/ui/components/submitted-prompt.d.ts +3 -13
- package/dist/ui/components/submitted-prompt.js +8 -41
- package/dist/ui/components/theme.d.ts +4 -19
- package/dist/ui/components/theme.js +6 -0
- package/dist/ui/components/transcript-viewport.d.ts +1 -3
- package/dist/ui/components/transcript-viewport.js +1 -4
- package/dist/ui/settings/declarations.d.ts +2 -97
- package/dist/ui/settings/declarations.js +2 -78
- package/dist/ui/settings/early-accent.js +1 -1
- package/dist/ui/settings/index.d.ts +3 -5
- package/dist/ui/settings/index.js +2 -3
- package/dist/ui/settings/manager.d.ts +0 -4
- package/dist/ui/settings/manager.js +6 -62
- package/dist/ui/settings/resolution.d.ts +6 -18
- package/dist/ui/settings/resolution.js +4 -103
- package/dist/ui/settings/sections.d.ts +0 -4
- package/dist/ui/settings/sections.js +1 -1
- package/docs/architecture/boundaries.md +23 -40
- package/docs/architecture/code-documentation.md +2 -2
- package/docs/architecture/internal-naming.md +11 -17
- package/docs/architecture/project-structure.md +13 -16
- package/docs/architecture/resource-and-data-policy.md +16 -31
- package/docs/architecture/toolchain.md +14 -19
- package/docs/architecture/ui-reference-provenance.md +2 -2
- package/docs/ci-release-runbook.md +5 -5
- package/docs/features/launch-profiles.md +11 -17
- package/docs/features/prompt-history.md +10 -11
- package/docs/local-worktree-cleanup.md +28 -1
- package/docs/manual-owned-ui-checkpoint.md +0 -1
- package/docs/validation.md +5 -11
- package/docs/worktree-link-recovery.md +6 -6
- package/package.json +7 -20
- package/bin/guardian.js +0 -42
- package/bin/supervisor.js +0 -7
- package/bin/tab-launch-context.d.ts +0 -27
- package/bin/tab-launch-context.js +0 -94
- package/dist/app/session-shell/resident-tab-coordinator.d.ts +0 -38
- package/dist/app/session-shell/resident-tab-coordinator.js +0 -77
- package/dist/cli/tabs-request.d.ts +0 -7
- package/dist/cli/tabs.d.ts +0 -14
- package/dist/cli/tabs.js +0 -151
- package/dist/composition/resident-tab-bridge.d.ts +0 -41
- package/dist/composition/resident-tab-bridge.js +0 -209
- package/dist/composition/utility-tab.d.ts +0 -28
- package/dist/composition/utility-tab.js +0 -244
- package/dist/features/owned-ui/plus-menu-dialog.d.ts +0 -28
- package/dist/features/owned-ui/plus-menu-dialog.js +0 -89
- package/dist/features/resident-tab/auto-name.d.ts +0 -11
- package/dist/features/resident-tab/auto-name.js +0 -44
- package/dist/features/resident-tab/index.d.ts +0 -5
- package/dist/features/resident-tab/index.js +0 -7
- package/dist/features/resident-tab/shortcut-bindings-file.d.ts +0 -8
- package/dist/features/resident-tab/shortcut-bindings-file.js +0 -40
- package/dist/features/resident-tab/shortcut-declarations.d.ts +0 -13
- package/dist/features/resident-tab/shortcut-declarations.js +0 -26
- package/dist/features/resident-tab/shortcut-projection.d.ts +0 -29
- package/dist/features/resident-tab/shortcut-projection.js +0 -64
- package/dist/features/resident-tab/status-deriver.d.ts +0 -10
- package/dist/features/resident-tab/status-deriver.js +0 -12
- package/dist/foundation/launch-guardian/exit-watcher.d.ts +0 -14
- package/dist/foundation/launch-guardian/exit-watcher.js +0 -103
- package/dist/foundation/launch-guardian/index.d.ts +0 -2
- package/dist/foundation/launch-guardian/index.js +0 -1
- package/dist/foundation/launch-guardian/main.d.ts +0 -39
- package/dist/foundation/launch-guardian/main.js +0 -232
- package/dist/foundation/lifecycle/commands.d.ts +0 -40
- package/dist/foundation/lifecycle/launch-instance.d.ts +0 -46
- package/dist/foundation/lifecycle/launch-instance.js +0 -134
- package/dist/foundation/lifecycle/native-claim-gate.d.ts +0 -5
- package/dist/foundation/lifecycle/native-claim-gate.js +0 -41
- package/dist/foundation/lifecycle/supervisor-startup.d.ts +0 -30
- package/dist/foundation/lifecycle/supervisor-startup.js +0 -106
- package/dist/foundation/process-containment/addon-containment.d.ts +0 -20
- package/dist/foundation/process-containment/addon-containment.js +0 -139
- package/dist/foundation/process-containment/addon-process-inspector.d.ts +0 -11
- package/dist/foundation/process-containment/addon-process-inspector.js +0 -36
- package/dist/foundation/process-containment/addon.d.ts +0 -47
- package/dist/foundation/process-containment/addon.js +0 -57
- package/dist/foundation/process-containment/artifact.d.ts +0 -1
- package/dist/foundation/process-containment/artifact.js +0 -35
- package/dist/foundation/process-containment/contracts.d.ts +0 -33
- package/dist/foundation/process-containment/contracts.js +0 -35
- package/dist/foundation/process-containment/index.d.ts +0 -9
- package/dist/foundation/process-containment/index.js +0 -7
- package/dist/foundation/process-containment/linux-process-inspector.d.ts +0 -7
- package/dist/foundation/process-containment/linux-process-inspector.js +0 -27
- package/dist/foundation/process-containment/native-process-inspector.d.ts +0 -4
- package/dist/foundation/process-containment/native-process-inspector.js +0 -21
- package/dist/foundation/protocol/client.d.ts +0 -18
- package/dist/foundation/protocol/client.js +0 -130
- package/dist/foundation/protocol/index.d.ts +0 -3
- package/dist/foundation/protocol/index.js +0 -2
- package/dist/foundation/protocol/messages.d.ts +0 -90
- package/dist/foundation/protocol/messages.js +0 -100
- package/dist/foundation/release/cohort-selection.d.ts +0 -33
- package/dist/foundation/release/cohort-selection.js +0 -67
- package/dist/foundation/release/endpoint-lock.d.ts +0 -2
- package/dist/foundation/release/endpoint-lock.js +0 -37
- package/dist/foundation/release/endpoint-recovery.d.ts +0 -10
- package/dist/foundation/release/endpoint-recovery.js +0 -45
- package/dist/foundation/release/endpoints.d.ts +0 -32
- package/dist/foundation/release/endpoints.js +0 -152
- package/dist/foundation/release/prepared-update-activation.d.ts +0 -3
- package/dist/foundation/release/prepared-update-activation.js +0 -27
- package/dist/foundation/release/process-cleanup.d.ts +0 -14
- package/dist/foundation/release/process-cleanup.js +0 -76
- package/dist/foundation/release/supervisor-identity.d.ts +0 -15
- package/dist/foundation/release/supervisor-identity.js +0 -63
- package/dist/foundation/resident-tabs/boot-identity.d.ts +0 -6
- package/dist/foundation/resident-tabs/boot-identity.js +0 -16
- package/dist/foundation/resident-tabs/bounded-host-command.d.ts +0 -20
- package/dist/foundation/resident-tabs/bounded-host-command.js +0 -62
- package/dist/foundation/resident-tabs/bridge-client.d.ts +0 -73
- package/dist/foundation/resident-tabs/bridge-client.js +0 -327
- package/dist/foundation/resident-tabs/continuity.d.ts +0 -12
- package/dist/foundation/resident-tabs/continuity.js +0 -63
- package/dist/foundation/resident-tabs/doctor.d.ts +0 -28
- package/dist/foundation/resident-tabs/doctor.js +0 -166
- package/dist/foundation/resident-tabs/draft-checkpoint.d.ts +0 -27
- package/dist/foundation/resident-tabs/draft-checkpoint.js +0 -145
- package/dist/foundation/resident-tabs/ensure-terminal-host.d.ts +0 -36
- package/dist/foundation/resident-tabs/ensure-terminal-host.js +0 -151
- package/dist/foundation/resident-tabs/fault-injection.d.ts +0 -8
- package/dist/foundation/resident-tabs/fault-injection.js +0 -26
- package/dist/foundation/resident-tabs/fixture-control.d.ts +0 -7
- package/dist/foundation/resident-tabs/fixture-control.js +0 -35
- package/dist/foundation/resident-tabs/host-entry.js +0 -17
- package/dist/foundation/resident-tabs/index.d.ts +0 -15
- package/dist/foundation/resident-tabs/index.js +0 -10
- package/dist/foundation/resident-tabs/maintenance.d.ts +0 -39
- package/dist/foundation/resident-tabs/maintenance.js +0 -75
- package/dist/foundation/resident-tabs/progress-observation-schema.d.ts +0 -34
- package/dist/foundation/resident-tabs/progress-observation-schema.js +0 -1
- package/dist/foundation/resident-tabs/progress-observation.d.ts +0 -4
- package/dist/foundation/resident-tabs/progress-observation.js +0 -150
- package/dist/foundation/resident-tabs/prompt-journal.d.ts +0 -63
- package/dist/foundation/resident-tabs/prompt-journal.js +0 -213
- package/dist/foundation/resident-tabs/protocol.d.ts +0 -12
- package/dist/foundation/resident-tabs/protocol.js +0 -195
- package/dist/foundation/resident-tabs/recovery.d.ts +0 -26
- package/dist/foundation/resident-tabs/recovery.js +0 -205
- package/dist/foundation/resident-tabs/release-holds.d.ts +0 -28
- package/dist/foundation/resident-tabs/release-holds.js +0 -78
- package/dist/foundation/resident-tabs/routes.d.ts +0 -5
- package/dist/foundation/resident-tabs/routes.js +0 -5
- package/dist/foundation/resident-tabs/routing.d.ts +0 -11
- package/dist/foundation/resident-tabs/routing.js +0 -10
- package/dist/foundation/resident-tabs/runtime-control.d.ts +0 -38
- package/dist/foundation/resident-tabs/runtime-control.js +0 -74
- package/dist/foundation/resident-tabs/session-sync.d.ts +0 -14
- package/dist/foundation/resident-tabs/session-sync.js +0 -37
- package/dist/foundation/resident-tabs/settings.d.ts +0 -16
- package/dist/foundation/resident-tabs/settings.js +0 -60
- package/dist/foundation/resident-tabs/terminal-host-artifact.d.ts +0 -14
- package/dist/foundation/resident-tabs/terminal-host-artifact.js +0 -78
- package/dist/foundation/resident-tabs/zip-archive.d.ts +0 -9
- package/dist/foundation/resident-tabs/zip-archive.js +0 -56
- package/dist/foundation/storage/control-store.d.ts +0 -20
- package/dist/foundation/storage/control-store.js +0 -331
- package/dist/foundation/storage/index.d.ts +0 -1
- package/dist/foundation/storage/index.js +0 -1
- package/dist/foundation/supervision/index.d.ts +0 -3
- package/dist/foundation/supervision/index.js +0 -3
- package/dist/foundation/supervision/main.d.ts +0 -1
- package/dist/foundation/supervision/main.js +0 -86
- package/dist/foundation/supervision/paths.d.ts +0 -1
- package/dist/foundation/supervision/paths.js +0 -1
- package/dist/foundation/supervision/server.d.ts +0 -46
- package/dist/foundation/supervision/server.js +0 -611
- package/dist/integrations/pi/components/components.d.ts +0 -4
- package/dist/integrations/pi/components/components.js +0 -48
- package/dist/integrations/pi/components/conformance.d.ts +0 -18
- package/dist/integrations/pi/components/conformance.js +0 -70
- package/dist/integrations/pi/components/shell-components.d.ts +0 -7
- package/dist/integrations/pi/components/shell-components.js +0 -7
- package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +0 -33
- package/dist/integrations/pi/components/upstream/theme/theme-controller.js +0 -114
- package/dist/integrations/pi/engine/offline-settings-port.d.ts +0 -23
- package/dist/integrations/pi/engine/offline-settings-port.js +0 -54
- package/dist/native/darwin-arm64/manifest.json +0 -23
- package/dist/native/darwin-arm64/process-guardian.node +0 -0
- package/dist/native/darwin-arm64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10500
- package/dist/native/darwin-arm64/terminal-host.manifest.json +0 -46
- package/dist/native/darwin-arm64/terminal-host.node +0 -0
- package/dist/native/darwin-x64/manifest.json +0 -23
- package/dist/native/darwin-x64/process-guardian.node +0 -0
- package/dist/native/darwin-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10737
- package/dist/native/darwin-x64/terminal-host.manifest.json +0 -46
- package/dist/native/darwin-x64/terminal-host.node +0 -0
- package/dist/native/linux-x64/manifest.json +0 -23
- package/dist/native/linux-x64/process-guardian.node +0 -0
- package/dist/native/linux-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -11226
- package/dist/native/linux-x64/terminal-host.manifest.json +0 -46
- package/dist/native/linux-x64/terminal-host.node +0 -0
- package/dist/native/win32-x64/manifest.json +0 -23
- package/dist/native/win32-x64/process-guardian.node +0 -0
- package/dist/native/win32-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10757
- package/dist/native/win32-x64/terminal-host.manifest.json +0 -46
- package/dist/native/win32-x64/terminal-host.node +0 -0
- package/dist/ui/settings/migrations.d.ts +0 -19
- package/dist/ui/settings/migrations.js +0 -209
- package/dist/ui/settings/progress-palette.generated.d.ts +0 -139
- package/dist/ui/settings/progress-palette.generated.js +0 -139
- package/docs/architecture/evidence/resident-tabs/linux-x64.md +0 -37
- package/docs/architecture/evidence/resident-tabs/macos-arm64.md +0 -36
- package/docs/architecture/evidence/resident-tabs/macos-x64.md +0 -35
- package/docs/architecture/evidence/resident-tabs/windows-x64.md +0 -36
- package/docs/architecture/evidence/terminal-host-spike/manual-one-pane-terminal-host.md +0 -70
- package/docs/architecture/evidence/terminal-host-spike/manual-two-by-two-basic-terminal-host.md +0 -32
- package/docs/architecture/evidence/terminal-host-spike/milestone-baseline.json +0 -115
- package/docs/architecture/evidence/terminal-host-spike/owned-ui-foundation-prerequisite.json +0 -48
- package/docs/architecture/evidence/terminal-host-spike/terminal-host-provenance.json +0 -125
- package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-1.json +0 -56
- package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-3.json +0 -174
- package/docs/architecture/evidence/terminal-host-spike/terminal-spike-acceptance-record.json +0 -18
- package/docs/architecture/native-fixture-isolation.md +0 -23
- package/docs/architecture/process-guardian-provenance.md +0 -36
- package/docs/architecture/resident-tabs-requirements.md +0 -18
- package/docs/architecture/resident-tabs.md +0 -668
- package/docs/architecture/terminal-host-proof-gate.md +0 -34
- package/docs/architecture/terminal-host-provenance.md +0 -81
- package/docs/architecture/terminal-host-spike-evidence.md +0 -39
- package/docs/launch-recovery.md +0 -23
- package/docs/manual-launch-instance-acceptance.md +0 -43
- package/docs/manual-resident-tabs-acceptance.md +0 -51
- /package/dist/{cli/tabs-request.js → contracts/owned-ui/shell-components.js} +0 -0
- /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.d.ts +0 -0
- /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.js +0 -0
- /package/dist/{foundation/lifecycle/commands.js → contracts/presentation/terminal.js} +0 -0
- /package/dist/{foundation/resident-tabs/host-entry.d.ts → contracts/presentation/theme.js} +0 -0
|
@@ -17,25 +17,17 @@ import { createPiTerminalBridge } from "../integrations/pi/tui-runtime/presentat
|
|
|
17
17
|
import { createOwnedRouteHost } from "./settings-route-host.js";
|
|
18
18
|
import { renderPiShellChangelogLines } from "../integrations/pi/components/shell-presenters-info.js";
|
|
19
19
|
import { nativeHyperlinkStyle } from "../ui/components/spans.js";
|
|
20
|
-
import { ResidentTabRecovery } from "../foundation/resident-tabs/recovery.js";
|
|
21
|
-
import { bindResidentPresentation, createResidentClientIdentity, closeResidentUtilityRoute, correlateResidentTabSubmission, currentBackendSessionFile, residentRouteHostOptions, residentTabKeybindings } from "./resident-tab-bridge.js";
|
|
22
20
|
import { SessionRuntimeRegistry } from "./session-runtime-registry.js";
|
|
23
21
|
import { deferStartupReleaseUpdateObservation, readPackageVersion, StartupReleaseNote } from "./startup-route.js";
|
|
24
22
|
import { createOwnedSettingsManager, watchSharedSettings } from "./owned-settings.js";
|
|
25
|
-
export { bindResidentTabBridge, correlateResidentTabSubmission } from "./resident-tab-bridge.js";
|
|
26
|
-
export function residentStartupPresentation(resident, fallbackNotice) {
|
|
27
|
-
if (resident)
|
|
28
|
-
return { startup: { quiet: true } };
|
|
29
|
-
return fallbackNotice === undefined ? {} : { startup: { notices: [{ kind: "warning", message: fallbackNotice }] } };
|
|
30
|
-
}
|
|
31
23
|
export async function composeOwnedUiApplication(options = {}) {
|
|
32
24
|
return (await composeOwnedUi(options)).application;
|
|
33
25
|
}
|
|
34
26
|
export async function composeOwnedUi(options = {}) {
|
|
35
27
|
const cwd = options.cwd ?? process.cwd();
|
|
36
|
-
const
|
|
28
|
+
const productMode = options.productMode ?? "bare", bare = productMode === "bare";
|
|
37
29
|
const sessionRuntimes = new SessionRuntimeRegistry({
|
|
38
|
-
runtimeId:
|
|
30
|
+
runtimeId: bare ? process.env[PRODUCT_IDENTITY.environment.sessionRuntimeId] : undefined,
|
|
39
31
|
inspectProcess: options.inspectProcess,
|
|
40
32
|
});
|
|
41
33
|
const productPaths = resolveProductPaths();
|
|
@@ -46,47 +38,27 @@ export async function composeOwnedUi(options = {}) {
|
|
|
46
38
|
: createOwnedSettingsManager({
|
|
47
39
|
profileId: options.profileId,
|
|
48
40
|
agentProvider: () => backend.settingsPort(),
|
|
49
|
-
...(options.hideTabSettings ? { hideTabSettings: true } : {}),
|
|
50
41
|
});
|
|
51
|
-
const
|
|
52
|
-
if (tabBridge !== null)
|
|
53
|
-
await tabBridge.start().catch(() => false);
|
|
54
|
-
const projectTrustPrompt = options.projectTrustPrompt === undefined ? undefined : async (request) => {
|
|
55
|
-
tabBridge?.status("needs-input", false, 1, 0);
|
|
56
|
-
try {
|
|
57
|
-
return await options.projectTrustPrompt(request);
|
|
58
|
-
}
|
|
59
|
-
finally {
|
|
60
|
-
tabBridge?.status("starting");
|
|
61
|
-
}
|
|
62
|
-
};
|
|
42
|
+
const projectTrustPrompt = options.projectTrustPrompt;
|
|
63
43
|
// Invariant: process-wide engine state has one owner. The host installs the HTTP dispatcher, applies
|
|
64
44
|
// the theme singletons, and announces startup notices once; every session is created through it.
|
|
65
45
|
const host = await (options.createEngineHost ?? (async (hostOptions) => createPiEngineHost(hostOptions)))({
|
|
66
|
-
productMode
|
|
46
|
+
productMode,
|
|
67
47
|
availableThemes: () => getAvailablePiThemes().map(theme => theme.name),
|
|
68
|
-
announceStartupChangelog: !
|
|
48
|
+
announceStartupChangelog: !bare,
|
|
69
49
|
theme: {
|
|
70
|
-
base:
|
|
71
|
-
accentColor: settings !== null &&
|
|
72
|
-
packageBorderProjection:
|
|
50
|
+
base: bare ? "dark" : "engine-configured",
|
|
51
|
+
accentColor: settings !== null && bare ? settings.value("accentColor") : "purple",
|
|
52
|
+
packageBorderProjection: bare,
|
|
73
53
|
apply: { base: applyConfiguredPiTheme, accentColor: setPiAccentColor, packageBorderProjection: setPiPackageBorderProjectionEnabled },
|
|
74
54
|
},
|
|
75
55
|
...(projectTrustPrompt === undefined ? {} : { projectTrustPrompt }),
|
|
76
56
|
});
|
|
77
|
-
const sessionForkPrompt = options.sessionForkPrompt
|
|
78
|
-
tabBridge?.status("needs-input", false, 1, 0);
|
|
79
|
-
try {
|
|
80
|
-
return await options.sessionForkPrompt(request);
|
|
81
|
-
}
|
|
82
|
-
finally {
|
|
83
|
-
tabBridge?.status("starting");
|
|
84
|
-
}
|
|
85
|
-
};
|
|
57
|
+
const sessionForkPrompt = options.sessionForkPrompt;
|
|
86
58
|
try {
|
|
87
59
|
backend = await host.create({
|
|
88
60
|
cwd,
|
|
89
|
-
...(
|
|
61
|
+
...(bare ? { repositoryContextReader: sessionRuntimes.readerFor(undefined) } : {}),
|
|
90
62
|
...(options.sessionPath === undefined ? {} : { sessionPath: options.sessionPath }),
|
|
91
63
|
...(options.sessionSelection === undefined ? {} : { sessionSelection: options.sessionSelection }),
|
|
92
64
|
...(sessionForkPrompt === undefined ? {} : { sessionForkPrompt }),
|
|
@@ -96,44 +68,28 @@ export async function composeOwnedUi(options = {}) {
|
|
|
96
68
|
await host.dispose();
|
|
97
69
|
throw error;
|
|
98
70
|
}
|
|
99
|
-
const clientIdentity = createResidentClientIdentity(update => backend.extensions.announceReleaseUpdate(update));
|
|
100
|
-
let recoveryDegraded = false;
|
|
101
|
-
let presentRecoveryDegraded = (_degraded) => { };
|
|
102
|
-
const tabRecovery = options.tab === undefined ? null : new ResidentTabRecovery(options.tab.dataDir, {
|
|
103
|
-
onDegraded: degraded => {
|
|
104
|
-
recoveryDegraded = degraded;
|
|
105
|
-
options.tab.bridge.degraded(degraded);
|
|
106
|
-
presentRecoveryDegraded(degraded);
|
|
107
|
-
},
|
|
108
|
-
});
|
|
109
|
-
const recoveredTabInput = await tabRecovery?.initialize(currentBackendSessionFile(backend), backend.identity.sessionId);
|
|
110
|
-
if (tabBridge !== null && settings !== null && ownedSurfaces)
|
|
111
|
-
tabBridge.accent(settings.value("accentColor"));
|
|
112
|
-
let removeControllerBoundaryInput = () => { };
|
|
113
|
-
let unsubscribeTabBridge = () => { };
|
|
114
71
|
const releaseNote = await StartupReleaseNote.load({
|
|
115
|
-
|
|
72
|
+
productMode,
|
|
116
73
|
configDir: productPaths.configDir,
|
|
117
74
|
...(options.releaseNotes === undefined ? {} : { releaseNotes: options.releaseNotes }),
|
|
118
75
|
...(options.packageVersion === undefined ? {} : { packageVersion: options.packageVersion }),
|
|
119
76
|
...(options.profileId === undefined ? {} : { profileId: options.profileId }),
|
|
120
77
|
});
|
|
121
|
-
const unsubscribeAccentChange = settings === null || !
|
|
78
|
+
const unsubscribeAccentChange = settings === null || !bare
|
|
122
79
|
? () => { }
|
|
123
80
|
: settings.onChange(current => {
|
|
124
81
|
const accent = current.value("accentColor");
|
|
125
82
|
host.setAccentColor(accent);
|
|
126
|
-
tabBridge?.accent(accent);
|
|
127
83
|
});
|
|
128
|
-
// Rationale:
|
|
129
|
-
//
|
|
130
|
-
const unwatchSharedSettings = settings === null || !
|
|
84
|
+
// Rationale: separate A1 processes share one settings document; a live scope change saved in
|
|
85
|
+
// one reaches the others only by rereading that document.
|
|
86
|
+
const unwatchSharedSettings = settings === null || !bare
|
|
131
87
|
? () => { }
|
|
132
88
|
: watchSharedSettings(settings);
|
|
133
89
|
const unsubscribeAccent = () => { unwatchSharedSettings(); unsubscribeAccentChange(); };
|
|
134
90
|
// Invariant: the Settings search and agent prompt borrow the same resolved Pi keybindings.
|
|
135
|
-
const keybindingsHost = createPiKeybindingsHost({ profile:
|
|
136
|
-
const keybindings =
|
|
91
|
+
const keybindingsHost = createPiKeybindingsHost({ profile: bare ? "a1" : "pi", agentDir: backend.identity.agentDir });
|
|
92
|
+
const keybindings = keybindingsHost;
|
|
137
93
|
// Rationale: Routes open only after shell construction.
|
|
138
94
|
const references = {
|
|
139
95
|
changelog: async (input) => {
|
|
@@ -149,41 +105,41 @@ export async function composeOwnedUi(options = {}) {
|
|
|
149
105
|
},
|
|
150
106
|
session: () => import("./session-info-reference.js").then(m => m.loadSessionInfoReference(backend)),
|
|
151
107
|
};
|
|
152
|
-
const routeHost = settings === null || !
|
|
153
|
-
: createOwnedRouteHost(settings, references, settingsRouteOptions(
|
|
154
|
-
const viewportSettings = settings === null || !
|
|
108
|
+
const routeHost = settings === null || !bare ? null
|
|
109
|
+
: createOwnedRouteHost(settings, references, settingsRouteOptions(keybindings, backend.identity.agentDir, cwd));
|
|
110
|
+
const viewportSettings = settings === null || !bare ? null : {
|
|
155
111
|
snapshot: () => viewportSettingsSnapshot(settings),
|
|
156
112
|
onChange: listener => settings.onChange(() => listener(viewportSettingsSnapshot(settings))),
|
|
157
113
|
};
|
|
158
|
-
const backgroundSettings = settings === null || !
|
|
114
|
+
const backgroundSettings = settings === null || !bare ? null : {
|
|
159
115
|
snapshot: () => settings.value("backgroundStyle"),
|
|
160
116
|
// Rationale: one manager notification also recomputes an accent-derived canvas after accentColor changes.
|
|
161
117
|
onChange: listener => settings.onChange(current => listener(current.value("backgroundStyle"))),
|
|
162
118
|
};
|
|
163
119
|
const diagnosticDestination = options.suggestionDiagnosticsPath ?? process.env[PRODUCT_IDENTITY.environment.suggestionDiagnostics];
|
|
164
|
-
const suggestionDiagnostics = settings !== null &&
|
|
120
|
+
const suggestionDiagnostics = settings !== null && bare && diagnosticDestination?.trim()
|
|
165
121
|
? await import("../features/prompt-suggestions/diagnostics.js").then(module => new module.SuggestionDiagnosticCapture({ enabled: true, destination: diagnosticDestination })) : null;
|
|
166
|
-
const promptSuggestions = settings === null || !
|
|
122
|
+
const promptSuggestions = settings === null || !bare ? null : {
|
|
167
123
|
...(suggestionDiagnostics === null ? {} : { diagnostics: suggestionDiagnostics }),
|
|
168
124
|
generator: backend,
|
|
169
125
|
enabled: () => settings.value("promptSuggestions"),
|
|
170
126
|
onChange: (listener) => settings.onChange(() => listener(settings.value("promptSuggestions"))),
|
|
171
127
|
};
|
|
172
|
-
const promptImages = settings === null || !
|
|
128
|
+
const promptImages = settings === null || !bare ? null : {
|
|
173
129
|
limit: () => settings.value("promptImageLimit"),
|
|
174
130
|
onChange: (listener) => settings.onChange(listener),
|
|
175
131
|
};
|
|
176
|
-
const skills = settings === null || !
|
|
132
|
+
const skills = settings === null || !bare ? null : {
|
|
177
133
|
presentation: () => settings.value("skillsPresentation"),
|
|
178
134
|
// Rationale: one listener covers both the A1 presentation choice and the engine skill-command toggle.
|
|
179
135
|
onChange: (listener) => settings.onChange(() => listener()),
|
|
180
136
|
};
|
|
181
|
-
const promptHistory = createPromptHistoryConfiguration(settings, backend,
|
|
137
|
+
const promptHistory = createPromptHistoryConfiguration(settings, backend, bare);
|
|
182
138
|
const clipboardDestination = options.clipboardDiagnosticsPath ?? process.env[PRODUCT_IDENTITY.environment.clipboardDiagnostics];
|
|
183
|
-
const clipboardDiagnostics = settings !== null &&
|
|
139
|
+
const clipboardDiagnostics = settings !== null && bare && clipboardDestination?.trim()
|
|
184
140
|
? new ClipboardDiagnosticCapture(clipboardDestination) : null;
|
|
185
141
|
// Invariant: process-wide services are created once here and borrowed by every session shell.
|
|
186
|
-
const clipboardServices =
|
|
142
|
+
const clipboardServices = bare ? createOwnedUiClipboardServices() : null;
|
|
187
143
|
let createdTerminalHost;
|
|
188
144
|
let terminalHost;
|
|
189
145
|
let presenter;
|
|
@@ -195,26 +151,14 @@ export async function composeOwnedUi(options = {}) {
|
|
|
195
151
|
cwd: backend.identity.cwd,
|
|
196
152
|
...(routeHost === null ? {} : { routeHost }),
|
|
197
153
|
...(releaseNote.startupRoute === undefined ? {} : { startupRoute: releaseNote.startupRoute }),
|
|
198
|
-
...(
|
|
199
|
-
...(tabBridge === null || tabRecovery === null ? {} : { residentTab: {
|
|
200
|
-
requestDetach: () => tabBridge.requestDetach(),
|
|
201
|
-
closeOwnedRoute: route => closeResidentUtilityRoute(tabBridge, route),
|
|
202
|
-
reportStatus: status => tabBridge.status(status),
|
|
203
|
-
admit: input => tabRecovery.admit({ ...input, incarnation: options.tab.incarnation }),
|
|
204
|
-
dispatched: () => tabRecovery.dispatched(),
|
|
205
|
-
correlated: (submissionId, entryId) => correlateResidentTabSubmission(tabRecovery, backend, submissionId, entryId),
|
|
206
|
-
checkpoint: text => tabRecovery.checkpoint(text),
|
|
207
|
-
gracefulStop: sessionFile => tabRecovery.gracefulStop(sessionFile),
|
|
208
|
-
...(recoveredTabInput === undefined ? {} : { recovered: recoveredTabInput }),
|
|
209
|
-
} }),
|
|
154
|
+
...(bare ? { sessionLayout: "custom-viewport" } : {}),
|
|
210
155
|
},
|
|
211
156
|
presentation: {
|
|
212
157
|
...(options.terminal === undefined ? {} : { terminal: createPiTerminalBridge(options.terminal) }),
|
|
213
|
-
...residentStartupPresentation(tabBridge !== null, options.residentFallbackNotice), soloResumeHint: options.soloResumeHint === true && tabBridge === null,
|
|
214
158
|
...(clipboardDiagnostics === null ? {} : { input: { onEvent: event => clipboardDiagnostics.runtime(event) } }),
|
|
215
159
|
...(viewportSettings === null ? {} : { viewportSettings }),
|
|
216
160
|
...(backgroundSettings === null ? {} : { backgroundSettings }),
|
|
217
|
-
...(settings === null || !
|
|
161
|
+
...(settings === null || !bare ? {} : {
|
|
218
162
|
quitOutro: { snapshot: () => quitOutroSettingsSnapshot(settings), interactive: process.stdout.isTTY === true },
|
|
219
163
|
}),
|
|
220
164
|
},
|
|
@@ -235,20 +179,7 @@ export async function composeOwnedUi(options = {}) {
|
|
|
235
179
|
// the host and paints once attached.
|
|
236
180
|
terminalHost = createdTerminalHost = new OwnedUiTerminalHost(sessionTerminalHostOptions(presenterOptions));
|
|
237
181
|
presenter = new OwnedUiSessionPresenter(terminalHost, presenterOptions);
|
|
238
|
-
presentRecoveryDegraded = degraded => {
|
|
239
|
-
if (!degraded)
|
|
240
|
-
return;
|
|
241
|
-
presenter.root.appendWorkflowStatus("draft recovery degraded");
|
|
242
|
-
terminalHost.runtime.requestRender();
|
|
243
|
-
};
|
|
244
|
-
if (recoveryDegraded)
|
|
245
|
-
presentRecoveryDegraded(true);
|
|
246
182
|
terminalHost.attach(presenter);
|
|
247
|
-
({ unsubscribeTabBridge, removeControllerBoundaryInput } = await bindResidentPresentation(tabBridge, backend, tabRecovery, {
|
|
248
|
-
autoName: settings?.value("tabsAutoName") ?? true,
|
|
249
|
-
openRoute: route => presenter.openOwnedRoute(route),
|
|
250
|
-
onClientVersion: clientIdentity.observe,
|
|
251
|
-
}, terminalHost.runtime));
|
|
252
183
|
}
|
|
253
184
|
catch (error) {
|
|
254
185
|
await createdTerminalHost?.dispose().catch(() => undefined);
|
|
@@ -266,12 +197,10 @@ export async function composeOwnedUi(options = {}) {
|
|
|
266
197
|
const releaseUpdates = deferStartupReleaseUpdateObservation({
|
|
267
198
|
backend,
|
|
268
199
|
configDir: productPaths.configDir,
|
|
269
|
-
mode: settings === null || !
|
|
270
|
-
packageVersion: releaseNote.packageVersion, readPackageVersion,
|
|
200
|
+
mode: settings === null || !bare ? "auto" : settings.value("updateCheck"),
|
|
201
|
+
packageVersion: releaseNote.packageVersion, readPackageVersion,
|
|
271
202
|
checkForNewerRelease: options.checkForNewerRelease,
|
|
272
|
-
clientVersion: clientIdentity.current,
|
|
273
203
|
});
|
|
274
|
-
clientIdentity.onChange(releaseUpdates.clientChanged);
|
|
275
204
|
const exitNoticePath = process.env[PRODUCT_IDENTITY.environment.exitNoticePath];
|
|
276
205
|
// Security: tools the agent runs must never see, or rewrite, this instance's notice.
|
|
277
206
|
delete process.env[PRODUCT_IDENTITY.environment.exitNoticePath];
|
|
@@ -279,10 +208,10 @@ export async function composeOwnedUi(options = {}) {
|
|
|
279
208
|
const application = {
|
|
280
209
|
get disposed() { return backend.identity.disposed; },
|
|
281
210
|
start: () => {
|
|
282
|
-
// Performance: the
|
|
211
|
+
// Performance: the launcher's exit notice loads beside first paint, never on the startup path.
|
|
283
212
|
if (exitNoticePath)
|
|
284
213
|
exitNotice = import("../app/session-shell/exit-notice.js")
|
|
285
|
-
.then(module => module.armExitNotice(backend, exitNoticePath
|
|
214
|
+
.then(module => module.armExitNotice(backend, exitNoticePath), () => null);
|
|
286
215
|
presenter.start();
|
|
287
216
|
releaseUpdates.start();
|
|
288
217
|
},
|
|
@@ -299,14 +228,11 @@ export async function composeOwnedUi(options = {}) {
|
|
|
299
228
|
finally {
|
|
300
229
|
// Invariant: the shared spares outlive every shell and stop only after the last one is disposed.
|
|
301
230
|
clipboardServices?.dispose();
|
|
302
|
-
removeControllerBoundaryInput();
|
|
303
231
|
unsubscribeAccent();
|
|
304
232
|
await sessionRuntimes.dispose();
|
|
305
233
|
await releaseNote.releaseClaim();
|
|
306
234
|
suggestionDiagnostics?.dispose();
|
|
307
235
|
clipboardDiagnostics?.dispose();
|
|
308
|
-
unsubscribeTabBridge();
|
|
309
|
-
tabBridge?.close();
|
|
310
236
|
// Invariant: the host outlives the application; disposing it cancels host-level probes last.
|
|
311
237
|
await host.dispose();
|
|
312
238
|
}
|
|
@@ -314,10 +240,10 @@ export async function composeOwnedUi(options = {}) {
|
|
|
314
240
|
};
|
|
315
241
|
return { application, settings };
|
|
316
242
|
}
|
|
317
|
-
function createPromptHistoryConfiguration(settings, backend,
|
|
243
|
+
function createPromptHistoryConfiguration(settings, backend, bare) {
|
|
318
244
|
const limit = settings?.value("promptHistoryMaxItems") ?? 100;
|
|
319
245
|
const scope = settings?.value("promptHistoryScope") ?? "unique";
|
|
320
|
-
const enabled = settings !== null &&
|
|
246
|
+
const enabled = settings !== null && bare && settings.value("promptHistoryEnabled");
|
|
321
247
|
const sessionId = enabled ? backend.identity.currentHistorySessionId() : null;
|
|
322
248
|
if (settings === null || !enabled || (scope === "unique" && sessionId === null))
|
|
323
249
|
return null;
|
|
@@ -340,9 +266,8 @@ function createPromptHistoryConfiguration(settings, backend, ownedSurfaces) {
|
|
|
340
266
|
};
|
|
341
267
|
}
|
|
342
268
|
export { watchSharedSettings } from "./owned-settings.js";
|
|
343
|
-
function settingsRouteOptions(
|
|
269
|
+
function settingsRouteOptions(keybindings, agentDir, cwd) {
|
|
344
270
|
return {
|
|
345
|
-
...residentRouteHostOptions(tabBridge),
|
|
346
271
|
keybindings,
|
|
347
272
|
agentDir,
|
|
348
273
|
cwd,
|
|
@@ -361,7 +286,6 @@ function quitOutroSettingsSnapshot(settings) {
|
|
|
361
286
|
}
|
|
362
287
|
function viewportSettingsSnapshot(settings) {
|
|
363
288
|
return {
|
|
364
|
-
timeFormat: settings.value("timeFormat"),
|
|
365
289
|
scrollbarAppearance: settings.value("scrollbarAppearance"),
|
|
366
290
|
scrollbarStyle: settings.value("scrollbarStyle"),
|
|
367
291
|
scrollbarSpeed: settings.value("scrollbarSpeed"),
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ReferenceDocumentSelectionOptions } from "../features/owned-ui/reference-document-selection.js";
|
|
2
|
-
/** Builds the Changelog selection clipboard policy without loading Pi's engine
|
|
2
|
+
/** Builds the Changelog selection clipboard policy without loading Pi's engine. */
|
|
3
3
|
export declare function createReferenceSelectionOptions(settingsFile: string, copyText: ((text: string) => boolean | void) | undefined): ReferenceDocumentSelectionOptions;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { readFileSync } from "node:fs";
|
|
2
|
-
/** Builds the Changelog selection clipboard policy without loading Pi's engine
|
|
2
|
+
/** Builds the Changelog selection clipboard policy without loading Pi's engine. */
|
|
3
3
|
export function createReferenceSelectionOptions(settingsFile, copyText) {
|
|
4
4
|
return {
|
|
5
5
|
copyOnSelect: () => {
|
|
@@ -6,17 +6,17 @@ export interface StartupReleaseUpdateObservationOptions {
|
|
|
6
6
|
readonly mode: StartupUpdateMode;
|
|
7
7
|
readonly packageVersion: string | null;
|
|
8
8
|
readonly readPackageVersion: () => Promise<string>;
|
|
9
|
-
readonly notificationVersion: string | undefined;
|
|
10
9
|
readonly checkForNewerRelease: ((options: StartupReleaseCheckOptions) => Promise<AvailableRelease | null>) | undefined;
|
|
11
|
-
readonly clientVersion?: () => string | null;
|
|
12
10
|
}
|
|
13
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* `Auto` installs a verified newer release in the background; the only thing the user sees is the
|
|
13
|
+
* installed status once the approved active release is newer than the one running here.
|
|
14
|
+
*/
|
|
14
15
|
declare class ReleaseUpdateObservation {
|
|
15
16
|
#private;
|
|
16
17
|
constructor(input: StartupReleaseUpdateObservationOptions);
|
|
17
18
|
start(): void;
|
|
18
19
|
stop(): void;
|
|
19
|
-
clientChanged(): void;
|
|
20
20
|
}
|
|
21
21
|
export declare function createStartupReleaseUpdateObservation(input: StartupReleaseUpdateObservationOptions): ReleaseUpdateObservation;
|
|
22
22
|
export {};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* `Auto` installs a verified newer release in the background; the only thing the user sees is the
|
|
3
|
+
* installed status once the approved active release is newer than the one running here.
|
|
4
|
+
*/
|
|
2
5
|
class ReleaseUpdateObservation {
|
|
3
6
|
#input;
|
|
4
7
|
#controller = new AbortController();
|
|
5
8
|
#timer;
|
|
6
|
-
#announced = null;
|
|
7
9
|
#installedAnnounced = false;
|
|
8
10
|
#eligible;
|
|
9
11
|
#cadence = null;
|
|
@@ -13,18 +15,14 @@ class ReleaseUpdateObservation {
|
|
|
13
15
|
#refresh = false;
|
|
14
16
|
#stopActiveReleaseObservation = () => { };
|
|
15
17
|
constructor(input) { this.#input = input; this.#eligible = input.mode === "auto"; }
|
|
16
|
-
#
|
|
17
|
-
|
|
18
|
-
if (key === this.#announced || (status === "installed" && this.#installedAnnounced) || this.#controller.signal.aborted)
|
|
18
|
+
#announceInstalled(version) {
|
|
19
|
+
if (this.#installedAnnounced || this.#controller.signal.aborted)
|
|
19
20
|
return;
|
|
20
|
-
this.#
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
this.#
|
|
24
|
-
|
|
25
|
-
clearTimeout(this.#timer);
|
|
26
|
-
}
|
|
27
|
-
this.#input.backend.extensions.announceReleaseUpdate({ status, version });
|
|
21
|
+
this.#installedAnnounced = true;
|
|
22
|
+
this.#eligible = false;
|
|
23
|
+
if (this.#timer !== undefined)
|
|
24
|
+
clearTimeout(this.#timer);
|
|
25
|
+
this.#input.backend.extensions.announceReleaseUpdate({ status: "installed", version });
|
|
28
26
|
}
|
|
29
27
|
async #startActiveReleaseObservation() {
|
|
30
28
|
const runningVersion = this.#input.packageVersion ?? await this.#input.readPackageVersion();
|
|
@@ -36,7 +34,7 @@ class ReleaseUpdateObservation {
|
|
|
36
34
|
this.#stopActiveReleaseObservation = module.observeNewerActiveRelease({
|
|
37
35
|
runningVersion,
|
|
38
36
|
signal: this.#controller.signal,
|
|
39
|
-
onNewer: version => this.#
|
|
37
|
+
onNewer: version => this.#announceInstalled(version),
|
|
40
38
|
});
|
|
41
39
|
}
|
|
42
40
|
async #observe() {
|
|
@@ -46,10 +44,9 @@ class ReleaseUpdateObservation {
|
|
|
46
44
|
this.#nextDelay = this.#cadence;
|
|
47
45
|
const input = this.#input;
|
|
48
46
|
const check = input.checkForNewerRelease ?? releases.checkForNewerRelease;
|
|
49
|
-
const
|
|
50
|
-
const runningVersion = client ?? input.packageVersion ?? await input.readPackageVersion();
|
|
47
|
+
const runningVersion = input.packageVersion ?? await input.readPackageVersion();
|
|
51
48
|
const options = {
|
|
52
|
-
runningVersion
|
|
49
|
+
runningVersion,
|
|
53
50
|
configDir: input.configDir, interactive: process.stdout.isTTY === true, settingMode: input.mode,
|
|
54
51
|
signal: this.#controller.signal, onNextCheckDelay: delay => { this.#nextDelay = delay; },
|
|
55
52
|
};
|
|
@@ -58,31 +55,12 @@ class ReleaseUpdateObservation {
|
|
|
58
55
|
return;
|
|
59
56
|
}
|
|
60
57
|
const release = await check(options);
|
|
61
|
-
if (release === null || this.#controller.signal.aborted)
|
|
62
|
-
return;
|
|
63
|
-
const current = input.clientVersion?.();
|
|
64
|
-
if (current && !releases.isNewerRelease(release.version, current))
|
|
65
|
-
return;
|
|
66
|
-
if (input.mode === "notify") {
|
|
67
|
-
input.backend.extensions.announceReleaseUpdate(release);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
if (input.mode !== "auto")
|
|
58
|
+
if (release === null || this.#controller.signal.aborted || input.mode !== "auto")
|
|
71
59
|
return;
|
|
72
60
|
const installed = await import("../foundation/release/automatic-update.js")
|
|
73
|
-
.then(module => module.requestAutomaticUpdate({
|
|
74
|
-
release, runningVersion, signal: this.#controller.signal,
|
|
75
|
-
onActivationBlocked: version => {
|
|
76
|
-
const clientVersion = input.clientVersion?.();
|
|
77
|
-
if (version !== null && clientVersion && !releases.isNewerRelease(version, clientVersion))
|
|
78
|
-
return;
|
|
79
|
-
if (version !== null)
|
|
80
|
-
this.#nextDelay = module.AUTOMATIC_UPDATE_ACTIVATION_RETRY_MS;
|
|
81
|
-
this.#announce(version === null ? "blocked-cleared" : "blocked", version ?? release.version);
|
|
82
|
-
},
|
|
83
|
-
}));
|
|
61
|
+
.then(module => module.requestAutomaticUpdate({ release, runningVersion, signal: this.#controller.signal }));
|
|
84
62
|
if (installed !== null)
|
|
85
|
-
this.#
|
|
63
|
+
this.#announceInstalled(installed);
|
|
86
64
|
}
|
|
87
65
|
async #run() {
|
|
88
66
|
if (this.#running) {
|
|
@@ -118,13 +96,5 @@ class ReleaseUpdateObservation {
|
|
|
118
96
|
if (this.#timer !== undefined)
|
|
119
97
|
clearTimeout(this.#timer);
|
|
120
98
|
}
|
|
121
|
-
clientChanged() {
|
|
122
|
-
this.#announced = null;
|
|
123
|
-
if (!this.#started || this.#controller.signal.aborted || this.#installedAnnounced || this.#input.mode === "no")
|
|
124
|
-
return;
|
|
125
|
-
if (this.#timer !== undefined)
|
|
126
|
-
clearTimeout(this.#timer);
|
|
127
|
-
void this.#run();
|
|
128
|
-
}
|
|
129
99
|
}
|
|
130
100
|
export function createStartupReleaseUpdateObservation(input) { return new ReleaseUpdateObservation(input); }
|
|
@@ -9,7 +9,6 @@ import type { PiSessionPresenterBackend } from "../integrations/pi/session-prese
|
|
|
9
9
|
*/
|
|
10
10
|
export interface ComposedSessionBackend extends PiSessionPresenterBackend, OwnedUiPromptSuggestionGeneratorPort {
|
|
11
11
|
settingsPort(): AgentSettingsPort | null;
|
|
12
|
-
generateResidentTabName(instruction: string, maxTokens: number, signal: AbortSignal): Promise<string | null>;
|
|
13
12
|
}
|
|
14
13
|
/** The process-level engine host as composition drives it: sessions, the live accent, and disposal. */
|
|
15
14
|
export interface ComposedEngineHost {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { ProcessIdentity } from "../foundation/lifecycle/model.js";
|
|
2
|
+
interface SessionRuntimeRegistryOptions {
|
|
3
3
|
/** Absent outside claim-owning runtimes. */
|
|
4
4
|
readonly runtimeId: string | undefined;
|
|
5
|
-
/**
|
|
6
|
-
readonly inspectProcess: ((pid: number) => Promise<
|
|
5
|
+
/** Process liveness inspection; absent SDK seams cannot claim. */
|
|
6
|
+
readonly inspectProcess: ((pid: number) => Promise<ProcessIdentity | null>) | undefined;
|
|
7
7
|
readonly refreshMs?: number;
|
|
8
8
|
}
|
|
9
9
|
/** Lifecycle-owned publication and retries for each agent's current session, serialized with disposal. */
|
|
@@ -15,3 +15,4 @@ export declare class SessionRuntimeRegistry {
|
|
|
15
15
|
/** Drain publication before releasing claims; never republish after disposal. */
|
|
16
16
|
dispose(): Promise<void>;
|
|
17
17
|
}
|
|
18
|
+
export {};
|
|
@@ -11,13 +11,6 @@ export interface OwnedReferenceProviders {
|
|
|
11
11
|
}
|
|
12
12
|
/** How the settings route is presented. */
|
|
13
13
|
export interface OwnedRouteHostOptions {
|
|
14
|
-
/**
|
|
15
|
-
* The route whose screen is this resident utility tab. That screen is the tab, so it offers no
|
|
16
|
-
* screen-level close: neither Esc nor one Ctrl+C dismisses it, and it shows no close hint.
|
|
17
|
-
*/
|
|
18
|
-
readonly tabRoute?: string | null;
|
|
19
|
-
/** Opens the tab bar's own Plus Menu dialog; false when no tab bar can show it. */
|
|
20
|
-
readonly configurePlusMenu?: () => boolean;
|
|
21
14
|
readonly keybindings?: PiKeybindingsHost;
|
|
22
15
|
readonly agentDir?: string;
|
|
23
16
|
readonly cwd?: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CHANGELOG_ROUTE, HOTKEYS_ROUTE, HOTKEYS_TITLE } from "../features/owned-ui/reference-routes.js";
|
|
2
2
|
import { SETTINGS_APP_ID, SETTINGS_ROUTE } from "../features/owned-ui/settings-route.js";
|
|
3
|
-
import { piTheme
|
|
3
|
+
import { piTheme } from "../integrations/pi/components/upstream/theme/theme.js";
|
|
4
|
+
import { piUiTheme } from "../integrations/pi/components/theme.js";
|
|
4
5
|
import { faint } from "../ui/components/text.js";
|
|
5
6
|
/** Declares settings and lazy document routes. */
|
|
6
7
|
export function createOwnedRouteHost(settings, references, options = {}) {
|
|
@@ -17,8 +18,7 @@ export function createOwnedRouteHost(settings, references, options = {}) {
|
|
|
17
18
|
const session = route === "session";
|
|
18
19
|
const title = session ? "Session Info" : changelog ? input ? "What's New" : "Changelog" : HOTKEYS_TITLE;
|
|
19
20
|
const document = session ? references.session() : changelog ? references.changelog(input) : references.hotkeys();
|
|
20
|
-
|
|
21
|
-
return deferredSurface(route, title, () => loadReferenceSurface(settings, route, title, document, pinned, options));
|
|
21
|
+
return deferredSurface(route, title, () => loadReferenceSurface(settings, route, title, document, options));
|
|
22
22
|
},
|
|
23
23
|
};
|
|
24
24
|
}
|
|
@@ -68,22 +68,18 @@ async function loadSettingsSurface(settings, options) {
|
|
|
68
68
|
import("./settings-search-input.js"),
|
|
69
69
|
import("../ui/components/dialog-panel.js"),
|
|
70
70
|
]);
|
|
71
|
-
const pinned = options.tabRoute === SETTINGS_ROUTE;
|
|
72
71
|
const searchInputFactory = createSettingsSearchInputFactory({
|
|
73
72
|
...(options.keybindings === undefined ? {} : { keybindings: options.keybindings }),
|
|
74
73
|
...(options.agentDir === undefined ? {} : { agentDir: options.agentDir }),
|
|
75
74
|
...(options.cwd === undefined ? {} : { cwd: options.cwd }),
|
|
76
75
|
});
|
|
77
|
-
// Invariant: a pinned Settings tab closes as a tab; neither Esc nor one unclaimed Ctrl+C dismisses its screen.
|
|
78
76
|
return hostApp(SETTINGS_APP_ID, SETTINGS_ROUTE, () => new SettingsApp(settings, {
|
|
79
|
-
pinned,
|
|
80
77
|
searchInputFactory,
|
|
81
|
-
configurePlusMenu: options.configurePlusMenu ?? null,
|
|
82
78
|
dialogPanel: text => renderFloatingDialogSurface(text, piTheme().getColorMode()),
|
|
83
79
|
...(options.copyText === undefined ? {} : { copyText: options.copyText }),
|
|
84
|
-
}),
|
|
80
|
+
}), true, true, text => renderFloatingMenuSurface(text, piTheme().getColorMode()));
|
|
85
81
|
}
|
|
86
|
-
async function loadReferenceSurface(settings, route, title, document,
|
|
82
|
+
async function loadReferenceSurface(settings, route, title, document, options) {
|
|
87
83
|
const id = route;
|
|
88
84
|
const [{ ReferenceScreenApp }, content, selection] = await Promise.all([
|
|
89
85
|
import("../features/owned-ui/reference-screen-app.js"),
|
|
@@ -101,9 +97,8 @@ async function loadReferenceSurface(settings, route, title, document, pinned, op
|
|
|
101
97
|
scrollbarStyle: settings.value("scrollbarStyle"),
|
|
102
98
|
scrollbarSpeed: settings.value("scrollbarSpeed"),
|
|
103
99
|
}),
|
|
104
|
-
pinned,
|
|
105
100
|
...(selection === undefined ? {} : { selection }),
|
|
106
|
-
}),
|
|
101
|
+
}), true, selection !== undefined);
|
|
107
102
|
}
|
|
108
103
|
async function hostApp(id, route, create, closeOnInterrupt = true, appInputBeforeInterrupt = false, panel = text => text) {
|
|
109
104
|
const [{ UiAppHost }, { UiAppRegistry }] = await Promise.all([
|
|
@@ -151,13 +146,5 @@ async function hostApp(id, route, create, closeOnInterrupt = true, appInputBefor
|
|
|
151
146
|
};
|
|
152
147
|
}
|
|
153
148
|
function pinnedTheme(panel) {
|
|
154
|
-
return {
|
|
155
|
-
fg: (token, text) => piTheme().fg(token, text),
|
|
156
|
-
bold: (text) => piTheme().bold(text),
|
|
157
|
-
plain: (text) => text,
|
|
158
|
-
accentPreview: (color, text) => renderPiAccentPreview(color, text),
|
|
159
|
-
disabled: (text) => faint(piTheme().fg("dim", text)),
|
|
160
|
-
highlight: (text) => piTheme().bg("selectedBg", text),
|
|
161
|
-
panel,
|
|
162
|
-
};
|
|
149
|
+
return piUiTheme({ panel, disabled: text => faint(piTheme().fg("dim", text)) });
|
|
163
150
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { SettingsSearchInputFactory } from "../features/owned-ui/settings-search-input.js";
|
|
2
2
|
import { type PiKeybindingsHost } from "../integrations/pi/components/shell-shared-facade.js";
|
|
3
|
-
|
|
3
|
+
interface SettingsSearchInputFactoryOptions {
|
|
4
4
|
readonly keybindings?: PiKeybindingsHost;
|
|
5
5
|
readonly agentDir?: string;
|
|
6
6
|
readonly cwd?: string;
|
|
7
7
|
}
|
|
8
8
|
/** Builds Settings search from the same configurable owned editor used by the agent prompt. */
|
|
9
9
|
export declare function createSettingsSearchInputFactory(options?: SettingsSearchInputFactoryOptions): SettingsSearchInputFactory;
|
|
10
|
+
export {};
|
|
@@ -2,8 +2,8 @@ import type { OwnedUiShellEngineOptions } from "../app/session-shell/index.js";
|
|
|
2
2
|
import type { ReleaseNoteCatalog } from "../features/owned-ui/release-notes.js";
|
|
3
3
|
import type { StartupReleaseUpdateObservationOptions } from "./release-update-observation.js";
|
|
4
4
|
type StartupRoute = NonNullable<OwnedUiShellEngineOptions["startupRoute"]>;
|
|
5
|
-
|
|
6
|
-
readonly
|
|
5
|
+
interface StartupReleaseNoteOptions {
|
|
6
|
+
readonly productMode: "bare" | "comparison";
|
|
7
7
|
/** Deterministic catalog and version seams for composition tests. */
|
|
8
8
|
readonly releaseNotes?: ReleaseNoteCatalog;
|
|
9
9
|
readonly packageVersion?: string;
|
|
@@ -17,7 +17,6 @@ type UpdateObservationModule = Pick<typeof import("./release-update-observation.
|
|
|
17
17
|
export declare function deferStartupReleaseUpdateObservation(options: StartupReleaseUpdateObservationOptions, load?: () => Promise<UpdateObservationModule>): {
|
|
18
18
|
start(): void;
|
|
19
19
|
stop(): void;
|
|
20
|
-
clientChanged(): void;
|
|
21
20
|
};
|
|
22
21
|
/**
|
|
23
22
|
* The release notes bare A1 ships and the one note this version shows once per profile on startup:
|
|
@@ -23,7 +23,6 @@ export function deferStartupReleaseUpdateObservation(options, load = () => impor
|
|
|
23
23
|
}).catch(() => { });
|
|
24
24
|
},
|
|
25
25
|
stop() { stopped = true; observation?.stop(); },
|
|
26
|
-
clientChanged() { observation?.clientChanged(); },
|
|
27
26
|
};
|
|
28
27
|
}
|
|
29
28
|
/**
|
|
@@ -41,7 +40,7 @@ export class StartupReleaseNote {
|
|
|
41
40
|
static async load(options) {
|
|
42
41
|
let catalog = null;
|
|
43
42
|
let failure;
|
|
44
|
-
if (options.
|
|
43
|
+
if (options.productMode === "bare") {
|
|
45
44
|
try {
|
|
46
45
|
catalog = options.releaseNotes
|
|
47
46
|
?? await import("../features/owned-ui/release-notes.js").then(module => module.readPackagedReleaseNotes());
|
|
@@ -50,7 +49,7 @@ export class StartupReleaseNote {
|
|
|
50
49
|
failure = error;
|
|
51
50
|
}
|
|
52
51
|
}
|
|
53
|
-
const packageVersion = options.
|
|
52
|
+
const packageVersion = options.productMode === "bare" ? options.packageVersion ?? await readPackageVersion() : null;
|
|
54
53
|
const current = packageVersion === null ? null : catalog?.current(packageVersion) ?? null;
|
|
55
54
|
const profileId = options.profileId;
|
|
56
55
|
const claim = current === null || profileId === undefined
|