oh-my-codex 0.18.8 → 0.18.10
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 +12 -12
- package/Cargo.toml +1 -1
- package/README.md +4 -0
- package/dist/autopilot/__tests__/deep-interview-gate.test.d.ts +2 -0
- package/dist/autopilot/__tests__/deep-interview-gate.test.d.ts.map +1 -0
- package/dist/autopilot/__tests__/deep-interview-gate.test.js +215 -0
- package/dist/autopilot/__tests__/deep-interview-gate.test.js.map +1 -0
- package/dist/autopilot/__tests__/fsm.test.js +3 -0
- package/dist/autopilot/__tests__/fsm.test.js.map +1 -1
- package/dist/autopilot/__tests__/ralplan-gate.test.js +148 -0
- package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -1
- package/dist/autopilot/deep-interview-gate.d.ts.map +1 -1
- package/dist/autopilot/deep-interview-gate.js +140 -0
- package/dist/autopilot/deep-interview-gate.js.map +1 -1
- package/dist/autopilot/fsm.js +2 -2
- package/dist/autopilot/fsm.js.map +1 -1
- package/dist/cli/__tests__/auth.test.js +37 -2
- package/dist/cli/__tests__/auth.test.js.map +1 -1
- package/dist/cli/__tests__/codex-feature-probe.test.d.ts +2 -0
- package/dist/cli/__tests__/codex-feature-probe.test.d.ts.map +1 -0
- package/dist/cli/__tests__/codex-feature-probe.test.js +46 -0
- package/dist/cli/__tests__/codex-feature-probe.test.js.map +1 -0
- package/dist/cli/__tests__/codex-plugin-layout.test.js +1 -1
- package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-warning-copy.test.js +2 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +288 -6
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js +19 -5
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/__tests__/package-bin-contract.test.js +39 -10
- package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
- package/dist/cli/__tests__/question.test.js +26 -9
- package/dist/cli/__tests__/question.test.js.map +1 -1
- package/dist/cli/__tests__/resume.test.js +50 -1
- package/dist/cli/__tests__/resume.test.js.map +1 -1
- package/dist/cli/__tests__/setup-refresh.test.js +6 -2
- package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
- package/dist/cli/__tests__/sparkshell-packaging.test.js +45 -2
- package/dist/cli/__tests__/sparkshell-packaging.test.js.map +1 -1
- package/dist/cli/__tests__/team-decompose.test.js +10 -5
- package/dist/cli/__tests__/team-decompose.test.js.map +1 -1
- package/dist/cli/__tests__/team.test.js +45 -1
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/__tests__/ultragoal.test.js +75 -0
- package/dist/cli/__tests__/ultragoal.test.js.map +1 -1
- package/dist/cli/__tests__/update.test.js +214 -17
- package/dist/cli/__tests__/update.test.js.map +1 -1
- package/dist/cli/__tests__/windows-popup-loop-contract.test.js +1 -1
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +25 -1
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/codex-feature-probe.d.ts +5 -2
- package/dist/cli/codex-feature-probe.d.ts.map +1 -1
- package/dist/cli/codex-feature-probe.js +25 -9
- package/dist/cli/codex-feature-probe.js.map +1 -1
- package/dist/cli/index.d.ts +39 -5
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +184 -101
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +9 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/team.d.ts +4 -0
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +43 -4
- package/dist/cli/team.js.map +1 -1
- package/dist/cli/ultragoal.d.ts.map +1 -1
- package/dist/cli/ultragoal.js +29 -0
- package/dist/cli/ultragoal.js.map +1 -1
- package/dist/cli/update.d.ts +20 -3
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +265 -23
- package/dist/cli/update.js.map +1 -1
- package/dist/cli/version.d.ts.map +1 -1
- package/dist/cli/version.js +5 -9
- package/dist/cli/version.js.map +1 -1
- package/dist/compat/__tests__/doctor-contract.test.js +12 -1
- package/dist/compat/__tests__/doctor-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/agents-overlay.test.js +1 -0
- package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js +15 -0
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/code-review-skill-contract.test.js +7 -3
- package/dist/hooks/__tests__/code-review-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/deep-interview-contract.test.js +46 -1
- package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/skill-guidance-contract.test.js +14 -5
- package/dist/hooks/__tests__/skill-guidance-contract.test.js.map +1 -1
- package/dist/hooks/agents-overlay.d.ts.map +1 -1
- package/dist/hooks/agents-overlay.js +2 -1
- package/dist/hooks/agents-overlay.js.map +1 -1
- package/dist/hooks/extensibility/__tests__/plugin-runner.test.js +112 -1
- package/dist/hooks/extensibility/__tests__/plugin-runner.test.js.map +1 -1
- package/dist/hooks/extensibility/plugin-runner-stdin.d.ts +2 -0
- package/dist/hooks/extensibility/plugin-runner-stdin.d.ts.map +1 -0
- package/dist/hooks/extensibility/plugin-runner-stdin.js +16 -0
- package/dist/hooks/extensibility/plugin-runner-stdin.js.map +1 -0
- package/dist/hooks/extensibility/plugin-runner.js +2 -4
- package/dist/hooks/extensibility/plugin-runner.js.map +1 -1
- package/dist/hud/__tests__/index.test.js +23 -2
- package/dist/hud/__tests__/index.test.js.map +1 -1
- package/dist/hud/__tests__/reconcile.test.js +387 -0
- package/dist/hud/__tests__/reconcile.test.js.map +1 -1
- package/dist/hud/__tests__/state.test.js +28 -0
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/__tests__/tmux.test.js +118 -7
- package/dist/hud/__tests__/tmux.test.js.map +1 -1
- package/dist/hud/index.d.ts +6 -1
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +12 -3
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/reconcile.d.ts +6 -2
- package/dist/hud/reconcile.d.ts.map +1 -1
- package/dist/hud/reconcile.js +58 -28
- package/dist/hud/reconcile.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +4 -18
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/tmux.d.ts +14 -1
- package/dist/hud/tmux.d.ts.map +1 -1
- package/dist/hud/tmux.js +129 -15
- package/dist/hud/tmux.js.map +1 -1
- package/dist/question/__tests__/renderer.test.js +566 -1
- package/dist/question/__tests__/renderer.test.js.map +1 -1
- package/dist/question/renderer.d.ts +9 -1
- package/dist/question/renderer.d.ts.map +1 -1
- package/dist/question/renderer.js +246 -70
- package/dist/question/renderer.js.map +1 -1
- package/dist/ralplan/consensus-gate.js +9 -1
- package/dist/ralplan/consensus-gate.js.map +1 -1
- package/dist/scripts/__tests__/codex-native-hook.test.js +322 -15
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/__tests__/run-test-files.test.js +115 -1
- package/dist/scripts/__tests__/run-test-files.test.js.map +1 -1
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +94 -20
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-worker-stop.js +54 -21
- package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
- package/dist/scripts/run-test-files.js +218 -160
- package/dist/scripts/run-test-files.js.map +1 -1
- package/dist/state/__tests__/operations.test.js +463 -0
- package/dist/state/__tests__/operations.test.js.map +1 -1
- package/dist/team/__tests__/delivery-log.test.js +18 -0
- package/dist/team/__tests__/delivery-log.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +48 -0
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +107 -0
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/tmux-test-fixture.d.ts.map +1 -1
- package/dist/team/__tests__/tmux-test-fixture.js +14 -2
- package/dist/team/__tests__/tmux-test-fixture.js.map +1 -1
- package/dist/team/__tests__/tmux-test-fixture.test.js +1 -0
- package/dist/team/__tests__/tmux-test-fixture.test.js.map +1 -1
- package/dist/team/__tests__/worker-bootstrap.test.js +54 -1
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/delivery-log.d.ts +1 -1
- package/dist/team/delivery-log.d.ts.map +1 -1
- package/dist/team/delivery-log.js.map +1 -1
- package/dist/team/repo-aware-decomposition.d.ts +4 -0
- package/dist/team/repo-aware-decomposition.d.ts.map +1 -1
- package/dist/team/repo-aware-decomposition.js.map +1 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +78 -9
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/tmux-session.d.ts +1 -0
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +16 -5
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/ultragoal-context.d.ts +12 -0
- package/dist/team/ultragoal-context.d.ts.map +1 -1
- package/dist/team/ultragoal-context.js +32 -8
- package/dist/team/ultragoal-context.js.map +1 -1
- package/dist/utils/__tests__/paths.test.js +23 -0
- package/dist/utils/__tests__/paths.test.js.map +1 -1
- package/dist/utils/__tests__/platform-command.test.js +16 -1
- package/dist/utils/__tests__/platform-command.test.js.map +1 -1
- package/dist/utils/__tests__/version.test.d.ts +2 -0
- package/dist/utils/__tests__/version.test.d.ts.map +1 -0
- package/dist/utils/__tests__/version.test.js +51 -0
- package/dist/utils/__tests__/version.test.js.map +1 -0
- package/dist/utils/paths.d.ts +8 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +20 -6
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/platform-command.d.ts +9 -0
- package/dist/utils/platform-command.d.ts.map +1 -1
- package/dist/utils/platform-command.js +15 -0
- package/dist/utils/platform-command.js.map +1 -1
- package/dist/utils/toml.d.ts +4 -0
- package/dist/utils/toml.d.ts.map +1 -0
- package/dist/utils/toml.js +75 -0
- package/dist/utils/toml.js.map +1 -0
- package/dist/utils/version.d.ts +7 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +67 -0
- package/dist/utils/version.js.map +1 -0
- package/dist/verification/__tests__/ci-rust-gates.test.js +8 -0
- package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
- package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js +16 -2
- package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js.map +1 -1
- package/package.json +4 -3
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/oh-my-codex/skills/autopilot/SKILL.md +3 -0
- package/plugins/oh-my-codex/skills/code-review/SKILL.md +2 -2
- package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +85 -11
- package/plugins/oh-my-codex/skills/ultrawork/SKILL.md +32 -17
- package/skills/autopilot/SKILL.md +3 -0
- package/skills/code-review/SKILL.md +2 -2
- package/skills/deep-interview/SKILL.md +85 -11
- package/skills/ultrawork/SKILL.md +32 -17
- package/src/scripts/__tests__/codex-native-hook.test.ts +391 -26
- package/src/scripts/__tests__/run-test-files.test.ts +138 -2
- package/src/scripts/codex-native-hook.ts +99 -17
- package/src/scripts/notify-hook/team-worker-stop.ts +58 -18
- package/src/scripts/prepare-build.js +83 -0
- package/src/scripts/run-test-files.ts +229 -150
- package/templates/AGENTS.md +40 -199
- package/src/scripts/postinstall-bootstrap.js +0 -23
package/Cargo.lock
CHANGED
|
@@ -14,9 +14,9 @@ dependencies = [
|
|
|
14
14
|
|
|
15
15
|
[[package]]
|
|
16
16
|
name = "itoa"
|
|
17
|
-
version = "1.0.
|
|
17
|
+
version = "1.0.18"
|
|
18
18
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
19
|
-
checksum = "
|
|
19
|
+
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
20
20
|
|
|
21
21
|
[[package]]
|
|
22
22
|
name = "libc"
|
|
@@ -26,13 +26,13 @@ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
|
|
|
26
26
|
|
|
27
27
|
[[package]]
|
|
28
28
|
name = "memchr"
|
|
29
|
-
version = "2.8.
|
|
29
|
+
version = "2.8.1"
|
|
30
30
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
31
|
-
checksum = "
|
|
31
|
+
checksum = "6b947ae49db0d222b1dbc6b113ce7248a3fc3a6ca21b696717bfc000ba4484d8"
|
|
32
32
|
|
|
33
33
|
[[package]]
|
|
34
34
|
name = "omx-api"
|
|
35
|
-
version = "0.18.
|
|
35
|
+
version = "0.18.10"
|
|
36
36
|
dependencies = [
|
|
37
37
|
"serde",
|
|
38
38
|
"serde_json",
|
|
@@ -40,14 +40,14 @@ dependencies = [
|
|
|
40
40
|
|
|
41
41
|
[[package]]
|
|
42
42
|
name = "omx-explore-harness"
|
|
43
|
-
version = "0.18.
|
|
43
|
+
version = "0.18.10"
|
|
44
44
|
dependencies = [
|
|
45
45
|
"libc",
|
|
46
46
|
]
|
|
47
47
|
|
|
48
48
|
[[package]]
|
|
49
49
|
name = "omx-mux"
|
|
50
|
-
version = "0.18.
|
|
50
|
+
version = "0.18.10"
|
|
51
51
|
dependencies = [
|
|
52
52
|
"serde",
|
|
53
53
|
"serde_json",
|
|
@@ -55,7 +55,7 @@ dependencies = [
|
|
|
55
55
|
|
|
56
56
|
[[package]]
|
|
57
57
|
name = "omx-runtime"
|
|
58
|
-
version = "0.18.
|
|
58
|
+
version = "0.18.10"
|
|
59
59
|
dependencies = [
|
|
60
60
|
"omx-mux",
|
|
61
61
|
"omx-runtime-core",
|
|
@@ -64,7 +64,7 @@ dependencies = [
|
|
|
64
64
|
|
|
65
65
|
[[package]]
|
|
66
66
|
name = "omx-runtime-core"
|
|
67
|
-
version = "0.18.
|
|
67
|
+
version = "0.18.10"
|
|
68
68
|
dependencies = [
|
|
69
69
|
"fs2",
|
|
70
70
|
"serde",
|
|
@@ -73,7 +73,7 @@ dependencies = [
|
|
|
73
73
|
|
|
74
74
|
[[package]]
|
|
75
75
|
name = "omx-sparkshell"
|
|
76
|
-
version = "0.18.
|
|
76
|
+
version = "0.18.10"
|
|
77
77
|
dependencies = [
|
|
78
78
|
"omx-mux",
|
|
79
79
|
]
|
|
@@ -128,9 +128,9 @@ dependencies = [
|
|
|
128
128
|
|
|
129
129
|
[[package]]
|
|
130
130
|
name = "serde_json"
|
|
131
|
-
version = "1.0.
|
|
131
|
+
version = "1.0.150"
|
|
132
132
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
133
|
-
checksum = "
|
|
133
|
+
checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
|
|
134
134
|
dependencies = [
|
|
135
135
|
"itoa",
|
|
136
136
|
"memchr",
|
package/Cargo.toml
CHANGED
package/README.md
CHANGED
|
@@ -285,6 +285,10 @@ These are useful, but they are not the main onboarding path.
|
|
|
285
285
|
|
|
286
286
|
Use the team runtime when you specifically need durable tmux/worktree coordination, not as the default way to begin using OMX. In Codex App or plain outside-tmux sessions, treat `omx team` as a tmux-runtime shell surface rather than a directly available in-app workflow; launch OMX CLI from shell first if you actually want team execution.
|
|
287
287
|
|
|
288
|
+
When Team runs inside an Ultragoal story, Ultragoal remains leader-owned state: workers report checkpoint-ready evidence upward instead of mutating `.omx/ultragoal` directly. Team startup tolerates stale or malformed Ultragoal artifacts for unrelated work, but explicitly Ultragoal-linked Team launches stay fail-closed. Team startup also writes `.omx/state/team/<team-name>/preflight-context.json` so large Team runs can be resumed after compaction with the original task, worker split, Ultragoal context, and verification checklist.
|
|
289
|
+
|
|
290
|
+
For very small atomic work, Team may cap implicit fanout to one worker and print an over-orchestration warning; pass an explicit worker count only when the extra coordination cost is intentional.
|
|
291
|
+
|
|
288
292
|
```bash
|
|
289
293
|
omx team 3:executor "fix the failing tests with verification"
|
|
290
294
|
omx team status <team-name>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-interview-gate.test.d.ts","sourceRoot":"","sources":["../../../src/autopilot/__tests__/deep-interview-gate.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { describe, it } from 'node:test';
|
|
3
|
+
import { canAdvanceAutopilotDeepInterviewToRalplan } from '../deep-interview-gate.js';
|
|
4
|
+
function validExecutionContract(stride) {
|
|
5
|
+
const perStride = {
|
|
6
|
+
task: {
|
|
7
|
+
allow_task_shrink: true,
|
|
8
|
+
acceptance_coverage_scope: 'task',
|
|
9
|
+
shrink_policy: 'allowed',
|
|
10
|
+
completion_unit: 'One focused task',
|
|
11
|
+
stop_condition: 'Stop after that task is implemented and verified',
|
|
12
|
+
},
|
|
13
|
+
deliverable: {
|
|
14
|
+
allow_task_shrink: false,
|
|
15
|
+
acceptance_coverage_scope: 'deliverable',
|
|
16
|
+
shrink_policy: 'ask_before_shrink',
|
|
17
|
+
completion_unit: 'The named deliverable',
|
|
18
|
+
stop_condition: 'Stop after the deliverable is complete and verified',
|
|
19
|
+
},
|
|
20
|
+
milestone: {
|
|
21
|
+
allow_task_shrink: false,
|
|
22
|
+
acceptance_coverage_scope: 'milestone',
|
|
23
|
+
shrink_policy: 'deny_unless_blocked',
|
|
24
|
+
completion_unit: 'The approved milestone',
|
|
25
|
+
stop_condition: 'Stop after the milestone is complete unless blocked',
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
return {
|
|
29
|
+
version: 1,
|
|
30
|
+
execution_stride: stride,
|
|
31
|
+
source: 'deep-interview',
|
|
32
|
+
selected_by: 'user',
|
|
33
|
+
...perStride[stride],
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
describe('autopilot deep-interview gate execution contract', () => {
|
|
37
|
+
it('falls back to persisted contract state when nextState is partial', async () => {
|
|
38
|
+
const persistedState = {
|
|
39
|
+
current_phase: 'deep-interview',
|
|
40
|
+
state: {
|
|
41
|
+
deep_interview_gate: {
|
|
42
|
+
status: 'complete',
|
|
43
|
+
rationale: 'Persisted gate and contract are ready for ralplan.',
|
|
44
|
+
},
|
|
45
|
+
handoff_artifacts: {
|
|
46
|
+
deep_interview: {
|
|
47
|
+
summary: 'Persisted handoff contract is canonical.',
|
|
48
|
+
execution_contract_required: true,
|
|
49
|
+
execution_contract: validExecutionContract('milestone'),
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
const decision = await canAdvanceAutopilotDeepInterviewToRalplan({
|
|
55
|
+
cwd: process.cwd(),
|
|
56
|
+
currentState: persistedState,
|
|
57
|
+
nextState: {
|
|
58
|
+
active: true,
|
|
59
|
+
current_phase: 'ralplan',
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
assert.equal(decision.allowed, true);
|
|
63
|
+
assert.equal(decision.reason, 'record-backed deep-interview completion gate');
|
|
64
|
+
});
|
|
65
|
+
it('rejects an invalid contract explicitly supplied by nextState before persisted fallback', async () => {
|
|
66
|
+
const persistedState = {
|
|
67
|
+
current_phase: 'deep-interview',
|
|
68
|
+
state: {
|
|
69
|
+
deep_interview_gate: {
|
|
70
|
+
status: 'complete',
|
|
71
|
+
rationale: 'Persisted gate and contract are ready for ralplan.',
|
|
72
|
+
},
|
|
73
|
+
handoff_artifacts: {
|
|
74
|
+
deep_interview: {
|
|
75
|
+
summary: 'Persisted handoff contract is canonical.',
|
|
76
|
+
execution_contract_required: true,
|
|
77
|
+
execution_contract: validExecutionContract('milestone'),
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
const decision = await canAdvanceAutopilotDeepInterviewToRalplan({
|
|
83
|
+
cwd: process.cwd(),
|
|
84
|
+
currentState: persistedState,
|
|
85
|
+
nextState: {
|
|
86
|
+
active: true,
|
|
87
|
+
current_phase: 'ralplan',
|
|
88
|
+
execution_contract: {
|
|
89
|
+
...validExecutionContract('milestone'),
|
|
90
|
+
shrink_policy: 'allowed',
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
assert.equal(decision.allowed, false);
|
|
95
|
+
assert.match(decision.reason, /execution_contract/i);
|
|
96
|
+
assert.equal(decision.evidence?.execution_contract_status, 'invalid');
|
|
97
|
+
});
|
|
98
|
+
it('rejects a placeholder contract explicitly supplied by nextState before persisted fallback', async () => {
|
|
99
|
+
const persistedState = {
|
|
100
|
+
current_phase: 'deep-interview',
|
|
101
|
+
state: {
|
|
102
|
+
deep_interview_gate: {
|
|
103
|
+
status: 'complete',
|
|
104
|
+
rationale: 'Persisted gate and contract are ready for ralplan.',
|
|
105
|
+
},
|
|
106
|
+
handoff_artifacts: {
|
|
107
|
+
deep_interview: {
|
|
108
|
+
summary: 'Persisted handoff contract is canonical.',
|
|
109
|
+
execution_contract_required: true,
|
|
110
|
+
execution_contract: validExecutionContract('milestone'),
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
const decision = await canAdvanceAutopilotDeepInterviewToRalplan({
|
|
116
|
+
cwd: process.cwd(),
|
|
117
|
+
currentState: persistedState,
|
|
118
|
+
nextState: {
|
|
119
|
+
active: true,
|
|
120
|
+
current_phase: 'ralplan',
|
|
121
|
+
execution_contract: {},
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
assert.equal(decision.allowed, false);
|
|
125
|
+
assert.match(decision.reason, /execution_contract/i);
|
|
126
|
+
assert.equal(decision.evidence?.execution_contract_status, 'invalid');
|
|
127
|
+
});
|
|
128
|
+
it('rejects a non-object contract explicitly supplied by nextState before persisted fallback', async () => {
|
|
129
|
+
const persistedState = {
|
|
130
|
+
current_phase: 'deep-interview',
|
|
131
|
+
state: {
|
|
132
|
+
deep_interview_gate: {
|
|
133
|
+
status: 'complete',
|
|
134
|
+
rationale: 'Persisted gate and contract are ready for ralplan.',
|
|
135
|
+
},
|
|
136
|
+
handoff_artifacts: {
|
|
137
|
+
deep_interview: {
|
|
138
|
+
summary: 'Persisted handoff contract is canonical.',
|
|
139
|
+
execution_contract_required: true,
|
|
140
|
+
execution_contract: validExecutionContract('milestone'),
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
const decision = await canAdvanceAutopilotDeepInterviewToRalplan({
|
|
146
|
+
cwd: process.cwd(),
|
|
147
|
+
currentState: persistedState,
|
|
148
|
+
nextState: {
|
|
149
|
+
active: true,
|
|
150
|
+
current_phase: 'ralplan',
|
|
151
|
+
execution_contract: 'placeholder',
|
|
152
|
+
},
|
|
153
|
+
});
|
|
154
|
+
assert.equal(decision.allowed, false);
|
|
155
|
+
assert.match(decision.reason, /execution_contract/i);
|
|
156
|
+
assert.equal(decision.evidence?.execution_contract_status, 'invalid');
|
|
157
|
+
});
|
|
158
|
+
it('rejects a non-object handoff-local contract before compatibility fallback', async () => {
|
|
159
|
+
const decision = await canAdvanceAutopilotDeepInterviewToRalplan({
|
|
160
|
+
cwd: process.cwd(),
|
|
161
|
+
currentState: {
|
|
162
|
+
current_phase: 'deep-interview',
|
|
163
|
+
execution_contract: validExecutionContract('deliverable'),
|
|
164
|
+
state: {
|
|
165
|
+
deep_interview_gate: {
|
|
166
|
+
status: 'complete',
|
|
167
|
+
rationale: 'Compatibility direct contract is available.',
|
|
168
|
+
},
|
|
169
|
+
handoff_artifacts: {
|
|
170
|
+
deep_interview: {
|
|
171
|
+
summary: 'Handoff-local malformed contract must fail before direct fallback.',
|
|
172
|
+
execution_contract_required: true,
|
|
173
|
+
execution_contract: [],
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
nextState: {
|
|
179
|
+
active: true,
|
|
180
|
+
current_phase: 'ralplan',
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
assert.equal(decision.allowed, false);
|
|
184
|
+
assert.match(decision.reason, /execution_contract/i);
|
|
185
|
+
assert.equal(decision.evidence?.execution_contract_status, 'invalid');
|
|
186
|
+
});
|
|
187
|
+
it('allows a direct compatibility contract to satisfy a handoff required marker', async () => {
|
|
188
|
+
const decision = await canAdvanceAutopilotDeepInterviewToRalplan({
|
|
189
|
+
cwd: process.cwd(),
|
|
190
|
+
currentState: {
|
|
191
|
+
current_phase: 'deep-interview',
|
|
192
|
+
execution_contract: validExecutionContract('deliverable'),
|
|
193
|
+
state: {
|
|
194
|
+
deep_interview_gate: {
|
|
195
|
+
status: 'complete',
|
|
196
|
+
rationale: 'Compatibility direct contract is available.',
|
|
197
|
+
},
|
|
198
|
+
handoff_artifacts: {
|
|
199
|
+
deep_interview: {
|
|
200
|
+
summary: 'Marker is canonical; contract came from a compatibility location.',
|
|
201
|
+
execution_contract_required: true,
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
nextState: {
|
|
207
|
+
active: true,
|
|
208
|
+
current_phase: 'ralplan',
|
|
209
|
+
},
|
|
210
|
+
});
|
|
211
|
+
assert.equal(decision.allowed, true);
|
|
212
|
+
assert.equal(decision.reason, 'record-backed deep-interview completion gate');
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
//# sourceMappingURL=deep-interview-gate.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-interview-gate.test.js","sourceRoot":"","sources":["../../../src/autopilot/__tests__/deep-interview-gate.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,9 @@ describe('autopilot supervisor FSM helpers', () => {
|
|
|
9
9
|
assert.equal(normalizeAutopilotPhase('ralph'), 'ralph');
|
|
10
10
|
assert.equal(normalizeAutopilotPhase('completed'), 'complete');
|
|
11
11
|
assert.equal(normalizeAutopilotPhase('planning'), 'ralplan');
|
|
12
|
+
assert.equal(normalizeAutopilotPhase('replan'), 'ralplan');
|
|
13
|
+
assert.equal(normalizeAutopilotPhase('autopilot:ralplan'), 'ralplan');
|
|
14
|
+
assert.equal(normalizeAutopilotPhase('autopilot:replan'), 'ralplan');
|
|
12
15
|
});
|
|
13
16
|
it('derives child-stage labels only from Autopilot supervisor state', () => {
|
|
14
17
|
const autopilotState = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fsm.test.js","sourceRoot":"","sources":["../../../src/autopilot/__tests__/fsm.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAEnB,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC1E,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAC9E,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"fsm.test.js","sourceRoot":"","sources":["../../../src/autopilot/__tests__/fsm.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,10 @@ describe('autopilot ralplan gate', () => {
|
|
|
12
12
|
const trackingPath = subagentTrackingPath(cwd);
|
|
13
13
|
try {
|
|
14
14
|
await mkdir(join(trackingPath, '..'), { recursive: true });
|
|
15
|
+
await writeFile(join(cwd, '.omx', 'state', 'session.json'), JSON.stringify({
|
|
16
|
+
session_id: sessionId,
|
|
17
|
+
native_session_id: 'thread-leader',
|
|
18
|
+
}, null, 2));
|
|
15
19
|
await writeFile(trackingPath, JSON.stringify({
|
|
16
20
|
schemaVersion: 1,
|
|
17
21
|
sessions: {
|
|
@@ -75,5 +79,149 @@ describe('autopilot ralplan gate', () => {
|
|
|
75
79
|
await rm(cwd, { recursive: true, force: true });
|
|
76
80
|
}
|
|
77
81
|
});
|
|
82
|
+
it('accepts fresh native review evidence when tracker leader id aliases a subagent lane', async () => {
|
|
83
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omx-autopilot-ralplan-fresh-subagent-alias-'));
|
|
84
|
+
const sessionId = 'sess-autopilot-fresh-subagent-alias';
|
|
85
|
+
const trackingPath = subagentTrackingPath(cwd);
|
|
86
|
+
try {
|
|
87
|
+
await mkdir(join(trackingPath, '..'), { recursive: true });
|
|
88
|
+
await writeFile(trackingPath, JSON.stringify({
|
|
89
|
+
schemaVersion: 1,
|
|
90
|
+
sessions: {
|
|
91
|
+
[sessionId]: {
|
|
92
|
+
session_id: sessionId,
|
|
93
|
+
leader_thread_id: 'thread-architect',
|
|
94
|
+
updated_at: '2026-05-28T18:35:10.000Z',
|
|
95
|
+
threads: {
|
|
96
|
+
'thread-architect': {
|
|
97
|
+
thread_id: 'thread-architect',
|
|
98
|
+
kind: 'subagent',
|
|
99
|
+
first_seen_at: '2026-05-28T18:34:51.000Z',
|
|
100
|
+
last_seen_at: '2026-05-28T18:34:51.000Z',
|
|
101
|
+
turn_count: 1,
|
|
102
|
+
mode: 'architect',
|
|
103
|
+
},
|
|
104
|
+
'thread-critic': {
|
|
105
|
+
thread_id: 'thread-critic',
|
|
106
|
+
kind: 'subagent',
|
|
107
|
+
first_seen_at: '2026-05-28T18:35:10.000Z',
|
|
108
|
+
last_seen_at: '2026-05-28T18:35:10.000Z',
|
|
109
|
+
turn_count: 1,
|
|
110
|
+
mode: 'critic',
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
}, null, 2));
|
|
116
|
+
const state = {
|
|
117
|
+
current_phase: 'ralplan',
|
|
118
|
+
handoff_artifacts: {
|
|
119
|
+
ralplan_consensus_gate: {
|
|
120
|
+
complete: true,
|
|
121
|
+
sequence: ['architect-review', 'critic-review'],
|
|
122
|
+
ralplan_architect_review: {
|
|
123
|
+
agent_role: 'architect',
|
|
124
|
+
provenance_kind: 'native_subagent',
|
|
125
|
+
verdict: 'approve',
|
|
126
|
+
session_id: sessionId,
|
|
127
|
+
thread_id: 'thread-architect',
|
|
128
|
+
artifact_path: '.omx/artifacts/architect.md',
|
|
129
|
+
tracker_path: '.omx/state/subagent-tracking.json',
|
|
130
|
+
completed_at: '2026-05-28T18:34:51.000Z',
|
|
131
|
+
},
|
|
132
|
+
ralplan_critic_review: {
|
|
133
|
+
agent_role: 'critic',
|
|
134
|
+
provenance_kind: 'native_subagent',
|
|
135
|
+
verdict: 'approve',
|
|
136
|
+
session_id: sessionId,
|
|
137
|
+
thread_id: 'thread-critic',
|
|
138
|
+
artifact_path: '.omx/artifacts/critic.md',
|
|
139
|
+
tracker_path: '.omx/state/subagent-tracking.json',
|
|
140
|
+
completed_at: '2026-05-28T18:35:10.000Z',
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
const decision = canAdvanceAutopilotRalplanToUltragoal({ cwd, sessionId, currentState: state });
|
|
146
|
+
assert.equal(decision.allowed, true);
|
|
147
|
+
assert.equal(decision.evidence?.blockedReason, null);
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
await rm(cwd, { recursive: true, force: true });
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
it('rejects native review evidence from the current native session leader', async () => {
|
|
154
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omx-autopilot-ralplan-native-leader-'));
|
|
155
|
+
const sessionId = 'sess-autopilot-native-leader';
|
|
156
|
+
const trackingPath = subagentTrackingPath(cwd);
|
|
157
|
+
try {
|
|
158
|
+
await mkdir(join(trackingPath, '..'), { recursive: true });
|
|
159
|
+
await writeFile(join(cwd, '.omx', 'state', 'session.json'), JSON.stringify({
|
|
160
|
+
session_id: sessionId,
|
|
161
|
+
native_session_id: 'thread-leader',
|
|
162
|
+
}, null, 2));
|
|
163
|
+
await writeFile(trackingPath, JSON.stringify({
|
|
164
|
+
schemaVersion: 1,
|
|
165
|
+
sessions: {
|
|
166
|
+
[sessionId]: {
|
|
167
|
+
session_id: sessionId,
|
|
168
|
+
leader_thread_id: 'thread-leader',
|
|
169
|
+
updated_at: '2026-05-28T18:35:10.000Z',
|
|
170
|
+
threads: {
|
|
171
|
+
'thread-leader': {
|
|
172
|
+
thread_id: 'thread-leader',
|
|
173
|
+
kind: 'subagent',
|
|
174
|
+
first_seen_at: '2026-05-28T18:34:51.000Z',
|
|
175
|
+
last_seen_at: '2026-05-28T18:34:51.000Z',
|
|
176
|
+
turn_count: 2,
|
|
177
|
+
},
|
|
178
|
+
'thread-critic': {
|
|
179
|
+
thread_id: 'thread-critic',
|
|
180
|
+
kind: 'subagent',
|
|
181
|
+
first_seen_at: '2026-05-28T18:35:10.000Z',
|
|
182
|
+
last_seen_at: '2026-05-28T18:35:10.000Z',
|
|
183
|
+
turn_count: 1,
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
}, null, 2));
|
|
189
|
+
const state = {
|
|
190
|
+
current_phase: 'ralplan',
|
|
191
|
+
handoff_artifacts: {
|
|
192
|
+
ralplan_consensus_gate: {
|
|
193
|
+
complete: true,
|
|
194
|
+
sequence: ['architect-review', 'critic-review'],
|
|
195
|
+
ralplan_architect_review: {
|
|
196
|
+
agent_role: 'architect',
|
|
197
|
+
provenance_kind: 'native_subagent',
|
|
198
|
+
verdict: 'approve',
|
|
199
|
+
session_id: sessionId,
|
|
200
|
+
thread_id: 'thread-leader',
|
|
201
|
+
artifact_path: '.omx/artifacts/architect.md',
|
|
202
|
+
tracker_path: '.omx/state/subagent-tracking.json',
|
|
203
|
+
completed_at: '2026-05-28T18:34:51.000Z',
|
|
204
|
+
},
|
|
205
|
+
ralplan_critic_review: {
|
|
206
|
+
agent_role: 'critic',
|
|
207
|
+
provenance_kind: 'native_subagent',
|
|
208
|
+
verdict: 'approve',
|
|
209
|
+
session_id: sessionId,
|
|
210
|
+
thread_id: 'thread-critic',
|
|
211
|
+
artifact_path: '.omx/artifacts/critic.md',
|
|
212
|
+
tracker_path: '.omx/state/subagent-tracking.json',
|
|
213
|
+
completed_at: '2026-05-28T18:35:10.000Z',
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
};
|
|
218
|
+
const decision = canAdvanceAutopilotRalplanToUltragoal({ cwd, sessionId, currentState: state });
|
|
219
|
+
assert.equal(decision.allowed, false);
|
|
220
|
+
assert.match(buildAutopilotRalplanUltragoalGateError(decision), /architect tracker thread thread-leader is the session leader/);
|
|
221
|
+
}
|
|
222
|
+
finally {
|
|
223
|
+
await rm(cwd, { recursive: true, force: true });
|
|
224
|
+
}
|
|
225
|
+
});
|
|
78
226
|
});
|
|
79
227
|
//# sourceMappingURL=ralplan-gate.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ralplan-gate.test.js","sourceRoot":"","sources":["../../../src/autopilot/__tests__/ralplan-gate.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ralplan-gate.test.js","sourceRoot":"","sources":["../../../src/autopilot/__tests__/ralplan-gate.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-interview-gate.d.ts","sourceRoot":"","sources":["../../src/autopilot/deep-interview-gate.ts"],"names":[],"mappings":"AAIA,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"deep-interview-gate.d.ts","sourceRoot":"","sources":["../../src/autopilot/deep-interview-gate.ts"],"names":[],"mappings":"AAIA,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAI1C,MAAM,WAAW,sCAAsC;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,kBAAkB,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,yCAAyC;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AA+YD,wBAAsB,yCAAyC,CAC7D,KAAK,EAAE,sCAAsC,GAC5C,OAAO,CAAC,yCAAyC,CAAC,CA+DpD;AAED,wBAAgB,2CAA2C,CACzD,QAAQ,EAAE,yCAAyC,GAClD,MAAM,CAER"}
|