@mrpatronz/nexusflow 2.0.0 → 2.2.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.
Files changed (112) hide show
  1. package/README.md +5 -1
  2. package/dist/agent/AcpCliAdapter.d.ts +75 -0
  3. package/dist/agent/AcpCliAdapter.d.ts.map +1 -0
  4. package/dist/agent/AcpCliAdapter.js +292 -0
  5. package/dist/agent/AcpCliAdapter.js.map +1 -0
  6. package/dist/agent/AcpCliAdapter.test.d.ts +2 -0
  7. package/dist/agent/AcpCliAdapter.test.d.ts.map +1 -0
  8. package/dist/agent/AcpCliAdapter.test.js +235 -0
  9. package/dist/agent/AcpCliAdapter.test.js.map +1 -0
  10. package/dist/agent/ClaudeCliAdapter.d.ts +40 -5
  11. package/dist/agent/ClaudeCliAdapter.d.ts.map +1 -1
  12. package/dist/agent/ClaudeCliAdapter.js +212 -15
  13. package/dist/agent/ClaudeCliAdapter.js.map +1 -1
  14. package/dist/agent/ClaudeCliAdapter.test.d.ts +2 -0
  15. package/dist/agent/ClaudeCliAdapter.test.d.ts.map +1 -0
  16. package/dist/agent/ClaudeCliAdapter.test.js +320 -0
  17. package/dist/agent/ClaudeCliAdapter.test.js.map +1 -0
  18. package/dist/agent/CliAdapterBase.d.ts +29 -12
  19. package/dist/agent/CliAdapterBase.d.ts.map +1 -1
  20. package/dist/agent/CliAdapterBase.js +76 -36
  21. package/dist/agent/CliAdapterBase.js.map +1 -1
  22. package/dist/agent/CodexCliAdapter.d.ts +51 -0
  23. package/dist/agent/CodexCliAdapter.d.ts.map +1 -0
  24. package/dist/agent/CodexCliAdapter.js +226 -0
  25. package/dist/agent/CodexCliAdapter.js.map +1 -0
  26. package/dist/agent/CodexCliAdapter.test.d.ts +2 -0
  27. package/dist/agent/CodexCliAdapter.test.d.ts.map +1 -0
  28. package/dist/agent/CodexCliAdapter.test.js +316 -0
  29. package/dist/agent/CodexCliAdapter.test.js.map +1 -0
  30. package/dist/agent/CopilotAcpAdapter.d.ts +7 -0
  31. package/dist/agent/CopilotAcpAdapter.d.ts.map +1 -0
  32. package/dist/agent/CopilotAcpAdapter.js +29 -0
  33. package/dist/agent/CopilotAcpAdapter.js.map +1 -0
  34. package/dist/agent/ProviderRegistry.d.ts +39 -3
  35. package/dist/agent/ProviderRegistry.d.ts.map +1 -1
  36. package/dist/agent/ProviderRegistry.js +43 -8
  37. package/dist/agent/ProviderRegistry.js.map +1 -1
  38. package/dist/agent/ProviderRegistry.test.js +52 -0
  39. package/dist/agent/ProviderRegistry.test.js.map +1 -1
  40. package/dist/agent/adapters.d.ts +7 -5
  41. package/dist/agent/adapters.d.ts.map +1 -1
  42. package/dist/agent/adapters.js +92 -17
  43. package/dist/agent/adapters.js.map +1 -1
  44. package/dist/agent/adapters.test.js +22 -0
  45. package/dist/agent/adapters.test.js.map +1 -1
  46. package/dist/agent/cliAvailability.d.ts +51 -13
  47. package/dist/agent/cliAvailability.d.ts.map +1 -1
  48. package/dist/agent/cliAvailability.js +163 -44
  49. package/dist/agent/cliAvailability.js.map +1 -1
  50. package/dist/agent/cliAvailability.test.js +140 -53
  51. package/dist/agent/cliAvailability.test.js.map +1 -1
  52. package/dist/agent/session.d.ts +2 -1
  53. package/dist/agent/session.d.ts.map +1 -1
  54. package/dist/agent/session.js +15 -4
  55. package/dist/agent/session.js.map +1 -1
  56. package/dist/agent/session.test.js +29 -8
  57. package/dist/agent/session.test.js.map +1 -1
  58. package/dist/core/workspace.d.ts +6 -0
  59. package/dist/core/workspace.d.ts.map +1 -1
  60. package/dist/core/workspace.js +17 -7
  61. package/dist/core/workspace.js.map +1 -1
  62. package/dist/core/workspace.test.js +12 -1
  63. package/dist/core/workspace.test.js.map +1 -1
  64. package/dist/gui/assets/DashboardPage-CUspfCap.js +1 -0
  65. package/dist/gui/assets/GettingStartedPage-BqtgARZW.js +1 -0
  66. package/dist/gui/assets/ProjectsPage-UBoQxI2G.js +1 -0
  67. package/dist/gui/assets/{ScaffoldRepoInline-D-2ZeuDK.js → ScaffoldRepoInline-DqoourJe.js} +1 -1
  68. package/dist/gui/assets/SettingsPage-BZl24tqD.js +1 -0
  69. package/dist/gui/assets/StartWorkPage-BGNFdBfj.js +1 -0
  70. package/dist/gui/assets/{StrategiesPage-Cizm0GWk.js → StrategiesPage-D0Y6A4Tw.js} +2 -2
  71. package/dist/gui/assets/WorkspaceLauncher-Cxv0O_wt.js +1 -0
  72. package/dist/gui/assets/WorkspacesPage-Cvb1rOeh.js +6 -0
  73. package/dist/gui/assets/index-CllPiiFL.js +52 -0
  74. package/dist/gui/assets/index-DGCBhMAn.css +2 -0
  75. package/dist/gui/index.html +2 -2
  76. package/dist/server.d.ts +13 -0
  77. package/dist/server.d.ts.map +1 -1
  78. package/dist/server.js +267 -39
  79. package/dist/server.js.map +1 -1
  80. package/dist/server.test.js +324 -18
  81. package/dist/server.test.js.map +1 -1
  82. package/dist/types.d.ts +13 -0
  83. package/dist/types.d.ts.map +1 -1
  84. package/dist/utils/detect-editors.d.ts.map +1 -1
  85. package/dist/utils/detect-editors.js +6 -0
  86. package/dist/utils/detect-editors.js.map +1 -1
  87. package/dist/utils/detect-editors.test.js +12 -0
  88. package/dist/utils/detect-editors.test.js.map +1 -1
  89. package/dist/utils/session-finder.d.ts +14 -0
  90. package/dist/utils/session-finder.d.ts.map +1 -1
  91. package/dist/utils/session-finder.js +127 -10
  92. package/dist/utils/session-finder.js.map +1 -1
  93. package/dist/utils/session-finder.test.js +104 -2
  94. package/dist/utils/session-finder.test.js.map +1 -1
  95. package/dist/utils/workspace-launch.d.ts +37 -0
  96. package/dist/utils/workspace-launch.d.ts.map +1 -0
  97. package/dist/utils/workspace-launch.js +200 -0
  98. package/dist/utils/workspace-launch.js.map +1 -0
  99. package/dist/utils/workspace-launch.test.d.ts +2 -0
  100. package/dist/utils/workspace-launch.test.d.ts.map +1 -0
  101. package/dist/utils/workspace-launch.test.js +94 -0
  102. package/dist/utils/workspace-launch.test.js.map +1 -0
  103. package/package.json +5 -3
  104. package/dist/gui/assets/DashboardPage-HNC3-OP0.js +0 -1
  105. package/dist/gui/assets/GettingStartedPage-Dguoya_Z.js +0 -1
  106. package/dist/gui/assets/ProjectsPage-DVR4j4sw.js +0 -1
  107. package/dist/gui/assets/SettingsPage-Bauo77q3.js +0 -1
  108. package/dist/gui/assets/StartWorkPage-DvuFEa5Y.js +0 -1
  109. package/dist/gui/assets/WorkspacesPage-DYOVfZqy.js +0 -6
  110. package/dist/gui/assets/external-link-BtYhMxno.js +0 -1
  111. package/dist/gui/assets/index-BqeoAIB1.js +0 -52
  112. package/dist/gui/assets/index-CsA2SueF.css +0 -2
@@ -1,7 +1,8 @@
1
1
  import { describe, it, expect, vi, beforeEach } from 'vitest';
2
2
  import * as fs from 'node:fs/promises';
3
+ import * as path from 'node:path';
3
4
  import { execa } from 'execa';
4
- import { app, isAllowedUpdateUrl } from './server.js';
5
+ import { AgentTurnGate, app, dispatchAgentInput, isAllowedUpdateUrl } from './server.js';
5
6
  import * as workspace from './core/workspace.js';
6
7
  import * as config from './core/config.js';
7
8
  import * as analyzers from './analyzers/index.js';
@@ -10,6 +11,8 @@ import * as workflows from './utils/workflows.js';
10
11
  import * as detectAi from './utils/detect-ai.js';
11
12
  import * as newRepo from './core/new-repo.js';
12
13
  import * as orchestration from './orchestration/index.js';
14
+ import * as sessionFinder from './utils/session-finder.js';
15
+ import { ProviderRegistry } from './agent/ProviderRegistry.js';
13
16
  // Mock dependencies
14
17
  vi.mock('node:fs/promises');
15
18
  vi.mock('execa');
@@ -29,7 +32,131 @@ describe('Server API Endpoints Unit Tests', () => {
29
32
  beforeEach(() => {
30
33
  vi.clearAllMocks();
31
34
  });
35
+ it('rejects an invalid Codex transcript id at the HTTP boundary', async () => {
36
+ const response = await app.request('/api/session/codex/53/transcript');
37
+ expect(response.status).toBe(400);
38
+ await expect(response.json()).resolves.toEqual({ error: 'Invalid Codex session id.' });
39
+ });
40
+ describe('embedded turn admission', () => {
41
+ it('rejects overlapping input until the active turn settles', () => {
42
+ const gate = new AgentTurnGate();
43
+ expect(gate.tryBegin()).toBe(true);
44
+ expect(gate.isActive()).toBe(true);
45
+ expect(gate.tryBegin()).toBe(false);
46
+ gate.settle();
47
+ expect(gate.isActive()).toBe(false);
48
+ expect(gate.tryBegin()).toBe(true);
49
+ });
50
+ });
51
+ describe('CLI adapter status probes', () => {
52
+ it('keeps the legacy GET endpoint side-effect-free', async () => {
53
+ const status = vi.spyOn(ProviderRegistry, 'getAllStatus').mockReturnValue([]);
54
+ const response = await app.request('/api/adapters/status', {
55
+ headers: { Origin: 'https://evil.example' },
56
+ });
57
+ expect(response.status).toBe(405);
58
+ expect(status).not.toHaveBeenCalled();
59
+ status.mockRestore();
60
+ });
61
+ it('rejects a hostile initial status POST before running CLI detectors', async () => {
62
+ const status = vi.spyOn(ProviderRegistry, 'getAllStatus').mockReturnValue([]);
63
+ const response = await app.request('/api/adapters/status', {
64
+ method: 'POST',
65
+ headers: { 'Content-Type': 'application/json', Origin: 'https://evil.example' },
66
+ body: '{}',
67
+ });
68
+ expect(response.status).toBe(403);
69
+ expect(status).not.toHaveBeenCalled();
70
+ status.mockRestore();
71
+ });
72
+ it('allows a local-origin initial status POST', async () => {
73
+ const status = vi.spyOn(ProviderRegistry, 'getAllStatus').mockReturnValue([]);
74
+ const response = await app.request('/api/adapters/status', {
75
+ method: 'POST',
76
+ headers: { 'Content-Type': 'application/json', Origin: 'http://localhost:4173' },
77
+ body: '{}',
78
+ });
79
+ expect(response.status).toBe(200);
80
+ expect(response.headers.get('access-control-allow-origin')).toBe('http://localhost:4173');
81
+ expect(status).toHaveBeenCalledWith();
82
+ status.mockRestore();
83
+ });
84
+ it('rejects a hostile browser origin before refreshing a CLI detector', async () => {
85
+ const status = vi.spyOn(ProviderRegistry, 'getAllStatus').mockReturnValue([]);
86
+ const response = await app.request('/api/adapters/status/refresh', {
87
+ method: 'POST',
88
+ headers: { 'Content-Type': 'application/json', Origin: 'https://evil.example' },
89
+ body: JSON.stringify({ providerId: 'claude-cli' }),
90
+ });
91
+ expect(response.status).toBe(403);
92
+ expect(status).not.toHaveBeenCalled();
93
+ status.mockRestore();
94
+ });
95
+ it('refreshes only an allowlisted CLI for a same-origin request', async () => {
96
+ const status = vi.spyOn(ProviderRegistry, 'getAllStatus').mockReturnValue([]);
97
+ const response = await app.request('/api/adapters/status/refresh', {
98
+ method: 'POST',
99
+ headers: { 'Content-Type': 'application/json', Origin: 'http://localhost:4173' },
100
+ body: JSON.stringify({ providerId: 'codex-cli' }),
101
+ });
102
+ expect(response.status).toBe(200);
103
+ expect(response.headers.get('access-control-allow-origin')).toBe('http://localhost:4173');
104
+ expect(status).toHaveBeenCalledWith({ refreshProviderId: 'codex-cli' });
105
+ status.mockRestore();
106
+ });
107
+ it('rejects attempts to refresh other providers', async () => {
108
+ const status = vi.spyOn(ProviderRegistry, 'getAllStatus').mockReturnValue([]);
109
+ const response = await app.request('/api/adapters/status/refresh', {
110
+ method: 'POST',
111
+ headers: { 'Content-Type': 'application/json', Origin: 'http://127.0.0.1:4173' },
112
+ body: JSON.stringify({ providerId: 'copilot-cli' }),
113
+ });
114
+ expect(response.status).toBe(400);
115
+ expect(status).not.toHaveBeenCalled();
116
+ status.mockRestore();
117
+ });
118
+ });
119
+ describe('embedded turn execution profiles', () => {
120
+ const provider = {
121
+ id: 'profiled-test',
122
+ name: 'Profiled test',
123
+ capabilities: { transport: 'cli-print', sessionIdentity: 'none', workspaceAccess: 'harness-managed' },
124
+ executionProfiles: [
125
+ { id: 'review', label: 'Review only', description: 'Read-only.' },
126
+ { id: 'workspace-write', label: 'Edit workspace', description: 'May edit.' },
127
+ ],
128
+ defaultExecutionProfile: 'review',
129
+ isConfigured: () => true,
130
+ getStatusMessage: () => undefined,
131
+ createInstance: () => harness(),
132
+ };
133
+ function harness() {
134
+ return {
135
+ start: vi.fn(),
136
+ send: vi.fn().mockResolvedValue(undefined),
137
+ stop: vi.fn(),
138
+ on: vi.fn().mockReturnThis(),
139
+ off: vi.fn().mockReturnThis(),
140
+ };
141
+ }
142
+ it.each([undefined, 'danger-full-access', false])('rejects a missing or unsupported profile %j before harness send', (executionProfile) => {
143
+ const agent = harness();
144
+ expect(dispatchAgentInput(agent, provider, { input: 'Do work', executionProfile }))
145
+ .toMatch(/supported execution profile/i);
146
+ expect(agent.send).not.toHaveBeenCalled();
147
+ });
148
+ it('passes a validated profile to the harness', () => {
149
+ const agent = harness();
150
+ expect(dispatchAgentInput(agent, provider, {
151
+ input: 'Inspect only',
152
+ executionProfile: 'review',
153
+ })).toBeNull();
154
+ expect(agent.send).toHaveBeenCalledWith('Inspect only', 'review');
155
+ });
156
+ });
32
157
  describe('POST /api/open-editor', () => {
158
+ const workspacesDir = path.resolve('mock-workspaces');
159
+ const workspacePath = path.join(workspacesDir, 'test-workspace');
33
160
  it('should return 400 for forbidden editor commands', async () => {
34
161
  const response = await app.request('/api/open-editor', {
35
162
  method: 'POST',
@@ -43,13 +170,23 @@ describe('Server API Endpoints Unit Tests', () => {
43
170
  const data = await response.json();
44
171
  expect(data.error).toBe('Forbidden editor command');
45
172
  });
173
+ it('explicitly rejects legacy interactive terminal editors', async () => {
174
+ const response = await app.request('/api/open-editor', {
175
+ method: 'POST',
176
+ headers: { 'Content-Type': 'application/json' },
177
+ body: JSON.stringify({ workspacePath, command: 'nvim' }),
178
+ });
179
+ expect(response.status).toBe(400);
180
+ await expect(response.json()).resolves.toEqual({ error: 'Forbidden editor command' });
181
+ });
46
182
  it('should return 400 if workspace path does not exist', async () => {
183
+ vi.spyOn(config, 'loadConfig').mockResolvedValue({ workspacesDir });
47
184
  vi.spyOn(fs, 'stat').mockRejectedValue(new Error('File not found'));
48
185
  const response = await app.request('/api/open-editor', {
49
186
  method: 'POST',
50
187
  headers: { 'Content-Type': 'application/json' },
51
188
  body: JSON.stringify({
52
- workspacePath: '/non-existent/path',
189
+ workspacePath,
53
190
  command: 'code-insiders'
54
191
  })
55
192
  });
@@ -58,6 +195,7 @@ describe('Server API Endpoints Unit Tests', () => {
58
195
  expect(data.error).toBe('Workspace path does not exist');
59
196
  });
60
197
  it('should return 400 if workspace path is not a directory', async () => {
198
+ vi.spyOn(config, 'loadConfig').mockResolvedValue({ workspacesDir });
61
199
  vi.spyOn(fs, 'stat').mockResolvedValue({
62
200
  isDirectory: () => false
63
201
  });
@@ -65,7 +203,7 @@ describe('Server API Endpoints Unit Tests', () => {
65
203
  method: 'POST',
66
204
  headers: { 'Content-Type': 'application/json' },
67
205
  body: JSON.stringify({
68
- workspacePath: '/mock/file.txt',
206
+ workspacePath,
69
207
  command: 'code-insiders'
70
208
  })
71
209
  });
@@ -73,36 +211,185 @@ describe('Server API Endpoints Unit Tests', () => {
73
211
  const data = await response.json();
74
212
  expect(data.error).toBe('Workspace path is not a directory');
75
213
  });
76
- it('should call execa with detached, stdio, shell, and cleanup options and return success', async () => {
214
+ it('should launch a detected editor through the server-owned target', async () => {
215
+ vi.spyOn(config, 'loadConfig').mockResolvedValue({ workspacesDir });
77
216
  vi.spyOn(fs, 'stat').mockResolvedValue({
78
217
  isDirectory: () => true
79
218
  });
80
- // Mock execa to return a dummy child process with a catch method
81
- const dummyChild = {
82
- unref: vi.fn(),
83
- catch: vi.fn().mockReturnThis()
84
- };
85
- vi.mocked(execa).mockReturnValue(dummyChild);
219
+ vi.spyOn(fs, 'access').mockRejectedValue(new Error('No generated workspace file'));
220
+ vi.spyOn(fs, 'realpath').mockImplementation(async (candidate) => path.resolve(String(candidate)));
221
+ vi.spyOn(workspace, 'loadWorkspaceManifest').mockResolvedValue({
222
+ id: 'test-workspace',
223
+ workspacePath,
224
+ });
225
+ vi.mocked(execa).mockImplementation((async (command, args) => ({
226
+ exitCode: args?.[0] === '--version' && command === 'code-insiders' ? 0 : 1,
227
+ })));
86
228
  const response = await app.request('/api/open-editor', {
87
229
  method: 'POST',
88
230
  headers: { 'Content-Type': 'application/json' },
89
231
  body: JSON.stringify({
90
- workspacePath: '/mock/workspace/dir',
232
+ workspacePath,
91
233
  command: 'code-insiders'
92
234
  })
93
235
  });
94
236
  expect(response.status).toBe(200);
95
237
  const data = await response.json();
96
238
  expect(data.success).toBe(true);
97
- const isWin = process.platform === 'win32';
98
- expect(execa).toHaveBeenCalledWith('code-insiders', ['/mock/workspace/dir'], {
99
- detached: true,
239
+ expect(execa).toHaveBeenCalledWith('code-insiders', [process.platform === 'win32' ? `"${workspacePath}"` : workspacePath], {
100
240
  stdio: 'ignore',
101
- shell: isWin,
102
- cleanup: false
241
+ shell: process.platform === 'win32',
103
242
  });
104
- expect(dummyChild.unref).toHaveBeenCalled();
105
- expect(dummyChild.catch).toHaveBeenCalled();
243
+ });
244
+ it('rejects an existing directory outside the configured workspace root', async () => {
245
+ vi.spyOn(config, 'loadConfig').mockResolvedValue({ workspacesDir });
246
+ const response = await app.request('/api/open-editor', {
247
+ method: 'POST',
248
+ headers: { 'Content-Type': 'application/json' },
249
+ body: JSON.stringify({
250
+ workspacePath: path.resolve('outside-workspace'),
251
+ command: 'code',
252
+ }),
253
+ });
254
+ expect(response.status).toBe(400);
255
+ await expect(response.json()).resolves.toEqual({ error: 'Invalid workspace path' });
256
+ });
257
+ });
258
+ describe('workspace launch targets', () => {
259
+ const workspacesDir = path.resolve('launch-workspaces');
260
+ const workspacePath = path.join(workspacesDir, 'safe-workspace');
261
+ beforeEach(() => {
262
+ vi.spyOn(config, 'loadConfig').mockResolvedValue({ workspacesDir });
263
+ vi.spyOn(fs, 'realpath').mockImplementation(async (candidate) => path.resolve(String(candidate)));
264
+ vi.spyOn(workspace, 'loadWorkspaceManifest').mockResolvedValue({
265
+ id: 'safe-workspace',
266
+ description: 'Improve the local Desktop handoff',
267
+ repos: [],
268
+ workspacePath,
269
+ });
270
+ });
271
+ it('returns stable ids and never exposes executable commands', async () => {
272
+ vi.mocked(execa).mockResolvedValue({ exitCode: 1 });
273
+ const response = await app.request('/api/workspace-launch-targets');
274
+ const targets = await response.json();
275
+ expect(response.status).toBe(200);
276
+ expect(targets.map((target) => target.id)).toContain('codex-desktop');
277
+ expect(targets.map((target) => target.id)).toContain('vscode-insiders');
278
+ expect(targets.every((target) => !('command' in target) && !('uri' in target))).toBe(true);
279
+ });
280
+ it('rejects a client-supplied target outside the closed catalog', async () => {
281
+ vi.mocked(execa).mockResolvedValue({ exitCode: 1 });
282
+ const response = await app.request('/api/workspace/safe-workspace/launch', {
283
+ method: 'POST',
284
+ headers: { 'Content-Type': 'application/json' },
285
+ body: JSON.stringify({ targetId: 'editor:../../calc.exe' }),
286
+ });
287
+ expect(response.status).toBe(400);
288
+ await expect(response.json()).resolves.toEqual({ error: 'Unknown workspace launch target.' });
289
+ });
290
+ it('rejects a workspace whose canonical path escapes through a symlink', async () => {
291
+ const outsidePath = path.resolve('outside-launch-workspace');
292
+ vi.mocked(fs.realpath).mockImplementation(async (candidate) => path.resolve(String(candidate)) === workspacePath
293
+ ? outsidePath
294
+ : path.resolve(String(candidate)));
295
+ const response = await app.request('/api/workspace/safe-workspace/launch', {
296
+ method: 'POST',
297
+ headers: { 'Content-Type': 'application/json' },
298
+ body: JSON.stringify({ targetId: 'codex-desktop' }),
299
+ });
300
+ expect(response.status).toBe(400);
301
+ await expect(response.json()).resolves.toEqual({ error: 'Invalid workspace path' });
302
+ expect(execa).not.toHaveBeenCalled();
303
+ });
304
+ it('rejects a child path that only inherits a parent workspace manifest', async () => {
305
+ vi.mocked(workspace.loadWorkspaceManifest).mockResolvedValue(null);
306
+ vi.mocked(workspace.loadFeatureConfig).mockResolvedValue({
307
+ id: 'parent-workspace',
308
+ workspacePath: workspacesDir,
309
+ });
310
+ const response = await app.request('/api/workspace/safe-workspace/launch', {
311
+ method: 'POST',
312
+ headers: { 'Content-Type': 'application/json' },
313
+ body: JSON.stringify({ targetId: 'codex-desktop' }),
314
+ });
315
+ expect(response.status).toBe(404);
316
+ await expect(response.json()).resolves.toEqual({ error: 'Workspace configuration not found.' });
317
+ expect(execa).not.toHaveBeenCalled();
318
+ });
319
+ it('returns a conflict when the selected app is unavailable', async () => {
320
+ vi.mocked(execa).mockResolvedValue({ exitCode: 1 });
321
+ const response = await app.request('/api/workspace/safe-workspace/launch', {
322
+ method: 'POST',
323
+ headers: { 'Content-Type': 'application/json' },
324
+ body: JSON.stringify({ targetId: 'codex-desktop' }),
325
+ });
326
+ expect(response.status).toBe(409);
327
+ expect((await response.json()).error).toMatch(/not installed|unavailable|supported/i);
328
+ });
329
+ it('launches Codex with a once-encoded validated workspace path', async () => {
330
+ const platform = vi.spyOn(process, 'platform', 'get').mockReturnValue('win32');
331
+ vi.mocked(execa).mockImplementation((async (command) => ({
332
+ exitCode: command === 'reg.exe' || command === 'explorer.exe' ? 0 : 1,
333
+ })));
334
+ try {
335
+ const response = await app.request('/api/workspace/safe-workspace/launch', {
336
+ method: 'POST',
337
+ headers: { 'Content-Type': 'application/json' },
338
+ body: JSON.stringify({ targetId: 'codex-desktop' }),
339
+ });
340
+ expect(response.status).toBe(200);
341
+ const prompt = 'Read the workspace instructions and implementation plan, inspect the repository state, then begin the task described for this workspace. Ask before making a decision that materially changes scope.\n\nWorkspace task: Improve the local Desktop handoff';
342
+ expect(execa).toHaveBeenCalledWith('explorer.exe', [`codex://threads/new?path=${encodeURIComponent(workspacePath)}&prompt=${encodeURIComponent(prompt)}`], { shell: false });
343
+ }
344
+ finally {
345
+ platform.mockRestore();
346
+ }
347
+ });
348
+ it('opens only a Codex thread recorded for the selected workspace', async () => {
349
+ const platform = vi.spyOn(process, 'platform', 'get').mockReturnValue('win32');
350
+ const sessionId = '0199a213-81c0-7800-8aa1-bbab2a035a53';
351
+ const authorizeSession = vi.spyOn(sessionFinder, 'canOpenCodexSessionInWorkspace')
352
+ .mockResolvedValue(true);
353
+ vi.mocked(execa).mockResolvedValue({ exitCode: 0 });
354
+ try {
355
+ const response = await app.request('/api/workspace/safe-workspace/launch', {
356
+ method: 'POST',
357
+ headers: { 'Content-Type': 'application/json' },
358
+ body: JSON.stringify({ targetId: 'codex-desktop', action: 'resume', sessionId }),
359
+ });
360
+ expect(response.status).toBe(200);
361
+ expect(execa).toHaveBeenCalledWith('explorer.exe', [`codex://threads/${sessionId}`], { shell: false });
362
+ }
363
+ finally {
364
+ authorizeSession.mockRestore();
365
+ platform.mockRestore();
366
+ }
367
+ });
368
+ it('does not open a Codex thread owned by another workspace', async () => {
369
+ const platform = vi.spyOn(process, 'platform', 'get').mockReturnValue('win32');
370
+ const authorizeSession = vi.spyOn(sessionFinder, 'canOpenCodexSessionInWorkspace')
371
+ .mockResolvedValue(false);
372
+ vi.mocked(execa).mockResolvedValue({ exitCode: 0 });
373
+ try {
374
+ const response = await app.request('/api/workspace/safe-workspace/launch', {
375
+ method: 'POST',
376
+ headers: { 'Content-Type': 'application/json' },
377
+ body: JSON.stringify({
378
+ targetId: 'codex-desktop',
379
+ action: 'resume',
380
+ sessionId: '0199a213-81c0-7800-8aa1-bbab2a035a53',
381
+ }),
382
+ });
383
+ expect(response.status).toBe(404);
384
+ await expect(response.json()).resolves.toEqual({
385
+ error: 'Codex session not found in this workspace.',
386
+ });
387
+ expect(execa).not.toHaveBeenCalledWith('explorer.exe', expect.anything(), expect.anything());
388
+ }
389
+ finally {
390
+ authorizeSession.mockRestore();
391
+ platform.mockRestore();
392
+ }
106
393
  });
107
394
  });
108
395
  describe('POST /api/workspace/:id/resume', () => {
@@ -479,6 +766,25 @@ describe('Server API Endpoints Unit Tests', () => {
479
766
  const calledArgs = vi.mocked(execa).mock.calls[0][1];
480
767
  expect(JSON.stringify(calledArgs)).toContain('Check for timeouts');
481
768
  });
769
+ it('uses non-interactive codex exec with the prompt on stdin', async () => {
770
+ vi.mocked(detectAi.detectAIAssistants).mockResolvedValue([
771
+ { name: 'codex', displayName: 'OpenAI Codex', detected: true, command: 'codex' }
772
+ ]);
773
+ vi.mocked(execa).mockResolvedValue({
774
+ exitCode: 0,
775
+ stdout: 'Review result'
776
+ });
777
+ const response = await app.request('/api/workflows/templates/test-id/analyze', {
778
+ method: 'POST',
779
+ headers: { 'Content-Type': 'application/json' },
780
+ body: JSON.stringify({ content: 'Rules', assistant: 'codex' })
781
+ });
782
+ expect(response.status).toBe(200);
783
+ const [command, args, options] = vi.mocked(execa).mock.calls[0];
784
+ expect(command).toBe('codex');
785
+ expect(args).toEqual(['exec', '--color', 'never', '-']);
786
+ expect(options?.input).toContain('Rules');
787
+ });
482
788
  describe('POST /api/workspace/suggest-workflow', () => {
483
789
  it('should suggest a workflow using heuristics when local LLM is disabled', async () => {
484
790
  vi.spyOn(config, 'loadConfig').mockResolvedValue({
@@ -1 +1 @@
1
- {"version":3,"file":"server.test.js","sourceRoot":"","sources":["../src/server.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.test.js","sourceRoot":"","sources":["../src/server.test.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -53,6 +53,19 @@ export interface DetectedEditor {
53
53
  /** Whether the editor's CLI was found in PATH. */
54
54
  detected: boolean;
55
55
  }
56
+ /** Stable launch targets exposed to the GUI. Executables and URIs stay server-owned. */
57
+ export type WorkspaceLaunchTargetKind = 'ai-app' | 'editor';
58
+ export type WorkspaceLaunchIcon = 'codex' | 'claude' | 'vscode' | 'vscode-insiders' | 'cursor' | 'antigravity' | 'intellij' | 'webstorm' | 'pycharm' | 'sublime' | 'zed' | 'windsurf';
59
+ export interface WorkspaceLaunchTarget {
60
+ /** Closed identifier accepted by the launch endpoint (never an executable name from the client). */
61
+ id: string;
62
+ name: string;
63
+ description: string;
64
+ kind: WorkspaceLaunchTargetKind;
65
+ icon: WorkspaceLaunchIcon;
66
+ available: boolean;
67
+ unavailableReason?: string;
68
+ }
56
69
  /** Metadata about a discovered git repository. */
57
70
  export interface RepoInfo {
58
71
  /** Directory name of the repo. */