oh-my-codex 0.20.1 → 0.20.3
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 +7 -6
- package/Cargo.toml +1 -1
- package/README.md +36 -1
- package/crates/omx-runtime/Cargo.toml +1 -0
- package/crates/omx-runtime/src/main.rs +25 -2
- package/crates/omx-runtime/tests/execution.rs +219 -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__/hermes.test.js.map +1 -1
- package/dist/adapt/contracts.d.ts.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.d.ts +2 -0
- package/dist/auth/__tests__/hotswap.test.d.ts.map +1 -0
- package/dist/auth/__tests__/hotswap.test.js +183 -0
- package/dist/auth/__tests__/hotswap.test.js.map +1 -0
- package/dist/auth/hotswap.d.ts +6 -0
- package/dist/auth/hotswap.d.ts.map +1 -1
- package/dist/auth/hotswap.js +102 -19
- package/dist/auth/hotswap.js.map +1 -1
- package/dist/auth/paths.js.map +1 -1
- package/dist/auth/storage.js.map +1 -1
- package/dist/autopilot/__tests__/ralplan-gate.test.js +5 -5
- package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -1
- package/dist/autopilot/completion-gate.js.map +1 -1
- package/dist/autopilot/fsm.d.ts +1 -1
- package/dist/autopilot/fsm.d.ts.map +1 -1
- package/dist/autoresearch/goal.js.map +1 -1
- package/dist/autoresearch/runtime.js.map +1 -1
- package/dist/capabilities/lockfile.js.map +1 -1
- package/dist/catalog/reader.js.map +1 -1
- package/dist/catalog/skill-mirror.js.map +1 -1
- package/dist/cli/__tests__/adapt-help.test.js.map +1 -1
- package/dist/cli/__tests__/agents-init.test.js.map +1 -1
- package/dist/cli/__tests__/agents.test.js.map +1 -1
- package/dist/cli/__tests__/api.test.js.map +1 -1
- package/dist/cli/__tests__/ask.test.js.map +1 -1
- package/dist/cli/__tests__/auth.test.js +60 -6
- package/dist/cli/__tests__/auth.test.js.map +1 -1
- package/dist/cli/__tests__/autoresearch-guided.test.js.map +1 -1
- package/dist/cli/__tests__/autoresearch.test.js.map +1 -1
- package/dist/cli/__tests__/capabilities.test.js.map +1 -1
- package/dist/cli/__tests__/codex-plugin-layout.test.js +80 -0
- package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-context-window-warning.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-invalid-config.test.js +47 -4
- package/dist/cli/__tests__/doctor-invalid-config.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-team.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-warning-copy.test.js +752 -15
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/exec.test.js +136 -0
- package/dist/cli/__tests__/exec.test.js.map +1 -1
- package/dist/cli/__tests__/imagegen-continuation.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +473 -14
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js +336 -4
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/__tests__/mcp-parity.test.js +87 -12
- package/dist/cli/__tests__/mcp-parity.test.js.map +1 -1
- package/dist/cli/__tests__/native-hook-claim-journal.test.d.ts +2 -0
- package/dist/cli/__tests__/native-hook-claim-journal.test.d.ts.map +1 -0
- package/dist/cli/__tests__/native-hook-claim-journal.test.js +206 -0
- package/dist/cli/__tests__/native-hook-claim-journal.test.js.map +1 -0
- package/dist/cli/__tests__/nested-help-routing.test.js.map +1 -1
- package/dist/cli/__tests__/question.test.js.map +1 -1
- package/dist/cli/__tests__/ralph-deslop-contract.test.js.map +1 -1
- package/dist/cli/__tests__/ralph-goal-mode-contract.test.js +6 -0
- package/dist/cli/__tests__/ralph-goal-mode-contract.test.js.map +1 -1
- package/dist/cli/__tests__/ralph-prd-deep-interview.test.js.map +1 -1
- package/dist/cli/__tests__/ralph-prd-smoke.test.js.map +1 -1
- package/dist/cli/__tests__/ralph.test.js +8 -3
- package/dist/cli/__tests__/ralph.test.js.map +1 -1
- package/dist/cli/__tests__/ralplan-bootstrap-3181.test.d.ts +2 -0
- package/dist/cli/__tests__/ralplan-bootstrap-3181.test.d.ts.map +1 -0
- package/dist/cli/__tests__/ralplan-bootstrap-3181.test.js +72 -0
- package/dist/cli/__tests__/ralplan-bootstrap-3181.test.js.map +1 -0
- package/dist/cli/__tests__/ralplan.test.d.ts +2 -0
- package/dist/cli/__tests__/ralplan.test.d.ts.map +1 -0
- package/dist/cli/__tests__/ralplan.test.js +55 -0
- package/dist/cli/__tests__/ralplan.test.js.map +1 -0
- package/dist/cli/__tests__/resume.test.js +17 -11
- package/dist/cli/__tests__/resume.test.js.map +1 -1
- package/dist/cli/__tests__/session-scoped-runtime.test.js +25 -0
- 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__/session-search.test.js.map +1 -1
- package/dist/cli/__tests__/setup-agents-overwrite.test.js +79 -0
- package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/setup-gh-star.test.js.map +1 -1
- package/dist/cli/__tests__/setup-hooks-shared-ownership.test.js +77 -3
- package/dist/cli/__tests__/setup-hooks-shared-ownership.test.js.map +1 -1
- package/dist/cli/__tests__/setup-hooks-trust-e2e.test.d.ts +2 -0
- package/dist/cli/__tests__/setup-hooks-trust-e2e.test.d.ts.map +1 -0
- package/dist/cli/__tests__/setup-hooks-trust-e2e.test.js +285 -0
- package/dist/cli/__tests__/setup-hooks-trust-e2e.test.js.map +1 -0
- package/dist/cli/__tests__/setup-install-mode.test.js +2579 -294
- package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
- package/dist/cli/__tests__/setup-preferences.test.d.ts +2 -0
- package/dist/cli/__tests__/setup-preferences.test.d.ts.map +1 -0
- package/dist/cli/__tests__/setup-preferences.test.js +79 -0
- package/dist/cli/__tests__/setup-preferences.test.js.map +1 -0
- package/dist/cli/__tests__/setup-refresh.test.js +33 -2
- package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
- package/dist/cli/__tests__/setup-scope.test.js +46 -3
- package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
- package/dist/cli/__tests__/sparkshell-cli.test.js.map +1 -1
- package/dist/cli/__tests__/state.test.js +37 -0
- package/dist/cli/__tests__/state.test.js.map +1 -1
- package/dist/cli/__tests__/team.test.js +105 -7
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/__tests__/ultragoal.test.js +61 -1
- package/dist/cli/__tests__/ultragoal.test.js.map +1 -1
- package/dist/cli/__tests__/uninstall.test.js +1817 -24
- package/dist/cli/__tests__/uninstall.test.js.map +1 -1
- package/dist/cli/__tests__/update.test.js +58 -0
- package/dist/cli/__tests__/update.test.js.map +1 -1
- package/dist/cli/__tests__/url.test.js.map +1 -1
- package/dist/cli/__tests__/windows-popup-loop-contract.test.js +2 -1
- package/dist/cli/__tests__/windows-popup-loop-contract.test.js.map +1 -1
- package/dist/cli/adapt.js.map +1 -1
- package/dist/cli/agents-init.js.map +1 -1
- package/dist/cli/agents.js.map +1 -1
- package/dist/cli/api.js.map +1 -1
- package/dist/cli/ask.d.ts +1 -1
- package/dist/cli/ask.d.ts.map +1 -1
- package/dist/cli/ask.js.map +1 -1
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/autoresearch-guided.js.map +1 -1
- package/dist/cli/autoresearch-intake.js.map +1 -1
- package/dist/cli/capabilities.js.map +1 -1
- package/dist/cli/cleanup.js.map +1 -1
- package/dist/cli/codex-feature-probe.js.map +1 -1
- package/dist/cli/codex-home.js.map +1 -1
- package/dist/cli/doctor.d.ts +21 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +607 -130
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/explore.js.map +1 -1
- package/dist/cli/index.d.ts +14 -3
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +245 -57
- 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/mcp-serve.js.map +1 -1
- package/dist/cli/mission.js.map +1 -1
- package/dist/cli/native-assets.js.map +1 -1
- package/dist/cli/native-hook-claim-journal.d.ts +29 -0
- package/dist/cli/native-hook-claim-journal.d.ts.map +1 -0
- package/dist/cli/native-hook-claim-journal.js +252 -0
- package/dist/cli/native-hook-claim-journal.js.map +1 -0
- package/dist/cli/omx.js.map +1 -1
- package/dist/cli/plugin-marketplace.js.map +1 -1
- package/dist/cli/project-runtime-codex-homes.js.map +1 -1
- package/dist/cli/question.js.map +1 -1
- package/dist/cli/ralph.d.ts.map +1 -1
- package/dist/cli/ralph.js +3 -2
- package/dist/cli/ralph.js.map +1 -1
- package/dist/cli/ralplan.d.ts +10 -0
- package/dist/cli/ralplan.d.ts.map +1 -0
- package/dist/cli/ralplan.js +110 -0
- package/dist/cli/ralplan.js.map +1 -0
- 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 +11 -0
- package/dist/cli/setup-preferences.d.ts.map +1 -1
- package/dist/cli/setup-preferences.js +32 -0
- package/dist/cli/setup-preferences.js.map +1 -1
- package/dist/cli/setup.d.ts +58 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +1450 -398
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/sparkshell.js.map +1 -1
- package/dist/cli/star-prompt.js.map +1 -1
- package/dist/cli/state.d.ts.map +1 -1
- package/dist/cli/state.js +2 -1
- package/dist/cli/state.js.map +1 -1
- package/dist/cli/team.js.map +1 -1
- package/dist/cli/ultragoal.d.ts +5 -1
- package/dist/cli/ultragoal.d.ts.map +1 -1
- package/dist/cli/ultragoal.js +34 -2
- package/dist/cli/ultragoal.js.map +1 -1
- package/dist/cli/uninstall.d.ts +17 -0
- package/dist/cli/uninstall.d.ts.map +1 -1
- package/dist/cli/uninstall.js +986 -95
- package/dist/cli/uninstall.js.map +1 -1
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +8 -1
- package/dist/cli/update.js.map +1 -1
- package/dist/cli/url.js.map +1 -1
- package/dist/compat/__tests__/doctor-contract.test.js +5 -1
- package/dist/compat/__tests__/doctor-contract.test.js.map +1 -1
- package/dist/compat/__tests__/rust-runtime-compat.test.js +1 -1
- package/dist/compat/__tests__/rust-runtime-compat.test.js.map +1 -1
- package/dist/config/__tests__/codex-hooks.test.js +1287 -11
- package/dist/config/__tests__/codex-hooks.test.js.map +1 -1
- package/dist/config/__tests__/generator-idempotent.test.js +1179 -32
- package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
- package/dist/config/__tests__/generator-notify.test.js +6 -1
- 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/codex-feature-flags.d.ts.map +1 -1
- package/dist/config/codex-feature-flags.js.map +1 -1
- package/dist/config/codex-hooks.d.ts +124 -1
- package/dist/config/codex-hooks.d.ts.map +1 -1
- package/dist/config/codex-hooks.js +2142 -265
- package/dist/config/codex-hooks.js.map +1 -1
- package/dist/config/commit-lore-guard.js.map +1 -1
- package/dist/config/generator.d.ts +23 -34
- package/dist/config/generator.d.ts.map +1 -1
- package/dist/config/generator.js +1480 -246
- package/dist/config/generator.js.map +1 -1
- package/dist/config/mcp-registry.js.map +1 -1
- package/dist/config/models.d.ts +14 -4
- 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/config/omx-first-party-mcp.js.map +1 -1
- package/dist/config/team-mode.d.ts.map +1 -1
- package/dist/document-refresh/__tests__/enforcer.test.js.map +1 -1
- package/dist/document-refresh/enforcer.js.map +1 -1
- package/dist/exec/followup.js.map +1 -1
- package/dist/goal-workflows/artifacts.js.map +1 -1
- package/dist/hooks/__tests__/agents-overlay.test.js +7 -4
- package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
- package/dist/hooks/__tests__/analyze-routing-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/analyze-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/anti-slop-workflow.test.js.map +1 -1
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js +9 -3
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/code-review-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/consensus-execution-handoff.test.js.map +1 -1
- package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/design-skill.test.js.map +1 -1
- package/dist/hooks/__tests__/keyword-detector.test.js +1376 -6
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js +252 -543
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +38 -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 +765 -10
- package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js +2 -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 +142 -1
- package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-modules.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-non-omx-guard.test.js +48 -2
- package/dist/hooks/__tests__/notify-hook-non-omx-guard.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js +61 -44
- package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-regression-205.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.js +3 -2
- package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-session-scope.test.js +243 -4
- package/dist/hooks/__tests__/notify-hook-session-scope.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +531 -12
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +163 -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-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-visual-verdict.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +43 -4
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/openclaw-setup-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/pre-context-gate-skills.test.js.map +1 -1
- package/dist/hooks/__tests__/prometheus-strict-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/prompt-guidance-fragments.test.js.map +1 -1
- package/dist/hooks/__tests__/prompt-guidance-test-helpers.js.map +1 -1
- package/dist/hooks/__tests__/prompt-session-provenance.test.d.ts +2 -0
- package/dist/hooks/__tests__/prompt-session-provenance.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/prompt-session-provenance.test.js +82 -0
- package/dist/hooks/__tests__/prompt-session-provenance.test.js.map +1 -0
- package/dist/hooks/__tests__/session.test.js +878 -11
- package/dist/hooks/__tests__/session.test.js.map +1 -1
- package/dist/hooks/__tests__/skill-catalog-hygiene.test.js.map +1 -1
- package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/visual-ralph-skill.test.js.map +1 -1
- package/dist/hooks/__tests__/visual-verdict-loop.test.js.map +1 -1
- package/dist/hooks/agents-overlay.js +5 -5
- package/dist/hooks/agents-overlay.js.map +1 -1
- package/dist/hooks/code-simplifier/index.js.map +1 -1
- package/dist/hooks/explore-routing.js.map +1 -1
- package/dist/hooks/extensibility/dispatcher.js.map +1 -1
- package/dist/hooks/extensibility/events.js.map +1 -1
- package/dist/hooks/extensibility/loader.js.map +1 -1
- package/dist/hooks/extensibility/plugin-runner-stdin.js.map +1 -1
- package/dist/hooks/extensibility/sdk/logging.js.map +1 -1
- package/dist/hooks/keyword-detector.d.ts +33 -7
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +2228 -119
- package/dist/hooks/keyword-detector.js.map +1 -1
- package/dist/hooks/keyword-registry.d.ts +12 -0
- package/dist/hooks/keyword-registry.d.ts.map +1 -1
- package/dist/hooks/keyword-registry.js +41 -0
- package/dist/hooks/keyword-registry.js.map +1 -1
- package/dist/hooks/prompt-session-provenance.d.ts +87 -0
- package/dist/hooks/prompt-session-provenance.d.ts.map +1 -0
- package/dist/hooks/prompt-session-provenance.js +180 -0
- package/dist/hooks/prompt-session-provenance.js.map +1 -0
- package/dist/hooks/session.d.ts +163 -34
- package/dist/hooks/session.d.ts.map +1 -1
- package/dist/hooks/session.js +1395 -317
- package/dist/hooks/session.js.map +1 -1
- package/dist/hooks/task-size-detector.js.map +1 -1
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/authority.js.map +1 -1
- package/dist/hud/constants.js.map +1 -1
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/reconcile.js.map +1 -1
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/tmux.js.map +1 -1
- package/dist/leader/__tests__/contract.test.js +153 -1
- package/dist/leader/__tests__/contract.test.js.map +1 -1
- package/dist/leader/contract.d.ts +42 -5
- package/dist/leader/contract.d.ts.map +1 -1
- package/dist/leader/contract.js +184 -3
- package/dist/leader/contract.js.map +1 -1
- package/dist/mcp/__tests__/bootstrap.test.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__/server-lifecycle.test.js +15 -2
- package/dist/mcp/__tests__/server-lifecycle.test.js.map +1 -1
- package/dist/mcp/__tests__/state-paths.test.js +98 -1
- package/dist/mcp/__tests__/state-paths.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/bootstrap.js.map +1 -1
- package/dist/mcp/code-intel-server.d.ts +58 -58
- 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.js.map +1 -1
- package/dist/mcp/hermes-server.d.ts +70 -70
- package/dist/mcp/hermes-server.d.ts.map +1 -1
- package/dist/mcp/lifecycle-telemetry.js.map +1 -1
- package/dist/mcp/memory-server.d.ts +34 -34
- package/dist/mcp/memory-server.d.ts.map +1 -1
- package/dist/mcp/memory-server.js.map +1 -1
- package/dist/mcp/state-paths.d.ts +14 -0
- package/dist/mcp/state-paths.d.ts.map +1 -1
- package/dist/mcp/state-paths.js +96 -20
- package/dist/mcp/state-paths.js.map +1 -1
- package/dist/mcp/state-server.d.ts +47 -47
- package/dist/mcp/state-server.d.ts.map +1 -1
- package/dist/mcp/trace-server.d.ts +4 -4
- package/dist/mcp/trace-server.d.ts.map +1 -1
- package/dist/mcp/trace-server.js.map +1 -1
- package/dist/mcp/wiki-server.d.ts +34 -23
- 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-session-scope.test.js +53 -1
- 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.map +1 -1
- package/dist/modes/base.js +5 -5
- package/dist/modes/base.js.map +1 -1
- package/dist/notifications/__tests__/lifecycle-dedupe.test.js.map +1 -1
- package/dist/notifications/__tests__/reply-listener.test.js.map +1 -1
- package/dist/notifications/__tests__/session-idle-tail-dedupe.test.js +177 -85
- package/dist/notifications/__tests__/session-idle-tail-dedupe.test.js.map +1 -1
- package/dist/notifications/__tests__/session-registry.test.js.map +1 -1
- package/dist/notifications/__tests__/template-engine.test.js.map +1 -1
- package/dist/notifications/__tests__/verbosity.test.js.map +1 -1
- package/dist/notifications/http-client.js.map +1 -1
- package/dist/notifications/index.d.ts +4 -1
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +3 -9
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/lifecycle-dedupe.js.map +1 -1
- package/dist/notifications/reply-listener.d.ts.map +1 -1
- package/dist/notifications/reply-listener.js.map +1 -1
- package/dist/notifications/session-registry.js.map +1 -1
- package/dist/notifications/session-status.js.map +1 -1
- 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/notifications/tmux-detector.js.map +1 -1
- package/dist/notifications/tmux.js.map +1 -1
- package/dist/openclaw/config.js.map +1 -1
- package/dist/openclaw/dispatcher.js.map +1 -1
- package/dist/pipeline/__tests__/orchestrator.test.js +4 -4
- package/dist/pipeline/__tests__/orchestrator.test.js.map +1 -1
- package/dist/pipeline/__tests__/stages.test.js +16 -13
- package/dist/pipeline/__tests__/stages.test.js.map +1 -1
- package/dist/pipeline/stages/code-review.js.map +1 -1
- package/dist/pipeline/stages/ralph-verify.js.map +1 -1
- package/dist/pipeline/stages/ralplan.js.map +1 -1
- package/dist/pipeline/stages/team-exec.js.map +1 -1
- package/dist/pipeline/stages/ultragoal.js.map +1 -1
- package/dist/pipeline/stages/ultraqa.js.map +1 -1
- package/dist/planning/__tests__/approved-execution-lifecycle-matrix.test.js.map +1 -1
- package/dist/planning/artifact-names.js.map +1 -1
- package/dist/planning/artifacts.js.map +1 -1
- package/dist/question/__tests__/state.test.js.map +1 -1
- package/dist/question/__tests__/ui.test.js.map +1 -1
- package/dist/question/autopilot-wait.js.map +1 -1
- package/dist/question/client.d.ts.map +1 -1
- package/dist/question/client.js.map +1 -1
- package/dist/question/deep-interview.js.map +1 -1
- package/dist/question/events.js.map +1 -1
- package/dist/question/renderer.js.map +1 -1
- package/dist/question/state.d.ts.map +1 -1
- package/dist/question/state.js.map +1 -1
- package/dist/question/ui.js.map +1 -1
- package/dist/ralph/contract.d.ts +1 -1
- package/dist/ralph/contract.d.ts.map +1 -1
- package/dist/ralplan/__tests__/consensus-gate.test.js +527 -8
- 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 +46 -0
- package/dist/ralplan/__tests__/documented-leader-preflight.test.js.map +1 -0
- package/dist/ralplan/__tests__/runtime.test.js +116 -14
- package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
- package/dist/ralplan/consensus-gate.d.ts +3 -3
- package/dist/ralplan/consensus-gate.d.ts.map +1 -1
- package/dist/ralplan/consensus-gate.js +173 -70
- package/dist/ralplan/consensus-gate.js.map +1 -1
- package/dist/ralplan/documented-leader-preflight.d.ts +34 -0
- package/dist/ralplan/documented-leader-preflight.d.ts.map +1 -0
- package/dist/ralplan/documented-leader-preflight.js +58 -0
- package/dist/ralplan/documented-leader-preflight.js.map +1 -0
- package/dist/ralplan/runtime.d.ts +3 -2
- package/dist/ralplan/runtime.d.ts.map +1 -1
- package/dist/ralplan/runtime.js +12 -9
- 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/process-tree.js.map +1 -1
- package/dist/runtime/run-loop.js.map +1 -1
- package/dist/runtime/run-outcome.d.ts +3 -3
- package/dist/runtime/run-outcome.d.ts.map +1 -1
- package/dist/runtime/run-outcome.js.map +1 -1
- package/dist/runtime/run-state.js.map +1 -1
- package/dist/scripts/__tests__/codex-native-hook.test.js +6657 -995
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/__tests__/fixtures/issue-3138-installed-smoke.d.ts +2 -0
- package/dist/scripts/__tests__/fixtures/issue-3138-installed-smoke.d.ts.map +1 -0
- package/dist/scripts/__tests__/fixtures/issue-3138-installed-smoke.js +634 -0
- package/dist/scripts/__tests__/fixtures/issue-3138-installed-smoke.js.map +1 -0
- package/dist/scripts/__tests__/generate-release-body.test.js.map +1 -1
- package/dist/scripts/__tests__/hook-derived-watcher.test.js.map +1 -1
- package/dist/scripts/__tests__/notify-dispatcher.test.js.map +1 -1
- package/dist/scripts/__tests__/notify-fallback-delivery.test.d.ts +2 -0
- package/dist/scripts/__tests__/notify-fallback-delivery.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/notify-fallback-delivery.test.js +174 -0
- package/dist/scripts/__tests__/notify-fallback-delivery.test.js.map +1 -0
- package/dist/scripts/__tests__/notify-state-io.test.js +57 -1
- package/dist/scripts/__tests__/notify-state-io.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.d.ts +2 -0
- package/dist/scripts/__tests__/role-intent-bootstrap-e2e-3181.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/role-intent-bootstrap-e2e-3181.test.js +78 -0
- package/dist/scripts/__tests__/role-intent-bootstrap-e2e-3181.test.js.map +1 -0
- package/dist/scripts/__tests__/role-intent-durable-recovery-3181.test.d.ts +2 -0
- package/dist/scripts/__tests__/role-intent-durable-recovery-3181.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/role-intent-durable-recovery-3181.test.js +55 -0
- package/dist/scripts/__tests__/role-intent-durable-recovery-3181.test.js.map +1 -0
- package/dist/scripts/__tests__/run-test-files.test.js.map +1 -1
- package/dist/scripts/__tests__/smoke-packed-install.test.js +1100 -4
- package/dist/scripts/__tests__/smoke-packed-install.test.js.map +1 -1
- package/dist/scripts/__tests__/test-reply-listener-live.test.js.map +1 -1
- package/dist/scripts/build-api.js.map +1 -1
- package/dist/scripts/build-explore-harness.js.map +1 -1
- package/dist/scripts/build-sparkshell.js.map +1 -1
- package/dist/scripts/cleanup-explore-harness.js.map +1 -1
- package/dist/scripts/codex-execution-surface.js.map +1 -1
- package/dist/scripts/codex-native-hook.d.ts +4 -1
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +11577 -1184
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/scripts/generate-native-release-manifest.js.map +1 -1
- package/dist/scripts/generate-release-body.js.map +1 -1
- package/dist/scripts/hook-payload-guard.d.ts.map +1 -1
- package/dist/scripts/hook-payload-guard.js.map +1 -1
- package/dist/scripts/notify-fallback-delivery.d.ts +48 -0
- package/dist/scripts/notify-fallback-delivery.d.ts.map +1 -0
- package/dist/scripts/notify-fallback-delivery.js +419 -0
- package/dist/scripts/notify-fallback-delivery.js.map +1 -0
- package/dist/scripts/notify-fallback-watcher.js +218 -138
- package/dist/scripts/notify-fallback-watcher.js.map +1 -1
- package/dist/scripts/notify-hook/auto-nudge.d.ts +18 -9
- package/dist/scripts/notify-hook/auto-nudge.d.ts.map +1 -1
- package/dist/scripts/notify-hook/auto-nudge.js +112 -15
- package/dist/scripts/notify-hook/auto-nudge.js.map +1 -1
- package/dist/scripts/notify-hook/managed-tmux.d.ts +23 -0
- package/dist/scripts/notify-hook/managed-tmux.d.ts.map +1 -1
- package/dist/scripts/notify-hook/managed-tmux.js +122 -12
- package/dist/scripts/notify-hook/managed-tmux.js.map +1 -1
- package/dist/scripts/notify-hook/orchestration-intent.d.ts +7 -7
- package/dist/scripts/notify-hook/orchestration-intent.d.ts.map +1 -1
- package/dist/scripts/notify-hook/ralph-session-resume.d.ts +5 -2
- package/dist/scripts/notify-hook/ralph-session-resume.d.ts.map +1 -1
- package/dist/scripts/notify-hook/ralph-session-resume.js +33 -37
- package/dist/scripts/notify-hook/ralph-session-resume.js.map +1 -1
- package/dist/scripts/notify-hook/state-io.d.ts +17 -0
- package/dist/scripts/notify-hook/state-io.d.ts.map +1 -1
- package/dist/scripts/notify-hook/state-io.js +73 -11
- package/dist/scripts/notify-hook/state-io.js.map +1 -1
- package/dist/scripts/notify-hook/team-dispatch.d.ts +10 -1
- 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 +2 -2
- package/dist/scripts/notify-hook/team-leader-nudge.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-leader-nudge.js +39 -13
- package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -1
- package/dist/scripts/notify-hook/team-tmux-guard.d.ts +16 -8
- 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-posttooluse.js.map +1 -1
- package/dist/scripts/notify-hook/team-worker-stop.d.ts +1 -1
- package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-worker-stop.js +19 -18
- package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
- package/dist/scripts/notify-hook/team-worker.d.ts +5 -2
- package/dist/scripts/notify-hook/team-worker.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-worker.js +37 -28
- package/dist/scripts/notify-hook/team-worker.js.map +1 -1
- package/dist/scripts/notify-hook/tmux-injection.d.ts +8 -1
- package/dist/scripts/notify-hook/tmux-injection.d.ts.map +1 -1
- package/dist/scripts/notify-hook/tmux-injection.js +53 -18
- package/dist/scripts/notify-hook/tmux-injection.js.map +1 -1
- package/dist/scripts/notify-hook/visual-verdict.d.ts +1 -1
- package/dist/scripts/notify-hook/visual-verdict.d.ts.map +1 -1
- package/dist/scripts/notify-hook/visual-verdict.js +15 -13
- package/dist/scripts/notify-hook/visual-verdict.js.map +1 -1
- package/dist/scripts/notify-hook.d.ts +24 -1
- package/dist/scripts/notify-hook.d.ts.map +1 -1
- package/dist/scripts/notify-hook.js +267 -90
- package/dist/scripts/notify-hook.js.map +1 -1
- package/dist/scripts/postinstall.js.map +1 -1
- package/dist/scripts/prompt-inventory.js.map +1 -1
- package/dist/scripts/smoke-packed-install.d.ts +927 -5
- package/dist/scripts/smoke-packed-install.d.ts.map +1 -1
- package/dist/scripts/smoke-packed-install.js +4317 -13
- package/dist/scripts/smoke-packed-install.js.map +1 -1
- package/dist/scripts/sync-plugin-mirror.js.map +1 -1
- package/dist/scripts/test-reply-listener-live.js.map +1 -1
- package/dist/scripts/test-sparkshell.js.map +1 -1
- package/dist/scripts/verify-native-agents.js.map +1 -1
- package/dist/session-history/friction.js.map +1 -1
- package/dist/session-history/search.js.map +1 -1
- package/dist/sidecar/__tests__/boundary.test.js.map +1 -1
- package/dist/sidecar/collector.js.map +1 -1
- package/dist/sidecar/index.js.map +1 -1
- package/dist/sidecar/render.js.map +1 -1
- package/dist/sidecar/tmux.js.map +1 -1
- package/dist/state/__tests__/mode-state-context.test.js +54 -0
- package/dist/state/__tests__/mode-state-context.test.js.map +1 -1
- package/dist/state/__tests__/operations.test.js +66 -15
- package/dist/state/__tests__/operations.test.js.map +1 -1
- package/dist/state/__tests__/skill-active.test.js +19 -1
- package/dist/state/__tests__/skill-active.test.js.map +1 -1
- package/dist/state/__tests__/workflow-transition.test.js +61 -0
- package/dist/state/__tests__/workflow-transition.test.js.map +1 -1
- package/dist/state/mode-state-context.d.ts +5 -0
- package/dist/state/mode-state-context.d.ts.map +1 -1
- package/dist/state/mode-state-context.js +59 -0
- package/dist/state/mode-state-context.js.map +1 -1
- package/dist/state/operations.d.ts +1 -1
- package/dist/state/operations.d.ts.map +1 -1
- package/dist/state/operations.js +49 -55
- package/dist/state/operations.js.map +1 -1
- package/dist/state/paths.d.ts +1 -1
- package/dist/state/paths.d.ts.map +1 -1
- package/dist/state/paths.js +1 -1
- package/dist/state/paths.js.map +1 -1
- package/dist/state/skill-active.d.ts +13 -1
- package/dist/state/skill-active.d.ts.map +1 -1
- package/dist/state/skill-active.js +43 -4
- package/dist/state/skill-active.js.map +1 -1
- package/dist/state/terminal-normalization.js.map +1 -1
- package/dist/state/workflow-transition-reconcile.d.ts.map +1 -1
- package/dist/state/workflow-transition-reconcile.js +20 -4
- package/dist/state/workflow-transition-reconcile.js.map +1 -1
- package/dist/state/workflow-transition.d.ts +1 -1
- package/dist/state/workflow-transition.d.ts.map +1 -1
- package/dist/state/workflow-transition.js.map +1 -1
- package/dist/subagents/__tests__/leader-bootstrap-3181.test.d.ts +2 -0
- package/dist/subagents/__tests__/leader-bootstrap-3181.test.d.ts.map +1 -0
- package/dist/subagents/__tests__/leader-bootstrap-3181.test.js +52 -0
- package/dist/subagents/__tests__/leader-bootstrap-3181.test.js.map +1 -0
- package/dist/subagents/__tests__/tracker.test.js +1550 -10
- package/dist/subagents/__tests__/tracker.test.js.map +1 -1
- package/dist/subagents/role-routing-marker.d.ts +10 -0
- package/dist/subagents/role-routing-marker.d.ts.map +1 -0
- package/dist/subagents/role-routing-marker.js +136 -0
- package/dist/subagents/role-routing-marker.js.map +1 -0
- package/dist/subagents/tracker.d.ts +91 -0
- package/dist/subagents/tracker.d.ts.map +1 -1
- package/dist/subagents/tracker.js +806 -62
- 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__/approved-execution.test.js.map +1 -1
- package/dist/team/__tests__/delivery-e2e-smoke.test.js +52 -10
- 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 +93 -27
- package/dist/team/__tests__/mcp-comm.test.js.map +1 -1
- package/dist/team/__tests__/model-contract.test.js +341 -4
- package/dist/team/__tests__/model-contract.test.js.map +1 -1
- package/dist/team/__tests__/role-router.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 +3624 -355
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/scaling.test.js +2516 -118
- package/dist/team/__tests__/scaling.test.js.map +1 -1
- 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 +3664 -969
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/tmux-test-fixture.js.map +1 -1
- package/dist/team/__tests__/worker-runtime-identity.test.js +38 -2
- 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 +2 -2
- 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/commit-hygiene.js.map +1 -1
- package/dist/team/contracts.d.ts +5 -5
- package/dist/team/contracts.d.ts.map +1 -1
- package/dist/team/delivery-log.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/followup-planner.js.map +1 -1
- package/dist/team/goal-workflow.js.map +1 -1
- 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 +18 -2
- package/dist/team/model-contract.d.ts.map +1 -1
- package/dist/team/model-contract.js +314 -35
- package/dist/team/model-contract.js.map +1 -1
- package/dist/team/orchestrator.js.map +1 -1
- package/dist/team/pane-status.js.map +1 -1
- package/dist/team/phase-controller.js.map +1 -1
- package/dist/team/reminder-intents.d.ts +1 -1
- package/dist/team/reminder-intents.d.ts.map +1 -1
- package/dist/team/reminder-intents.js.map +1 -1
- package/dist/team/runtime-cli.js.map +1 -1
- package/dist/team/runtime.d.ts +1 -0
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +1326 -231
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/scaling.d.ts +22 -8
- package/dist/team/scaling.d.ts.map +1 -1
- package/dist/team/scaling.js +1463 -376
- package/dist/team/scaling.js.map +1 -1
- package/dist/team/state/dispatch-lock.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/events.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/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-root.js.map +1 -1
- package/dist/team/state.d.ts +67 -1
- package/dist/team/state.d.ts.map +1 -1
- package/dist/team/state.js +636 -129
- package/dist/team/state.js.map +1 -1
- package/dist/team/team-identity.d.ts.map +1 -1
- package/dist/team/team-identity.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 +125 -23
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +1340 -333
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/worker-bootstrap.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.map +1 -1
- package/dist/ultragoal/__tests__/docs-contract.test.js.map +1 -1
- package/dist/ultragoal/artifacts.d.ts.map +1 -1
- package/dist/ultragoal/artifacts.js +4 -1
- package/dist/ultragoal/artifacts.js.map +1 -1
- package/dist/url-reader/index.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 +57 -0
- package/dist/utils/__tests__/file-durability.test.js.map +1 -0
- package/dist/utils/agents-model-table.js.map +1 -1
- package/dist/utils/file-durability.d.ts +15 -0
- package/dist/utils/file-durability.d.ts.map +1 -0
- package/dist/utils/file-durability.js +37 -0
- package/dist/utils/file-durability.js.map +1 -0
- package/dist/utils/package.js.map +1 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/platform-command.js.map +1 -1
- package/dist/utils/repo-deps.js.map +1 -1
- package/dist/utils/version.js.map +1 -1
- package/dist/verification/__tests__/ci-rust-gates.test.js +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/verifier.js.map +1 -1
- package/dist/visual/constants.d.ts +1 -1
- package/dist/visual/constants.d.ts.map +1 -1
- package/dist/vscode/__tests__/index.test.js.map +1 -1
- package/dist/vscode/index.js.map +1 -1
- package/dist/wiki/__tests__/cjk-tokenize.test.js.map +1 -1
- package/dist/wiki/__tests__/lint.test.js.map +1 -1
- package/dist/wiki/__tests__/query.test.js.map +1 -1
- package/dist/wiki/__tests__/storage.test.js.map +1 -1
- package/dist/wiki/__tests__/test-helpers.d.ts.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/dist/wiki/query.js.map +1 -1
- package/dist/wiki/storage.js.map +1 -1
- package/package.json +2 -2
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/oh-my-codex/hooks/codex-native-hook.mjs +24 -0
- package/plugins/oh-my-codex/skills/omx-setup/SKILL.md +10 -5
- package/plugins/oh-my-codex/skills/ralph/SKILL.md +6 -2
- package/plugins/oh-my-codex/skills/ralplan/SKILL.md +6 -2
- package/plugins/oh-my-codex/skills/team/SKILL.md +13 -9
- package/skills/omx-setup/SKILL.md +10 -5
- package/skills/ralph/SKILL.md +6 -2
- package/skills/ralplan/SKILL.md +6 -2
- package/skills/team/SKILL.md +13 -9
- package/src/scripts/__tests__/codex-native-hook.test.ts +20048 -10827
- package/src/scripts/__tests__/fixtures/issue-3138-installed-smoke.ts +734 -0
- package/src/scripts/__tests__/notify-fallback-delivery.test.ts +177 -0
- package/src/scripts/__tests__/notify-state-io.test.ts +73 -0
- package/src/scripts/__tests__/reasoning-artifact-contract.test.ts +129 -0
- package/src/scripts/__tests__/role-intent-bootstrap-e2e-3181.test.ts +78 -0
- package/src/scripts/__tests__/role-intent-durable-recovery-3181.test.ts +60 -0
- package/src/scripts/__tests__/smoke-packed-install.test.ts +1309 -4
- package/src/scripts/codex-native-hook.ts +11429 -1163
- package/src/scripts/notify-fallback-delivery.ts +416 -0
- package/src/scripts/notify-fallback-watcher.ts +216 -155
- package/src/scripts/notify-hook/auto-nudge.ts +113 -14
- package/src/scripts/notify-hook/managed-tmux.ts +149 -12
- package/src/scripts/notify-hook/ralph-session-resume.ts +37 -36
- package/src/scripts/notify-hook/state-io.ts +100 -13
- package/src/scripts/notify-hook/team-dispatch.ts +242 -75
- package/src/scripts/notify-hook/team-leader-nudge.ts +40 -18
- package/src/scripts/notify-hook/team-tmux-guard.ts +366 -39
- package/src/scripts/notify-hook/team-worker-stop.ts +20 -16
- package/src/scripts/notify-hook/team-worker.ts +39 -26
- package/src/scripts/notify-hook/tmux-injection.ts +66 -23
- package/src/scripts/notify-hook/visual-verdict.ts +22 -12
- package/src/scripts/notify-hook.ts +336 -90
- package/src/scripts/smoke-packed-install.ts +5154 -149
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { type SessionPointerReadResult } from './session.js';
|
|
2
|
+
export type PromptProducer = 'native' | 'notify';
|
|
3
|
+
export type PromptProvenanceRejectReason = 'payload_session_invalid' | 'owner_env_invalid' | 'payload_session_absent' | 'selected_pointer_unusable' | 'owner_env_unbound' | 'notify_fork_missing' | 'foreign_child' | 'ambiguous_child';
|
|
4
|
+
export type PromptOwnershipRejectReason = 'owner_conflict' | 'target_owner_mismatch' | 'target_owner_disagreement' | 'legacy_adoption_denied';
|
|
5
|
+
export type PromptThreadClassification = {
|
|
6
|
+
readonly kind: 'root-or-drift';
|
|
7
|
+
} | {
|
|
8
|
+
readonly kind: 'target-child';
|
|
9
|
+
readonly rootOwnerSessionId: string;
|
|
10
|
+
readonly proof: 'spawn' | 'transcript' | 'tracker';
|
|
11
|
+
} | {
|
|
12
|
+
readonly kind: 'foreign-child';
|
|
13
|
+
readonly rootOwnerSessionId: string;
|
|
14
|
+
readonly proof: 'spawn' | 'transcript' | 'tracker';
|
|
15
|
+
} | {
|
|
16
|
+
readonly kind: 'ambiguous-child';
|
|
17
|
+
readonly rootOwnerSessionIds: readonly string[];
|
|
18
|
+
} | {
|
|
19
|
+
readonly kind: 'unknown';
|
|
20
|
+
};
|
|
21
|
+
export interface PromptMutationAuthorization {
|
|
22
|
+
readonly targetSessionId: string;
|
|
23
|
+
readonly ownerCodexSessionId: string;
|
|
24
|
+
readonly allowedOwnerCodexSessionIds: readonly string[];
|
|
25
|
+
readonly allowedStorageSessionIds: readonly string[];
|
|
26
|
+
readonly targetRelation: 'explicit-independent' | 'pointer-alias' | 'pointer-fallback' | 'notify-explicit-existing-fork';
|
|
27
|
+
readonly thread: PromptThreadClassification;
|
|
28
|
+
readonly legacyAdoption: 'allow' | 'deny';
|
|
29
|
+
readonly globalSideEffects: 'allow' | 'suppress';
|
|
30
|
+
}
|
|
31
|
+
export interface PromptDiagnosticDescriptor {
|
|
32
|
+
readonly reason: PromptProvenanceRejectReason | PromptOwnershipRejectReason;
|
|
33
|
+
readonly producer: PromptProducer;
|
|
34
|
+
readonly selectedRootStatus: string;
|
|
35
|
+
readonly relation?: PromptMutationAuthorization['targetRelation'];
|
|
36
|
+
readonly timestamp: string;
|
|
37
|
+
}
|
|
38
|
+
export type ResolvedPromptTurnContext = Readonly<{
|
|
39
|
+
status: 'authorized';
|
|
40
|
+
authorization: PromptMutationAuthorization;
|
|
41
|
+
ownership: Readonly<{
|
|
42
|
+
status: 'compatible' | 'adoptable';
|
|
43
|
+
normalizedOwnerCodexSessionId: string;
|
|
44
|
+
}>;
|
|
45
|
+
}> | Readonly<{
|
|
46
|
+
status: 'suppressed-target-child';
|
|
47
|
+
authorization: PromptMutationAuthorization;
|
|
48
|
+
}> | Readonly<{
|
|
49
|
+
status: 'rejected';
|
|
50
|
+
reason: PromptProvenanceRejectReason | PromptOwnershipRejectReason;
|
|
51
|
+
diagnostic: PromptDiagnosticDescriptor;
|
|
52
|
+
}>;
|
|
53
|
+
export interface PromptThreadFacts {
|
|
54
|
+
readonly spawnRootOwnerSessionId?: unknown;
|
|
55
|
+
readonly transcriptRootOwnerSessionId?: unknown;
|
|
56
|
+
readonly trackerRootOwnerSessionIds?: readonly unknown[];
|
|
57
|
+
/** A current-target anchor takes precedence over stale tracker evidence. */
|
|
58
|
+
readonly currentTargetAnchored?: boolean;
|
|
59
|
+
/** Factual raw-thread relation when no trusted child proof exists. */
|
|
60
|
+
readonly rootOrDrift?: boolean;
|
|
61
|
+
}
|
|
62
|
+
export interface EvaluateResolvedPromptTurnInput {
|
|
63
|
+
readonly producer: PromptProducer;
|
|
64
|
+
/** Raw payload P; presence is validated even when malformed. */
|
|
65
|
+
readonly payloadSessionId?: unknown;
|
|
66
|
+
/** Raw E; presence is validated even when malformed. */
|
|
67
|
+
readonly ownerEnvSessionId?: unknown;
|
|
68
|
+
readonly selectedPointer: Pick<SessionPointerReadResult, 'status' | 'state'>;
|
|
69
|
+
/** Neutral, validated `sessions/E` stat fact supplied only by notify. */
|
|
70
|
+
readonly forkScopeExists?: boolean;
|
|
71
|
+
readonly threadFacts?: PromptThreadFacts;
|
|
72
|
+
readonly nowIso?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface SelectedTargetOwnerEvidence {
|
|
75
|
+
readonly ownerCodexSessionId?: unknown;
|
|
76
|
+
readonly targetSessionId?: unknown;
|
|
77
|
+
}
|
|
78
|
+
export declare function extractSelectedTargetOwnerEvidence(value: unknown): readonly SelectedTargetOwnerEvidence[];
|
|
79
|
+
export declare function classifyPromptThread(facts: PromptThreadFacts | undefined, ownerIds: readonly string[]): PromptThreadClassification;
|
|
80
|
+
/**
|
|
81
|
+
* The sole provenance policy evaluator. It is pure: callers supply selected-root
|
|
82
|
+
* facts and may call this once before any ownership-sensitive read or effect.
|
|
83
|
+
*/
|
|
84
|
+
export declare function evaluateResolvedPromptTurn(input: EvaluateResolvedPromptTurnInput): ResolvedPromptTurnContext;
|
|
85
|
+
/** Read-only selected-target owner preflight; no path discovery or mutation. */
|
|
86
|
+
export declare function preflightSelectedTargetOwner(context: ResolvedPromptTurnContext, evidence: readonly SelectedTargetOwnerEvidence[], producer?: PromptProducer, nowIso?: string): ResolvedPromptTurnContext;
|
|
87
|
+
//# sourceMappingURL=prompt-session-provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-session-provenance.d.ts","sourceRoot":"","sources":["../../src/hooks/prompt-session-provenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { normalizeSessionId } from './session.js';
|
|
2
|
+
export function extractSelectedTargetOwnerEvidence(value) {
|
|
3
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
4
|
+
return Object.freeze([{ ownerCodexSessionId: {} }]);
|
|
5
|
+
}
|
|
6
|
+
const record = value;
|
|
7
|
+
const evidence = [{
|
|
8
|
+
ownerCodexSessionId: record.owner_codex_session_id,
|
|
9
|
+
targetSessionId: record.session_id,
|
|
10
|
+
}];
|
|
11
|
+
if (record.active_skills !== undefined) {
|
|
12
|
+
if (!Array.isArray(record.active_skills)) {
|
|
13
|
+
evidence.push({ ownerCodexSessionId: record.active_skills });
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
for (const entry of record.active_skills) {
|
|
17
|
+
if (!entry || typeof entry !== 'object' || Array.isArray(entry)) {
|
|
18
|
+
evidence.push({ ownerCodexSessionId: entry ?? {} });
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const activeEntry = entry;
|
|
22
|
+
evidence.push({
|
|
23
|
+
ownerCodexSessionId: activeEntry.owner_codex_session_id,
|
|
24
|
+
targetSessionId: activeEntry.session_id ?? record.session_id,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return Object.freeze(evidence);
|
|
30
|
+
}
|
|
31
|
+
function orderedUnique(values) {
|
|
32
|
+
return Object.freeze([...new Set(values.filter((value) => Boolean(value)))]);
|
|
33
|
+
}
|
|
34
|
+
function hasRawValue(value) {
|
|
35
|
+
return value !== undefined && value !== null;
|
|
36
|
+
}
|
|
37
|
+
function selectedAliases(state) {
|
|
38
|
+
if (!state)
|
|
39
|
+
return Object.freeze([]);
|
|
40
|
+
return orderedUnique([
|
|
41
|
+
normalizeSessionId(state.session_id),
|
|
42
|
+
normalizeSessionId(state.native_session_id),
|
|
43
|
+
normalizeSessionId(state.previous_native_session_id),
|
|
44
|
+
normalizeSessionId(state.owner_omx_session_id),
|
|
45
|
+
normalizeSessionId(state.owner_codex_session_id),
|
|
46
|
+
]);
|
|
47
|
+
}
|
|
48
|
+
function fallbackOwner(state, canonical) {
|
|
49
|
+
return normalizeSessionId(state.owner_codex_session_id)
|
|
50
|
+
?? normalizeSessionId(state.codex_session_id)
|
|
51
|
+
?? normalizeSessionId(state.native_session_id)
|
|
52
|
+
?? normalizeSessionId(state.previous_native_session_id)
|
|
53
|
+
?? normalizeSessionId(state.owner_omx_session_id)
|
|
54
|
+
?? canonical;
|
|
55
|
+
}
|
|
56
|
+
function diagnostic(reason, producer, selectedRootStatus, relation, nowIso = '') {
|
|
57
|
+
return Object.freeze({
|
|
58
|
+
status: 'rejected',
|
|
59
|
+
reason,
|
|
60
|
+
diagnostic: Object.freeze({ reason, producer, selectedRootStatus, ...(relation ? { relation } : {}), timestamp: nowIso }),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
export function classifyPromptThread(facts, ownerIds) {
|
|
64
|
+
const proofValues = [
|
|
65
|
+
[normalizeSessionId(facts?.spawnRootOwnerSessionId), 'spawn'],
|
|
66
|
+
[normalizeSessionId(facts?.transcriptRootOwnerSessionId), 'transcript'],
|
|
67
|
+
];
|
|
68
|
+
for (const root of facts?.trackerRootOwnerSessionIds ?? [])
|
|
69
|
+
proofValues.push([normalizeSessionId(root), 'tracker']);
|
|
70
|
+
const roots = orderedUnique(proofValues.map(([root]) => root));
|
|
71
|
+
if (roots.length === 0)
|
|
72
|
+
return Object.freeze(facts?.rootOrDrift ? { kind: 'root-or-drift' } : { kind: 'unknown' });
|
|
73
|
+
if (facts?.currentTargetAnchored) {
|
|
74
|
+
return Object.freeze({ kind: 'root-or-drift' });
|
|
75
|
+
}
|
|
76
|
+
if (roots.length > 1)
|
|
77
|
+
return Object.freeze({ kind: 'ambiguous-child', rootOwnerSessionIds: roots });
|
|
78
|
+
const [root] = roots;
|
|
79
|
+
const proof = proofValues.find(([candidate]) => candidate === root)?.[1] ?? 'tracker';
|
|
80
|
+
return ownerIds.includes(root)
|
|
81
|
+
? Object.freeze({ kind: 'target-child', rootOwnerSessionId: root, proof })
|
|
82
|
+
: Object.freeze({ kind: 'foreign-child', rootOwnerSessionId: root, proof });
|
|
83
|
+
}
|
|
84
|
+
function authorization(targetSessionId, ownerCodexSessionId, allowedOwnerCodexSessionIds, allowedStorageSessionIds, targetRelation, globalSideEffects, legacyAdoption, threadFacts) {
|
|
85
|
+
const owners = orderedUnique([...allowedOwnerCodexSessionIds, ownerCodexSessionId]);
|
|
86
|
+
return Object.freeze({
|
|
87
|
+
targetSessionId,
|
|
88
|
+
ownerCodexSessionId,
|
|
89
|
+
allowedOwnerCodexSessionIds: owners,
|
|
90
|
+
allowedStorageSessionIds: orderedUnique([...allowedStorageSessionIds, targetSessionId]),
|
|
91
|
+
targetRelation,
|
|
92
|
+
thread: classifyPromptThread(threadFacts, owners),
|
|
93
|
+
legacyAdoption,
|
|
94
|
+
globalSideEffects,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function finishAuthorization(input, value) {
|
|
98
|
+
if (value.thread.kind === 'target-child')
|
|
99
|
+
return Object.freeze({ status: 'suppressed-target-child', authorization: value });
|
|
100
|
+
if (value.thread.kind === 'foreign-child')
|
|
101
|
+
return diagnostic('foreign_child', input.producer, input.selectedPointer.status, value.targetRelation, input.nowIso);
|
|
102
|
+
if (value.thread.kind === 'ambiguous-child')
|
|
103
|
+
return diagnostic('ambiguous_child', input.producer, input.selectedPointer.status, value.targetRelation, input.nowIso);
|
|
104
|
+
return Object.freeze({
|
|
105
|
+
status: 'authorized',
|
|
106
|
+
authorization: value,
|
|
107
|
+
ownership: Object.freeze({ status: value.legacyAdoption === 'allow' ? 'adoptable' : 'compatible', normalizedOwnerCodexSessionId: value.ownerCodexSessionId }),
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* The sole provenance policy evaluator. It is pure: callers supply selected-root
|
|
112
|
+
* facts and may call this once before any ownership-sensitive read or effect.
|
|
113
|
+
*/
|
|
114
|
+
export function evaluateResolvedPromptTurn(input) {
|
|
115
|
+
const nowIso = input.nowIso;
|
|
116
|
+
const payloadPresent = hasRawValue(input.payloadSessionId);
|
|
117
|
+
const envPresent = hasRawValue(input.ownerEnvSessionId);
|
|
118
|
+
const payload = normalizeSessionId(input.payloadSessionId);
|
|
119
|
+
const ownerEnv = normalizeSessionId(input.ownerEnvSessionId);
|
|
120
|
+
if (payloadPresent && !payload)
|
|
121
|
+
return diagnostic('payload_session_invalid', input.producer, input.selectedPointer.status, undefined, nowIso);
|
|
122
|
+
if (envPresent && !ownerEnv)
|
|
123
|
+
return diagnostic('owner_env_invalid', input.producer, input.selectedPointer.status, undefined, nowIso);
|
|
124
|
+
const state = input.selectedPointer.status === 'usable' ? input.selectedPointer.state : undefined;
|
|
125
|
+
const canonical = normalizeSessionId(state?.session_id);
|
|
126
|
+
const aliases = selectedAliases(state);
|
|
127
|
+
if (payload) {
|
|
128
|
+
if (aliases.includes(payload) && canonical) {
|
|
129
|
+
if (ownerEnv && ownerEnv !== payload && !aliases.includes(ownerEnv)) {
|
|
130
|
+
if (input.producer !== 'notify')
|
|
131
|
+
return diagnostic('owner_env_unbound', input.producer, input.selectedPointer.status, 'pointer-alias', nowIso);
|
|
132
|
+
if (!input.forkScopeExists)
|
|
133
|
+
return diagnostic('notify_fork_missing', input.producer, input.selectedPointer.status, 'pointer-alias', nowIso);
|
|
134
|
+
return finishAuthorization(input, authorization(ownerEnv, payload, [payload, ...aliases], [ownerEnv], 'notify-explicit-existing-fork', 'suppress', 'deny', input.threadFacts));
|
|
135
|
+
}
|
|
136
|
+
return finishAuthorization(input, authorization(canonical, payload, [payload, ...aliases], [canonical, ...aliases], 'pointer-alias', 'allow', 'deny', input.threadFacts));
|
|
137
|
+
}
|
|
138
|
+
if (!ownerEnv || ownerEnv === payload) {
|
|
139
|
+
const globalSideEffects = input.selectedPointer.status === 'absent' ? 'allow' : 'suppress';
|
|
140
|
+
return finishAuthorization(input, authorization(payload, payload, [payload], [payload], 'explicit-independent', globalSideEffects, 'allow', input.threadFacts));
|
|
141
|
+
}
|
|
142
|
+
return diagnostic('owner_env_unbound', input.producer, input.selectedPointer.status, undefined, nowIso);
|
|
143
|
+
}
|
|
144
|
+
if (!state || !canonical)
|
|
145
|
+
return diagnostic(input.selectedPointer.status === 'absent' ? 'payload_session_absent' : 'selected_pointer_unusable', input.producer, input.selectedPointer.status, undefined, nowIso);
|
|
146
|
+
if (ownerEnv && !aliases.includes(ownerEnv))
|
|
147
|
+
return diagnostic('owner_env_unbound', input.producer, input.selectedPointer.status, 'pointer-fallback', nowIso);
|
|
148
|
+
const owner = fallbackOwner(state, canonical);
|
|
149
|
+
return finishAuthorization(input, authorization(canonical, owner, [owner, ...aliases], [canonical, ...aliases], 'pointer-fallback', 'allow', 'allow', input.threadFacts));
|
|
150
|
+
}
|
|
151
|
+
/** Read-only selected-target owner preflight; no path discovery or mutation. */
|
|
152
|
+
export function preflightSelectedTargetOwner(context, evidence, producer = 'native', nowIso = '') {
|
|
153
|
+
if (context.status !== 'authorized')
|
|
154
|
+
return context;
|
|
155
|
+
const { authorization } = context;
|
|
156
|
+
const observedOwners = new Set();
|
|
157
|
+
let adoptable = context.ownership.status === 'adoptable';
|
|
158
|
+
for (const item of evidence) {
|
|
159
|
+
const target = hasRawValue(item.targetSessionId) ? normalizeSessionId(item.targetSessionId) : undefined;
|
|
160
|
+
const owner = hasRawValue(item.ownerCodexSessionId) ? normalizeSessionId(item.ownerCodexSessionId) : undefined;
|
|
161
|
+
if (hasRawValue(item.targetSessionId) && !target)
|
|
162
|
+
return diagnostic('target_owner_mismatch', producer, 'preflight', authorization.targetRelation, nowIso);
|
|
163
|
+
if (target && target !== authorization.targetSessionId)
|
|
164
|
+
return diagnostic('target_owner_mismatch', producer, 'preflight', authorization.targetRelation, nowIso);
|
|
165
|
+
if (hasRawValue(item.ownerCodexSessionId) && !owner)
|
|
166
|
+
return diagnostic('owner_conflict', producer, 'preflight', authorization.targetRelation, nowIso);
|
|
167
|
+
if (owner && !authorization.allowedOwnerCodexSessionIds.includes(owner))
|
|
168
|
+
return diagnostic('owner_conflict', producer, 'preflight', authorization.targetRelation, nowIso);
|
|
169
|
+
if (owner)
|
|
170
|
+
observedOwners.add(owner);
|
|
171
|
+
if (observedOwners.size > 1)
|
|
172
|
+
return diagnostic('target_owner_disagreement', producer, 'preflight', authorization.targetRelation, nowIso);
|
|
173
|
+
if (!owner && target === authorization.targetSessionId && authorization.legacyAdoption === 'deny')
|
|
174
|
+
return diagnostic('legacy_adoption_denied', producer, 'preflight', authorization.targetRelation, nowIso);
|
|
175
|
+
if (!owner && target === authorization.targetSessionId)
|
|
176
|
+
adoptable = true;
|
|
177
|
+
}
|
|
178
|
+
return Object.freeze({ ...context, ownership: Object.freeze({ ...context.ownership, status: adoptable ? 'adoptable' : 'compatible' }) });
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=prompt-session-provenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-session-provenance.js","sourceRoot":"","sources":["../../src/hooks/prompt-session-provenance.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/session.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Tracks session start/end, detects stale sessions from crashed launches,
|
|
5
|
-
* and provides structured logging for session events.
|
|
6
|
-
*/
|
|
1
|
+
import { type StateRootSource } from '../mcp/state-paths.js';
|
|
2
|
+
import type { PromptDiagnosticDescriptor } from './prompt-session-provenance.js';
|
|
3
|
+
import { type RegularFileSyncOutcome } from '../utils/file-durability.js';
|
|
7
4
|
export interface SessionState {
|
|
8
5
|
session_id: string;
|
|
9
6
|
native_session_id?: string;
|
|
@@ -11,6 +8,7 @@ export interface SessionState {
|
|
|
11
8
|
native_session_switched_at?: string;
|
|
12
9
|
owner_omx_session_id?: string;
|
|
13
10
|
owner_codex_session_id?: string;
|
|
11
|
+
codex_session_id?: string;
|
|
14
12
|
started_at: string;
|
|
15
13
|
cwd: string;
|
|
16
14
|
pid: number;
|
|
@@ -20,63 +18,194 @@ export interface SessionState {
|
|
|
20
18
|
tmux_session_name?: string;
|
|
21
19
|
tmux_pane_id?: string;
|
|
22
20
|
}
|
|
21
|
+
export interface SessionPointerContext {
|
|
22
|
+
cwd: string;
|
|
23
|
+
baseStateDir: string;
|
|
24
|
+
rootSource: StateRootSource;
|
|
25
|
+
sessionPath: string;
|
|
26
|
+
lockPath: string;
|
|
27
|
+
}
|
|
28
|
+
export type SessionPointerStatus = 'absent' | 'usable' | 'stale-dead' | 'identity-indeterminate' | 'malformed' | 'foreign-cwd';
|
|
29
|
+
export interface SessionPointerReadResult {
|
|
30
|
+
status: SessionPointerStatus;
|
|
31
|
+
state?: SessionState;
|
|
32
|
+
raw?: string;
|
|
33
|
+
}
|
|
34
|
+
export type SessionPointerTransactionOperation = 'pointer-context-resolve' | 'state-dir-create' | 'lock-acquire' | 'lock-owner-publish' | 'pointer-read' | 'pointer-classify' | 'pointer-temp-write' | 'pointer-fsync' | 'pointer-rename' | 'owner-conflict' | 'precommit-cleanup' | 'lock-release';
|
|
35
|
+
type AttemptedStateRootSource = StateRootSource | 'unresolved';
|
|
36
|
+
type UnusableSessionPointerStatus = 'malformed' | 'foreign-cwd' | 'identity-indeterminate';
|
|
37
|
+
export type SessionPointerCleanupPhase = 'remove-owner-temp' | 'inspect-unpublished-lock' | 'remove-unpublished-lock' | 'remove-pointer-temp' | 'token-check' | 'rename' | 'remove-release-dir';
|
|
38
|
+
export interface SessionPointerSecondaryFailure {
|
|
39
|
+
operation: 'precommit-cleanup' | 'lock-release';
|
|
40
|
+
phase: SessionPointerCleanupPhase;
|
|
41
|
+
ownership: 'held' | 'released' | 'uncertain';
|
|
42
|
+
message: string;
|
|
43
|
+
cause?: unknown;
|
|
44
|
+
evidencePath?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface SessionPointerAbortBase extends Error {
|
|
47
|
+
name: 'SessionPointerLaunchAbort';
|
|
48
|
+
committed: false;
|
|
49
|
+
cwd: string;
|
|
50
|
+
candidateSessionId?: string;
|
|
51
|
+
canonicalSessionId?: string;
|
|
52
|
+
reason: string;
|
|
53
|
+
cause?: unknown;
|
|
54
|
+
}
|
|
55
|
+
export interface SessionPointerContextAbort extends SessionPointerAbortBase {
|
|
56
|
+
code: 'session_pointer_context_failure';
|
|
57
|
+
operation: 'pointer-context-resolve';
|
|
58
|
+
attemptedRootSource: AttemptedStateRootSource;
|
|
59
|
+
pointerPath?: never;
|
|
60
|
+
lockPath?: never;
|
|
61
|
+
rootSource?: never;
|
|
62
|
+
}
|
|
63
|
+
export interface ResolvedSessionPointerAbort extends SessionPointerAbortBase {
|
|
64
|
+
code: 'session_pointer_lock_timeout' | 'session_pointer_lock_recovery_required' | 'session_pointer_unusable' | 'session_pointer_owner_conflict' | 'session_pointer_io_failure';
|
|
65
|
+
operation: Exclude<SessionPointerTransactionOperation, 'pointer-context-resolve'>;
|
|
66
|
+
pointerPath: string;
|
|
67
|
+
lockPath?: string;
|
|
68
|
+
rootSource: StateRootSource;
|
|
69
|
+
pointerStatus?: UnusableSessionPointerStatus;
|
|
70
|
+
lockOwnerStatus?: 'live' | 'dead' | 'reused' | 'identity-indeterminate' | 'missing' | 'malformed';
|
|
71
|
+
primaryOperation?: Exclude<SessionPointerTransactionOperation, 'pointer-context-resolve' | 'precommit-cleanup' | 'lock-release'>;
|
|
72
|
+
secondaryFailures?: readonly SessionPointerSecondaryFailure[];
|
|
73
|
+
}
|
|
74
|
+
export type SessionPointerLaunchAbort = SessionPointerContextAbort | ResolvedSessionPointerAbort;
|
|
23
75
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*/
|
|
27
|
-
export declare function resetSessionMetrics(cwd: string, sessionId?: string): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* Read current session state. Returns null if no session file exists.
|
|
76
|
+
* Convert arbitrary input into a valid session ID without exposing validator
|
|
77
|
+
* exceptions to lifecycle or hook inputs.
|
|
30
78
|
*/
|
|
31
|
-
export declare function
|
|
32
|
-
|
|
33
|
-
export declare function
|
|
34
|
-
export declare function
|
|
79
|
+
export declare function normalizeSessionId(value: unknown): string | undefined;
|
|
80
|
+
/** Resolve the one exact pointer path used by an operation. */
|
|
81
|
+
export declare function resolveSessionPointerContext(cwd: string): SessionPointerContext;
|
|
82
|
+
export declare function isSessionPointerLaunchAbort(error: unknown): error is SessionPointerLaunchAbort;
|
|
35
83
|
interface LinuxProcessIdentity {
|
|
36
84
|
startTicks: number;
|
|
37
85
|
cmdline: string | null;
|
|
38
86
|
}
|
|
39
|
-
interface SessionStaleCheckOptions {
|
|
87
|
+
export interface SessionStaleCheckOptions {
|
|
40
88
|
platform?: NodeJS.Platform;
|
|
41
89
|
isPidAlive?: (pid: number) => boolean;
|
|
42
90
|
readLinuxIdentity?: (pid: number) => LinuxProcessIdentity | null;
|
|
43
91
|
}
|
|
44
|
-
interface SessionStartOptions {
|
|
92
|
+
export interface SessionStartOptions {
|
|
45
93
|
pid?: number;
|
|
46
94
|
platform?: NodeJS.Platform;
|
|
95
|
+
/** @internal Scoped deterministic regular-file fsync seam. */
|
|
96
|
+
regularFileSync?: (platform: NodeJS.Platform) => Promise<void>;
|
|
47
97
|
nativeSessionId?: string;
|
|
48
98
|
previousNativeSessionId?: string;
|
|
49
99
|
nativeSessionSwitchedAt?: string;
|
|
100
|
+
/**
|
|
101
|
+
* Compatibility-only metadata. Alias candidacy always comes from
|
|
102
|
+
* process.env.OMX_SESSION_ID, never from this option.
|
|
103
|
+
*/
|
|
50
104
|
ownerOmxSessionId?: string;
|
|
105
|
+
/** The caller proved the env candidate with actual tmux pane/session tags. */
|
|
106
|
+
ownerAliasVerified?: boolean;
|
|
51
107
|
tmuxSessionName?: string;
|
|
52
108
|
tmuxPaneId?: string;
|
|
109
|
+
context?: SessionPointerContext;
|
|
110
|
+
}
|
|
111
|
+
/** @internal Test-only deterministic transaction seam; do not use outside session tests. */
|
|
112
|
+
export type PidProbeResult = 'alive' | 'dead' | 'indeterminate';
|
|
113
|
+
/** @internal Test-only deterministic transaction seam; do not use outside session tests. */
|
|
114
|
+
export interface SessionPointerFsDependencies {
|
|
115
|
+
mkdir(path: string, options?: {
|
|
116
|
+
recursive?: boolean;
|
|
117
|
+
}): Promise<void>;
|
|
118
|
+
readdir(path: string): Promise<string[]>;
|
|
119
|
+
lstat(path: string): Promise<{
|
|
120
|
+
isDirectory(): boolean;
|
|
121
|
+
isFile(): boolean;
|
|
122
|
+
isSymbolicLink(): boolean;
|
|
123
|
+
}>;
|
|
124
|
+
readFile(path: string, encoding: 'utf8'): Promise<string>;
|
|
125
|
+
writeFile(path: string, data: string, options?: {
|
|
126
|
+
mode?: number;
|
|
127
|
+
flag?: string;
|
|
128
|
+
}): Promise<void>;
|
|
129
|
+
openAndSync(path: string, platform: NodeJS.Platform, regularFileSync?: SessionStartOptions['regularFileSync']): Promise<RegularFileSyncOutcome>;
|
|
130
|
+
rename(from: string, to: string): Promise<void>;
|
|
131
|
+
unlink(path: string): Promise<void>;
|
|
132
|
+
rmdir(path: string): Promise<void>;
|
|
133
|
+
}
|
|
134
|
+
export interface SessionPointerLockInspection {
|
|
135
|
+
status: 'absent' | 'live' | 'dead' | 'reused' | 'identity-indeterminate' | 'missing-owner' | 'malformed' | 'ambiguous' | 'unexpected' | 'symlink' | 'io-error';
|
|
136
|
+
lockPath: string;
|
|
137
|
+
evidenceSource: 'none' | 'owner.json' | 'owner-temp';
|
|
138
|
+
safeToRecover: boolean;
|
|
53
139
|
}
|
|
140
|
+
export interface SessionPointerLockRecovery extends SessionPointerLockInspection {
|
|
141
|
+
action: 'none' | 'quarantined';
|
|
142
|
+
recovered: boolean;
|
|
143
|
+
reason: string;
|
|
144
|
+
quarantinePath?: string;
|
|
145
|
+
}
|
|
146
|
+
/** @internal Test-only deterministic transaction seam; do not use outside session tests. */
|
|
147
|
+
export interface SessionPointerTransactionDependencies {
|
|
148
|
+
fs: SessionPointerFsDependencies;
|
|
149
|
+
nowMs(): number;
|
|
150
|
+
sleep(ms: number): Promise<void>;
|
|
151
|
+
token(): string;
|
|
152
|
+
probePid(pid: number): PidProbeResult;
|
|
153
|
+
readProcessIdentity(pid: number, platform: NodeJS.Platform): {
|
|
154
|
+
status: 'matching' | 'reused' | 'indeterminate';
|
|
155
|
+
startTicks?: number;
|
|
156
|
+
cmdlineHash?: string;
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/** @internal Exposed only so source-module tests can verify default ESRCH handling. */
|
|
160
|
+
export declare function __createDefaultPidProbeForTests(killZero: (pid: number) => void): (pid: number) => PidProbeResult;
|
|
161
|
+
/** @internal Source-module test harness. Always reset after a test. */
|
|
162
|
+
export declare function __setSessionPointerTransactionDependenciesForTests(overrides: Omit<Partial<SessionPointerTransactionDependencies>, 'fs'> & {
|
|
163
|
+
fs?: Partial<SessionPointerFsDependencies>;
|
|
164
|
+
}): void;
|
|
165
|
+
/** @internal Source-module test harness. */
|
|
166
|
+
export declare function __resetSessionPointerTransactionDependenciesForTests(): void;
|
|
54
167
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* - On Linux, require process identity validation (start ticks, optional cmdline).
|
|
58
|
-
* If identity cannot be validated, treat the session as stale.
|
|
168
|
+
* Legacy boolean stale check retained for read compatibility. The pointer
|
|
169
|
+
* classifier below keeps indeterminate liveness distinct from definitely dead.
|
|
59
170
|
*/
|
|
60
171
|
export declare function isSessionStale(state: SessionState, options?: SessionStaleCheckOptions): boolean;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
*/
|
|
172
|
+
export declare function isSessionStateAuthoritativeForCwd(state: SessionState, cwd: string): boolean;
|
|
173
|
+
export declare function isSessionStateUsable(state: SessionState, cwd: string, options?: SessionStaleCheckOptions): boolean;
|
|
174
|
+
/** Read and classify only context.sessionPath; no alternate root is consulted. */
|
|
175
|
+
export declare function readSessionPointer(context: SessionPointerContext): Promise<SessionPointerReadResult>;
|
|
176
|
+
export declare function readSessionStateFromContext(context: SessionPointerContext): Promise<SessionState | null>;
|
|
177
|
+
export declare function readUsableSessionStateFromContext(context: SessionPointerContext): Promise<SessionState | null>;
|
|
178
|
+
/** Read current session state from the exact selected root. */
|
|
179
|
+
export declare function readSessionState(cwd: string): Promise<SessionState | null>;
|
|
180
|
+
export declare function readUsableSessionState(cwd: string, options?: SessionStaleCheckOptions): Promise<SessionState | null>;
|
|
181
|
+
/** Inspect only exact, regular owner evidence in the selected pointer lock. */
|
|
182
|
+
export declare function inspectSessionPointerLock(cwd: string): Promise<SessionPointerLockInspection>;
|
|
183
|
+
/** Explicitly quarantine only a dead, atomically claimed pointer lock; never force recovery. */
|
|
184
|
+
export declare function recoverSessionPointerLock(cwd: string): Promise<SessionPointerLockRecovery>;
|
|
185
|
+
/** Write or merge a wrapper-owned canonical pointer through the exact-root transaction. */
|
|
64
186
|
export declare function writeSessionStart(cwd: string, sessionId: string, options?: SessionStartOptions): Promise<SessionState>;
|
|
65
187
|
/**
|
|
66
|
-
* Reconcile a native
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* session to avoid inheriting stale task-scoped state; when the replaced session
|
|
70
|
-
* belongs to an OMX launch wrapper, retain that wrapper as owner for later
|
|
71
|
-
* archive/cleanup and log the replacement chain.
|
|
188
|
+
* Reconcile a native SessionStart without borrowing another root's pointer.
|
|
189
|
+
* A different native ID retains the existing OMX owner chain, but never binds a
|
|
190
|
+
* new owner alias during that replacement transition.
|
|
72
191
|
*/
|
|
73
192
|
export declare function reconcileNativeSessionStart(cwd: string, nativeSessionId: string, options?: SessionStartOptions): Promise<SessionState>;
|
|
74
193
|
/**
|
|
75
|
-
*
|
|
194
|
+
* Archive first and remove an owned pointer only after that history write
|
|
195
|
+
* succeeds. Present unusable pointer evidence is never repaired or archived.
|
|
196
|
+
*/
|
|
197
|
+
export declare function writeSessionEnd(cwd: string, sessionId: string, options?: Pick<SessionStartOptions, 'context' | 'platform' | 'regularFileSync'>): Promise<void>;
|
|
198
|
+
/** Reset session-scoped HUD/metrics files at launch. */
|
|
199
|
+
export declare function resetSessionMetrics(cwd: string, sessionId?: string): Promise<void>;
|
|
200
|
+
/**
|
|
201
|
+
* Append one redacted provenance rejection to the already-selected state root.
|
|
202
|
+
* This deliberately accepts a resolved context rather than cwd, and never falls
|
|
203
|
+
* back to the ambient root when that exact write fails.
|
|
76
204
|
*/
|
|
77
|
-
export declare function
|
|
205
|
+
export declare function appendPromptSessionProvenanceRejection(context: SessionPointerContext, descriptor: PromptDiagnosticDescriptor): Promise<void>;
|
|
78
206
|
/**
|
|
79
|
-
* Append a
|
|
207
|
+
* Append a root log entry for callers that do not already own a pointer
|
|
208
|
+
* context. Lifecycle transitions use appendToLogAtContext instead.
|
|
80
209
|
*/
|
|
81
210
|
export declare function appendToLog(cwd: string, entry: Record<string, unknown>): Promise<void>;
|
|
82
211
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/hooks/session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/hooks/session.ts"],"names":[],"mappings":"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"}
|