oh-my-codex 0.18.1 → 0.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cargo.lock +6 -6
- package/Cargo.toml +1 -1
- package/README.md +4 -2
- package/dist/agents/__tests__/definitions.test.js +23 -0
- package/dist/agents/__tests__/definitions.test.js.map +1 -1
- package/dist/agents/__tests__/native-config.test.js +20 -0
- package/dist/agents/__tests__/native-config.test.js.map +1 -1
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +40 -0
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/native-config.d.ts +1 -0
- package/dist/agents/native-config.d.ts.map +1 -1
- package/dist/agents/native-config.js +4 -0
- package/dist/agents/native-config.js.map +1 -1
- package/dist/auth/__tests__/config-sessions.test.d.ts +2 -0
- package/dist/auth/__tests__/config-sessions.test.d.ts.map +1 -0
- package/dist/auth/__tests__/config-sessions.test.js +48 -0
- package/dist/auth/__tests__/config-sessions.test.js.map +1 -0
- package/dist/auth/__tests__/quota-rotation.test.d.ts +2 -0
- package/dist/auth/__tests__/quota-rotation.test.d.ts.map +1 -0
- package/dist/auth/__tests__/quota-rotation.test.js +33 -0
- package/dist/auth/__tests__/quota-rotation.test.js.map +1 -0
- package/dist/auth/__tests__/redact.test.d.ts +2 -0
- package/dist/auth/__tests__/redact.test.d.ts.map +1 -0
- package/dist/auth/__tests__/redact.test.js +20 -0
- package/dist/auth/__tests__/redact.test.js.map +1 -0
- package/dist/auth/__tests__/storage.test.d.ts +2 -0
- package/dist/auth/__tests__/storage.test.d.ts.map +1 -0
- package/dist/auth/__tests__/storage.test.js +108 -0
- package/dist/auth/__tests__/storage.test.js.map +1 -0
- package/dist/auth/config.d.ts +9 -0
- package/dist/auth/config.d.ts.map +1 -0
- package/dist/auth/config.js +77 -0
- package/dist/auth/config.js.map +1 -0
- package/dist/auth/hotswap.d.ts +36 -0
- package/dist/auth/hotswap.d.ts.map +1 -0
- package/dist/auth/hotswap.js +159 -0
- package/dist/auth/hotswap.js.map +1 -0
- package/dist/auth/index.d.ts +8 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +8 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/paths.d.ts +12 -0
- package/dist/auth/paths.d.ts.map +1 -0
- package/dist/auth/paths.js +78 -0
- package/dist/auth/paths.js.map +1 -0
- package/dist/auth/quota-detector.d.ts +10 -0
- package/dist/auth/quota-detector.d.ts.map +1 -0
- package/dist/auth/quota-detector.js +40 -0
- package/dist/auth/quota-detector.js.map +1 -0
- package/dist/auth/redact.d.ts +2 -0
- package/dist/auth/redact.d.ts.map +1 -0
- package/dist/auth/redact.js +26 -0
- package/dist/auth/redact.js.map +1 -0
- package/dist/auth/rotation.d.ts +9 -0
- package/dist/auth/rotation.d.ts.map +1 -0
- package/dist/auth/rotation.js +26 -0
- package/dist/auth/rotation.js.map +1 -0
- package/dist/auth/sessions.d.ts +15 -0
- package/dist/auth/sessions.d.ts.map +1 -0
- package/dist/auth/sessions.js +62 -0
- package/dist/auth/sessions.js.map +1 -0
- package/dist/auth/storage.d.ts +27 -0
- package/dist/auth/storage.d.ts.map +1 -0
- package/dist/auth/storage.js +111 -0
- package/dist/auth/storage.js.map +1 -0
- package/dist/catalog/__tests__/generator.test.js +4 -0
- package/dist/catalog/__tests__/generator.test.js.map +1 -1
- package/dist/cli/__tests__/auth.test.d.ts +2 -0
- package/dist/cli/__tests__/auth.test.d.ts.map +1 -0
- package/dist/cli/__tests__/auth.test.js +168 -0
- package/dist/cli/__tests__/auth.test.js.map +1 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.js +112 -5
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/explore.test.js +20 -0
- package/dist/cli/__tests__/explore.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +171 -21
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js +51 -3
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/__tests__/nested-help-routing.test.js +1 -0
- package/dist/cli/__tests__/nested-help-routing.test.js.map +1 -1
- package/dist/cli/__tests__/question.test.js +2 -2
- package/dist/cli/__tests__/question.test.js.map +1 -1
- package/dist/cli/__tests__/setup-agents-overwrite.test.js +30 -1
- package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/setup-install-mode.test.js +47 -0
- package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
- package/dist/cli/auth.d.ts +4 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +89 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +190 -7
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/explore.d.ts.map +1 -1
- package/dist/cli/explore.js +12 -0
- package/dist/cli/explore.js.map +1 -1
- package/dist/cli/index.d.ts +27 -3
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +245 -47
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +11 -3
- package/dist/cli/setup.js.map +1 -1
- package/dist/config/__tests__/codex-hooks.test.js +3 -3
- package/dist/config/__tests__/codex-hooks.test.js.map +1 -1
- package/dist/config/__tests__/deep-interview.test.d.ts +2 -0
- package/dist/config/__tests__/deep-interview.test.d.ts.map +1 -0
- package/dist/config/__tests__/deep-interview.test.js +239 -0
- package/dist/config/__tests__/deep-interview.test.js.map +1 -0
- package/dist/config/__tests__/generator-idempotent.test.js +123 -0
- package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
- package/dist/config/codex-hooks.d.ts +1 -0
- package/dist/config/codex-hooks.d.ts.map +1 -1
- package/dist/config/codex-hooks.js +2 -4
- package/dist/config/codex-hooks.js.map +1 -1
- package/dist/config/deep-interview.d.ts +22 -0
- package/dist/config/deep-interview.d.ts.map +1 -0
- package/dist/config/deep-interview.js +151 -0
- package/dist/config/deep-interview.js.map +1 -0
- package/dist/config/generator.d.ts +19 -2
- package/dist/config/generator.d.ts.map +1 -1
- package/dist/config/generator.js +198 -29
- package/dist/config/generator.js.map +1 -1
- package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js +21 -0
- package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js.map +1 -1
- package/dist/goal-workflows/codex-goal-snapshot.d.ts +3 -0
- package/dist/goal-workflows/codex-goal-snapshot.d.ts.map +1 -1
- package/dist/goal-workflows/codex-goal-snapshot.js +45 -2
- package/dist/goal-workflows/codex-goal-snapshot.js.map +1 -1
- package/dist/hooks/__tests__/agents-overlay.test.js +2 -0
- package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js +17 -0
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/explore-routing.test.js +1 -0
- package/dist/hooks/__tests__/explore-routing.test.js.map +1 -1
- package/dist/hooks/__tests__/keyword-detector.test.js +471 -15
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/__tests__/prometheus-strict-contract.test.d.ts +2 -0
- package/dist/hooks/__tests__/prometheus-strict-contract.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/prometheus-strict-contract.test.js +320 -0
- package/dist/hooks/__tests__/prometheus-strict-contract.test.js.map +1 -0
- package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js +12 -0
- package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js.map +1 -1
- package/dist/hooks/__tests__/research-workflow-boundaries.test.d.ts +2 -0
- package/dist/hooks/__tests__/research-workflow-boundaries.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/research-workflow-boundaries.test.js +35 -0
- package/dist/hooks/__tests__/research-workflow-boundaries.test.js.map +1 -0
- package/dist/hooks/deep-interview-config-instruction.d.ts +3 -0
- package/dist/hooks/deep-interview-config-instruction.d.ts.map +1 -0
- package/dist/hooks/deep-interview-config-instruction.js +47 -0
- package/dist/hooks/deep-interview-config-instruction.js.map +1 -0
- package/dist/hooks/explore-routing.d.ts.map +1 -1
- package/dist/hooks/explore-routing.js +1 -0
- package/dist/hooks/explore-routing.js.map +1 -1
- package/dist/hooks/keyword-detector.d.ts +6 -1
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +80 -14
- 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 +11 -0
- package/dist/hooks/prompt-guidance-contract.js.map +1 -1
- package/dist/hud/__tests__/hud-tmux-injection.test.js +22 -0
- package/dist/hud/__tests__/hud-tmux-injection.test.js.map +1 -1
- package/dist/hud/__tests__/reconcile.test.js +213 -17
- package/dist/hud/__tests__/reconcile.test.js.map +1 -1
- package/dist/hud/__tests__/render.test.js +84 -0
- package/dist/hud/__tests__/render.test.js.map +1 -1
- package/dist/hud/__tests__/state.test.js +51 -1
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/__tests__/tmux.test.js +171 -23
- package/dist/hud/__tests__/tmux.test.js.map +1 -1
- package/dist/hud/index.d.ts +1 -1
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +8 -3
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/reconcile.d.ts +1 -1
- package/dist/hud/reconcile.d.ts.map +1 -1
- package/dist/hud/reconcile.js +14 -3
- package/dist/hud/reconcile.js.map +1 -1
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +26 -0
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/state.d.ts +2 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +62 -1
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/tmux.d.ts +17 -3
- package/dist/hud/tmux.d.ts.map +1 -1
- package/dist/hud/tmux.js +96 -10
- package/dist/hud/tmux.js.map +1 -1
- package/dist/hud/types.d.ts +22 -0
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js.map +1 -1
- package/dist/pipeline/__tests__/orchestrator.test.js +63 -1
- package/dist/pipeline/__tests__/orchestrator.test.js.map +1 -1
- package/dist/pipeline/__tests__/stages.test.js +410 -4
- package/dist/pipeline/__tests__/stages.test.js.map +1 -1
- package/dist/pipeline/orchestrator.d.ts.map +1 -1
- package/dist/pipeline/orchestrator.js +29 -2
- package/dist/pipeline/orchestrator.js.map +1 -1
- package/dist/pipeline/stages/ralplan.d.ts.map +1 -1
- package/dist/pipeline/stages/ralplan.js +41 -6
- package/dist/pipeline/stages/ralplan.js.map +1 -1
- package/dist/question/__tests__/ui.test.js +43 -10
- package/dist/question/__tests__/ui.test.js.map +1 -1
- package/dist/question/deep-interview.d.ts +2 -0
- package/dist/question/deep-interview.d.ts.map +1 -1
- package/dist/question/deep-interview.js.map +1 -1
- package/dist/question/ui.d.ts +12 -0
- package/dist/question/ui.d.ts.map +1 -1
- package/dist/question/ui.js +83 -46
- package/dist/question/ui.js.map +1 -1
- package/dist/ralplan/__tests__/runtime.test.js +200 -10
- package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
- package/dist/ralplan/consensus-gate.d.ts +23 -0
- package/dist/ralplan/consensus-gate.d.ts.map +1 -0
- package/dist/ralplan/consensus-gate.js +212 -0
- package/dist/ralplan/consensus-gate.js.map +1 -0
- package/dist/ralplan/runtime.d.ts +25 -0
- package/dist/ralplan/runtime.d.ts.map +1 -1
- package/dist/ralplan/runtime.js +144 -8
- package/dist/ralplan/runtime.js.map +1 -1
- package/dist/scripts/__tests__/codex-native-hook.test.js +1034 -28
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/__tests__/docs-site-contract.test.d.ts +2 -0
- package/dist/scripts/__tests__/docs-site-contract.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/docs-site-contract.test.js +42 -0
- package/dist/scripts/__tests__/docs-site-contract.test.js.map +1 -0
- package/dist/scripts/__tests__/notify-dispatcher.test.js +115 -2
- package/dist/scripts/__tests__/notify-dispatcher.test.js.map +1 -1
- package/dist/scripts/__tests__/run-test-files.test.js +57 -0
- package/dist/scripts/__tests__/run-test-files.test.js.map +1 -1
- package/dist/scripts/__tests__/verify-native-agents.test.js +2 -2
- 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 +238 -36
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/scripts/notify-dispatcher.js +188 -4
- package/dist/scripts/notify-dispatcher.js.map +1 -1
- package/dist/scripts/run-test-files.js +13 -0
- package/dist/scripts/run-test-files.js.map +1 -1
- package/dist/state/__tests__/planning-gate.test.d.ts +2 -0
- package/dist/state/__tests__/planning-gate.test.d.ts.map +1 -0
- package/dist/state/__tests__/planning-gate.test.js +219 -0
- package/dist/state/__tests__/planning-gate.test.js.map +1 -0
- package/dist/state/__tests__/workflow-transition.test.js +6 -0
- package/dist/state/__tests__/workflow-transition.test.js.map +1 -1
- package/dist/state/workflow-transition.d.ts +24 -1
- package/dist/state/workflow-transition.d.ts.map +1 -1
- package/dist/state/workflow-transition.js +70 -0
- package/dist/state/workflow-transition.js.map +1 -1
- package/dist/subagents/tracker.d.ts.map +1 -1
- package/dist/subagents/tracker.js +4 -3
- package/dist/subagents/tracker.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +36 -44
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +144 -18
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +10 -20
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +22 -6
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/ultragoal/__tests__/artifacts.test.js +50 -0
- package/dist/ultragoal/__tests__/artifacts.test.js.map +1 -1
- package/dist/ultragoal/artifacts.d.ts.map +1 -1
- package/dist/ultragoal/artifacts.js +28 -2
- package/dist/ultragoal/artifacts.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 +16 -4
- package/plugins/oh-my-codex/skills/autoresearch/SKILL.md +4 -0
- package/plugins/oh-my-codex/skills/autoresearch-goal/SKILL.md +1 -1
- package/plugins/oh-my-codex/skills/best-practice-research/SKILL.md +1 -1
- package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +10 -0
- package/plugins/oh-my-codex/skills/pipeline/SKILL.md +1 -1
- package/plugins/oh-my-codex/skills/plan/SKILL.md +1 -1
- package/plugins/oh-my-codex/skills/prometheus-strict/README.md +35 -0
- package/plugins/oh-my-codex/skills/prometheus-strict/SKILL.md +219 -0
- package/plugins/oh-my-codex/skills/ralplan/SKILL.md +24 -5
- package/prompts/prometheus-strict-metis.md +274 -0
- package/prompts/prometheus-strict-momus.md +82 -0
- package/prompts/prometheus-strict-oracle.md +107 -0
- package/prompts/researcher.md +22 -3
- package/prompts/scholastic.md +11 -0
- package/skills/autopilot/SKILL.md +16 -4
- package/skills/autoresearch/SKILL.md +4 -0
- package/skills/autoresearch-goal/SKILL.md +1 -1
- package/skills/best-practice-research/SKILL.md +1 -1
- package/skills/deep-interview/SKILL.md +10 -0
- package/skills/pipeline/SKILL.md +1 -1
- package/skills/plan/SKILL.md +1 -1
- package/skills/prometheus-strict/README.md +35 -0
- package/skills/prometheus-strict/SKILL.md +219 -0
- package/skills/ralplan/SKILL.md +24 -5
- package/src/scripts/__tests__/codex-native-hook.test.ts +1307 -61
- package/src/scripts/__tests__/docs-site-contract.test.ts +47 -0
- package/src/scripts/__tests__/notify-dispatcher.test.ts +132 -3
- package/src/scripts/__tests__/run-test-files.test.ts +67 -0
- package/src/scripts/__tests__/verify-native-agents.test.ts +2 -2
- package/src/scripts/codex-native-hook.ts +260 -31
- package/src/scripts/notify-dispatcher.ts +202 -4
- package/src/scripts/run-test-files.ts +13 -0
- package/templates/catalog-manifest.json +27 -0
|
@@ -1,24 +1,47 @@
|
|
|
1
|
-
import { describe, it } from 'node:test';
|
|
1
|
+
import { describe, it, beforeEach, afterEach } from 'node:test';
|
|
2
2
|
import assert from 'node:assert/strict';
|
|
3
3
|
import { mkdir, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
|
|
4
4
|
import { existsSync } from 'node:fs';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import { tmpdir } from 'node:os';
|
|
7
7
|
import { readModeState, startMode } from '../../modes/base.js';
|
|
8
|
+
import { getStatePath } from '../../state/paths.js';
|
|
8
9
|
import { cancelRalplanConsensus, runRalplanConsensus } from '../runtime.js';
|
|
9
10
|
function sessionStatePath(cwd, sessionId) {
|
|
10
|
-
return
|
|
11
|
+
return getStatePath('ralplan', cwd, sessionId);
|
|
11
12
|
}
|
|
12
13
|
async function readScopedRalplanState(cwd, sessionId) {
|
|
13
14
|
return JSON.parse(await readFile(sessionStatePath(cwd, sessionId), 'utf-8'));
|
|
14
15
|
}
|
|
15
16
|
describe('ralplan runtime', () => {
|
|
17
|
+
let savedOmxEnv;
|
|
18
|
+
beforeEach(() => {
|
|
19
|
+
savedOmxEnv = {
|
|
20
|
+
OMX_ROOT: process.env.OMX_ROOT,
|
|
21
|
+
OMX_STATE_ROOT: process.env.OMX_STATE_ROOT,
|
|
22
|
+
OMX_TEAM_STATE_ROOT: process.env.OMX_TEAM_STATE_ROOT,
|
|
23
|
+
OMX_SESSION_ID: process.env.OMX_SESSION_ID,
|
|
24
|
+
};
|
|
25
|
+
delete process.env.OMX_ROOT;
|
|
26
|
+
delete process.env.OMX_STATE_ROOT;
|
|
27
|
+
delete process.env.OMX_TEAM_STATE_ROOT;
|
|
28
|
+
delete process.env.OMX_SESSION_ID;
|
|
29
|
+
});
|
|
30
|
+
afterEach(() => {
|
|
31
|
+
for (const key of ['OMX_ROOT', 'OMX_STATE_ROOT', 'OMX_TEAM_STATE_ROOT', 'OMX_SESSION_ID']) {
|
|
32
|
+
const value = savedOmxEnv[key];
|
|
33
|
+
if (value === undefined)
|
|
34
|
+
delete process.env[key];
|
|
35
|
+
else
|
|
36
|
+
process.env[key] = value;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
16
39
|
it('persists a successful session-scoped lifecycle through complete', async () => {
|
|
17
40
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-ralplan-runtime-'));
|
|
18
41
|
const sessionId = 'sess-ralplan-success';
|
|
19
42
|
try {
|
|
20
|
-
await mkdir(join(cwd,
|
|
21
|
-
await writeFile(join(cwd, '
|
|
43
|
+
await mkdir(join(sessionStatePath(cwd, sessionId), '..'), { recursive: true });
|
|
44
|
+
await writeFile(join(sessionStatePath(cwd, sessionId), '..', '..', '..', 'session.json'), JSON.stringify({ session_id: sessionId }));
|
|
22
45
|
const seenPhases = [];
|
|
23
46
|
const result = await runRalplanConsensus({
|
|
24
47
|
async draft(ctx) {
|
|
@@ -63,18 +86,91 @@ describe('ralplan runtime', () => {
|
|
|
63
86
|
assert.match(String(finalState?.status_message || ''), /Status: complete/);
|
|
64
87
|
assert.equal(finalState?.latest_architect_verdict, 'approve');
|
|
65
88
|
assert.equal(finalState?.latest_critic_verdict, 'approve');
|
|
89
|
+
assert.deepEqual(finalState?.ralplan_consensus_gate, {
|
|
90
|
+
required: true,
|
|
91
|
+
complete: true,
|
|
92
|
+
sequence: ['architect-review', 'critic-review'],
|
|
93
|
+
planning_artifacts_are_not_consensus: true,
|
|
94
|
+
required_review_roles: ['architect', 'critic'],
|
|
95
|
+
ralplan_architect_review: {
|
|
96
|
+
agent_role: 'architect',
|
|
97
|
+
iteration: 1,
|
|
98
|
+
verdict: 'approve',
|
|
99
|
+
summary: 'architect-ok',
|
|
100
|
+
artifacts: { architected: true },
|
|
101
|
+
},
|
|
102
|
+
ralplan_critic_review: {
|
|
103
|
+
agent_role: 'critic',
|
|
104
|
+
iteration: 1,
|
|
105
|
+
verdict: 'approve',
|
|
106
|
+
summary: 'critic-ok',
|
|
107
|
+
artifacts: { critiqued: true },
|
|
108
|
+
},
|
|
109
|
+
architect_review: {
|
|
110
|
+
agent_role: 'architect',
|
|
111
|
+
iteration: 1,
|
|
112
|
+
verdict: 'approve',
|
|
113
|
+
summary: 'architect-ok',
|
|
114
|
+
artifacts: { architected: true },
|
|
115
|
+
},
|
|
116
|
+
critic_review: {
|
|
117
|
+
agent_role: 'critic',
|
|
118
|
+
iteration: 1,
|
|
119
|
+
verdict: 'approve',
|
|
120
|
+
summary: 'critic-ok',
|
|
121
|
+
artifacts: { critiqued: true },
|
|
122
|
+
},
|
|
123
|
+
blocked_reason: null,
|
|
124
|
+
});
|
|
66
125
|
assert.equal(Array.isArray(finalState?.review_history), true);
|
|
67
126
|
}
|
|
68
127
|
finally {
|
|
69
128
|
await rm(cwd, { recursive: true, force: true });
|
|
70
129
|
}
|
|
71
130
|
});
|
|
131
|
+
it('does not complete or call Critic when Architect has not approved', async () => {
|
|
132
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omx-ralplan-runtime-architect-reject-'));
|
|
133
|
+
const sessionId = 'sess-ralplan-architect-reject';
|
|
134
|
+
try {
|
|
135
|
+
await mkdir(join(cwd, '.omx', 'state'), { recursive: true });
|
|
136
|
+
await writeFile(join(cwd, '.omx', 'state', 'session.json'), JSON.stringify({ session_id: sessionId }));
|
|
137
|
+
let criticCalls = 0;
|
|
138
|
+
const result = await runRalplanConsensus({
|
|
139
|
+
async draft() {
|
|
140
|
+
const plansDir = join(cwd, '.omx', 'plans');
|
|
141
|
+
await mkdir(plansDir, { recursive: true });
|
|
142
|
+
const prdPath = join(plansDir, 'prd-reject.md');
|
|
143
|
+
await writeFile(prdPath, '# plan\n');
|
|
144
|
+
await writeFile(join(plansDir, 'test-spec-reject.md'), '# tests\n');
|
|
145
|
+
return { summary: 'draft', planPath: prdPath };
|
|
146
|
+
},
|
|
147
|
+
async architectReview() {
|
|
148
|
+
return { verdict: 'iterate', summary: 'architect needs changes' };
|
|
149
|
+
},
|
|
150
|
+
async criticReview() {
|
|
151
|
+
criticCalls += 1;
|
|
152
|
+
return { verdict: 'approve', summary: 'should not run' };
|
|
153
|
+
},
|
|
154
|
+
}, { task: 'reject before critic', cwd, maxIterations: 1 });
|
|
155
|
+
assert.equal(result.status, 'failed');
|
|
156
|
+
assert.equal(criticCalls, 0);
|
|
157
|
+
assert.equal(result.ralplanConsensusGate.complete, false);
|
|
158
|
+
assert.equal(result.ralplanConsensusGate.blocked_reason, 'architect_review_missing_or_not_approved');
|
|
159
|
+
const finalState = await readModeState('ralplan', cwd);
|
|
160
|
+
assert.equal(finalState?.current_phase, 'failed');
|
|
161
|
+
assert.equal(finalState?.ralplan_consensus_gate?.complete, false);
|
|
162
|
+
assert.equal(finalState?.ralplan_consensus_gate?.ralplan_architect_review?.agent_role, 'architect');
|
|
163
|
+
}
|
|
164
|
+
finally {
|
|
165
|
+
await rm(cwd, { recursive: true, force: true });
|
|
166
|
+
}
|
|
167
|
+
});
|
|
72
168
|
it('increments iteration when critic requests a re-review loop', async () => {
|
|
73
169
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-ralplan-runtime-loop-'));
|
|
74
170
|
const sessionId = 'sess-ralplan-loop';
|
|
75
171
|
try {
|
|
76
|
-
await mkdir(join(cwd,
|
|
77
|
-
await writeFile(join(cwd, '
|
|
172
|
+
await mkdir(join(sessionStatePath(cwd, sessionId), '..'), { recursive: true });
|
|
173
|
+
await writeFile(join(sessionStatePath(cwd, sessionId), '..', '..', '..', 'session.json'), JSON.stringify({ session_id: sessionId }));
|
|
78
174
|
const draftIterations = [];
|
|
79
175
|
const criticVerdicts = [];
|
|
80
176
|
let criticCalls = 0;
|
|
@@ -117,12 +213,106 @@ describe('ralplan runtime', () => {
|
|
|
117
213
|
await rm(cwd, { recursive: true, force: true });
|
|
118
214
|
}
|
|
119
215
|
});
|
|
216
|
+
it('does not complete when critic approves after an architect rejection', async () => {
|
|
217
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omx-ralplan-runtime-architect-reject-'));
|
|
218
|
+
const sessionId = 'sess-ralplan-architect-reject';
|
|
219
|
+
try {
|
|
220
|
+
await mkdir(join(sessionStatePath(cwd, sessionId), '..'), { recursive: true });
|
|
221
|
+
await writeFile(join(sessionStatePath(cwd, sessionId), '..', '..', '..', 'session.json'), JSON.stringify({ session_id: sessionId }));
|
|
222
|
+
const plansDir = join(cwd, '.omx', 'plans');
|
|
223
|
+
await mkdir(plansDir, { recursive: true });
|
|
224
|
+
await writeFile(join(plansDir, 'prd-reject.md'), '# plan\n');
|
|
225
|
+
await writeFile(join(plansDir, 'test-spec-reject.md'), '# tests\n');
|
|
226
|
+
const result = await runRalplanConsensus({
|
|
227
|
+
async draft() {
|
|
228
|
+
return { summary: 'draft' };
|
|
229
|
+
},
|
|
230
|
+
async architectReview() {
|
|
231
|
+
return { verdict: 'reject', summary: 'architect rejects' };
|
|
232
|
+
},
|
|
233
|
+
async criticReview() {
|
|
234
|
+
return { verdict: 'approve', summary: 'critic approves malformed flow' };
|
|
235
|
+
},
|
|
236
|
+
}, { task: 'reject then approve must fail', cwd, maxIterations: 1 });
|
|
237
|
+
assert.equal(result.status, 'failed');
|
|
238
|
+
assert.equal(result.phase, 'failed');
|
|
239
|
+
assert.equal(result.planningComplete, false);
|
|
240
|
+
const finalState = await readModeState('ralplan', cwd);
|
|
241
|
+
assert.equal(finalState?.current_phase, 'failed');
|
|
242
|
+
}
|
|
243
|
+
finally {
|
|
244
|
+
await rm(cwd, { recursive: true, force: true });
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
it('fails closed when consensus approves with a mismatched stale test spec', async () => {
|
|
248
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omx-ralplan-runtime-mismatched-artifacts-'));
|
|
249
|
+
const sessionId = 'sess-ralplan-mismatched-artifacts';
|
|
250
|
+
try {
|
|
251
|
+
await mkdir(join(sessionStatePath(cwd, sessionId), '..'), { recursive: true });
|
|
252
|
+
await writeFile(join(sessionStatePath(cwd, sessionId), '..', '..', '..', 'session.json'), JSON.stringify({ session_id: sessionId }));
|
|
253
|
+
const result = await runRalplanConsensus({
|
|
254
|
+
async draft() {
|
|
255
|
+
const plansDir = join(cwd, '.omx', 'plans');
|
|
256
|
+
await mkdir(plansDir, { recursive: true });
|
|
257
|
+
const prdPath = join(plansDir, 'prd-new.md');
|
|
258
|
+
await writeFile(prdPath, '# new plan\n');
|
|
259
|
+
await writeFile(join(plansDir, 'test-spec-old.md'), '# old tests\n');
|
|
260
|
+
return { summary: 'draft mismatched artifacts', planPath: prdPath };
|
|
261
|
+
},
|
|
262
|
+
async architectReview() {
|
|
263
|
+
return { verdict: 'approve', summary: 'architect ok' };
|
|
264
|
+
},
|
|
265
|
+
async criticReview() {
|
|
266
|
+
return { verdict: 'approve', summary: 'critic ok' };
|
|
267
|
+
},
|
|
268
|
+
}, { task: 'approve with mismatched artifacts', cwd, maxIterations: 1 });
|
|
269
|
+
assert.equal(result.status, 'failed');
|
|
270
|
+
assert.equal(result.phase, 'failed');
|
|
271
|
+
assert.equal(result.planningComplete, false);
|
|
272
|
+
assert.equal(result.error, 'ralplan_planning_artifacts_missing_after_consensus');
|
|
273
|
+
assert.equal(result.ralplanConsensusGate.complete, true);
|
|
274
|
+
}
|
|
275
|
+
finally {
|
|
276
|
+
await rm(cwd, { recursive: true, force: true });
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
it('fails closed when consensus approves without required planning artifacts', async () => {
|
|
280
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omx-ralplan-runtime-no-artifacts-'));
|
|
281
|
+
const sessionId = 'sess-ralplan-no-artifacts';
|
|
282
|
+
try {
|
|
283
|
+
await mkdir(join(sessionStatePath(cwd, sessionId), '..'), { recursive: true });
|
|
284
|
+
await writeFile(join(sessionStatePath(cwd, sessionId), '..', '..', '..', 'session.json'), JSON.stringify({ session_id: sessionId }));
|
|
285
|
+
const result = await runRalplanConsensus({
|
|
286
|
+
async draft() {
|
|
287
|
+
return { summary: 'draft without prd/test spec' };
|
|
288
|
+
},
|
|
289
|
+
async architectReview() {
|
|
290
|
+
return { verdict: 'approve', summary: 'architect ok' };
|
|
291
|
+
},
|
|
292
|
+
async criticReview() {
|
|
293
|
+
return { verdict: 'approve', summary: 'critic ok' };
|
|
294
|
+
},
|
|
295
|
+
}, { task: 'approve without artifacts', cwd, maxIterations: 1 });
|
|
296
|
+
assert.equal(result.status, 'failed');
|
|
297
|
+
assert.equal(result.phase, 'failed');
|
|
298
|
+
assert.equal(result.planningComplete, false);
|
|
299
|
+
assert.equal(result.error, 'ralplan_planning_artifacts_missing_after_consensus');
|
|
300
|
+
assert.equal(result.ralplanConsensusGate.complete, true);
|
|
301
|
+
const finalState = await readModeState('ralplan', cwd);
|
|
302
|
+
assert.equal(finalState?.current_phase, 'failed');
|
|
303
|
+
assert.equal(finalState?.planning_complete, false);
|
|
304
|
+
assert.equal(finalState?.error, 'ralplan_planning_artifacts_missing_after_consensus');
|
|
305
|
+
}
|
|
306
|
+
finally {
|
|
307
|
+
await rm(cwd, { recursive: true, force: true });
|
|
308
|
+
}
|
|
309
|
+
});
|
|
120
310
|
it('marks failed cleanly when execution throws', async () => {
|
|
121
311
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-ralplan-runtime-fail-'));
|
|
122
312
|
const sessionId = 'sess-ralplan-fail';
|
|
123
313
|
try {
|
|
124
|
-
await mkdir(join(cwd,
|
|
125
|
-
await writeFile(join(cwd, '
|
|
314
|
+
await mkdir(join(sessionStatePath(cwd, sessionId), '..'), { recursive: true });
|
|
315
|
+
await writeFile(join(sessionStatePath(cwd, sessionId), '..', '..', '..', 'session.json'), JSON.stringify({ session_id: sessionId }));
|
|
126
316
|
const result = await runRalplanConsensus({
|
|
127
317
|
async draft() {
|
|
128
318
|
return { summary: 'draft' };
|
|
@@ -150,8 +340,8 @@ describe('ralplan runtime', () => {
|
|
|
150
340
|
const cwd = await mkdtemp(join(tmpdir(), 'omx-ralplan-runtime-cancel-'));
|
|
151
341
|
const sessionId = 'sess-ralplan-cancel';
|
|
152
342
|
try {
|
|
153
|
-
await mkdir(join(cwd,
|
|
154
|
-
await writeFile(join(cwd, '
|
|
343
|
+
await mkdir(join(sessionStatePath(cwd, sessionId), '..'), { recursive: true });
|
|
344
|
+
await writeFile(join(sessionStatePath(cwd, sessionId), '..', '..', '..', 'session.json'), JSON.stringify({ session_id: sessionId }));
|
|
155
345
|
await startMode('ralplan', 'cancel me', 2, cwd);
|
|
156
346
|
await cancelRalplanConsensus(cwd);
|
|
157
347
|
const finalState = await readModeState('ralplan', cwd);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.test.js","sourceRoot":"","sources":["../../../src/ralplan/__tests__/runtime.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.test.js","sourceRoot":"","sources":["../../../src/ralplan/__tests__/runtime.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface RalplanConsensusGateEvidence {
|
|
2
|
+
complete: boolean;
|
|
3
|
+
sequence: ['architect-review', 'critic-review'];
|
|
4
|
+
ralplan_architect_review: Record<string, unknown> | null;
|
|
5
|
+
ralplan_critic_review: Record<string, unknown> | null;
|
|
6
|
+
source: string | null;
|
|
7
|
+
blockedReason: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface RalplanConsensusSource {
|
|
10
|
+
source: string;
|
|
11
|
+
value: unknown;
|
|
12
|
+
}
|
|
13
|
+
export declare function buildRalplanConsensusGateFromSources(sources: RalplanConsensusSource[]): RalplanConsensusGateEvidence;
|
|
14
|
+
export declare function buildRalplanConsensusGateForCwd(cwd: string, options?: {
|
|
15
|
+
artifacts?: Record<string, unknown>;
|
|
16
|
+
sessionId?: string;
|
|
17
|
+
}): RalplanConsensusGateEvidence;
|
|
18
|
+
export declare function hasDurableRalplanConsensusEvidenceForCwd(cwd: string, options?: {
|
|
19
|
+
artifacts?: Record<string, unknown>;
|
|
20
|
+
sessionId?: string;
|
|
21
|
+
}): boolean;
|
|
22
|
+
export declare function readLocalRalplanConsensusStateCandidates(cwd: string, sessionId?: string): RalplanConsensusSource[];
|
|
23
|
+
//# sourceMappingURL=consensus-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consensus-gate.d.ts","sourceRoot":"","sources":["../../src/ralplan/consensus-gate.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;IAChD,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzD,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,sBAAsB,EAAE,GAChC,4BAA4B,CAuB9B;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACxE,4BAA4B,CAQ9B;AAED,wBAAgB,wCAAwC,CACtD,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACxE,OAAO,CAET;AAED,wBAAgB,wCAAwC,CACtD,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GACjB,sBAAsB,EAAE,CAkB1B"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
export function buildRalplanConsensusGateFromSources(sources) {
|
|
4
|
+
for (const candidate of sources) {
|
|
5
|
+
const evidence = extractSequentialConsensusEvidence(candidate.value);
|
|
6
|
+
if (evidence) {
|
|
7
|
+
return {
|
|
8
|
+
complete: true,
|
|
9
|
+
sequence: ['architect-review', 'critic-review'],
|
|
10
|
+
ralplan_architect_review: evidence.ralplan_architect_review,
|
|
11
|
+
ralplan_critic_review: evidence.ralplan_critic_review,
|
|
12
|
+
source: candidate.source,
|
|
13
|
+
blockedReason: null,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
complete: false,
|
|
19
|
+
sequence: ['architect-review', 'critic-review'],
|
|
20
|
+
ralplan_architect_review: null,
|
|
21
|
+
ralplan_critic_review: null,
|
|
22
|
+
source: null,
|
|
23
|
+
blockedReason: 'missing_sequential_architect_then_critic_approval',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function buildRalplanConsensusGateForCwd(cwd, options = {}) {
|
|
27
|
+
return buildRalplanConsensusGateFromSources([
|
|
28
|
+
...(options.artifacts ? [
|
|
29
|
+
{ source: 'stage-context-artifacts', value: options.artifacts },
|
|
30
|
+
{ source: 'stage-context-ralplan-artifact', value: options.artifacts.ralplan },
|
|
31
|
+
] : []),
|
|
32
|
+
...readLocalRalplanConsensusStateCandidates(cwd, options.sessionId),
|
|
33
|
+
]);
|
|
34
|
+
}
|
|
35
|
+
export function hasDurableRalplanConsensusEvidenceForCwd(cwd, options = {}) {
|
|
36
|
+
return buildRalplanConsensusGateForCwd(cwd, options).complete === true;
|
|
37
|
+
}
|
|
38
|
+
export function readLocalRalplanConsensusStateCandidates(cwd, sessionId) {
|
|
39
|
+
const explicitSession = sessionId !== undefined;
|
|
40
|
+
const sessionIdList = explicitSession ? validateLocalSessionId(sessionId) : readLocalCurrentSessionIds(cwd);
|
|
41
|
+
if (explicitSession && sessionIdList.length === 0)
|
|
42
|
+
return [];
|
|
43
|
+
const stateRoots = sessionIdList.length > 0
|
|
44
|
+
? sessionIdList.map((id) => join(cwd, '.omx', 'state', 'sessions', id))
|
|
45
|
+
: [join(cwd, '.omx', 'state')];
|
|
46
|
+
const paths = stateRoots.flatMap((dir) => [
|
|
47
|
+
join(dir, 'ralplan-state.json'),
|
|
48
|
+
join(dir, 'autopilot-state.json'),
|
|
49
|
+
]);
|
|
50
|
+
return paths.flatMap((path) => {
|
|
51
|
+
const state = readJsonState(path);
|
|
52
|
+
if (!state)
|
|
53
|
+
return [];
|
|
54
|
+
return [{ source: path, value: state }];
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function extractSequentialConsensusEvidence(value) {
|
|
58
|
+
if (!value || typeof value !== 'object')
|
|
59
|
+
return null;
|
|
60
|
+
const record = value;
|
|
61
|
+
const gate = record.ralplanConsensusGate ?? record.ralplan_consensus_gate;
|
|
62
|
+
if (gate && typeof gate === 'object') {
|
|
63
|
+
const gateRecord = gate;
|
|
64
|
+
const architectReview = asRecord(gateRecord.ralplan_architect_review ?? gateRecord.architectReview ?? gateRecord.architect_review);
|
|
65
|
+
const criticReview = asRecord(gateRecord.ralplan_critic_review ?? gateRecord.criticReview ?? gateRecord.critic_review);
|
|
66
|
+
if (gateRecord.complete === true
|
|
67
|
+
&& hasArchitectThenCriticSequence(gateRecord)
|
|
68
|
+
&& isApproveReview(architectReview, 'architect')
|
|
69
|
+
&& isApproveReview(criticReview, 'critic')
|
|
70
|
+
&& isCriticNotBeforeArchitect(architectReview, criticReview)) {
|
|
71
|
+
return { ralplan_architect_review: architectReview, ralplan_critic_review: criticReview };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const stateHandoffArtifacts = asRecord(asRecord(record.state)?.handoff_artifacts);
|
|
75
|
+
if (stateHandoffArtifacts) {
|
|
76
|
+
const evidence = extractSequentialConsensusEvidence(stateHandoffArtifacts);
|
|
77
|
+
if (evidence)
|
|
78
|
+
return evidence;
|
|
79
|
+
}
|
|
80
|
+
const directArchitectReview = asRecord(record.ralplan_architect_review);
|
|
81
|
+
const directCriticReview = asRecord(record.ralplan_critic_review);
|
|
82
|
+
if (hasArchitectThenCriticSequence(record)
|
|
83
|
+
&& isApproveReview(directArchitectReview, 'architect')
|
|
84
|
+
&& isApproveReview(directCriticReview, 'critic')
|
|
85
|
+
&& isCriticNotBeforeArchitect(directArchitectReview, directCriticReview)) {
|
|
86
|
+
return {
|
|
87
|
+
ralplan_architect_review: directArchitectReview,
|
|
88
|
+
ralplan_critic_review: directCriticReview,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
const reviewHistory = Array.isArray(record.review_history) ? record.review_history : [];
|
|
92
|
+
const latestReviewEntry = asRecord(reviewHistory.at(-1));
|
|
93
|
+
if (latestReviewEntry) {
|
|
94
|
+
const architectReview = asRecord(latestReviewEntry.ralplan_architect_review ?? latestReviewEntry.architect_review ?? latestReviewEntry.architectReview);
|
|
95
|
+
const criticReview = asRecord(latestReviewEntry.ralplan_critic_review ?? latestReviewEntry.critic_review ?? latestReviewEntry.criticReview);
|
|
96
|
+
if (isApproveReview(architectReview, 'architect')
|
|
97
|
+
&& isApproveReview(criticReview, 'critic')
|
|
98
|
+
&& isCriticNotBeforeArchitect(architectReview, criticReview)) {
|
|
99
|
+
return { ralplan_architect_review: architectReview, ralplan_critic_review: criticReview };
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
const architectReviews = Array.isArray(record.architectReviews) ? record.architectReviews : [];
|
|
103
|
+
const criticReviews = Array.isArray(record.criticReviews) ? record.criticReviews : [];
|
|
104
|
+
if (architectReviews.length > 0 && criticReviews.length > 0 && architectReviews.length === criticReviews.length) {
|
|
105
|
+
const architectReview = asRecord(architectReviews.at(-1));
|
|
106
|
+
const criticReview = asRecord(criticReviews.at(-1));
|
|
107
|
+
if (isApproveReview(architectReview, 'architect')
|
|
108
|
+
&& isApproveReview(criticReview, 'critic')
|
|
109
|
+
&& isCriticNotBeforeArchitect(architectReview, criticReview)) {
|
|
110
|
+
return { ralplan_architect_review: architectReview, ralplan_critic_review: criticReview };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
function asRecord(value) {
|
|
116
|
+
return value && typeof value === 'object' ? value : null;
|
|
117
|
+
}
|
|
118
|
+
function isApproveReview(value, agentRole) {
|
|
119
|
+
if (!value || value.agent_role !== agentRole)
|
|
120
|
+
return false;
|
|
121
|
+
if (value.verdict !== undefined && value.verdict !== 'approve')
|
|
122
|
+
return false;
|
|
123
|
+
if (value.status !== undefined && !['approve', 'approved', 'clear', 'pass', 'passed'].includes(String(value.status).toLowerCase())) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
if (value.recommendation !== undefined && !['approve', 'approved'].includes(String(value.recommendation).toLowerCase())) {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
if (hasBlockingReviewSignal(value))
|
|
130
|
+
return false;
|
|
131
|
+
return value.verdict === 'approve' || value.approved === true || value.clean === true;
|
|
132
|
+
}
|
|
133
|
+
function hasArchitectThenCriticSequence(value) {
|
|
134
|
+
if (!Array.isArray(value.sequence))
|
|
135
|
+
return true;
|
|
136
|
+
return value.sequence[0] === 'architect-review' && value.sequence[1] === 'critic-review';
|
|
137
|
+
}
|
|
138
|
+
function isCriticNotBeforeArchitect(architectReview, criticReview) {
|
|
139
|
+
if (!architectReview || !criticReview)
|
|
140
|
+
return false;
|
|
141
|
+
const architectOrder = reviewOrderValue(architectReview);
|
|
142
|
+
const criticOrder = reviewOrderValue(criticReview);
|
|
143
|
+
return architectOrder === null || criticOrder === null || criticOrder >= architectOrder;
|
|
144
|
+
}
|
|
145
|
+
function reviewOrderValue(review) {
|
|
146
|
+
for (const key of ['completed_at', 'created_at', 'updated_at', 'timestamp', 'ts']) {
|
|
147
|
+
const raw = review[key];
|
|
148
|
+
if (typeof raw !== 'string')
|
|
149
|
+
continue;
|
|
150
|
+
const parsed = Date.parse(raw);
|
|
151
|
+
if (Number.isFinite(parsed))
|
|
152
|
+
return parsed;
|
|
153
|
+
}
|
|
154
|
+
for (const key of ['sequence_index', 'order', 'review_order', 'iteration']) {
|
|
155
|
+
const raw = review[key];
|
|
156
|
+
const parsed = typeof raw === 'number' ? raw : typeof raw === 'string' ? Number(raw) : Number.NaN;
|
|
157
|
+
if (Number.isFinite(parsed))
|
|
158
|
+
return parsed;
|
|
159
|
+
}
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
function validateLocalSessionId(sessionId) {
|
|
163
|
+
return /^[A-Za-z0-9_-]{1,64}$/.test(sessionId) ? [sessionId] : [];
|
|
164
|
+
}
|
|
165
|
+
function hasBlockingReviewSignal(value) {
|
|
166
|
+
if (value.blocked === true || value.blocking === true || value.clean === false || value.rejected === true)
|
|
167
|
+
return true;
|
|
168
|
+
if (value.request_changes === true || value.requestChanges === true || value.requires_changes === true || value.requiresChanges === true)
|
|
169
|
+
return true;
|
|
170
|
+
for (const key of ['verdict', 'status', 'recommendation', 'result']) {
|
|
171
|
+
const raw = value[key];
|
|
172
|
+
if (raw === undefined)
|
|
173
|
+
continue;
|
|
174
|
+
const normalized = String(raw).toLowerCase().replace(/[\s-]+/g, '_');
|
|
175
|
+
if ([
|
|
176
|
+
'reject',
|
|
177
|
+
'rejected',
|
|
178
|
+
'block',
|
|
179
|
+
'blocked',
|
|
180
|
+
'blocking',
|
|
181
|
+
'request_changes',
|
|
182
|
+
'requested_changes',
|
|
183
|
+
'changes_requested',
|
|
184
|
+
'needs_changes',
|
|
185
|
+
'iterate',
|
|
186
|
+
'iterating',
|
|
187
|
+
'revise',
|
|
188
|
+
'revision_required',
|
|
189
|
+
].includes(normalized)) {
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
function readLocalCurrentSessionIds(cwd) {
|
|
196
|
+
const state = readJsonState(join(cwd, '.omx', 'state', 'session.json'));
|
|
197
|
+
if (typeof state?.cwd === 'string' && state.cwd !== cwd)
|
|
198
|
+
return [];
|
|
199
|
+
const sessionId = typeof state?.session_id === 'string' ? state.session_id : undefined;
|
|
200
|
+
return sessionId ? validateLocalSessionId(sessionId) : [];
|
|
201
|
+
}
|
|
202
|
+
function readJsonState(path) {
|
|
203
|
+
if (!existsSync(path))
|
|
204
|
+
return null;
|
|
205
|
+
try {
|
|
206
|
+
return JSON.parse(readFileSync(path, 'utf-8'));
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=consensus-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consensus-gate.js","sourceRoot":"","sources":["../../src/ralplan/consensus-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAgBjC,MAAM,UAAU,oCAAoC,CAClD,OAAiC;IAEjC,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,kCAAkC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC;gBAC/C,wBAAwB,EAAE,QAAQ,CAAC,wBAAwB;gBAC3D,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;gBACrD,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,aAAa,EAAE,IAAI;aACpB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC;QAC/C,wBAAwB,EAAE,IAAI;QAC9B,qBAAqB,EAAE,IAAI;QAC3B,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,mDAAmD;KACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,GAAW,EACX,UAAuE,EAAE;IAEzE,OAAO,oCAAoC,CAAC;QAC1C,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YACtB,EAAE,MAAM,EAAE,yBAAyB,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;YAC/D,EAAE,MAAM,EAAE,gCAAgC,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE;SAC/E,CAAC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,wCAAwC,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC;KACpE,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,GAAW,EACX,UAAuE,EAAE;IAEzE,OAAO,+BAA+B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,GAAW,EACX,SAAkB;IAElB,MAAM,eAAe,GAAG,SAAS,KAAK,SAAS,CAAC;IAChD,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;IAC5G,IAAI,eAAe,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;QACzC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEjC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC;QAC/B,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC;KAClC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kCAAkC,CAAC,KAAc;IAIxD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAEhD,MAAM,IAAI,GAAG,MAAM,CAAC,oBAAoB,IAAI,MAAM,CAAC,sBAAsB,CAAC;IAC1E,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,IAA+B,CAAC;QACnD,MAAM,eAAe,GAAG,QAAQ,CAC9B,UAAU,CAAC,wBAAwB,IAAI,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC,gBAAgB,CACjG,CAAC;QACF,MAAM,YAAY,GAAG,QAAQ,CAC3B,UAAU,CAAC,qBAAqB,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,aAAa,CACxF,CAAC;QACF,IACE,UAAU,CAAC,QAAQ,KAAK,IAAI;eACzB,8BAA8B,CAAC,UAAU,CAAC;eAC1C,eAAe,CAAC,eAAe,EAAE,WAAW,CAAC;eAC7C,eAAe,CAAC,YAAY,EAAE,QAAQ,CAAC;eACvC,0BAA0B,CAAC,eAAe,EAAE,YAAY,CAAC,EAC5D,CAAC;YACD,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,qBAAqB,EAAE,YAAY,EAAE,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,MAAM,qBAAqB,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAClF,IAAI,qBAAqB,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,kCAAkC,CAAC,qBAAqB,CAAC,CAAC;QAC3E,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;IAChC,CAAC;IAED,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACxE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAClE,IACE,8BAA8B,CAAC,MAAM,CAAC;WACnC,eAAe,CAAC,qBAAqB,EAAE,WAAW,CAAC;WACnD,eAAe,CAAC,kBAAkB,EAAE,QAAQ,CAAC;WAC7C,0BAA0B,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,EACxE,CAAC;QACD,OAAO;YACL,wBAAwB,EAAE,qBAAqB;YAC/C,qBAAqB,EAAE,kBAAkB;SAC1C,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,eAAe,GAAG,QAAQ,CAC9B,iBAAiB,CAAC,wBAAwB,IAAI,iBAAiB,CAAC,gBAAgB,IAAI,iBAAiB,CAAC,eAAe,CACtH,CAAC;QACF,MAAM,YAAY,GAAG,QAAQ,CAC3B,iBAAiB,CAAC,qBAAqB,IAAI,iBAAiB,CAAC,aAAa,IAAI,iBAAiB,CAAC,YAAY,CAC7G,CAAC;QACF,IACE,eAAe,CAAC,eAAe,EAAE,WAAW,CAAC;eAC1C,eAAe,CAAC,YAAY,EAAE,QAAQ,CAAC;eACvC,0BAA0B,CAAC,eAAe,EAAE,YAAY,CAAC,EAC5D,CAAC;YACD,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,qBAAqB,EAAE,YAAY,EAAE,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;QAChH,MAAM,eAAe,GAAG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IACE,eAAe,CAAC,eAAe,EAAE,WAAW,CAAC;eAC1C,eAAe,CAAC,YAAY,EAAE,QAAQ,CAAC;eACvC,0BAA0B,CAAC,eAAe,EAAE,YAAY,CAAC,EAC5D,CAAC;YACD,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,qBAAqB,EAAE,YAAY,EAAE,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtF,CAAC;AAED,SAAS,eAAe,CAAC,KAAqC,EAAE,SAAiC;IAC/F,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC3D,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACnI,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACxH,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,uBAAuB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;AACxF,CAAC;AAED,SAAS,8BAA8B,CAAC,KAA8B;IACpE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,kBAAkB,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC;AAC3F,CAAC;AAED,SAAS,0BAA0B,CACjC,eAA+C,EAC/C,YAA4C;IAE5C,IAAI,CAAC,eAAe,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,cAAc,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACnD,OAAO,cAAc,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,IAAI,cAAc,CAAC;AAC1F,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA+B;IACvD,KAAK,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;QAClF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAS;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;IAC7C,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,CAAC;QAC3E,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QAClG,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAiB;IAC/C,OAAO,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,uBAAuB,CAAC,KAA8B;IAC7D,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvH,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI,IAAI,KAAK,CAAC,gBAAgB,KAAK,IAAI,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACtJ,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,CAAC;QACpE,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,GAAG,KAAK,SAAS;YAAE,SAAS;QAChC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACrE,IAAI;YACF,QAAQ;YACR,UAAU;YACV,OAAO;YACP,SAAS;YACT,UAAU;YACV,iBAAiB;YACjB,mBAAmB;YACnB,mBAAmB;YACnB,eAAe;YACf,SAAS;YACT,WAAW;YACX,QAAQ;YACR,mBAAmB;SACpB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAW;IAC7C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACxE,IAAI,OAAO,KAAK,EAAE,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG;QAAE,OAAO,EAAE,CAAC;IACnE,MAAM,SAAS,GAAG,OAAO,KAAK,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,OAAO,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAA4B,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -12,6 +12,30 @@ export interface RalplanReviewResult {
|
|
|
12
12
|
summary?: string;
|
|
13
13
|
artifacts?: Record<string, unknown>;
|
|
14
14
|
}
|
|
15
|
+
export interface RalplanConsensusGate {
|
|
16
|
+
required: true;
|
|
17
|
+
complete: boolean;
|
|
18
|
+
sequence: ['architect-review', 'critic-review'];
|
|
19
|
+
planning_artifacts_are_not_consensus: true;
|
|
20
|
+
required_review_roles: ['architect', 'critic'];
|
|
21
|
+
ralplan_architect_review: (RalplanReviewResult & {
|
|
22
|
+
agent_role: 'architect';
|
|
23
|
+
iteration: number;
|
|
24
|
+
}) | null;
|
|
25
|
+
ralplan_critic_review: (RalplanReviewResult & {
|
|
26
|
+
agent_role: 'critic';
|
|
27
|
+
iteration: number;
|
|
28
|
+
}) | null;
|
|
29
|
+
architect_review: (RalplanReviewResult & {
|
|
30
|
+
agent_role: 'architect';
|
|
31
|
+
iteration: number;
|
|
32
|
+
}) | null;
|
|
33
|
+
critic_review: (RalplanReviewResult & {
|
|
34
|
+
agent_role: 'critic';
|
|
35
|
+
iteration: number;
|
|
36
|
+
}) | null;
|
|
37
|
+
blocked_reason: string | null;
|
|
38
|
+
}
|
|
15
39
|
export interface RalplanConsensusIterationContext {
|
|
16
40
|
task: string;
|
|
17
41
|
cwd: string;
|
|
@@ -43,6 +67,7 @@ export interface RalplanRuntimeResult {
|
|
|
43
67
|
drafts: RalplanDraftResult[];
|
|
44
68
|
architectReviews: RalplanReviewResult[];
|
|
45
69
|
criticReviews: RalplanReviewResult[];
|
|
70
|
+
ralplanConsensusGate: RalplanConsensusGate;
|
|
46
71
|
latestPlanPath?: string;
|
|
47
72
|
artifacts: Record<string, unknown>;
|
|
48
73
|
error?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/ralplan/runtime.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,qEAKxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AACxE,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;IACxC,aAAa,EAAE,mBAAmB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,GAAG,EAAE,gCAAgC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1E,eAAe,CACb,GAAG,EAAE,gCAAgC,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,GACpE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,YAAY,CACV,GAAG,EAAE,gCAAgC,GAAG;QACtC,KAAK,EAAE,kBAAkB,CAAC;QAC1B,eAAe,EAAE,mBAAmB,CAAC;KACtC,GACA,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;IACxC,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/ralplan/runtime.ts"],"names":[],"mappings":"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"}
|