expxagents 0.30.4 → 0.30.6

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 (62) hide show
  1. package/assets/core/onboarding/design-system-setup.md +101 -0
  2. package/assets/core/runner.pipeline.md +1 -0
  3. package/assets/core/solution-architect.agent.md +4 -77
  4. package/assets/core/visual-squad-guide.md +83 -0
  5. package/dist/dashboard/assets/{BufferResource-DR9k0IBy.js → BufferResource-CjsnSf42.js} +1 -1
  6. package/dist/dashboard/assets/{CanvasRenderer-CJN6IW-P.js → CanvasRenderer-B_BGtDGv.js} +1 -1
  7. package/dist/dashboard/assets/{JarvisView-BlWpd0zd.js → JarvisView-CjQi3aoo.js} +1 -1
  8. package/dist/dashboard/assets/{RenderTargetSystem-Br52tJpM.js → RenderTargetSystem-CvRMI3ss.js} +1 -1
  9. package/dist/dashboard/assets/{ThreeBackground-QmbGWUih.js → ThreeBackground-DxwBr08u.js} +1 -1
  10. package/dist/dashboard/assets/{WebGLRenderer-DyTcUt3n.js → WebGLRenderer-yAiRn_ne.js} +1 -1
  11. package/dist/dashboard/assets/{WebGPURenderer-C5v_uCzQ.js → WebGPURenderer-BxFqovmL.js} +1 -1
  12. package/dist/dashboard/assets/{browserAll-DohokyWS.js → browserAll-DMNx9Ffc.js} +1 -1
  13. package/dist/dashboard/assets/{index-D5osflxR.js → index-B9UJ5mUd.js} +236 -236
  14. package/dist/dashboard/assets/{webworkerAll-BrEiVNLD.js → webworkerAll-Dfvzix_M.js} +1 -1
  15. package/dist/dashboard/index.html +1 -1
  16. package/dist/server/api/system-routes.d.ts.map +1 -1
  17. package/dist/server/api/system-routes.js +86 -45
  18. package/dist/server/api/system-routes.js.map +1 -1
  19. package/dist/server/app.d.ts.map +1 -1
  20. package/dist/server/app.js +6 -3
  21. package/dist/server/app.js.map +1 -1
  22. package/dist/server/bridge/__tests__/chat-handler.test.js +70 -0
  23. package/dist/server/bridge/__tests__/chat-handler.test.js.map +1 -1
  24. package/dist/server/bridge/__tests__/opencode-bridge.test.d.ts +2 -0
  25. package/dist/server/bridge/__tests__/opencode-bridge.test.d.ts.map +1 -0
  26. package/dist/server/bridge/__tests__/opencode-bridge.test.js +106 -0
  27. package/dist/server/bridge/__tests__/opencode-bridge.test.js.map +1 -0
  28. package/dist/server/bridge/chat-handler.d.ts +5 -0
  29. package/dist/server/bridge/chat-handler.d.ts.map +1 -1
  30. package/dist/server/bridge/chat-handler.js +41 -0
  31. package/dist/server/bridge/chat-handler.js.map +1 -1
  32. package/dist/server/bridge/engine.d.ts +9 -0
  33. package/dist/server/bridge/engine.d.ts.map +1 -1
  34. package/dist/server/bridge/opencode-bridge.d.ts.map +1 -1
  35. package/dist/server/bridge/opencode-bridge.js +34 -3
  36. package/dist/server/bridge/opencode-bridge.js.map +1 -1
  37. package/dist/server/scheduler/__tests__/job-runner-knowledge.test.d.ts +2 -0
  38. package/dist/server/scheduler/__tests__/job-runner-knowledge.test.d.ts.map +1 -0
  39. package/dist/server/scheduler/__tests__/job-runner-knowledge.test.js +122 -0
  40. package/dist/server/scheduler/__tests__/job-runner-knowledge.test.js.map +1 -0
  41. package/dist/server/scheduler/__tests__/scheduler-routes.test.js +22 -1
  42. package/dist/server/scheduler/__tests__/scheduler-routes.test.js.map +1 -1
  43. package/dist/server/scheduler/__tests__/scheduler-service.test.js +35 -1
  44. package/dist/server/scheduler/__tests__/scheduler-service.test.js.map +1 -1
  45. package/dist/server/scheduler/job-runner.d.ts +3 -0
  46. package/dist/server/scheduler/job-runner.d.ts.map +1 -1
  47. package/dist/server/scheduler/job-runner.js +20 -0
  48. package/dist/server/scheduler/job-runner.js.map +1 -1
  49. package/dist/server/scheduler/scheduler-routes.d.ts.map +1 -1
  50. package/dist/server/scheduler/scheduler-routes.js +9 -0
  51. package/dist/server/scheduler/scheduler-routes.js.map +1 -1
  52. package/dist/server/scheduler/scheduler-service.d.ts +2 -0
  53. package/dist/server/scheduler/scheduler-service.d.ts.map +1 -1
  54. package/dist/server/scheduler/scheduler-service.js +18 -0
  55. package/dist/server/scheduler/scheduler-service.js.map +1 -1
  56. package/dist/server/ws/__tests__/ws-handler-ask-user.test.d.ts +2 -0
  57. package/dist/server/ws/__tests__/ws-handler-ask-user.test.d.ts.map +1 -0
  58. package/dist/server/ws/__tests__/ws-handler-ask-user.test.js +46 -0
  59. package/dist/server/ws/__tests__/ws-handler-ask-user.test.js.map +1 -0
  60. package/dist/server/ws/ws-handler.js +16 -0
  61. package/dist/server/ws/ws-handler.js.map +1 -1
  62. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import{a1 as G,a3 as I,a4 as B,l as _,M as k,W as O,N as A,a9 as m,T as v,as as C,R as E,w as z,a8 as U,v as w}from"./index-D5osflxR.js";var M=`in vec2 aPosition;
1
+ import{a1 as G,a3 as I,a4 as B,l as _,M as k,W as O,N as A,a9 as m,T as v,as as C,R as E,w as z,a8 as U,v as w}from"./index-B9UJ5mUd.js";var M=`in vec2 aPosition;
2
2
  out vec2 vTextureCoord;
3
3
 
4
4
  uniform vec4 uInputSize;
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>ExpxAgents — Mission Control</title>
7
- <script type="module" crossorigin src="/assets/index-D5osflxR.js"></script>
7
+ <script type="module" crossorigin src="/assets/index-B9UJ5mUd.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="/assets/index-DtbIzZ5n.css">
9
9
  </head>
10
10
  <body>
@@ -1 +1 @@
1
- {"version":3,"file":"system-routes.d.ts","sourceRoot":"","sources":["../../src/api/system-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAOrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAOjE,UAAU,mBAAoB,SAAQ,oBAAoB;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAwED,wBAAsB,YAAY,CAChC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CA6Pf"}
1
+ {"version":3,"file":"system-routes.d.ts","sourceRoot":"","sources":["../../src/api/system-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAOrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAOjE,UAAU,mBAAoB,SAAQ,oBAAoB;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AA6FD,wBAAsB,YAAY,CAChC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CAuRf"}
@@ -1,4 +1,4 @@
1
- import { execFile, spawn } from 'node:child_process';
1
+ import { execFile, spawn, execSync } from 'node:child_process';
2
2
  import { promisify } from 'node:util';
3
3
  import fs from 'node:fs';
4
4
  import path from 'node:path';
@@ -7,6 +7,27 @@ import { getEngine } from '../config/engine-config.js';
7
7
  import { OPENROUTER_MODELS, OPENROUTER_DEFAULT_MODEL } from '../bridge/openrouter-bridge.js';
8
8
  const execFileAsync = promisify(execFile);
9
9
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
10
+ /** Detect if running under PM2 by checking for PM2_HOME or pm2 in process tree */
11
+ function isRunningUnderPM2() {
12
+ return !!(process.env.PM_HOME || process.env.PM2_HOME || process.env._?.includes('pm2'));
13
+ }
14
+ /** Get PM2 process name for this server */
15
+ function getPM2ProcessName() {
16
+ if (!isRunningUnderPM2())
17
+ return null;
18
+ try {
19
+ const output = execSync('pm2 list --no-color -f', { encoding: 'utf-8', timeout: 5000 });
20
+ const lines = output.split('\n');
21
+ for (const line of lines) {
22
+ const match = line.match(/│\s*(\S+)\s+│\s*online\s+│/);
23
+ if (match && match[1] !== 'main') {
24
+ return match[1];
25
+ }
26
+ }
27
+ }
28
+ catch { /* ignore */ }
29
+ return null;
30
+ }
10
31
  /** Resolve the current installed version from package.json */
11
32
  function resolveCurrentVersion(envVersion) {
12
33
  // 1. Env var set by CLI (production)
@@ -224,50 +245,62 @@ export async function systemRoutes(app, opts) {
224
245
  if (!latest || !compareVersions(packageVersion, latest)) {
225
246
  return reply.send({ ok: false, message: 'Already up to date' });
226
247
  }
227
- reply.send({ ok: true, message: `Updating to ${latest}...` });
228
- // Run update and restart in background after response is sent
248
+ const pm2Name = getPM2ProcessName();
249
+ const isPm2 = !!pm2Name;
250
+ reply.send({ ok: true, message: `Updating to ${latest}...${isPm2 ? ' (via PM2)' : ''}` });
229
251
  setTimeout(async () => {
230
252
  try {
231
- const port = process.env.PORT ?? '3001';
232
- const cwd = process.cwd();
233
- const runtimeDir = path.join(cwd, '.expxagents');
234
- fs.mkdirSync(runtimeDir, { recursive: true });
235
- const logFile = path.join(runtimeDir, 'update.log');
236
- const scriptFile = path.join(runtimeDir, 'restart.sh');
237
- // Find npx absolute path so detached process can find it
238
- const { stdout: npxPath } = await execFileAsync('which', ['npx']);
239
- const npx = npxPath.trim();
240
253
  console.log(`[system] Preparing update to expxagents@${latest}...`);
241
- // Preserve DATA_DIR so the new process uses the same database
242
- const dataDir = process.env.DATA_DIR ?? '';
243
- // Write a self-contained restart script
244
- const script = [
245
- '#!/bin/sh',
246
- `LOG="${logFile}"`,
247
- '# Clear old version so the new CLI detects its own version',
248
- 'unset EXPXAGENTS_VERSION',
249
- `export DATA_DIR="${dataDir}"`,
250
- `echo "[$(date)] Starting update to expxagents@${latest}" > "$LOG"`,
251
- 'sleep 3',
252
- `echo "[$(date)] Running npx expxagents@${latest} server" >> "$LOG"`,
253
- `exec ${npx} --yes expxagents@${latest} server >> "$LOG" 2>&1`,
254
- ].join('\n');
255
- fs.writeFileSync(scriptFile, script, { mode: 0o755 });
256
- // Remove old version env var so it doesn't leak to new process
257
- const { EXPXAGENTS_VERSION: _, ...restEnv } = process.env;
258
- const cleanEnv = { ...restEnv, PORT: port };
259
- const child = spawn(scriptFile, [], {
260
- cwd,
261
- detached: true,
262
- stdio: 'ignore',
263
- env: cleanEnv,
264
- });
265
- child.unref();
266
- console.log(`[system] Restart script created at ${scriptFile}`);
267
- console.log(`[system] Log at ${logFile}`);
268
- console.log(`[system] Exiting current server...`);
269
- // Use exit code 120 to signal "update restart" — CLI won't auto-restart on non-zero codes
270
- process.exit(120);
254
+ if (isPm2) {
255
+ console.log(`[system] Running under PM2, using pm2 to update and restart...`);
256
+ const dataDir = process.env.DATA_DIR ?? '';
257
+ const script = [
258
+ '#!/bin/sh',
259
+ `export DATA_DIR="${dataDir}"`,
260
+ `export PORT="${process.env.PORT ?? '3001'}"`,
261
+ `echo "[$(date)] Updating npm package to expxagents@${latest}"`,
262
+ `npm install -g expxagents@${latest}`,
263
+ `echo "[$(date)] Restarting PM2 process..."`,
264
+ `pm2 restart ${pm2Name}`,
265
+ ].join('\n');
266
+ const runtimeDir = path.join(process.cwd(), '.expxagents');
267
+ fs.mkdirSync(runtimeDir, { recursive: true });
268
+ const scriptFile = path.join(runtimeDir, 'pm2-update.sh');
269
+ fs.writeFileSync(scriptFile, script, { mode: 0o755 });
270
+ const child = spawn(scriptFile, [], { detached: true, stdio: 'ignore' });
271
+ child.unref();
272
+ console.log(`[system] PM2 update script created, exiting...`);
273
+ process.exit(0);
274
+ }
275
+ else {
276
+ const port = process.env.PORT ?? '3001';
277
+ const cwd = process.cwd();
278
+ const runtimeDir = path.join(cwd, '.expxagents');
279
+ fs.mkdirSync(runtimeDir, { recursive: true });
280
+ const logFile = path.join(runtimeDir, 'update.log');
281
+ const scriptFile = path.join(runtimeDir, 'restart.sh');
282
+ const { stdout: npxPath } = await execFileAsync('which', ['npx']);
283
+ const npx = npxPath.trim();
284
+ const dataDir = process.env.DATA_DIR ?? '';
285
+ const script = [
286
+ '#!/bin/sh',
287
+ `LOG="${logFile}"`,
288
+ 'unset EXPXAGENTS_VERSION',
289
+ `export DATA_DIR="${dataDir}"`,
290
+ `echo "[$(date)] Starting update to expxagents@${latest}" > "$LOG"`,
291
+ 'sleep 3',
292
+ `echo "[$(date)] Running npx expxagents@${latest} server" >> "$LOG"`,
293
+ `exec ${npx} --yes expxagents@${latest} server >> "$LOG" 2>&1`,
294
+ ].join('\n');
295
+ fs.writeFileSync(scriptFile, script, { mode: 0o755 });
296
+ const { EXPXAGENTS_VERSION: _, ...restEnv } = process.env;
297
+ const cleanEnv = { ...restEnv, PORT: port };
298
+ const child = spawn(scriptFile, [], { cwd, detached: true, stdio: 'ignore', env: cleanEnv });
299
+ child.unref();
300
+ console.log(`[system] Restart script created at ${scriptFile}`);
301
+ console.log(`[system] Exiting current server...`);
302
+ process.exit(120);
303
+ }
271
304
  }
272
305
  catch (err) {
273
306
  console.error('[system] Update failed:', err);
@@ -278,11 +311,19 @@ export async function systemRoutes(app, opts) {
278
311
  app.post('/api/system/restart', {
279
312
  preHandler: [app.requireAuth],
280
313
  }, async (_request, reply) => {
281
- reply.send({ ok: true, message: 'Restarting server...' });
314
+ const pm2Name = getPM2ProcessName();
315
+ const isPm2 = !!pm2Name;
316
+ reply.send({ ok: true, message: `Restarting server...${isPm2 ? ' (via PM2)' : ''}` });
282
317
  setTimeout(() => {
283
318
  console.log('[system] Restart requested via dashboard');
284
- // Exit code 0 triggers CLI restart loop (same version)
285
- process.exit(0);
319
+ if (isPm2) {
320
+ console.log(`[system] Running under PM2, restarting process ${pm2Name}...`);
321
+ execSync(`pm2 restart ${pm2Name}`, { stdio: 'ignore' });
322
+ process.exit(0);
323
+ }
324
+ else {
325
+ process.exit(0);
326
+ }
286
327
  }, 500);
287
328
  });
288
329
  }
@@ -1 +1 @@
1
- {"version":3,"file":"system-routes.js","sourceRoot":"","sources":["../../src/api/system-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-routes.js","sourceRoot":"","sources":["../../src/api/system-routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAS/C,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AActD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAiCtD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAsB,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAqO/E"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAS/C,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AActD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAiCtD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAsB,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAyO/E"}
@@ -100,6 +100,9 @@ export async function buildApp(opts) {
100
100
  });
101
101
  // WebSocket
102
102
  const wsContext = await registerWebSocket(app, config.jwtSecret, config.squadsDir);
103
+ // Knowledge Pipeline — always created so squad outputs can be indexed
104
+ const embedder = createMockEmbedder(384);
105
+ const knowledgePipeline = new IngestPipeline(db, embedder, { max_tokens: 512, overlap: 0.2 });
103
106
  // Chat Bridge — use getter so hot-swap is reflected
104
107
  const chatHandler = new ChatHandler({
105
108
  db,
@@ -111,6 +114,7 @@ export async function buildApp(opts) {
111
114
  wsContext.broadcastToAll(message);
112
115
  },
113
116
  squadsDir: config.squadsDir,
117
+ knowledgePipeline,
114
118
  });
115
119
  wsContext.setChatHandler(chatHandler);
116
120
  // REST API for MCP server and programmatic access
@@ -126,6 +130,7 @@ export async function buildApp(opts) {
126
130
  wsContext.broadcastToAll(message);
127
131
  },
128
132
  squadsDir: config.squadsDir,
133
+ knowledgePipeline,
129
134
  });
130
135
  await app.register(webhookRoutes, { jobRunner, squadsDir: config.squadsDir });
131
136
  // Populate kill registry (jobRunner uses the shared bridge)
@@ -213,11 +218,9 @@ export async function buildApp(opts) {
213
218
  }
214
219
  });
215
220
  await watcher.ready;
216
- // Knowledge Watcher — auto-ingest files from configured paths
221
+ // Knowledge Watcher — auto-ingest files from configured paths (optional)
217
222
  let knowledgeWatcher = null;
218
223
  if (config.knowledgeWatchPaths.length > 0) {
219
- const embedder = createMockEmbedder(384);
220
- const knowledgePipeline = new IngestPipeline(db, embedder, { max_tokens: 512, overlap: 0.2 });
221
224
  knowledgeWatcher = createKnowledgeWatcher(config.knowledgeWatchPaths, knowledgePipeline);
222
225
  app.log.info({ paths: config.knowledgeWatchPaths }, 'Knowledge watcher started');
223
226
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -115,6 +115,76 @@ describe('ChatHandler', () => {
115
115
  expect(convs).toHaveLength(2);
116
116
  });
117
117
  });
118
+ describe('handleAskUserResponse', () => {
119
+ it('broadcasts chat:ask_user when onAskUser is called and resolves Promise when response arrives', async () => {
120
+ let capturedOnAskUser;
121
+ bridge.send.mockImplementation((opts) => {
122
+ capturedOnAskUser = opts.onAskUser;
123
+ });
124
+ handler.handleChatSend('myteam', 'What should I build?');
125
+ expect(capturedOnAskUser).toBeDefined();
126
+ // Simulate engine calling onAskUser
127
+ const answerPromise = capturedOnAskUser({
128
+ id: 'q-abc',
129
+ header: 'Pick one',
130
+ text: 'Which color?',
131
+ options: [{ label: 'Red', value: 'red' }],
132
+ });
133
+ // Verify broadcast was emitted
134
+ expect(broadcast).toHaveBeenCalledWith('myteam', expect.objectContaining({
135
+ type: 'chat:ask_user',
136
+ squadName: 'myteam',
137
+ questionId: expect.any(String),
138
+ header: 'Pick one',
139
+ text: 'Which color?',
140
+ options: [{ label: 'Red', value: 'red' }],
141
+ }));
142
+ // Extract the questionId that was broadcast
143
+ const askCall = broadcast.mock.calls.find(([, msg]) => msg.type === 'chat:ask_user');
144
+ const questionId = askCall[1].questionId;
145
+ // Simulate user responding via ws
146
+ handler.handleAskUserResponse('myteam', questionId, 'red');
147
+ const answer = await answerPromise;
148
+ expect(answer).toBe('red');
149
+ });
150
+ it('does nothing when handleAskUserResponse is called with unknown questionId', () => {
151
+ expect(() => {
152
+ handler.handleAskUserResponse('myteam', 'nonexistent-id', 'anything');
153
+ }).not.toThrow();
154
+ });
155
+ });
156
+ describe('knowledge ingestion', () => {
157
+ it('calls knowledgePipeline ingestText with full output when onDone fires', async () => {
158
+ const ingestText = vi.fn().mockResolvedValue(undefined);
159
+ const mockPipeline = { ingestText, ingest: vi.fn() };
160
+ const handlerWithKnowledge = new ChatHandler({
161
+ db,
162
+ bridge,
163
+ broadcast,
164
+ squadsDir: '/tmp/squads',
165
+ broadcastToAll: vi.fn(),
166
+ knowledgePipeline: mockPipeline,
167
+ });
168
+ let capturedOnDone;
169
+ bridge.send.mockImplementation((opts) => {
170
+ capturedOnDone = opts.onDone;
171
+ });
172
+ handlerWithKnowledge.handleChatSend('myteam', 'build something');
173
+ expect(capturedOnDone).toBeDefined();
174
+ capturedOnDone('This is the full squad output.');
175
+ // Allow microtasks (fire-and-forget promise) to settle
176
+ await new Promise(r => setTimeout(r, 10));
177
+ expect(ingestText).toHaveBeenCalledWith('This is the full squad output.', expect.stringContaining('chat'), expect.objectContaining({ squad_code: 'myteam', source_type: 'agent_output' }));
178
+ });
179
+ it('does not throw when knowledgePipeline is not provided', () => {
180
+ let capturedOnDone;
181
+ bridge.send.mockImplementation((opts) => {
182
+ capturedOnDone = opts.onDone;
183
+ });
184
+ handler.handleChatSend('myteam', 'build something');
185
+ expect(() => capturedOnDone('Some output')).not.toThrow();
186
+ });
187
+ });
118
188
  describe('_jarvis squad handling', () => {
119
189
  it('uses project root (parent of squadsDir) as cwd for _jarvis', () => {
120
190
  handler.handleChatSend('_jarvis', 'Hello');
@@ -1 +1 @@
1
- {"version":3,"file":"chat-handler.test.js","sourceRoot":"","sources":["../../../src/bridge/__tests__/chat-handler.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-handler.test.js","sourceRoot":"","sources":["../../../src/bridge/__tests__/chat-handler.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=opencode-bridge.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-bridge.test.d.ts","sourceRoot":"","sources":["../../../src/bridge/__tests__/opencode-bridge.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,106 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import { OpenCodeBridge } from '../opencode-bridge.js';
3
+ describe('OpenCodeBridge', () => {
4
+ let bridge;
5
+ beforeEach(() => {
6
+ bridge = new OpenCodeBridge({ baseUrl: 'http://localhost:4096', timeoutMs: 5000 });
7
+ });
8
+ it('calls onAskUser when assistant message contains tool_use question block', async () => {
9
+ const questionBlock = {
10
+ type: 'tool_use',
11
+ name: 'question',
12
+ input: {
13
+ id: 'q1',
14
+ header: 'Choose a framework',
15
+ text: 'Which frontend framework should I use?',
16
+ options: [{ label: 'React', value: 'react' }, { label: 'Vue', value: 'vue' }],
17
+ },
18
+ };
19
+ const finalBlock = { type: 'text', text: 'I will use React.' };
20
+ let callCount = 0;
21
+ const mockFetch = vi.fn(async (url, opts) => {
22
+ const u = new URL(url);
23
+ // POST /session → create
24
+ if (u.pathname === '/session' && opts?.method === 'POST' && !u.pathname.includes('message')) {
25
+ return { ok: true, status: 200, text: async () => '{"id":"ses1"}', json: async () => ({ id: 'ses1' }) };
26
+ }
27
+ // POST /session/ses1/message → send prompt or answer
28
+ if (u.pathname === '/session/ses1/message' && opts?.method === 'POST') {
29
+ return { ok: true, status: 200, text: async () => '{}', json: async () => ({}) };
30
+ }
31
+ // GET /session/ses1/message?limit=5
32
+ if (u.pathname === '/session/ses1/message' && !opts?.method) {
33
+ callCount++;
34
+ if (callCount <= 2) {
35
+ // First two polls: return question tool_use
36
+ return {
37
+ ok: true, status: 200,
38
+ text: async () => JSON.stringify([{ info: { role: 'assistant', content: [questionBlock] }, parts: [] }]),
39
+ json: async () => [{ info: { role: 'assistant', content: [questionBlock] }, parts: [] }],
40
+ };
41
+ }
42
+ // After answer sent: return final text
43
+ return {
44
+ ok: true, status: 200,
45
+ text: async () => JSON.stringify([{ info: { role: 'assistant', content: [finalBlock] }, parts: [] }]),
46
+ json: async () => [{ info: { role: 'assistant', content: [finalBlock] }, parts: [] }],
47
+ };
48
+ }
49
+ // DELETE /session/ses1
50
+ return { ok: true, status: 200, text: async () => '{}', json: async () => ({}) };
51
+ });
52
+ vi.stubGlobal('fetch', mockFetch);
53
+ const onAskUser = vi.fn().mockResolvedValue('react');
54
+ const onDone = vi.fn();
55
+ const onError = vi.fn();
56
+ const onChunk = vi.fn();
57
+ bridge.send({ prompt: 'build a UI', cwd: '/tmp', squadName: 'test', onChunk, onDone, onError, onAskUser });
58
+ // Wait for async execution
59
+ await new Promise(r => setTimeout(r, 200));
60
+ expect(onAskUser).toHaveBeenCalledWith({
61
+ id: 'q1',
62
+ header: 'Choose a framework',
63
+ text: 'Which frontend framework should I use?',
64
+ options: [{ label: 'React', value: 'react' }, { label: 'Vue', value: 'vue' }],
65
+ });
66
+ expect(onDone).toHaveBeenCalledWith('I will use React.');
67
+ expect(onError).not.toHaveBeenCalled();
68
+ vi.unstubAllGlobals();
69
+ });
70
+ it('calls onError when question tool fires but onAskUser is not provided', async () => {
71
+ const questionBlock = {
72
+ type: 'tool_use',
73
+ name: 'question',
74
+ input: { id: 'q2', header: 'Pick one', text: 'What color?', options: [] },
75
+ };
76
+ const mockFetch = vi.fn(async (url, opts) => {
77
+ const u = new URL(url);
78
+ if (u.pathname === '/session' && opts?.method === 'POST') {
79
+ return { ok: true, status: 200, text: async () => '{"id":"ses2"}', json: async () => ({ id: 'ses2' }) };
80
+ }
81
+ if (u.pathname === '/session/ses2/message' && opts?.method === 'POST') {
82
+ return { ok: true, status: 200, text: async () => '{}', json: async () => ({}) };
83
+ }
84
+ if (u.pathname === '/session/ses2/message') {
85
+ return {
86
+ ok: true, status: 200,
87
+ text: async () => JSON.stringify([{ info: { role: 'assistant', content: [questionBlock] }, parts: [] }]),
88
+ json: async () => [{ info: { role: 'assistant', content: [questionBlock] }, parts: [] }],
89
+ };
90
+ }
91
+ return { ok: true, status: 200, text: async () => '{}', json: async () => ({}) };
92
+ });
93
+ vi.stubGlobal('fetch', mockFetch);
94
+ const onDone = vi.fn();
95
+ const onError = vi.fn();
96
+ const onChunk = vi.fn();
97
+ bridge.send({ prompt: 'pick color', cwd: '/tmp', squadName: 'test2', onChunk, onDone, onError });
98
+ await new Promise(r => setTimeout(r, 200));
99
+ expect(onError).toHaveBeenCalledWith(expect.objectContaining({
100
+ message: expect.stringContaining('onAskUser'),
101
+ }));
102
+ expect(onDone).not.toHaveBeenCalled();
103
+ vi.unstubAllGlobals();
104
+ });
105
+ });
106
+ //# sourceMappingURL=opencode-bridge.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-bridge.test.js","sourceRoot":"","sources":["../../../src/bridge/__tests__/opencode-bridge.test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import type Database from 'better-sqlite3';
2
2
  import type { AgentEngine } from './engine.js';
3
+ import type { IngestPipeline } from 'expxagents-knowledge';
3
4
  export interface ChatHandlerConfig {
4
5
  db: Database.Database;
5
6
  bridge: AgentEngine | (() => AgentEngine);
6
7
  broadcast: (squadName: string, message: Record<string, unknown>) => void;
7
8
  broadcastToAll: (message: Record<string, unknown>) => void;
8
9
  squadsDir: string;
10
+ knowledgePipeline?: IngestPipeline;
9
11
  }
10
12
  export declare class ChatHandler {
11
13
  private db;
@@ -13,6 +15,8 @@ export declare class ChatHandler {
13
15
  private broadcast;
14
16
  private broadcastToAll;
15
17
  private squadsDir;
18
+ private pendingQuestions;
19
+ private knowledgePipeline?;
16
20
  constructor(config: ChatHandlerConfig);
17
21
  private get bridge();
18
22
  handleChatSend(squadName: string, message: string, files?: Array<{
@@ -21,6 +25,7 @@ export declare class ChatHandler {
21
25
  }>): void;
22
26
  handleNewConversation(squadName: string): void;
23
27
  stop(squadName: string): void;
28
+ handleAskUserResponse(squadName: string, questionId: string, answer: string): void;
24
29
  /** Read available squads from squadsDir for context injection */
25
30
  private getSquadsContext;
26
31
  /** Read ExpxAgents skill content from .claude/skills/expxagents/SKILL.md */