oh-my-codex 0.5.0 → 0.6.0
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/README.md +22 -11
- package/dist/cli/__tests__/index.test.js +6 -0
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/session-scoped-runtime.test.js +91 -12
- package/dist/cli/__tests__/session-scoped-runtime.test.js.map +1 -1
- package/dist/cli/__tests__/team.test.d.ts +2 -0
- package/dist/cli/__tests__/team.test.d.ts.map +1 -0
- package/dist/cli/__tests__/team.test.js +31 -0
- package/dist/cli/__tests__/team.test.js.map +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +103 -38
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/ralph.d.ts +2 -0
- package/dist/cli/ralph.d.ts.map +1 -0
- package/dist/cli/ralph.js +41 -0
- package/dist/cli/ralph.js.map +1 -0
- package/dist/cli/team.d.ts +13 -0
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +24 -8
- package/dist/cli/team.js.map +1 -1
- package/dist/cli/tmux-hook.d.ts.map +1 -1
- package/dist/cli/tmux-hook.js +6 -0
- package/dist/cli/tmux-hook.js.map +1 -1
- package/dist/hooks/__tests__/agents-overlay.test.js +17 -10
- package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
- package/dist/hooks/__tests__/codebase-map.test.d.ts +8 -0
- package/dist/hooks/__tests__/codebase-map.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/codebase-map.test.js +156 -0
- package/dist/hooks/__tests__/codebase-map.test.js.map +1 -0
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +42 -0
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.d.ts +2 -0
- package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js +93 -0
- package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js.map +1 -0
- package/dist/hooks/__tests__/notify-hook-linked-sync.test.js +43 -5
- package/dist/hooks/__tests__/notify-hook-linked-sync.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-modules.test.d.ts +9 -0
- package/dist/hooks/__tests__/notify-hook-modules.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/notify-hook-modules.test.js +251 -0
- package/dist/hooks/__tests__/notify-hook-modules.test.js.map +1 -0
- package/dist/hooks/__tests__/notify-hook-regression-205.test.d.ts +9 -0
- package/dist/hooks/__tests__/notify-hook-regression-205.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/notify-hook-regression-205.test.js +97 -0
- package/dist/hooks/__tests__/notify-hook-regression-205.test.js.map +1 -0
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +60 -0
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.d.ts +10 -0
- package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.js +173 -0
- package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.js.map +1 -0
- package/dist/hooks/agents-overlay.d.ts +1 -0
- package/dist/hooks/agents-overlay.d.ts.map +1 -1
- package/dist/hooks/agents-overlay.js +39 -24
- package/dist/hooks/agents-overlay.js.map +1 -1
- package/dist/hooks/codebase-map.d.ts +23 -0
- package/dist/hooks/codebase-map.d.ts.map +1 -0
- package/dist/hooks/codebase-map.js +178 -0
- package/dist/hooks/codebase-map.js.map +1 -0
- package/dist/hooks/extensibility/sdk.js +1 -1
- package/dist/hooks/extensibility/sdk.js.map +1 -1
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +0 -1
- package/dist/hooks/keyword-detector.js.map +1 -1
- package/dist/hud/__tests__/state.test.js +74 -2
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +16 -6
- package/dist/hud/state.js.map +1 -1
- package/dist/mcp/__tests__/path-traversal.test.d.ts +2 -0
- package/dist/mcp/__tests__/path-traversal.test.d.ts.map +1 -0
- package/dist/mcp/__tests__/path-traversal.test.js +246 -0
- package/dist/mcp/__tests__/path-traversal.test.js.map +1 -0
- package/dist/mcp/__tests__/state-server-ralph-phase.test.d.ts +2 -0
- package/dist/mcp/__tests__/state-server-ralph-phase.test.d.ts.map +1 -0
- package/dist/mcp/__tests__/state-server-ralph-phase.test.js +59 -0
- package/dist/mcp/__tests__/state-server-ralph-phase.test.js.map +1 -0
- package/dist/mcp/__tests__/state-server-schema.test.d.ts +2 -0
- package/dist/mcp/__tests__/state-server-schema.test.d.ts.map +1 -0
- package/dist/mcp/__tests__/state-server-schema.test.js +32 -0
- package/dist/mcp/__tests__/state-server-schema.test.js.map +1 -0
- package/dist/mcp/__tests__/state-server-team-tools.test.js +313 -1
- package/dist/mcp/__tests__/state-server-team-tools.test.js.map +1 -1
- package/dist/mcp/__tests__/trace-server.test.js +33 -1
- package/dist/mcp/__tests__/trace-server.test.js.map +1 -1
- package/dist/mcp/state-paths.d.ts +24 -0
- package/dist/mcp/state-paths.d.ts.map +1 -1
- package/dist/mcp/state-paths.js +88 -1
- package/dist/mcp/state-paths.js.map +1 -1
- package/dist/mcp/state-server.d.ts.map +1 -1
- package/dist/mcp/state-server.js +720 -421
- package/dist/mcp/state-server.js.map +1 -1
- package/dist/mcp/trace-server.d.ts.map +1 -1
- package/dist/mcp/trace-server.js +31 -35
- package/dist/mcp/trace-server.js.map +1 -1
- package/dist/notifications/__tests__/formatter.test.js +71 -1
- package/dist/notifications/__tests__/formatter.test.js.map +1 -1
- package/dist/notifications/__tests__/notifier.test.js +48 -1
- package/dist/notifications/__tests__/notifier.test.js.map +1 -1
- package/dist/notifications/__tests__/reply-listener.test.js +39 -1
- package/dist/notifications/__tests__/reply-listener.test.js.map +1 -1
- package/dist/notifications/__tests__/tmux-detector.test.js +40 -1
- package/dist/notifications/__tests__/tmux-detector.test.js.map +1 -1
- package/dist/notifications/__tests__/tmux.test.js +37 -0
- package/dist/notifications/__tests__/tmux.test.js.map +1 -1
- package/dist/notifications/formatter.d.ts +10 -0
- package/dist/notifications/formatter.d.ts.map +1 -1
- package/dist/notifications/formatter.js +28 -1
- package/dist/notifications/formatter.js.map +1 -1
- package/dist/notifications/notifier.d.ts +5 -0
- package/dist/notifications/notifier.d.ts.map +1 -1
- package/dist/notifications/notifier.js +36 -15
- package/dist/notifications/notifier.js.map +1 -1
- package/dist/notifications/reply-listener.d.ts +6 -0
- package/dist/notifications/reply-listener.d.ts.map +1 -1
- package/dist/notifications/reply-listener.js +35 -1
- package/dist/notifications/reply-listener.js.map +1 -1
- package/dist/notifications/tmux-detector.d.ts +6 -0
- package/dist/notifications/tmux-detector.d.ts.map +1 -1
- package/dist/notifications/tmux-detector.js +10 -2
- package/dist/notifications/tmux-detector.js.map +1 -1
- package/dist/notifications/tmux.d.ts.map +1 -1
- package/dist/notifications/tmux.js +2 -3
- package/dist/notifications/tmux.js.map +1 -1
- package/dist/ralph/__tests__/persistence.test.d.ts +2 -0
- package/dist/ralph/__tests__/persistence.test.d.ts.map +1 -0
- package/dist/ralph/__tests__/persistence.test.js +69 -0
- package/dist/ralph/__tests__/persistence.test.js.map +1 -0
- package/dist/ralph/contract.d.ts +17 -0
- package/dist/ralph/contract.d.ts.map +1 -0
- package/dist/ralph/contract.js +96 -0
- package/dist/ralph/contract.js.map +1 -0
- package/dist/ralph/persistence.d.ts +8 -0
- package/dist/ralph/persistence.d.ts.map +1 -0
- package/dist/ralph/persistence.js +182 -0
- package/dist/ralph/persistence.js.map +1 -0
- package/dist/team/__tests__/model-contract.test.js +19 -0
- package/dist/team/__tests__/model-contract.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +31 -2
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/state.test.js +385 -1
- package/dist/team/__tests__/state.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +333 -1
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/worker-bootstrap.test.js +8 -3
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/__tests__/worktree.test.d.ts +2 -0
- package/dist/team/__tests__/worktree.test.d.ts.map +1 -0
- package/dist/team/__tests__/worktree.test.js +161 -0
- package/dist/team/__tests__/worktree.test.js.map +1 -0
- package/dist/team/model-contract.d.ts.map +1 -1
- package/dist/team/model-contract.js +2 -4
- package/dist/team/model-contract.js.map +1 -1
- package/dist/team/runtime.d.ts +13 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +150 -27
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/state.d.ts +39 -5
- package/dist/team/state.d.ts.map +1 -1
- package/dist/team/state.js +232 -37
- package/dist/team/state.js.map +1 -1
- package/dist/team/tmux-session.d.ts +43 -2
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +304 -37
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/worker-bootstrap.d.ts +4 -1
- package/dist/team/worker-bootstrap.d.ts.map +1 -1
- package/dist/team/worker-bootstrap.js +28 -20
- package/dist/team/worker-bootstrap.js.map +1 -1
- package/dist/team/worktree.d.ts +54 -0
- package/dist/team/worktree.d.ts.map +1 -0
- package/dist/team/worktree.js +275 -0
- package/dist/team/worktree.js.map +1 -0
- package/dist/utils/__tests__/dep-versions.test.d.ts +2 -0
- package/dist/utils/__tests__/dep-versions.test.d.ts.map +1 -0
- package/dist/utils/__tests__/dep-versions.test.js +29 -0
- package/dist/utils/__tests__/dep-versions.test.js.map +1 -0
- package/dist/verification/__tests__/ralph-persistence-gate.test.d.ts +2 -0
- package/dist/verification/__tests__/ralph-persistence-gate.test.d.ts.map +1 -0
- package/dist/verification/__tests__/ralph-persistence-gate.test.js +58 -0
- package/dist/verification/__tests__/ralph-persistence-gate.test.js.map +1 -0
- package/package.json +8 -4
- package/scripts/notify-hook/auto-nudge.js +200 -0
- package/scripts/notify-hook/linked-sync.js +61 -0
- package/scripts/notify-hook/log.js +11 -0
- package/scripts/notify-hook/payload-parser.js +122 -0
- package/scripts/notify-hook/process-runner.js +44 -0
- package/scripts/notify-hook/state-io.js +97 -0
- package/scripts/notify-hook/team-leader-nudge.js +277 -0
- package/scripts/notify-hook/team-worker.js +214 -0
- package/scripts/notify-hook/tmux-injection.js +400 -0
- package/scripts/notify-hook/utils.js +31 -0
- package/scripts/notify-hook.js +88 -1293
- package/scripts/tmux-hook-engine.js +11 -0
- package/skills/cancel/SKILL.md +23 -0
- package/skills/plan/SKILL.md +25 -16
- package/skills/ralph/SKILL.md +10 -3
- package/skills/ralph-init/SKILL.md +7 -0
- package/skills/ralplan/SKILL.md +17 -5
- package/skills/team/SKILL.md +22 -4
- package/skills/worker/SKILL.md +18 -13
- package/templates/AGENTS.md +0 -2
- package/templates/catalog-manifest.json +0 -8
- package/skills/research/SKILL.md +0 -505
package/README.md
CHANGED
|
@@ -63,17 +63,12 @@ Recommended trusted-environment launch profile:
|
|
|
63
63
|
omx --xhigh --madmax
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
## New in v0.
|
|
66
|
+
## New in v0.5.0
|
|
67
67
|
|
|
68
|
-
- **
|
|
69
|
-
- **
|
|
70
|
-
- **
|
|
71
|
-
|
|
72
|
-
Try it:
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
OMX_HOOK_PLUGINS=1 omx hooks test
|
|
76
|
-
```
|
|
68
|
+
- **Scope-aware setup** with `omx setup --scope user|project-local|project` for flexible install modes.
|
|
69
|
+
- **Spark worker routing** via `--spark` / `--madmax-spark` so team workers can use `gpt-5.3-codex-spark` without forcing the leader model.
|
|
70
|
+
- **Catalog consolidation** — removed deprecated prompts (`deep-executor`, `scientist`) and 9 deprecated skills for a leaner surface.
|
|
71
|
+
- **Notifier verbosity levels** for fine-grained CCNotifier output control.
|
|
77
72
|
|
|
78
73
|
## First Session
|
|
79
74
|
|
|
@@ -191,6 +186,22 @@ omx team shutdown <team-name>
|
|
|
191
186
|
|
|
192
187
|
Important rule: do not shutdown while tasks are still `in_progress` unless aborting.
|
|
193
188
|
|
|
189
|
+
Worker CLI selection for team workers:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
OMX_TEAM_WORKER_CLI=auto # default; uses claude when worker --model contains "claude"
|
|
193
|
+
OMX_TEAM_WORKER_CLI=codex # force Codex CLI workers
|
|
194
|
+
OMX_TEAM_WORKER_CLI=claude # force Claude CLI workers
|
|
195
|
+
OMX_TEAM_WORKER_CLI_MAP=codex,codex,claude,claude # per-worker CLI mix (len=1 or worker count)
|
|
196
|
+
OMX_TEAM_AUTO_INTERRUPT_RETRY=0 # optional: disable adaptive queue->resend fallback
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Notes:
|
|
200
|
+
- Worker launch args are still shared via `OMX_TEAM_WORKER_LAUNCH_ARGS`.
|
|
201
|
+
- `OMX_TEAM_WORKER_CLI_MAP` overrides `OMX_TEAM_WORKER_CLI` for per-worker selection.
|
|
202
|
+
- Trigger submission uses adaptive retries by default (queue/submit, then safe clear-line+resend fallback when needed).
|
|
203
|
+
- In Claude worker mode, OMX spawns workers as `claude --dangerously-skip-permissions` and intentionally ignores explicit `--model` / `--config` / `--effort` overrides so Claude uses default `settings.json`.
|
|
204
|
+
|
|
194
205
|
## What `omx setup` writes
|
|
195
206
|
|
|
196
207
|
- `.omx/setup-scope.json` (persisted setup scope)
|
|
@@ -217,7 +228,7 @@ Important rule: do not shutdown while tasks are still `in_progress` unless abort
|
|
|
217
228
|
|
|
218
229
|
Examples:
|
|
219
230
|
- Agents: `architect`, `planner`, `executor`, `debugger`, `verifier`, `security-reviewer`
|
|
220
|
-
- Skills: `autopilot`, `plan`, `team`, `ralph`, `ultrawork`, `
|
|
231
|
+
- Skills: `autopilot`, `plan`, `team`, `ralph`, `ultrawork`, `cancel`
|
|
221
232
|
|
|
222
233
|
## Project Layout
|
|
223
234
|
|
|
@@ -57,6 +57,12 @@ describe('normalizeCodexLaunchArgs', () => {
|
|
|
57
57
|
assert.ok(!args.includes('--model'), 'leader args must not contain --model from --madmax-spark');
|
|
58
58
|
assert.ok(!args.some(a => a.includes('spark')), 'leader args must not reference spark model');
|
|
59
59
|
});
|
|
60
|
+
it('strips detached worktree flag from leader codex args', () => {
|
|
61
|
+
assert.deepEqual(normalizeCodexLaunchArgs(['--worktree', '--yolo']), ['--yolo']);
|
|
62
|
+
});
|
|
63
|
+
it('strips named worktree flag from leader codex args', () => {
|
|
64
|
+
assert.deepEqual(normalizeCodexLaunchArgs(['--worktree=feature/demo', '--model', 'gpt-5']), ['--model', 'gpt-5']);
|
|
65
|
+
});
|
|
60
66
|
});
|
|
61
67
|
describe('resolveWorkerSparkModel', () => {
|
|
62
68
|
it('returns spark model string when --spark is present', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/index.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,31 +5,33 @@ import { dirname, join } from 'path';
|
|
|
5
5
|
import { tmpdir } from 'os';
|
|
6
6
|
import { spawnSync } from 'child_process';
|
|
7
7
|
import { fileURLToPath } from 'url';
|
|
8
|
+
const testDir = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
const repoRoot = join(testDir, '..', '..', '..');
|
|
10
|
+
const omxBin = join(repoRoot, 'bin', 'omx.js');
|
|
11
|
+
function runOmx(cwd, ...args) {
|
|
12
|
+
return spawnSync(process.execPath, [omxBin, ...args], {
|
|
13
|
+
cwd,
|
|
14
|
+
encoding: 'utf-8',
|
|
15
|
+
});
|
|
16
|
+
}
|
|
8
17
|
describe('CLI session-scoped state parity', () => {
|
|
9
18
|
it('status and cancel include session-scoped states', async () => {
|
|
10
19
|
const wd = await mkdtemp(join(tmpdir(), 'omx-cli-session-scope-'));
|
|
11
20
|
try {
|
|
21
|
+
await mkdir(join(wd, '.omx', 'state'), { recursive: true });
|
|
22
|
+
await writeFile(join(wd, '.omx', 'state', 'session.json'), JSON.stringify({ session_id: 'sess1' }));
|
|
12
23
|
const scopedDir = join(wd, '.omx', 'state', 'sessions', 'sess1');
|
|
13
24
|
await mkdir(scopedDir, { recursive: true });
|
|
14
25
|
await writeFile(join(scopedDir, 'team-state.json'), JSON.stringify({
|
|
15
26
|
active: true,
|
|
16
|
-
current_phase: '
|
|
27
|
+
current_phase: 'team-exec',
|
|
17
28
|
}));
|
|
18
|
-
const
|
|
19
|
-
const repoRoot = join(testDir, '..', '..', '..');
|
|
20
|
-
const omxBin = join(repoRoot, 'bin', 'omx.js');
|
|
21
|
-
const statusResult = spawnSync(process.execPath, [omxBin, 'status'], {
|
|
22
|
-
cwd: wd,
|
|
23
|
-
encoding: 'utf-8',
|
|
24
|
-
});
|
|
29
|
+
const statusResult = runOmx(wd, 'status');
|
|
25
30
|
if (statusResult.error && /(EPERM|EACCES)/i.test(statusResult.error.message))
|
|
26
31
|
return;
|
|
27
32
|
assert.equal(statusResult.status, 0, statusResult.stderr || statusResult.stdout);
|
|
28
33
|
assert.match(statusResult.stdout, /team: ACTIVE/);
|
|
29
|
-
const cancelResult =
|
|
30
|
-
cwd: wd,
|
|
31
|
-
encoding: 'utf-8',
|
|
32
|
-
});
|
|
34
|
+
const cancelResult = runOmx(wd, 'cancel');
|
|
33
35
|
assert.equal(cancelResult.status, 0, cancelResult.stderr || cancelResult.stdout);
|
|
34
36
|
assert.match(cancelResult.stdout, /Cancelled: team/);
|
|
35
37
|
const updated = JSON.parse(await readFile(join(scopedDir, 'team-state.json'), 'utf-8'));
|
|
@@ -41,5 +43,82 @@ describe('CLI session-scoped state parity', () => {
|
|
|
41
43
|
await rm(wd, { recursive: true, force: true });
|
|
42
44
|
}
|
|
43
45
|
});
|
|
46
|
+
it('cancels linked ultrawork but leaves unrelated mode unchanged when Ralph is active', async () => {
|
|
47
|
+
const wd = await mkdtemp(join(tmpdir(), 'omx-cli-ralph-link-'));
|
|
48
|
+
try {
|
|
49
|
+
const stateDir = join(wd, '.omx', 'state');
|
|
50
|
+
const sessionId = 'sess-link';
|
|
51
|
+
const sessionDir = join(stateDir, 'sessions', sessionId);
|
|
52
|
+
await mkdir(sessionDir, { recursive: true });
|
|
53
|
+
await writeFile(join(stateDir, 'session.json'), JSON.stringify({ session_id: sessionId }));
|
|
54
|
+
await writeFile(join(sessionDir, 'ralph-state.json'), JSON.stringify({
|
|
55
|
+
active: true,
|
|
56
|
+
iteration: 2,
|
|
57
|
+
max_iterations: 10,
|
|
58
|
+
current_phase: 'executing',
|
|
59
|
+
started_at: '2026-02-22T00:00:00.000Z',
|
|
60
|
+
linked_ultrawork: true,
|
|
61
|
+
}));
|
|
62
|
+
await writeFile(join(sessionDir, 'ultrawork-state.json'), JSON.stringify({
|
|
63
|
+
active: true,
|
|
64
|
+
current_phase: 'executing',
|
|
65
|
+
}));
|
|
66
|
+
await writeFile(join(sessionDir, 'ecomode-state.json'), JSON.stringify({
|
|
67
|
+
active: true,
|
|
68
|
+
current_phase: 'executing',
|
|
69
|
+
}));
|
|
70
|
+
const cancelResult = runOmx(wd, 'cancel');
|
|
71
|
+
assert.equal(cancelResult.status, 0, cancelResult.stderr || cancelResult.stdout);
|
|
72
|
+
assert.match(cancelResult.stdout, /Cancelled: ralph/);
|
|
73
|
+
assert.match(cancelResult.stdout, /Cancelled: ultrawork/);
|
|
74
|
+
assert.doesNotMatch(cancelResult.stdout, /Cancelled: ecomode/);
|
|
75
|
+
const ralph = JSON.parse(await readFile(join(sessionDir, 'ralph-state.json'), 'utf-8'));
|
|
76
|
+
assert.equal(ralph.active, false);
|
|
77
|
+
assert.equal(ralph.current_phase, 'cancelled');
|
|
78
|
+
assert.ok(typeof ralph.completed_at === 'string');
|
|
79
|
+
const ultrawork = JSON.parse(await readFile(join(sessionDir, 'ultrawork-state.json'), 'utf-8'));
|
|
80
|
+
assert.equal(ultrawork.active, false);
|
|
81
|
+
assert.equal(ultrawork.current_phase, 'cancelled');
|
|
82
|
+
const ecomode = JSON.parse(await readFile(join(sessionDir, 'ecomode-state.json'), 'utf-8'));
|
|
83
|
+
assert.equal(ecomode.active, true);
|
|
84
|
+
assert.equal(ecomode.current_phase, 'executing');
|
|
85
|
+
}
|
|
86
|
+
finally {
|
|
87
|
+
await rm(wd, { recursive: true, force: true });
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
it('does not mutate unrelated sessions when cancelling current session mode', async () => {
|
|
91
|
+
const wd = await mkdtemp(join(tmpdir(), 'omx-cli-cross-session-'));
|
|
92
|
+
try {
|
|
93
|
+
const stateDir = join(wd, '.omx', 'state');
|
|
94
|
+
const sessionA = join(stateDir, 'sessions', 'sessA');
|
|
95
|
+
const sessionB = join(stateDir, 'sessions', 'sessB');
|
|
96
|
+
await mkdir(sessionA, { recursive: true });
|
|
97
|
+
await mkdir(sessionB, { recursive: true });
|
|
98
|
+
await writeFile(join(stateDir, 'session.json'), JSON.stringify({ session_id: 'sessA' }));
|
|
99
|
+
await writeFile(join(sessionA, 'ralph-state.json'), JSON.stringify({
|
|
100
|
+
active: true,
|
|
101
|
+
current_phase: 'executing',
|
|
102
|
+
started_at: '2026-02-22T00:00:00.000Z',
|
|
103
|
+
}));
|
|
104
|
+
await writeFile(join(sessionB, 'ralph-state.json'), JSON.stringify({
|
|
105
|
+
active: true,
|
|
106
|
+
current_phase: 'executing',
|
|
107
|
+
started_at: '2026-02-22T00:00:00.000Z',
|
|
108
|
+
}));
|
|
109
|
+
const cancelResult = runOmx(wd, 'cancel');
|
|
110
|
+
assert.equal(cancelResult.status, 0, cancelResult.stderr || cancelResult.stdout);
|
|
111
|
+
assert.match(cancelResult.stdout, /Cancelled: ralph/);
|
|
112
|
+
const aState = JSON.parse(await readFile(join(sessionA, 'ralph-state.json'), 'utf-8'));
|
|
113
|
+
const bState = JSON.parse(await readFile(join(sessionB, 'ralph-state.json'), 'utf-8'));
|
|
114
|
+
assert.equal(aState.active, false);
|
|
115
|
+
assert.equal(aState.current_phase, 'cancelled');
|
|
116
|
+
assert.equal(bState.active, true);
|
|
117
|
+
assert.equal(bState.current_phase, 'executing');
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
await rm(wd, { recursive: true, force: true });
|
|
121
|
+
}
|
|
122
|
+
});
|
|
44
123
|
});
|
|
45
124
|
//# sourceMappingURL=session-scoped-runtime.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-scoped-runtime.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/session-scoped-runtime.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACjE,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjE,MAAM,EAAE,IAAI;gBACZ,aAAa,EAAE,WAAW;aAC3B,CAAC,CAAC,CAAC;YAEJ,MAAM,
|
|
1
|
+
{"version":3,"file":"session-scoped-runtime.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/session-scoped-runtime.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team.test.d.ts","sourceRoot":"","sources":["../../../src/cli/__tests__/team.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { describe, it } from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { parseTeamStartArgs } from '../team.js';
|
|
4
|
+
describe('parseTeamStartArgs', () => {
|
|
5
|
+
it('parses default team start args without worktree', () => {
|
|
6
|
+
const result = parseTeamStartArgs(['2:executor', 'build', 'feature']);
|
|
7
|
+
assert.deepEqual(result.worktreeMode, { enabled: false });
|
|
8
|
+
assert.equal(result.parsed.workerCount, 2);
|
|
9
|
+
assert.equal(result.parsed.agentType, 'executor');
|
|
10
|
+
assert.equal(result.parsed.task, 'build feature');
|
|
11
|
+
assert.equal(result.parsed.teamName, 'build-feature');
|
|
12
|
+
});
|
|
13
|
+
it('parses detached worktree mode and strips the flag', () => {
|
|
14
|
+
const result = parseTeamStartArgs(['--worktree', '3:debugger', 'fix', 'bug']);
|
|
15
|
+
assert.deepEqual(result.worktreeMode, { enabled: true, detached: true, name: null });
|
|
16
|
+
assert.equal(result.parsed.workerCount, 3);
|
|
17
|
+
assert.equal(result.parsed.agentType, 'debugger');
|
|
18
|
+
assert.equal(result.parsed.task, 'fix bug');
|
|
19
|
+
assert.equal(result.parsed.teamName, 'fix-bug');
|
|
20
|
+
});
|
|
21
|
+
it('parses named worktree mode with ralph prefix', () => {
|
|
22
|
+
const result = parseTeamStartArgs(['ralph', '--worktree=feature/demo', '4:executor', 'ship', 'it']);
|
|
23
|
+
assert.deepEqual(result.worktreeMode, { enabled: true, detached: false, name: 'feature/demo' });
|
|
24
|
+
assert.equal(result.parsed.ralph, true);
|
|
25
|
+
assert.equal(result.parsed.workerCount, 4);
|
|
26
|
+
assert.equal(result.parsed.agentType, 'executor');
|
|
27
|
+
assert.equal(result.parsed.task, 'ship it');
|
|
28
|
+
assert.equal(result.parsed.teamName, 'ship-it');
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=team.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/team.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACpG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAChG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export declare function isHudWatchPane(pane: TmuxPaneSnapshot): boolean;
|
|
|
24
24
|
export declare function findHudWatchPaneIds(panes: TmuxPaneSnapshot[], currentPaneId?: string): string[];
|
|
25
25
|
export declare function buildHudPaneCleanupTargets(existingPaneIds: string[], createdPaneId: string | null, leaderPaneId?: string): string[];
|
|
26
26
|
export declare function main(args: string[]): Promise<void>;
|
|
27
|
+
export declare function launchWithHud(args: string[]): Promise<void>;
|
|
27
28
|
export declare function normalizeCodexLaunchArgs(args: string[]): string[];
|
|
28
29
|
/**
|
|
29
30
|
* Returns the spark model string if --spark or --madmax-spark appears in the
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -12,7 +12,8 @@ import { tmuxHookCommand } from './tmux-hook.js';
|
|
|
12
12
|
import { hooksCommand } from './hooks.js';
|
|
13
13
|
import { hudCommand } from '../hud/index.js';
|
|
14
14
|
import { teamCommand } from './team.js';
|
|
15
|
-
import {
|
|
15
|
+
import { ralphCommand } from './ralph.js';
|
|
16
|
+
import { getBaseStateDir, getStateDir, listModeStateFilesWithScopePreference, } from '../mcp/state-paths.js';
|
|
16
17
|
import { maybeCheckAndPromptUpdate } from './update.js';
|
|
17
18
|
import { maybePromptGithubStar } from './star-prompt.js';
|
|
18
19
|
import { generateOverlay, writeSessionModelInstructionsFile, removeSessionModelInstructionsFile, sessionModelInstructionsPath, } from '../hooks/agents-overlay.js';
|
|
@@ -23,6 +24,7 @@ import { codexConfigPath } from '../utils/paths.js';
|
|
|
23
24
|
import { buildHookEvent } from '../hooks/extensibility/events.js';
|
|
24
25
|
import { dispatchHookEvent } from '../hooks/extensibility/dispatcher.js';
|
|
25
26
|
import { collectInheritableTeamWorkerArgs as collectInheritableTeamWorkerArgsShared, resolveTeamWorkerLaunchArgs, } from '../team/model-contract.js';
|
|
27
|
+
import { parseWorktreeMode, planWorktreeTarget, ensureWorktree, } from '../team/worktree.js';
|
|
26
28
|
const HELP = `
|
|
27
29
|
oh-my-codex (omx) - Multi-agent orchestration for Codex CLI
|
|
28
30
|
|
|
@@ -32,6 +34,7 @@ Usage:
|
|
|
32
34
|
omx doctor Check installation health
|
|
33
35
|
omx doctor --team Check team/swarm runtime health diagnostics
|
|
34
36
|
omx team Spawn parallel worker panes in tmux and bootstrap inbox/task state
|
|
37
|
+
omx ralph Launch Codex with ralph persistence mode active
|
|
35
38
|
omx version Show version information
|
|
36
39
|
omx tmux-hook Manage tmux prompt injection workaround (init|status|validate|test)
|
|
37
40
|
omx hooks Manage hook plugins (init|status|validate|test)
|
|
@@ -53,6 +56,8 @@ Options:
|
|
|
53
56
|
Workers get --model gpt-5.3-codex-spark; leader model unchanged
|
|
54
57
|
--madmax-spark spark model for workers + bypass approvals for leader and workers
|
|
55
58
|
(shorthand for: --spark --madmax)
|
|
59
|
+
-w, --worktree[=<name>]
|
|
60
|
+
Launch Codex in a git worktree (detached when no name is given)
|
|
56
61
|
--force Force reinstall (overwrite existing files)
|
|
57
62
|
--dry-run Show what would be done without doing it
|
|
58
63
|
--verbose Show detailed output
|
|
@@ -181,7 +186,7 @@ export function buildHudPaneCleanupTargets(existingPaneIds, createdPaneId, leade
|
|
|
181
186
|
}
|
|
182
187
|
export async function main(args) {
|
|
183
188
|
const knownCommands = new Set([
|
|
184
|
-
'launch', 'setup', 'doctor', 'team', 'version', 'tmux-hook', 'hooks', 'hud', 'status', 'cancel', 'help', '--help', '-h',
|
|
189
|
+
'launch', 'setup', 'doctor', 'team', 'ralph', 'version', 'tmux-hook', 'hooks', 'hud', 'status', 'cancel', 'help', '--help', '-h',
|
|
185
190
|
]);
|
|
186
191
|
const firstArg = args[0];
|
|
187
192
|
const { command, launchArgs } = resolveCliInvocation(args);
|
|
@@ -211,6 +216,9 @@ export async function main(args) {
|
|
|
211
216
|
case 'team':
|
|
212
217
|
await teamCommand(args.slice(1), options);
|
|
213
218
|
break;
|
|
219
|
+
case 'ralph':
|
|
220
|
+
await ralphCommand(args.slice(1));
|
|
221
|
+
break;
|
|
214
222
|
case 'version':
|
|
215
223
|
version();
|
|
216
224
|
break;
|
|
@@ -253,19 +261,11 @@ export async function main(args) {
|
|
|
253
261
|
}
|
|
254
262
|
}
|
|
255
263
|
async function showStatus() {
|
|
256
|
-
const {
|
|
264
|
+
const { readFile } = await import('fs/promises');
|
|
257
265
|
const cwd = process.cwd();
|
|
258
266
|
try {
|
|
259
|
-
const
|
|
260
|
-
const states =
|
|
261
|
-
for (const stateDir of scopedDirs) {
|
|
262
|
-
const files = await readdir(stateDir).catch(() => []);
|
|
263
|
-
for (const file of files) {
|
|
264
|
-
if (!file.endsWith('-state.json') || file === 'session.json')
|
|
265
|
-
continue;
|
|
266
|
-
states.push(join(stateDir, file));
|
|
267
|
-
}
|
|
268
|
-
}
|
|
267
|
+
const refs = await listModeStateFilesWithScopePreference(cwd);
|
|
268
|
+
const states = refs.map((ref) => ref.path);
|
|
269
269
|
if (states.length === 0) {
|
|
270
270
|
console.log('No active modes.');
|
|
271
271
|
return;
|
|
@@ -312,10 +312,23 @@ async function reasoningCommand(args) {
|
|
|
312
312
|
await writeFile(configPath, updated);
|
|
313
313
|
console.log(`Set ${REASONING_KEY}="${mode}" in ${configPath}`);
|
|
314
314
|
}
|
|
315
|
-
async function launchWithHud(args) {
|
|
316
|
-
const
|
|
317
|
-
const
|
|
318
|
-
const
|
|
315
|
+
export async function launchWithHud(args) {
|
|
316
|
+
const launchCwd = process.cwd();
|
|
317
|
+
const parsedWorktree = parseWorktreeMode(args);
|
|
318
|
+
const workerSparkModel = resolveWorkerSparkModel(parsedWorktree.remainingArgs);
|
|
319
|
+
const normalizedArgs = normalizeCodexLaunchArgs(parsedWorktree.remainingArgs);
|
|
320
|
+
let cwd = launchCwd;
|
|
321
|
+
if (parsedWorktree.mode.enabled) {
|
|
322
|
+
const planned = planWorktreeTarget({
|
|
323
|
+
cwd: launchCwd,
|
|
324
|
+
scope: 'launch',
|
|
325
|
+
mode: parsedWorktree.mode,
|
|
326
|
+
});
|
|
327
|
+
const ensured = ensureWorktree(planned);
|
|
328
|
+
if (ensured.enabled) {
|
|
329
|
+
cwd = ensured.worktreePath;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
319
332
|
const sessionId = `omx-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
320
333
|
try {
|
|
321
334
|
await maybeCheckAndPromptUpdate(cwd);
|
|
@@ -347,11 +360,12 @@ async function launchWithHud(args) {
|
|
|
347
360
|
}
|
|
348
361
|
}
|
|
349
362
|
export function normalizeCodexLaunchArgs(args) {
|
|
363
|
+
const parsed = parseWorktreeMode(args);
|
|
350
364
|
const normalized = [];
|
|
351
365
|
let wantsBypass = false;
|
|
352
366
|
let hasBypass = false;
|
|
353
367
|
let reasoningMode = null;
|
|
354
|
-
for (const arg of
|
|
368
|
+
for (const arg of parsed.remainingArgs) {
|
|
355
369
|
if (arg === MADMAX_FLAG) {
|
|
356
370
|
wantsBypass = true;
|
|
357
371
|
continue;
|
|
@@ -1000,30 +1014,81 @@ async function flushHookDerivedWatcherOnce(cwd) {
|
|
|
1000
1014
|
});
|
|
1001
1015
|
}
|
|
1002
1016
|
async function cancelModes() {
|
|
1003
|
-
const {
|
|
1017
|
+
const { writeFile, readFile } = await import('fs/promises');
|
|
1004
1018
|
const cwd = process.cwd();
|
|
1019
|
+
const nowIso = new Date().toISOString();
|
|
1005
1020
|
try {
|
|
1006
|
-
const
|
|
1007
|
-
|
|
1008
|
-
for (const
|
|
1009
|
-
const
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1021
|
+
const refs = await listModeStateFilesWithScopePreference(cwd);
|
|
1022
|
+
const states = new Map();
|
|
1023
|
+
for (const ref of refs) {
|
|
1024
|
+
const content = await readFile(ref.path, 'utf-8');
|
|
1025
|
+
states.set(ref.mode, {
|
|
1026
|
+
path: ref.path,
|
|
1027
|
+
scope: ref.scope,
|
|
1028
|
+
state: JSON.parse(content),
|
|
1029
|
+
});
|
|
1030
|
+
}
|
|
1031
|
+
const changed = new Set();
|
|
1032
|
+
const reported = new Set();
|
|
1033
|
+
const cancelMode = (mode, phase = 'cancelled', reportIfWasActive = true) => {
|
|
1034
|
+
const entry = states.get(mode);
|
|
1035
|
+
if (!entry)
|
|
1036
|
+
return;
|
|
1037
|
+
const wasActive = entry.state.active === true;
|
|
1038
|
+
const needsChange = entry.state.active !== false
|
|
1039
|
+
|| entry.state.current_phase !== phase
|
|
1040
|
+
|| typeof entry.state.completed_at !== 'string'
|
|
1041
|
+
|| String(entry.state.completed_at).trim() === '';
|
|
1042
|
+
if (!needsChange)
|
|
1043
|
+
return;
|
|
1044
|
+
entry.state.active = false;
|
|
1045
|
+
entry.state.current_phase = phase;
|
|
1046
|
+
entry.state.completed_at = nowIso;
|
|
1047
|
+
entry.state.last_turn_at = nowIso;
|
|
1048
|
+
changed.add(mode);
|
|
1049
|
+
if (reportIfWasActive && wasActive)
|
|
1050
|
+
reported.add(mode);
|
|
1051
|
+
};
|
|
1052
|
+
const ralphLinksUltrawork = (state) => state.linked_ultrawork === true || state.linked_mode === 'ultrawork';
|
|
1053
|
+
const ralphLinksEcomode = (state) => state.linked_ecomode === true || state.linked_mode === 'ecomode';
|
|
1054
|
+
const team = states.get('team');
|
|
1055
|
+
const ralph = states.get('ralph');
|
|
1056
|
+
const hadActiveRalph = !!(ralph && ralph.state.active === true);
|
|
1057
|
+
if (team && team.state.active === true && team.state.linked_ralph === true) {
|
|
1058
|
+
cancelMode('team', 'cancelled', true);
|
|
1059
|
+
if (ralph && ralph.state.linked_team === true) {
|
|
1060
|
+
cancelMode('ralph', 'cancelled', true);
|
|
1061
|
+
ralph.state.linked_team_terminal_phase = 'cancelled';
|
|
1062
|
+
ralph.state.linked_team_terminal_at = nowIso;
|
|
1063
|
+
changed.add('ralph');
|
|
1064
|
+
if (ralphLinksUltrawork(ralph.state))
|
|
1065
|
+
cancelMode('ultrawork', 'cancelled', true);
|
|
1066
|
+
if (ralphLinksEcomode(ralph.state))
|
|
1067
|
+
cancelMode('ecomode', 'cancelled', true);
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
if (ralph && ralph.state.active === true) {
|
|
1071
|
+
cancelMode('ralph', 'cancelled', true);
|
|
1072
|
+
if (ralphLinksUltrawork(ralph.state))
|
|
1073
|
+
cancelMode('ultrawork', 'cancelled', true);
|
|
1074
|
+
if (ralphLinksEcomode(ralph.state))
|
|
1075
|
+
cancelMode('ecomode', 'cancelled', true);
|
|
1076
|
+
}
|
|
1077
|
+
if (!hadActiveRalph) {
|
|
1078
|
+
for (const [mode, entry] of states.entries()) {
|
|
1079
|
+
if (entry.state.active === true)
|
|
1080
|
+
cancelMode(mode, 'cancelled', true);
|
|
1024
1081
|
}
|
|
1025
1082
|
}
|
|
1026
|
-
|
|
1083
|
+
for (const [mode, entry] of states.entries()) {
|
|
1084
|
+
if (!changed.has(mode))
|
|
1085
|
+
continue;
|
|
1086
|
+
await writeFile(entry.path, JSON.stringify(entry.state, null, 2));
|
|
1087
|
+
}
|
|
1088
|
+
for (const mode of reported) {
|
|
1089
|
+
console.log(`Cancelled: ${mode}`);
|
|
1090
|
+
}
|
|
1091
|
+
if (reported.size === 0) {
|
|
1027
1092
|
console.log('No active modes to cancel.');
|
|
1028
1093
|
}
|
|
1029
1094
|
}
|