oh-my-codex 0.18.6 → 0.18.8
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 +6 -6
- package/Cargo.toml +1 -1
- package/README.md +59 -10
- package/crates/omx-sparkshell/tests/execution.rs +1 -1
- package/dist/agents/__tests__/definitions.test.js +11 -0
- package/dist/agents/__tests__/definitions.test.js.map +1 -1
- package/dist/agents/__tests__/native-config.test.js +56 -6
- package/dist/agents/__tests__/native-config.test.js.map +1 -1
- package/dist/agents/definitions.d.ts +10 -0
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +5 -1
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/native-config.d.ts +5 -1
- package/dist/agents/native-config.d.ts.map +1 -1
- package/dist/agents/native-config.js +19 -4
- package/dist/agents/native-config.js.map +1 -1
- package/dist/autopilot/__tests__/fsm.test.d.ts +2 -0
- package/dist/autopilot/__tests__/fsm.test.d.ts.map +1 -0
- package/dist/autopilot/__tests__/fsm.test.js +75 -0
- package/dist/autopilot/__tests__/fsm.test.js.map +1 -0
- package/dist/autopilot/__tests__/ralplan-gate.test.d.ts +2 -0
- package/dist/autopilot/__tests__/ralplan-gate.test.d.ts.map +1 -0
- package/dist/autopilot/__tests__/ralplan-gate.test.js +79 -0
- package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -0
- package/dist/autopilot/deep-interview-gate.d.ts +18 -0
- package/dist/autopilot/deep-interview-gate.d.ts.map +1 -0
- package/dist/autopilot/deep-interview-gate.js +256 -0
- package/dist/autopilot/deep-interview-gate.js.map +1 -0
- package/dist/autopilot/fsm.d.ts +13 -0
- package/dist/autopilot/fsm.d.ts.map +1 -0
- package/dist/autopilot/fsm.js +70 -0
- package/dist/autopilot/fsm.js.map +1 -0
- package/dist/autopilot/ralplan-gate.d.ts +17 -0
- package/dist/autopilot/ralplan-gate.d.ts.map +1 -0
- package/dist/autopilot/ralplan-gate.js +61 -0
- package/dist/autopilot/ralplan-gate.js.map +1 -0
- package/dist/cli/__tests__/codex-plugin-layout.test.js +512 -1
- package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-warning-copy.test.js +39 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +83 -7
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js +175 -6
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/__tests__/package-bin-contract.test.js +8 -4
- package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
- package/dist/cli/__tests__/question.test.js +100 -0
- package/dist/cli/__tests__/question.test.js.map +1 -1
- package/dist/cli/__tests__/ralph-goal-mode-contract.test.js +13 -0
- package/dist/cli/__tests__/ralph-goal-mode-contract.test.js.map +1 -1
- package/dist/cli/__tests__/ralph.test.js +14 -0
- package/dist/cli/__tests__/ralph.test.js.map +1 -1
- package/dist/cli/__tests__/setup-install-mode.test.js +89 -0
- package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
- package/dist/cli/__tests__/setup-refresh.test.js +83 -0
- package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
- package/dist/cli/__tests__/state.test.js +21 -0
- package/dist/cli/__tests__/state.test.js.map +1 -1
- package/dist/cli/__tests__/team.test.js +2 -2
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/__tests__/update.test.js +110 -2
- package/dist/cli/__tests__/update.test.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +8 -1
- package/dist/cli/doctor.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 +298 -50
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/plugin-marketplace.d.ts +14 -2
- package/dist/cli/plugin-marketplace.d.ts.map +1 -1
- package/dist/cli/plugin-marketplace.js +62 -15
- package/dist/cli/plugin-marketplace.js.map +1 -1
- package/dist/cli/question.d.ts.map +1 -1
- package/dist/cli/question.js +36 -5
- package/dist/cli/question.js.map +1 -1
- package/dist/cli/ralph.d.ts.map +1 -1
- package/dist/cli/ralph.js +3 -1
- package/dist/cli/ralph.js.map +1 -1
- package/dist/cli/setup-preferences.d.ts +2 -0
- package/dist/cli/setup-preferences.d.ts.map +1 -1
- package/dist/cli/setup-preferences.js +4 -0
- package/dist/cli/setup-preferences.js.map +1 -1
- package/dist/cli/setup.d.ts +3 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +166 -27
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/state.d.ts.map +1 -1
- package/dist/cli/state.js +8 -1
- package/dist/cli/state.js.map +1 -1
- package/dist/cli/tmux-hook.d.ts.map +1 -1
- package/dist/cli/tmux-hook.js +16 -0
- package/dist/cli/tmux-hook.js.map +1 -1
- package/dist/cli/update.d.ts +2 -0
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +47 -3
- package/dist/cli/update.js.map +1 -1
- package/dist/config/__tests__/deep-interview.test.js +7 -6
- package/dist/config/__tests__/deep-interview.test.js.map +1 -1
- package/dist/config/__tests__/generator-notify.test.js +1 -0
- package/dist/config/__tests__/generator-notify.test.js.map +1 -1
- package/dist/config/deep-interview.d.ts.map +1 -1
- package/dist/config/deep-interview.js +14 -4
- package/dist/config/deep-interview.js.map +1 -1
- package/dist/config/generator.d.ts +2 -2
- package/dist/config/generator.d.ts.map +1 -1
- package/dist/config/generator.js +2 -2
- package/dist/config/generator.js.map +1 -1
- package/dist/config/team-mode.d.ts +12 -0
- package/dist/config/team-mode.d.ts.map +1 -0
- package/dist/config/team-mode.js +91 -0
- package/dist/config/team-mode.js.map +1 -0
- package/dist/hooks/__tests__/agents-overlay.test.js +88 -0
- package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js +8 -0
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/code-review-skill-contract.test.js +8 -0
- package/dist/hooks/__tests__/code-review-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/deep-interview-contract.test.js +10 -0
- package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/keyword-detector.test.js +1072 -14
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js +64 -1
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +189 -0
- package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +35 -2
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js +3 -3
- package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js.map +1 -1
- package/dist/hooks/__tests__/session.test.js +25 -0
- package/dist/hooks/__tests__/session.test.js.map +1 -1
- package/dist/hooks/__tests__/skill-guidance-contract.test.js +21 -0
- package/dist/hooks/__tests__/skill-guidance-contract.test.js.map +1 -1
- package/dist/hooks/agents-overlay.d.ts.map +1 -1
- package/dist/hooks/agents-overlay.js +36 -50
- package/dist/hooks/agents-overlay.js.map +1 -1
- package/dist/hooks/deep-interview-config-instruction.js +1 -1
- package/dist/hooks/deep-interview-config-instruction.js.map +1 -1
- package/dist/hooks/extensibility/__tests__/plugin-runner.test.js +31 -0
- package/dist/hooks/extensibility/__tests__/plugin-runner.test.js.map +1 -1
- package/dist/hooks/extensibility/plugin-runner.js +17 -21
- package/dist/hooks/extensibility/plugin-runner.js.map +1 -1
- package/dist/hooks/keyword-detector.d.ts +1 -0
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +428 -32
- package/dist/hooks/keyword-detector.js.map +1 -1
- package/dist/hooks/keyword-registry.d.ts.map +1 -1
- package/dist/hooks/keyword-registry.js +1 -0
- package/dist/hooks/keyword-registry.js.map +1 -1
- package/dist/hooks/prompt-guidance-contract.d.ts.map +1 -1
- package/dist/hooks/prompt-guidance-contract.js +6 -0
- package/dist/hooks/prompt-guidance-contract.js.map +1 -1
- package/dist/hooks/session.d.ts +3 -0
- package/dist/hooks/session.d.ts.map +1 -1
- package/dist/hooks/session.js +13 -5
- package/dist/hooks/session.js.map +1 -1
- package/dist/hud/__tests__/authority.test.js +469 -31
- package/dist/hud/__tests__/authority.test.js.map +1 -1
- package/dist/hud/__tests__/hud-tmux-injection.test.js +2 -1
- package/dist/hud/__tests__/hud-tmux-injection.test.js.map +1 -1
- package/dist/hud/__tests__/index.test.js +210 -2
- package/dist/hud/__tests__/index.test.js.map +1 -1
- package/dist/hud/__tests__/reconcile.test.js +588 -28
- package/dist/hud/__tests__/reconcile.test.js.map +1 -1
- package/dist/hud/__tests__/render.test.js +61 -0
- package/dist/hud/__tests__/render.test.js.map +1 -1
- package/dist/hud/__tests__/state.test.js +208 -0
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/__tests__/tmux.test.js +314 -22
- package/dist/hud/__tests__/tmux.test.js.map +1 -1
- package/dist/hud/authority.d.ts +5 -0
- package/dist/hud/authority.d.ts.map +1 -1
- package/dist/hud/authority.js +337 -30
- package/dist/hud/authority.js.map +1 -1
- package/dist/hud/index.d.ts +20 -2
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +103 -26
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/reconcile.d.ts +3 -3
- package/dist/hud/reconcile.d.ts.map +1 -1
- package/dist/hud/reconcile.js +129 -20
- package/dist/hud/reconcile.js.map +1 -1
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +35 -0
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +64 -50
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/tmux.d.ts +26 -6
- package/dist/hud/tmux.d.ts.map +1 -1
- package/dist/hud/tmux.js +173 -38
- package/dist/hud/tmux.js.map +1 -1
- package/dist/hud/types.d.ts +11 -0
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js.map +1 -1
- package/dist/mcp/__tests__/hermes-bridge.test.js +203 -7
- package/dist/mcp/__tests__/hermes-bridge.test.js.map +1 -1
- package/dist/mcp/__tests__/state-paths.test.js +71 -1
- package/dist/mcp/__tests__/state-paths.test.js.map +1 -1
- package/dist/mcp/__tests__/state-server.test.js +13 -1
- package/dist/mcp/__tests__/state-server.test.js.map +1 -1
- package/dist/mcp/hermes-bridge.d.ts +12 -2
- package/dist/mcp/hermes-bridge.d.ts.map +1 -1
- package/dist/mcp/hermes-bridge.js +83 -9
- package/dist/mcp/hermes-bridge.js.map +1 -1
- package/dist/mcp/state-paths.d.ts +32 -0
- package/dist/mcp/state-paths.d.ts.map +1 -1
- package/dist/mcp/state-paths.js +113 -17
- package/dist/mcp/state-paths.js.map +1 -1
- package/dist/mcp/state-server.d.ts +4 -4
- package/dist/modes/__tests__/base-autoresearch-contract.test.js +7 -1
- package/dist/modes/__tests__/base-autoresearch-contract.test.js.map +1 -1
- package/dist/pipeline/__tests__/stages.test.js +130 -0
- package/dist/pipeline/__tests__/stages.test.js.map +1 -1
- package/dist/pipeline/orchestrator.js +1 -1
- package/dist/pipeline/orchestrator.js.map +1 -1
- package/dist/pipeline/stages/ralplan.d.ts +1 -0
- package/dist/pipeline/stages/ralplan.d.ts.map +1 -1
- package/dist/pipeline/stages/ralplan.js +14 -5
- package/dist/pipeline/stages/ralplan.js.map +1 -1
- package/dist/question/__tests__/deep-interview.test.js +160 -2
- package/dist/question/__tests__/deep-interview.test.js.map +1 -1
- package/dist/question/__tests__/policy.test.js +63 -3
- package/dist/question/__tests__/policy.test.js.map +1 -1
- package/dist/question/__tests__/renderer.test.js +191 -2
- package/dist/question/__tests__/renderer.test.js.map +1 -1
- package/dist/question/__tests__/state.test.js +94 -3
- package/dist/question/__tests__/state.test.js.map +1 -1
- package/dist/question/__tests__/ui.test.js +4 -0
- package/dist/question/__tests__/ui.test.js.map +1 -1
- package/dist/question/autopilot-wait.d.ts +12 -2
- package/dist/question/autopilot-wait.d.ts.map +1 -1
- package/dist/question/autopilot-wait.js +158 -47
- package/dist/question/autopilot-wait.js.map +1 -1
- package/dist/question/deep-interview.d.ts.map +1 -1
- package/dist/question/deep-interview.js +22 -6
- package/dist/question/deep-interview.js.map +1 -1
- package/dist/question/policy.d.ts.map +1 -1
- package/dist/question/policy.js +2 -5
- package/dist/question/policy.js.map +1 -1
- package/dist/question/renderer.d.ts +12 -0
- package/dist/question/renderer.d.ts.map +1 -1
- package/dist/question/renderer.js +87 -3
- package/dist/question/renderer.js.map +1 -1
- package/dist/question/state.d.ts +8 -1
- package/dist/question/state.d.ts.map +1 -1
- package/dist/question/state.js +54 -14
- package/dist/question/state.js.map +1 -1
- package/dist/question/types.d.ts +1 -1
- package/dist/question/types.d.ts.map +1 -1
- package/dist/question/ui.d.ts +1 -0
- package/dist/question/ui.d.ts.map +1 -1
- package/dist/question/ui.js +1 -0
- package/dist/question/ui.js.map +1 -1
- package/dist/ralplan/__tests__/runtime.test.js +191 -0
- 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 +84 -2
- package/dist/ralplan/consensus-gate.js.map +1 -1
- package/dist/ralplan/runtime.d.ts +9 -0
- package/dist/ralplan/runtime.d.ts.map +1 -1
- package/dist/ralplan/runtime.js +32 -11
- package/dist/ralplan/runtime.js.map +1 -1
- package/dist/scripts/__tests__/codex-native-hook.test.js +2315 -280
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/__tests__/notify-state-io.test.js +72 -1
- package/dist/scripts/__tests__/notify-state-io.test.js.map +1 -1
- package/dist/scripts/__tests__/notify-tmux-injection.test.d.ts +2 -0
- package/dist/scripts/__tests__/notify-tmux-injection.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/notify-tmux-injection.test.js +57 -0
- package/dist/scripts/__tests__/notify-tmux-injection.test.js.map +1 -0
- package/dist/scripts/__tests__/run-test-files.test.js +74 -0
- package/dist/scripts/__tests__/run-test-files.test.js.map +1 -1
- package/dist/scripts/__tests__/verify-native-agents.test.js +65 -0
- package/dist/scripts/__tests__/verify-native-agents.test.js.map +1 -1
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +431 -56
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
- package/dist/scripts/codex-native-pre-post.js +79 -1
- package/dist/scripts/codex-native-pre-post.js.map +1 -1
- package/dist/scripts/eval/eval-parity-smoke.js +1 -1
- package/dist/scripts/eval/eval-parity-smoke.js.map +1 -1
- package/dist/scripts/hook-payload-guard.d.ts +9 -0
- package/dist/scripts/hook-payload-guard.d.ts.map +1 -0
- package/dist/scripts/hook-payload-guard.js +111 -0
- package/dist/scripts/hook-payload-guard.js.map +1 -0
- package/dist/scripts/notify-fallback-watcher.js +8 -1
- package/dist/scripts/notify-fallback-watcher.js.map +1 -1
- package/dist/scripts/notify-hook/__tests__/payload-guard.test.d.ts +2 -0
- package/dist/scripts/notify-hook/__tests__/payload-guard.test.d.ts.map +1 -0
- package/dist/scripts/notify-hook/__tests__/payload-guard.test.js +39 -0
- package/dist/scripts/notify-hook/__tests__/payload-guard.test.js.map +1 -0
- package/dist/scripts/notify-hook/auto-nudge.d.ts.map +1 -1
- package/dist/scripts/notify-hook/auto-nudge.js +3 -1
- package/dist/scripts/notify-hook/auto-nudge.js.map +1 -1
- package/dist/scripts/notify-hook/ralph-session-resume.d.ts.map +1 -1
- package/dist/scripts/notify-hook/ralph-session-resume.js +3 -10
- package/dist/scripts/notify-hook/ralph-session-resume.js.map +1 -1
- package/dist/scripts/notify-hook/state-io.d.ts.map +1 -1
- package/dist/scripts/notify-hook/state-io.js +62 -38
- package/dist/scripts/notify-hook/state-io.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 +7 -0
- package/dist/scripts/notify-hook/team-leader-nudge.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 +234 -86
- package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
- package/dist/scripts/notify-hook/tmux-injection.d.ts +7 -0
- package/dist/scripts/notify-hook/tmux-injection.d.ts.map +1 -1
- package/dist/scripts/notify-hook/tmux-injection.js +24 -18
- package/dist/scripts/notify-hook/tmux-injection.js.map +1 -1
- package/dist/scripts/notify-hook.js +86 -13
- package/dist/scripts/notify-hook.js.map +1 -1
- package/dist/scripts/run-test-files.js +193 -22
- package/dist/scripts/run-test-files.js.map +1 -1
- package/dist/scripts/sync-plugin-mirror.d.ts.map +1 -1
- package/dist/scripts/sync-plugin-mirror.js +61 -3
- package/dist/scripts/sync-plugin-mirror.js.map +1 -1
- package/dist/scripts/verify-native-agents.d.ts.map +1 -1
- package/dist/scripts/verify-native-agents.js +58 -1
- package/dist/scripts/verify-native-agents.js.map +1 -1
- package/dist/state/__tests__/operations.test.js +1125 -1
- package/dist/state/__tests__/operations.test.js.map +1 -1
- package/dist/state/__tests__/skill-active.test.js +46 -1
- package/dist/state/__tests__/skill-active.test.js.map +1 -1
- package/dist/state/__tests__/workflow-transition.test.js +98 -7
- package/dist/state/__tests__/workflow-transition.test.js.map +1 -1
- package/dist/state/operations.d.ts.map +1 -1
- package/dist/state/operations.js +159 -2
- package/dist/state/operations.js.map +1 -1
- package/dist/state/skill-active.js +6 -8
- package/dist/state/skill-active.js.map +1 -1
- package/dist/state/workflow-transition-reconcile.d.ts +6 -0
- package/dist/state/workflow-transition-reconcile.d.ts.map +1 -1
- package/dist/state/workflow-transition-reconcile.js +38 -15
- 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 +10 -3
- package/dist/state/workflow-transition.js.map +1 -1
- package/dist/subagents/__tests__/tracker.test.js +139 -0
- package/dist/subagents/__tests__/tracker.test.js.map +1 -1
- package/dist/subagents/tracker.d.ts +3 -0
- package/dist/subagents/tracker.d.ts.map +1 -1
- package/dist/subagents/tracker.js +41 -4
- package/dist/subagents/tracker.js.map +1 -1
- package/dist/team/__tests__/coordination-protocol.test.d.ts +2 -0
- package/dist/team/__tests__/coordination-protocol.test.d.ts.map +1 -0
- package/dist/team/__tests__/coordination-protocol.test.js +173 -0
- package/dist/team/__tests__/coordination-protocol.test.js.map +1 -0
- package/dist/team/__tests__/runtime.test.js +52 -3
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/scaling.test.js +9 -4
- package/dist/team/__tests__/scaling.test.js.map +1 -1
- package/dist/team/__tests__/state.test.js +83 -0
- package/dist/team/__tests__/state.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +240 -2
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/worker-bootstrap.test.js +84 -0
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/__tests__/worker-runtime-identity.test.js +4 -2
- package/dist/team/__tests__/worker-runtime-identity.test.js.map +1 -1
- package/dist/team/coordination-protocol.d.ts +14 -0
- package/dist/team/coordination-protocol.d.ts.map +1 -0
- package/dist/team/coordination-protocol.js +244 -0
- package/dist/team/coordination-protocol.js.map +1 -0
- package/dist/team/runtime.d.ts +1 -0
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +19 -3
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/scaling.d.ts.map +1 -1
- package/dist/team/scaling.js +3 -2
- package/dist/team/scaling.js.map +1 -1
- package/dist/team/state/tasks.d.ts.map +1 -1
- package/dist/team/state/tasks.js +24 -0
- package/dist/team/state/tasks.js.map +1 -1
- package/dist/team/state/types.d.ts +21 -1
- package/dist/team/state/types.d.ts.map +1 -1
- package/dist/team/state/types.js.map +1 -1
- package/dist/team/state.d.ts +17 -1
- package/dist/team/state.d.ts.map +1 -1
- package/dist/team/state.js +12 -5
- package/dist/team/state.js.map +1 -1
- package/dist/team/team-ops.d.ts +1 -1
- package/dist/team/team-ops.d.ts.map +1 -1
- package/dist/team/team-ops.js.map +1 -1
- package/dist/team/tmux-session.d.ts +2 -0
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +161 -13
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/worker-bootstrap.d.ts.map +1 -1
- package/dist/team/worker-bootstrap.js +63 -0
- package/dist/team/worker-bootstrap.js.map +1 -1
- package/dist/utils/__tests__/agents-model-table.test.js +4 -2
- package/dist/utils/__tests__/agents-model-table.test.js.map +1 -1
- package/dist/utils/agents-model-table.d.ts.map +1 -1
- package/dist/utils/agents-model-table.js +3 -0
- package/dist/utils/agents-model-table.js.map +1 -1
- package/dist/verification/__tests__/ci-rust-gates.test.js +81 -1
- package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
- package/package.json +8 -8
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/oh-my-codex/hooks/codex-native-hook.mjs +334 -21
- package/plugins/oh-my-codex/hooks/hooks.json +1 -2
- package/plugins/oh-my-codex/skills/autopilot/SKILL.md +13 -6
- package/plugins/oh-my-codex/skills/code-review/SKILL.md +7 -7
- package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +9 -4
- package/plugins/oh-my-codex/skills/ralph/SKILL.md +22 -22
- package/plugins/oh-my-codex/skills/ralplan/SKILL.md +12 -0
- package/plugins/oh-my-codex/skills/team/SKILL.md +16 -0
- package/plugins/oh-my-codex/skills/ultraqa/SKILL.md +9 -0
- package/plugins/oh-my-codex/skills/worker/SKILL.md +14 -0
- package/skills/autopilot/SKILL.md +13 -6
- package/skills/code-review/SKILL.md +7 -7
- package/skills/deep-interview/SKILL.md +9 -4
- package/skills/ralph/SKILL.md +22 -22
- package/skills/ralplan/SKILL.md +12 -0
- package/skills/team/SKILL.md +16 -0
- package/skills/ultraqa/SKILL.md +9 -0
- package/skills/worker/SKILL.md +14 -0
- package/src/scripts/__tests__/codex-native-hook.test.ts +4435 -2083
- package/src/scripts/__tests__/notify-state-io.test.ts +95 -0
- package/src/scripts/__tests__/notify-tmux-injection.test.ts +82 -0
- package/src/scripts/__tests__/run-test-files.test.ts +102 -0
- package/src/scripts/__tests__/verify-native-agents.test.ts +75 -0
- package/src/scripts/codex-native-hook.ts +536 -51
- package/src/scripts/codex-native-pre-post.ts +80 -0
- package/src/scripts/demo-team-e2e.sh +10 -7
- package/src/scripts/eval/eval-parity-smoke.ts +1 -1
- package/src/scripts/hook-payload-guard.ts +113 -0
- package/src/scripts/notify-fallback-watcher.ts +8 -1
- package/src/scripts/notify-hook/__tests__/payload-guard.test.ts +41 -0
- package/src/scripts/notify-hook/auto-nudge.ts +3 -1
- package/src/scripts/notify-hook/ralph-session-resume.ts +2 -8
- package/src/scripts/notify-hook/state-io.ts +75 -37
- package/src/scripts/notify-hook/team-leader-nudge.ts +7 -0
- package/src/scripts/notify-hook/team-worker-stop.ts +193 -52
- package/src/scripts/notify-hook/tmux-injection.ts +35 -19
- package/src/scripts/notify-hook.ts +105 -6
- package/src/scripts/run-test-files.ts +192 -22
- package/src/scripts/sync-plugin-mirror.ts +98 -9
- package/src/scripts/verify-native-agents.ts +65 -1
|
@@ -1,15 +1,34 @@
|
|
|
1
|
-
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
|
-
import { dirname } from 'node:path';
|
|
1
|
+
import { mkdir, readFile, rm, stat, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { deriveAutopilotChildPhase, isAutopilotSupervisingChild, normalizeAutopilotPhase, } from '../autopilot/fsm.js';
|
|
3
4
|
import { getStateFilePath } from '../mcp/state-paths.js';
|
|
5
|
+
import { sleep } from '../utils/sleep.js';
|
|
4
6
|
const AUTOPILOT_STATE_FILE = 'autopilot-state.json';
|
|
7
|
+
const AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_ENV = 'OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS';
|
|
8
|
+
const AUTOPILOT_QUESTION_WAIT_LOCK_STALE_MS = 30_000;
|
|
9
|
+
const DEFAULT_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS = 10_000;
|
|
10
|
+
const MIN_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS = 1;
|
|
11
|
+
const MAX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS = 120_000;
|
|
12
|
+
export const AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV = 'OMX_AUTOPILOT_DEEP_INTERVIEW_QUESTION_OBLIGATION_ID';
|
|
5
13
|
function safeString(value) {
|
|
6
14
|
return typeof value === 'string' ? value.trim() : '';
|
|
7
15
|
}
|
|
8
16
|
function safeObject(value) {
|
|
9
17
|
return value && typeof value === 'object' ? value : {};
|
|
10
18
|
}
|
|
11
|
-
function
|
|
12
|
-
|
|
19
|
+
export function resolveAutopilotQuestionWaitLockTimeoutMs(env = process.env) {
|
|
20
|
+
const raw = env[AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_ENV];
|
|
21
|
+
if (raw === undefined || raw === '')
|
|
22
|
+
return DEFAULT_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS;
|
|
23
|
+
const parsed = Number(raw);
|
|
24
|
+
if (!Number.isFinite(parsed))
|
|
25
|
+
return DEFAULT_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS;
|
|
26
|
+
return Math.max(MIN_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS, Math.min(MAX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS, Math.floor(parsed)));
|
|
27
|
+
}
|
|
28
|
+
function isPendingAutopilotQuestionWait(wait) {
|
|
29
|
+
return safeString(wait.status) === 'waiting_for_user'
|
|
30
|
+
&& safeString(wait.source) === 'omx-question'
|
|
31
|
+
&& safeString(wait.obligation_id).length > 0;
|
|
13
32
|
}
|
|
14
33
|
async function readAutopilotState(cwd, sessionId) {
|
|
15
34
|
const statePath = getStateFilePath(AUTOPILOT_STATE_FILE, cwd, sessionId);
|
|
@@ -25,6 +44,66 @@ async function writeAutopilotState(cwd, sessionId, state) {
|
|
|
25
44
|
await mkdir(dirname(statePath), { recursive: true });
|
|
26
45
|
await writeFile(statePath, `${JSON.stringify(state, null, 2)}\n`);
|
|
27
46
|
}
|
|
47
|
+
function lockOwnerToken() {
|
|
48
|
+
return `${process.pid}.${Date.now()}.${Math.random().toString(16).slice(2)}`;
|
|
49
|
+
}
|
|
50
|
+
async function maybeRecoverStaleAutopilotQuestionWaitLock(lockDir) {
|
|
51
|
+
try {
|
|
52
|
+
const info = await stat(lockDir);
|
|
53
|
+
if (Date.now() - info.mtimeMs > AUTOPILOT_QUESTION_WAIT_LOCK_STALE_MS) {
|
|
54
|
+
await rm(lockDir, { recursive: true, force: true });
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
async function withAutopilotQuestionWaitLock(cwd, sessionId, fn, onTimeout) {
|
|
63
|
+
const statePath = getStateFilePath(AUTOPILOT_STATE_FILE, cwd, sessionId);
|
|
64
|
+
const lockDir = `${statePath}.deep-interview-question.lock`;
|
|
65
|
+
const ownerPath = join(lockDir, 'owner');
|
|
66
|
+
const ownerToken = lockOwnerToken();
|
|
67
|
+
const timeoutMs = resolveAutopilotQuestionWaitLockTimeoutMs(process.env);
|
|
68
|
+
const deadline = Date.now() + timeoutMs;
|
|
69
|
+
await mkdir(dirname(lockDir), { recursive: true });
|
|
70
|
+
while (true) {
|
|
71
|
+
try {
|
|
72
|
+
await mkdir(lockDir);
|
|
73
|
+
try {
|
|
74
|
+
await writeFile(ownerPath, ownerToken, 'utf8');
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
await rm(lockDir, { recursive: true, force: true });
|
|
78
|
+
throw error;
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
const err = error;
|
|
84
|
+
if (err.code !== 'EEXIST')
|
|
85
|
+
throw error;
|
|
86
|
+
if (await maybeRecoverStaleAutopilotQuestionWaitLock(lockDir))
|
|
87
|
+
continue;
|
|
88
|
+
if (Date.now() > deadline)
|
|
89
|
+
return await onTimeout();
|
|
90
|
+
await sleep(25);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
return await fn();
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
try {
|
|
98
|
+
const currentOwner = await readFile(ownerPath, 'utf8');
|
|
99
|
+
if (currentOwner.trim() === ownerToken) {
|
|
100
|
+
await rm(lockDir, { recursive: true, force: true });
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
28
107
|
export async function readAutopilotDeepInterviewQuestionWaitState(cwd, sessionId) {
|
|
29
108
|
const state = await readAutopilotState(cwd, sessionId);
|
|
30
109
|
if (!state || safeString(state.mode) !== 'autopilot')
|
|
@@ -34,11 +113,9 @@ export async function readAutopilotDeepInterviewQuestionWaitState(cwd, sessionId
|
|
|
34
113
|
const obligationId = safeString(wait.obligation_id);
|
|
35
114
|
if (!obligationId)
|
|
36
115
|
return null;
|
|
37
|
-
if (
|
|
116
|
+
if (!isPendingAutopilotQuestionWait(wait))
|
|
38
117
|
return null;
|
|
39
|
-
|
|
40
|
-
return null;
|
|
41
|
-
const phase = normalizePhase(state.current_phase);
|
|
118
|
+
const phase = normalizeAutopilotPhase(state.current_phase);
|
|
42
119
|
const runOutcome = safeString(state.run_outcome);
|
|
43
120
|
const lifecycleOutcome = safeString(state.lifecycle_outcome);
|
|
44
121
|
if (phase !== 'waiting-for-user')
|
|
@@ -47,54 +124,73 @@ export async function readAutopilotDeepInterviewQuestionWaitState(cwd, sessionId
|
|
|
47
124
|
return null;
|
|
48
125
|
if (lifecycleOutcome && lifecycleOutcome !== 'askuserQuestion')
|
|
49
126
|
return null;
|
|
127
|
+
const previousPhase = deriveAutopilotChildPhase(state);
|
|
128
|
+
if (previousPhase !== 'deep-interview')
|
|
129
|
+
return null;
|
|
50
130
|
return {
|
|
51
131
|
obligationId,
|
|
52
|
-
previousPhase
|
|
132
|
+
previousPhase,
|
|
53
133
|
requestedAt: safeString(wait.requested_at) || undefined,
|
|
54
134
|
};
|
|
55
135
|
}
|
|
56
|
-
export async function canStartAutopilotDeepInterviewQuestion(cwd, sessionId) {
|
|
136
|
+
export async function canStartAutopilotDeepInterviewQuestion(cwd, sessionId, options = {}) {
|
|
57
137
|
const state = await readAutopilotState(cwd, sessionId);
|
|
58
|
-
if (!
|
|
138
|
+
if (!isAutopilotSupervisingChild(state, 'deep-interview'))
|
|
59
139
|
return false;
|
|
60
|
-
|
|
140
|
+
const nestedState = safeObject(state?.state);
|
|
141
|
+
const wait = safeObject(nestedState.deep_interview_question);
|
|
142
|
+
if (!isPendingAutopilotQuestionWait(wait))
|
|
143
|
+
return true;
|
|
144
|
+
const ownerObligationId = safeString(options.ownerObligationId);
|
|
145
|
+
return ownerObligationId.length > 0
|
|
146
|
+
&& safeString(wait.obligation_id) === ownerObligationId;
|
|
147
|
+
}
|
|
148
|
+
export async function claimAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation) {
|
|
149
|
+
const normalizedSessionId = safeString(sessionId);
|
|
150
|
+
if (!normalizedSessionId)
|
|
151
|
+
return 'not_applicable';
|
|
152
|
+
return await withAutopilotQuestionWaitLock(cwd, normalizedSessionId, async () => {
|
|
153
|
+
const state = await readAutopilotState(cwd, normalizedSessionId);
|
|
154
|
+
if (!state || safeString(state.mode) !== 'autopilot' || state.active !== true) {
|
|
155
|
+
return 'not_applicable';
|
|
156
|
+
}
|
|
157
|
+
if (!isAutopilotSupervisingChild(state, 'deep-interview'))
|
|
158
|
+
return 'not_applicable';
|
|
159
|
+
const currentPhase = normalizeAutopilotPhase(state.current_phase) || 'deep-interview';
|
|
160
|
+
const nestedState = safeObject(state.state);
|
|
161
|
+
if (isPendingAutopilotQuestionWait(safeObject(nestedState.deep_interview_question))) {
|
|
162
|
+
return 'blocked';
|
|
163
|
+
}
|
|
164
|
+
const wait = {
|
|
165
|
+
status: 'waiting_for_user',
|
|
166
|
+
source: 'omx-question',
|
|
167
|
+
obligation_id: obligation.obligation_id,
|
|
168
|
+
previous_phase: currentPhase,
|
|
169
|
+
previous_run_outcome: state.run_outcome ?? null,
|
|
170
|
+
previous_lifecycle_outcome: state.lifecycle_outcome ?? null,
|
|
171
|
+
requested_at: obligation.requested_at,
|
|
172
|
+
updated_at: new Date().toISOString(),
|
|
173
|
+
};
|
|
174
|
+
const nextState = {
|
|
175
|
+
...state,
|
|
176
|
+
active: true,
|
|
177
|
+
current_phase: 'waiting-for-user',
|
|
178
|
+
run_outcome: 'blocked_on_user',
|
|
179
|
+
lifecycle_outcome: 'askuserQuestion',
|
|
180
|
+
updated_at: new Date().toISOString(),
|
|
181
|
+
state: {
|
|
182
|
+
...nestedState,
|
|
183
|
+
deep_interview_question: wait,
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
await writeAutopilotState(cwd, normalizedSessionId, nextState);
|
|
187
|
+
return 'started';
|
|
188
|
+
}, () => 'blocked');
|
|
61
189
|
}
|
|
62
190
|
export async function markAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation) {
|
|
63
|
-
|
|
64
|
-
return false;
|
|
65
|
-
const state = await readAutopilotState(cwd, sessionId);
|
|
66
|
-
if (!state || safeString(state.mode) !== 'autopilot' || state.active !== true)
|
|
67
|
-
return false;
|
|
68
|
-
const currentPhase = safeString(state.current_phase) || 'deep-interview';
|
|
69
|
-
if (normalizePhase(currentPhase) !== 'deep-interview')
|
|
70
|
-
return false;
|
|
71
|
-
const nestedState = safeObject(state.state);
|
|
72
|
-
const wait = {
|
|
73
|
-
status: 'waiting_for_user',
|
|
74
|
-
source: 'omx-question',
|
|
75
|
-
obligation_id: obligation.obligation_id,
|
|
76
|
-
previous_phase: currentPhase,
|
|
77
|
-
previous_run_outcome: state.run_outcome ?? null,
|
|
78
|
-
previous_lifecycle_outcome: state.lifecycle_outcome ?? null,
|
|
79
|
-
requested_at: obligation.requested_at,
|
|
80
|
-
updated_at: new Date().toISOString(),
|
|
81
|
-
};
|
|
82
|
-
const nextState = {
|
|
83
|
-
...state,
|
|
84
|
-
active: true,
|
|
85
|
-
current_phase: 'waiting-for-user',
|
|
86
|
-
run_outcome: 'blocked_on_user',
|
|
87
|
-
lifecycle_outcome: 'askuserQuestion',
|
|
88
|
-
updated_at: new Date().toISOString(),
|
|
89
|
-
state: {
|
|
90
|
-
...nestedState,
|
|
91
|
-
deep_interview_question: wait,
|
|
92
|
-
},
|
|
93
|
-
};
|
|
94
|
-
await writeAutopilotState(cwd, sessionId, nextState);
|
|
95
|
-
return true;
|
|
191
|
+
return await claimAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation) === 'started';
|
|
96
192
|
}
|
|
97
|
-
export async function resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligationId, status) {
|
|
193
|
+
export async function resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligationId, status, options = {}) {
|
|
98
194
|
if (!safeString(sessionId) || !safeString(obligationId))
|
|
99
195
|
return false;
|
|
100
196
|
const state = await readAutopilotState(cwd, sessionId);
|
|
@@ -108,6 +204,8 @@ export async function resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionI
|
|
|
108
204
|
return false;
|
|
109
205
|
const previousRunOutcome = wait.previous_run_outcome;
|
|
110
206
|
const previousLifecycleOutcome = wait.previous_lifecycle_outcome;
|
|
207
|
+
const resolvedAt = (options.now ?? new Date()).toISOString();
|
|
208
|
+
const questionId = safeString(options.questionId);
|
|
111
209
|
const nextState = {
|
|
112
210
|
...state,
|
|
113
211
|
active: true,
|
|
@@ -118,7 +216,20 @@ export async function resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionI
|
|
|
118
216
|
deep_interview_question: {
|
|
119
217
|
...wait,
|
|
120
218
|
status,
|
|
121
|
-
resolved_at:
|
|
219
|
+
resolved_at: resolvedAt,
|
|
220
|
+
...(status === 'satisfied'
|
|
221
|
+
? {
|
|
222
|
+
question_id: questionId || undefined,
|
|
223
|
+
satisfied_at: resolvedAt,
|
|
224
|
+
clear_reason: undefined,
|
|
225
|
+
cleared_at: undefined,
|
|
226
|
+
}
|
|
227
|
+
: {
|
|
228
|
+
clear_reason: options.clearReason ?? 'error',
|
|
229
|
+
cleared_at: resolvedAt,
|
|
230
|
+
question_id: undefined,
|
|
231
|
+
satisfied_at: undefined,
|
|
232
|
+
}),
|
|
122
233
|
},
|
|
123
234
|
},
|
|
124
235
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autopilot-wait.js","sourceRoot":"","sources":["../../src/question/autopilot-wait.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"autopilot-wait.js","sourceRoot":"","sources":["../../src/question/autopilot-wait.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-interview.d.ts","sourceRoot":"","sources":["../../src/question/deep-interview.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"deep-interview.d.ts","sourceRoot":"","sources":["../../src/question/deep-interview.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC/B,MAAM,aAAa,CAAC;AAMrB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAU3E,MAAM,WAAW,qCAAqC;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;CAC9C;AAED,UAAU,wBAAwB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,oBAAoB,CAAC,EAAE,qCAAqC,CAAC;IAC7D,oBAAoB,CAAC,EAAE,mBAAmB,CAAC;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAuCD,wBAAgB,qCAAqC,CACnD,GAAG,OAAa,GACf,qCAAqC,CAQvC;AAED,wBAAgB,yCAAyC,CACvD,WAAW,EAAE,OAAO,CAAC,qCAAqC,CAAC,GAAG,IAAI,GAAG,SAAS,GAC7E,WAAW,IAAI,qCAAqC,CAGtD;AAED,wBAAgB,sCAAsC,CACpD,WAAW,EAAE,qCAAqC,EAClD,UAAU,EAAE,MAAM,EAClB,GAAG,OAAa,GACf,qCAAqC,CASvC;AAED,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,qCAAqC,GAAG,SAAS,EAC9D,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,EACrC,GAAG,OAAa,GACf,qCAAqC,GAAG,SAAS,CASnD;AAmED,wBAAsB,sCAAsC,CAC1D,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,CACP,OAAO,EAAE,qCAAqC,GAAG,SAAS,KACvD,qCAAqC,GAAG,SAAS,GACrD,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAiC1C;AAED,wBAAsB,4DAA4D,CAChF,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,GAAG,OAAa,GACf,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CA2B1C;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EACpD,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,yBAAyB,CAAC,CAmFpC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { mkdir, readFile, readdir, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { dirname, join } from 'node:path';
|
|
3
3
|
import { getStateFilePath, readCurrentSessionId } from '../mcp/state-paths.js';
|
|
4
|
-
import { runOmxQuestion, } from './client.js';
|
|
4
|
+
import { OmxQuestionError, runOmxQuestion, } from './client.js';
|
|
5
5
|
import { getQuestionRecordPath, getQuestionStateDir, readQuestionRecord, } from './state.js';
|
|
6
|
-
import {
|
|
6
|
+
import { AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV, claimAutopilotDeepInterviewQuestionWaiting, readAutopilotDeepInterviewQuestionWaitState, resolveAutopilotDeepInterviewQuestionWaiting, } from './autopilot-wait.js';
|
|
7
7
|
const DEEP_INTERVIEW_STATE_FILE = 'deep-interview-state.json';
|
|
8
8
|
function safeString(value) {
|
|
9
9
|
return typeof value === 'string' ? value : '';
|
|
@@ -175,25 +175,41 @@ export async function runDeepInterviewQuestion(input, options = {}) {
|
|
|
175
175
|
const cwd = options.cwd ?? process.cwd();
|
|
176
176
|
const sessionId = safeString(input.session_id).trim() || await readCurrentSessionId(cwd);
|
|
177
177
|
const obligation = createDeepInterviewQuestionObligation();
|
|
178
|
+
const existingAutopilotWait = await readAutopilotDeepInterviewQuestionWaitState(cwd, sessionId);
|
|
179
|
+
if (existingAutopilotWait) {
|
|
180
|
+
throw new OmxQuestionError('active_execution_mode_blocked', 'Autopilot already has a pending deep-interview question.');
|
|
181
|
+
}
|
|
182
|
+
const autopilotWaitClaim = await claimAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation);
|
|
183
|
+
if (autopilotWaitClaim === 'blocked') {
|
|
184
|
+
throw new OmxQuestionError('active_execution_mode_blocked', 'Autopilot cannot start a new deep-interview question until the existing wait claim is resolved.');
|
|
185
|
+
}
|
|
186
|
+
const autopilotWaitStarted = autopilotWaitClaim === 'started';
|
|
178
187
|
await updateDeepInterviewQuestionEnforcement(cwd, sessionId, () => obligation);
|
|
179
|
-
await markAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation);
|
|
180
188
|
try {
|
|
181
189
|
const result = await runOmxQuestion({
|
|
182
190
|
...input,
|
|
183
191
|
source: input.source ?? 'deep-interview',
|
|
184
192
|
...(sessionId ? { session_id: sessionId } : {}),
|
|
185
|
-
},
|
|
193
|
+
}, autopilotWaitStarted
|
|
194
|
+
? {
|
|
195
|
+
...options,
|
|
196
|
+
env: {
|
|
197
|
+
...(options.env ?? process.env),
|
|
198
|
+
[AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV]: obligation.obligation_id,
|
|
199
|
+
},
|
|
200
|
+
}
|
|
201
|
+
: options);
|
|
186
202
|
await updateDeepInterviewQuestionEnforcement(cwd, sessionId, (current) => (current?.obligation_id === obligation.obligation_id
|
|
187
203
|
? satisfyDeepInterviewQuestionObligation(current, result.question_id)
|
|
188
204
|
: current));
|
|
189
|
-
await resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation.obligation_id, 'satisfied');
|
|
205
|
+
await resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation.obligation_id, 'satisfied', { questionId: result.question_id });
|
|
190
206
|
return result;
|
|
191
207
|
}
|
|
192
208
|
catch (error) {
|
|
193
209
|
await updateDeepInterviewQuestionEnforcement(cwd, sessionId, (current) => (current?.obligation_id === obligation.obligation_id
|
|
194
210
|
? clearDeepInterviewQuestionObligation(current, 'error')
|
|
195
211
|
: current));
|
|
196
|
-
await resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation.obligation_id, 'cleared');
|
|
212
|
+
await resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation.obligation_id, 'cleared', { clearReason: 'error' });
|
|
197
213
|
throw error;
|
|
198
214
|
}
|
|
199
215
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-interview.js","sourceRoot":"","sources":["../../src/question/deep-interview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,cAAc,GAGf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"deep-interview.js","sourceRoot":"","sources":["../../src/question/deep-interview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/question/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAkBvH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,gBAAgB,GAAG,cAAc,GAAG,+BAA+B,CAAC;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,yBAAyB,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,6BAA6B;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAcD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/question/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAkBvH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,gBAAgB,GAAG,cAAc,GAAG,+BAA+B,CAAC;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,yBAAyB,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,6BAA6B;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAcD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,sBAAsB,CAAC,CAmFjC"}
|
package/dist/question/policy.js
CHANGED
|
@@ -2,7 +2,7 @@ import { listNotifyCanonicalActiveTeams } from '../scripts/notify-hook/active-te
|
|
|
2
2
|
import { readCurrentSessionId } from '../mcp/state-paths.js';
|
|
3
3
|
import { listActiveSkills, readVisibleSkillActiveState } from '../state/skill-active.js';
|
|
4
4
|
import { readActiveWorkflowModes } from '../state/workflow-transition.js';
|
|
5
|
-
import {
|
|
5
|
+
import { AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV, canStartAutopilotDeepInterviewQuestion, } from './autopilot-wait.js';
|
|
6
6
|
const BLOCKED_EXECUTION_SKILLS = new Set([
|
|
7
7
|
'autopilot',
|
|
8
8
|
'autoresearch',
|
|
@@ -60,10 +60,7 @@ export async function evaluateQuestionPolicy(options) {
|
|
|
60
60
|
if (blocked.length > 0) {
|
|
61
61
|
const source = safeString(options.questionSource).trim();
|
|
62
62
|
if (source === 'deep-interview' && onlyControlledAutopilotQuestionBlock(blocked)) {
|
|
63
|
-
const
|
|
64
|
-
const canStartAutopilotQuestion = autopilotWait
|
|
65
|
-
? true
|
|
66
|
-
: await canStartAutopilotDeepInterviewQuestion(options.cwd, sessionId);
|
|
63
|
+
const canStartAutopilotQuestion = await canStartAutopilotDeepInterviewQuestion(options.cwd, sessionId, { ownerObligationId: env[AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV] });
|
|
67
64
|
if (canStartAutopilotQuestion) {
|
|
68
65
|
return {
|
|
69
66
|
allowed: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/question/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAkC,MAAM,uCAAuC,CAAC;AACvH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/question/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ export declare function isLaunchedQuestionPaneAlive(paneId: string, execTmux: Ex
|
|
|
27
27
|
export declare function isLaunchedQuestionSessionAlive(sessionName: string, execTmux: ExecTmuxSync): boolean;
|
|
28
28
|
export declare function isWindowsConsoleRendererAlive(pid: number | undefined): boolean;
|
|
29
29
|
export declare function isQuestionRendererAlive(renderer: QuestionRendererState | undefined, execTmux?: ExecTmuxSync): boolean;
|
|
30
|
+
export declare function closeQuestionRenderer(renderer: QuestionRendererState | undefined, execTmux?: ExecTmuxSync): boolean;
|
|
30
31
|
export declare function formatQuestionAnswerForInjection(answer: QuestionAnswer): string;
|
|
31
32
|
export declare function formatQuestionAnswersForInjection(answers: Array<{
|
|
32
33
|
question_id: string;
|
|
@@ -37,6 +38,17 @@ export declare function injectQuestionAnswersToPane(paneId: string, answers: Arr
|
|
|
37
38
|
question_id: string;
|
|
38
39
|
answer: QuestionAnswer;
|
|
39
40
|
}>, execTmux?: ExecTmuxSync, sleepImpl?: SleepSync): boolean;
|
|
41
|
+
export interface LiveQuestionRecord {
|
|
42
|
+
recordPath: string;
|
|
43
|
+
record: QuestionRecord;
|
|
44
|
+
}
|
|
45
|
+
export declare function findLiveQuestionsForSession(cwd: string, sessionId: string | undefined, execTmux?: ExecTmuxSync, options?: {
|
|
46
|
+
excludeRecordPath?: string;
|
|
47
|
+
}): LiveQuestionRecord[];
|
|
48
|
+
export declare function supersedeLiveQuestionsForSession(cwd: string, sessionId: string | undefined, execTmux?: ExecTmuxSync, options?: {
|
|
49
|
+
excludeRecordPath?: string;
|
|
50
|
+
nowIso?: string;
|
|
51
|
+
}): LiveQuestionRecord[];
|
|
40
52
|
export declare function launchQuestionRenderer(options: LaunchQuestionRendererOptions, deps?: {
|
|
41
53
|
strategy?: QuestionRendererStrategy;
|
|
42
54
|
execTmux?: ExecTmuxSync;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/question/renderer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/question/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { execFileSync, spawn } from 'node:child_process';
|
|
2
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
3
|
-
import { basename } from 'node:path';
|
|
2
|
+
import { existsSync, readdirSync, renameSync, writeFileSync, readFileSync } from 'node:fs';
|
|
3
|
+
import { basename, join } from 'node:path';
|
|
4
4
|
import { stdin as processStdin, stdout as processStdout } from 'node:process';
|
|
5
5
|
import { parsePaneIdFromTmuxOutput } from '../hud/tmux.js';
|
|
6
6
|
import { buildSendPaneArgvs } from '../notifications/tmux-detector.js';
|
|
7
7
|
import { sleepSync } from '../utils/sleep.js';
|
|
8
8
|
import { sanitizeReplyInput } from '../notifications/reply-listener.js';
|
|
9
9
|
import { getCurrentTmuxPaneId } from '../notifications/tmux.js';
|
|
10
|
-
import { getStatePath } from '../mcp/state-paths.js';
|
|
10
|
+
import { getStateDir, getStatePath } from '../mcp/state-paths.js';
|
|
11
11
|
import { TRACKED_WORKFLOW_MODES } from '../state/workflow-transition.js';
|
|
12
12
|
import { resolveTmuxBinaryForPlatform } from '../utils/platform-command.js';
|
|
13
13
|
import { resolveOmxCliEntryPath } from '../utils/paths.js';
|
|
@@ -304,6 +304,27 @@ export function isQuestionRendererAlive(renderer, execTmux = defaultExecTmux) {
|
|
|
304
304
|
return isWindowsConsoleRendererAlive(renderer.pid);
|
|
305
305
|
return true;
|
|
306
306
|
}
|
|
307
|
+
export function closeQuestionRenderer(renderer, execTmux = defaultExecTmux) {
|
|
308
|
+
if (!renderer)
|
|
309
|
+
return false;
|
|
310
|
+
try {
|
|
311
|
+
if (renderer.renderer === 'tmux-pane' && isPaneId(renderer.target)) {
|
|
312
|
+
execTmux(['kill-pane', '-t', renderer.target]);
|
|
313
|
+
return true;
|
|
314
|
+
}
|
|
315
|
+
if (renderer.renderer === 'tmux-session' && renderer.target !== 'test-noop-renderer' && safeString(renderer.target).trim()) {
|
|
316
|
+
execTmux(['kill-session', '-t', renderer.target]);
|
|
317
|
+
return true;
|
|
318
|
+
}
|
|
319
|
+
if (renderer.renderer === 'windows-console') {
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
catch {
|
|
324
|
+
return false;
|
|
325
|
+
}
|
|
326
|
+
return false;
|
|
327
|
+
}
|
|
307
328
|
export function formatQuestionAnswerForInjection(answer) {
|
|
308
329
|
const prefix = '[omx question answered]';
|
|
309
330
|
if (answer.kind === 'other') {
|
|
@@ -359,6 +380,61 @@ export function injectQuestionAnswersToPane(paneId, answers, execTmux = defaultE
|
|
|
359
380
|
}
|
|
360
381
|
return true;
|
|
361
382
|
}
|
|
383
|
+
function getQuestionStateDirForRenderer(cwd, sessionId) {
|
|
384
|
+
return join(getStateDir(cwd, sessionId), 'questions');
|
|
385
|
+
}
|
|
386
|
+
function isQuestionRecord(value) {
|
|
387
|
+
return Boolean(value
|
|
388
|
+
&& typeof value === 'object'
|
|
389
|
+
&& value.kind === 'omx.question/v1'
|
|
390
|
+
&& typeof value.question_id === 'string');
|
|
391
|
+
}
|
|
392
|
+
function writeQuestionRecordSync(recordPath, record) {
|
|
393
|
+
const tempPath = `${recordPath}.${process.pid}.${Date.now()}.tmp`;
|
|
394
|
+
writeFileSync(tempPath, `${JSON.stringify(record, null, 2)}\n`, 'utf-8');
|
|
395
|
+
renameSync(tempPath, recordPath);
|
|
396
|
+
}
|
|
397
|
+
export function findLiveQuestionsForSession(cwd, sessionId, execTmux = defaultExecTmux, options = {}) {
|
|
398
|
+
const questionsDir = getQuestionStateDirForRenderer(cwd, sessionId);
|
|
399
|
+
if (!existsSync(questionsDir))
|
|
400
|
+
return [];
|
|
401
|
+
const live = [];
|
|
402
|
+
const excludeRecordPath = options.excludeRecordPath;
|
|
403
|
+
for (const entry of readdirSync(questionsDir, { withFileTypes: true })) {
|
|
404
|
+
if (!entry.isFile() || !entry.name.endsWith('.json'))
|
|
405
|
+
continue;
|
|
406
|
+
const recordPath = join(questionsDir, entry.name);
|
|
407
|
+
if (excludeRecordPath && recordPath === excludeRecordPath)
|
|
408
|
+
continue;
|
|
409
|
+
const record = readJsonFileIfExists(recordPath);
|
|
410
|
+
if (!isQuestionRecord(record))
|
|
411
|
+
continue;
|
|
412
|
+
if (record.status !== 'prompting')
|
|
413
|
+
continue;
|
|
414
|
+
if (!isQuestionRendererAlive(record.renderer, execTmux))
|
|
415
|
+
continue;
|
|
416
|
+
live.push({ recordPath, record });
|
|
417
|
+
}
|
|
418
|
+
return live.sort((left, right) => left.record.created_at.localeCompare(right.record.created_at));
|
|
419
|
+
}
|
|
420
|
+
export function supersedeLiveQuestionsForSession(cwd, sessionId, execTmux = defaultExecTmux, options = {}) {
|
|
421
|
+
const live = findLiveQuestionsForSession(cwd, sessionId, execTmux, options);
|
|
422
|
+
const nowIso = options.nowIso ?? new Date().toISOString();
|
|
423
|
+
for (const item of live) {
|
|
424
|
+
writeQuestionRecordSync(item.recordPath, {
|
|
425
|
+
...item.record,
|
|
426
|
+
status: 'superseded',
|
|
427
|
+
updated_at: nowIso,
|
|
428
|
+
error: {
|
|
429
|
+
code: 'question_superseded',
|
|
430
|
+
message: 'Question was superseded by a newer omx question launch for the same session.',
|
|
431
|
+
at: nowIso,
|
|
432
|
+
},
|
|
433
|
+
});
|
|
434
|
+
closeQuestionRenderer(item.record.renderer, execTmux);
|
|
435
|
+
}
|
|
436
|
+
return live;
|
|
437
|
+
}
|
|
362
438
|
export function launchQuestionRenderer(options, deps = {}) {
|
|
363
439
|
const strategy = deps.strategy ?? resolveQuestionRendererStrategy(options.env ?? process.env, undefined, {
|
|
364
440
|
cwd: options.cwd,
|
|
@@ -394,6 +470,10 @@ export function launchQuestionRenderer(options, deps = {}) {
|
|
|
394
470
|
if (safeString(env.TMUX).trim() && !isCurrentTmuxSessionAttached(execTmux, env, attachedCheckTarget)) {
|
|
395
471
|
throw new Error('omx question cannot open a visible renderer because this tmux session has no attached client. Run omx question from an attached tmux pane.');
|
|
396
472
|
}
|
|
473
|
+
supersedeLiveQuestionsForSession(options.cwd, options.sessionId, execTmux, {
|
|
474
|
+
excludeRecordPath: options.recordPath,
|
|
475
|
+
nowIso: launchedAt,
|
|
476
|
+
});
|
|
397
477
|
const sizingTarget = returnTarget || safeString(env.TMUX_PANE).trim() || undefined;
|
|
398
478
|
const availableHeight = resolveAvailablePaneHeight(execTmux, sizingTarget);
|
|
399
479
|
const requestedHeight = computeAdaptiveQuestionPaneHeight(availableHeight, estimateQuestionContentLines(readQuestionRecordForSizing(options.recordPath)));
|
|
@@ -450,6 +530,10 @@ export function launchQuestionRenderer(options, deps = {}) {
|
|
|
450
530
|
};
|
|
451
531
|
}
|
|
452
532
|
if (strategy === 'detached-tmux') {
|
|
533
|
+
supersedeLiveQuestionsForSession(options.cwd, options.sessionId, execTmux, {
|
|
534
|
+
excludeRecordPath: options.recordPath,
|
|
535
|
+
nowIso: launchedAt,
|
|
536
|
+
});
|
|
453
537
|
const baseName = basename(options.recordPath, '.json').replace(/[^A-Za-z0-9_-]+/g, '-').slice(0, 32) || 'question';
|
|
454
538
|
const sessionName = `omx-question-${baseName}`;
|
|
455
539
|
const output = execTmux([
|