@timurproko/a1 0.2.7-dev.1249 → 0.2.7-dev.1255
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -36
- package/bin/cli.js +2 -17
- package/bin/ui.js +10 -51
- package/dist/app/session-shell/clipboard-diagnostics.d.ts +2 -2
- package/dist/app/session-shell/clipboard-image.d.ts +0 -1
- package/dist/app/session-shell/clipboard-image.js +1 -1
- package/dist/app/session-shell/dialog-coordinator.d.ts +6 -5
- package/dist/app/session-shell/dialog-coordinator.js +3 -4
- package/dist/app/session-shell/dock-chrome.d.ts +11 -6
- package/dist/app/session-shell/dock-chrome.js +5 -8
- package/dist/app/session-shell/editor-hyperlink-budget.d.ts +0 -2
- package/dist/app/session-shell/editor-hyperlink-budget.js +1 -1
- package/dist/app/session-shell/exit-notice.d.ts +3 -3
- package/dist/app/session-shell/exit-notice.js +10 -10
- package/dist/app/session-shell/extension-surface.d.ts +8 -7
- package/dist/app/session-shell/helper-pool.d.ts +3 -4
- package/dist/app/session-shell/helper-pool.js +1 -1
- package/dist/app/session-shell/image-preparation-client.d.ts +4 -3
- package/dist/app/session-shell/image-preparation.d.ts +0 -2
- package/dist/app/session-shell/image-preparation.js +2 -2
- package/dist/app/session-shell/image-source.d.ts +2 -3
- package/dist/app/session-shell/image-source.js +2 -2
- package/dist/app/session-shell/input-surface-switch.d.ts +9 -7
- package/dist/app/session-shell/input-surface-switch.js +1 -2
- package/dist/app/session-shell/login-interaction.d.ts +5 -4
- package/dist/app/session-shell/login-interaction.js +2 -3
- package/dist/app/session-shell/paste-executor.d.ts +4 -8
- package/dist/app/session-shell/paste-executor.js +2 -2
- package/dist/app/session-shell/paste-protocol.d.ts +2 -2
- package/dist/app/session-shell/path-chip-presentation.d.ts +0 -5
- package/dist/app/session-shell/path-chip-presentation.js +3 -3
- package/dist/app/session-shell/prompt-chips.d.ts +8 -7
- package/dist/app/session-shell/prompt-history-controller.d.ts +3 -3
- package/dist/app/session-shell/prompt-submission.d.ts +7 -6
- package/dist/app/session-shell/prompt-submission.js +7 -28
- package/dist/app/session-shell/quit-outro-effects.d.ts +3 -3
- package/dist/app/session-shell/quit-outro-effects.js +1 -4
- package/dist/app/session-shell/quit-outro.d.ts +9 -12
- package/dist/app/session-shell/quit-outro.js +11 -11
- package/dist/app/session-shell/response-copy-protocol.d.ts +3 -2
- package/dist/app/session-shell/response-copy-transport.d.ts +2 -14
- package/dist/app/session-shell/response-copy-transport.js +2 -3
- package/dist/app/session-shell/session-lifecycle.d.ts +3 -3
- package/dist/app/session-shell/session-lifecycle.js +2 -4
- package/dist/app/session-shell/session-shell-root.d.ts +74 -120
- package/dist/app/session-shell/session-shell-root.js +82 -115
- package/dist/app/session-shell/session-shell.d.ts +13 -16
- package/dist/app/session-shell/session-shell.js +149 -314
- package/dist/app/session-shell/session-viewport-controller.d.ts +7 -6
- package/dist/app/session-shell/session-viewport-controller.js +5 -8
- package/dist/app/session-shell/settings-bindings.d.ts +24 -2
- package/dist/app/session-shell/settings-bindings.js +24 -0
- package/dist/app/session-shell/share-operation.d.ts +3 -3
- package/dist/app/session-shell/share-operation.js +4 -6
- package/dist/app/session-shell/shell-clipboard.d.ts +59 -0
- package/dist/app/session-shell/shell-clipboard.js +119 -0
- package/dist/app/session-shell/shell-editor-factory.d.ts +8 -4
- package/dist/app/session-shell/shell-editor-factory.js +13 -15
- package/dist/app/session-shell/shell-host.d.ts +16 -17
- package/dist/app/session-shell/shell-host.js +20 -37
- package/dist/app/session-shell/shell-layout.d.ts +2 -2
- package/dist/app/session-shell/shell-prompt-suggestions.d.ts +26 -0
- package/dist/app/session-shell/shell-prompt-suggestions.js +48 -0
- package/dist/app/session-shell/suggestion-surface.d.ts +1 -6
- package/dist/app/session-shell/suggestion-surface.js +1 -1
- package/dist/app/session-shell/system-clipboard.d.ts +2 -14
- package/dist/app/session-shell/system-clipboard.js +2 -7
- package/dist/app/session-shell/transcript-document.d.ts +12 -10
- package/dist/app/session-shell/transcript-document.js +15 -41
- package/dist/app/session-shell/viewport-layout.d.ts +2 -2
- package/dist/app/session-shell/workflow-output.d.ts +5 -3
- package/dist/app/session-shell/workflow-output.js +13 -15
- package/dist/app/session-shell/workflow-router.d.ts +1 -3
- package/dist/app/session-shell/workflow-router.js +1 -4
- package/dist/cli/dispatch.d.ts +1 -11
- package/dist/cli/dispatch.js +5 -92
- package/dist/cli/package-messages.d.ts +0 -1
- package/dist/cli/package-messages.js +1 -1
- package/dist/cli/session-context.d.ts +1 -1
- package/dist/cli/session-context.js +5 -7
- package/dist/cli/uninstall.d.ts +4 -7
- package/dist/cli/uninstall.js +6 -35
- package/dist/cli/version-stats.js +4 -7
- package/dist/composition/owned-settings.d.ts +2 -2
- package/dist/composition/owned-settings.js +0 -4
- package/dist/composition/owned-ui.d.ts +3 -25
- package/dist/composition/owned-ui.js +37 -113
- package/dist/composition/reference-selection-options.d.ts +1 -1
- package/dist/composition/reference-selection-options.js +1 -1
- package/dist/composition/release-update-observation.d.ts +4 -4
- package/dist/composition/release-update-observation.js +17 -47
- package/dist/composition/session-backend.d.ts +0 -1
- package/dist/composition/session-runtime-registry.d.ts +5 -4
- package/dist/composition/settings-route-host.d.ts +0 -7
- package/dist/composition/settings-route-host.js +7 -20
- package/dist/composition/settings-search-input.d.ts +2 -1
- package/dist/composition/startup-route.d.ts +2 -3
- package/dist/composition/startup-route.js +2 -3
- package/dist/contracts/owned-ui/extension-ui.d.ts +2 -1
- package/dist/contracts/owned-ui/index.d.ts +2 -1
- package/dist/contracts/owned-ui/model.d.ts +0 -3
- package/dist/contracts/owned-ui/session-presenters.d.ts +3 -0
- package/dist/contracts/owned-ui/session-workflows.d.ts +1 -4
- package/dist/contracts/owned-ui/shell-components.d.ts +543 -0
- package/dist/contracts/presentation/component.d.ts +17 -0
- package/dist/contracts/presentation/component.js +8 -0
- package/dist/contracts/presentation/index.d.ts +6 -15
- package/dist/contracts/presentation/index.js +2 -0
- package/dist/contracts/presentation/terminal.d.ts +290 -0
- package/dist/contracts/presentation/theme.d.ts +46 -0
- package/dist/features/launch/development-launch.js +1 -2
- package/dist/features/launch/index.d.ts +1 -1
- package/dist/features/launch/intent.d.ts +1 -3
- package/dist/features/launch/intent.js +2 -4
- package/dist/features/launch/runtime-selection.d.ts +2 -2
- package/dist/features/launch/runtime-selection.js +2 -2
- package/dist/features/launch/session-context.d.ts +2 -2
- package/dist/features/owned-ui/project-trust-prompt.d.ts +2 -2
- package/dist/features/owned-ui/project-trust-prompt.js +1 -1
- package/dist/features/owned-ui/reference-screen-app.d.ts +0 -2
- package/dist/features/owned-ui/reference-screen-app.js +2 -9
- package/dist/features/owned-ui/release-note-state.d.ts +2 -1
- package/dist/features/owned-ui/settings-app.d.ts +0 -6
- package/dist/features/owned-ui/settings-app.js +42 -254
- package/dist/features/owned-ui/settings-edits.d.ts +31 -0
- package/dist/features/owned-ui/settings-edits.js +139 -0
- package/dist/features/owned-ui/settings-scroll-rail.d.ts +29 -0
- package/dist/features/owned-ui/settings-scroll-rail.js +79 -0
- package/dist/features/owned-ui/settings-search-input.d.ts +2 -1
- package/dist/features/prompt-history/service.d.ts +3 -2
- package/dist/foundation/launch-context/index.d.ts +0 -12
- package/dist/foundation/launch-context/index.js +0 -26
- package/dist/foundation/lifecycle/claim-gate.d.ts +9 -0
- package/dist/foundation/lifecycle/claim-gate.js +37 -0
- package/dist/foundation/lifecycle/index.d.ts +5 -9
- package/dist/foundation/lifecycle/index.js +3 -4
- package/dist/foundation/lifecycle/model.d.ts +2 -59
- package/dist/foundation/lifecycle/model.js +0 -35
- package/dist/foundation/lifecycle/paths.d.ts +0 -24
- package/dist/foundation/lifecycle/paths.js +0 -40
- package/dist/foundation/lifecycle/process-liveness.d.ts +8 -0
- package/dist/foundation/lifecycle/process-liveness.js +18 -0
- package/dist/foundation/lifecycle/session-claim-lock.d.ts +1 -1
- package/dist/foundation/lifecycle/session-claim-lock.js +2 -2
- package/dist/foundation/lifecycle/session-repository-context.d.ts +6 -6
- package/dist/foundation/lifecycle/session-repository-context.js +2 -3
- package/dist/foundation/release/automatic-update.d.ts +6 -17
- package/dist/foundation/release/automatic-update.js +23 -44
- package/dist/foundation/release/bootstrap.d.ts +2 -25
- package/dist/foundation/release/bootstrap.js +37 -348
- package/dist/foundation/release/dependency-certification.d.ts +1 -2
- package/dist/foundation/release/dependency-certification.js +1 -1
- package/dist/foundation/release/early-accent.d.ts +2 -2
- package/dist/foundation/release/early-accent.js +1 -1
- package/dist/foundation/release/index.d.ts +10 -17
- package/dist/foundation/release/index.js +7 -11
- package/dist/foundation/release/latest-release.d.ts +3 -19
- package/dist/foundation/release/latest-release.js +11 -12
- package/dist/foundation/release/ordinary-launch-selection.d.ts +1 -1
- package/dist/foundation/release/ordinary-launch-selection.js +1 -1
- package/dist/foundation/release/process-liveness.d.ts +2 -0
- package/dist/foundation/release/process-liveness.js +12 -0
- package/dist/foundation/release/release-gc.d.ts +13 -10
- package/dist/foundation/release/release-gc.js +37 -101
- package/dist/foundation/release/{cohort-state.d.ts → release-state.d.ts} +44 -69
- package/dist/foundation/release/{cohort-state.js → release-state.js} +38 -70
- package/dist/foundation/release/release-store.d.ts +2 -2
- package/dist/foundation/release/release-store.js +2 -2
- package/dist/foundation/release/restart-certification.js +1 -1
- package/dist/foundation/release/update-activation.d.ts +2 -9
- package/dist/foundation/release/update-activation.js +30 -45
- package/dist/foundation/release/update-execution-lease.d.ts +2 -3
- package/dist/foundation/release/update-execution-lease.js +2 -2
- package/dist/foundation/release/update-launch.d.ts +2 -4
- package/dist/foundation/release/update-launch.js +0 -7
- package/dist/foundation/release/update-recovery.js +1 -1
- package/dist/foundation/release/update-transaction.d.ts +1 -1
- package/dist/foundation/release/update-transaction.js +5 -2
- package/dist/foundation/release/update.d.ts +2 -12
- package/dist/foundation/release/update.js +37 -214
- package/dist/foundation/session-writer-lock/index.d.ts +14 -6
- package/dist/foundation/session-writer-lock/index.js +48 -103
- package/dist/foundation/startup/startup-budget.d.ts +5 -5
- package/dist/foundation/startup/startup-budget.js +2 -2
- package/dist/foundation/startup/startup-runtime.d.ts +1 -1
- package/dist/foundation/terminal-cleanup/exit-notice.d.ts +6 -0
- package/dist/foundation/terminal-cleanup/exit-notice.js +36 -0
- package/dist/foundation/terminal-cleanup/index.d.ts +2 -1
- package/dist/foundation/terminal-cleanup/index.js +2 -1
- package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +0 -5
- package/dist/foundation/terminal-cleanup/terminal-reset.js +0 -5
- package/dist/integrations/pi/components/editor-interaction.d.ts +4 -12
- package/dist/integrations/pi/components/index.d.ts +15 -9
- package/dist/integrations/pi/components/index.js +9 -5
- package/dist/integrations/pi/components/lazy-selectors.d.ts +2 -10
- package/dist/integrations/pi/components/lazy-selectors.js +1 -1
- package/dist/integrations/pi/components/modal-frame.d.ts +5 -22
- package/dist/integrations/pi/components/modal-frame.js +3 -23
- package/dist/integrations/pi/components/owned-editor-ux.d.ts +4 -3
- package/dist/integrations/pi/components/prompt-input-port.d.ts +2 -19
- package/dist/integrations/pi/components/resources/builtin-themes.d.ts +2 -1
- package/dist/integrations/pi/components/shell-editor-autocomplete.d.ts +3 -2
- package/dist/integrations/pi/components/shell-editor-autocomplete.js +1 -4
- package/dist/integrations/pi/components/shell-footer-status.d.ts +3 -3
- package/dist/integrations/pi/components/shell-footer-status.js +5 -4
- package/dist/integrations/pi/components/shell-hotkey-sections.js +1 -1
- package/dist/integrations/pi/components/shell-presenters-info.d.ts +6 -8
- package/dist/integrations/pi/components/shell-presenters-info.js +6 -19
- package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +1 -1
- package/dist/integrations/pi/components/shell-presenters-transcript.js +1 -1
- package/dist/integrations/pi/components/shell-session-info-reference.d.ts +2 -1
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +33 -229
- package/dist/integrations/pi/components/shell-shared-facade.js +8 -1
- package/dist/integrations/pi/components/skills-command.d.ts +1 -9
- package/dist/integrations/pi/components/skills-command.js +5 -5
- package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +2 -5
- package/dist/integrations/pi/components/submitted-prompt-adapter.js +2 -16
- package/dist/integrations/pi/components/theme.d.ts +9 -2
- package/dist/integrations/pi/components/theme.js +17 -2
- package/dist/integrations/pi/components/thinking-selector-dialog.d.ts +2 -1
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +2 -2
- package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +1 -2
- package/dist/integrations/pi/components/upstream/components/session-footer.js +6 -8
- package/dist/integrations/pi/engine/adapter.d.ts +3 -6
- package/dist/integrations/pi/engine/adapter.js +4 -28
- package/dist/integrations/pi/engine/changelog.d.ts +2 -2
- package/dist/integrations/pi/engine/changelog.js +3 -3
- package/dist/integrations/pi/engine/compaction-progress.d.ts +2 -3
- package/dist/integrations/pi/engine/compaction-progress.js +1 -1
- package/dist/integrations/pi/engine/conformance.d.ts +2 -1
- package/dist/integrations/pi/engine/default-model-setting.d.ts +0 -2
- package/dist/integrations/pi/engine/default-model-setting.js +1 -2
- package/dist/integrations/pi/engine/diagnostics-state.d.ts +0 -1
- package/dist/integrations/pi/engine/diagnostics-state.js +0 -14
- package/dist/integrations/pi/engine/event-delivery.d.ts +2 -1
- package/dist/integrations/pi/engine/extension-ui-binding.d.ts +2 -1
- package/dist/integrations/pi/engine/host.js +2 -2
- package/dist/integrations/pi/engine/message-values.d.ts +0 -1
- package/dist/integrations/pi/engine/message-values.js +1 -1
- package/dist/integrations/pi/engine/pending-delivery.d.ts +0 -4
- package/dist/integrations/pi/engine/pending-delivery.js +3 -3
- package/dist/integrations/pi/engine/ports.d.ts +7 -1
- package/dist/integrations/pi/engine/ports.js +4 -0
- package/dist/integrations/pi/engine/project-trust-preflight.d.ts +2 -1
- package/dist/integrations/pi/engine/prompt-suggestions.d.ts +3 -3
- package/dist/integrations/pi/engine/prompt-suggestions.js +0 -40
- package/dist/integrations/pi/engine/provider-authentication.d.ts +1 -1
- package/dist/integrations/pi/engine/public-main-entry.d.ts +1 -5
- package/dist/integrations/pi/engine/public-main-entry.js +1 -1
- package/dist/integrations/pi/engine/repository-pr-rest.d.ts +1 -9
- package/dist/integrations/pi/engine/repository-pr-rest.js +2 -2
- package/dist/integrations/pi/engine/repository-pr.d.ts +1 -3
- package/dist/integrations/pi/engine/repository-pr.js +1 -1
- package/dist/integrations/pi/engine/resource-catalog.d.ts +2 -1
- package/dist/integrations/pi/engine/session-integration.d.ts +1 -1
- package/dist/integrations/pi/engine/session-runtime.d.ts +4 -3
- package/dist/integrations/pi/engine/session-runtime.js +0 -2
- package/dist/integrations/pi/engine/settings-bridge.d.ts +0 -2
- package/dist/integrations/pi/engine/settings-bridge.js +1 -1
- package/dist/integrations/pi/engine/settings-port.d.ts +3 -2
- package/dist/integrations/pi/engine/transcript-projection.d.ts +2 -1
- package/dist/integrations/pi/engine/workflow-contexts.d.ts +1 -1
- package/dist/integrations/pi/engine/workflow-runner.d.ts +1 -1
- package/dist/integrations/pi/engine/workflow-runner.js +1 -1
- package/dist/integrations/pi/engine/workflow-support.d.ts +0 -6
- package/dist/integrations/pi/engine/workflow-support.js +4 -18
- package/dist/integrations/pi/engine/workflows.d.ts +5 -5
- package/dist/integrations/pi/session-presenters/components.d.ts +3 -0
- package/dist/integrations/pi/session-presenters/components.js +75 -0
- package/dist/integrations/pi/session-presenters/index.d.ts +1 -0
- package/dist/integrations/pi/session-presenters/index.js +1 -0
- package/dist/integrations/pi/session-presenters/presentation.d.ts +3 -0
- package/dist/integrations/pi/session-presenters/presentation.js +10 -0
- package/dist/integrations/pi/session-presenters/presenters.d.ts +2 -1
- package/dist/integrations/pi/session-presenters/presenters.js +3 -1
- package/dist/integrations/pi/tui-runtime/adapter.d.ts +2 -2
- package/dist/integrations/pi/tui-runtime/adapter.js +23 -32
- package/dist/integrations/pi/tui-runtime/contracts.d.ts +22 -166
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +5 -40
- package/dist/integrations/pi/tui-runtime/index.d.ts +1 -0
- package/dist/integrations/pi/tui-runtime/index.js +1 -0
- package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +4 -6
- package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +2 -8
- package/dist/integrations/pi/tui-runtime/overlay-geometry.js +3 -9
- package/dist/integrations/pi/tui-runtime/runtime-factory.d.ts +3 -0
- package/dist/integrations/pi/tui-runtime/runtime-factory.js +11 -0
- package/dist/product-identity.d.ts +4 -6
- package/dist/product-identity.js +6 -11
- package/dist/product-identity.json +1 -40
- package/dist/runtime-payload-inventory.json +0 -3
- package/dist/ui/components/index.d.ts +4 -4
- package/dist/ui/components/index.js +2 -2
- package/dist/ui/components/selection-copy.d.ts +0 -1
- package/dist/ui/components/selection-copy.js +0 -12
- package/dist/ui/components/submitted-prompt.d.ts +3 -13
- package/dist/ui/components/submitted-prompt.js +8 -41
- package/dist/ui/components/theme.d.ts +4 -19
- package/dist/ui/components/theme.js +6 -0
- package/dist/ui/components/transcript-viewport.d.ts +1 -3
- package/dist/ui/components/transcript-viewport.js +1 -4
- package/dist/ui/settings/declarations.d.ts +2 -97
- package/dist/ui/settings/declarations.js +2 -78
- package/dist/ui/settings/early-accent.js +1 -1
- package/dist/ui/settings/index.d.ts +3 -5
- package/dist/ui/settings/index.js +2 -3
- package/dist/ui/settings/manager.d.ts +0 -4
- package/dist/ui/settings/manager.js +6 -62
- package/dist/ui/settings/resolution.d.ts +6 -18
- package/dist/ui/settings/resolution.js +4 -103
- package/dist/ui/settings/sections.d.ts +0 -4
- package/dist/ui/settings/sections.js +1 -1
- package/docs/architecture/boundaries.md +23 -40
- package/docs/architecture/code-documentation.md +2 -2
- package/docs/architecture/internal-naming.md +11 -17
- package/docs/architecture/project-structure.md +13 -16
- package/docs/architecture/resource-and-data-policy.md +16 -31
- package/docs/architecture/toolchain.md +14 -19
- package/docs/architecture/ui-reference-provenance.md +2 -2
- package/docs/ci-release-runbook.md +5 -5
- package/docs/features/launch-profiles.md +11 -17
- package/docs/features/prompt-history.md +10 -11
- package/docs/local-worktree-cleanup.md +28 -1
- package/docs/manual-owned-ui-checkpoint.md +0 -1
- package/docs/validation.md +5 -11
- package/docs/worktree-link-recovery.md +6 -6
- package/package.json +7 -20
- package/bin/guardian.js +0 -42
- package/bin/supervisor.js +0 -7
- package/bin/tab-launch-context.d.ts +0 -27
- package/bin/tab-launch-context.js +0 -94
- package/dist/app/session-shell/resident-tab-coordinator.d.ts +0 -38
- package/dist/app/session-shell/resident-tab-coordinator.js +0 -77
- package/dist/cli/tabs-request.d.ts +0 -7
- package/dist/cli/tabs.d.ts +0 -14
- package/dist/cli/tabs.js +0 -151
- package/dist/composition/resident-tab-bridge.d.ts +0 -41
- package/dist/composition/resident-tab-bridge.js +0 -209
- package/dist/composition/utility-tab.d.ts +0 -28
- package/dist/composition/utility-tab.js +0 -244
- package/dist/features/owned-ui/plus-menu-dialog.d.ts +0 -28
- package/dist/features/owned-ui/plus-menu-dialog.js +0 -89
- package/dist/features/resident-tab/auto-name.d.ts +0 -11
- package/dist/features/resident-tab/auto-name.js +0 -44
- package/dist/features/resident-tab/index.d.ts +0 -5
- package/dist/features/resident-tab/index.js +0 -7
- package/dist/features/resident-tab/shortcut-bindings-file.d.ts +0 -8
- package/dist/features/resident-tab/shortcut-bindings-file.js +0 -40
- package/dist/features/resident-tab/shortcut-declarations.d.ts +0 -13
- package/dist/features/resident-tab/shortcut-declarations.js +0 -26
- package/dist/features/resident-tab/shortcut-projection.d.ts +0 -29
- package/dist/features/resident-tab/shortcut-projection.js +0 -64
- package/dist/features/resident-tab/status-deriver.d.ts +0 -10
- package/dist/features/resident-tab/status-deriver.js +0 -12
- package/dist/foundation/launch-guardian/exit-watcher.d.ts +0 -14
- package/dist/foundation/launch-guardian/exit-watcher.js +0 -103
- package/dist/foundation/launch-guardian/index.d.ts +0 -2
- package/dist/foundation/launch-guardian/index.js +0 -1
- package/dist/foundation/launch-guardian/main.d.ts +0 -39
- package/dist/foundation/launch-guardian/main.js +0 -232
- package/dist/foundation/lifecycle/commands.d.ts +0 -40
- package/dist/foundation/lifecycle/launch-instance.d.ts +0 -46
- package/dist/foundation/lifecycle/launch-instance.js +0 -134
- package/dist/foundation/lifecycle/native-claim-gate.d.ts +0 -5
- package/dist/foundation/lifecycle/native-claim-gate.js +0 -41
- package/dist/foundation/lifecycle/supervisor-startup.d.ts +0 -30
- package/dist/foundation/lifecycle/supervisor-startup.js +0 -106
- package/dist/foundation/process-containment/addon-containment.d.ts +0 -20
- package/dist/foundation/process-containment/addon-containment.js +0 -139
- package/dist/foundation/process-containment/addon-process-inspector.d.ts +0 -11
- package/dist/foundation/process-containment/addon-process-inspector.js +0 -36
- package/dist/foundation/process-containment/addon.d.ts +0 -47
- package/dist/foundation/process-containment/addon.js +0 -57
- package/dist/foundation/process-containment/artifact.d.ts +0 -1
- package/dist/foundation/process-containment/artifact.js +0 -35
- package/dist/foundation/process-containment/contracts.d.ts +0 -33
- package/dist/foundation/process-containment/contracts.js +0 -35
- package/dist/foundation/process-containment/index.d.ts +0 -9
- package/dist/foundation/process-containment/index.js +0 -7
- package/dist/foundation/process-containment/linux-process-inspector.d.ts +0 -7
- package/dist/foundation/process-containment/linux-process-inspector.js +0 -27
- package/dist/foundation/process-containment/native-process-inspector.d.ts +0 -4
- package/dist/foundation/process-containment/native-process-inspector.js +0 -21
- package/dist/foundation/protocol/client.d.ts +0 -18
- package/dist/foundation/protocol/client.js +0 -130
- package/dist/foundation/protocol/index.d.ts +0 -3
- package/dist/foundation/protocol/index.js +0 -2
- package/dist/foundation/protocol/messages.d.ts +0 -90
- package/dist/foundation/protocol/messages.js +0 -100
- package/dist/foundation/release/cohort-selection.d.ts +0 -33
- package/dist/foundation/release/cohort-selection.js +0 -67
- package/dist/foundation/release/endpoint-lock.d.ts +0 -2
- package/dist/foundation/release/endpoint-lock.js +0 -37
- package/dist/foundation/release/endpoint-recovery.d.ts +0 -10
- package/dist/foundation/release/endpoint-recovery.js +0 -45
- package/dist/foundation/release/endpoints.d.ts +0 -32
- package/dist/foundation/release/endpoints.js +0 -152
- package/dist/foundation/release/prepared-update-activation.d.ts +0 -3
- package/dist/foundation/release/prepared-update-activation.js +0 -27
- package/dist/foundation/release/process-cleanup.d.ts +0 -14
- package/dist/foundation/release/process-cleanup.js +0 -76
- package/dist/foundation/release/supervisor-identity.d.ts +0 -15
- package/dist/foundation/release/supervisor-identity.js +0 -63
- package/dist/foundation/resident-tabs/boot-identity.d.ts +0 -6
- package/dist/foundation/resident-tabs/boot-identity.js +0 -16
- package/dist/foundation/resident-tabs/bounded-host-command.d.ts +0 -20
- package/dist/foundation/resident-tabs/bounded-host-command.js +0 -62
- package/dist/foundation/resident-tabs/bridge-client.d.ts +0 -73
- package/dist/foundation/resident-tabs/bridge-client.js +0 -327
- package/dist/foundation/resident-tabs/continuity.d.ts +0 -12
- package/dist/foundation/resident-tabs/continuity.js +0 -63
- package/dist/foundation/resident-tabs/doctor.d.ts +0 -28
- package/dist/foundation/resident-tabs/doctor.js +0 -166
- package/dist/foundation/resident-tabs/draft-checkpoint.d.ts +0 -27
- package/dist/foundation/resident-tabs/draft-checkpoint.js +0 -145
- package/dist/foundation/resident-tabs/ensure-terminal-host.d.ts +0 -36
- package/dist/foundation/resident-tabs/ensure-terminal-host.js +0 -151
- package/dist/foundation/resident-tabs/fault-injection.d.ts +0 -8
- package/dist/foundation/resident-tabs/fault-injection.js +0 -26
- package/dist/foundation/resident-tabs/fixture-control.d.ts +0 -7
- package/dist/foundation/resident-tabs/fixture-control.js +0 -35
- package/dist/foundation/resident-tabs/host-entry.js +0 -17
- package/dist/foundation/resident-tabs/index.d.ts +0 -15
- package/dist/foundation/resident-tabs/index.js +0 -10
- package/dist/foundation/resident-tabs/maintenance.d.ts +0 -39
- package/dist/foundation/resident-tabs/maintenance.js +0 -75
- package/dist/foundation/resident-tabs/progress-observation-schema.d.ts +0 -34
- package/dist/foundation/resident-tabs/progress-observation-schema.js +0 -1
- package/dist/foundation/resident-tabs/progress-observation.d.ts +0 -4
- package/dist/foundation/resident-tabs/progress-observation.js +0 -150
- package/dist/foundation/resident-tabs/prompt-journal.d.ts +0 -63
- package/dist/foundation/resident-tabs/prompt-journal.js +0 -213
- package/dist/foundation/resident-tabs/protocol.d.ts +0 -12
- package/dist/foundation/resident-tabs/protocol.js +0 -195
- package/dist/foundation/resident-tabs/recovery.d.ts +0 -26
- package/dist/foundation/resident-tabs/recovery.js +0 -205
- package/dist/foundation/resident-tabs/release-holds.d.ts +0 -28
- package/dist/foundation/resident-tabs/release-holds.js +0 -78
- package/dist/foundation/resident-tabs/routes.d.ts +0 -5
- package/dist/foundation/resident-tabs/routes.js +0 -5
- package/dist/foundation/resident-tabs/routing.d.ts +0 -11
- package/dist/foundation/resident-tabs/routing.js +0 -10
- package/dist/foundation/resident-tabs/runtime-control.d.ts +0 -38
- package/dist/foundation/resident-tabs/runtime-control.js +0 -74
- package/dist/foundation/resident-tabs/session-sync.d.ts +0 -14
- package/dist/foundation/resident-tabs/session-sync.js +0 -37
- package/dist/foundation/resident-tabs/settings.d.ts +0 -16
- package/dist/foundation/resident-tabs/settings.js +0 -60
- package/dist/foundation/resident-tabs/terminal-host-artifact.d.ts +0 -14
- package/dist/foundation/resident-tabs/terminal-host-artifact.js +0 -78
- package/dist/foundation/resident-tabs/zip-archive.d.ts +0 -9
- package/dist/foundation/resident-tabs/zip-archive.js +0 -56
- package/dist/foundation/storage/control-store.d.ts +0 -20
- package/dist/foundation/storage/control-store.js +0 -331
- package/dist/foundation/storage/index.d.ts +0 -1
- package/dist/foundation/storage/index.js +0 -1
- package/dist/foundation/supervision/index.d.ts +0 -3
- package/dist/foundation/supervision/index.js +0 -3
- package/dist/foundation/supervision/main.d.ts +0 -1
- package/dist/foundation/supervision/main.js +0 -86
- package/dist/foundation/supervision/paths.d.ts +0 -1
- package/dist/foundation/supervision/paths.js +0 -1
- package/dist/foundation/supervision/server.d.ts +0 -46
- package/dist/foundation/supervision/server.js +0 -611
- package/dist/integrations/pi/components/components.d.ts +0 -4
- package/dist/integrations/pi/components/components.js +0 -48
- package/dist/integrations/pi/components/conformance.d.ts +0 -18
- package/dist/integrations/pi/components/conformance.js +0 -70
- package/dist/integrations/pi/components/shell-components.d.ts +0 -7
- package/dist/integrations/pi/components/shell-components.js +0 -7
- package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +0 -33
- package/dist/integrations/pi/components/upstream/theme/theme-controller.js +0 -114
- package/dist/integrations/pi/engine/offline-settings-port.d.ts +0 -23
- package/dist/integrations/pi/engine/offline-settings-port.js +0 -54
- package/dist/native/darwin-arm64/manifest.json +0 -23
- package/dist/native/darwin-arm64/process-guardian.node +0 -0
- package/dist/native/darwin-arm64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10500
- package/dist/native/darwin-arm64/terminal-host.manifest.json +0 -46
- package/dist/native/darwin-arm64/terminal-host.node +0 -0
- package/dist/native/darwin-x64/manifest.json +0 -23
- package/dist/native/darwin-x64/process-guardian.node +0 -0
- package/dist/native/darwin-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10737
- package/dist/native/darwin-x64/terminal-host.manifest.json +0 -46
- package/dist/native/darwin-x64/terminal-host.node +0 -0
- package/dist/native/linux-x64/manifest.json +0 -23
- package/dist/native/linux-x64/process-guardian.node +0 -0
- package/dist/native/linux-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -11226
- package/dist/native/linux-x64/terminal-host.manifest.json +0 -46
- package/dist/native/linux-x64/terminal-host.node +0 -0
- package/dist/native/win32-x64/manifest.json +0 -23
- package/dist/native/win32-x64/process-guardian.node +0 -0
- package/dist/native/win32-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10757
- package/dist/native/win32-x64/terminal-host.manifest.json +0 -46
- package/dist/native/win32-x64/terminal-host.node +0 -0
- package/dist/ui/settings/migrations.d.ts +0 -19
- package/dist/ui/settings/migrations.js +0 -209
- package/dist/ui/settings/progress-palette.generated.d.ts +0 -139
- package/dist/ui/settings/progress-palette.generated.js +0 -139
- package/docs/architecture/evidence/resident-tabs/linux-x64.md +0 -37
- package/docs/architecture/evidence/resident-tabs/macos-arm64.md +0 -36
- package/docs/architecture/evidence/resident-tabs/macos-x64.md +0 -35
- package/docs/architecture/evidence/resident-tabs/windows-x64.md +0 -36
- package/docs/architecture/evidence/terminal-host-spike/manual-one-pane-terminal-host.md +0 -70
- package/docs/architecture/evidence/terminal-host-spike/manual-two-by-two-basic-terminal-host.md +0 -32
- package/docs/architecture/evidence/terminal-host-spike/milestone-baseline.json +0 -115
- package/docs/architecture/evidence/terminal-host-spike/owned-ui-foundation-prerequisite.json +0 -48
- package/docs/architecture/evidence/terminal-host-spike/terminal-host-provenance.json +0 -125
- package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-1.json +0 -56
- package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-3.json +0 -174
- package/docs/architecture/evidence/terminal-host-spike/terminal-spike-acceptance-record.json +0 -18
- package/docs/architecture/native-fixture-isolation.md +0 -23
- package/docs/architecture/process-guardian-provenance.md +0 -36
- package/docs/architecture/resident-tabs-requirements.md +0 -18
- package/docs/architecture/resident-tabs.md +0 -668
- package/docs/architecture/terminal-host-proof-gate.md +0 -34
- package/docs/architecture/terminal-host-provenance.md +0 -81
- package/docs/architecture/terminal-host-spike-evidence.md +0 -39
- package/docs/launch-recovery.md +0 -23
- package/docs/manual-launch-instance-acceptance.md +0 -43
- package/docs/manual-resident-tabs-acceptance.md +0 -51
- /package/dist/{cli/tabs-request.js → contracts/owned-ui/shell-components.js} +0 -0
- /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.d.ts +0 -0
- /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.js +0 -0
- /package/dist/{foundation/lifecycle/commands.js → contracts/presentation/terminal.js} +0 -0
- /package/dist/{foundation/resident-tabs/host-entry.d.ts → contracts/presentation/theme.js} +0 -0
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { sameBootIdentity } from "./boot-identity.js";
|
|
2
|
-
import { runTerminalHostMaintenance } from "./maintenance.js";
|
|
3
|
-
/** Mandatory native control semantics; optional methods never establish source authority. */
|
|
4
|
-
export const RUNTIME_CONTROL_API = "resident-control-v1";
|
|
5
|
-
export const RUNTIME_CONTROL_CORE = Object.freeze([
|
|
6
|
-
"attach", "tab.list", "tab.view", "input", "resize", "detach", "controller-boundary",
|
|
7
|
-
]);
|
|
8
|
-
/**
|
|
9
|
-
* Validates an authenticated source's descriptor against separately verified source custody.
|
|
10
|
-
* This is not an activation verdict: the caller must also reconcile every live tab and fence
|
|
11
|
-
* changes to that topology before committing a client selection.
|
|
12
|
-
*/
|
|
13
|
-
export function assessRuntimeControl(value, expected) {
|
|
14
|
-
if (!isRecord(value))
|
|
15
|
-
return blocked("invalid-contract");
|
|
16
|
-
if (value.api !== RUNTIME_CONTROL_API || value.generation !== 1)
|
|
17
|
-
return blocked("unsupported-api");
|
|
18
|
-
if (!identityValid(value) || !identityValid(expected)
|
|
19
|
-
|| !boundedStrings(value.core) || typeof value.retryInput !== "boolean"
|
|
20
|
-
|| !positiveInteger(value.frameLimit, 2 * 1024 * 1024)
|
|
21
|
-
|| !positiveInteger(value.inputLimit, 1024 * 1024) || value.inputLimit > value.frameLimit) {
|
|
22
|
-
return blocked("invalid-contract");
|
|
23
|
-
}
|
|
24
|
-
if (value.releaseId !== expected.releaseId || value.scope !== expected.scope
|
|
25
|
-
|| !sameBootIdentity(value.bootId, expected.bootId) || value.osSessionId !== expected.osSessionId)
|
|
26
|
-
return blocked("source-mismatch");
|
|
27
|
-
if (value.epoch !== expected.epoch)
|
|
28
|
-
return blocked("stale-epoch");
|
|
29
|
-
const core = value.core;
|
|
30
|
-
if (value.retryInput || RUNTIME_CONTROL_CORE.some(method => !core.includes(method)))
|
|
31
|
-
return blocked("missing-core");
|
|
32
|
-
// Security: retain only allowlisted metadata, never arbitrary optional source data.
|
|
33
|
-
return { status: "compatible", contract: Object.freeze({
|
|
34
|
-
api: RUNTIME_CONTROL_API, generation: 1, releaseId: value.releaseId, scope: value.scope,
|
|
35
|
-
epoch: value.epoch, bootId: value.bootId, osSessionId: value.osSessionId,
|
|
36
|
-
core: Object.freeze([...value.core]), frameLimit: value.frameLimit, inputLimit: value.inputLimit,
|
|
37
|
-
retryInput: false,
|
|
38
|
-
}) };
|
|
39
|
-
}
|
|
40
|
-
/** A bounded read-only authenticated exchange; it never starts a host or substitutes a release. */
|
|
41
|
-
export async function readRuntimeControl(options) {
|
|
42
|
-
const { expected, maintain = runTerminalHostMaintenance, ...maintenance } = options;
|
|
43
|
-
try {
|
|
44
|
-
const report = await maintain({ ...maintenance, action: "runtime-control" });
|
|
45
|
-
if (report.schema !== "a1-tabs-maintenance-v1" || report.exitCode !== 0
|
|
46
|
-
|| report.host !== "running" || report.command !== "runtime-control")
|
|
47
|
-
return blocked("unavailable");
|
|
48
|
-
return assessRuntimeControl(report.result, expected);
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
return blocked("unavailable");
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
function blocked(reason) {
|
|
55
|
-
return { status: "blocked", reason };
|
|
56
|
-
}
|
|
57
|
-
function isRecord(value) {
|
|
58
|
-
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
59
|
-
}
|
|
60
|
-
function positiveInteger(value, maximum = Number.MAX_SAFE_INTEGER) {
|
|
61
|
-
return typeof value === "number" && Number.isSafeInteger(value) && value > 0 && value <= maximum;
|
|
62
|
-
}
|
|
63
|
-
function boundedStrings(value) {
|
|
64
|
-
return Array.isArray(value) && value.length <= 64 && new Set(value).size === value.length
|
|
65
|
-
&& value.every(entry => typeof entry === "string" && entry.length > 0 && entry.length <= 64);
|
|
66
|
-
}
|
|
67
|
-
function identityValid(value) {
|
|
68
|
-
const record = value;
|
|
69
|
-
return typeof record.releaseId === "string" && /^[a-f0-9]{64}$/u.test(record.releaseId)
|
|
70
|
-
&& typeof record.scope === "string" && /^[a-f0-9]{20}$/u.test(record.scope)
|
|
71
|
-
&& positiveInteger(record.epoch)
|
|
72
|
-
&& [record.bootId, record.osSessionId].every(entry => typeof entry === "string" && entry.length > 0
|
|
73
|
-
&& entry.length <= 256 && !/[\x00-\x1f\x7f]/u.test(entry));
|
|
74
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { PromptJournal } from "./prompt-journal.js";
|
|
2
|
-
import { ResidentTabFaultInjection } from "./fault-injection.js";
|
|
3
|
-
export declare function synchronizeSessionFile(path: string, faults?: ResidentTabFaultInjection): Promise<void>;
|
|
4
|
-
/** Serializes settled-turn sync and journal ordering off the input path. */
|
|
5
|
-
export declare class SettledTurnSynchronizer {
|
|
6
|
-
#private;
|
|
7
|
-
constructor(journal: PromptJournal, faults?: ResidentTabFaultInjection);
|
|
8
|
-
settle(sessionFile: string, submissionId: string, entryId: string): Promise<void>;
|
|
9
|
-
settleMany(sessionFile: string, entries: readonly {
|
|
10
|
-
readonly id: string;
|
|
11
|
-
readonly entryId: string;
|
|
12
|
-
}[]): Promise<void>;
|
|
13
|
-
flush(): Promise<void>;
|
|
14
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { open } from "node:fs/promises";
|
|
2
|
-
import { ResidentTabFaultInjection } from "./fault-injection.js";
|
|
3
|
-
export async function synchronizeSessionFile(path, faults = new ResidentTabFaultInjection()) {
|
|
4
|
-
const handle = await open(path, "r+");
|
|
5
|
-
try {
|
|
6
|
-
faults.at("session-before-sync");
|
|
7
|
-
await handle.sync();
|
|
8
|
-
faults.at("session-after-sync");
|
|
9
|
-
}
|
|
10
|
-
finally {
|
|
11
|
-
await handle.close();
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
/** Serializes settled-turn sync and journal ordering off the input path. */
|
|
15
|
-
export class SettledTurnSynchronizer {
|
|
16
|
-
#journal;
|
|
17
|
-
#faults;
|
|
18
|
-
#queue = Promise.resolve();
|
|
19
|
-
constructor(journal, faults = new ResidentTabFaultInjection()) {
|
|
20
|
-
this.#journal = journal;
|
|
21
|
-
this.#faults = faults;
|
|
22
|
-
}
|
|
23
|
-
settle(sessionFile, submissionId, entryId) {
|
|
24
|
-
return this.settleMany(sessionFile, [{ id: submissionId, entryId }]);
|
|
25
|
-
}
|
|
26
|
-
settleMany(sessionFile, entries) {
|
|
27
|
-
const operation = this.#queue.then(async () => {
|
|
28
|
-
await synchronizeSessionFile(sessionFile, this.#faults);
|
|
29
|
-
this.#faults.at("journal-after-settle-sync");
|
|
30
|
-
for (const entry of entries)
|
|
31
|
-
await this.#journal.settle(entry.id, entry.entryId);
|
|
32
|
-
});
|
|
33
|
-
this.#queue = operation.catch(() => undefined);
|
|
34
|
-
return operation;
|
|
35
|
-
}
|
|
36
|
-
flush() { return this.#queue; }
|
|
37
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { OWNED_SETTING_DECLARATIONS } from "../../ui/settings/index.js";
|
|
2
|
-
export declare const RESIDENT_TABS_MAX_CONCURRENT_STARTS = 2;
|
|
3
|
-
export declare const RESIDENT_TABS_MAX_CONCURRENT_STARTS_CAP = 8;
|
|
4
|
-
export declare const RESIDENT_TABS_PREWARM_COUNT = 1;
|
|
5
|
-
export declare const RESIDENT_TABS_PREWARM_CAP = 1;
|
|
6
|
-
type ResidentAccentColor = (typeof OWNED_SETTING_DECLARATIONS.accentColor.allowedValues)[number];
|
|
7
|
-
export interface ResidentTabLaunchSettings {
|
|
8
|
-
readonly accentColor: ResidentAccentColor;
|
|
9
|
-
readonly tabsAutoName: boolean;
|
|
10
|
-
readonly maxConcurrentStarts: number;
|
|
11
|
-
readonly prewarmCount: number;
|
|
12
|
-
readonly unresponsiveRestartSeconds: number;
|
|
13
|
-
}
|
|
14
|
-
/** Read only resident-launch values before any UI or extension module is loaded. */
|
|
15
|
-
export declare function readResidentTabLaunchSettings(profileDir: string, namespace?: string, legacyConfigDir?: string, profileId?: string): Promise<ResidentTabLaunchSettings>;
|
|
16
|
-
export {};
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { readFile } from "node:fs/promises";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { OWNED_SETTING_DECLARATIONS, OWNED_UI_SETTINGS_MIGRATIONS, OWNED_UI_SETTINGS_VERSION, normalizeOwnedUiSettingsValues, parseOwnedUiSettingsDocument, readProfileSettingsNamespace, repairProfileSettingsDocument, resolveOwnedUiSettings, settingValue, } from "../../ui/settings/index.js";
|
|
4
|
-
const MAX_SETTINGS_BYTES = 256 * 1024;
|
|
5
|
-
export const RESIDENT_TABS_MAX_CONCURRENT_STARTS = 2;
|
|
6
|
-
export const RESIDENT_TABS_MAX_CONCURRENT_STARTS_CAP = 8;
|
|
7
|
-
export const RESIDENT_TABS_PREWARM_COUNT = 1;
|
|
8
|
-
export const RESIDENT_TABS_PREWARM_CAP = 1;
|
|
9
|
-
const DEFAULTS = Object.freeze({
|
|
10
|
-
accentColor: "blue",
|
|
11
|
-
tabsAutoName: true,
|
|
12
|
-
maxConcurrentStarts: RESIDENT_TABS_MAX_CONCURRENT_STARTS,
|
|
13
|
-
prewarmCount: RESIDENT_TABS_PREWARM_COUNT,
|
|
14
|
-
unresponsiveRestartSeconds: 120,
|
|
15
|
-
});
|
|
16
|
-
/** Read only resident-launch values before any UI or extension module is loaded. */
|
|
17
|
-
export async function readResidentTabLaunchSettings(profileDir, namespace = "a1", legacyConfigDir, profileId = namespace) {
|
|
18
|
-
const sharedFile = resolve(profileDir, "settings.json");
|
|
19
|
-
try {
|
|
20
|
-
repairProfileSettingsDocument(sharedFile);
|
|
21
|
-
}
|
|
22
|
-
catch {
|
|
23
|
-
// Compatibility: recovery is opportunistic; resident launch falls back when bytes stay invalid.
|
|
24
|
-
}
|
|
25
|
-
const shared = readProfileSettingsNamespace(sharedFile, namespace);
|
|
26
|
-
if (shared.status === "invalid")
|
|
27
|
-
return DEFAULTS;
|
|
28
|
-
if (shared.status === "available") {
|
|
29
|
-
const compatibility = normalizeOwnedUiSettingsValues(shared.value);
|
|
30
|
-
return compatibility.values === null
|
|
31
|
-
? DEFAULTS
|
|
32
|
-
: resolveLaunchValues({ version: OWNED_UI_SETTINGS_VERSION, values: compatibility.values }, []);
|
|
33
|
-
}
|
|
34
|
-
const file = resolve(legacyConfigDir ?? profileDir, "settings", `${profileId}.json`);
|
|
35
|
-
try {
|
|
36
|
-
const raw = await readFile(file, "utf8");
|
|
37
|
-
if (Buffer.byteLength(raw, "utf8") > MAX_SETTINGS_BYTES)
|
|
38
|
-
return DEFAULTS;
|
|
39
|
-
const document = parseOwnedUiSettingsDocument(raw);
|
|
40
|
-
return document === null ? DEFAULTS : resolveLaunchValues(document, OWNED_UI_SETTINGS_MIGRATIONS);
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
return DEFAULTS;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
function resolveLaunchValues(document, migrations) {
|
|
47
|
-
const resolution = resolveOwnedUiSettings({
|
|
48
|
-
declarations: [OWNED_SETTING_DECLARATIONS.accentColor, OWNED_SETTING_DECLARATIONS.tabsAutoName],
|
|
49
|
-
migrations,
|
|
50
|
-
document,
|
|
51
|
-
currentVersion: OWNED_UI_SETTINGS_VERSION,
|
|
52
|
-
});
|
|
53
|
-
return {
|
|
54
|
-
accentColor: settingValue(resolution, "accentColor"),
|
|
55
|
-
tabsAutoName: settingValue(resolution, "tabsAutoName") === true,
|
|
56
|
-
maxConcurrentStarts: RESIDENT_TABS_MAX_CONCURRENT_STARTS,
|
|
57
|
-
prewarmCount: RESIDENT_TABS_PREWARM_COUNT,
|
|
58
|
-
unresponsiveRestartSeconds: DEFAULTS.unresponsiveRestartSeconds,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare const TERMINAL_HOST_MANIFEST_FILENAME = "terminal-host.manifest.json";
|
|
2
|
-
export type TerminalHostArtifactErrorCode = "TERMINAL_HOST_ARTIFACT_MISSING" | "TERMINAL_HOST_ARTIFACT_TAMPERED" | "TERMINAL_HOST_ARTIFACT_INCOMPATIBLE" | "TERMINAL_HOST_ARTIFACT_UNSUPPORTED";
|
|
3
|
-
export declare class TerminalHostArtifactError extends Error {
|
|
4
|
-
readonly code: TerminalHostArtifactErrorCode;
|
|
5
|
-
readonly manifestPath: string;
|
|
6
|
-
constructor(code: TerminalHostArtifactErrorCode, manifestPath: string, message: string);
|
|
7
|
-
}
|
|
8
|
-
export interface VerifiedTerminalHostArtifact {
|
|
9
|
-
readonly addon: string;
|
|
10
|
-
readonly entry: string;
|
|
11
|
-
readonly generation: 1;
|
|
12
|
-
}
|
|
13
|
-
/** Verifies every runtime file certified by the terminal-host v2 manifest before Node loads it. */
|
|
14
|
-
export declare function verifyTerminalHostArtifact(addonPath: string, platform?: NodeJS.Platform, architecture?: string): Promise<VerifiedTerminalHostArtifact>;
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { createHash } from "node:crypto";
|
|
2
|
-
import { readFile, stat } from "node:fs/promises";
|
|
3
|
-
import { basename, dirname, resolve } from "node:path";
|
|
4
|
-
import { PRODUCT_IDENTITY } from "../../product-identity.js";
|
|
5
|
-
export const TERMINAL_HOST_MANIFEST_FILENAME = "terminal-host.manifest.json";
|
|
6
|
-
const SCHEMA = "a1-terminal-host-artifact-v2";
|
|
7
|
-
const GENERATION = 1;
|
|
8
|
-
const NODE_API = 9;
|
|
9
|
-
const NOTICES_NAME = "terminal-host-THIRD-PARTY-NOTICES.txt";
|
|
10
|
-
export class TerminalHostArtifactError extends Error {
|
|
11
|
-
code;
|
|
12
|
-
manifestPath;
|
|
13
|
-
constructor(code, manifestPath, message) {
|
|
14
|
-
super(message);
|
|
15
|
-
this.name = "TerminalHostArtifactError";
|
|
16
|
-
this.code = code;
|
|
17
|
-
this.manifestPath = manifestPath;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
/** Verifies every runtime file certified by the terminal-host v2 manifest before Node loads it. */
|
|
21
|
-
export async function verifyTerminalHostArtifact(addonPath, platform = process.platform, architecture = process.arch) {
|
|
22
|
-
const directory = dirname(addonPath);
|
|
23
|
-
const releaseRoot = resolve(directory, "../../..");
|
|
24
|
-
const manifestPath = resolve(directory, TERMINAL_HOST_MANIFEST_FILENAME);
|
|
25
|
-
let manifest;
|
|
26
|
-
try {
|
|
27
|
-
const parsed = JSON.parse(await readFile(manifestPath, "utf8"));
|
|
28
|
-
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
|
|
29
|
-
throw new TypeError("terminal host manifest is not an object");
|
|
30
|
-
manifest = parsed;
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
const code = error instanceof Error && "code" in error && error.code === "ENOENT"
|
|
34
|
-
? "TERMINAL_HOST_ARTIFACT_MISSING"
|
|
35
|
-
: "TERMINAL_HOST_ARTIFACT_INCOMPATIBLE";
|
|
36
|
-
throw new TerminalHostArtifactError(code, manifestPath, "terminal host manifest is missing or invalid");
|
|
37
|
-
}
|
|
38
|
-
if (manifest.capability === "unsupported") {
|
|
39
|
-
throw new TerminalHostArtifactError("TERMINAL_HOST_ARTIFACT_UNSUPPORTED", manifestPath, "terminal host is unsupported on this platform");
|
|
40
|
-
}
|
|
41
|
-
if (manifest.schema !== SCHEMA || manifest.kind !== "node-addon" || manifest.nodeApi !== NODE_API
|
|
42
|
-
|| manifest.protocolVersion !== 1 || manifest.generation !== GENERATION
|
|
43
|
-
|| manifest.platform !== platform || manifest.architecture !== architecture || manifest.capability !== "supported"
|
|
44
|
-
|| !validRecord(manifest.artifact) || !validRecord(manifest.entry) || !validRecord(manifest.notices)
|
|
45
|
-
|| manifest.artifact.filename !== `${PRODUCT_IDENTITY.artifacts.terminalHostAddon}.node`
|
|
46
|
-
|| manifest.entry.filename !== `dist/foundation/resident-tabs/${PRODUCT_IDENTITY.artifacts.terminalHostEntry}.js`
|
|
47
|
-
|| manifest.notices.filename !== NOTICES_NAME
|
|
48
|
-
|| basename(addonPath) !== manifest.artifact.filename) {
|
|
49
|
-
throw new TerminalHostArtifactError("TERMINAL_HOST_ARTIFACT_INCOMPATIBLE", manifestPath, "terminal host manifest is incompatible");
|
|
50
|
-
}
|
|
51
|
-
const entry = resolve(releaseRoot, manifest.entry.filename);
|
|
52
|
-
await verifyFile(addonPath, manifest.artifact, manifestPath);
|
|
53
|
-
await verifyFile(entry, manifest.entry, manifestPath);
|
|
54
|
-
await verifyFile(resolve(directory, manifest.notices.filename), manifest.notices, manifestPath);
|
|
55
|
-
return { addon: addonPath, entry, generation: 1 };
|
|
56
|
-
}
|
|
57
|
-
function validRecord(value) {
|
|
58
|
-
return typeof value === "object" && value !== null
|
|
59
|
-
&& typeof value.filename === "string"
|
|
60
|
-
&& /^[a-f0-9]{64}$/u.test(value.sha256)
|
|
61
|
-
&& Number.isSafeInteger(value.size) && value.size >= 0;
|
|
62
|
-
}
|
|
63
|
-
async function verifyFile(path, record, manifestPath) {
|
|
64
|
-
let bytes;
|
|
65
|
-
let metadata;
|
|
66
|
-
try {
|
|
67
|
-
[bytes, metadata] = await Promise.all([readFile(path), stat(path)]);
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
if (error instanceof Error && "code" in error && error.code === "ENOENT") {
|
|
71
|
-
throw new TerminalHostArtifactError("TERMINAL_HOST_ARTIFACT_MISSING", manifestPath, `certified terminal host file is missing: ${record.filename}`);
|
|
72
|
-
}
|
|
73
|
-
throw error;
|
|
74
|
-
}
|
|
75
|
-
if (!metadata.isFile() || bytes.byteLength !== record.size || createHash("sha256").update(bytes).digest("hex") !== record.sha256) {
|
|
76
|
-
throw new TerminalHostArtifactError("TERMINAL_HOST_ARTIFACT_TAMPERED", manifestPath, `certified terminal host file failed verification: ${record.filename}`);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export interface ZipEntry {
|
|
2
|
-
readonly name: string;
|
|
3
|
-
readonly data: Buffer;
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* Encodes a small deflated zip archive. Names are forward-slash relative paths; there are no
|
|
7
|
-
* directories, extra fields, or encryption, so any standard unzip tool reads it.
|
|
8
|
-
*/
|
|
9
|
-
export declare function encodeZip(entries: readonly ZipEntry[], modified?: Date): Buffer;
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { crc32, deflateRawSync } from "node:zlib";
|
|
2
|
-
/**
|
|
3
|
-
* Encodes a small deflated zip archive. Names are forward-slash relative paths; there are no
|
|
4
|
-
* directories, extra fields, or encryption, so any standard unzip tool reads it.
|
|
5
|
-
*/
|
|
6
|
-
export function encodeZip(entries, modified = new Date()) {
|
|
7
|
-
const time = ((modified.getHours() << 11) | (modified.getMinutes() << 5) | Math.floor(modified.getSeconds() / 2)) & 0xffff;
|
|
8
|
-
const date = (((modified.getFullYear() - 1980) << 9) | ((modified.getMonth() + 1) << 5) | modified.getDate()) & 0xffff;
|
|
9
|
-
const locals = [];
|
|
10
|
-
const centrals = [];
|
|
11
|
-
let offset = 0;
|
|
12
|
-
for (const entry of entries) {
|
|
13
|
-
const segments = entry.name.split("/");
|
|
14
|
-
if (segments.some(segment => !/^[A-Za-z0-9._-]+$/u.test(segment) || segment === "." || segment === "..")) {
|
|
15
|
-
throw new Error(`zip entry name is unsafe: ${entry.name}`);
|
|
16
|
-
}
|
|
17
|
-
const name = Buffer.from(entry.name, "utf8");
|
|
18
|
-
const compressed = deflateRawSync(entry.data);
|
|
19
|
-
const checksum = crc32(entry.data);
|
|
20
|
-
const local = Buffer.alloc(30);
|
|
21
|
-
local.writeUInt32LE(0x04034b50, 0);
|
|
22
|
-
local.writeUInt16LE(20, 4);
|
|
23
|
-
local.writeUInt16LE(0x0800, 6);
|
|
24
|
-
local.writeUInt16LE(8, 8);
|
|
25
|
-
local.writeUInt16LE(time, 10);
|
|
26
|
-
local.writeUInt16LE(date, 12);
|
|
27
|
-
local.writeUInt32LE(checksum, 14);
|
|
28
|
-
local.writeUInt32LE(compressed.length, 18);
|
|
29
|
-
local.writeUInt32LE(entry.data.length, 22);
|
|
30
|
-
local.writeUInt16LE(name.length, 26);
|
|
31
|
-
locals.push(local, name, compressed);
|
|
32
|
-
const central = Buffer.alloc(46);
|
|
33
|
-
central.writeUInt32LE(0x02014b50, 0);
|
|
34
|
-
central.writeUInt16LE(20, 4);
|
|
35
|
-
central.writeUInt16LE(20, 6);
|
|
36
|
-
central.writeUInt16LE(0x0800, 8);
|
|
37
|
-
central.writeUInt16LE(8, 10);
|
|
38
|
-
central.writeUInt16LE(time, 12);
|
|
39
|
-
central.writeUInt16LE(date, 14);
|
|
40
|
-
central.writeUInt32LE(checksum, 16);
|
|
41
|
-
central.writeUInt32LE(compressed.length, 20);
|
|
42
|
-
central.writeUInt32LE(entry.data.length, 24);
|
|
43
|
-
central.writeUInt16LE(name.length, 28);
|
|
44
|
-
central.writeUInt32LE(offset, 42);
|
|
45
|
-
centrals.push(central, name);
|
|
46
|
-
offset += local.length + name.length + compressed.length;
|
|
47
|
-
}
|
|
48
|
-
const directory = Buffer.concat(centrals);
|
|
49
|
-
const end = Buffer.alloc(22);
|
|
50
|
-
end.writeUInt32LE(0x06054b50, 0);
|
|
51
|
-
end.writeUInt16LE(entries.length, 8);
|
|
52
|
-
end.writeUInt16LE(entries.length, 10);
|
|
53
|
-
end.writeUInt32LE(directory.length, 12);
|
|
54
|
-
end.writeUInt32LE(offset, 16);
|
|
55
|
-
return Buffer.concat([...locals, directory, end]);
|
|
56
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { DatabaseSync } from "node:sqlite";
|
|
2
|
-
import type { LaunchInstance, LaunchInstanceId, LaunchInstanceOutcome, NativeProcessIdentity, ProcessContainmentIdentity } from "../lifecycle/index.js";
|
|
3
|
-
/** Owns WAL-backed control persistence and reconciles prior-boot records before current use. */
|
|
4
|
-
export declare class ControlStore {
|
|
5
|
-
#private;
|
|
6
|
-
readonly database: DatabaseSync;
|
|
7
|
-
readonly bootNonce: string | null;
|
|
8
|
-
constructor(path: string, bootNonce?: string | null, options?: {
|
|
9
|
-
readonly reconcileOnOpen?: boolean;
|
|
10
|
-
});
|
|
11
|
-
migrate(): void;
|
|
12
|
-
createLaunchInstance(instance: LaunchInstance): void;
|
|
13
|
-
activateLaunchInstance(instanceId: LaunchInstanceId, ownerClientId: string, rootIdentity: NativeProcessIdentity, containmentIdentity: ProcessContainmentIdentity, activatedAt: string): boolean;
|
|
14
|
-
beginLaunchInstanceStop(instanceId: LaunchInstanceId, ownerClientId: string, stoppingAt: string): boolean;
|
|
15
|
-
completeLaunchInstance(instanceId: LaunchInstanceId, ownerClientId: string, terminalState: "completed" | "interrupted", outcome: LaunchInstanceOutcome, completedAt: string): boolean;
|
|
16
|
-
loadActiveLaunchInstances(bootNonce?: string): LaunchInstance[];
|
|
17
|
-
loadLaunchInstance(instanceId: LaunchInstanceId): LaunchInstance | null;
|
|
18
|
-
reconcilePriorBootLaunchInstances(bootNonce: string, reconciledAt?: string, protectedBoots?: readonly string[]): number;
|
|
19
|
-
close(): void;
|
|
20
|
-
}
|