oh-my-codex 0.15.2 → 0.15.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.
Files changed (166) hide show
  1. package/Cargo.lock +5 -5
  2. package/Cargo.toml +1 -1
  3. package/dist/agents/__tests__/native-config.test.js +33 -0
  4. package/dist/agents/__tests__/native-config.test.js.map +1 -1
  5. package/dist/catalog/__tests__/plugin-bundle-ssot.test.js +9 -1
  6. package/dist/catalog/__tests__/plugin-bundle-ssot.test.js.map +1 -1
  7. package/dist/cli/__tests__/doctor-context-window-warning.test.d.ts +2 -0
  8. package/dist/cli/__tests__/doctor-context-window-warning.test.d.ts.map +1 -0
  9. package/dist/cli/__tests__/doctor-context-window-warning.test.js +122 -0
  10. package/dist/cli/__tests__/doctor-context-window-warning.test.js.map +1 -0
  11. package/dist/cli/__tests__/doctor-warning-copy.test.js +2 -2
  12. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  13. package/dist/cli/__tests__/exec.test.js +1 -0
  14. package/dist/cli/__tests__/exec.test.js.map +1 -1
  15. package/dist/cli/__tests__/explore.test.js +40 -17
  16. package/dist/cli/__tests__/explore.test.js.map +1 -1
  17. package/dist/cli/__tests__/index.test.js +141 -8
  18. package/dist/cli/__tests__/index.test.js.map +1 -1
  19. package/dist/cli/__tests__/mcp-serve.test.js +27 -1
  20. package/dist/cli/__tests__/mcp-serve.test.js.map +1 -1
  21. package/dist/cli/__tests__/ralph.test.js +59 -1
  22. package/dist/cli/__tests__/ralph.test.js.map +1 -1
  23. package/dist/cli/__tests__/setup-scope.test.js +2 -1
  24. package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
  25. package/dist/cli/__tests__/team.test.js +55 -10
  26. package/dist/cli/__tests__/team.test.js.map +1 -1
  27. package/dist/cli/doctor.d.ts.map +1 -1
  28. package/dist/cli/doctor.js +46 -3
  29. package/dist/cli/doctor.js.map +1 -1
  30. package/dist/cli/index.d.ts +16 -1
  31. package/dist/cli/index.d.ts.map +1 -1
  32. package/dist/cli/index.js +126 -15
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/cli/mcp-serve.d.ts +1 -0
  35. package/dist/cli/mcp-serve.d.ts.map +1 -1
  36. package/dist/cli/mcp-serve.js +8 -0
  37. package/dist/cli/mcp-serve.js.map +1 -1
  38. package/dist/cli/ralph.d.ts +2 -0
  39. package/dist/cli/ralph.d.ts.map +1 -1
  40. package/dist/cli/ralph.js +17 -1
  41. package/dist/cli/ralph.js.map +1 -1
  42. package/dist/cli/team.d.ts +4 -0
  43. package/dist/cli/team.d.ts.map +1 -1
  44. package/dist/cli/team.js +47 -22
  45. package/dist/cli/team.js.map +1 -1
  46. package/dist/config/__tests__/generator-idempotent.test.js +27 -5
  47. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  48. package/dist/config/generator.d.ts +11 -2
  49. package/dist/config/generator.d.ts.map +1 -1
  50. package/dist/config/generator.js +114 -58
  51. package/dist/config/generator.js.map +1 -1
  52. package/dist/hooks/__tests__/agents-overlay.test.js +59 -0
  53. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  54. package/dist/hooks/__tests__/anti-slop-workflow.test.js +109 -18
  55. package/dist/hooks/__tests__/anti-slop-workflow.test.js.map +1 -1
  56. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  57. package/dist/hooks/agents-overlay.js +21 -0
  58. package/dist/hooks/agents-overlay.js.map +1 -1
  59. package/dist/hud/__tests__/index.test.js +30 -14
  60. package/dist/hud/__tests__/index.test.js.map +1 -1
  61. package/dist/openclaw/__tests__/dispatcher.test.js +1 -1
  62. package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -1
  63. package/dist/pipeline/__tests__/stages.test.js +398 -14
  64. package/dist/pipeline/__tests__/stages.test.js.map +1 -1
  65. package/dist/pipeline/stages/team-exec.d.ts +8 -4
  66. package/dist/pipeline/stages/team-exec.d.ts.map +1 -1
  67. package/dist/pipeline/stages/team-exec.js +198 -13
  68. package/dist/pipeline/stages/team-exec.js.map +1 -1
  69. package/dist/planning/__tests__/artifacts.test.js +246 -1
  70. package/dist/planning/__tests__/artifacts.test.js.map +1 -1
  71. package/dist/planning/artifact-names.d.ts +13 -0
  72. package/dist/planning/artifact-names.d.ts.map +1 -0
  73. package/dist/planning/artifact-names.js +108 -0
  74. package/dist/planning/artifact-names.js.map +1 -0
  75. package/dist/planning/artifacts.d.ts +22 -1
  76. package/dist/planning/artifacts.d.ts.map +1 -1
  77. package/dist/planning/artifacts.js +165 -50
  78. package/dist/planning/artifacts.js.map +1 -1
  79. package/dist/ralph/__tests__/persistence.test.js +21 -1
  80. package/dist/ralph/__tests__/persistence.test.js.map +1 -1
  81. package/dist/ralph/persistence.d.ts.map +1 -1
  82. package/dist/ralph/persistence.js +6 -4
  83. package/dist/ralph/persistence.js.map +1 -1
  84. package/dist/scripts/__tests__/codex-native-hook.test.js +352 -2
  85. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  86. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  87. package/dist/scripts/codex-native-hook.js +85 -6
  88. package/dist/scripts/codex-native-hook.js.map +1 -1
  89. package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
  90. package/dist/scripts/codex-native-pre-post.js +123 -0
  91. package/dist/scripts/codex-native-pre-post.js.map +1 -1
  92. package/dist/scripts/notify-hook/team-worker-posttooluse.js +1 -1
  93. package/dist/scripts/notify-hook/team-worker-posttooluse.js.map +1 -1
  94. package/dist/scripts/notify-hook.js +1 -1
  95. package/dist/scripts/notify-hook.js.map +1 -1
  96. package/dist/scripts/sync-plugin-mirror.d.ts +1 -0
  97. package/dist/scripts/sync-plugin-mirror.d.ts.map +1 -1
  98. package/dist/scripts/sync-plugin-mirror.js +8 -2
  99. package/dist/scripts/sync-plugin-mirror.js.map +1 -1
  100. package/dist/state/__tests__/skill-active.test.js +41 -0
  101. package/dist/state/__tests__/skill-active.test.js.map +1 -1
  102. package/dist/team/__tests__/api-interop.test.js +220 -0
  103. package/dist/team/__tests__/api-interop.test.js.map +1 -1
  104. package/dist/team/__tests__/model-contract.test.js +40 -9
  105. package/dist/team/__tests__/model-contract.test.js.map +1 -1
  106. package/dist/team/__tests__/repo-aware-decomposition.test.js +41 -0
  107. package/dist/team/__tests__/repo-aware-decomposition.test.js.map +1 -1
  108. package/dist/team/__tests__/runtime-cli.test.js +24 -0
  109. package/dist/team/__tests__/runtime-cli.test.js.map +1 -1
  110. package/dist/team/__tests__/runtime.test.js +446 -67
  111. package/dist/team/__tests__/runtime.test.js.map +1 -1
  112. package/dist/team/__tests__/state.test.js +13 -0
  113. package/dist/team/__tests__/state.test.js.map +1 -1
  114. package/dist/team/__tests__/team-identity.test.d.ts +2 -0
  115. package/dist/team/__tests__/team-identity.test.d.ts.map +1 -0
  116. package/dist/team/__tests__/team-identity.test.js +166 -0
  117. package/dist/team/__tests__/team-identity.test.js.map +1 -0
  118. package/dist/team/__tests__/tmux-session.test.js +55 -1
  119. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  120. package/dist/team/__tests__/worker-bootstrap.test.js +12 -0
  121. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  122. package/dist/team/api-interop.d.ts +1 -0
  123. package/dist/team/api-interop.d.ts.map +1 -1
  124. package/dist/team/api-interop.js +159 -129
  125. package/dist/team/api-interop.js.map +1 -1
  126. package/dist/team/delivery-log.d.ts +1 -1
  127. package/dist/team/delivery-log.d.ts.map +1 -1
  128. package/dist/team/delivery-log.js.map +1 -1
  129. package/dist/team/repo-aware-decomposition.d.ts +3 -0
  130. package/dist/team/repo-aware-decomposition.d.ts.map +1 -1
  131. package/dist/team/repo-aware-decomposition.js +2 -0
  132. package/dist/team/repo-aware-decomposition.js.map +1 -1
  133. package/dist/team/runtime-cli.d.ts +32 -2
  134. package/dist/team/runtime-cli.d.ts.map +1 -1
  135. package/dist/team/runtime-cli.js +78 -26
  136. package/dist/team/runtime-cli.js.map +1 -1
  137. package/dist/team/runtime.d.ts +1 -1
  138. package/dist/team/runtime.d.ts.map +1 -1
  139. package/dist/team/runtime.js +338 -35
  140. package/dist/team/runtime.js.map +1 -1
  141. package/dist/team/state.d.ts +9 -0
  142. package/dist/team/state.d.ts.map +1 -1
  143. package/dist/team/state.js +21 -0
  144. package/dist/team/state.js.map +1 -1
  145. package/dist/team/team-identity.d.ts +26 -0
  146. package/dist/team/team-identity.d.ts.map +1 -0
  147. package/dist/team/team-identity.js +169 -0
  148. package/dist/team/team-identity.js.map +1 -0
  149. package/dist/team/tmux-session.d.ts +18 -0
  150. package/dist/team/tmux-session.d.ts.map +1 -1
  151. package/dist/team/tmux-session.js +61 -1
  152. package/dist/team/tmux-session.js.map +1 -1
  153. package/dist/team/worker-bootstrap.d.ts +2 -0
  154. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  155. package/dist/team/worker-bootstrap.js +10 -1
  156. package/dist/team/worker-bootstrap.js.map +1 -1
  157. package/package.json +1 -1
  158. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  159. package/plugins/oh-my-codex/skills/ai-slop-cleaner/SKILL.md +30 -5
  160. package/skills/ai-slop-cleaner/SKILL.md +30 -5
  161. package/src/scripts/__tests__/codex-native-hook.test.ts +398 -2
  162. package/src/scripts/codex-native-hook.ts +115 -5
  163. package/src/scripts/codex-native-pre-post.ts +121 -0
  164. package/src/scripts/notify-hook/team-worker-posttooluse.ts +1 -1
  165. package/src/scripts/notify-hook.ts +1 -1
  166. package/src/scripts/sync-plugin-mirror.ts +11 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/hud/__tests__/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/hud/__tests__/index.test.ts"],"names":[],"mappings":"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"}
@@ -162,7 +162,7 @@ describe('wakeCommandGateway - command gate', () => {
162
162
  const { wakeCommandGateway } = await import('../dispatcher.js');
163
163
  process.env.OMX_OPENCLAW_COMMAND = '1';
164
164
  process.env.OMX_OPENCLAW_COMMAND_TIMEOUT_MS = '100';
165
- const result = await wakeCommandGateway('test', { type: 'command', command: "node -e \"setTimeout(() => {}, 250)\"", timeout: 500 }, {});
165
+ const result = await wakeCommandGateway('test', { type: 'command', command: "node -e \"setTimeout(() => {}, 250)\"", timeout: 5000 }, {});
166
166
  assert.equal(result.success, true);
167
167
  });
168
168
  });
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher.test.js","sourceRoot":"","sources":["../../../src/openclaw/__tests__/dispatcher.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatcher.test.js","sourceRoot":"","sources":["../../../src/openclaw/__tests__/dispatcher.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { describe, it, beforeEach, afterEach } from 'node:test';
2
2
  import assert from 'node:assert/strict';
3
3
  import { mkdtemp, rm, mkdir, writeFile } from 'fs/promises';
4
- import { join } from 'path';
4
+ import { basename, dirname, join } from 'path';
5
5
  import { tmpdir } from 'os';
6
6
  import { existsSync } from 'fs';
7
7
  import { createRalplanStage } from '../stages/ralplan.js';
@@ -9,6 +9,7 @@ import { createTeamExecStage, buildTeamInstruction } from '../stages/team-exec.j
9
9
  import { createRalphVerifyStage, createRalphStage, buildRalphInstruction } from '../stages/ralph-verify.js';
10
10
  import { createCodeReviewStage, buildCodeReviewInstruction } from '../stages/code-review.js';
11
11
  import { buildFollowupStaffingPlan } from '../../team/followup-planner.js';
12
+ import { packageRoot } from '../../utils/paths.js';
12
13
  // ---------------------------------------------------------------------------
13
14
  // Helpers
14
15
  // ---------------------------------------------------------------------------
@@ -30,6 +31,14 @@ async function cleanup() {
30
31
  await rm(tempDir, { recursive: true, force: true });
31
32
  }
32
33
  }
34
+ function decodeRuntimeCliInstructionPayload(instruction) {
35
+ const match = instruction.match(/--input-json-base64\s+([A-Za-z0-9_-]+)/);
36
+ assert.ok(match?.[1], 'expected --input-json-base64 payload');
37
+ return JSON.parse(Buffer.from(match[1], 'base64url').toString('utf-8'));
38
+ }
39
+ function escapeRegExp(value) {
40
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
41
+ }
33
42
  // ---------------------------------------------------------------------------
34
43
  // RALPLAN stage tests
35
44
  // ---------------------------------------------------------------------------
@@ -166,23 +175,297 @@ describe('Team Exec Stage', () => {
166
175
  it('respects custom worker count and agent type', async () => {
167
176
  const stage = createTeamExecStage({ workerCount: 4, agentType: 'architect' });
168
177
  const result = await stage.run(makeCtx());
178
+ const runtimeCliInput = decodeRuntimeCliInstructionPayload(result.artifacts.instruction);
169
179
  const arts = result.artifacts;
170
180
  assert.equal(arts.workerCount, 4);
171
181
  assert.equal(arts.agentType, 'architect');
182
+ assert.equal(runtimeCliInput.agentType, 'architect');
183
+ });
184
+ it('derives the team-exec task from a relative latest approved PRD handoff path', async () => {
185
+ const plansDir = join(tempDir, '.omx', 'plans');
186
+ await mkdir(plansDir, { recursive: true });
187
+ const approvedPrdPath = join(plansDir, 'prd-zeta.md');
188
+ await writeFile(approvedPrdPath, '# Zeta plan\n\nLaunch via omx team 5:debugger "Execute zeta handoff"\n');
189
+ await writeFile(join(plansDir, 'test-spec-zeta.md'), '# Zeta test spec\n');
190
+ const previousCwd = process.cwd();
191
+ try {
192
+ process.chdir(tmpdir());
193
+ const stage = createTeamExecStage();
194
+ const result = await stage.run(makeCtx({
195
+ task: 'original request task',
196
+ artifacts: {
197
+ ralplan: {
198
+ task: 'original request task',
199
+ data: 'plan-content',
200
+ stage: 'ralplan',
201
+ latestPlanPath: join('.omx', 'plans', 'prd-zeta.md'),
202
+ },
203
+ },
204
+ }));
205
+ assert.equal(result.status, 'completed');
206
+ const descriptor = result.artifacts.teamDescriptor;
207
+ const instruction = result.artifacts.instruction;
208
+ assert.equal(descriptor.task, 'Execute zeta handoff');
209
+ assert.match(instruction, /Execute zeta handoff/);
210
+ assert.doesNotMatch(instruction, /plan-content/);
211
+ assert.ok(Array.isArray(descriptor.availableAgentTypes));
212
+ assert.ok(descriptor.availableAgentTypes.length > 0);
213
+ assert.equal(typeof descriptor.staffingPlan.staffingSummary, 'string');
214
+ }
215
+ finally {
216
+ process.chdir(previousCwd);
217
+ }
218
+ });
219
+ it('derives the team-exec task when latestPlanPath is already cwd-prefixed', async () => {
220
+ const plansDir = join(tempDir, '.omx', 'plans');
221
+ await mkdir(plansDir, { recursive: true });
222
+ await writeFile(join(plansDir, 'prd-zeta.md'), '# Zeta plan\n\nLaunch via omx team 5:debugger "Execute zeta handoff"\n');
223
+ await writeFile(join(plansDir, 'test-spec-zeta.md'), '# Zeta test spec\n');
224
+ const relativeCwd = basename(tempDir);
225
+ const previousCwd = process.cwd();
226
+ try {
227
+ process.chdir(dirname(tempDir));
228
+ const stage = createTeamExecStage();
229
+ const result = await stage.run(makeCtx({
230
+ cwd: relativeCwd,
231
+ task: 'original request task',
232
+ artifacts: {
233
+ ralplan: {
234
+ task: 'original request task',
235
+ stage: 'ralplan',
236
+ latestPlanPath: join(relativeCwd, '.omx', 'plans', 'prd-zeta.md'),
237
+ },
238
+ },
239
+ }));
240
+ assert.equal(result.status, 'completed');
241
+ const descriptor = result.artifacts.teamDescriptor;
242
+ assert.equal(descriptor.task, 'Execute zeta handoff');
243
+ }
244
+ finally {
245
+ process.chdir(previousCwd);
246
+ }
247
+ });
248
+ it('derives the team-exec task when latestPlanPath resolves through equivalent relative segments', async () => {
249
+ const plansDir = join(tempDir, '.omx', 'plans');
250
+ await mkdir(plansDir, { recursive: true });
251
+ await writeFile(join(plansDir, 'prd-zeta.md'), '# Zeta plan\n\nLaunch via omx team 5:debugger "Execute zeta handoff"\n');
252
+ await writeFile(join(plansDir, 'test-spec-zeta.md'), '# Zeta test spec\n');
253
+ const relativeCwd = basename(tempDir);
254
+ const previousCwd = process.cwd();
255
+ try {
256
+ process.chdir(dirname(tempDir));
257
+ const stage = createTeamExecStage();
258
+ const result = await stage.run(makeCtx({
259
+ cwd: relativeCwd,
260
+ task: 'original request task',
261
+ artifacts: {
262
+ ralplan: {
263
+ task: 'original request task',
264
+ stage: 'ralplan',
265
+ latestPlanPath: join('..', relativeCwd, '.omx', 'plans', 'prd-zeta.md'),
266
+ },
267
+ },
268
+ }));
269
+ assert.equal(result.status, 'completed');
270
+ const descriptor = result.artifacts.teamDescriptor;
271
+ assert.equal(descriptor.task, 'Execute zeta handoff');
272
+ }
273
+ finally {
274
+ process.chdir(previousCwd);
275
+ }
172
276
  });
173
- it('includes ralplan artifacts in team task when available', async () => {
277
+ it('derives the team-exec task from single-quoted approved handoff text with escapes', async () => {
278
+ const plansDir = join(tempDir, '.omx', 'plans');
279
+ await mkdir(plansDir, { recursive: true });
280
+ await writeFile(join(plansDir, 'prd-zeta.md'), "# Zeta plan\n\nLaunch via $team 2:executor 'Fix Bob\\'s regression'\n");
281
+ await writeFile(join(plansDir, 'test-spec-zeta.md'), '# Zeta test spec\n');
174
282
  const stage = createTeamExecStage();
175
- const ctx = makeCtx({
283
+ const result = await stage.run(makeCtx({
284
+ task: 'original request task',
176
285
  artifacts: {
177
- ralplan: { data: 'plan-content', stage: 'ralplan' },
286
+ ralplan: {
287
+ task: 'original request task',
288
+ stage: 'ralplan',
289
+ latestPlanPath: join('.omx', 'plans', 'prd-zeta.md'),
290
+ },
178
291
  },
179
- });
180
- const result = await stage.run(ctx);
292
+ }));
293
+ assert.equal(result.status, 'completed');
181
294
  const descriptor = result.artifacts.teamDescriptor;
182
- assert.ok(descriptor.task.includes('plan-content'));
183
- assert.ok(Array.isArray(descriptor.availableAgentTypes));
184
- assert.ok(descriptor.availableAgentTypes.length > 0);
185
- assert.equal(typeof descriptor.staffingPlan.staffingSummary, 'string');
295
+ const instruction = result.artifacts.instruction;
296
+ assert.equal(descriptor.task, "Fix Bob's regression");
297
+ assert.match(instruction, /Fix Bob's regression/);
298
+ assert.doesNotMatch(instruction, /Fix Bob\\'s regression/);
299
+ });
300
+ it('preserves literal backslashes in single-quoted approved handoff text', async () => {
301
+ const plansDir = join(tempDir, '.omx', 'plans');
302
+ await mkdir(plansDir, { recursive: true });
303
+ await writeFile(join(plansDir, 'prd-zeta.md'), String.raw `# Zeta plan
304
+
305
+ Launch via $team 2:executor 'Fix C:\\tmp and keep \n literal'
306
+ `);
307
+ await writeFile(join(plansDir, 'test-spec-zeta.md'), '# Zeta test spec\n');
308
+ const stage = createTeamExecStage();
309
+ const result = await stage.run(makeCtx({
310
+ task: 'original request task',
311
+ artifacts: {
312
+ ralplan: {
313
+ task: 'original request task',
314
+ stage: 'ralplan',
315
+ latestPlanPath: join('.omx', 'plans', 'prd-zeta.md'),
316
+ },
317
+ },
318
+ }));
319
+ assert.equal(result.status, 'completed');
320
+ const descriptor = result.artifacts.teamDescriptor;
321
+ const instruction = result.artifacts.instruction;
322
+ const expectedTask = String.raw `Fix C:\\tmp and keep \n literal`;
323
+ assert.equal(descriptor.task, expectedTask);
324
+ assert.ok(instruction.includes(JSON.stringify(expectedTask)));
325
+ });
326
+ it('derives the team-exec task from the latest ralplan draft when numeric PRD slugs sort lexically out of order', async () => {
327
+ const plansDir = join(tempDir, '.omx', 'plans');
328
+ await mkdir(plansDir, { recursive: true });
329
+ await writeFile(join(plansDir, 'prd-issue-9.md'), '# Issue 9 plan\n\nLaunch via omx team 2:executor "Execute issue 9 handoff"\n');
330
+ await writeFile(join(plansDir, 'test-spec-issue-9.md'), '# Issue 9 test spec\n');
331
+ await writeFile(join(plansDir, 'prd-issue-10.md'), '# Issue 10 plan\n\nLaunch via omx team 3:debugger "Execute issue 10 handoff"\n');
332
+ await writeFile(join(plansDir, 'test-spec-issue-10.md'), '# Issue 10 test spec\n');
333
+ const stage = createTeamExecStage();
334
+ const result = await stage.run(makeCtx({
335
+ task: 'original request task',
336
+ artifacts: {
337
+ ralplan: {
338
+ task: 'original request task',
339
+ stage: 'ralplan',
340
+ latestPlanPath: join('.omx', 'plans', 'prd-issue-10.md'),
341
+ drafts: [
342
+ { planPath: join('.omx', 'plans', 'prd-issue-9.md') },
343
+ { planPath: join('.omx', 'plans', 'prd-issue-10.md') },
344
+ ],
345
+ },
346
+ },
347
+ }));
348
+ assert.equal(result.status, 'completed');
349
+ const descriptor = result.artifacts.teamDescriptor;
350
+ assert.equal(descriptor.task, 'Execute issue 10 handoff');
351
+ });
352
+ it('fails closed when latestPlanPath is not the selected latest approved PRD', async () => {
353
+ const plansDir = join(tempDir, '.omx', 'plans');
354
+ await mkdir(plansDir, { recursive: true });
355
+ const stalePrdPath = join(plansDir, 'prd-alpha.md');
356
+ await writeFile(stalePrdPath, '# Alpha plan\n\nLaunch via omx team 2:executor "Execute alpha handoff"\n');
357
+ await writeFile(join(plansDir, 'test-spec-alpha.md'), '# Alpha test spec\n');
358
+ await writeFile(join(plansDir, 'prd-zeta.md'), '# Zeta plan\n\nLaunch via omx team 5:debugger "Execute zeta handoff"\n');
359
+ await writeFile(join(plansDir, 'test-spec-zeta.md'), '# Zeta test spec\n');
360
+ const stage = createTeamExecStage();
361
+ const result = await stage.run(makeCtx({
362
+ task: 'original request task',
363
+ artifacts: {
364
+ ralplan: {
365
+ task: 'original request task',
366
+ data: 'plan-content',
367
+ stage: 'ralplan',
368
+ latestPlanPath: stalePrdPath,
369
+ },
370
+ },
371
+ }));
372
+ assert.equal(result.status, 'failed');
373
+ assert.match(result.error ?? '', /team_exec_approved_handoff_stale:/);
374
+ assert.deepEqual(result.artifacts, {});
375
+ });
376
+ it('keeps structural ralplan handoffs on the generic task path', async () => {
377
+ const stage = createTeamExecStage();
378
+ const result = await stage.run(makeCtx({
379
+ task: 'structural pipeline task',
380
+ artifacts: {
381
+ ralplan: {
382
+ task: 'structural pipeline task',
383
+ data: 'plan-content',
384
+ stage: 'ralplan',
385
+ plansDir: join(tempDir, '.omx', 'plans'),
386
+ specsDir: join(tempDir, '.omx', 'specs'),
387
+ prdPaths: [],
388
+ testSpecPaths: [],
389
+ deepInterviewSpecPaths: [],
390
+ planningComplete: false,
391
+ },
392
+ },
393
+ }));
394
+ assert.equal(result.status, 'completed');
395
+ const descriptor = result.artifacts.teamDescriptor;
396
+ const instruction = result.artifacts.instruction;
397
+ assert.equal(descriptor.task, 'structural pipeline task');
398
+ assert.match(instruction, /structural pipeline task/);
399
+ assert.doesNotMatch(instruction, /plan-content/);
400
+ });
401
+ it('does not adopt a pre-existing approved plan when latestPlanPath is absent', async () => {
402
+ const plansDir = join(tempDir, '.omx', 'plans');
403
+ await mkdir(plansDir, { recursive: true });
404
+ await writeFile(join(plansDir, 'prd-zeta.md'), '# Zeta plan\n\nLaunch via omx team 5:debugger "Execute zeta handoff"\n');
405
+ await writeFile(join(plansDir, 'test-spec-zeta.md'), '# Zeta test spec\n');
406
+ const stage = createTeamExecStage();
407
+ const result = await stage.run(makeCtx({
408
+ task: 'generic pipeline task',
409
+ artifacts: {
410
+ ralplan: {
411
+ task: 'generic pipeline task',
412
+ stage: 'ralplan',
413
+ prdPaths: [join(plansDir, 'prd-zeta.md')],
414
+ testSpecPaths: [join(plansDir, 'test-spec-zeta.md')],
415
+ planningComplete: true,
416
+ },
417
+ },
418
+ }));
419
+ assert.equal(result.status, 'completed');
420
+ const descriptor = result.artifacts.teamDescriptor;
421
+ const instruction = result.artifacts.instruction;
422
+ assert.equal(descriptor.task, 'generic pipeline task');
423
+ assert.match(instruction, /generic pipeline task/);
424
+ assert.doesNotMatch(instruction, /Execute zeta handoff/);
425
+ });
426
+ it('fails closed when latestPlanPath has no team launch hint', async () => {
427
+ const plansDir = join(tempDir, '.omx', 'plans');
428
+ await mkdir(plansDir, { recursive: true });
429
+ const prdPath = join(plansDir, 'prd-no-team-hint.md');
430
+ await writeFile(prdPath, '# PRD\n\nNo team launch hint here.\n');
431
+ const stage = createTeamExecStage();
432
+ const result = await stage.run(makeCtx({
433
+ task: 'original request task',
434
+ artifacts: {
435
+ ralplan: {
436
+ task: 'original request task',
437
+ stage: 'ralplan',
438
+ latestPlanPath: prdPath,
439
+ },
440
+ },
441
+ }));
442
+ assert.equal(result.status, 'failed');
443
+ assert.match(result.error ?? '', /team_exec_approved_handoff_missing:/);
444
+ });
445
+ it('fails closed when latestPlanPath has ambiguous team launch hints', async () => {
446
+ const plansDir = join(tempDir, '.omx', 'plans');
447
+ await mkdir(plansDir, { recursive: true });
448
+ const prdPath = join(plansDir, 'prd-ambiguous-team-hint.md');
449
+ await writeFile(prdPath, [
450
+ '# PRD',
451
+ '',
452
+ 'Launch via omx team 2:executor "Execute first handoff"',
453
+ 'Launch via omx team 2:executor "Execute second handoff"',
454
+ ].join('\n'));
455
+ await writeFile(join(plansDir, 'test-spec-ambiguous-team-hint.md'), '# Test spec\n');
456
+ const stage = createTeamExecStage();
457
+ const result = await stage.run(makeCtx({
458
+ task: 'original request task',
459
+ artifacts: {
460
+ ralplan: {
461
+ task: 'original request task',
462
+ stage: 'ralplan',
463
+ latestPlanPath: prdPath,
464
+ },
465
+ },
466
+ }));
467
+ assert.equal(result.status, 'failed');
468
+ assert.match(result.error ?? '', /team_exec_approved_handoff_ambiguous:/);
186
469
  });
187
470
  it('falls back to raw task when no ralplan artifacts exist', async () => {
188
471
  const stage = createTeamExecStage();
@@ -192,7 +475,7 @@ describe('Team Exec Stage', () => {
192
475
  assert.equal(typeof descriptor.staffingPlan.staffingSummary, 'string');
193
476
  });
194
477
  describe('buildTeamInstruction', () => {
195
- it('builds correct CLI instruction', () => {
478
+ it('builds correct runtime-cli instruction', () => {
196
479
  const staffingPlan = buildFollowupStaffingPlan('team', 'implement feature', ['executor', 'test-engineer'], {
197
480
  workerCount: 3,
198
481
  });
@@ -205,8 +488,21 @@ describe('Team Exec Stage', () => {
205
488
  useWorktrees: false,
206
489
  cwd: '/tmp/test',
207
490
  });
208
- assert.match(instruction, /^omx team 3:executor /);
209
- assert.match(instruction, /implement feature/);
491
+ const runtimeCliInput = decodeRuntimeCliInstructionPayload(instruction);
492
+ assert.match(instruction, /runtime-cli\.js/);
493
+ assert.match(instruction, /--input-json-base64/);
494
+ assert.match(instruction, new RegExp(escapeRegExp(join(packageRoot(), 'dist', 'team', 'runtime-cli.js'))));
495
+ assert.doesNotMatch(instruction, new RegExp(escapeRegExp(join('/tmp/test', 'dist', 'team', 'runtime-cli.js'))));
496
+ assert.equal(runtimeCliInput.teamName, 'implement-feature');
497
+ assert.equal(runtimeCliInput.workerCount, 3);
498
+ assert.equal(runtimeCliInput.agentType, 'executor');
499
+ assert.equal('agentTypes' in runtimeCliInput, false);
500
+ assert.equal(runtimeCliInput.cwd, '/tmp/test');
501
+ assert.ok(Array.isArray(runtimeCliInput.tasks));
502
+ assert.equal(runtimeCliInput.tasks.length > 0, true);
503
+ assert.equal('task' in runtimeCliInput, false);
504
+ assert.equal('useWorktrees' in runtimeCliInput, false);
505
+ assert.equal(runtimeCliInput.decompositionMetadata.decomposition_source, 'legacy_text');
210
506
  assert.match(instruction, /staffing=/);
211
507
  assert.match(instruction, /verify=/);
212
508
  });
@@ -224,9 +520,97 @@ describe('Team Exec Stage', () => {
224
520
  useWorktrees: false,
225
521
  cwd: '/tmp',
226
522
  });
227
- assert.match(instruction, /^omx team 1:executor /);
523
+ const runtimeCliInput = decodeRuntimeCliInstructionPayload(instruction);
524
+ assert.match(instruction, /runtime-cli\.js/);
525
+ assert.match(instruction, /--input-json-base64/);
526
+ assert.equal(runtimeCliInput.workerCount, 1);
527
+ assert.equal(runtimeCliInput.agentType, 'executor');
228
528
  assert.match(instruction, /staffing=/);
229
529
  });
530
+ it('keeps Windows instructions free of POSIX launch comments', () => {
531
+ const task = `fix "quoted" paths, keep it's 100% safe & support café 运行时`;
532
+ const staffingPlan = buildFollowupStaffingPlan('team', task, ['executor', 'test-engineer'], {
533
+ workerCount: 1,
534
+ });
535
+ const instruction = buildTeamInstruction({
536
+ task,
537
+ workerCount: 1,
538
+ agentType: 'executor',
539
+ availableAgentTypes: ['executor', 'test-engineer'],
540
+ staffingPlan,
541
+ useWorktrees: false,
542
+ cwd: 'C:\\repo with spaces',
543
+ }, { platform: 'win32' });
544
+ const runtimeCliInput = decodeRuntimeCliInstructionPayload(instruction);
545
+ const commandPrefix = instruction.split('--input-json-base64')[0] ?? '';
546
+ const encodedPayload = instruction.match(/--input-json-base64\s+([A-Za-z0-9_-]+)/)?.[1] ?? '';
547
+ assert.match(instruction, /^"[^"]+"\s+"[^"]*runtime-cli\.js"\s+--input-json-base64\s+[A-Za-z0-9_-]+/);
548
+ assert.equal(commandPrefix.includes("'"), false);
549
+ assert.doesNotMatch(encodedPayload, /[%&|<>"'\s]/);
550
+ assert.doesNotMatch(instruction, /# staffing=/);
551
+ assert.doesNotMatch(instruction, /# verify=/);
552
+ assert.equal(runtimeCliInput.workerCount, 1);
553
+ assert.equal(runtimeCliInput.agentType, 'executor');
554
+ assert.equal('agentTypes' in runtimeCliInput, false);
555
+ assert.equal(runtimeCliInput.cwd, 'C:\\repo with spaces');
556
+ });
557
+ it('preserves approved DAG handoff tasks and metadata in the runtime-cli payload', async () => {
558
+ const plansDir = join(tempDir, '.omx', 'plans');
559
+ await mkdir(plansDir, { recursive: true });
560
+ await writeFile(join(plansDir, 'prd-demo.md'), '# Demo\n\nLaunch via omx team 2:executor "Execute approved demo plan"\n');
561
+ await writeFile(join(plansDir, 'test-spec-demo.md'), '# Demo Test Spec\n');
562
+ await writeFile(join(plansDir, 'team-dag-demo.json'), JSON.stringify({
563
+ schema_version: 1,
564
+ nodes: [
565
+ {
566
+ id: 'impl',
567
+ lane: 'implementation',
568
+ role: 'executor',
569
+ subject: 'Implement runtime',
570
+ description: 'Change runtime',
571
+ filePaths: ['src/team/runtime.ts'],
572
+ requires_code_change: true,
573
+ },
574
+ {
575
+ id: 'verify',
576
+ lane: 'verification',
577
+ role: 'test-engineer',
578
+ subject: 'Verify runtime',
579
+ description: 'Cover runtime',
580
+ depends_on: ['impl'],
581
+ },
582
+ ],
583
+ worker_policy: { requested_count: 2, count_source: 'cli-explicit' },
584
+ }));
585
+ const staffingPlan = buildFollowupStaffingPlan('team', 'Execute approved demo plan', ['executor', 'test-engineer'], {
586
+ workerCount: 2,
587
+ });
588
+ const instruction = buildTeamInstruction({
589
+ task: 'Execute approved demo plan',
590
+ workerCount: 2,
591
+ agentType: 'executor',
592
+ availableAgentTypes: ['executor', 'test-engineer'],
593
+ staffingPlan,
594
+ useWorktrees: false,
595
+ cwd: tempDir,
596
+ });
597
+ const runtimeCliInput = decodeRuntimeCliInstructionPayload(instruction);
598
+ const tasks = runtimeCliInput.tasks;
599
+ const decompositionMetadata = runtimeCliInput.decompositionMetadata;
600
+ assert.equal(runtimeCliInput.teamName, 'execute-approved-demo-plan');
601
+ assert.equal(runtimeCliInput.workerCount, 2);
602
+ assert.equal(runtimeCliInput.agentType, 'executor');
603
+ assert.equal(tasks.length, 2);
604
+ assert.equal(tasks[0]?.symbolic_id, 'impl');
605
+ assert.deepEqual(tasks[1]?.symbolic_depends_on, ['impl']);
606
+ assert.deepEqual(tasks[0]?.filePaths, ['src/team/runtime.ts']);
607
+ assert.equal(tasks[0]?.lane, 'implementation');
608
+ assert.equal(decompositionMetadata.decomposition_source, 'dag_sidecar');
609
+ assert.deepEqual(decompositionMetadata.node_dependencies, {
610
+ impl: [],
611
+ verify: ['impl'],
612
+ });
613
+ });
230
614
  });
231
615
  });
232
616
  // ---------------------------------------------------------------------------