@nova286/nova-workflow 2.1.0 → 2.1.1

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 (39) hide show
  1. package/dist/cli/commands/archive.js +1 -1
  2. package/dist/cli/commands/archive.js.map +1 -1
  3. package/dist/cli/commands/status.js +8 -8
  4. package/dist/cli/commands/status.js.map +1 -1
  5. package/dist/cli/index.js +0 -0
  6. package/dist/cli-core/__tests__/adapters.test.d.ts +1 -0
  7. package/dist/cli-core/__tests__/adapters.test.js +123 -0
  8. package/dist/cli-core/__tests__/adapters.test.js.map +1 -0
  9. package/dist/cli-core/__tests__/guard.test.js +13 -13
  10. package/dist/cli-core/__tests__/guard.test.js.map +1 -1
  11. package/dist/cli-core/__tests__/init-manager.test.js +3 -3
  12. package/dist/cli-core/__tests__/init-manager.test.js.map +1 -1
  13. package/dist/cli-core/__tests__/platform-client.test.d.ts +1 -0
  14. package/dist/cli-core/__tests__/platform-client.test.js +157 -0
  15. package/dist/cli-core/__tests__/platform-client.test.js.map +1 -0
  16. package/dist/cli-core/__tests__/state-manager.test.js +7 -7
  17. package/dist/cli-core/__tests__/state-manager.test.js.map +1 -1
  18. package/dist/cli-core/adapters/claude-code.js +8 -8
  19. package/dist/cli-core/adapters/codex.d.ts +5 -0
  20. package/dist/cli-core/adapters/codex.js +118 -0
  21. package/dist/cli-core/adapters/codex.js.map +1 -0
  22. package/dist/cli-core/adapters/hermes-agent.d.ts +5 -0
  23. package/dist/cli-core/adapters/hermes-agent.js +113 -0
  24. package/dist/cli-core/adapters/hermes-agent.js.map +1 -0
  25. package/dist/cli-core/adapters/openclaw.d.ts +5 -0
  26. package/dist/cli-core/adapters/openclaw.js +115 -0
  27. package/dist/cli-core/adapters/openclaw.js.map +1 -0
  28. package/dist/cli-core/adapters/opencode.d.ts +5 -0
  29. package/dist/cli-core/adapters/opencode.js +116 -0
  30. package/dist/cli-core/adapters/opencode.js.map +1 -0
  31. package/dist/cli-core/guard.js +12 -12
  32. package/dist/cli-core/guard.js.map +1 -1
  33. package/dist/cli-core/init-manager.d.ts +1 -0
  34. package/dist/cli-core/init-manager.js +48 -8
  35. package/dist/cli-core/init-manager.js.map +1 -1
  36. package/dist/cli-core/platform-client.d.ts +12 -0
  37. package/dist/cli-core/platform-client.js +150 -9
  38. package/dist/cli-core/platform-client.js.map +1 -1
  39. package/package.json +17 -4
@@ -75,7 +75,7 @@ exports.archiveCommand = (0, error_handler_1.withErrorHandling)(async (options)
75
75
  await fs.mkdir(specsDir, { recursive: true });
76
76
  let mergedCount = 0;
77
77
  // 归档 proposal
78
- const proposalSrc = state.phases.open?.proposal;
78
+ const proposalSrc = state.phases.propose?.proposal;
79
79
  if (proposalSrc) {
80
80
  const src = path.join(cwd, proposalSrc);
81
81
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/cli/commands/archive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/cli/commands/archive.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,11 @@ exports.statusCommand = void 0;
4
4
  const ui_1 = require("../ui");
5
5
  const state_1 = require("../../cli-core/state");
6
6
  const error_handler_1 = require("../error-handler");
7
- const PHASE_ORDER = ['open', 'design', 'build', 'verify', 'archive'];
7
+ const PHASE_ORDER = ['propose', 'design', 'implement', 'verify', 'archive'];
8
8
  const PHASE_LABEL = {
9
- open: 'propose',
9
+ propose: 'propose',
10
10
  design: 'design',
11
- build: 'implement',
11
+ implement: 'implement',
12
12
  verify: 'verify',
13
13
  archive: 'archive',
14
14
  };
@@ -19,16 +19,16 @@ const STATUS_ICON = {
19
19
  };
20
20
  // 超时阈值(毫秒)
21
21
  const STUCK_THRESHOLDS = {
22
- open: 30 * 60 * 1000, // 30 min
22
+ propose: 30 * 60 * 1000, // 30 min
23
23
  design: 60 * 60 * 1000, // 1 hour
24
- build: 120 * 60 * 1000, // 2 hours
24
+ implement: 120 * 60 * 1000, // 2 hours
25
25
  verify: 30 * 60 * 1000, // 30 min
26
26
  archive: 15 * 60 * 1000, // 15 min
27
27
  };
28
28
  const STUCK_MESSAGE = {
29
- open: 'Proposal has been in progress for a while. Consider running "nova propose --done" or "--rollback".',
29
+ propose: 'Proposal has been in progress for a while. Consider running "nova propose --done" or "--rollback".',
30
30
  design: 'Design has been in progress for a while. Consider running "nova design --done" or "--rollback".',
31
- build: 'Implementation has been in progress for a while. Check task status and consider "--rollback" if stuck.',
31
+ implement: 'Implementation has been in progress for a while. Check task status and consider "--rollback" if stuck.',
32
32
  verify: 'Verification has been in progress for a while. Consider running "nova verify --rollback" if needed.',
33
33
  archive: 'Archive has been in progress. Run "nova archive --done" to finish or "--rollback" to reset.',
34
34
  };
@@ -48,7 +48,7 @@ exports.statusCommand = (0, error_handler_1.withErrorHandling)(async () => {
48
48
  const duration = state_1.StateManager.getPhaseDuration(data);
49
49
  if (duration)
50
50
  extra.push(duration);
51
- if (phase === 'build' && data.tasks) {
51
+ if (phase === 'implement' && data.tasks) {
52
52
  const entries = Object.entries(data.tasks);
53
53
  const done = entries.filter(([, t]) => t.status === 'done').length;
54
54
  extra.push(`tasks: ${done}/${entries.length} done`);
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
File without changes
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const fs = __importStar(require("fs/promises"));
37
+ const path = __importStar(require("path"));
38
+ const os = __importStar(require("os"));
39
+ const codex_1 = require("../adapters/codex");
40
+ const openclaw_1 = require("../adapters/openclaw");
41
+ const hermes_agent_1 = require("../adapters/hermes-agent");
42
+ const opencode_1 = require("../adapters/opencode");
43
+ describe('Environment Adapters', () => {
44
+ let testDir;
45
+ beforeEach(async () => {
46
+ testDir = await fs.mkdtemp(path.join(os.tmpdir(), 'nova-adapter-'));
47
+ });
48
+ afterEach(async () => {
49
+ await fs.rm(testDir, { recursive: true, force: true });
50
+ });
51
+ describe('CodexAdapter', () => {
52
+ test('creates CODEX.md with instructions', async () => {
53
+ const adapter = new codex_1.CodexAdapter();
54
+ expect(adapter.name).toBe('codex');
55
+ await adapter.setup(testDir);
56
+ const content = await fs.readFile(path.join(testDir, 'CODEX.md'), 'utf-8');
57
+ expect(content).toContain('Nova Workflow');
58
+ expect(content).toContain('.nova.yaml');
59
+ });
60
+ test('does not overwrite existing CODEX.md', async () => {
61
+ const existing = '# My Custom Instructions';
62
+ await fs.writeFile(path.join(testDir, 'CODEX.md'), existing, 'utf-8');
63
+ const adapter = new codex_1.CodexAdapter();
64
+ await adapter.setup(testDir);
65
+ const content = await fs.readFile(path.join(testDir, 'CODEX.md'), 'utf-8');
66
+ expect(content).toBe(existing);
67
+ });
68
+ });
69
+ describe('OpenClawAdapter', () => {
70
+ test('creates .openclaw/instructions.md', async () => {
71
+ const adapter = new openclaw_1.OpenClawAdapter();
72
+ expect(adapter.name).toBe('openclaw');
73
+ await adapter.setup(testDir);
74
+ const content = await fs.readFile(path.join(testDir, '.openclaw', 'instructions.md'), 'utf-8');
75
+ expect(content).toContain('Nova Workflow');
76
+ });
77
+ test('does not overwrite existing instructions', async () => {
78
+ const dir = path.join(testDir, '.openclaw');
79
+ await fs.mkdir(dir, { recursive: true });
80
+ await fs.writeFile(path.join(dir, 'instructions.md'), 'custom', 'utf-8');
81
+ const adapter = new openclaw_1.OpenClawAdapter();
82
+ await adapter.setup(testDir);
83
+ const content = await fs.readFile(path.join(dir, 'instructions.md'), 'utf-8');
84
+ expect(content).toBe('custom');
85
+ });
86
+ });
87
+ describe('HermesAgentAdapter', () => {
88
+ test('creates HERMES.md', async () => {
89
+ const adapter = new hermes_agent_1.HermesAgentAdapter();
90
+ expect(adapter.name).toBe('hermes-agent');
91
+ await adapter.setup(testDir);
92
+ const content = await fs.readFile(path.join(testDir, 'HERMES.md'), 'utf-8');
93
+ expect(content).toContain('Nova Workflow');
94
+ });
95
+ test('does not overwrite existing HERMES.md', async () => {
96
+ await fs.writeFile(path.join(testDir, 'HERMES.md'), 'custom', 'utf-8');
97
+ const adapter = new hermes_agent_1.HermesAgentAdapter();
98
+ await adapter.setup(testDir);
99
+ const content = await fs.readFile(path.join(testDir, 'HERMES.md'), 'utf-8');
100
+ expect(content).toBe('custom');
101
+ });
102
+ });
103
+ describe('OpenCodeAdapter', () => {
104
+ test('creates opencode.json with instructions', async () => {
105
+ const adapter = new opencode_1.OpenCodeAdapter();
106
+ expect(adapter.name).toBe('opencode');
107
+ await adapter.setup(testDir);
108
+ const raw = await fs.readFile(path.join(testDir, 'opencode.json'), 'utf-8');
109
+ const config = JSON.parse(raw);
110
+ expect(config.instructions).toContain('Nova Workflow');
111
+ });
112
+ test('does not overwrite existing opencode.json', async () => {
113
+ const existing = { model: 'claude-sonnet-4-6' };
114
+ await fs.writeFile(path.join(testDir, 'opencode.json'), JSON.stringify(existing), 'utf-8');
115
+ const adapter = new opencode_1.OpenCodeAdapter();
116
+ await adapter.setup(testDir);
117
+ const raw = await fs.readFile(path.join(testDir, 'opencode.json'), 'utf-8');
118
+ const config = JSON.parse(raw);
119
+ expect(config.model).toBe('claude-sonnet-4-6');
120
+ });
121
+ });
122
+ });
123
+ //# sourceMappingURL=adapters.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.test.js","sourceRoot":"","sources":["../../../src/cli-core/__tests__/adapters.test.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ describe('guardPhaseTransition', () => {
48
48
  phases: {
49
49
  open: { status: 'pending', proposal: '' },
50
50
  design: { status: 'pending', designDoc: '', tasks: [] },
51
- build: { status: 'pending', tasks: {} },
51
+ implement: { status: 'pending', tasks: {} },
52
52
  verify: { status: 'pending', pipelineResult: null },
53
53
  archive: { status: 'pending' },
54
54
  },
@@ -69,13 +69,13 @@ describe('guardPhaseTransition', () => {
69
69
  test('open-to-design passes when open is done with proposal', async () => {
70
70
  await writeState({
71
71
  ...baseState,
72
- phases: { ...baseState.phases, open: { status: 'done', proposal: 'docs/prop.md' } },
72
+ phases: { ...baseState.phases, propose: { status: 'done', proposal: 'docs/prop.md' } },
73
73
  });
74
- expect((await (0, guard_1.guardPhaseTransition)('open', 'design')).pass).toBe(true);
74
+ expect((await (0, guard_1.guardPhaseTransition)('propose', 'design')).pass).toBe(true);
75
75
  });
76
76
  test('open-to-design fails when open is pending', async () => {
77
77
  await writeState(baseState);
78
- expect((await (0, guard_1.guardPhaseTransition)('open', 'design')).pass).toBe(false);
78
+ expect((await (0, guard_1.guardPhaseTransition)('propose', 'design')).pass).toBe(false);
79
79
  });
80
80
  test('design-to-build passes when design is done with tasks', async () => {
81
81
  await writeState({
@@ -85,7 +85,7 @@ describe('guardPhaseTransition', () => {
85
85
  design: { status: 'done', designDoc: 'docs/design.md', tasks: [{ id: 'task-1', title: 'T1', type: 'implementation', files: [{ path: 'x.ts', action: 'create' }], acceptance: ['done'] }] },
86
86
  },
87
87
  });
88
- expect((await (0, guard_1.guardPhaseTransition)('design', 'build')).pass).toBe(true);
88
+ expect((await (0, guard_1.guardPhaseTransition)('design', 'implement')).pass).toBe(true);
89
89
  });
90
90
  test('design-to-build fails when tasks are empty', async () => {
91
91
  await writeState({
@@ -95,31 +95,31 @@ describe('guardPhaseTransition', () => {
95
95
  design: { status: 'done', designDoc: 'docs/design.md', tasks: [] },
96
96
  },
97
97
  });
98
- expect((await (0, guard_1.guardPhaseTransition)('design', 'build')).pass).toBe(false);
98
+ expect((await (0, guard_1.guardPhaseTransition)('design', 'implement')).pass).toBe(false);
99
99
  });
100
100
  test('build-to-verify passes when build is done with completed tasks', async () => {
101
101
  await writeState({
102
102
  ...baseState,
103
103
  phases: {
104
104
  ...baseState.phases,
105
- build: { status: 'done', tasks: { 'task-1': { status: 'done' } } },
105
+ implement: { status: 'done', tasks: { 'task-1': { status: 'done' } } },
106
106
  },
107
107
  });
108
- expect((await (0, guard_1.guardPhaseTransition)('build', 'verify')).pass).toBe(true);
108
+ expect((await (0, guard_1.guardPhaseTransition)('implement', 'verify')).pass).toBe(true);
109
109
  });
110
110
  test('build-to-verify passes when eccReviewPassed is true', async () => {
111
111
  await writeState({
112
112
  ...baseState,
113
113
  phases: {
114
114
  ...baseState.phases,
115
- build: {
115
+ implement: {
116
116
  status: 'done',
117
117
  tasks: { 'task-1': { status: 'failed' } },
118
118
  eccReviewPassed: true,
119
119
  },
120
120
  },
121
121
  });
122
- expect((await (0, guard_1.guardPhaseTransition)('build', 'verify')).pass).toBe(true);
122
+ expect((await (0, guard_1.guardPhaseTransition)('implement', 'verify')).pass).toBe(true);
123
123
  });
124
124
  test('verify-to-archive passes when verify is done', async () => {
125
125
  await writeState({
@@ -148,7 +148,7 @@ describe('guardPhaseTransition', () => {
148
148
  },
149
149
  },
150
150
  });
151
- const result = await (0, guard_1.guardPhaseTransition)('design', 'build');
151
+ const result = await (0, guard_1.guardPhaseTransition)('design', 'implement');
152
152
  expect(result.pass).toBe(false);
153
153
  expect(result.failures.length).toBeGreaterThan(0);
154
154
  const labels = result.failures.map(f => f.label);
@@ -159,7 +159,7 @@ describe('guardPhaseTransition', () => {
159
159
  ...baseState,
160
160
  phases: {
161
161
  ...baseState.phases,
162
- build: {
162
+ implement: {
163
163
  status: 'done',
164
164
  tasks: {
165
165
  'task-1': { status: 'done' },
@@ -168,7 +168,7 @@ describe('guardPhaseTransition', () => {
168
168
  },
169
169
  },
170
170
  });
171
- expect((await (0, guard_1.guardPhaseTransition)('build', 'verify')).pass).toBe(true);
171
+ expect((await (0, guard_1.guardPhaseTransition)('implement', 'verify')).pass).toBe(true);
172
172
  });
173
173
  });
174
174
  //# sourceMappingURL=guard.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"guard.test.js","sourceRoot":"","sources":["../../../src/cli-core/__tests__/guard.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guard.test.js","sourceRoot":"","sources":["../../../src/cli-core/__tests__/guard.test.ts"],"names":[],"mappings":"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"}
@@ -83,10 +83,10 @@ describe('InitManager', () => {
83
83
  const state = yaml.parse(raw);
84
84
  expect(state.version).toBe(1);
85
85
  expect(state.project).toBeTruthy();
86
- expect(state.environment).toEqual(['claude-code']);
87
- expect(state.phases.open.status).toBe('pending');
86
+ expect(state.environment).toContain('claude-code');
87
+ expect(state.phases.propose.status).toBe('pending');
88
88
  expect(state.phases.design.status).toBe('pending');
89
- expect(state.phases.build.status).toBe('pending');
89
+ expect(state.phases.implement.status).toBe('pending');
90
90
  expect(state.phases.verify.status).toBe('pending');
91
91
  expect(state.phases.archive.status).toBe('pending');
92
92
  expect(state.metadata.stateVersion).toBe(0);
@@ -1 +1 @@
1
- {"version":3,"file":"init-manager.test.js","sourceRoot":"","sources":["../../../src/cli-core/__tests__/init-manager.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-manager.test.js","sourceRoot":"","sources":["../../../src/cli-core/__tests__/init-manager.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const events_1 = require("events");
37
+ const child_process = __importStar(require("child_process"));
38
+ // Mock child_process before importing platform-client
39
+ jest.mock('child_process');
40
+ const platform_client_1 = require("../platform-client");
41
+ function createMockChild(exitCode = 0, stdout = 'mock output', stderr = '') {
42
+ const child = new events_1.EventEmitter();
43
+ child.stdin = { write: jest.fn(), end: jest.fn() };
44
+ child.stdout = new events_1.EventEmitter();
45
+ child.stderr = new events_1.EventEmitter();
46
+ child.pid = 12345;
47
+ process.nextTick(() => {
48
+ child.stdout.emit('data', Buffer.from(stdout));
49
+ child.stderr.emit('data', Buffer.from(stderr));
50
+ child.emit('close', exitCode);
51
+ });
52
+ return child;
53
+ }
54
+ describe('PlatformClient implementations', () => {
55
+ beforeEach(() => {
56
+ jest.clearAllMocks();
57
+ });
58
+ describe('CodexClient', () => {
59
+ test('calls codex --quiet via stdin', async () => {
60
+ const child = createMockChild(0, 'codex response');
61
+ child_process.spawn.mockReturnValue(child);
62
+ const client = new platform_client_1.CodexClient();
63
+ const result = await client.sendPrompt('test prompt');
64
+ expect(child_process.spawn).toHaveBeenCalledWith('codex', ['--quiet'], { stdio: ['pipe', 'pipe', 'pipe'] });
65
+ expect(child.stdin.write).toHaveBeenCalledWith('test prompt');
66
+ expect(child.stdin.end).toHaveBeenCalled();
67
+ expect(result.content).toBe('codex response');
68
+ });
69
+ test('passes --model flag when specified', async () => {
70
+ const child = createMockChild(0, 'output');
71
+ child_process.spawn.mockReturnValue(child);
72
+ const client = new platform_client_1.CodexClient();
73
+ await client.sendPrompt('prompt', { model: 'o4-mini' });
74
+ expect(child_process.spawn).toHaveBeenCalledWith('codex', ['--quiet', '--model', 'o4-mini'], { stdio: ['pipe', 'pipe', 'pipe'] });
75
+ });
76
+ test('rejects on non-zero exit code', async () => {
77
+ const child = createMockChild(1, '', 'error message');
78
+ child_process.spawn.mockReturnValue(child);
79
+ const client = new platform_client_1.CodexClient();
80
+ await expect(client.sendPrompt('prompt')).rejects.toThrow('Codex CLI exit 1');
81
+ });
82
+ test('rejects on spawn error', async () => {
83
+ const child = new events_1.EventEmitter();
84
+ child.stdin = { write: jest.fn(), end: jest.fn() };
85
+ child.stdout = new events_1.EventEmitter();
86
+ child.stderr = new events_1.EventEmitter();
87
+ child_process.spawn.mockReturnValue(child);
88
+ process.nextTick(() => child.emit('error', new Error('ENOENT')));
89
+ const client = new platform_client_1.CodexClient();
90
+ await expect(client.sendPrompt('prompt')).rejects.toThrow('ENOENT');
91
+ });
92
+ });
93
+ describe('OpenClawClient', () => {
94
+ test('calls openclaw --print via stdin', async () => {
95
+ const child = createMockChild(0, 'openclaw response');
96
+ child_process.spawn.mockReturnValue(child);
97
+ const client = new platform_client_1.OpenClawClient();
98
+ const result = await client.sendPrompt('test prompt');
99
+ expect(child_process.spawn).toHaveBeenCalledWith('openclaw', ['--print'], { stdio: ['pipe', 'pipe', 'pipe'] });
100
+ expect(result.content).toBe('openclaw response');
101
+ });
102
+ test('rejects on non-zero exit code', async () => {
103
+ const child = createMockChild(1, '', 'err');
104
+ child_process.spawn.mockReturnValue(child);
105
+ const client = new platform_client_1.OpenClawClient();
106
+ await expect(client.sendPrompt('p')).rejects.toThrow('OpenClaw CLI exit 1');
107
+ });
108
+ });
109
+ describe('HermesAgentClient', () => {
110
+ test('calls hermes-agent --print via stdin', async () => {
111
+ const child = createMockChild(0, 'hermes response');
112
+ child_process.spawn.mockReturnValue(child);
113
+ const client = new platform_client_1.HermesAgentClient();
114
+ const result = await client.sendPrompt('test prompt');
115
+ expect(child_process.spawn).toHaveBeenCalledWith('hermes-agent', ['--print'], { stdio: ['pipe', 'pipe', 'pipe'] });
116
+ expect(result.content).toBe('hermes response');
117
+ });
118
+ });
119
+ describe('OpenCodeClient', () => {
120
+ test('calls opencode with run subcommand (not stdin)', async () => {
121
+ const child = createMockChild(0, 'opencode response');
122
+ child_process.spawn.mockReturnValue(child);
123
+ const client = new platform_client_1.OpenCodeClient();
124
+ const result = await client.sendPrompt('test prompt');
125
+ expect(child_process.spawn).toHaveBeenCalledWith('opencode', ['run', 'test prompt'], { stdio: ['pipe', 'pipe', 'pipe'] });
126
+ expect(child.stdin.write).not.toHaveBeenCalled();
127
+ expect(result.content).toBe('opencode response');
128
+ });
129
+ test('rejects on non-zero exit code', async () => {
130
+ const child = createMockChild(1, '', 'err');
131
+ child_process.spawn.mockReturnValue(child);
132
+ const client = new platform_client_1.OpenCodeClient();
133
+ await expect(client.sendPrompt('p')).rejects.toThrow('OpenCode CLI exit 1');
134
+ });
135
+ });
136
+ });
137
+ describe('resolvePlatformClient', () => {
138
+ const fs = require('fs/promises');
139
+ beforeEach(() => {
140
+ jest.restoreAllMocks();
141
+ });
142
+ test('returns ClaudeCodeClient by default', async () => {
143
+ jest.spyOn(fs, 'readFile').mockRejectedValue(new Error('ENOENT'));
144
+ const client = await (0, platform_client_1.resolvePlatformClient)('/tmp');
145
+ expect(client).toBeInstanceOf(platform_client_1.ClaudeCodeClient);
146
+ });
147
+ test('returns CodexClient when environment is codex', async () => {
148
+ jest.spyOn(fs, 'readFile').mockResolvedValue('version: 1\nenvironment:\n - codex\n');
149
+ const client = await (0, platform_client_1.resolvePlatformClient)('/tmp');
150
+ expect(client).toBeInstanceOf(platform_client_1.CodexClient);
151
+ });
152
+ test('throws on unsupported environment', async () => {
153
+ jest.spyOn(fs, 'readFile').mockResolvedValue('version: 1\nenvironment:\n - unknown-platform\n');
154
+ await expect((0, platform_client_1.resolvePlatformClient)('/tmp')).rejects.toThrow('Unsupported environment');
155
+ });
156
+ });
157
+ //# sourceMappingURL=platform-client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-client.test.js","sourceRoot":"","sources":["../../../src/cli-core/__tests__/platform-client.test.ts"],"names":[],"mappings":"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"}
@@ -46,9 +46,9 @@ describe('StateManager', () => {
46
46
  project: 'test-project',
47
47
  environment: ['claude-code'],
48
48
  phases: {
49
- open: { status: 'pending', proposal: '' },
49
+ propose: { status: 'pending', proposal: '' },
50
50
  design: { status: 'pending', designDoc: '', tasks: [] },
51
- build: { status: 'pending', tasks: {} },
51
+ implement: { status: 'pending', tasks: {} },
52
52
  verify: { status: 'pending', pipelineResult: null },
53
53
  archive: { status: 'pending' },
54
54
  },
@@ -75,21 +75,21 @@ describe('StateManager', () => {
75
75
  test('update atomically modifies state', async () => {
76
76
  await writeState(baseState);
77
77
  const next = await state_1.StateManager.update((s) => {
78
- s.phases.open.status = 'done';
78
+ s.phases.propose.status = 'done';
79
79
  return s;
80
80
  });
81
- expect(next.phases.open.status).toBe('done');
81
+ expect(next.phases.propose.status).toBe('done');
82
82
  expect(next.metadata.stateVersion).toBe(1);
83
83
  expect(next.metadata.lastModified).toBeTruthy();
84
84
  const raw = await fs.readFile('.nova.yaml', 'utf-8');
85
85
  const disk = yaml.parse(raw);
86
- expect(disk.phases.open.status).toBe('done');
86
+ expect(disk.phases.propose.status).toBe('done');
87
87
  });
88
88
  test('setPhaseField updates a single phase field', async () => {
89
89
  await writeState(baseState);
90
- await state_1.StateManager.setPhaseField('build', 'status', 'in-progress');
90
+ await state_1.StateManager.setPhaseField('implement', 'status', 'in-progress');
91
91
  const state = await state_1.StateManager.load();
92
- expect(state.phases.build.status).toBe('in-progress');
92
+ expect(state.phases.implement.status).toBe('in-progress');
93
93
  });
94
94
  test('getTask finds task by id', async () => {
95
95
  const stateWithTasks = {