@timurproko/a1 0.2.6-dev.736 → 0.2.7-dev.1221
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -3
- package/bin/automatic-update.js +7 -0
- package/bin/cli.js +4 -0
- package/bin/guardian.js +5 -0
- package/bin/tab-launch-context.d.ts +27 -0
- package/bin/tab-launch-context.js +94 -0
- package/bin/ui.js +107 -59
- package/dist/app/session-shell/clipboard-diagnostics.js +1 -1
- package/dist/app/session-shell/dialog-coordinator.d.ts +42 -0
- package/dist/app/session-shell/dialog-coordinator.js +133 -0
- package/dist/app/session-shell/dock-chrome.d.ts +34 -0
- package/dist/app/session-shell/dock-chrome.js +109 -0
- package/dist/app/session-shell/exit-notice.d.ts +1 -1
- package/dist/app/session-shell/exit-notice.js +1 -1
- package/dist/app/session-shell/extension-surface.d.ts +30 -0
- package/dist/app/session-shell/extension-surface.js +105 -0
- package/dist/app/session-shell/helper-pool.d.ts +3 -5
- package/dist/app/session-shell/helper-pool.js +3 -5
- package/dist/app/session-shell/input-surface-switch.d.ts +36 -0
- package/dist/app/session-shell/input-surface-switch.js +85 -0
- package/dist/app/session-shell/login-interaction.d.ts +27 -0
- package/dist/app/session-shell/login-interaction.js +91 -0
- package/dist/app/session-shell/prompt-submission.d.ts +48 -0
- package/dist/app/session-shell/prompt-submission.js +276 -0
- package/dist/app/session-shell/resident-tab-coordinator.d.ts +38 -0
- package/dist/app/session-shell/resident-tab-coordinator.js +77 -0
- package/dist/app/session-shell/response-copy-helper.js +21 -6
- package/dist/app/session-shell/response-copy-protocol.d.ts +1 -1
- package/dist/app/session-shell/response-copy-transport.d.ts +16 -6
- package/dist/app/session-shell/response-copy-transport.js +69 -17
- package/dist/app/session-shell/session-concern.d.ts +22 -0
- package/dist/app/session-shell/session-concern.js +29 -0
- package/dist/app/session-shell/session-lifecycle.d.ts +29 -0
- package/dist/app/session-shell/session-lifecycle.js +49 -0
- package/dist/app/session-shell/session-shell-root.d.ts +42 -6
- package/dist/app/session-shell/session-shell-root.js +196 -908
- package/dist/app/session-shell/session-shell.d.ts +3 -8
- package/dist/app/session-shell/session-shell.js +324 -835
- package/dist/app/session-shell/session-viewport-controller.d.ts +2 -2
- package/dist/app/session-shell/session-viewport-controller.js +29 -15
- package/dist/app/session-shell/settings-bindings.d.ts +17 -0
- package/dist/app/session-shell/settings-bindings.js +91 -0
- package/dist/app/session-shell/shell-editor-factory.d.ts +27 -0
- package/dist/app/session-shell/shell-editor-factory.js +102 -0
- package/dist/app/session-shell/shell-host.d.ts +6 -0
- package/dist/app/session-shell/shell-host.js +34 -7
- package/dist/app/session-shell/shell-layout.d.ts +64 -0
- package/dist/app/session-shell/shell-layout.js +18 -0
- package/dist/app/session-shell/suggestion-surface.d.ts +25 -0
- package/dist/app/session-shell/suggestion-surface.js +63 -0
- package/dist/app/session-shell/transcript-document.d.ts +78 -0
- package/dist/app/session-shell/transcript-document.js +365 -0
- package/dist/app/session-shell/viewport-layout.d.ts +31 -0
- package/dist/app/session-shell/viewport-layout.js +160 -0
- package/dist/app/session-shell/workflow-output.d.ts +33 -0
- package/dist/app/session-shell/workflow-output.js +174 -0
- package/dist/app/session-shell/workflow-router.d.ts +25 -0
- package/dist/app/session-shell/workflow-router.js +39 -0
- package/dist/cli/dispatch.d.ts +11 -1
- package/dist/cli/dispatch.js +79 -5
- package/dist/cli/tabs-request.d.ts +7 -0
- package/dist/cli/tabs-request.js +1 -0
- package/dist/cli/tabs.d.ts +14 -0
- package/dist/cli/tabs.js +151 -0
- package/dist/cli/version-stats.js +38 -3
- package/dist/composition/owned-settings.d.ts +12 -0
- package/dist/composition/owned-settings.js +36 -0
- package/dist/composition/owned-ui.d.ts +27 -28
- package/dist/composition/owned-ui.js +205 -153
- package/dist/composition/resident-tab-bridge.d.ts +25 -0
- package/dist/composition/resident-tab-bridge.js +180 -0
- package/dist/composition/session-backend.d.ts +19 -0
- package/dist/composition/session-backend.js +1 -0
- package/dist/composition/session-runtime-registry.d.ts +20 -0
- package/dist/composition/session-runtime-registry.js +85 -0
- package/dist/composition/settings-route-host.d.ts +16 -1
- package/dist/composition/settings-route-host.js +29 -10
- package/dist/composition/settings-search-input.d.ts +9 -0
- package/dist/composition/settings-search-input.js +58 -0
- package/dist/composition/startup-route.d.ts +32 -0
- package/dist/composition/startup-route.js +72 -0
- package/dist/composition/utility-tab.d.ts +28 -0
- package/dist/composition/utility-tab.js +242 -0
- package/dist/contracts/owned-ui/index.d.ts +1 -1
- package/dist/contracts/owned-ui/model.d.ts +3 -0
- package/dist/contracts/owned-ui/session-backend.d.ts +3 -0
- package/dist/contracts/owned-ui/session-workflows.d.ts +11 -4
- package/dist/contracts/presentation/index.d.ts +11 -0
- package/dist/contracts/presentation/index.js +12 -0
- package/dist/features/launch/development-launch.js +6 -0
- package/dist/features/launch/index.d.ts +1 -1
- package/dist/features/launch/intent.d.ts +3 -1
- package/dist/features/launch/intent.js +7 -4
- package/dist/features/launch/profile-paths.js +4 -0
- package/dist/features/owned-ui/plus-menu-dialog.d.ts +22 -0
- package/dist/features/owned-ui/plus-menu-dialog.js +76 -0
- package/dist/features/owned-ui/project-trust-dialog.d.ts +1 -1
- package/dist/features/owned-ui/project-trust-dialog.js +6 -8
- package/dist/features/owned-ui/project-trust-prompt.d.ts +1 -0
- package/dist/features/owned-ui/project-trust-prompt.js +7 -3
- package/dist/features/owned-ui/reference-screen-app.d.ts +2 -0
- package/dist/features/owned-ui/reference-screen-app.js +12 -2
- package/dist/features/owned-ui/resources/release-notes.json +4 -0
- package/dist/features/owned-ui/settings-app.d.ts +12 -2
- package/dist/features/owned-ui/settings-app.js +119 -84
- package/dist/features/owned-ui/settings-search-input.d.ts +29 -0
- package/dist/features/owned-ui/settings-search-input.js +1 -0
- package/dist/features/prompt-history/index.d.ts +1 -1
- package/dist/features/prompt-history/paths.d.ts +2 -1
- package/dist/features/prompt-history/paths.js +10 -2
- package/dist/features/prompt-history/service.d.ts +5 -0
- package/dist/features/prompt-history/service.js +1 -1
- package/dist/features/resident-tab/auto-name.d.ts +11 -0
- package/dist/features/resident-tab/auto-name.js +44 -0
- package/dist/features/resident-tab/index.d.ts +5 -0
- package/dist/features/resident-tab/index.js +7 -0
- package/dist/features/resident-tab/shortcut-bindings-file.d.ts +8 -0
- package/dist/features/resident-tab/shortcut-bindings-file.js +40 -0
- package/dist/features/resident-tab/shortcut-declarations.d.ts +13 -0
- package/dist/features/resident-tab/shortcut-declarations.js +26 -0
- package/dist/features/resident-tab/shortcut-projection.d.ts +29 -0
- package/dist/features/resident-tab/shortcut-projection.js +64 -0
- package/dist/features/resident-tab/status-deriver.d.ts +10 -0
- package/dist/features/resident-tab/status-deriver.js +12 -0
- package/dist/foundation/launch-context/index.d.ts +12 -0
- package/dist/foundation/launch-context/index.js +26 -0
- package/dist/foundation/launch-guardian/exit-watcher.d.ts +14 -0
- package/dist/foundation/launch-guardian/exit-watcher.js +94 -0
- package/dist/foundation/launch-guardian/main.d.ts +7 -1
- package/dist/foundation/launch-guardian/main.js +60 -7
- package/dist/foundation/lifecycle/session-repository-context.js +16 -2
- package/dist/foundation/process-containment/{native-guardian-containment.d.ts → addon-containment.d.ts} +7 -5
- package/dist/foundation/process-containment/addon-containment.js +139 -0
- package/dist/foundation/process-containment/addon-process-inspector.d.ts +11 -0
- package/dist/foundation/process-containment/addon-process-inspector.js +36 -0
- package/dist/foundation/process-containment/addon.d.ts +42 -0
- package/dist/foundation/process-containment/addon.js +57 -0
- package/dist/foundation/process-containment/artifact.d.ts +1 -1
- package/dist/foundation/process-containment/artifact.js +6 -5
- package/dist/foundation/process-containment/contracts.d.ts +2 -0
- package/dist/foundation/process-containment/index.d.ts +4 -4
- package/dist/foundation/process-containment/index.js +3 -3
- package/dist/foundation/process-containment/native-process-inspector.d.ts +2 -1
- package/dist/foundation/process-containment/native-process-inspector.js +10 -10
- package/dist/foundation/release/automatic-update.d.ts +37 -0
- package/dist/foundation/release/automatic-update.js +265 -0
- package/dist/foundation/release/bootstrap.d.ts +7 -9
- package/dist/foundation/release/bootstrap.js +107 -24
- package/dist/foundation/release/cohort-state.d.ts +1 -1
- package/dist/foundation/release/cohort-state.js +6 -3
- package/dist/foundation/release/dependency-certification.js +54 -19
- package/dist/foundation/release/early-accent.d.ts +12 -0
- package/dist/foundation/release/early-accent.js +59 -0
- package/dist/foundation/release/index.d.ts +2 -2
- package/dist/foundation/release/index.js +2 -2
- package/dist/foundation/release/latest-release.d.ts +24 -2
- package/dist/foundation/release/latest-release.js +51 -1
- package/dist/foundation/release/progress-palette.generated.d.ts +137 -3
- package/dist/foundation/release/progress-palette.generated.js +137 -3
- package/dist/foundation/release/release-gc.d.ts +3 -0
- package/dist/foundation/release/release-gc.js +59 -8
- package/dist/foundation/release/release-store.d.ts +12 -0
- package/dist/foundation/release/release-store.js +124 -2
- package/dist/foundation/release/update-execution-lease.d.ts +48 -0
- package/dist/foundation/release/update-execution-lease.js +161 -0
- package/dist/foundation/release/update.d.ts +12 -7
- package/dist/foundation/release/update.js +281 -196
- package/dist/foundation/resident-tabs/bounded-host-command.d.ts +18 -0
- package/dist/foundation/resident-tabs/bounded-host-command.js +39 -0
- package/dist/foundation/resident-tabs/bridge-client.d.ts +70 -0
- package/dist/foundation/resident-tabs/bridge-client.js +321 -0
- package/dist/foundation/resident-tabs/doctor.d.ts +28 -0
- package/dist/foundation/resident-tabs/doctor.js +166 -0
- package/dist/foundation/resident-tabs/draft-checkpoint.d.ts +27 -0
- package/dist/foundation/resident-tabs/draft-checkpoint.js +145 -0
- package/dist/foundation/resident-tabs/ensure-terminal-host.d.ts +36 -0
- package/dist/foundation/resident-tabs/ensure-terminal-host.js +151 -0
- package/dist/foundation/resident-tabs/fault-injection.d.ts +8 -0
- package/dist/foundation/resident-tabs/fault-injection.js +26 -0
- package/dist/foundation/resident-tabs/fixture-control.d.ts +7 -0
- package/dist/foundation/resident-tabs/fixture-control.js +35 -0
- package/dist/foundation/resident-tabs/host-entry.d.ts +1 -0
- package/dist/foundation/resident-tabs/host-entry.js +17 -0
- package/dist/foundation/resident-tabs/index.d.ts +12 -0
- package/dist/foundation/resident-tabs/index.js +6 -0
- package/dist/foundation/resident-tabs/maintenance.d.ts +39 -0
- package/dist/foundation/resident-tabs/maintenance.js +75 -0
- package/dist/foundation/resident-tabs/progress-observation-schema.d.ts +34 -0
- package/dist/foundation/resident-tabs/progress-observation-schema.js +1 -0
- package/dist/foundation/resident-tabs/progress-observation.d.ts +4 -0
- package/dist/foundation/resident-tabs/progress-observation.js +150 -0
- package/dist/foundation/resident-tabs/prompt-journal.d.ts +63 -0
- package/dist/foundation/resident-tabs/prompt-journal.js +213 -0
- package/dist/foundation/resident-tabs/protocol.d.ts +12 -0
- package/dist/foundation/resident-tabs/protocol.js +195 -0
- package/dist/foundation/resident-tabs/recovery.d.ts +26 -0
- package/dist/foundation/resident-tabs/recovery.js +205 -0
- package/dist/foundation/resident-tabs/release-holds.d.ts +28 -0
- package/dist/foundation/resident-tabs/release-holds.js +75 -0
- package/dist/foundation/resident-tabs/routes.d.ts +5 -0
- package/dist/foundation/resident-tabs/routes.js +5 -0
- package/dist/foundation/resident-tabs/routing.d.ts +11 -0
- package/dist/foundation/resident-tabs/routing.js +10 -0
- package/dist/foundation/resident-tabs/session-sync.d.ts +14 -0
- package/dist/foundation/resident-tabs/session-sync.js +37 -0
- package/dist/foundation/resident-tabs/settings.d.ts +12 -0
- package/dist/foundation/resident-tabs/settings.js +58 -0
- package/dist/foundation/resident-tabs/terminal-host-artifact.d.ts +14 -0
- package/dist/foundation/resident-tabs/terminal-host-artifact.js +78 -0
- package/dist/foundation/resident-tabs/zip-archive.d.ts +9 -0
- package/dist/foundation/resident-tabs/zip-archive.js +56 -0
- package/dist/foundation/session-writer-lock/index.d.ts +30 -0
- package/dist/foundation/session-writer-lock/index.js +203 -0
- package/dist/foundation/startup/startup-descriptor.js +2 -2
- package/dist/foundation/terminal-cleanup/index.d.ts +1 -1
- package/dist/foundation/terminal-cleanup/index.js +1 -1
- package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +6 -0
- package/dist/foundation/terminal-cleanup/terminal-reset.js +6 -0
- package/dist/integrations/pi/components/editor-interaction.d.ts +2 -0
- package/dist/integrations/pi/components/modal-frame.d.ts +17 -1
- package/dist/integrations/pi/components/modal-frame.js +48 -9
- package/dist/integrations/pi/components/models-dialog.js +4 -52
- package/dist/integrations/pi/components/owned-editor-ux.d.ts +6 -1
- package/dist/integrations/pi/components/owned-editor-ux.js +90 -6
- package/dist/integrations/pi/components/resources/builtin-themes.d.ts +4 -4
- package/dist/integrations/pi/components/resources/builtin-themes.js +4 -4
- package/dist/integrations/pi/components/share-operation-dialog.d.ts +2 -0
- package/dist/integrations/pi/components/share-operation-dialog.js +2 -1
- package/dist/integrations/pi/components/shell-editor-autocomplete.js +58 -36
- package/dist/integrations/pi/components/shell-extension-ui.js +79 -60
- package/dist/integrations/pi/components/shell-footer-status.d.ts +1 -1
- package/dist/integrations/pi/components/shell-footer-status.js +21 -5
- package/dist/integrations/pi/components/shell-hotkey-sections.js +1 -1
- package/dist/integrations/pi/components/shell-presenters-info.d.ts +5 -2
- package/dist/integrations/pi/components/shell-presenters-info.js +18 -4
- package/dist/integrations/pi/components/shell-presenters-transcript.js +4 -1
- package/dist/integrations/pi/components/shell-selectors-dialogs.js +5 -1
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +12 -1
- package/dist/integrations/pi/components/skills-dialog.js +2 -2
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +17 -4
- package/dist/integrations/pi/components/upstream/assets/earendil-image.json +2 -2
- package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-editor.js +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-input.js +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/components/mermaid.js +1 -1
- package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +8 -6
- package/dist/integrations/pi/components/upstream/components/owned-editor.js +16 -9
- package/dist/integrations/pi/components/upstream/components/pi-logo.js +1 -1
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +4 -4
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +2 -2
- package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +2 -1
- package/dist/integrations/pi/components/upstream/components/session-footer.js +31 -25
- package/dist/integrations/pi/components/upstream/components/session-selector-search.js +1 -1
- package/dist/integrations/pi/components/upstream/components/session-selector.js +8 -7
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +1 -1
- package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +2 -2
- package/dist/integrations/pi/components/upstream/components/status-indicator.js +3 -3
- package/dist/integrations/pi/components/upstream/components/themed-text.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/themed-text.js +1 -1
- package/dist/integrations/pi/components/upstream/components/thinking-selector.d.ts +8 -7
- package/dist/integrations/pi/components/upstream/components/thinking-selector.js +10 -9
- package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +2 -6
- package/dist/integrations/pi/components/upstream/components/tool-execution.js +103 -101
- package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +9 -9
- package/dist/integrations/pi/components/upstream/components/tree-selector.js +13 -21
- package/dist/integrations/pi/components/upstream/components/trust-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/external-editor.js +1 -1
- package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +2 -2
- package/dist/integrations/pi/components/upstream/history/editor-core.js +7 -5
- package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/history/kill-ring.js +1 -1
- package/dist/integrations/pi/components/upstream/history/printable-key.js +1 -1
- package/dist/integrations/pi/components/upstream/history/text-helpers.js +1 -1
- package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/history/undo-stack.js +1 -1
- package/dist/integrations/pi/components/upstream/history/word-navigation.js +1 -1
- package/dist/integrations/pi/components/upstream/model-search.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/program-status-reporter.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/theme/theme.d.ts +5 -0
- package/dist/integrations/pi/components/upstream/theme/theme.js +29 -2
- package/dist/integrations/pi/engine/adapter.d.ts +5 -77
- package/dist/integrations/pi/engine/adapter.js +95 -394
- package/dist/integrations/pi/engine/command-dispatch.d.ts +13 -0
- package/dist/integrations/pi/engine/command-dispatch.js +57 -0
- package/dist/integrations/pi/engine/host.js +2 -2
- package/dist/integrations/pi/engine/offline-settings-port.d.ts +23 -0
- package/dist/integrations/pi/engine/offline-settings-port.js +53 -0
- package/dist/integrations/pi/engine/pi-settings-metadata.json +14 -2
- package/dist/integrations/pi/engine/ports.d.ts +56 -0
- package/dist/integrations/pi/engine/ports.js +93 -0
- package/dist/integrations/pi/engine/prompt-suggestions.d.ts +1 -0
- package/dist/integrations/pi/engine/prompt-suggestions.js +40 -0
- package/dist/integrations/pi/engine/resources/changelog.json +4 -4
- package/dist/integrations/pi/engine/runtime-integration.js +102 -29
- package/dist/integrations/pi/engine/session-runtime.d.ts +0 -6
- package/dist/integrations/pi/engine/session-runtime.js +13 -5
- package/dist/integrations/pi/engine/session-selection.d.ts +3 -0
- package/dist/integrations/pi/engine/session-selection.js +45 -9
- package/dist/integrations/pi/engine/settings-bridge.d.ts +5 -0
- package/dist/integrations/pi/engine/settings-bridge.js +15 -0
- package/dist/integrations/pi/engine/settings-port.js +11 -15
- package/dist/integrations/pi/engine/view-state.d.ts +42 -0
- package/dist/integrations/pi/engine/view-state.js +126 -0
- package/dist/integrations/pi/engine/workflow-contexts.js +10 -1
- package/dist/integrations/pi/engine/workflow-runner.js +73 -4
- package/dist/integrations/pi/engine/workflow-support.d.ts +12 -0
- package/dist/integrations/pi/engine/workflow-support.js +36 -0
- package/dist/integrations/pi/engine/workflows.d.ts +3 -1
- package/dist/integrations/pi/engine/workflows.js +1 -0
- package/dist/integrations/pi/startup-public.js +257 -310
- package/dist/integrations/pi/startup-public.manifest.json +564 -440
- package/dist/integrations/pi/tui-runtime/adapter.d.ts +6 -0
- package/dist/integrations/pi/tui-runtime/adapter.js +32 -1
- package/dist/integrations/pi/tui-runtime/contracts.d.ts +5 -0
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +12 -1
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +31 -2
- package/dist/native/darwin-arm64/manifest.json +10 -7
- package/dist/native/darwin-arm64/process-guardian.node +0 -0
- package/dist/native/darwin-arm64/terminal-host-THIRD-PARTY-NOTICES.txt +10500 -0
- package/dist/native/darwin-arm64/terminal-host.manifest.json +46 -0
- package/dist/native/darwin-arm64/terminal-host.node +0 -0
- package/dist/native/darwin-x64/manifest.json +23 -0
- package/dist/native/darwin-x64/process-guardian.node +0 -0
- package/dist/native/darwin-x64/terminal-host-THIRD-PARTY-NOTICES.txt +10737 -0
- package/dist/native/darwin-x64/terminal-host.manifest.json +46 -0
- package/dist/native/darwin-x64/terminal-host.node +0 -0
- package/dist/native/linux-x64/manifest.json +10 -7
- package/dist/native/linux-x64/process-guardian.node +0 -0
- package/dist/native/linux-x64/terminal-host-THIRD-PARTY-NOTICES.txt +11226 -0
- package/dist/native/linux-x64/terminal-host.manifest.json +46 -0
- package/dist/native/linux-x64/terminal-host.node +0 -0
- package/dist/native/win32-x64/manifest.json +10 -7
- package/dist/native/win32-x64/process-guardian.node +0 -0
- package/dist/native/win32-x64/terminal-host-THIRD-PARTY-NOTICES.txt +10757 -0
- package/dist/native/win32-x64/terminal-host.manifest.json +46 -0
- package/dist/native/win32-x64/terminal-host.node +0 -0
- package/dist/product-identity.d.ts +3 -3
- package/dist/product-identity.js +4 -4
- package/dist/product-identity.json +16 -2
- package/dist/runtime-payload-inventory.json +6330 -6677
- package/dist/ui/apps/host.d.ts +2 -0
- package/dist/ui/apps/host.js +7 -1
- package/dist/ui/components/dialog-panel.js +35 -30
- package/dist/ui/components/index.d.ts +2 -2
- package/dist/ui/components/index.js +1 -1
- package/dist/ui/components/line-input.d.ts +4 -1
- package/dist/ui/components/line-input.js +3 -1
- package/dist/ui/components/prompt-input.d.ts +11 -8
- package/dist/ui/components/prompt-input.js +15 -13
- package/dist/ui/components/selection-copy.d.ts +2 -0
- package/dist/ui/components/selection-copy.js +13 -0
- package/dist/ui/components/spans.js +2 -2
- package/dist/ui/components/submitted-prompt.d.ts +9 -6
- package/dist/ui/components/submitted-prompt.js +20 -12
- package/dist/ui/components/surface.js +4 -2
- package/dist/ui/components/text.d.ts +3 -6
- package/dist/ui/components/text.js +6 -8
- package/dist/ui/components/transcript-viewport.d.ts +9 -2
- package/dist/ui/components/transcript-viewport.js +176 -55
- package/dist/ui/components/value-menu.d.ts +6 -3
- package/dist/ui/components/value-menu.js +6 -5
- package/dist/ui/settings/declarations.d.ts +90 -16
- package/dist/ui/settings/declarations.js +67 -14
- package/dist/ui/settings/early-accent.d.ts +81 -0
- package/dist/ui/settings/early-accent.js +50 -0
- package/dist/ui/settings/index.d.ts +4 -2
- package/dist/ui/settings/index.js +2 -1
- package/dist/ui/settings/manager.d.ts +16 -3
- package/dist/ui/settings/manager.js +122 -33
- package/dist/ui/settings/migrations.d.ts +6 -0
- package/dist/ui/settings/migrations.js +73 -0
- package/dist/ui/settings/profile-document.d.ts +26 -0
- package/dist/ui/settings/profile-document.js +164 -0
- package/dist/ui/settings/progress-palette.generated.d.ts +139 -0
- package/dist/ui/settings/progress-palette.generated.js +139 -0
- package/dist/ui/settings/sections.d.ts +4 -0
- package/dist/ui/settings/sections.js +9 -3
- package/docs/architecture/boundaries.md +25 -10
- package/docs/architecture/evidence/resident-tabs/linux-x64.md +37 -0
- package/docs/architecture/evidence/resident-tabs/macos-arm64.md +36 -0
- package/docs/architecture/evidence/resident-tabs/macos-x64.md +35 -0
- package/docs/architecture/evidence/resident-tabs/windows-x64.md +36 -0
- package/docs/architecture/evidence/terminal-host-spike/manual-one-pane-terminal-host.md +70 -0
- package/docs/architecture/evidence/terminal-host-spike/manual-two-by-two-basic-terminal-host.md +32 -0
- package/docs/architecture/evidence/terminal-host-spike/milestone-baseline.json +115 -0
- package/docs/architecture/evidence/terminal-host-spike/owned-ui-foundation-prerequisite.json +48 -0
- package/docs/architecture/evidence/terminal-host-spike/terminal-host-provenance.json +125 -0
- package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-1.json +56 -0
- package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-3.json +174 -0
- package/docs/architecture/evidence/terminal-host-spike/terminal-spike-acceptance-record.json +18 -0
- package/docs/architecture/internal-naming.md +3 -1
- package/docs/architecture/process-guardian-provenance.md +18 -10
- package/docs/architecture/project-structure.md +8 -0
- package/docs/architecture/resident-tabs-requirements.md +18 -0
- package/docs/architecture/resident-tabs.md +648 -0
- package/docs/architecture/response-copy-delivery.md +1 -1
- package/docs/architecture/terminal-host-proof-gate.md +3 -1
- package/docs/architecture/terminal-host-provenance.md +16 -4
- package/docs/architecture/terminal-host-spike-evidence.md +1 -1
- package/docs/architecture/tool-image-presentation.md +2 -1
- package/docs/architecture/toolchain.md +11 -9
- package/docs/ci-release-runbook.md +14 -7
- package/docs/features/launch-profiles.md +11 -8
- package/docs/features/prompt-history.md +41 -20
- package/docs/manual-resident-tabs-acceptance.md +51 -0
- package/docs/openspec-archive-automation.md +49 -22
- package/docs/releases/0.2.6.md +44 -0
- package/docs/validation.md +49 -9
- package/package.json +19 -6
- package/dist/foundation/process-containment/darwin-process-inspector.d.ts +0 -5
- package/dist/foundation/process-containment/darwin-process-inspector.js +0 -7
- package/dist/foundation/process-containment/native-guardian-containment.js +0 -152
- package/dist/foundation/process-containment/windows-process-inspector.d.ts +0 -19
- package/dist/foundation/process-containment/windows-process-inspector.js +0 -56
- package/dist/native/darwin-arm64/process-guardian +0 -0
- package/dist/native/linux-x64/process-guardian +0 -0
- package/dist/native/win32-x64/process-guardian.exe +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "a1-terminal-host-task-5-1-v1",
|
|
3
|
+
"recordedAt": "2026-08-20T09:25:48.307Z",
|
|
4
|
+
"change": "evolve-bare-a1-into-multi-agent-workspace",
|
|
5
|
+
"task": "5.1",
|
|
6
|
+
"hostMode": "console-inside-existing-terminal",
|
|
7
|
+
"desktopWindowCreated": false,
|
|
8
|
+
"fullscreenRun": "not-run-user-controlled-only",
|
|
9
|
+
"toolchain": {
|
|
10
|
+
"rust": "1.97.1",
|
|
11
|
+
"cargo": "1.97.1",
|
|
12
|
+
"zig": "0.15.2",
|
|
13
|
+
"platform": "win32",
|
|
14
|
+
"architecture": "x64"
|
|
15
|
+
},
|
|
16
|
+
"artifact": {
|
|
17
|
+
"path": "native/terminal-host/target/debug/a1-terminal-host.exe",
|
|
18
|
+
"profile": "debug",
|
|
19
|
+
"sha256": "d1437d46d469a8823565a0428b57a1888bb327c2ce26d3cb51c0fb6fc88e4165",
|
|
20
|
+
"sizeBytes": 2394624
|
|
21
|
+
},
|
|
22
|
+
"source": {
|
|
23
|
+
"cargoTomlSha256": "8c6510f8d758189f24f91c1f044e93902a376e3c1a5bb71ca747603f03f0cc72",
|
|
24
|
+
"cargoLockSha256": "ec023df443170affda1ce69ddaa9489785fed1347d97bcb44a793607e61a20a2",
|
|
25
|
+
"buildScriptSha256": "54befce9dd9b1fbfadb388d8c4d1c97e1d6473660a075b7acc6baaddf54301c7",
|
|
26
|
+
"mainSha256": "6180f21f4dcfc0e1a8a4808a4312957eaff7bc7342660b3d449e8ea7ee164eed",
|
|
27
|
+
"ghosttyBindingSha256": "31747a4c5a4214059cea1d2ccab0b6245e74e05d5da3188271be4b331acb9231",
|
|
28
|
+
"libghosttyVtCommit": "c5a21edfcbc2d5b46540ad91b7980aca31f5f1f3",
|
|
29
|
+
"libghosttyVtLicenseSha256": "3129de97bc7769d683e52ce02cb4eaecd2b0aab144b09d6325a1b135bdc87cc0",
|
|
30
|
+
"portablePtyVersion": "0.9.0",
|
|
31
|
+
"crosstermVersion": "0.29.0"
|
|
32
|
+
},
|
|
33
|
+
"commands": [
|
|
34
|
+
{
|
|
35
|
+
"command": "cargo clean && npm run test:terminal-host",
|
|
36
|
+
"result": "passed"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"command": "a1-terminal-host.exe --version",
|
|
40
|
+
"result": "passed"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"command": "a1-terminal-host.exe --probe",
|
|
44
|
+
"result": "passed",
|
|
45
|
+
"detail": "created a retained terminal model, composed a frame, started cmd.exe through a PTY, waited for exit, and cleaned up without entering alternate-screen mode"
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"limitations": [
|
|
49
|
+
"No fullscreen interactive run was launched by the agent.",
|
|
50
|
+
"No user input or physical rendering acceptance is claimed.",
|
|
51
|
+
"One-pane manual terminal validation remains user-controlled.",
|
|
52
|
+
"Isolated-worker physical automation remains deferred."
|
|
53
|
+
],
|
|
54
|
+
"passed": true,
|
|
55
|
+
"sourceCommit": "b26383ed6605b222d6b853eb232c6b94e0fdb7ff"
|
|
56
|
+
}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "a1-terminal-host-task-5-3-v1",
|
|
3
|
+
"recordedAt": "2026-08-20T09:25:48.307Z",
|
|
4
|
+
"change": "evolve-bare-a1-into-multi-agent-workspace",
|
|
5
|
+
"task": "5.3",
|
|
6
|
+
"sourceCommit": "b26383ed6605b222d6b853eb232c6b94e0fdb7ff",
|
|
7
|
+
"artifact": {
|
|
8
|
+
"path": "native/terminal-host/target/debug/a1-terminal-host.exe",
|
|
9
|
+
"profile": "debug",
|
|
10
|
+
"sha256": "d1437d46d469a8823565a0428b57a1888bb327c2ce26d3cb51c0fb6fc88e4165",
|
|
11
|
+
"sizeBytes": 2394624
|
|
12
|
+
},
|
|
13
|
+
"toolchain": {
|
|
14
|
+
"rust": "1.97.1",
|
|
15
|
+
"cargo": "1.97.1",
|
|
16
|
+
"zig": "0.15.2",
|
|
17
|
+
"platform": "win32",
|
|
18
|
+
"architecture": "x64"
|
|
19
|
+
},
|
|
20
|
+
"authority": {
|
|
21
|
+
"owner": "native-terminal-host",
|
|
22
|
+
"nodeRelay": false,
|
|
23
|
+
"rawPayloadExported": false,
|
|
24
|
+
"outerPresentationBufferedInNativeHost": true,
|
|
25
|
+
"controlPlanePayloads": "typed identity, topology, capability, lifecycle, recovery, and bounded diagnostics only"
|
|
26
|
+
},
|
|
27
|
+
"identityObservation": {
|
|
28
|
+
"schema": "a1-terminal-host-hot-path-v1",
|
|
29
|
+
"paneCount": 4,
|
|
30
|
+
"streamIdentities": [
|
|
31
|
+
1,
|
|
32
|
+
8,
|
|
33
|
+
15,
|
|
34
|
+
22
|
|
35
|
+
],
|
|
36
|
+
"inputIdentities": [
|
|
37
|
+
2,
|
|
38
|
+
9,
|
|
39
|
+
16,
|
|
40
|
+
23
|
|
41
|
+
],
|
|
42
|
+
"terminalModelIdentities": [
|
|
43
|
+
3,
|
|
44
|
+
10,
|
|
45
|
+
17,
|
|
46
|
+
24
|
|
47
|
+
],
|
|
48
|
+
"renderDamageIdentities": [
|
|
49
|
+
4,
|
|
50
|
+
11,
|
|
51
|
+
18,
|
|
52
|
+
25
|
|
53
|
+
],
|
|
54
|
+
"keyEncoderIdentities": [
|
|
55
|
+
5,
|
|
56
|
+
12,
|
|
57
|
+
19,
|
|
58
|
+
26
|
|
59
|
+
],
|
|
60
|
+
"mouseEncoderIdentities": [
|
|
61
|
+
6,
|
|
62
|
+
13,
|
|
63
|
+
20,
|
|
64
|
+
27
|
|
65
|
+
],
|
|
66
|
+
"selectionIdentities": [
|
|
67
|
+
7,
|
|
68
|
+
14,
|
|
69
|
+
21,
|
|
70
|
+
28
|
|
71
|
+
],
|
|
72
|
+
"allIdentitySetsUnique": true,
|
|
73
|
+
"presentationWrites": 2,
|
|
74
|
+
"presentationBytes": 4618,
|
|
75
|
+
"panes": [
|
|
76
|
+
{
|
|
77
|
+
"paneId": "pane-1",
|
|
78
|
+
"sessionId": "session-1",
|
|
79
|
+
"ptyOutputChunks": 8,
|
|
80
|
+
"ptyOutputBytes": 272,
|
|
81
|
+
"terminalModelWrites": 8,
|
|
82
|
+
"terminalModelBytes": 272,
|
|
83
|
+
"inputWrites": 2,
|
|
84
|
+
"inputBytes": 23,
|
|
85
|
+
"renderPasses": 2,
|
|
86
|
+
"renderedBytes": 642
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"paneId": "pane-2",
|
|
90
|
+
"sessionId": "session-2",
|
|
91
|
+
"ptyOutputChunks": 8,
|
|
92
|
+
"ptyOutputBytes": 272,
|
|
93
|
+
"terminalModelWrites": 8,
|
|
94
|
+
"terminalModelBytes": 272,
|
|
95
|
+
"inputWrites": 2,
|
|
96
|
+
"inputBytes": 23,
|
|
97
|
+
"renderPasses": 2,
|
|
98
|
+
"renderedBytes": 668
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"paneId": "pane-3",
|
|
102
|
+
"sessionId": "session-3",
|
|
103
|
+
"ptyOutputChunks": 9,
|
|
104
|
+
"ptyOutputBytes": 272,
|
|
105
|
+
"terminalModelWrites": 9,
|
|
106
|
+
"terminalModelBytes": 272,
|
|
107
|
+
"inputWrites": 2,
|
|
108
|
+
"inputBytes": 23,
|
|
109
|
+
"renderPasses": 2,
|
|
110
|
+
"renderedBytes": 698
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"paneId": "pane-4",
|
|
114
|
+
"sessionId": "session-4",
|
|
115
|
+
"ptyOutputChunks": 8,
|
|
116
|
+
"ptyOutputBytes": 272,
|
|
117
|
+
"terminalModelWrites": 8,
|
|
118
|
+
"terminalModelBytes": 272,
|
|
119
|
+
"inputWrites": 2,
|
|
120
|
+
"inputBytes": 23,
|
|
121
|
+
"renderPasses": 2,
|
|
122
|
+
"renderedBytes": 726
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
"nativePrimitiveProbe": {
|
|
127
|
+
"keyEncoding": true,
|
|
128
|
+
"textImeEncoding": true,
|
|
129
|
+
"mouseEncoding": true,
|
|
130
|
+
"paneRelativeMouse": true,
|
|
131
|
+
"selection": true,
|
|
132
|
+
"clipboardOsc52Encoding": true,
|
|
133
|
+
"keyAndMouseModesRefreshedFromRetainedTerminal": true,
|
|
134
|
+
"nodeRelay": false
|
|
135
|
+
},
|
|
136
|
+
"staticBoundaryChecks": {
|
|
137
|
+
"nodeProtocolHotPathPayloadsAbsent": true,
|
|
138
|
+
"nativeImplementationDependenciesAbsentFromNodeManifest": true,
|
|
139
|
+
"probeRunnerUsesInheritedStdio": true,
|
|
140
|
+
"explicitTransparentModesRemainIndependent": true
|
|
141
|
+
},
|
|
142
|
+
"commands": [
|
|
143
|
+
{
|
|
144
|
+
"command": "npm run test:terminal-host",
|
|
145
|
+
"result": "passed"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"command": "npm run check:architecture",
|
|
149
|
+
"result": "passed"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"command": "npx vitest run test/repository-governance/native-host-boundary.test.ts test/repository-governance/terminal-architecture-policy.test.ts",
|
|
153
|
+
"result": "38 tests passed"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"command": "npm test",
|
|
157
|
+
"result": "285 tests passed"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"command": "npm run typecheck",
|
|
161
|
+
"result": "passed"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"command": "openspec validate evolve-bare-a1-into-multi-agent-workspace --strict",
|
|
165
|
+
"result": "passed"
|
|
166
|
+
}
|
|
167
|
+
],
|
|
168
|
+
"limitations": [
|
|
169
|
+
"No physical terminal automation was run on the active workstation.",
|
|
170
|
+
"The text/IME gate validates the native composed-Unicode input path; operating-system IME behavior remains a task 5.4/5.5 physical workload where supported.",
|
|
171
|
+
"High-rate workloads, resource and latency measurements, abnormal exits, and exact-artifact physical acceptance remain tasks 5.4 and 5.5."
|
|
172
|
+
],
|
|
173
|
+
"passed": true
|
|
174
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "a1-terminal-spike-acceptance-record-v1",
|
|
3
|
+
"recordedAt": "2026-08-14T07:12:07.445Z",
|
|
4
|
+
"change": "evolve-bare-a1-into-multi-agent-workspace",
|
|
5
|
+
"hostMode": "console-inside-existing-terminal",
|
|
6
|
+
"artifact": null,
|
|
7
|
+
"technicalVerdict": "pending",
|
|
8
|
+
"physicalVerdict": "pending",
|
|
9
|
+
"physicalMethod": "not-run",
|
|
10
|
+
"decision": "pending",
|
|
11
|
+
"integrationAllowed": false,
|
|
12
|
+
"milestoneMergeAllowedForComposedTerminal": false,
|
|
13
|
+
"waivers": [],
|
|
14
|
+
"waiverPolicy": "no-waivers-after-evidence",
|
|
15
|
+
"structuredWorkIndependent": true,
|
|
16
|
+
"transparentModesIndependent": true,
|
|
17
|
+
"notes": "Acceptance is pending the isolated in-terminal 2x2 spike artifact and a manual or isolated-worker physical verdict."
|
|
18
|
+
}
|
|
@@ -31,7 +31,7 @@ The exact externally branded key/member authority is `config/internal-naming-pol
|
|
|
31
31
|
| `A1_PROCESS_GUARDIAN_PATH` | Explicit executable override in `src/foundation/process-containment/native-guardian-containment.ts`, also configured by CI; exact existing exposure-review entry. |
|
|
32
32
|
| `A1_PROBE_TRACE` | Opt-in diagnostics read by native terminal-host code; exact existing exposure-review entry. |
|
|
33
33
|
| `A1_BUILD_VERBOSE`, `A1_DEV_SHELL` | Developer invocation controls in the build helper and development launcher; exact existing exposure-review entries. |
|
|
34
|
-
| `A1_PANE_ID`, `A1_TERMINAL_SESSION_ID` |
|
|
34
|
+
| `A1_PANE_ID`, `A1_TERMINAL_SESSION_ID` | Reserved compatibility identities retained in the product identity manifest; the resident host does not currently emit them. |
|
|
35
35
|
|
|
36
36
|
Pending review preserves a possible external interface, not an obsolete private alias. Once a setting is established as private, it cannot keep its branded spelling through that category.
|
|
37
37
|
|
|
@@ -47,6 +47,8 @@ Pending review preserves a possible external interface, not an obsolete private
|
|
|
47
47
|
| `RELEASE_RUNNER_LABEL` | Release/full-regression workflows supply certification-runner provenance to `run-release-gates.mjs`. |
|
|
48
48
|
| `TERMINAL_FIXTURE_INPUT`, `TERMINAL_FIXTURE_TOKEN` | Native terminal probe producer/consumer in `native/terminal-host/src/main.rs`; expected input and fixture token. |
|
|
49
49
|
| `TERMINAL_HOST_LOCAL_BUILD` | Developer shell sets exactly `1`; `native/terminal-host/build.rs` then permits a Windows build outside CI. |
|
|
50
|
+
| `TERMINAL_HOST_EXPORT_VT` | Native validation lanes in `.github/workflows/ci.yml` name a directory; `build.rs` copies the linked terminal library, headers, and manifest there for upload. |
|
|
51
|
+
| `TERMINAL_HOST_PREBUILT_VT` | Developer shell names a fetched library directory; with `TERMINAL_HOST_LOCAL_BUILD=1` and no `CI`, `build.rs` verifies its manifest and links it instead of running Zig. |
|
|
50
52
|
| `DOCS_AUTO_MERGE_POLL_ATTEMPTS`, `DOCS_AUTO_MERGE_POLL_MS` | Documentation automation polling controls, produced by governance tests and consumed by `manage-documentation-auto-merge.mjs`. |
|
|
51
53
|
| `VALIDATION_JOB_STARTED_MS`, `RENDERING_JOB_STARTED_MS` | CI timing handoffs within `.github/workflows/ci.yml`; epoch milliseconds. |
|
|
52
54
|
| `RUN_PROCESS_CONTAINMENT_INTEGRATION` | CI enables the real containment fixture with exactly `1`; platform containment tests consume it. |
|
|
@@ -1,27 +1,35 @@
|
|
|
1
1
|
# Process guardian provenance
|
|
2
2
|
|
|
3
|
-
A1 launch-instance containment uses
|
|
3
|
+
A1 launch-instance containment uses the Node-API 9 addon `process-guardian.node`. The approved implementation is the separate Rust crate at `native/process-guardian`; it produces no product executable. The foreground Node launch guardian loads the addon and holds the containment boundary in-process.
|
|
4
4
|
|
|
5
5
|
## Boundary
|
|
6
6
|
|
|
7
|
-
The
|
|
7
|
+
The addon owns platform process containment and launches one immutable A1 UI runtime with inherited terminal handles. It also provides native process-start inspection, terminal-mode capture and restoration, exit-notice delivery, and the bounded process-wait and process-group operations used by the exit watcher. It does not create a PTY, read ordinary terminal input, capture or parse runtime output, render, or relay terminal bytes.
|
|
8
8
|
|
|
9
|
-
On Windows it uses `windows-sys 0.61.2` to create a Job Object, enables `JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE`,
|
|
9
|
+
On Windows it uses `windows-sys 0.61.2` to create a Job Object, enables `JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE`, and creates the runtime directly in that job through `PROC_THREAD_ATTRIBUTE_JOB_LIST`. The runtime is a job member from its first instruction; the former suspended-create, assign, and resume sequence is gone. Ordinary jobs do not enable breakaway, and closing the addon-held job handle terminates remaining members.
|
|
10
10
|
|
|
11
|
-
On Linux and macOS it
|
|
11
|
+
On Linux and macOS it uses `posix_spawn` to create a dedicated process group, transfers foreground-terminal ownership only when a terminal is present, applies bounded TERM/KILL cleanup to that group, and restores the prior foreground group. Linux derives process start identity from procfs. macOS derives it from `proc_pidinfo(PROC_PIDTBSDINFO)`; PID liveness alone is never treated as identity.
|
|
12
|
+
|
|
13
|
+
## Exit watcher
|
|
14
|
+
|
|
15
|
+
After the contained runtime starts, the launch guardian starts `dist/foundation/launch-guardian/exit-watcher.js` in another Node runtime outside the guardian's containment. The watcher waits for the guardian, performs bounded Unix process-group cleanup when needed, and claims and delivers the armed exit notice with the captured terminal modes. On Windows the addon creates that Node process outside both the runtime job and the guardian's inherited job; on Unix it remains in the terminal session so terminal hang-up reaches it naturally. The guardian itself delivers the notice on ordinary completion, and claim-by-rename ensures only one owner can print it.
|
|
16
|
+
|
|
17
|
+
There is one accepted gap: a machine-wide kill aimed at every Node process, such as `taskkill /IM node.exe` or `pkill node`, kills the watcher together with the guardian and runtime. No exit notice is then printed and, on Unix, non-Node descendants left in the runtime process group are not signalled by the watcher. A1 does not work around that case by starting an A1-built executable. Terminal closure, `Ctrl+Break`, guardian failure, runtime termination, and a kill aimed only at the guardian remain covered.
|
|
12
18
|
|
|
13
19
|
## Artifact contract
|
|
14
20
|
|
|
15
|
-
Release builds place the
|
|
21
|
+
Release builds place the addon at:
|
|
16
22
|
|
|
17
23
|
```text
|
|
18
|
-
dist/native/win32-x64/process-guardian.
|
|
19
|
-
dist/native/linux-x64/process-guardian
|
|
20
|
-
dist/native/darwin-x64/process-guardian
|
|
21
|
-
dist/native/darwin-arm64/process-guardian
|
|
24
|
+
dist/native/win32-x64/process-guardian.node
|
|
25
|
+
dist/native/linux-x64/process-guardian.node
|
|
26
|
+
dist/native/darwin-x64/process-guardian.node
|
|
27
|
+
dist/native/darwin-arm64/process-guardian.node
|
|
22
28
|
```
|
|
23
29
|
|
|
24
|
-
|
|
30
|
+
The publication `guardians` job builds them on `windows-2025`, `ubuntu-24.04`, and `macos-15` arm64; the macOS arm64 job also cross-compiles x64 with `--target x86_64-apple-darwin`. A native build is identified by loading the addon into Node and reading `version()`. When the producing runner cannot load the cross-compiled x64 addon, its manifest records only the observed Mach-O architecture.
|
|
31
|
+
|
|
32
|
+
Each `a1-process-guardian-artifact-v2` manifest records `kind: "node-addon"`, Node-API 9, target platform and architecture, crate and protocol versions, SHA-256, byte size, build provenance, and signature/attestation status. A supported artifact is verified before loading. A missing, altered, incompatible, unsupported, or wrong-platform artifact is a concise containment launch error; A1 never silently falls back to PID-only cleanup. If a certified immutable release file disappears or changes, bootstrap restores it only from a matching installed package whose source bytes reproduce the certified size and digest, then verifies the complete release again.
|
|
25
33
|
|
|
26
34
|
## Licensing
|
|
27
35
|
|
|
@@ -103,6 +103,14 @@ a1 session link-worktree <absolute-worktree>
|
|
|
103
103
|
git -C .worktrees/<task-id> status
|
|
104
104
|
```
|
|
105
105
|
|
|
106
|
+
Claude Code sessions have no A1 shell-tool session, so they link with Claude Code's `EnterWorktree` tool by task name. The tracked `.claude/settings.json` wires a `WorktreeCreate` hook, `scripts/governance/claude-worktree-create.mjs`, that creates `.worktrees/<task-id>` detached at fresh `origin/develop`, or returns it when it is already registered, so Claude Code anchors the session there without an approval prompt. The agent then creates the task branch inside it:
|
|
107
|
+
|
|
108
|
+
```sh
|
|
109
|
+
git -C .worktrees/<task-id> switch -c <type>/<short-description>
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Passing an absolute `path` to `EnterWorktree` is reserved for a worktree created by hand, from the primary checkout, before any shell command in that session; Claude Code otherwise keeps its shell tools anchored to the primary checkout and refuses their commands. The matching `WorktreeRemove` hook declines removal, so sessions leave with `ExitWorktree` `keep` and worktrees are removed only by the cleanup tool.
|
|
113
|
+
|
|
106
114
|
Inventory is read-only and advisory because another runtime may win a later race. A successful link response confirming the exact canonical worktree is required before planning, implementation, test, or delivery-documentation edits. If inventory or linking fails, reports a live/unverifiable owner, loses a race, or confirms another path, stop task edits and report the blocker; use a separate fresh worktree rather than overriding, unlinking, or recovering that owner. A session resuming an existing delivery or switching streams atomically claims and links the exact worktree before editing it.
|
|
107
115
|
|
|
108
116
|
The link acquires a cooperative live-session editing claim and switches bare A1's footer repository context and pull-request discovery. It does not change process or tool cwd, create a Git worktree lock, or register, release, or authorize cleanup. Clean unlink/disposal releases live editing authority; a crashed owner becomes reusable only after exact process death is verified. Repository commands therefore keep an explicit worktree path. The primary worktree stays on `develop` for integration and must not be used for task edits. Do not edit, adopt, move, or remove another session's worktree.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Resident tabs — target requirements
|
|
2
|
+
|
|
3
|
+
Status: one requirement remains outside the delivered milestones. Milestones 1–6 moved every other requirement into their OpenSpec changes, and the canonical specs now hold them. This file keeps only what no milestone has delivered yet; it binds nothing until a later change adopts it. See [`resident-tabs.md`](resident-tabs.md#roadmap).
|
|
4
|
+
|
|
5
|
+
## Capability: `resident-terminal-host`
|
|
6
|
+
|
|
7
|
+
### ADDED Requirements
|
|
8
|
+
|
|
9
|
+
#### Requirement: Host topology mutations are revisioned and atomic
|
|
10
|
+
Client/server topology messages SHALL use the generation-1 protocol established by `resident-tabs-contracts`. A topology subscription SHALL begin with one complete snapshot and monotonic revision, followed by ordered changes. Every create, rename, reorder, close, retry, fresh-start, and stop-all mutation SHALL carry its expected topology or registry revision and SHALL either commit completely at the next revision or be rejected without a partial change. A method absent from an older same-generation server SHALL disable only that operation.
|
|
11
|
+
|
|
12
|
+
##### Scenario: Two clients mutate one revision
|
|
13
|
+
- **WHEN** two clients submit topology mutations against the same expected revision
|
|
14
|
+
- **THEN** at most one SHALL commit, the stale mutation SHALL receive a typed revision conflict, and every client SHALL converge on the committed topology
|
|
15
|
+
|
|
16
|
+
##### Scenario: Newer client calls an unavailable method
|
|
17
|
+
- **WHEN** a newer same-generation client attaches to an older server that lacks one optional topology method
|
|
18
|
+
- **THEN** attachment and unrelated operations SHALL remain available while only that method is disabled
|