oh-my-codex 0.20.2 → 0.20.5
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/Cargo.lock +36 -18
- package/Cargo.toml +1 -1
- package/README.md +28 -2
- package/crates/omx-runtime/Cargo.toml +4 -0
- package/crates/omx-runtime/src/main.rs +415 -2
- package/crates/omx-runtime/tests/execution.rs +483 -0
- package/crates/omx-runtime-core/src/dispatch.rs +96 -10
- package/crates/omx-runtime-core/src/engine.rs +839 -29
- package/crates/omx-runtime-core/src/lib.rs +8 -0
- package/dist/adapt/__tests__/herdr-target.test.d.ts +2 -0
- package/dist/adapt/__tests__/herdr-target.test.d.ts.map +1 -0
- package/dist/adapt/__tests__/herdr-target.test.js +72 -0
- package/dist/adapt/__tests__/herdr-target.test.js.map +1 -0
- package/dist/adapt/contracts.d.ts +1 -1
- package/dist/adapt/contracts.d.ts.map +1 -1
- package/dist/adapt/contracts.js +1 -1
- package/dist/adapt/contracts.js.map +1 -1
- package/dist/adapt/herdr/__tests__/authority.test.d.ts +2 -0
- package/dist/adapt/herdr/__tests__/authority.test.d.ts.map +1 -0
- package/dist/adapt/herdr/__tests__/authority.test.js +49 -0
- package/dist/adapt/herdr/__tests__/authority.test.js.map +1 -0
- package/dist/adapt/herdr/__tests__/bridge.test.d.ts +2 -0
- package/dist/adapt/herdr/__tests__/bridge.test.d.ts.map +1 -0
- package/dist/adapt/herdr/__tests__/bridge.test.js +176 -0
- package/dist/adapt/herdr/__tests__/bridge.test.js.map +1 -0
- package/dist/adapt/herdr/__tests__/sanitize.test.d.ts +2 -0
- package/dist/adapt/herdr/__tests__/sanitize.test.d.ts.map +1 -0
- package/dist/adapt/herdr/__tests__/sanitize.test.js +45 -0
- package/dist/adapt/herdr/__tests__/sanitize.test.js.map +1 -0
- package/dist/adapt/herdr/__tests__/semantic.test.d.ts +2 -0
- package/dist/adapt/herdr/__tests__/semantic.test.d.ts.map +1 -0
- package/dist/adapt/herdr/__tests__/semantic.test.js +130 -0
- package/dist/adapt/herdr/__tests__/semantic.test.js.map +1 -0
- package/dist/adapt/herdr/__tests__/seq-store.test.d.ts +2 -0
- package/dist/adapt/herdr/__tests__/seq-store.test.d.ts.map +1 -0
- package/dist/adapt/herdr/__tests__/seq-store.test.js +54 -0
- package/dist/adapt/herdr/__tests__/seq-store.test.js.map +1 -0
- package/dist/adapt/herdr/__tests__/socket-live.test.d.ts +2 -0
- package/dist/adapt/herdr/__tests__/socket-live.test.d.ts.map +1 -0
- package/dist/adapt/herdr/__tests__/socket-live.test.js +104 -0
- package/dist/adapt/herdr/__tests__/socket-live.test.js.map +1 -0
- package/dist/adapt/herdr/__tests__/team-map.test.d.ts +2 -0
- package/dist/adapt/herdr/__tests__/team-map.test.d.ts.map +1 -0
- package/dist/adapt/herdr/__tests__/team-map.test.js +46 -0
- package/dist/adapt/herdr/__tests__/team-map.test.js.map +1 -0
- package/dist/adapt/herdr/__tests__/transport.test.d.ts +2 -0
- package/dist/adapt/herdr/__tests__/transport.test.d.ts.map +1 -0
- package/dist/adapt/herdr/__tests__/transport.test.js +160 -0
- package/dist/adapt/herdr/__tests__/transport.test.js.map +1 -0
- package/dist/adapt/herdr/__tests__/wiring.test.d.ts +2 -0
- package/dist/adapt/herdr/__tests__/wiring.test.d.ts.map +1 -0
- package/dist/adapt/herdr/__tests__/wiring.test.js +118 -0
- package/dist/adapt/herdr/__tests__/wiring.test.js.map +1 -0
- package/dist/adapt/herdr/authority.d.ts +34 -0
- package/dist/adapt/herdr/authority.d.ts.map +1 -0
- package/dist/adapt/herdr/authority.js +71 -0
- package/dist/adapt/herdr/authority.js.map +1 -0
- package/dist/adapt/herdr/bridge.d.ts +84 -0
- package/dist/adapt/herdr/bridge.d.ts.map +1 -0
- package/dist/adapt/herdr/bridge.js +222 -0
- package/dist/adapt/herdr/bridge.js.map +1 -0
- package/dist/adapt/herdr/sanitize.d.ts +20 -0
- package/dist/adapt/herdr/sanitize.d.ts.map +1 -0
- package/dist/adapt/herdr/sanitize.js +70 -0
- package/dist/adapt/herdr/sanitize.js.map +1 -0
- package/dist/adapt/herdr/semantic.d.ts +67 -0
- package/dist/adapt/herdr/semantic.d.ts.map +1 -0
- package/dist/adapt/herdr/semantic.js +170 -0
- package/dist/adapt/herdr/semantic.js.map +1 -0
- package/dist/adapt/herdr/seq-store.d.ts +32 -0
- package/dist/adapt/herdr/seq-store.d.ts.map +1 -0
- package/dist/adapt/herdr/seq-store.js +126 -0
- package/dist/adapt/herdr/seq-store.js.map +1 -0
- package/dist/adapt/herdr/team-map.d.ts +30 -0
- package/dist/adapt/herdr/team-map.d.ts.map +1 -0
- package/dist/adapt/herdr/team-map.js +37 -0
- package/dist/adapt/herdr/team-map.js.map +1 -0
- package/dist/adapt/herdr/transport.d.ts +115 -0
- package/dist/adapt/herdr/transport.d.ts.map +1 -0
- package/dist/adapt/herdr/transport.js +260 -0
- package/dist/adapt/herdr/transport.js.map +1 -0
- package/dist/adapt/herdr/wiring.d.ts +24 -0
- package/dist/adapt/herdr/wiring.d.ts.map +1 -0
- package/dist/adapt/herdr/wiring.js +62 -0
- package/dist/adapt/herdr/wiring.js.map +1 -0
- package/dist/adapt/herdr.d.ts +19 -0
- package/dist/adapt/herdr.d.ts.map +1 -0
- package/dist/adapt/herdr.js +115 -0
- package/dist/adapt/herdr.js.map +1 -0
- package/dist/adapt/index.d.ts +4 -0
- package/dist/adapt/index.d.ts.map +1 -1
- package/dist/adapt/index.js +48 -0
- package/dist/adapt/index.js.map +1 -1
- package/dist/adapt/registry.d.ts.map +1 -1
- package/dist/adapt/registry.js +11 -0
- package/dist/adapt/registry.js.map +1 -1
- package/dist/agents/__tests__/definitions.test.js +81 -0
- package/dist/agents/__tests__/definitions.test.js.map +1 -1
- package/dist/agents/__tests__/native-config.test.js +25 -0
- package/dist/agents/__tests__/native-config.test.js.map +1 -1
- package/dist/agents/native-config.d.ts +2 -1
- package/dist/agents/native-config.d.ts.map +1 -1
- package/dist/agents/native-config.js.map +1 -1
- package/dist/auth/__tests__/hotswap.test.js +60 -1
- package/dist/auth/__tests__/hotswap.test.js.map +1 -1
- package/dist/auth/__tests__/storage.test.js +33 -1
- package/dist/auth/__tests__/storage.test.js.map +1 -1
- package/dist/auth/hotswap.d.ts +22 -2
- package/dist/auth/hotswap.d.ts.map +1 -1
- package/dist/auth/hotswap.js +107 -22
- package/dist/auth/hotswap.js.map +1 -1
- package/dist/auth/storage.js +1 -1
- package/dist/auth/storage.js.map +1 -1
- package/dist/autopilot/__tests__/ralplan-gate.test.js +86 -1333
- package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -1
- package/dist/autopilot/ralplan-gate.d.ts.map +1 -1
- package/dist/autopilot/ralplan-gate.js +7 -6
- package/dist/autopilot/ralplan-gate.js.map +1 -1
- package/dist/cli/__tests__/agents-init.test.js +4 -23
- package/dist/cli/__tests__/agents-init.test.js.map +1 -1
- package/dist/cli/__tests__/api.test.js +61 -24
- package/dist/cli/__tests__/api.test.js.map +1 -1
- package/dist/cli/__tests__/auth.test.js +63 -7
- package/dist/cli/__tests__/auth.test.js.map +1 -1
- package/dist/cli/__tests__/codex-feature-probe.test.js +66 -1
- package/dist/cli/__tests__/codex-feature-probe.test.js.map +1 -1
- package/dist/cli/__tests__/codex-plugin-layout.test.js +150 -2
- package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
- package/dist/cli/__tests__/detached-leader-teardown.test.d.ts +2 -0
- package/dist/cli/__tests__/detached-leader-teardown.test.d.ts.map +1 -0
- package/dist/cli/__tests__/detached-leader-teardown.test.js +473 -0
- package/dist/cli/__tests__/detached-leader-teardown.test.js.map +1 -0
- package/dist/cli/__tests__/doctor-process-identity-readiness.test.d.ts +2 -0
- package/dist/cli/__tests__/doctor-process-identity-readiness.test.d.ts.map +1 -0
- package/dist/cli/__tests__/doctor-process-identity-readiness.test.js +103 -0
- package/dist/cli/__tests__/doctor-process-identity-readiness.test.js.map +1 -0
- package/dist/cli/__tests__/doctor-state-root-binding.test.d.ts +2 -0
- package/dist/cli/__tests__/doctor-state-root-binding.test.d.ts.map +1 -0
- package/dist/cli/__tests__/doctor-state-root-binding.test.js +139 -0
- package/dist/cli/__tests__/doctor-state-root-binding.test.js.map +1 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.js +135 -1
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/exec.test.js +211 -0
- package/dist/cli/__tests__/exec.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +878 -463
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js +1290 -127
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/__tests__/mcp-parity.test.js +8 -4
- package/dist/cli/__tests__/mcp-parity.test.js.map +1 -1
- package/dist/cli/__tests__/native-assets.test.js +398 -16
- package/dist/cli/__tests__/native-assets.test.js.map +1 -1
- package/dist/cli/__tests__/native-hook-claim-journal.test.js +132 -6
- package/dist/cli/__tests__/native-hook-claim-journal.test.js.map +1 -1
- package/dist/cli/__tests__/ralph-goal-mode-contract.test.js +3 -3
- package/dist/cli/__tests__/ralph-goal-mode-contract.test.js.map +1 -1
- package/dist/cli/__tests__/ralph.test.js +3 -3
- package/dist/cli/__tests__/ralph.test.js.map +1 -1
- package/dist/cli/__tests__/ralplan-bootstrap-3181.test.js +49 -164
- package/dist/cli/__tests__/ralplan-bootstrap-3181.test.js.map +1 -1
- package/dist/cli/__tests__/ralplan-child-binding-3212.test.d.ts +2 -0
- package/dist/cli/__tests__/ralplan-child-binding-3212.test.d.ts.map +1 -0
- package/dist/cli/__tests__/ralplan-child-binding-3212.test.js +56 -0
- package/dist/cli/__tests__/ralplan-child-binding-3212.test.js.map +1 -0
- package/dist/cli/__tests__/ralplan.test.js +107 -109
- package/dist/cli/__tests__/ralplan.test.js.map +1 -1
- package/dist/cli/__tests__/resume.test.js +11 -10
- package/dist/cli/__tests__/resume.test.js.map +1 -1
- package/dist/cli/__tests__/session-scoped-runtime.test.js +1118 -43
- package/dist/cli/__tests__/session-scoped-runtime.test.js.map +1 -1
- package/dist/cli/__tests__/session-search-help.test.js +25 -1
- package/dist/cli/__tests__/session-search-help.test.js.map +1 -1
- package/dist/cli/__tests__/setup-agents-overwrite.test.js +8 -55
- package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/setup-install-mode.test.js +224 -7
- package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
- package/dist/cli/__tests__/sparkshell-cli.test.js +93 -41
- package/dist/cli/__tests__/sparkshell-cli.test.js.map +1 -1
- package/dist/cli/__tests__/team.test.js +150 -8
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/__tests__/ultragoal.test.js +117 -2
- package/dist/cli/__tests__/ultragoal.test.js.map +1 -1
- package/dist/cli/__tests__/uninstall.test.js +95 -4
- package/dist/cli/__tests__/uninstall.test.js.map +1 -1
- package/dist/cli/__tests__/update.test.js +669 -177
- package/dist/cli/__tests__/update.test.js.map +1 -1
- package/dist/cli/__tests__/windows-popup-loop-contract.test.js +33 -2
- package/dist/cli/__tests__/windows-popup-loop-contract.test.js.map +1 -1
- package/dist/cli/api.d.ts.map +1 -1
- package/dist/cli/api.js +9 -10
- package/dist/cli/api.js.map +1 -1
- package/dist/cli/codex-feature-probe.d.ts +16 -0
- package/dist/cli/codex-feature-probe.d.ts.map +1 -1
- package/dist/cli/codex-feature-probe.js +44 -0
- package/dist/cli/codex-feature-probe.js.map +1 -1
- package/dist/cli/codex-home.d.ts.map +1 -1
- package/dist/cli/codex-home.js +7 -4
- package/dist/cli/codex-home.js.map +1 -1
- package/dist/cli/doctor.d.ts +20 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +290 -3
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +234 -12
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2409 -746
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/mcp-parity.js +2 -2
- package/dist/cli/mcp-parity.js.map +1 -1
- package/dist/cli/native-assets.d.ts +25 -0
- package/dist/cli/native-assets.d.ts.map +1 -1
- package/dist/cli/native-assets.js +448 -51
- package/dist/cli/native-assets.js.map +1 -1
- package/dist/cli/native-hook-claim-journal.d.ts +20 -5
- package/dist/cli/native-hook-claim-journal.d.ts.map +1 -1
- package/dist/cli/native-hook-claim-journal.js +67 -32
- package/dist/cli/native-hook-claim-journal.js.map +1 -1
- package/dist/cli/package-manager-ownership.d.ts +63 -0
- package/dist/cli/package-manager-ownership.d.ts.map +1 -0
- package/dist/cli/package-manager-ownership.js +323 -0
- package/dist/cli/package-manager-ownership.js.map +1 -0
- package/dist/cli/ralph.js +2 -2
- package/dist/cli/ralph.js.map +1 -1
- package/dist/cli/ralplan.d.ts +5 -7
- package/dist/cli/ralplan.d.ts.map +1 -1
- package/dist/cli/ralplan.js +83 -134
- package/dist/cli/ralplan.js.map +1 -1
- package/dist/cli/session-search.d.ts +5 -0
- package/dist/cli/session-search.d.ts.map +1 -1
- package/dist/cli/session-search.js +87 -0
- package/dist/cli/session-search.js.map +1 -1
- package/dist/cli/setup-preferences.d.ts +15 -0
- package/dist/cli/setup-preferences.d.ts.map +1 -1
- package/dist/cli/setup-preferences.js +27 -1
- package/dist/cli/setup-preferences.js.map +1 -1
- package/dist/cli/setup.d.ts +8 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +119 -47
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/sparkshell.d.ts.map +1 -1
- package/dist/cli/sparkshell.js +52 -9
- package/dist/cli/sparkshell.js.map +1 -1
- package/dist/cli/ultragoal.d.ts.map +1 -1
- package/dist/cli/ultragoal.js +2 -2
- package/dist/cli/ultragoal.js.map +1 -1
- package/dist/cli/uninstall.d.ts +9 -0
- package/dist/cli/uninstall.d.ts.map +1 -1
- package/dist/cli/uninstall.js +71 -30
- package/dist/cli/uninstall.js.map +1 -1
- package/dist/cli/update-worker.d.ts +2 -0
- package/dist/cli/update-worker.d.ts.map +1 -0
- package/dist/cli/update-worker.js +142 -0
- package/dist/cli/update-worker.js.map +1 -0
- package/dist/cli/update.d.ts +14 -22
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +192 -241
- package/dist/cli/update.js.map +1 -1
- package/dist/compat/__tests__/rust-runtime-compat.test.js +1 -1
- package/dist/config/__tests__/generator-idempotent.test.js +503 -30
- package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
- package/dist/config/__tests__/generator-notify.test.js +5 -3
- package/dist/config/__tests__/generator-notify.test.js.map +1 -1
- package/dist/config/__tests__/models.test.js +67 -3
- package/dist/config/__tests__/models.test.js.map +1 -1
- package/dist/config/generator.d.ts +27 -21
- package/dist/config/generator.d.ts.map +1 -1
- package/dist/config/generator.js +610 -152
- package/dist/config/generator.js.map +1 -1
- package/dist/config/models.d.ts +12 -2
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +15 -1
- package/dist/config/models.js.map +1 -1
- package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js +25 -0
- package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js.map +1 -1
- package/dist/goal-workflows/codex-goal-snapshot.d.ts +1 -1
- package/dist/goal-workflows/codex-goal-snapshot.d.ts.map +1 -1
- package/dist/goal-workflows/codex-goal-snapshot.js +2 -0
- package/dist/goal-workflows/codex-goal-snapshot.js.map +1 -1
- package/dist/hooks/__tests__/agents-overlay.test.js +5 -3
- package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js +27 -4
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/issue-3293-autopilot-handoff.test.d.ts +2 -0
- package/dist/hooks/__tests__/issue-3293-autopilot-handoff.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/issue-3293-autopilot-handoff.test.js +172 -0
- package/dist/hooks/__tests__/issue-3293-autopilot-handoff.test.js.map +1 -0
- package/dist/hooks/__tests__/keyword-detector.test.js +176 -37
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js +402 -545
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +39 -4
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +161 -26
- package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js +27 -0
- package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js +10 -118
- package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-regression-205.test.js +7 -0
- package/dist/hooks/__tests__/notify-hook-regression-205.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +533 -14
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +159 -24
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js +482 -32
- package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.js +2 -1
- package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js +68 -1
- package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.js +7 -1
- package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +44 -4
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/prompt-guidance-contract.test.js +9 -0
- package/dist/hooks/__tests__/prompt-guidance-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/session.test.js +3130 -365
- package/dist/hooks/__tests__/session.test.js.map +1 -1
- package/dist/hooks/agents-overlay.js +1 -1
- package/dist/hooks/agents-overlay.js.map +1 -1
- package/dist/hooks/extensibility/__tests__/dispatcher.test.js +108 -2
- package/dist/hooks/extensibility/__tests__/dispatcher.test.js.map +1 -1
- package/dist/hooks/extensibility/__tests__/sdk.test.js +151 -1
- package/dist/hooks/extensibility/__tests__/sdk.test.js.map +1 -1
- package/dist/hooks/extensibility/dispatcher.d.ts.map +1 -1
- package/dist/hooks/extensibility/dispatcher.js +20 -3
- package/dist/hooks/extensibility/dispatcher.js.map +1 -1
- package/dist/hooks/extensibility/plugin-runner.js +1 -0
- package/dist/hooks/extensibility/plugin-runner.js.map +1 -1
- package/dist/hooks/extensibility/runtime.d.ts.map +1 -1
- package/dist/hooks/extensibility/runtime.js.map +1 -1
- package/dist/hooks/extensibility/sdk/paths.d.ts +1 -1
- package/dist/hooks/extensibility/sdk/paths.d.ts.map +1 -1
- package/dist/hooks/extensibility/sdk/paths.js +2 -2
- package/dist/hooks/extensibility/sdk/paths.js.map +1 -1
- package/dist/hooks/extensibility/sdk/runtime-state.d.ts +1 -1
- package/dist/hooks/extensibility/sdk/runtime-state.d.ts.map +1 -1
- package/dist/hooks/extensibility/sdk/runtime-state.js +55 -15
- package/dist/hooks/extensibility/sdk/runtime-state.js.map +1 -1
- package/dist/hooks/extensibility/sdk.d.ts +1 -0
- package/dist/hooks/extensibility/sdk.d.ts.map +1 -1
- package/dist/hooks/extensibility/sdk.js +1 -1
- package/dist/hooks/extensibility/sdk.js.map +1 -1
- package/dist/hooks/extensibility/types.d.ts +7 -0
- package/dist/hooks/extensibility/types.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.d.ts +10 -3
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +116 -20
- package/dist/hooks/keyword-detector.js.map +1 -1
- package/dist/hooks/session.d.ts +204 -14
- package/dist/hooks/session.d.ts.map +1 -1
- package/dist/hooks/session.js +1500 -223
- package/dist/hooks/session.js.map +1 -1
- package/dist/hud/__tests__/hud-tmux-injection.test.js +6 -6
- package/dist/hud/__tests__/hud-tmux-injection.test.js.map +1 -1
- package/dist/hud/__tests__/index.test.js +26 -16
- package/dist/hud/__tests__/index.test.js.map +1 -1
- package/dist/hud/__tests__/reconcile.test.js +83 -78
- package/dist/hud/__tests__/reconcile.test.js.map +1 -1
- package/dist/hud/__tests__/state.test.js +36 -31
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/__tests__/tmux.test.js +155 -198
- package/dist/hud/__tests__/tmux.test.js.map +1 -1
- package/dist/hud/tmux.d.ts +42 -4
- package/dist/hud/tmux.d.ts.map +1 -1
- package/dist/hud/tmux.js +1017 -139
- package/dist/hud/tmux.js.map +1 -1
- package/dist/leader/__tests__/contract.test.js +124 -37
- package/dist/leader/__tests__/contract.test.js.map +1 -1
- package/dist/leader/contract.d.ts +17 -6
- package/dist/leader/contract.d.ts.map +1 -1
- package/dist/leader/contract.js +102 -26
- package/dist/leader/contract.js.map +1 -1
- package/dist/mcp/__tests__/code-intel-server.test.js +31 -3
- package/dist/mcp/__tests__/code-intel-server.test.js.map +1 -1
- package/dist/mcp/__tests__/hermes-bridge.test.js +17 -0
- package/dist/mcp/__tests__/hermes-bridge.test.js.map +1 -1
- package/dist/mcp/__tests__/server-lifecycle.test.js +4 -4
- package/dist/mcp/__tests__/state-paths.test.js +735 -4
- package/dist/mcp/__tests__/state-paths.test.js.map +1 -1
- package/dist/mcp/__tests__/state-server.test.js +1 -1
- package/dist/mcp/__tests__/state-server.test.js.map +1 -1
- package/dist/mcp/__tests__/trace-server.test.js +2 -2
- package/dist/mcp/__tests__/trace-server.test.js.map +1 -1
- package/dist/mcp/__tests__/wiki-server.test.js +18 -0
- package/dist/mcp/__tests__/wiki-server.test.js.map +1 -1
- package/dist/mcp/code-intel-server.d.ts.map +1 -1
- package/dist/mcp/code-intel-server.js +13 -3
- package/dist/mcp/code-intel-server.js.map +1 -1
- package/dist/mcp/hermes-bridge.d.ts.map +1 -1
- package/dist/mcp/hermes-bridge.js +2 -2
- package/dist/mcp/hermes-bridge.js.map +1 -1
- package/dist/mcp/state-paths.d.ts +78 -4
- package/dist/mcp/state-paths.d.ts.map +1 -1
- package/dist/mcp/state-paths.js +543 -40
- package/dist/mcp/state-paths.js.map +1 -1
- package/dist/mcp/state-server.d.ts +4 -4
- package/dist/mcp/state-server.d.ts.map +1 -1
- package/dist/mcp/wiki-server.d.ts +11 -0
- package/dist/mcp/wiki-server.d.ts.map +1 -1
- package/dist/mcp/wiki-server.js +9 -2
- package/dist/mcp/wiki-server.js.map +1 -1
- package/dist/modes/__tests__/base-autopilot-gates.test.js +36 -7
- package/dist/modes/__tests__/base-autopilot-gates.test.js.map +1 -1
- package/dist/modes/__tests__/base-multi-state-compat.test.js +1 -1
- package/dist/modes/__tests__/base-multi-state-compat.test.js.map +1 -1
- package/dist/modes/__tests__/base-session-scope.test.js +17 -8
- package/dist/modes/__tests__/base-session-scope.test.js.map +1 -1
- package/dist/modes/__tests__/base-tmux-pane.test.js +4 -4
- package/dist/modes/__tests__/base-tmux-pane.test.js.map +1 -1
- package/dist/modes/base.d.ts +5 -5
- package/dist/modes/base.d.ts.map +1 -1
- package/dist/modes/base.js +76 -21
- package/dist/modes/base.js.map +1 -1
- package/dist/native-assets/archive.d.ts +17 -0
- package/dist/native-assets/archive.d.ts.map +1 -0
- package/dist/native-assets/archive.js +238 -0
- package/dist/native-assets/archive.js.map +1 -0
- package/dist/native-assets/policy.d.ts +42 -0
- package/dist/native-assets/policy.d.ts.map +1 -0
- package/dist/native-assets/policy.js +155 -0
- package/dist/native-assets/policy.js.map +1 -0
- package/dist/notifications/temp-contract.d.ts.map +1 -1
- package/dist/notifications/temp-contract.js +4 -0
- package/dist/notifications/temp-contract.js.map +1 -1
- package/dist/pipeline/__tests__/orchestrator.test.js +164 -42
- package/dist/pipeline/__tests__/orchestrator.test.js.map +1 -1
- package/dist/pipeline/__tests__/stages.test.js +72 -155
- package/dist/pipeline/__tests__/stages.test.js.map +1 -1
- package/dist/pipeline/orchestrator.d.ts.map +1 -1
- package/dist/pipeline/orchestrator.js +124 -18
- package/dist/pipeline/orchestrator.js.map +1 -1
- package/dist/pipeline/stages/ralplan.d.ts.map +1 -1
- package/dist/pipeline/stages/ralplan.js +36 -8
- package/dist/pipeline/stages/ralplan.js.map +1 -1
- package/dist/ralplan/__tests__/consensus-gate.test.js +73 -1316
- package/dist/ralplan/__tests__/consensus-gate.test.js.map +1 -1
- package/dist/ralplan/__tests__/documented-leader-preflight.test.d.ts +2 -0
- package/dist/ralplan/__tests__/documented-leader-preflight.test.d.ts.map +1 -0
- package/dist/ralplan/__tests__/documented-leader-preflight.test.js +335 -0
- package/dist/ralplan/__tests__/documented-leader-preflight.test.js.map +1 -0
- package/dist/ralplan/__tests__/runtime.test.js +85 -101
- package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
- package/dist/ralplan/consensus-gate.d.ts +9 -1
- package/dist/ralplan/consensus-gate.d.ts.map +1 -1
- package/dist/ralplan/consensus-gate.js +82 -338
- package/dist/ralplan/consensus-gate.js.map +1 -1
- package/dist/ralplan/documented-leader-preflight.d.ts +41 -0
- package/dist/ralplan/documented-leader-preflight.d.ts.map +1 -0
- package/dist/ralplan/documented-leader-preflight.js +360 -0
- package/dist/ralplan/documented-leader-preflight.js.map +1 -0
- package/dist/ralplan/runtime.d.ts +2 -1
- package/dist/ralplan/runtime.d.ts.map +1 -1
- package/dist/ralplan/runtime.js +67 -168
- package/dist/ralplan/runtime.js.map +1 -1
- package/dist/runtime/__tests__/bridge.test.js +42 -1
- package/dist/runtime/__tests__/bridge.test.js.map +1 -1
- package/dist/runtime/bridge.d.ts +12 -0
- package/dist/runtime/bridge.d.ts.map +1 -1
- package/dist/runtime/bridge.js +52 -1
- package/dist/runtime/bridge.js.map +1 -1
- package/dist/runtime/run-state.d.ts +5 -1
- package/dist/runtime/run-state.d.ts.map +1 -1
- package/dist/runtime/run-state.js +15 -8
- package/dist/runtime/run-state.js.map +1 -1
- package/dist/scripts/__tests__/codex-native-hook.test.js +16323 -8978
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/__tests__/issue-3293-callsite-parity.test.d.ts +2 -0
- package/dist/scripts/__tests__/issue-3293-callsite-parity.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/issue-3293-callsite-parity.test.js +225 -0
- package/dist/scripts/__tests__/issue-3293-callsite-parity.test.js.map +1 -0
- package/dist/scripts/__tests__/issue-3293-cancel-transaction.test.d.ts +2 -0
- package/dist/scripts/__tests__/issue-3293-cancel-transaction.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/issue-3293-cancel-transaction.test.js +188 -0
- package/dist/scripts/__tests__/issue-3293-cancel-transaction.test.js.map +1 -0
- package/dist/scripts/__tests__/issue-3293-hook-owned-cancel.test.d.ts +2 -0
- package/dist/scripts/__tests__/issue-3293-hook-owned-cancel.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/issue-3293-hook-owned-cancel.test.js +259 -0
- package/dist/scripts/__tests__/issue-3293-hook-owned-cancel.test.js.map +1 -0
- package/dist/scripts/__tests__/issue-3311-ultragoal-native-outside-tmux.test.d.ts +2 -0
- package/dist/scripts/__tests__/issue-3311-ultragoal-native-outside-tmux.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/issue-3311-ultragoal-native-outside-tmux.test.js +491 -0
- package/dist/scripts/__tests__/issue-3311-ultragoal-native-outside-tmux.test.js.map +1 -0
- package/dist/scripts/__tests__/issue-3358-ultragoal-cancel-lifecycle.test.d.ts +2 -0
- package/dist/scripts/__tests__/issue-3358-ultragoal-cancel-lifecycle.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/issue-3358-ultragoal-cancel-lifecycle.test.js +708 -0
- package/dist/scripts/__tests__/issue-3358-ultragoal-cancel-lifecycle.test.js.map +1 -0
- package/dist/scripts/__tests__/issue-3369-autopilot-ralplan-state-machine.test.d.ts +2 -0
- package/dist/scripts/__tests__/issue-3369-autopilot-ralplan-state-machine.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/issue-3369-autopilot-ralplan-state-machine.test.js +208 -0
- package/dist/scripts/__tests__/issue-3369-autopilot-ralplan-state-machine.test.js.map +1 -0
- package/dist/scripts/__tests__/notify-state-io.test.js +26 -0
- package/dist/scripts/__tests__/notify-state-io.test.js.map +1 -1
- package/dist/scripts/__tests__/notify-tmux-injection.test.js +23 -1
- package/dist/scripts/__tests__/notify-tmux-injection.test.js.map +1 -1
- package/dist/scripts/__tests__/postinstall.test.js +19 -1
- package/dist/scripts/__tests__/postinstall.test.js.map +1 -1
- package/dist/scripts/__tests__/reasoning-artifact-contract.test.d.ts +2 -0
- package/dist/scripts/__tests__/reasoning-artifact-contract.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/reasoning-artifact-contract.test.js +108 -0
- package/dist/scripts/__tests__/reasoning-artifact-contract.test.js.map +1 -0
- package/dist/scripts/__tests__/role-intent-bootstrap-e2e-3181.test.js +63 -173
- package/dist/scripts/__tests__/role-intent-bootstrap-e2e-3181.test.js.map +1 -1
- package/dist/scripts/__tests__/role-intent-durable-recovery-3181.test.js +74 -159
- package/dist/scripts/__tests__/role-intent-durable-recovery-3181.test.js.map +1 -1
- package/dist/scripts/__tests__/smoke-packed-install.test.js +404 -13
- package/dist/scripts/__tests__/smoke-packed-install.test.js.map +1 -1
- package/dist/scripts/__tests__/verify-native-release-assets.test.d.ts +2 -0
- package/dist/scripts/__tests__/verify-native-release-assets.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/verify-native-release-assets.test.js +235 -0
- package/dist/scripts/__tests__/verify-native-release-assets.test.js.map +1 -0
- package/dist/scripts/codex-native-hook.d.ts +53 -1
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +14448 -1480
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/scripts/codex-native-pre-post.d.ts +9 -0
- package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
- package/dist/scripts/codex-native-pre-post.js +35 -12
- package/dist/scripts/codex-native-pre-post.js.map +1 -1
- package/dist/scripts/generate-native-release-manifest.js +80 -51
- package/dist/scripts/generate-native-release-manifest.js.map +1 -1
- package/dist/scripts/notify-fallback-watcher.js +78 -115
- package/dist/scripts/notify-fallback-watcher.js.map +1 -1
- package/dist/scripts/notify-hook/auto-nudge.d.ts.map +1 -1
- package/dist/scripts/notify-hook/auto-nudge.js +74 -3
- package/dist/scripts/notify-hook/auto-nudge.js.map +1 -1
- package/dist/scripts/notify-hook/state-io.d.ts.map +1 -1
- package/dist/scripts/notify-hook/state-io.js +5 -0
- package/dist/scripts/notify-hook/state-io.js.map +1 -1
- package/dist/scripts/notify-hook/team-dispatch.d.ts +9 -0
- package/dist/scripts/notify-hook/team-dispatch.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-dispatch.js +234 -79
- package/dist/scripts/notify-hook/team-dispatch.js.map +1 -1
- package/dist/scripts/notify-hook/team-leader-nudge.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-leader-nudge.js +71 -16
- package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -1
- package/dist/scripts/notify-hook/team-tmux-guard.d.ts +12 -4
- package/dist/scripts/notify-hook/team-tmux-guard.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-tmux-guard.js +365 -44
- package/dist/scripts/notify-hook/team-tmux-guard.js.map +1 -1
- package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-worker-stop.js +42 -21
- package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
- package/dist/scripts/notify-hook/team-worker.d.ts +3 -0
- package/dist/scripts/notify-hook/team-worker.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-worker.js +82 -33
- package/dist/scripts/notify-hook/team-worker.js.map +1 -1
- package/dist/scripts/notify-hook/tmux-injection.d.ts +1 -0
- package/dist/scripts/notify-hook/tmux-injection.d.ts.map +1 -1
- package/dist/scripts/notify-hook/tmux-injection.js +32 -3
- package/dist/scripts/notify-hook/tmux-injection.js.map +1 -1
- package/dist/scripts/notify-hook.js +79 -82
- package/dist/scripts/notify-hook.js.map +1 -1
- package/dist/scripts/postinstall-advisory.d.ts +14 -0
- package/dist/scripts/postinstall-advisory.d.ts.map +1 -0
- package/dist/scripts/postinstall-advisory.js +49 -0
- package/dist/scripts/postinstall-advisory.js.map +1 -0
- package/dist/scripts/postinstall.d.ts +1 -1
- package/dist/scripts/postinstall.d.ts.map +1 -1
- package/dist/scripts/postinstall.js +1 -1
- package/dist/scripts/postinstall.js.map +1 -1
- package/dist/scripts/smoke-packed-install.d.ts +80 -4
- package/dist/scripts/smoke-packed-install.d.ts.map +1 -1
- package/dist/scripts/smoke-packed-install.js +3162 -26
- package/dist/scripts/smoke-packed-install.js.map +1 -1
- package/dist/scripts/sync-plugin-mirror.d.ts.map +1 -1
- package/dist/scripts/sync-plugin-mirror.js +16 -1
- package/dist/scripts/sync-plugin-mirror.js.map +1 -1
- package/dist/scripts/verify-native-release-assets.js +37 -23
- package/dist/scripts/verify-native-release-assets.js.map +1 -1
- package/dist/state/__tests__/mode-state-context.test.js +61 -0
- package/dist/state/__tests__/mode-state-context.test.js.map +1 -1
- package/dist/state/__tests__/operations.test.js +462 -850
- package/dist/state/__tests__/operations.test.js.map +1 -1
- package/dist/state/__tests__/skill-active.test.js +400 -2
- package/dist/state/__tests__/skill-active.test.js.map +1 -1
- package/dist/state/mode-state-context.d.ts +8 -0
- package/dist/state/mode-state-context.d.ts.map +1 -1
- package/dist/state/mode-state-context.js +73 -0
- package/dist/state/mode-state-context.js.map +1 -1
- package/dist/state/operations.d.ts +3 -0
- package/dist/state/operations.d.ts.map +1 -1
- package/dist/state/operations.js +144 -40
- package/dist/state/operations.js.map +1 -1
- package/dist/state/skill-active.d.ts +18 -1
- package/dist/state/skill-active.d.ts.map +1 -1
- package/dist/state/skill-active.js +420 -23
- package/dist/state/skill-active.js.map +1 -1
- package/dist/state/workflow-transition-reconcile.d.ts +3 -0
- package/dist/state/workflow-transition-reconcile.d.ts.map +1 -1
- package/dist/state/workflow-transition-reconcile.js +10 -4
- package/dist/state/workflow-transition-reconcile.js.map +1 -1
- package/dist/state/workflow-transition.d.ts.map +1 -1
- package/dist/state/workflow-transition.js +3 -1
- package/dist/state/workflow-transition.js.map +1 -1
- package/dist/subagents/__tests__/leader-bootstrap-3181.test.js +53 -247
- package/dist/subagents/__tests__/leader-bootstrap-3181.test.js.map +1 -1
- package/dist/subagents/__tests__/tracker.test.js +837 -1048
- package/dist/subagents/__tests__/tracker.test.js.map +1 -1
- package/dist/subagents/tracker.d.ts +58 -135
- package/dist/subagents/tracker.d.ts.map +1 -1
- package/dist/subagents/tracker.js +811 -632
- package/dist/subagents/tracker.js.map +1 -1
- package/dist/team/__tests__/api-interop.test.js +91 -1
- package/dist/team/__tests__/api-interop.test.js.map +1 -1
- package/dist/team/__tests__/delivery-e2e-smoke.test.js +58 -17
- package/dist/team/__tests__/delivery-e2e-smoke.test.js.map +1 -1
- package/dist/team/__tests__/idle-nudge.test.js +45 -15
- package/dist/team/__tests__/idle-nudge.test.js.map +1 -1
- package/dist/team/__tests__/mcp-comm.test.js +197 -30
- package/dist/team/__tests__/mcp-comm.test.js.map +1 -1
- package/dist/team/__tests__/model-contract.test.js +110 -3
- package/dist/team/__tests__/model-contract.test.js.map +1 -1
- package/dist/team/__tests__/notice-ledger.test.d.ts +2 -0
- package/dist/team/__tests__/notice-ledger.test.d.ts.map +1 -0
- package/dist/team/__tests__/notice-ledger.test.js +131 -0
- package/dist/team/__tests__/notice-ledger.test.js.map +1 -0
- package/dist/team/__tests__/pane-teardown-residue-e2e.test.d.ts +2 -0
- package/dist/team/__tests__/pane-teardown-residue-e2e.test.d.ts.map +1 -0
- package/dist/team/__tests__/pane-teardown-residue-e2e.test.js +410 -0
- package/dist/team/__tests__/pane-teardown-residue-e2e.test.js.map +1 -0
- package/dist/team/__tests__/phase-controller.test.js +20 -0
- package/dist/team/__tests__/phase-controller.test.js.map +1 -1
- package/dist/team/__tests__/runtime-cli.test.js +9 -0
- package/dist/team/__tests__/runtime-cli.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +3963 -428
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/scaling.test.js +2405 -203
- package/dist/team/__tests__/scaling.test.js.map +1 -1
- package/dist/team/__tests__/state-root.test.js +117 -2
- package/dist/team/__tests__/state-root.test.js.map +1 -1
- package/dist/team/__tests__/state.test.js +804 -36
- package/dist/team/__tests__/state.test.js.map +1 -1
- package/dist/team/__tests__/team-ops-contract.test.js +6 -0
- package/dist/team/__tests__/team-ops-contract.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +4099 -1039
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/tmux-source-authority-realtmux.test.d.ts +2 -0
- package/dist/team/__tests__/tmux-source-authority-realtmux.test.d.ts.map +1 -0
- package/dist/team/__tests__/tmux-source-authority-realtmux.test.js +149 -0
- package/dist/team/__tests__/tmux-source-authority-realtmux.test.js.map +1 -0
- package/dist/team/__tests__/tmux-test-fixture.d.ts +69 -0
- package/dist/team/__tests__/tmux-test-fixture.d.ts.map +1 -1
- package/dist/team/__tests__/tmux-test-fixture.js +242 -15
- package/dist/team/__tests__/tmux-test-fixture.js.map +1 -1
- package/dist/team/__tests__/tmux-test-fixture.test.js +177 -1
- package/dist/team/__tests__/tmux-test-fixture.test.js.map +1 -1
- package/dist/team/__tests__/worker-runtime-identity.test.js +53 -44
- package/dist/team/__tests__/worker-runtime-identity.test.js.map +1 -1
- package/dist/team/__tests__/worktree.test.js +6 -0
- package/dist/team/__tests__/worktree.test.js.map +1 -1
- package/dist/team/api-interop.d.ts.map +1 -1
- package/dist/team/api-interop.js +15 -9
- package/dist/team/api-interop.js.map +1 -1
- package/dist/team/exact-pane.d.ts +23 -0
- package/dist/team/exact-pane.d.ts.map +1 -0
- package/dist/team/exact-pane.js +133 -0
- package/dist/team/exact-pane.js.map +1 -0
- package/dist/team/idle-nudge.d.ts +12 -1
- package/dist/team/idle-nudge.d.ts.map +1 -1
- package/dist/team/idle-nudge.js +41 -14
- package/dist/team/idle-nudge.js.map +1 -1
- package/dist/team/model-contract.d.ts +2 -5
- package/dist/team/model-contract.d.ts.map +1 -1
- package/dist/team/model-contract.js +59 -17
- package/dist/team/model-contract.js.map +1 -1
- package/dist/team/notice-ledger.d.ts +54 -0
- package/dist/team/notice-ledger.d.ts.map +1 -0
- package/dist/team/notice-ledger.js +259 -0
- package/dist/team/notice-ledger.js.map +1 -0
- package/dist/team/phase-controller.d.ts.map +1 -1
- package/dist/team/phase-controller.js +2 -0
- package/dist/team/phase-controller.js.map +1 -1
- package/dist/team/runtime.d.ts +4 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +1527 -291
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/scaling.d.ts +13 -1
- package/dist/team/scaling.d.ts.map +1 -1
- package/dist/team/scaling.js +1503 -387
- package/dist/team/scaling.js.map +1 -1
- package/dist/team/state/dispatch.d.ts.map +1 -1
- package/dist/team/state/dispatch.js +26 -8
- package/dist/team/state/dispatch.js.map +1 -1
- package/dist/team/state/locks.d.ts.map +1 -1
- package/dist/team/state/locks.js +61 -13
- package/dist/team/state/locks.js.map +1 -1
- package/dist/team/state/monitor.d.ts +10 -0
- package/dist/team/state/monitor.d.ts.map +1 -1
- package/dist/team/state/monitor.js +13 -0
- package/dist/team/state/monitor.js.map +1 -1
- package/dist/team/state/tasks.d.ts.map +1 -1
- package/dist/team/state/tasks.js +4 -3
- package/dist/team/state/tasks.js.map +1 -1
- package/dist/team/state/types.d.ts +15 -0
- package/dist/team/state/types.d.ts.map +1 -1
- package/dist/team/state/types.js.map +1 -1
- package/dist/team/state-root.d.ts +12 -0
- package/dist/team/state-root.d.ts.map +1 -1
- package/dist/team/state-root.js +177 -0
- package/dist/team/state-root.js.map +1 -1
- package/dist/team/state.d.ts +85 -1
- package/dist/team/state.d.ts.map +1 -1
- package/dist/team/state.js +672 -129
- package/dist/team/state.js.map +1 -1
- package/dist/team/team-ops.d.ts +5 -0
- package/dist/team/team-ops.d.ts.map +1 -1
- package/dist/team/team-ops.js +4 -0
- package/dist/team/team-ops.js.map +1 -1
- package/dist/team/tmux-session.d.ts +163 -27
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +1682 -376
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/worktree.d.ts.map +1 -1
- package/dist/team/worktree.js +4 -0
- package/dist/team/worktree.js.map +1 -1
- package/dist/ultragoal/__tests__/artifacts.test.js +950 -2
- package/dist/ultragoal/__tests__/artifacts.test.js.map +1 -1
- package/dist/ultragoal/__tests__/docs-contract.test.js +1 -0
- package/dist/ultragoal/__tests__/docs-contract.test.js.map +1 -1
- package/dist/ultragoal/artifacts.d.ts +35 -1
- package/dist/ultragoal/artifacts.d.ts.map +1 -1
- package/dist/ultragoal/artifacts.js +232 -46
- package/dist/ultragoal/artifacts.js.map +1 -1
- package/dist/utils/__tests__/file-durability.test.d.ts +2 -0
- package/dist/utils/__tests__/file-durability.test.d.ts.map +1 -0
- package/dist/utils/__tests__/file-durability.test.js +114 -0
- package/dist/utils/__tests__/file-durability.test.js.map +1 -0
- package/dist/utils/__tests__/paths.test.js +21 -1
- package/dist/utils/__tests__/paths.test.js.map +1 -1
- package/dist/utils/file-durability.d.ts +25 -0
- package/dist/utils/file-durability.d.ts.map +1 -0
- package/dist/utils/file-durability.js +67 -0
- package/dist/utils/file-durability.js.map +1 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +14 -6
- package/dist/utils/paths.js.map +1 -1
- package/dist/verification/__tests__/ci-rust-gates.test.js +49 -4
- package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
- package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js +3 -0
- package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js.map +1 -1
- package/dist/verification/__tests__/explore-harness-release-workflow.test.js +60 -0
- package/dist/verification/__tests__/explore-harness-release-workflow.test.js.map +1 -1
- package/dist/verification/__tests__/native-release-manifest.test.js +157 -4
- package/dist/verification/__tests__/native-release-manifest.test.js.map +1 -1
- package/dist/wiki/lint.d.ts +4 -1
- package/dist/wiki/lint.d.ts.map +1 -1
- package/dist/wiki/lint.js +3 -2
- package/dist/wiki/lint.js.map +1 -1
- package/package.json +13 -5
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/oh-my-codex/hooks/codex-native-hook.mjs +105 -17
- package/plugins/oh-my-codex/skills/autopilot/SKILL.md +13 -5
- package/plugins/oh-my-codex/skills/cancel/SKILL.md +30 -85
- package/plugins/oh-my-codex/skills/ralph/SKILL.md +6 -4
- package/plugins/oh-my-codex/skills/ralplan/SKILL.md +16 -17
- package/plugins/oh-my-codex/skills/team/SKILL.md +13 -9
- package/plugins/oh-my-codex/skills/ultragoal/SKILL.md +3 -2
- package/skills/autopilot/SKILL.md +13 -5
- package/skills/cancel/SKILL.md +30 -85
- package/skills/ralph/SKILL.md +6 -4
- package/skills/ralplan/SKILL.md +16 -17
- package/skills/team/SKILL.md +13 -9
- package/skills/ultragoal/SKILL.md +3 -2
- package/src/scripts/__tests__/codex-native-hook.test.ts +8831 -951
- package/src/scripts/__tests__/issue-3293-callsite-parity.test.ts +187 -0
- package/src/scripts/__tests__/issue-3293-cancel-transaction.test.ts +189 -0
- package/src/scripts/__tests__/issue-3293-hook-owned-cancel.test.ts +187 -0
- package/src/scripts/__tests__/issue-3311-ultragoal-native-outside-tmux.test.ts +591 -0
- package/src/scripts/__tests__/issue-3358-ultragoal-cancel-lifecycle.test.ts +701 -0
- package/src/scripts/__tests__/issue-3369-autopilot-ralplan-state-machine.test.ts +211 -0
- package/src/scripts/__tests__/notify-state-io.test.ts +29 -0
- package/src/scripts/__tests__/notify-tmux-injection.test.ts +26 -1
- package/src/scripts/__tests__/postinstall.test.ts +23 -1
- package/src/scripts/__tests__/reasoning-artifact-contract.test.ts +129 -0
- package/src/scripts/__tests__/role-intent-bootstrap-e2e-3181.test.ts +67 -185
- package/src/scripts/__tests__/role-intent-durable-recovery-3181.test.ts +79 -178
- package/src/scripts/__tests__/smoke-packed-install.test.ts +525 -16
- package/src/scripts/__tests__/verify-native-release-assets.test.ts +240 -0
- package/src/scripts/codex-native-hook.ts +14238 -1429
- package/src/scripts/codex-native-pre-post.ts +43 -12
- package/src/scripts/generate-native-release-manifest.ts +83 -79
- package/src/scripts/notify-fallback-watcher.ts +91 -122
- package/src/scripts/notify-hook/auto-nudge.ts +71 -3
- package/src/scripts/notify-hook/state-io.ts +11 -0
- package/src/scripts/notify-hook/team-dispatch.ts +242 -75
- package/src/scripts/notify-hook/team-leader-nudge.ts +72 -22
- package/src/scripts/notify-hook/team-tmux-guard.ts +366 -39
- package/src/scripts/notify-hook/team-worker-stop.ts +43 -20
- package/src/scripts/notify-hook/team-worker.ts +82 -31
- package/src/scripts/notify-hook/tmux-injection.ts +33 -3
- package/src/scripts/notify-hook.ts +84 -82
- package/src/scripts/postinstall-advisory.ts +67 -0
- package/src/scripts/postinstall.ts +1 -1
- package/src/scripts/smoke-packed-install.ts +3608 -39
- package/src/scripts/sync-plugin-mirror.ts +17 -1
- package/src/scripts/verify-native-release-assets.ts +39 -31
- package/templates/AGENTS.md +1 -0
- package/dist/subagents/__tests__/adapted-role-binding.test.d.ts +0 -2
- package/dist/subagents/__tests__/adapted-role-binding.test.d.ts.map +0 -1
- package/dist/subagents/__tests__/adapted-role-binding.test.js +0 -988
- package/dist/subagents/__tests__/adapted-role-binding.test.js.map +0 -1
- package/dist/subagents/adapted-role-binding.d.ts +0 -17
- package/dist/subagents/adapted-role-binding.d.ts.map +0 -1
- package/dist/subagents/adapted-role-binding.js +0 -75
- package/dist/subagents/adapted-role-binding.js.map +0 -1
package/dist/cli/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,IAAI,CAAC;AAMvD,OAAO,EAQN,KAAK,gCAAgC,EACrC,MAAM,gCAAgC,CAAC;AA0ExC,OAAO,EAEN,KAAK,aAAa,EAClB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,EACN,mBAAmB,EACnB,eAAe,EACf,YAAY,EAKZ,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,MAAM,wBAAwB,CAAC;AAiDhC,UAAU,YAAY;IACrB,kBAAkB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qBAAqB,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACrE,0BAA0B,CAAC,EAAE,CAC5B,WAAW,EAAE,OAAO,CAAC,mBAAmB,CAAC,KACrC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC3C,iBAAiB,CAAC,EAAE,CACnB,WAAW,EAAE,gBAAgB,KACzB,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CACpB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,KACf,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,oBAAoB,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,iCAAiC,CAAC,EAAE,CACnC,UAAU,EAAE,MAAM,KACd,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC,CAAC;IAC/D,0BAA0B,CAAC,EAAE,CAC5B,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,EAAE,KACvB,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC9E,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,oBAAoB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAUD,UAAU,kBAAkB;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAOD,MAAM,WAAW,wBAAwB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACpB;AAsID,KAAK,4BAA4B,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAgEhE,KAAK,iCAAiC,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AAClF,KAAK,iCAAiC,GACnC,qBAAqB,GACrB,eAAe,GACf,mBAAmB,GACnB,eAAe,GACf,+BAA+B,GAC/B,cAAc,GACd,eAAe,GACf,+BAA+B,GAC/B,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,wBAAwB,GACxB,gCAAgC,GAChC,wBAAwB,GACxB,uBAAuB,GACvB,sBAAsB,CAAC;AAG1B,KAAK,6BAA6B,GAC/B;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,UAAU,qCAAqC;IAC9C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,6BAA6B,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,6BAA6B;IACtC,IAAI,EAAE,iCAAiC,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,qCAAqC,CAAC;IAC9C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,6BAA6B,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC/B;AAED,UAAU,iCAAiC;IAC1C,IAAI,EAAE,iCAAiC,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,qCAAqC,CAAC;CAC9C;AAkDD,gFAAgF;AAChF,wBAAgB,8CAA8C,CAC7D,QAAQ,EACL,CAAC,CACF,KAAK,EAAE,iCAAiC,EACxC,MAAM,EAAE,6BAA6B,GAAG,iCAAiC,KACrE,IAAI,CAAC,GACR,SAAS,GACV,MAAM,IAAI,CAMZ;AAED,yFAAyF;AACzF,wBAAgB,uCAAuC,CACtD,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAChC,MAAM,IAAI,CAMZ;AAED,0EAA0E;AAC1E,wBAAgB,uCAAuC,CACtD,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,GACnC,MAAM,IAAI,CAMZ;AAED,wFAAwF;AACxF,wBAAgB,4CAA4C,CAC3D,QAAQ,EACL,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,KAAK,MAAM,CAAC,GACvD,SAAS,GAGV,MAAM,IAAI,CAMZ;AAED,yEAAyE;AACzE,wBAAgB,8CAA8C,CAC7D,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,GAC9D,MAAM,IAAI,CAMZ;AAED,yEAAyE;AACzE,wBAAgB,4CAA4C,CAC3D,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,GAC3D,MAAM,IAAI,CAMZ;AAED,+EAA+E;AAC/E,wBAAgB,0CAA0C,CACzD,UAAU,EAAE,gCAAgC,GAAG,SAAS,GACtD,MAAM,IAAI,CAMZ;AAmYD,KAAK,sCAAsC,GACxC,gBAAgB,GAChB,YAAY,GACZ,WAAW,CAAC;AAsFf;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CACnD,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,QAAQ,EAAE,MAAM,GACd,sCAAsC,CA0CxC;AA6iCD,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,SAAa,GACnB,wBAAwB,CA6C1B;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1E;AAsDD,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,MAAM,GACjB,gBAAgB,CAoBlB;AA88CD,wBAAsB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqnCrE;AAyqBD,wBAAsB,aAAa,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,kBAAkB,EACjC,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC,oBAAoB,CAAC,CA+H/B"}
|
package/dist/cli/setup.js
CHANGED
|
@@ -10,8 +10,9 @@ import { createInterface } from "readline/promises";
|
|
|
10
10
|
import { homedir } from "os";
|
|
11
11
|
import TOML from "@iarna/toml";
|
|
12
12
|
import { createHash } from "crypto";
|
|
13
|
-
import { clearNativeHookClaimJournal, persistNativeHookClaimJournal, recoverNativeHookClaimJournal, syncNativeHookClaimParent, restoreNativeHookClaimNoClobber, } from "./native-hook-claim-journal.js";
|
|
13
|
+
import { clearNativeHookClaimJournal as clearNativeHookClaimJournalWithDurability, createNativeHookClaimJournalDurability, persistNativeHookClaimJournal as persistNativeHookClaimJournalWithDurability, recoverNativeHookClaimJournal, syncNativeHookClaimParent as syncNativeHookClaimParentWithDurability, restoreNativeHookClaimNoClobber as restoreNativeHookClaimNoClobberWithDurability, wrapNativeHookClaimJournalDurability, } from "./native-hook-claim-journal.js";
|
|
14
14
|
import { codexHome, codexConfigPath, codexPromptsDir, codexAgentsDir, userSkillsDir, omxStateDir, detectLegacySkillRootOverlap, omxPlansDir, omxLogsDir, } from "../utils/paths.js";
|
|
15
|
+
import { emitDegradedDurabilityWarning, recordRegularFileSyncOutcome, syncRegularFile, } from "../utils/file-durability.js";
|
|
15
16
|
import { buildMergedConfig, getRootModelName, getRootTomlArray, hasLegacyOmxTeamRunTable, isOmxManagedNotifyCommand, sanitizePreviousNotifyCommand, stripExistingOmxBlocks, stripExistingSharedMcpRegistryBlock, mergeSharedMcpRegistryBlock, stripOmxEnvSettings, stripOmxFeatureFlags, stripOmxSeededBehavioralDefaults, upsertPluginModeRuntimeFeatureFlags, upsertManagedCodexHookTrustState, stripManagedCodexHookTrustState, OMX_DEVELOPER_INSTRUCTIONS, OMX_PLUGIN_DEVELOPER_INSTRUCTIONS, hasFirstPartyOmxMcpRegistrations, extractFirstPartyOmxMcpSections, stripFirstPartyOmxMcpSections, } from "../config/generator.js";
|
|
16
17
|
import { buildManagedCodexNativeHookWindowsShimContent, buildManagedCodexNativeHookWindowsShimPath, planManagedCodexHooksMerge, planManagedCodexHooksRemoval, classifyManagedCodexNativeHookWindowsShimOwnership, ManagedCodexHooksPlanError, validateCodexHooksConfigStrict, } from "../config/codex-hooks.js";
|
|
17
18
|
import { getLegacyUnifiedMcpRegistryCandidate, getUnifiedMcpRegistryCandidates, loadUnifiedMcpRegistry, planClaudeCodeMcpSettingsSync, } from "../config/mcp-registry.js";
|
|
@@ -208,6 +209,9 @@ let nativeHookTransactionSequence = 0;
|
|
|
208
209
|
let nativeHookTransactionPlatformOverride;
|
|
209
210
|
let nativeHookTransactionTemporaryPathOverride;
|
|
210
211
|
let setupLatePhaseFailureInjector;
|
|
212
|
+
let nativeHookTransactionRegularFileSyncOverride;
|
|
213
|
+
let nativeHookClaimJournalDurabilityOverride;
|
|
214
|
+
let nativeHookTransactionArtifactLstatOverride;
|
|
211
215
|
/** @internal Test seam for deterministic atomic-write and rollback coverage. */
|
|
212
216
|
export function setNativeHookTransactionFailureInjectorForTest(injector) {
|
|
213
217
|
const previous = nativeHookTransactionFailureInjector;
|
|
@@ -240,9 +244,56 @@ export function setNativeHookTransactionTemporaryPathForTest(resolver) {
|
|
|
240
244
|
nativeHookTransactionTemporaryPathOverride = previous;
|
|
241
245
|
};
|
|
242
246
|
}
|
|
247
|
+
/** @internal Test seam for deterministic regular-file fsync coverage. */
|
|
248
|
+
export function setNativeHookTransactionRegularFileSyncForTest(sync) {
|
|
249
|
+
const previous = nativeHookTransactionRegularFileSyncOverride;
|
|
250
|
+
nativeHookTransactionRegularFileSyncOverride = sync;
|
|
251
|
+
return () => {
|
|
252
|
+
nativeHookTransactionRegularFileSyncOverride = previous;
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
/** @internal Test seam for deterministic artifact read-back coverage. */
|
|
256
|
+
export function setNativeHookTransactionArtifactLstatForTest(artifactLstat) {
|
|
257
|
+
const previous = nativeHookTransactionArtifactLstatOverride;
|
|
258
|
+
nativeHookTransactionArtifactLstatOverride = artifactLstat;
|
|
259
|
+
return () => {
|
|
260
|
+
nativeHookTransactionArtifactLstatOverride = previous;
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
/** @internal Test seam for deterministic claim-journal durability coverage. */
|
|
264
|
+
export function setNativeHookClaimJournalDurabilityForTest(durability) {
|
|
265
|
+
const previous = nativeHookClaimJournalDurabilityOverride;
|
|
266
|
+
nativeHookClaimJournalDurabilityOverride = durability;
|
|
267
|
+
return () => {
|
|
268
|
+
nativeHookClaimJournalDurabilityOverride = previous;
|
|
269
|
+
};
|
|
270
|
+
}
|
|
243
271
|
function nativeHookPlatform() {
|
|
244
272
|
return nativeHookTransactionPlatformOverride ?? process.platform;
|
|
245
273
|
}
|
|
274
|
+
function nativeHookClaimJournalDurability(tracker) {
|
|
275
|
+
return wrapNativeHookClaimJournalDurability(nativeHookClaimJournalDurabilityOverride
|
|
276
|
+
?? createNativeHookClaimJournalDurability(nativeHookPlatform()), tracker);
|
|
277
|
+
}
|
|
278
|
+
async function clearNativeHookClaimJournal(root, tracker) {
|
|
279
|
+
return clearNativeHookClaimJournalWithDurability(root, nativeHookClaimJournalDurability(tracker));
|
|
280
|
+
}
|
|
281
|
+
async function persistNativeHookClaimJournal(root, entry, tracker) {
|
|
282
|
+
return persistNativeHookClaimJournalWithDurability(root, entry, nativeHookClaimJournalDurability(tracker));
|
|
283
|
+
}
|
|
284
|
+
async function restoreNativeHookClaimNoClobber(claimPath, destinationPath, tracker) {
|
|
285
|
+
return restoreNativeHookClaimNoClobberWithDurability(claimPath, destinationPath, nativeHookClaimJournalDurability(tracker));
|
|
286
|
+
}
|
|
287
|
+
async function syncNativeHookClaimParent(path, tracker) {
|
|
288
|
+
return syncNativeHookClaimParentWithDurability(path, nativeHookClaimJournalDurability(tracker));
|
|
289
|
+
}
|
|
290
|
+
async function syncNativeHookRegularFile(handle) {
|
|
291
|
+
const platform = nativeHookPlatform();
|
|
292
|
+
if (nativeHookTransactionRegularFileSyncOverride) {
|
|
293
|
+
return syncRegularFile({ sync: () => nativeHookTransactionRegularFileSyncOverride(platform) }, platform);
|
|
294
|
+
}
|
|
295
|
+
return syncRegularFile(handle, platform);
|
|
296
|
+
}
|
|
246
297
|
function hookTransactionBytesEqual(left, right) {
|
|
247
298
|
return left === null || right === null ? left === right : left.equals(right);
|
|
248
299
|
}
|
|
@@ -251,6 +302,20 @@ function nativeHookTransactionTopologyEqual(left, right) {
|
|
|
251
302
|
? left.kind === right.kind
|
|
252
303
|
: left.mode === right.mode;
|
|
253
304
|
}
|
|
305
|
+
function nativeHookTransactionTopologyMatchesDuringReadback(left, right) {
|
|
306
|
+
if (nativeHookPlatform() === "win32" &&
|
|
307
|
+
left.kind === "regular_file" &&
|
|
308
|
+
right.kind === "regular_file" &&
|
|
309
|
+
left.mode === 0o600 &&
|
|
310
|
+
right.mode === 0o666) {
|
|
311
|
+
// Windows can synthesize a requested new-file mode of 0o600 as 0o666
|
|
312
|
+
// when the same file is reopened for read-back. Accept only that one-way
|
|
313
|
+
// transition inside a single identity-checked snapshot; later snapshots
|
|
314
|
+
// remain mode-strict so real permission drift still fails closed.
|
|
315
|
+
return true;
|
|
316
|
+
}
|
|
317
|
+
return nativeHookTransactionTopologyEqual(left, right);
|
|
318
|
+
}
|
|
254
319
|
function isMissingPathError(error) {
|
|
255
320
|
return (typeof error === "object" &&
|
|
256
321
|
error !== null &&
|
|
@@ -363,7 +428,7 @@ function decodeNativeHookTransactionUtf8(bytes, label) {
|
|
|
363
428
|
async function captureNativeHookTransactionArtifact(path, label) {
|
|
364
429
|
let before;
|
|
365
430
|
try {
|
|
366
|
-
before = await lstat(path);
|
|
431
|
+
before = await (nativeHookTransactionArtifactLstatOverride?.(path) ?? lstat(path));
|
|
367
432
|
}
|
|
368
433
|
catch (error) {
|
|
369
434
|
if (isMissingPathError(error)) {
|
|
@@ -375,7 +440,7 @@ async function captureNativeHookTransactionArtifact(path, label) {
|
|
|
375
440
|
throw new Error(`Refusing native hook transaction for ${label}: expected a single-link regular file or absence.`);
|
|
376
441
|
}
|
|
377
442
|
const bytes = await readFile(path);
|
|
378
|
-
const after = await lstat(path);
|
|
443
|
+
const after = await (nativeHookTransactionArtifactLstatOverride?.(path) ?? lstat(path));
|
|
379
444
|
const beforeTopology = {
|
|
380
445
|
kind: "regular_file",
|
|
381
446
|
mode: before.mode & 0o7777,
|
|
@@ -386,7 +451,7 @@ async function captureNativeHookTransactionArtifact(path, label) {
|
|
|
386
451
|
};
|
|
387
452
|
if (!after.isFile() ||
|
|
388
453
|
after.nlink !== 1 ||
|
|
389
|
-
!
|
|
454
|
+
!nativeHookTransactionTopologyMatchesDuringReadback(beforeTopology, afterTopology) ||
|
|
390
455
|
before.dev !== after.dev ||
|
|
391
456
|
before.ino !== after.ino ||
|
|
392
457
|
before.nlink !== after.nlink) {
|
|
@@ -394,7 +459,7 @@ async function captureNativeHookTransactionArtifact(path, label) {
|
|
|
394
459
|
}
|
|
395
460
|
return {
|
|
396
461
|
bytes,
|
|
397
|
-
topology:
|
|
462
|
+
topology: afterTopology,
|
|
398
463
|
device: before.dev,
|
|
399
464
|
inode: before.ino,
|
|
400
465
|
links: before.nlink,
|
|
@@ -409,7 +474,7 @@ function nativeHookTransactionSnapshotsEqual(left, right) {
|
|
|
409
474
|
}
|
|
410
475
|
function nativeHookTransactionSnapshotMatchesExpected(snapshot, expected) {
|
|
411
476
|
return (hookTransactionBytesEqual(snapshot.bytes, expected.bytes) &&
|
|
412
|
-
|
|
477
|
+
nativeHookTransactionTopologyMatchesDuringReadback(expected.topology, snapshot.topology));
|
|
413
478
|
}
|
|
414
479
|
function nativeHookTransactionOutputTopology(before, after) {
|
|
415
480
|
if (after === null)
|
|
@@ -579,10 +644,10 @@ function nativeHookTransactionClaimPath(path) {
|
|
|
579
644
|
nativeHookTransactionSequence += 1;
|
|
580
645
|
return join(dirname(path), `.${basename(path)}.omx-claim-${process.pid}-${nativeHookTransactionSequence}.tmp`);
|
|
581
646
|
}
|
|
582
|
-
async function restoreNativeHookClaim(claimPath, destinationPath) {
|
|
583
|
-
await restoreNativeHookClaimNoClobber(claimPath, destinationPath);
|
|
647
|
+
async function restoreNativeHookClaim(claimPath, destinationPath, tracker) {
|
|
648
|
+
recordRegularFileSyncOutcome(tracker, await restoreNativeHookClaimNoClobber(claimPath, destinationPath, tracker));
|
|
584
649
|
}
|
|
585
|
-
async function atomicWriteNativeHookTransactionArtifact(artifact, content, stage, expectedCurrent, ancestorPrecondition, onWriteApplied, onWriteStabilized, assertApplied) {
|
|
650
|
+
async function atomicWriteNativeHookTransactionArtifact(artifact, content, stage, expectedCurrent, ancestorPrecondition, tracker, onWriteApplied, onWriteStabilized, assertApplied) {
|
|
586
651
|
const temporaryPath = nativeHookTransactionTemporaryPath(artifact.path, "write");
|
|
587
652
|
let temporaryCreated = false;
|
|
588
653
|
let temporarySnapshot;
|
|
@@ -609,7 +674,7 @@ async function atomicWriteNativeHookTransactionArtifact(artifact, content, stage
|
|
|
609
674
|
temporaryCreated = true;
|
|
610
675
|
try {
|
|
611
676
|
await handle.writeFile(content);
|
|
612
|
-
await handle
|
|
677
|
+
recordRegularFileSyncOutcome(tracker, await syncNativeHookRegularFile(handle));
|
|
613
678
|
}
|
|
614
679
|
finally {
|
|
615
680
|
await handle.close();
|
|
@@ -641,19 +706,19 @@ async function atomicWriteNativeHookTransactionArtifact(artifact, content, stage
|
|
|
641
706
|
!claimRelativePath.startsWith(`..${sep}`);
|
|
642
707
|
if (expectedCurrent.bytes !== null) {
|
|
643
708
|
if (canJournalClaim) {
|
|
644
|
-
await persistNativeHookClaimJournal(ancestorPrecondition.controlledRoot, {
|
|
709
|
+
recordRegularFileSyncOutcome(tracker, await persistNativeHookClaimJournal(ancestorPrecondition.controlledRoot, {
|
|
645
710
|
canonicalPath: artifact.path,
|
|
646
711
|
claimPath,
|
|
647
712
|
before: expectedCurrent.bytes,
|
|
648
713
|
after: content,
|
|
649
|
-
});
|
|
714
|
+
}, tracker));
|
|
650
715
|
await refreshNativeHookTransactionAncestorPrecondition(ancestorPrecondition, join(ancestorPrecondition.controlledRoot, ".omx", "native-hook-claim-journal.json"));
|
|
651
716
|
journaledClaim = true;
|
|
652
717
|
}
|
|
653
718
|
await rename(artifact.path, claimPath);
|
|
654
719
|
claimCreated = true;
|
|
655
720
|
if (journaledClaim)
|
|
656
|
-
await syncNativeHookClaimParent(claimPath);
|
|
721
|
+
await syncNativeHookClaimParent(claimPath, tracker);
|
|
657
722
|
await assertNativeHookTransactionArtifactSnapshot(claimPath, `${artifact.label} replacement claim`, expectedCurrent, stage === "write" ? "precondition" : "rollback");
|
|
658
723
|
}
|
|
659
724
|
await copyFile(temporaryPath, artifact.path, constants.COPYFILE_EXCL);
|
|
@@ -662,20 +727,20 @@ async function atomicWriteNativeHookTransactionArtifact(artifact, content, stage
|
|
|
662
727
|
}
|
|
663
728
|
const installedHandle = await open(artifact.path, "r");
|
|
664
729
|
try {
|
|
665
|
-
await installedHandle
|
|
730
|
+
recordRegularFileSyncOutcome(tracker, await syncNativeHookRegularFile(installedHandle));
|
|
666
731
|
}
|
|
667
732
|
finally {
|
|
668
733
|
await installedHandle.close();
|
|
669
734
|
}
|
|
670
|
-
await syncNativeHookClaimParent(artifact.path);
|
|
735
|
+
await syncNativeHookClaimParent(artifact.path, tracker);
|
|
671
736
|
const installedSnapshot = await assertNativeHookTransactionArtifactState(artifact.path, artifact.label, { bytes: content, topology: artifact.afterTopology }, stage === "write" ? "precondition" : "rollback");
|
|
672
737
|
if (claimCreated && claimPath) {
|
|
673
738
|
await rm(claimPath);
|
|
674
|
-
await syncNativeHookClaimParent(claimPath);
|
|
739
|
+
await syncNativeHookClaimParent(claimPath, tracker);
|
|
675
740
|
claimCreated = false;
|
|
676
741
|
}
|
|
677
742
|
if (journaledClaim) {
|
|
678
|
-
await clearNativeHookClaimJournal(ancestorPrecondition.controlledRoot);
|
|
743
|
+
await clearNativeHookClaimJournal(ancestorPrecondition.controlledRoot, tracker);
|
|
679
744
|
journaledClaim = false;
|
|
680
745
|
}
|
|
681
746
|
await rm(temporaryPath);
|
|
@@ -690,11 +755,11 @@ async function atomicWriteNativeHookTransactionArtifact(artifact, content, stage
|
|
|
690
755
|
catch (error) {
|
|
691
756
|
if (claimCreated && claimPath) {
|
|
692
757
|
try {
|
|
693
|
-
await restoreNativeHookClaim(claimPath, artifact.path);
|
|
694
|
-
await syncNativeHookClaimParent(artifact.path);
|
|
758
|
+
await restoreNativeHookClaim(claimPath, artifact.path, tracker);
|
|
759
|
+
await syncNativeHookClaimParent(artifact.path, tracker);
|
|
695
760
|
claimCreated = false;
|
|
696
761
|
if (journaledClaim) {
|
|
697
|
-
await clearNativeHookClaimJournal(ancestorPrecondition.controlledRoot);
|
|
762
|
+
await clearNativeHookClaimJournal(ancestorPrecondition.controlledRoot, tracker);
|
|
698
763
|
journaledClaim = false;
|
|
699
764
|
}
|
|
700
765
|
}
|
|
@@ -769,12 +834,12 @@ async function assertNativeHookTransactionRollbackState(applied) {
|
|
|
769
834
|
await assertNativeHookTransactionStagedRecoveryCopies(applied);
|
|
770
835
|
await assertAppliedNativeHookTransactionSnapshots(applied);
|
|
771
836
|
}
|
|
772
|
-
async function applyNativeHookTransactionArtifact(artifact, ancestorPrecondition, applied) {
|
|
837
|
+
async function applyNativeHookTransactionArtifact(artifact, ancestorPrecondition, tracker, applied) {
|
|
773
838
|
await assertNativeHookTransactionArtifactSnapshot(artifact.path, artifact.label, artifact.before, "precondition");
|
|
774
839
|
await assertNativeHookTransactionAncestorPrecondition(ancestorPrecondition);
|
|
775
840
|
if (artifact.after !== null) {
|
|
776
841
|
let entry;
|
|
777
|
-
await atomicWriteNativeHookTransactionArtifact(artifact, artifact.after, "write", artifact.before, ancestorPrecondition, (appliedSnapshot) => {
|
|
842
|
+
await atomicWriteNativeHookTransactionArtifact(artifact, artifact.after, "write", artifact.before, ancestorPrecondition, tracker, (appliedSnapshot) => {
|
|
778
843
|
entry = { artifact, appliedSnapshot };
|
|
779
844
|
applied.push(entry);
|
|
780
845
|
}, (stabilizedSnapshot) => {
|
|
@@ -803,7 +868,7 @@ async function applyNativeHookTransactionArtifact(artifact, ancestorPrecondition
|
|
|
803
868
|
stagedDeletionCreated = true;
|
|
804
869
|
try {
|
|
805
870
|
await handle.writeFile(artifact.before.bytes);
|
|
806
|
-
await handle
|
|
871
|
+
recordRegularFileSyncOutcome(tracker, await syncNativeHookRegularFile(handle));
|
|
807
872
|
}
|
|
808
873
|
finally {
|
|
809
874
|
await handle.close();
|
|
@@ -825,16 +890,16 @@ async function applyNativeHookTransactionArtifact(artifact, ancestorPrecondition
|
|
|
825
890
|
claimRelativePath !== ".." &&
|
|
826
891
|
!claimRelativePath.startsWith(`..${sep}`);
|
|
827
892
|
if (journaledClaim) {
|
|
828
|
-
await persistNativeHookClaimJournal(ancestorPrecondition.controlledRoot, {
|
|
893
|
+
recordRegularFileSyncOutcome(tracker, await persistNativeHookClaimJournal(ancestorPrecondition.controlledRoot, {
|
|
829
894
|
canonicalPath: artifact.path,
|
|
830
895
|
claimPath,
|
|
831
896
|
before: artifact.before.bytes,
|
|
832
897
|
after: null,
|
|
833
|
-
});
|
|
898
|
+
}, tracker));
|
|
834
899
|
}
|
|
835
900
|
await rename(artifact.path, claimPath);
|
|
836
901
|
if (journaledClaim)
|
|
837
|
-
await syncNativeHookClaimParent(claimPath);
|
|
902
|
+
await syncNativeHookClaimParent(claimPath, tracker);
|
|
838
903
|
const entry = {
|
|
839
904
|
artifact,
|
|
840
905
|
appliedSnapshot: { bytes: null, topology: { kind: "absent" } },
|
|
@@ -849,11 +914,11 @@ async function applyNativeHookTransactionArtifact(artifact, ancestorPrecondition
|
|
|
849
914
|
catch (error) {
|
|
850
915
|
try {
|
|
851
916
|
const claimed = await captureNativeHookTransactionArtifact(claimPath, `${artifact.label} removal claim`);
|
|
852
|
-
await restoreNativeHookClaim(claimPath, artifact.path);
|
|
917
|
+
await restoreNativeHookClaim(claimPath, artifact.path, tracker);
|
|
853
918
|
if (journaledClaim)
|
|
854
|
-
await syncNativeHookClaimParent(artifact.path);
|
|
919
|
+
await syncNativeHookClaimParent(artifact.path, tracker);
|
|
855
920
|
if (journaledClaim) {
|
|
856
|
-
await clearNativeHookClaimJournal(ancestorPrecondition.controlledRoot);
|
|
921
|
+
await clearNativeHookClaimJournal(ancestorPrecondition.controlledRoot, tracker);
|
|
857
922
|
}
|
|
858
923
|
await assertNativeHookTransactionArtifactSnapshot(artifact.path, artifact.label, claimed, "precondition");
|
|
859
924
|
const entryIndex = applied.indexOf(entry);
|
|
@@ -867,9 +932,9 @@ async function applyNativeHookTransactionArtifact(artifact, ancestorPrecondition
|
|
|
867
932
|
}
|
|
868
933
|
await rm(claimPath);
|
|
869
934
|
if (journaledClaim)
|
|
870
|
-
await syncNativeHookClaimParent(claimPath);
|
|
935
|
+
await syncNativeHookClaimParent(claimPath, tracker);
|
|
871
936
|
if (journaledClaim) {
|
|
872
|
-
await clearNativeHookClaimJournal(ancestorPrecondition.controlledRoot);
|
|
937
|
+
await clearNativeHookClaimJournal(ancestorPrecondition.controlledRoot, tracker);
|
|
873
938
|
}
|
|
874
939
|
originalRemoved = true;
|
|
875
940
|
injectNativeHookTransactionFailure("after_remove", artifact);
|
|
@@ -890,7 +955,7 @@ async function applyNativeHookTransactionArtifact(artifact, ancestorPrecondition
|
|
|
890
955
|
}
|
|
891
956
|
catch (claimError) {
|
|
892
957
|
try {
|
|
893
|
-
await restoreNativeHookClaim(claimPath, stagedDeletionPath);
|
|
958
|
+
await restoreNativeHookClaim(claimPath, stagedDeletionPath, tracker);
|
|
894
959
|
}
|
|
895
960
|
catch (recoveryError) {
|
|
896
961
|
throw new Error(`Native hook transaction staged deletion cleanup claim failed (${claimError instanceof Error ? claimError.message : String(claimError)}) and preserved ${claimPath} for manual recovery: ${recoveryError instanceof Error ? recoveryError.message : String(recoveryError)}`);
|
|
@@ -928,7 +993,7 @@ async function verifyNativeHookTransactionArtifact(applied) {
|
|
|
928
993
|
if (artifact.kind === "config")
|
|
929
994
|
TOML.parse(content);
|
|
930
995
|
}
|
|
931
|
-
async function restoreNativeHookTransactionArtifact(applied, ancestorPrecondition, assertRollbackState) {
|
|
996
|
+
async function restoreNativeHookTransactionArtifact(applied, ancestorPrecondition, tracker, assertRollbackState) {
|
|
932
997
|
const { artifact } = applied;
|
|
933
998
|
const current = await captureNativeHookTransactionArtifact(artifact.path, artifact.label);
|
|
934
999
|
if (!nativeHookTransactionSnapshotsEqual(current, applied.appliedSnapshot)) {
|
|
@@ -950,7 +1015,7 @@ async function restoreNativeHookTransactionArtifact(applied, ancestorPreconditio
|
|
|
950
1015
|
catch (error) {
|
|
951
1016
|
try {
|
|
952
1017
|
const claimed = await captureNativeHookTransactionArtifact(claimPath, `${artifact.label} rollback removal claim`);
|
|
953
|
-
await restoreNativeHookClaim(claimPath, artifact.path);
|
|
1018
|
+
await restoreNativeHookClaim(claimPath, artifact.path, tracker);
|
|
954
1019
|
await assertNativeHookTransactionArtifactSnapshot(artifact.path, artifact.label, claimed, "rollback");
|
|
955
1020
|
}
|
|
956
1021
|
catch (recoveryError) {
|
|
@@ -966,7 +1031,7 @@ async function restoreNativeHookTransactionArtifact(applied, ancestorPreconditio
|
|
|
966
1031
|
after: artifact.before.bytes,
|
|
967
1032
|
afterTopology: artifact.before.topology,
|
|
968
1033
|
};
|
|
969
|
-
await atomicWriteNativeHookTransactionArtifact(restoreArtifact, artifact.before.bytes, "rollback", applied.appliedSnapshot, ancestorPrecondition, (restoredSnapshot) => {
|
|
1034
|
+
await atomicWriteNativeHookTransactionArtifact(restoreArtifact, artifact.before.bytes, "rollback", applied.appliedSnapshot, ancestorPrecondition, tracker, (restoredSnapshot) => {
|
|
970
1035
|
applied.appliedSnapshot = restoredSnapshot;
|
|
971
1036
|
}, (stabilizedSnapshot) => {
|
|
972
1037
|
applied.appliedSnapshot = stabilizedSnapshot;
|
|
@@ -980,7 +1045,7 @@ async function restoreNativeHookTransactionArtifact(applied, ancestorPreconditio
|
|
|
980
1045
|
throw new Error(`Native hook transaction rollback preserved ${artifact.path} for manual recovery because ${artifact.label} no longer matches the expected restored version.`);
|
|
981
1046
|
}
|
|
982
1047
|
}
|
|
983
|
-
async function cleanupNativeHookTransactionStagedDeletions(applied, ancestorPrecondition, preconditions, rollbackApplied) {
|
|
1048
|
+
async function cleanupNativeHookTransactionStagedDeletions(applied, ancestorPrecondition, tracker, preconditions, rollbackApplied) {
|
|
984
1049
|
for (const entry of applied) {
|
|
985
1050
|
if (!entry.stagedDeletionPath ||
|
|
986
1051
|
!entry.stagedDeletionSnapshot ||
|
|
@@ -1006,7 +1071,7 @@ async function cleanupNativeHookTransactionStagedDeletions(applied, ancestorPrec
|
|
|
1006
1071
|
}
|
|
1007
1072
|
catch (error) {
|
|
1008
1073
|
try {
|
|
1009
|
-
await restoreNativeHookClaim(claimPath, stagedDeletionPath);
|
|
1074
|
+
await restoreNativeHookClaim(claimPath, stagedDeletionPath, tracker);
|
|
1010
1075
|
}
|
|
1011
1076
|
catch (recoveryError) {
|
|
1012
1077
|
throw new Error(`Native hook transaction staged deletion cleanup claim failed (${error instanceof Error ? error.message : String(error)}) and preserved ${claimPath} for manual recovery: ${recoveryError instanceof Error ? recoveryError.message : String(recoveryError)}`);
|
|
@@ -1027,7 +1092,7 @@ function nativeHookTransactionBackupPath(artifactPath, backupContext) {
|
|
|
1027
1092
|
: relativePath;
|
|
1028
1093
|
return join(backupContext.backupRoot, safeRelativePath);
|
|
1029
1094
|
}
|
|
1030
|
-
async function ensureSnapshotBackup(artifact, backupContext, options) {
|
|
1095
|
+
async function ensureSnapshotBackup(artifact, backupContext, options, tracker) {
|
|
1031
1096
|
const bytes = artifact.before.bytes;
|
|
1032
1097
|
if (bytes === null)
|
|
1033
1098
|
return false;
|
|
@@ -1061,7 +1126,7 @@ async function ensureSnapshotBackup(artifact, backupContext, options) {
|
|
|
1061
1126
|
const handle = await open(backupPath, "wx", 0o600);
|
|
1062
1127
|
try {
|
|
1063
1128
|
await handle.writeFile(bytes);
|
|
1064
|
-
await handle
|
|
1129
|
+
recordRegularFileSyncOutcome(tracker, await syncNativeHookRegularFile(handle));
|
|
1065
1130
|
}
|
|
1066
1131
|
finally {
|
|
1067
1132
|
await handle.close();
|
|
@@ -1080,7 +1145,7 @@ async function ensureSnapshotBackup(artifact, backupContext, options) {
|
|
|
1080
1145
|
}
|
|
1081
1146
|
return true;
|
|
1082
1147
|
}
|
|
1083
|
-
async function commitNativeHookTransaction(artifacts, preconditions, ancestorPrecondition, backupContext, summary, options) {
|
|
1148
|
+
async function commitNativeHookTransaction(artifacts, preconditions, ancestorPrecondition, backupContext, tracker, summary, options) {
|
|
1084
1149
|
if (options.dryRun)
|
|
1085
1150
|
return;
|
|
1086
1151
|
await assertNativeHookTransactionAncestorPrecondition(ancestorPrecondition);
|
|
@@ -1092,7 +1157,7 @@ async function commitNativeHookTransaction(artifacts, preconditions, ancestorPre
|
|
|
1092
1157
|
return;
|
|
1093
1158
|
for (const artifact of artifacts) {
|
|
1094
1159
|
injectNativeHookTransactionFailure("before_backup", artifact);
|
|
1095
|
-
if (await ensureSnapshotBackup(artifact, backupContext, options)) {
|
|
1160
|
+
if (await ensureSnapshotBackup(artifact, backupContext, options, tracker)) {
|
|
1096
1161
|
summary.backedUp += 1;
|
|
1097
1162
|
}
|
|
1098
1163
|
}
|
|
@@ -1104,7 +1169,7 @@ async function commitNativeHookTransaction(artifacts, preconditions, ancestorPre
|
|
|
1104
1169
|
for (const artifact of artifacts) {
|
|
1105
1170
|
await assertUnmutatedNativeHookTransactionPreconditions(preconditions, applied);
|
|
1106
1171
|
await assertAppliedNativeHookTransactionSnapshots(applied);
|
|
1107
|
-
const entry = await applyNativeHookTransactionArtifact(artifact, ancestorPrecondition, applied);
|
|
1172
|
+
const entry = await applyNativeHookTransactionArtifact(artifact, ancestorPrecondition, tracker, applied);
|
|
1108
1173
|
await verifyNativeHookTransactionArtifact(entry);
|
|
1109
1174
|
await assertUnmutatedNativeHookTransactionPreconditions(preconditions, applied);
|
|
1110
1175
|
await assertAppliedNativeHookTransactionSnapshots(applied);
|
|
@@ -1112,7 +1177,7 @@ async function commitNativeHookTransaction(artifacts, preconditions, ancestorPre
|
|
|
1112
1177
|
await assertUnmutatedNativeHookTransactionPreconditions(preconditions, applied);
|
|
1113
1178
|
await assertAppliedNativeHookTransactionSnapshots(applied);
|
|
1114
1179
|
stagedCleanupStarted = true;
|
|
1115
|
-
await cleanupNativeHookTransactionStagedDeletions(applied, ancestorPrecondition, preconditions);
|
|
1180
|
+
await cleanupNativeHookTransactionStagedDeletions(applied, ancestorPrecondition, tracker, preconditions);
|
|
1116
1181
|
injectNativeHookTransactionFailure("after_staged_cleanup", artifacts[artifacts.length - 1]);
|
|
1117
1182
|
await assertUnmutatedNativeHookTransactionPreconditions(preconditions, applied);
|
|
1118
1183
|
await assertNativeHookTransactionAncestorPrecondition(ancestorPrecondition);
|
|
@@ -1135,7 +1200,7 @@ async function commitNativeHookTransaction(artifacts, preconditions, ancestorPre
|
|
|
1135
1200
|
for (const entry of [...applied].reverse()) {
|
|
1136
1201
|
try {
|
|
1137
1202
|
await assertNativeHookTransactionRollbackState(applied);
|
|
1138
|
-
await restoreNativeHookTransactionArtifact(entry, ancestorPrecondition, () => assertNativeHookTransactionRollbackState(applied));
|
|
1203
|
+
await restoreNativeHookTransactionArtifact(entry, ancestorPrecondition, tracker, () => assertNativeHookTransactionRollbackState(applied));
|
|
1139
1204
|
restored.push(entry);
|
|
1140
1205
|
await assertNativeHookTransactionRollbackState(applied);
|
|
1141
1206
|
}
|
|
@@ -1147,7 +1212,7 @@ async function commitNativeHookTransaction(artifacts, preconditions, ancestorPre
|
|
|
1147
1212
|
if (rollbackFailures.length === 0) {
|
|
1148
1213
|
try {
|
|
1149
1214
|
await assertNativeHookTransactionRollbackState(applied);
|
|
1150
|
-
await cleanupNativeHookTransactionStagedDeletions(restored, ancestorPrecondition, undefined, applied);
|
|
1215
|
+
await cleanupNativeHookTransactionStagedDeletions(restored, ancestorPrecondition, tracker, undefined, applied);
|
|
1151
1216
|
await assertNativeHookTransactionRollbackState(applied);
|
|
1152
1217
|
}
|
|
1153
1218
|
catch (cleanupError) {
|
|
@@ -2391,7 +2456,12 @@ export async function setup(options = {}) {
|
|
|
2391
2456
|
process.env[SKIP_NATIVE_AGENT_REFRESH_ENV] === "1";
|
|
2392
2457
|
const scopeDirs = resolveScopeDirectories(resolvedScope.scope, projectRoot);
|
|
2393
2458
|
if (!dryRun) {
|
|
2394
|
-
|
|
2459
|
+
const recoveryTracker = { degraded: false };
|
|
2460
|
+
const recovery = await recoverNativeHookClaimJournal(scopeDirs.codexHomeDir, nativeHookClaimJournalDurability(recoveryTracker));
|
|
2461
|
+
recordRegularFileSyncOutcome(recoveryTracker, recovery.outcome);
|
|
2462
|
+
if (recovery.recovered) {
|
|
2463
|
+
emitDegradedDurabilityWarning("native-hook claim-journal recovery", recoveryTracker);
|
|
2464
|
+
}
|
|
2395
2465
|
}
|
|
2396
2466
|
const nativeHookTransactionPlatform = nativeHookPlatform();
|
|
2397
2467
|
let nativeHookTransactionAncestorPrecondition = await captureNativeHookTransactionAncestorPrecondition(scopeDirs.codexHomeDir, [
|
|
@@ -3078,7 +3148,9 @@ export async function setup(options = {}) {
|
|
|
3078
3148
|
setupLatePhaseFailureInjector?.();
|
|
3079
3149
|
nativeHookTransactionAncestorPrecondition =
|
|
3080
3150
|
await captureNativeHookTransactionAncestorPrecondition(scopeDirs.codexHomeDir, nativeHookSetupTransaction.artifacts.map((artifact) => artifact.path));
|
|
3081
|
-
|
|
3151
|
+
const nativeHookSetupDurabilityTracker = { degraded: false };
|
|
3152
|
+
await commitNativeHookTransaction(nativeHookSetupTransaction.artifacts, nativeHookSetupTransaction.preconditions, nativeHookTransactionAncestorPrecondition, backupContext, nativeHookSetupDurabilityTracker, summary.config, { dryRun, verbose });
|
|
3153
|
+
emitDegradedDurabilityWarning("native-hook setup", nativeHookSetupDurabilityTracker);
|
|
3082
3154
|
console.log('Setup complete! Run "omx doctor" to verify installation.');
|
|
3083
3155
|
console.log("\nNext steps:");
|
|
3084
3156
|
console.log(" 1. Start Codex CLI in your project directory");
|