oh-my-codex 0.18.6 → 0.18.7
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 +56 -7
- 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 +14 -5
- package/dist/agents/__tests__/native-config.test.js.map +1 -1
- package/dist/agents/definitions.d.ts +2 -0
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +4 -1
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/native-config.js +2 -2
- 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__/index.test.js +24 -4
- 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__/question.test.js +100 -0
- package/dist/cli/__tests__/question.test.js.map +1 -1
- package/dist/cli/__tests__/setup-refresh.test.js +18 -0
- package/dist/cli/__tests__/setup-refresh.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/index.d.ts +3 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +191 -36
- package/dist/cli/index.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/config/__tests__/deep-interview.test.js +7 -6
- package/dist/config/__tests__/deep-interview.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/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__/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 +649 -11
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js +63 -0
- package/dist/hooks/__tests__/notify-fallback-watcher.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/deep-interview-config-instruction.js +1 -1
- package/dist/hooks/deep-interview-config-instruction.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 +171 -21
- 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/session.d.ts +2 -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 +35 -0
- package/dist/hud/__tests__/authority.test.js.map +1 -1
- package/dist/hud/__tests__/index.test.js +168 -2
- package/dist/hud/__tests__/index.test.js.map +1 -1
- package/dist/hud/__tests__/reconcile.test.js +67 -13
- package/dist/hud/__tests__/reconcile.test.js.map +1 -1
- package/dist/hud/__tests__/state.test.js +80 -0
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/__tests__/tmux.test.js +134 -1
- package/dist/hud/__tests__/tmux.test.js.map +1 -1
- package/dist/hud/authority.d.ts.map +1 -1
- package/dist/hud/authority.js +13 -2
- package/dist/hud/authority.js.map +1 -1
- package/dist/hud/index.d.ts +17 -0
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +64 -10
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/reconcile.js +1 -1
- package/dist/hud/reconcile.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +16 -1
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/tmux.d.ts +2 -0
- package/dist/hud/tmux.d.ts.map +1 -1
- package/dist/hud/tmux.js +39 -2
- package/dist/hud/tmux.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-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/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 +1487 -34
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +356 -38
- 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/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/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.js +11 -2
- package/dist/scripts/notify-hook.js.map +1 -1
- package/dist/state/__tests__/operations.test.js +1012 -1
- package/dist/state/__tests__/operations.test.js.map +1 -1
- package/dist/state/__tests__/skill-active.test.js +59 -1
- package/dist/state/__tests__/skill-active.test.js.map +1 -1
- package/dist/state/__tests__/workflow-transition.test.js +73 -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 +102 -0
- package/dist/state/operations.js.map +1 -1
- package/dist/state/skill-active.d.ts.map +1 -1
- package/dist/state/skill-active.js +33 -3
- 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 +28 -1
- 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 +51 -2
- package/dist/team/__tests__/runtime.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 +45 -0
- 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/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/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.map +1 -1
- package/dist/team/tmux-session.js +19 -1
- 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/package.json +1 -1
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/oh-my-codex/skills/autopilot/SKILL.md +10 -5
- package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +9 -4
- 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/worker/SKILL.md +14 -0
- package/skills/autopilot/SKILL.md +10 -5
- package/skills/deep-interview/SKILL.md +9 -4
- package/skills/ralplan/SKILL.md +12 -0
- package/skills/team/SKILL.md +16 -0
- package/skills/worker/SKILL.md +14 -0
- package/src/scripts/__tests__/codex-native-hook.test.ts +2202 -523
- package/src/scripts/codex-native-hook.ts +444 -36
- package/src/scripts/codex-native-pre-post.ts +80 -0
- 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/team-worker-stop.ts +193 -52
- package/src/scripts/notify-hook.ts +14 -2
|
@@ -4,12 +4,13 @@ import { tmpdir } from 'node:os';
|
|
|
4
4
|
import { join } from 'node:path';
|
|
5
5
|
import { after, describe, it } from 'node:test';
|
|
6
6
|
import { OmxQuestionError } from '../client.js';
|
|
7
|
-
import { readAutopilotDeepInterviewQuestionWaitState } from '../autopilot-wait.js';
|
|
7
|
+
import { AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV, markAutopilotDeepInterviewQuestionWaiting, readAutopilotDeepInterviewQuestionWaitState, } from '../autopilot-wait.js';
|
|
8
8
|
import { reconcileDeepInterviewQuestionEnforcementFromAnsweredRecords, runDeepInterviewQuestion, } from '../deep-interview.js';
|
|
9
9
|
const tempDirs = [];
|
|
10
10
|
const originalOmxRoot = process.env.OMX_ROOT;
|
|
11
11
|
const originalOmxStateRoot = process.env.OMX_STATE_ROOT;
|
|
12
12
|
const originalOmxTeamStateRoot = process.env.OMX_TEAM_STATE_ROOT;
|
|
13
|
+
const originalQuestionWaitLockTimeout = process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS;
|
|
13
14
|
async function makeRepo() {
|
|
14
15
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-deep-interview-question-'));
|
|
15
16
|
tempDirs.push(cwd);
|
|
@@ -41,6 +42,10 @@ after(async () => {
|
|
|
41
42
|
delete process.env.OMX_TEAM_STATE_ROOT;
|
|
42
43
|
else
|
|
43
44
|
process.env.OMX_TEAM_STATE_ROOT = originalOmxTeamStateRoot;
|
|
45
|
+
if (originalQuestionWaitLockTimeout === undefined)
|
|
46
|
+
delete process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS;
|
|
47
|
+
else
|
|
48
|
+
process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS = originalQuestionWaitLockTimeout;
|
|
44
49
|
await Promise.all(tempDirs.splice(0).map((dir) => rm(dir, { recursive: true, force: true })));
|
|
45
50
|
});
|
|
46
51
|
describe('runDeepInterviewQuestion', { concurrency: false }, () => {
|
|
@@ -229,6 +234,156 @@ describe('runDeepInterviewQuestion', { concurrency: false }, () => {
|
|
|
229
234
|
});
|
|
230
235
|
});
|
|
231
236
|
describe('runDeepInterviewQuestion autopilot wait bridge', { concurrency: false }, () => {
|
|
237
|
+
it('does not overwrite an already pending Autopilot deep-interview question', { concurrency: false }, async () => {
|
|
238
|
+
const cwd = await makeRepo();
|
|
239
|
+
const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-di');
|
|
240
|
+
const autopilotPath = join(sessionDir, 'autopilot-state.json');
|
|
241
|
+
await writeFile(autopilotPath, JSON.stringify({
|
|
242
|
+
active: true,
|
|
243
|
+
mode: 'autopilot',
|
|
244
|
+
current_phase: 'waiting-for-user',
|
|
245
|
+
run_outcome: 'blocked_on_user',
|
|
246
|
+
lifecycle_outcome: 'askuserQuestion',
|
|
247
|
+
session_id: 'sess-di',
|
|
248
|
+
state: {
|
|
249
|
+
deep_interview_question: {
|
|
250
|
+
status: 'waiting_for_user',
|
|
251
|
+
source: 'omx-question',
|
|
252
|
+
obligation_id: 'obligation-original',
|
|
253
|
+
previous_phase: 'deep-interview',
|
|
254
|
+
requested_at: '2026-04-19T00:00:00.000Z',
|
|
255
|
+
},
|
|
256
|
+
},
|
|
257
|
+
}, null, 2));
|
|
258
|
+
const started = await markAutopilotDeepInterviewQuestionWaiting(cwd, 'sess-di', {
|
|
259
|
+
obligation_id: 'obligation-new',
|
|
260
|
+
source: 'omx-question',
|
|
261
|
+
status: 'pending',
|
|
262
|
+
lifecycle_outcome: 'askuserQuestion',
|
|
263
|
+
requested_at: '2026-04-19T00:01:00.000Z',
|
|
264
|
+
});
|
|
265
|
+
assert.equal(started, false);
|
|
266
|
+
const autopilotState = JSON.parse(await readFile(autopilotPath, 'utf-8'));
|
|
267
|
+
assert.equal(autopilotState.state?.deep_interview_question?.obligation_id, 'obligation-original');
|
|
268
|
+
assert.equal(autopilotState.state?.deep_interview_question?.requested_at, '2026-04-19T00:00:00.000Z');
|
|
269
|
+
});
|
|
270
|
+
it('serializes concurrent Autopilot deep-interview question ownership claims', { concurrency: false }, async () => {
|
|
271
|
+
const cwd = await makeRepo();
|
|
272
|
+
const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-di');
|
|
273
|
+
const autopilotPath = join(sessionDir, 'autopilot-state.json');
|
|
274
|
+
await writeFile(autopilotPath, JSON.stringify({
|
|
275
|
+
active: true,
|
|
276
|
+
mode: 'autopilot',
|
|
277
|
+
current_phase: 'deep-interview',
|
|
278
|
+
session_id: 'sess-di',
|
|
279
|
+
state: { deep_interview_gate: { status: 'required' } },
|
|
280
|
+
}, null, 2));
|
|
281
|
+
const obligations = Array.from({ length: 24 }, (_, index) => ({
|
|
282
|
+
obligation_id: `obligation-${index}`,
|
|
283
|
+
source: 'omx-question',
|
|
284
|
+
status: 'pending',
|
|
285
|
+
lifecycle_outcome: 'askuserQuestion',
|
|
286
|
+
requested_at: `2026-04-19T00:00:${String(index).padStart(2, '0')}.000Z`,
|
|
287
|
+
}));
|
|
288
|
+
const results = await Promise.all(obligations.map((obligation) => markAutopilotDeepInterviewQuestionWaiting(cwd, 'sess-di', obligation)));
|
|
289
|
+
assert.equal(results.filter(Boolean).length, 1);
|
|
290
|
+
const winningObligationIds = obligations
|
|
291
|
+
.filter((_, index) => results[index])
|
|
292
|
+
.map((obligation) => obligation.obligation_id);
|
|
293
|
+
assert.equal(winningObligationIds.length, 1);
|
|
294
|
+
const autopilotState = JSON.parse(await readFile(autopilotPath, 'utf-8'));
|
|
295
|
+
assert.equal(autopilotState.current_phase, 'waiting-for-user');
|
|
296
|
+
assert.equal(autopilotState.run_outcome, 'blocked_on_user');
|
|
297
|
+
assert.equal(autopilotState.lifecycle_outcome, 'askuserQuestion');
|
|
298
|
+
assert.equal(autopilotState.state?.deep_interview_question?.status, 'waiting_for_user');
|
|
299
|
+
assert.equal(autopilotState.state?.deep_interview_question?.obligation_id, winningObligationIds[0]);
|
|
300
|
+
});
|
|
301
|
+
it('blocks instead of prompting when the Autopilot wait claim cannot acquire its lock', { concurrency: false }, async () => {
|
|
302
|
+
const previousTimeout = process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS;
|
|
303
|
+
process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS = '1';
|
|
304
|
+
try {
|
|
305
|
+
const cwd = await makeRepo();
|
|
306
|
+
const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-di');
|
|
307
|
+
const autopilotPath = join(sessionDir, 'autopilot-state.json');
|
|
308
|
+
await writeFile(autopilotPath, JSON.stringify({
|
|
309
|
+
active: true,
|
|
310
|
+
mode: 'autopilot',
|
|
311
|
+
current_phase: 'deep-interview',
|
|
312
|
+
session_id: 'sess-di',
|
|
313
|
+
state: { deep_interview_gate: { status: 'required' } },
|
|
314
|
+
}, null, 2));
|
|
315
|
+
await mkdir(`${autopilotPath}.deep-interview-question.lock`);
|
|
316
|
+
let runnerCalled = false;
|
|
317
|
+
await assert.rejects(runDeepInterviewQuestion({ session_id: 'sess-di', question: 'Clarify?', allow_other: true }, {
|
|
318
|
+
cwd,
|
|
319
|
+
argv1: '/repo/dist/cli/omx.js',
|
|
320
|
+
runner: async () => {
|
|
321
|
+
runnerCalled = true;
|
|
322
|
+
return { code: 1, stdout: '', stderr: '' };
|
|
323
|
+
},
|
|
324
|
+
}), (error) => error instanceof OmxQuestionError
|
|
325
|
+
&& error.code === 'active_execution_mode_blocked');
|
|
326
|
+
assert.equal(runnerCalled, false);
|
|
327
|
+
assert.equal(await readAutopilotDeepInterviewQuestionWaitState(cwd, 'sess-di'), null);
|
|
328
|
+
const deepInterviewState = JSON.parse(await readFile(join(sessionDir, 'deep-interview-state.json'), 'utf-8'));
|
|
329
|
+
assert.equal(deepInterviewState.question_enforcement, undefined);
|
|
330
|
+
}
|
|
331
|
+
finally {
|
|
332
|
+
if (previousTimeout === undefined)
|
|
333
|
+
delete process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS;
|
|
334
|
+
else
|
|
335
|
+
process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS = previousTimeout;
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
it('fails terminally instead of replacing another pending Autopilot question owner', { concurrency: false }, async () => {
|
|
339
|
+
const cwd = await makeRepo();
|
|
340
|
+
const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-di');
|
|
341
|
+
const autopilotPath = join(sessionDir, 'autopilot-state.json');
|
|
342
|
+
const deepInterviewPath = join(sessionDir, 'deep-interview-state.json');
|
|
343
|
+
await writeFile(autopilotPath, JSON.stringify({
|
|
344
|
+
active: true,
|
|
345
|
+
mode: 'autopilot',
|
|
346
|
+
current_phase: 'waiting-for-user',
|
|
347
|
+
run_outcome: 'blocked_on_user',
|
|
348
|
+
lifecycle_outcome: 'askuserQuestion',
|
|
349
|
+
session_id: 'sess-di',
|
|
350
|
+
state: {
|
|
351
|
+
deep_interview_question: {
|
|
352
|
+
status: 'waiting_for_user',
|
|
353
|
+
source: 'omx-question',
|
|
354
|
+
obligation_id: 'obligation-original',
|
|
355
|
+
previous_phase: 'deep-interview',
|
|
356
|
+
requested_at: '2026-04-19T00:00:00.000Z',
|
|
357
|
+
},
|
|
358
|
+
},
|
|
359
|
+
}, null, 2));
|
|
360
|
+
await writeFile(deepInterviewPath, JSON.stringify({
|
|
361
|
+
active: false,
|
|
362
|
+
mode: 'deep-interview',
|
|
363
|
+
session_id: 'sess-di',
|
|
364
|
+
question_enforcement: {
|
|
365
|
+
obligation_id: 'obligation-original',
|
|
366
|
+
source: 'omx-question',
|
|
367
|
+
status: 'pending',
|
|
368
|
+
lifecycle_outcome: 'askuserQuestion',
|
|
369
|
+
requested_at: '2026-04-19T00:00:00.000Z',
|
|
370
|
+
},
|
|
371
|
+
}, null, 2));
|
|
372
|
+
let runnerCalled = false;
|
|
373
|
+
await assert.rejects(runDeepInterviewQuestion({ session_id: 'sess-di', question: 'Clarify?', allow_other: true }, {
|
|
374
|
+
cwd,
|
|
375
|
+
argv1: '/repo/dist/cli/omx.js',
|
|
376
|
+
runner: async () => {
|
|
377
|
+
runnerCalled = true;
|
|
378
|
+
return { code: 1, stdout: '', stderr: '' };
|
|
379
|
+
},
|
|
380
|
+
}), (error) => error instanceof OmxQuestionError
|
|
381
|
+
&& error.code === 'active_execution_mode_blocked');
|
|
382
|
+
assert.equal(runnerCalled, false);
|
|
383
|
+
const deepInterviewState = JSON.parse(await readFile(deepInterviewPath, 'utf-8'));
|
|
384
|
+
assert.equal(deepInterviewState.question_enforcement?.obligation_id, 'obligation-original');
|
|
385
|
+
assert.equal(deepInterviewState.question_enforcement?.status, 'pending');
|
|
386
|
+
});
|
|
232
387
|
it('persists readable autopilot waiting-for-user state while omx question is in flight and restores it after answer', { concurrency: false }, async () => {
|
|
233
388
|
const cwd = await makeRepo();
|
|
234
389
|
const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-di');
|
|
@@ -243,10 +398,11 @@ describe('runDeepInterviewQuestion autopilot wait bridge', { concurrency: false
|
|
|
243
398
|
state: { deep_interview_gate: { status: 'required' } },
|
|
244
399
|
}, null, 2));
|
|
245
400
|
let observedWait = false;
|
|
246
|
-
const runner = async () => {
|
|
401
|
+
const runner = async (_command, _args, runnerOptions) => {
|
|
247
402
|
const waitState = await readAutopilotDeepInterviewQuestionWaitState(cwd, 'sess-di');
|
|
248
403
|
assert.ok(waitState);
|
|
249
404
|
assert.equal(waitState.previousPhase, 'deep-interview');
|
|
405
|
+
assert.equal(runnerOptions.env[AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV], waitState.obligationId);
|
|
250
406
|
const autopilotState = JSON.parse(await readFile(autopilotPath, 'utf-8'));
|
|
251
407
|
assert.equal(autopilotState.active, true);
|
|
252
408
|
assert.equal(autopilotState.current_phase, 'waiting-for-user');
|
|
@@ -277,6 +433,8 @@ describe('runDeepInterviewQuestion autopilot wait bridge', { concurrency: false
|
|
|
277
433
|
assert.equal(finalAutopilot.run_outcome, undefined);
|
|
278
434
|
assert.equal(finalAutopilot.lifecycle_outcome, undefined);
|
|
279
435
|
assert.equal(finalAutopilot.state?.deep_interview_question?.status, 'satisfied');
|
|
436
|
+
assert.equal(finalAutopilot.state?.deep_interview_question?.question_id, 'question-autopilot-1');
|
|
437
|
+
assert.ok(finalAutopilot.state?.deep_interview_question?.satisfied_at);
|
|
280
438
|
});
|
|
281
439
|
});
|
|
282
440
|
//# sourceMappingURL=deep-interview.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-interview.test.js","sourceRoot":"","sources":["../../../src/question/__tests__/deep-interview.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deep-interview.test.js","sourceRoot":"","sources":["../../../src/question/__tests__/deep-interview.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { mkdtemp, mkdir, writeFile } from 'node:fs/promises';
|
|
|
3
3
|
import { tmpdir } from 'node:os';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
5
|
import { after, describe, it } from 'node:test';
|
|
6
|
+
import { AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV } from '../autopilot-wait.js';
|
|
6
7
|
import { evaluateQuestionPolicy } from '../policy.js';
|
|
7
8
|
const tempDirs = [];
|
|
8
9
|
const originalOmxRoot = process.env.OMX_ROOT;
|
|
@@ -157,7 +158,7 @@ describe('evaluateQuestionPolicy autopilot deep-interview wait', { concurrency:
|
|
|
157
158
|
assert.equal(unrelatedSource.allowed, false);
|
|
158
159
|
assert.equal(unrelatedSource.code, 'active_execution_mode_blocked');
|
|
159
160
|
});
|
|
160
|
-
it('
|
|
161
|
+
it('blocks duplicate deep-interview questions while autopilot is already waiting', { concurrency: false }, async () => {
|
|
161
162
|
const cwd = await makeRepo();
|
|
162
163
|
const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-auto');
|
|
163
164
|
await mkdir(sessionDir, { recursive: true });
|
|
@@ -184,13 +185,37 @@ describe('evaluateQuestionPolicy autopilot deep-interview wait', { concurrency:
|
|
|
184
185
|
session_id: 'sess-auto',
|
|
185
186
|
}, null, 2));
|
|
186
187
|
await writeFile(join(cwd, '.omx', 'state', 'session.json'), JSON.stringify({ session_id: 'sess-auto' }));
|
|
187
|
-
const
|
|
188
|
+
const duplicateQuestion = await evaluateQuestionPolicy({
|
|
188
189
|
cwd,
|
|
189
190
|
explicitSessionId: 'sess-auto',
|
|
190
191
|
questionSource: 'deep-interview',
|
|
191
192
|
env: { ...process.env, OMX_TEAM_WORKER: '' },
|
|
192
193
|
});
|
|
193
|
-
assert.equal(
|
|
194
|
+
assert.equal(duplicateQuestion.allowed, false);
|
|
195
|
+
assert.equal(duplicateQuestion.code, 'active_execution_mode_blocked');
|
|
196
|
+
const owningQuestion = await evaluateQuestionPolicy({
|
|
197
|
+
cwd,
|
|
198
|
+
explicitSessionId: 'sess-auto',
|
|
199
|
+
questionSource: 'deep-interview',
|
|
200
|
+
env: {
|
|
201
|
+
...process.env,
|
|
202
|
+
OMX_TEAM_WORKER: '',
|
|
203
|
+
[AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV]: 'obligation-1',
|
|
204
|
+
},
|
|
205
|
+
});
|
|
206
|
+
assert.equal(owningQuestion.allowed, true);
|
|
207
|
+
const wrongOwnerQuestion = await evaluateQuestionPolicy({
|
|
208
|
+
cwd,
|
|
209
|
+
explicitSessionId: 'sess-auto',
|
|
210
|
+
questionSource: 'deep-interview',
|
|
211
|
+
env: {
|
|
212
|
+
...process.env,
|
|
213
|
+
OMX_TEAM_WORKER: '',
|
|
214
|
+
[AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV]: 'obligation-other',
|
|
215
|
+
},
|
|
216
|
+
});
|
|
217
|
+
assert.equal(wrongOwnerQuestion.allowed, false);
|
|
218
|
+
assert.equal(wrongOwnerQuestion.code, 'active_execution_mode_blocked');
|
|
194
219
|
const unrelatedSource = await evaluateQuestionPolicy({
|
|
195
220
|
cwd,
|
|
196
221
|
explicitSessionId: 'sess-auto',
|
|
@@ -209,5 +234,40 @@ describe('evaluateQuestionPolicy autopilot deep-interview wait', { concurrency:
|
|
|
209
234
|
assert.equal(unrelatedMode.allowed, false);
|
|
210
235
|
assert.equal(unrelatedMode.code, 'active_execution_mode_blocked');
|
|
211
236
|
});
|
|
237
|
+
it('rejects malformed autopilot waits that are not for the deep-interview child phase', { concurrency: false }, async () => {
|
|
238
|
+
const cwd = await makeRepo();
|
|
239
|
+
const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-auto-ralplan-wait');
|
|
240
|
+
await mkdir(sessionDir, { recursive: true });
|
|
241
|
+
await writeFile(join(sessionDir, 'autopilot-state.json'), JSON.stringify({
|
|
242
|
+
mode: 'autopilot',
|
|
243
|
+
active: true,
|
|
244
|
+
current_phase: 'waiting-for-user',
|
|
245
|
+
run_outcome: 'blocked_on_user',
|
|
246
|
+
lifecycle_outcome: 'askuserQuestion',
|
|
247
|
+
state: {
|
|
248
|
+
deep_interview_question: {
|
|
249
|
+
status: 'waiting_for_user',
|
|
250
|
+
source: 'omx-question',
|
|
251
|
+
obligation_id: 'obligation-ralplan',
|
|
252
|
+
previous_phase: 'ralplan',
|
|
253
|
+
},
|
|
254
|
+
},
|
|
255
|
+
}, null, 2));
|
|
256
|
+
await writeFile(join(sessionDir, 'skill-active-state.json'), JSON.stringify({
|
|
257
|
+
active: true,
|
|
258
|
+
skill: 'autopilot',
|
|
259
|
+
phase: 'ralplan',
|
|
260
|
+
active_skills: [{ skill: 'autopilot', phase: 'ralplan', active: true, session_id: 'sess-auto-ralplan-wait' }],
|
|
261
|
+
session_id: 'sess-auto-ralplan-wait',
|
|
262
|
+
}, null, 2));
|
|
263
|
+
const result = await evaluateQuestionPolicy({
|
|
264
|
+
cwd,
|
|
265
|
+
explicitSessionId: 'sess-auto-ralplan-wait',
|
|
266
|
+
questionSource: 'deep-interview',
|
|
267
|
+
env: { ...process.env, OMX_TEAM_WORKER: '' },
|
|
268
|
+
});
|
|
269
|
+
assert.equal(result.allowed, false);
|
|
270
|
+
assert.equal(result.code, 'active_execution_mode_blocked');
|
|
271
|
+
});
|
|
212
272
|
});
|
|
213
273
|
//# sourceMappingURL=policy.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.test.js","sourceRoot":"","sources":["../../../src/question/__tests__/policy.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"policy.test.js","sourceRoot":"","sources":["../../../src/question/__tests__/policy.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import assert from 'node:assert/strict';
|
|
2
|
-
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
3
3
|
import { tmpdir } from 'node:os';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
5
|
import { describe, it } from 'node:test';
|
|
6
|
-
import { computeAdaptiveQuestionPaneHeight, formatQuestionAnswerForInjection, formatQuestionAnswersForInjection, injectQuestionAnswerToPane, injectQuestionAnswersToPane, launchQuestionRenderer, resolveQuestionRendererStrategy, } from '../renderer.js';
|
|
6
|
+
import { closeQuestionRenderer, computeAdaptiveQuestionPaneHeight, formatQuestionAnswerForInjection, formatQuestionAnswersForInjection, injectQuestionAnswerToPane, findLiveQuestionsForSession, injectQuestionAnswersToPane, launchQuestionRenderer, resolveQuestionRendererStrategy, supersedeLiveQuestionsForSession, } from '../renderer.js';
|
|
7
7
|
import { buildSendPaneArgvs } from '../../notifications/tmux-detector.js';
|
|
8
8
|
describe('resolveQuestionRendererStrategy', () => {
|
|
9
9
|
it('prefers inside-tmux when TMUX is present', () => {
|
|
@@ -50,6 +50,37 @@ describe('resolveQuestionRendererStrategy', () => {
|
|
|
50
50
|
assert.equal(resolveQuestionRendererStrategy({}, undefined), 'unsupported');
|
|
51
51
|
});
|
|
52
52
|
});
|
|
53
|
+
describe('question renderer cleanup', () => {
|
|
54
|
+
it('kills tmux pane renderers by target pane id', () => {
|
|
55
|
+
const calls = [];
|
|
56
|
+
const closed = closeQuestionRenderer({
|
|
57
|
+
renderer: 'tmux-pane',
|
|
58
|
+
target: '%42',
|
|
59
|
+
launched_at: '2026-05-11T00:00:00.000Z',
|
|
60
|
+
}, (args) => {
|
|
61
|
+
calls.push(args);
|
|
62
|
+
return '';
|
|
63
|
+
});
|
|
64
|
+
assert.equal(closed, true);
|
|
65
|
+
assert.deepEqual(calls, [['kill-pane', '-t', '%42']]);
|
|
66
|
+
});
|
|
67
|
+
it('ignores invalid, noop, and Windows process renderers during cleanup', () => {
|
|
68
|
+
const calls = [];
|
|
69
|
+
assert.equal(closeQuestionRenderer(undefined, (args) => { calls.push(args); return ''; }), false);
|
|
70
|
+
assert.equal(closeQuestionRenderer({
|
|
71
|
+
renderer: 'tmux-session',
|
|
72
|
+
target: 'test-noop-renderer',
|
|
73
|
+
launched_at: '2026-05-11T00:00:00.000Z',
|
|
74
|
+
}, (args) => { calls.push(args); return ''; }), false);
|
|
75
|
+
assert.equal(closeQuestionRenderer({
|
|
76
|
+
renderer: 'windows-console',
|
|
77
|
+
target: 'pid:1234',
|
|
78
|
+
pid: 1234,
|
|
79
|
+
launched_at: '2026-05-11T00:00:00.000Z',
|
|
80
|
+
}, (args) => { calls.push(args); return ''; }), false);
|
|
81
|
+
assert.deepEqual(calls, []);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
53
84
|
describe('adaptive question pane sizing', () => {
|
|
54
85
|
it('computes large adaptive heights with caps and fallback-sized terminals', () => {
|
|
55
86
|
assert.equal(computeAdaptiveQuestionPaneHeight(50, 10), 30);
|
|
@@ -704,4 +735,162 @@ describe('question answer injection', () => {
|
|
|
704
735
|
assert.deepEqual(sleeps, [120, 100]);
|
|
705
736
|
});
|
|
706
737
|
});
|
|
738
|
+
describe('question renderer in-flight dedupe', () => {
|
|
739
|
+
function writeQuestionRecord(path, overrides) {
|
|
740
|
+
writeFileSync(path, JSON.stringify({
|
|
741
|
+
kind: 'omx.question/v1',
|
|
742
|
+
question_id: 'question-default',
|
|
743
|
+
session_id: 'sess-dedupe',
|
|
744
|
+
created_at: '2026-05-27T00:00:00.000Z',
|
|
745
|
+
updated_at: '2026-05-27T00:00:00.000Z',
|
|
746
|
+
status: 'prompting',
|
|
747
|
+
question: 'Pick one',
|
|
748
|
+
options: [{ label: 'A', value: 'a' }],
|
|
749
|
+
allow_other: false,
|
|
750
|
+
other_label: 'Other',
|
|
751
|
+
multi_select: false,
|
|
752
|
+
type: 'single-answerable',
|
|
753
|
+
questions: [{
|
|
754
|
+
id: 'q-1',
|
|
755
|
+
question: 'Pick one',
|
|
756
|
+
options: [{ label: 'A', value: 'a' }],
|
|
757
|
+
allow_other: false,
|
|
758
|
+
other_label: 'Other',
|
|
759
|
+
multi_select: false,
|
|
760
|
+
type: 'single-answerable',
|
|
761
|
+
}],
|
|
762
|
+
renderer: {
|
|
763
|
+
renderer: 'tmux-pane',
|
|
764
|
+
target: '%41',
|
|
765
|
+
launched_at: '2026-05-27T00:00:00.000Z',
|
|
766
|
+
},
|
|
767
|
+
...overrides,
|
|
768
|
+
}, null, 2));
|
|
769
|
+
}
|
|
770
|
+
it('finds only live prompting question renderers for the same session', () => {
|
|
771
|
+
const cwd = mkdtempSync(join(tmpdir(), 'omx-question-dedupe-find-'));
|
|
772
|
+
try {
|
|
773
|
+
const dir = join(cwd, '.omx', 'state', 'sessions', 'sess-dedupe', 'questions');
|
|
774
|
+
mkdirSync(dir, { recursive: true });
|
|
775
|
+
writeQuestionRecord(join(dir, 'question-live.json'), {
|
|
776
|
+
question_id: 'question-live',
|
|
777
|
+
created_at: '2026-05-27T00:00:01.000Z',
|
|
778
|
+
renderer: { renderer: 'tmux-pane', target: '%41', launched_at: '2026-05-27T00:00:01.000Z' },
|
|
779
|
+
});
|
|
780
|
+
writeQuestionRecord(join(dir, 'question-dead.json'), {
|
|
781
|
+
question_id: 'question-dead',
|
|
782
|
+
created_at: '2026-05-27T00:00:02.000Z',
|
|
783
|
+
renderer: { renderer: 'tmux-pane', target: '%42', launched_at: '2026-05-27T00:00:02.000Z' },
|
|
784
|
+
});
|
|
785
|
+
writeQuestionRecord(join(dir, 'question-answered.json'), {
|
|
786
|
+
question_id: 'question-answered',
|
|
787
|
+
status: 'answered',
|
|
788
|
+
created_at: '2026-05-27T00:00:03.000Z',
|
|
789
|
+
renderer: { renderer: 'tmux-pane', target: '%43', launched_at: '2026-05-27T00:00:03.000Z' },
|
|
790
|
+
});
|
|
791
|
+
const live = findLiveQuestionsForSession(cwd, 'sess-dedupe', (args) => {
|
|
792
|
+
if (args[0] === 'list-panes' && args[2] === '%41')
|
|
793
|
+
return '0\t%41\n';
|
|
794
|
+
if (args[0] === 'list-panes' && args[2] === '%42')
|
|
795
|
+
throw new Error('missing pane');
|
|
796
|
+
if (args[0] === 'list-panes' && args[2] === '%43')
|
|
797
|
+
return '0\t%43\n';
|
|
798
|
+
return '';
|
|
799
|
+
});
|
|
800
|
+
assert.deepEqual(live.map((item) => item.record.question_id), ['question-live']);
|
|
801
|
+
}
|
|
802
|
+
finally {
|
|
803
|
+
rmSync(cwd, { recursive: true, force: true });
|
|
804
|
+
}
|
|
805
|
+
});
|
|
806
|
+
it('marks prior live prompting panes superseded and kills them before a new tmux split', () => {
|
|
807
|
+
const cwd = mkdtempSync(join(tmpdir(), 'omx-question-dedupe-launch-'));
|
|
808
|
+
try {
|
|
809
|
+
const dir = join(cwd, '.omx', 'state', 'sessions', 'sess-dedupe', 'questions');
|
|
810
|
+
mkdirSync(dir, { recursive: true });
|
|
811
|
+
const priorPath = join(dir, 'question-prior.json');
|
|
812
|
+
const nextPath = join(dir, 'question-next.json');
|
|
813
|
+
writeQuestionRecord(priorPath, {
|
|
814
|
+
question_id: 'question-prior',
|
|
815
|
+
renderer: {
|
|
816
|
+
renderer: 'tmux-pane',
|
|
817
|
+
target: '%41',
|
|
818
|
+
launched_at: '2026-05-27T00:00:00.000Z',
|
|
819
|
+
},
|
|
820
|
+
});
|
|
821
|
+
writeQuestionRecord(nextPath, {
|
|
822
|
+
question_id: 'question-next',
|
|
823
|
+
status: 'pending',
|
|
824
|
+
renderer: undefined,
|
|
825
|
+
});
|
|
826
|
+
const calls = [];
|
|
827
|
+
const result = launchQuestionRenderer({
|
|
828
|
+
cwd,
|
|
829
|
+
recordPath: nextPath,
|
|
830
|
+
sessionId: 'sess-dedupe',
|
|
831
|
+
nowIso: '2026-05-27T00:01:00.000Z',
|
|
832
|
+
env: { TMUX: '/tmp/tmux-demo', TMUX_PANE: '%11' },
|
|
833
|
+
}, {
|
|
834
|
+
strategy: 'inside-tmux',
|
|
835
|
+
execTmux: (args) => {
|
|
836
|
+
calls.push(args);
|
|
837
|
+
if (args[0] === 'display-message' && args.includes('#{session_attached}'))
|
|
838
|
+
return '1\n';
|
|
839
|
+
if (args[0] === 'display-message' && args.includes('#{pane_height}'))
|
|
840
|
+
return '40\n';
|
|
841
|
+
if (args[0] === 'list-panes' && args[2] === '%41')
|
|
842
|
+
return '0\t%41\n';
|
|
843
|
+
if (args[0] === 'kill-pane')
|
|
844
|
+
return '';
|
|
845
|
+
if (args[0] === 'split-window')
|
|
846
|
+
return '%44\n';
|
|
847
|
+
if (args[0] === 'list-panes' && args[2] === '%44')
|
|
848
|
+
return '0\t%44\n';
|
|
849
|
+
return '';
|
|
850
|
+
},
|
|
851
|
+
sleepSync: () => { },
|
|
852
|
+
});
|
|
853
|
+
assert.equal(result.target, '%44');
|
|
854
|
+
const prior = JSON.parse(readFileSync(priorPath, 'utf-8'));
|
|
855
|
+
assert.equal(prior.status, 'superseded');
|
|
856
|
+
assert.equal(prior.error?.code, 'question_superseded');
|
|
857
|
+
assert.equal(prior.updated_at, '2026-05-27T00:01:00.000Z');
|
|
858
|
+
const killIndex = calls.findIndex((call) => call.join(' ') === 'kill-pane -t %41');
|
|
859
|
+
const splitIndex = calls.findIndex((call) => call[0] === 'split-window');
|
|
860
|
+
assert.ok(killIndex >= 0);
|
|
861
|
+
assert.ok(splitIndex > killIndex);
|
|
862
|
+
}
|
|
863
|
+
finally {
|
|
864
|
+
rmSync(cwd, { recursive: true, force: true });
|
|
865
|
+
}
|
|
866
|
+
});
|
|
867
|
+
it('does not supersede answered records when launching a replacement renderer', () => {
|
|
868
|
+
const cwd = mkdtempSync(join(tmpdir(), 'omx-question-dedupe-answered-'));
|
|
869
|
+
try {
|
|
870
|
+
const dir = join(cwd, '.omx', 'state', 'sessions', 'sess-dedupe', 'questions');
|
|
871
|
+
mkdirSync(dir, { recursive: true });
|
|
872
|
+
const answeredPath = join(dir, 'question-answered.json');
|
|
873
|
+
writeQuestionRecord(answeredPath, {
|
|
874
|
+
question_id: 'question-answered',
|
|
875
|
+
status: 'answered',
|
|
876
|
+
renderer: {
|
|
877
|
+
renderer: 'tmux-pane',
|
|
878
|
+
target: '%41',
|
|
879
|
+
launched_at: '2026-05-27T00:00:00.000Z',
|
|
880
|
+
},
|
|
881
|
+
});
|
|
882
|
+
const superseded = supersedeLiveQuestionsForSession(cwd, 'sess-dedupe', (args) => {
|
|
883
|
+
if (args[0] === 'list-panes')
|
|
884
|
+
return '0\t%41\n';
|
|
885
|
+
throw new Error(`unexpected tmux call: ${args.join(' ')}`);
|
|
886
|
+
});
|
|
887
|
+
assert.deepEqual(superseded, []);
|
|
888
|
+
const answered = JSON.parse(readFileSync(answeredPath, 'utf-8'));
|
|
889
|
+
assert.equal(answered.status, 'answered');
|
|
890
|
+
}
|
|
891
|
+
finally {
|
|
892
|
+
rmSync(cwd, { recursive: true, force: true });
|
|
893
|
+
}
|
|
894
|
+
});
|
|
895
|
+
});
|
|
707
896
|
//# sourceMappingURL=renderer.test.js.map
|