opencastle 0.16.0 → 0.18.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 (65) hide show
  1. package/dist/cli/convoy/engine.d.ts.map +1 -1
  2. package/dist/cli/convoy/engine.js +47 -11
  3. package/dist/cli/convoy/engine.js.map +1 -1
  4. package/dist/cli/convoy/engine.test.js +104 -1
  5. package/dist/cli/convoy/engine.test.js.map +1 -1
  6. package/dist/cli/convoy/export.d.ts +3 -0
  7. package/dist/cli/convoy/export.d.ts.map +1 -0
  8. package/dist/cli/convoy/export.js +46 -0
  9. package/dist/cli/convoy/export.js.map +1 -0
  10. package/dist/cli/convoy/export.test.d.ts +2 -0
  11. package/dist/cli/convoy/export.test.d.ts.map +1 -0
  12. package/dist/cli/convoy/export.test.js +157 -0
  13. package/dist/cli/convoy/export.test.js.map +1 -0
  14. package/dist/cli/convoy/health.test.js +1 -0
  15. package/dist/cli/convoy/health.test.js.map +1 -1
  16. package/dist/cli/convoy/store.d.ts.map +1 -1
  17. package/dist/cli/convoy/store.js +8 -3
  18. package/dist/cli/convoy/store.js.map +1 -1
  19. package/dist/cli/convoy/store.test.js +83 -3
  20. package/dist/cli/convoy/store.test.js.map +1 -1
  21. package/dist/cli/convoy/types.d.ts +1 -0
  22. package/dist/cli/convoy/types.d.ts.map +1 -1
  23. package/dist/cli/dashboard.d.ts +14 -0
  24. package/dist/cli/dashboard.d.ts.map +1 -1
  25. package/dist/cli/dashboard.js +73 -36
  26. package/dist/cli/dashboard.js.map +1 -1
  27. package/dist/cli/run/adapters/index.d.ts.map +1 -1
  28. package/dist/cli/run/adapters/index.js +2 -1
  29. package/dist/cli/run/adapters/index.js.map +1 -1
  30. package/dist/cli/run/adapters/opencode.d.ts +16 -0
  31. package/dist/cli/run/adapters/opencode.d.ts.map +1 -0
  32. package/dist/cli/run/adapters/opencode.js +75 -0
  33. package/dist/cli/run/adapters/opencode.js.map +1 -0
  34. package/dist/cli/run/schema.d.ts.map +1 -1
  35. package/dist/cli/run/schema.js +11 -0
  36. package/dist/cli/run/schema.js.map +1 -1
  37. package/dist/cli/run/schema.test.js +44 -0
  38. package/dist/cli/run/schema.test.js.map +1 -1
  39. package/dist/cli/run.d.ts +1 -1
  40. package/dist/cli/run.d.ts.map +1 -1
  41. package/dist/cli/run.js +18 -1
  42. package/dist/cli/run.js.map +1 -1
  43. package/dist/cli/types.d.ts +3 -0
  44. package/dist/cli/types.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/src/cli/convoy/engine.test.ts +126 -1
  47. package/src/cli/convoy/engine.ts +39 -9
  48. package/src/cli/convoy/export.test.ts +190 -0
  49. package/src/cli/convoy/export.ts +52 -0
  50. package/src/cli/convoy/health.test.ts +1 -0
  51. package/src/cli/convoy/store.test.ts +89 -3
  52. package/src/cli/convoy/store.ts +8 -3
  53. package/src/cli/convoy/types.ts +1 -0
  54. package/src/cli/dashboard.ts +94 -42
  55. package/src/cli/run/adapters/index.ts +2 -1
  56. package/src/cli/run/adapters/opencode.ts +88 -0
  57. package/src/cli/run/schema.test.ts +50 -0
  58. package/src/cli/run/schema.ts +13 -0
  59. package/src/cli/run.ts +19 -1
  60. package/src/cli/types.ts +3 -0
  61. package/src/dashboard/dist/_astro/{index.Bnq19_1M.css → index.DyyaCW8L.css} +1 -1
  62. package/src/dashboard/dist/index.html +145 -6
  63. package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
  64. package/src/dashboard/src/pages/index.astro +160 -4
  65. package/src/dashboard/src/styles/dashboard.css +60 -0
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/convoy/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAA;AAEpF,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,UAAU,GACV,SAAS,GACT,MAAM,GACN,QAAQ,GACR,WAAW,GACX,SAAS,CAAA;AAEb,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE/E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,gBAAgB,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/convoy/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAA;AAEpF,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,UAAU,GACV,SAAS,GACT,MAAM,GACN,QAAQ,GACR,WAAW,GACX,SAAS,CAAA;AAEb,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE/E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,gBAAgB,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB"}
@@ -1,3 +1,17 @@
1
+ import type { Server } from 'node:http';
1
2
  import type { CliContext } from './types.js';
3
+ export interface DashboardServerOptions {
4
+ port?: number;
5
+ openBrowser?: boolean;
6
+ seed?: boolean;
7
+ pkgRoot: string;
8
+ convoyId?: string;
9
+ }
10
+ export interface DashboardServerResult {
11
+ server: Server;
12
+ port: number;
13
+ url: string;
14
+ }
15
+ export declare function startDashboardServer(options: DashboardServerOptions): Promise<DashboardServerResult>;
2
16
  export default function dashboard({ pkgRoot, args, }: CliContext): Promise<void>;
3
17
  //# sourceMappingURL=dashboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAqG5C,wBAA8B,SAAS,CAAC,EACtC,OAAO,EACP,IAAI,GACL,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA8H5B"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmC,MAAM,EAAE,MAAM,WAAW,CAAA;AAIxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAiC5C,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AA4ED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAgGhC;AAED,wBAA8B,SAAS,CAAC,EACtC,OAAO,EACP,IAAI,GACL,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0D5B"}
@@ -16,6 +16,7 @@ const MIME_TYPES = {
16
16
  };
17
17
  const DATA_FILES = [
18
18
  'events.ndjson',
19
+ 'convoys.ndjson',
19
20
  // Legacy individual files — kept for backwards compatibility
20
21
  'sessions.ndjson',
21
22
  'delegations.ndjson',
@@ -27,6 +28,7 @@ function parseArgs(args) {
27
28
  let port = 4300;
28
29
  let openBrowser = true;
29
30
  let seed = false;
31
+ let convoyId;
30
32
  for (let i = 0; i < args.length; i++) {
31
33
  if (args[i] === '--port' && args[i + 1]) {
32
34
  port = parseInt(args[i + 1], 10);
@@ -38,8 +40,12 @@ function parseArgs(args) {
38
40
  else if (args[i] === '--seed') {
39
41
  seed = true;
40
42
  }
43
+ else if (args[i] === '--convoy' && args[i + 1]) {
44
+ convoyId = args[i + 1];
45
+ i++;
46
+ }
41
47
  }
42
- return { port, openBrowser, seed };
48
+ return { port, openBrowser, seed, convoyId };
43
49
  }
44
50
  function openUrl(url) {
45
51
  const plat = process.platform;
@@ -82,27 +88,19 @@ function tryListen(server, port, maxAttempts = 10) {
82
88
  attemptListen();
83
89
  });
84
90
  }
85
- export default async function dashboard({ pkgRoot, args, }) {
86
- const { port, openBrowser, seed } = parseArgs(args);
91
+ export async function startDashboardServer(options) {
92
+ const port = options.port ?? 4300;
93
+ const seed = options.seed ?? false;
94
+ const { pkgRoot } = options;
87
95
  const distDir = resolve(pkgRoot, 'src', 'dashboard', 'dist');
88
96
  const seedDir = resolve(pkgRoot, 'src', 'dashboard', 'seed-data');
89
97
  const projectRoot = process.cwd();
98
+ const convoyLogsDir = resolve(projectRoot, '.opencastle', 'logs');
90
99
  const logsDir = resolve(projectRoot, '.github', 'customizations', 'logs');
91
100
  // Check if dist exists
92
101
  if (!(await fileExists(distDir))) {
93
102
  throw new Error('Dashboard not built. Run "npm run dashboard:build" in the opencastle package first.');
94
103
  }
95
- // Check if any log files exist (for messaging)
96
- let hasLogs = false;
97
- if (!seed) {
98
- const checkFiles = ['events.ndjson', ...DATA_FILES];
99
- for (const f of checkFiles) {
100
- if (await fileExists(join(logsDir, f))) {
101
- hasLogs = true;
102
- break;
103
- }
104
- }
105
- }
106
104
  const server = createServer(async (req, res) => {
107
105
  try {
108
106
  const url = new URL(req.url ?? '/', `http://${req.headers.host}`);
@@ -115,22 +113,37 @@ export default async function dashboard({ pkgRoot, args, }) {
115
113
  const dataMatch = pathname.match(/^\/data\/(.+\.ndjson)$/);
116
114
  if (dataMatch && DATA_FILES.includes(dataMatch[1])) {
117
115
  const filename = dataMatch[1];
118
- let filePath;
119
116
  if (seed) {
120
- filePath = join(seedDir, filename);
121
- }
122
- else {
123
- filePath = join(logsDir, filename);
124
- }
125
- if (await fileExists(filePath)) {
126
- const content = await readFile(filePath);
127
- res.writeHead(200, { 'Content-Type': 'application/x-ndjson' });
128
- res.end(content);
117
+ const filePath = join(seedDir, filename);
118
+ if (await fileExists(filePath)) {
119
+ const content = await readFile(filePath);
120
+ res.writeHead(200, { 'Content-Type': 'application/x-ndjson' });
121
+ res.end(content);
122
+ }
123
+ else {
124
+ res.writeHead(200, { 'Content-Type': 'application/x-ndjson' });
125
+ res.end('');
126
+ }
129
127
  }
130
128
  else {
131
- // Graceful fallback empty body
129
+ const convoyPath = join(convoyLogsDir, filename);
130
+ const logsPath = join(logsDir, filename);
131
+ const inConvoy = await fileExists(convoyPath);
132
+ const inLogs = await fileExists(logsPath);
132
133
  res.writeHead(200, { 'Content-Type': 'application/x-ndjson' });
133
- res.end('');
134
+ if (inConvoy && inLogs) {
135
+ const [c1, c2] = await Promise.all([readFile(convoyPath), readFile(logsPath)]);
136
+ res.end(Buffer.concat([c1, c2]));
137
+ }
138
+ else if (inConvoy) {
139
+ res.end(await readFile(convoyPath));
140
+ }
141
+ else if (inLogs) {
142
+ res.end(await readFile(logsPath));
143
+ }
144
+ else {
145
+ res.end('');
146
+ }
134
147
  }
135
148
  return;
136
149
  }
@@ -160,30 +173,54 @@ export default async function dashboard({ pkgRoot, args, }) {
160
173
  }
161
174
  });
162
175
  const actualPort = await tryListen(server, port);
163
- const url = `http://localhost:${actualPort}`;
176
+ const resolvedUrl = `http://localhost:${actualPort}`;
177
+ return { server, port: actualPort, url: resolvedUrl };
178
+ }
179
+ export default async function dashboard({ pkgRoot, args, }) {
180
+ const { port, openBrowser, seed, convoyId } = parseArgs(args);
181
+ // Check if any log files exist (for messaging)
182
+ let hasLogs = false;
183
+ if (!seed) {
184
+ const projectRoot = process.cwd();
185
+ const logsDir = resolve(projectRoot, '.github', 'customizations', 'logs');
186
+ const checkFiles = ['events.ndjson', ...DATA_FILES];
187
+ for (const f of checkFiles) {
188
+ if (await fileExists(join(logsDir, f))) {
189
+ hasLogs = true;
190
+ break;
191
+ }
192
+ }
193
+ }
194
+ const dashResult = await startDashboardServer({ port, seed, pkgRoot, convoyId });
164
195
  console.log('');
165
196
  console.log(' \u{1F3F0} OpenCastle Dashboard');
166
197
  console.log('');
167
- console.log(` \u2192 ${url}`);
168
- if (seed) {
169
- console.log(' \u{1F4C2} Showing demo data (use without --seed to read project logs)');
170
- }
171
- else if (hasLogs) {
172
- console.log(' \u{1F4C2} Reading logs from .github/customizations/logs/');
198
+ if (convoyId) {
199
+ console.log(` \u2192 ${dashResult.url}/?convoy=${convoyId}`);
200
+ console.log(` \u{1F4C2} Watching convoy: ${convoyId}`);
173
201
  }
174
202
  else {
175
- console.log(' \u{1F4A1} No agent logs found. Run agents with OpenCastle to generate data, or use --seed for demo data.');
203
+ console.log(` \u2192 ${dashResult.url}`);
204
+ if (seed) {
205
+ console.log(' \u{1F4C2} Showing demo data (use without --seed to read project logs)');
206
+ }
207
+ else if (hasLogs) {
208
+ console.log(' \u{1F4C2} Reading logs from .github/customizations/logs/');
209
+ }
210
+ else {
211
+ console.log(' \u{1F4A1} No agent logs found. Run agents with OpenCastle to generate data, or use --seed for demo data.');
212
+ }
176
213
  }
177
214
  console.log('');
178
215
  console.log(' Press Ctrl+C to stop');
179
216
  console.log('');
180
217
  if (openBrowser) {
181
- openUrl(url);
218
+ openUrl(convoyId ? `${dashResult.url}/?convoy=${convoyId}` : dashResult.url);
182
219
  }
183
220
  // Graceful shutdown
184
221
  process.on('SIGINT', () => {
185
222
  console.log('\n Dashboard stopped.\n');
186
- server.close();
223
+ dashResult.server.close();
187
224
  process.exit(0);
188
225
  });
189
226
  // Keep the process alive
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/run/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAWlD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CASpE;AAQD;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQ5D;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,CAUzF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/run/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAYlD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CASpE;AAQD;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQ5D;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,CAUzF"}
@@ -5,6 +5,7 @@ const ADAPTERS = {
5
5
  'claude-code': () => import('./claude-code.js'),
6
6
  copilot: () => import('./copilot.js'),
7
7
  cursor: () => import('./cursor.js'),
8
+ opencode: () => import('./opencode.js'),
8
9
  };
9
10
  /**
10
11
  * Get an adapter module by name.
@@ -22,7 +23,7 @@ export async function getAdapter(name) {
22
23
  * Detection priority order — checked first-to-last.
23
24
  * The first available adapter wins.
24
25
  */
25
- const DETECTION_ORDER = ['copilot', 'claude-code', 'cursor'];
26
+ const DETECTION_ORDER = ['copilot', 'claude-code', 'cursor', 'opencode'];
26
27
  /**
27
28
  * Auto-detect which adapter CLI is available on the system.
28
29
  * Returns the adapter name or null if none found.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/run/adapters/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,QAAQ,GAAgD;IAC5D,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAA0B;IACxE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAA0B;IAC9D,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAA0B;CAC7D,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,0BAA0B,SAAS,EAAE,CAC9D,CAAA;IACH,CAAC;IACD,OAAO,MAAM,EAAE,CAAA;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAU,CAAA;AAErE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAChC,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,MAAM,GAAgD,EAAE,CAAA;IAC9D,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAA;QAC1B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,SAAS,EAAE,MAAM,GAAG,CAAC,WAAW,EAAE;SACnC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/run/adapters/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,QAAQ,GAAgD;IAC5D,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAA0B;IACxE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAA0B;IAC9D,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAA0B;IAC5D,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAA0B;CACjE,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,0BAA0B,SAAS,EAAE,CAC9D,CAAA;IACH,CAAC;IACD,OAAO,MAAM,EAAE,CAAA;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAA;AAEjF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAChC,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,MAAM,GAAgD,EAAE,CAAA;IAC9D,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAA;QAC1B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,SAAS,EAAE,MAAM,GAAG,CAAC,WAAW,EAAE;SACnC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Task, ExecuteOptions, ExecuteResult } from '../../types.js';
2
+ /** Adapter name */
3
+ export declare const name = "opencode";
4
+ /**
5
+ * Check if the `opencode` CLI is available on the system PATH.
6
+ */
7
+ export declare function isAvailable(): Promise<boolean>;
8
+ /**
9
+ * Execute a task by invoking the OpenCode CLI in headless mode.
10
+ */
11
+ export declare function execute(task: Task, options?: ExecuteOptions): Promise<ExecuteResult>;
12
+ /**
13
+ * Kill the process associated with a task (used by timeout enforcement).
14
+ */
15
+ export declare function kill(task: Task): void;
16
+ //# sourceMappingURL=opencode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../../src/cli/run/adapters/opencode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEzE,mBAAmB;AACnB,eAAO,MAAM,IAAI,aAAa,CAAA;AAE9B;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAMpD;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqD9F;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CASrC"}
@@ -0,0 +1,75 @@
1
+ import { spawn } from 'node:child_process';
2
+ /** Adapter name */
3
+ export const name = 'opencode';
4
+ /**
5
+ * Check if the `opencode` CLI is available on the system PATH.
6
+ */
7
+ export async function isAvailable() {
8
+ return new Promise((resolve) => {
9
+ const proc = spawn('which', ['opencode'], { stdio: 'pipe' });
10
+ proc.on('close', (code) => resolve(code === 0));
11
+ proc.on('error', () => resolve(false));
12
+ });
13
+ }
14
+ /**
15
+ * Execute a task by invoking the OpenCode CLI in headless mode.
16
+ */
17
+ export async function execute(task, options = {}) {
18
+ let prompt = `You are a ${task.agent}. ${task.prompt}`;
19
+ if (task.files && task.files.length > 0) {
20
+ prompt += `\n\nOnly modify files under: ${task.files.join(', ')}`;
21
+ }
22
+ const args = ['--headless', '-p', prompt];
23
+ return new Promise((resolve) => {
24
+ const proc = spawn('opencode', args, {
25
+ stdio: ['ignore', 'pipe', 'pipe'],
26
+ env: { ...process.env },
27
+ cwd: options?.cwd ?? process.cwd(),
28
+ });
29
+ let stdout = '';
30
+ let stderr = '';
31
+ proc.stdout.on('data', (chunk) => {
32
+ stdout += chunk.toString();
33
+ if (options.verbose) {
34
+ process.stdout.write(chunk);
35
+ }
36
+ });
37
+ proc.stderr.on('data', (chunk) => {
38
+ stderr += chunk.toString();
39
+ if (options.verbose) {
40
+ process.stderr.write(chunk);
41
+ }
42
+ });
43
+ proc.on('close', (code) => {
44
+ const output = [stdout, stderr].filter(Boolean).join('\n');
45
+ resolve({
46
+ success: code === 0,
47
+ output: output.slice(0, 10000), // Cap output size
48
+ exitCode: code ?? -1,
49
+ });
50
+ });
51
+ proc.on('error', (err) => {
52
+ resolve({
53
+ success: false,
54
+ output: `Failed to spawn opencode: ${err.message}`,
55
+ exitCode: -1,
56
+ });
57
+ });
58
+ // Store process ref for potential timeout kill
59
+ task._process = proc;
60
+ });
61
+ }
62
+ /**
63
+ * Kill the process associated with a task (used by timeout enforcement).
64
+ */
65
+ export function kill(task) {
66
+ if (task._process && !task._process.killed) {
67
+ task._process.kill('SIGTERM');
68
+ setTimeout(() => {
69
+ if (task._process && !task._process.killed) {
70
+ task._process.kill('SIGKILL');
71
+ }
72
+ }, 5000);
73
+ }
74
+ }
75
+ //# sourceMappingURL=opencode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../../src/cli/run/adapters/opencode.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/cli/run/schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE7D;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM/D;AAOD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASpD;AA0BD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAwK5D;AA8CD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAkCrE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAGnD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAkBxD;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAavE"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/cli/run/schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE7D;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM/D;AAOD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASpD;AA2BD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAgL5D;AA8CD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAsCrE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAGnD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAkBxD;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAavE"}
@@ -89,6 +89,9 @@ export function validateSpec(spec) {
89
89
  if (d.agent !== undefined && typeof d.agent !== 'string') {
90
90
  errors.push('`defaults.agent` must be a string');
91
91
  }
92
+ if (d.adapter !== undefined && typeof d.adapter !== 'string') {
93
+ errors.push('`defaults.adapter` must be a string');
94
+ }
92
95
  }
93
96
  }
94
97
  // gates
@@ -164,6 +167,10 @@ export function validateSpec(spec) {
164
167
  errors.push(`${prefix}: \`max_retries\` must be a non-negative integer`);
165
168
  }
166
169
  }
170
+ // adapter
171
+ if (task.adapter !== undefined && typeof task.adapter !== 'string') {
172
+ errors.push(`${prefix}: \`adapter\` must be a string`);
173
+ }
167
174
  }
168
175
  // DAG cycle detection
169
176
  if (errors.length === 0) {
@@ -245,6 +252,10 @@ export function applyDefaults(spec) {
245
252
  task.max_retries =
246
253
  d.max_retries !== undefined ? Number(d.max_retries) : 1;
247
254
  }
255
+ // adapter: task-level overrides defaults, no hardcoded fallback (convoy-level is used at runtime)
256
+ if (task.adapter === undefined && d.adapter !== undefined) {
257
+ task.adapter = d.adapter;
258
+ }
248
259
  }
249
260
  return s;
250
261
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/cli/run/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAA;AAGzC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,MAAiC,CAAA;AAC1C,CAAC;AAED,sEAAsE;AAEtE,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;AAC7C,MAAM,UAAU,GAAG,gBAAgB,CAAA;AAEnC;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC3C,IAAI,CAAC,CAAC;QAAE,OAAO,GAAG,CAAA;IAClB,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACjB,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,GAAG,GAAG,IAAI,CAAA;IACnC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,GAAG,GAAG,EAAE,GAAG,IAAI,CAAA;IACxC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAC7C,OAAO,GAAG,CAAA;AACZ,CAAC;AA0BD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa;IACxC,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,4BAA4B,CAAC,EAAE,CAAA;IACjE,CAAC;IAED,MAAM,CAAC,GAAG,IAAe,CAAA;IAEzB,OAAO;IACP,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;IACxD,CAAC;IAED,cAAc;IACd,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAED,aAAa;IACb,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAoB,CAAC,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CACT,kCAAkC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChE,CAAA;QACH,CAAC;IACH,CAAC;IAED,UAAU;IACV,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IAC3C,CAAC;IAED,UAAU;IACV,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACrF,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,WAAW;IACX,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/E,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,CAAC,QAAmC,CAAA;YAC/C,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAiB,CAAC,CAAC,EAAE,CAAC;gBACxE,MAAM,CAAC,IAAI,CACT,oEAAoE,CACrE,CAAA;YACH,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;YAClD,CAAC;YACD,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;gBAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;gBACtE,CAAC;YACH,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ;IACR,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1B,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YACvB,CAAE,CAAC,CAAC,KAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAC3D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,SAAS;IACT,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;IAC1C,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAA;QAChE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;IACjC,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IACjC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAkB,CAAA;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAA;QAE5B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,qBAAqB,CAAC,CAAA;YAC7C,SAAQ;QACV,CAAC;QAED,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,2CAA2C,CAAC,CAAA;QACnE,CAAC;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,wBAAwB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QAC1D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtB,CAAC;QAED,SAAS;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,+CAA+C,CAAC,CAAA;QACvE,CAAC;QAED,UAAU;QACV,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAiB,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,IAAI,CACT,GAAG,MAAM,+DAA+D,CACzE,CAAA;YACH,CAAC;QACH,CAAC;QAED,aAAa;QACb,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,mCAAmC,CAAC,CAAA;YAC3D,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAsB,EAAE,CAAC;oBAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;wBAC/D,MAAM,CAAC,IAAI,CACT,GAAG,MAAM,6CAA6C,GAAG,GAAG,CAC7D,CAAA;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,QAAQ;QACR,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,8BAA8B,CAAC,CAAA;QACtD,CAAC;QAED,QAAQ;QACR,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,8BAA8B,CAAC,CAAA;QACtD,CAAC;QAED,cAAc;QACd,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACnC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CACT,GAAG,MAAM,kDAAkD,CAC5D,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAqD,CAAC,CAAA;QACpF,IAAI,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;AAC/C,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,KAAmD;IACvE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAA;IACvC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IACvC,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IAEjD,SAAS,GAAG,CAAC,IAAY,EAAE,IAAc;QACvC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEf,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBACpC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAA;YACzC,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;gBAC7B,IAAI,MAAM;oBAAE,OAAO,MAAM,CAAA;YAC3B,CAAC;QACH,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACtB,IAAI,CAAC,GAAG,EAAE,CAAA;QACV,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;YACzB,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,iCAAiC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAA6B;IACzD,MAAM,CAAC,GAAG,IAA+B,CAAA;IACzC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACvE,CAAC,CAAC,UAAU,GAAI,CAAC,CAAC,UAAqB,IAAI,UAAU,CAAA;IACrD,uEAAuE;IACvE,CAAC,CAAC,OAAO,GAAI,CAAC,CAAC,OAAkB,IAAI,EAAE,CAAA;IAEvC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAuC,CAAA;IACvD,MAAM,CAAC,GACL,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ;QAC3B,CAAC,CAAE,CAAC,CAAC,QAAoC;QACzC,CAAC,CAAC,EAAE,CAAA;IACR,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK;YACP,IAAI,CAAC,KAAgB,IAAK,CAAC,CAAC,KAA4B,IAAI,WAAW,CAAA;QAC1E,IAAI,CAAC,OAAO;YACT,IAAI,CAAC,OAAkB;gBACvB,CAAC,CAAC,OAA8B;gBACjC,KAAK,CAAA;QACP,IAAI,CAAC,UAAU,GAAI,IAAI,CAAC,UAAuB,IAAI,EAAE,CAAA;QACrD,IAAI,CAAC,KAAK,GAAI,IAAI,CAAC,KAAkB,IAAI,EAAE,CAAA;QAC3C,IAAI,CAAC,WAAW,GAAI,IAAI,CAAC,WAAsB,IAAK,IAAI,CAAC,EAAa,CAAA;QACtE,+DAA+D;QAC/D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACtD,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;QACtB,CAAC;QACD,4DAA4D;QAC5D,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW;gBACd,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,CAAwB,CAAA;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa;IACxC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACnD,OAAQ,IAAgC,CAAC,OAAO,KAAK,CAAC,CAAA;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,IAA6B,CAAA;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,qBAAsB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACrE,CAAC;IAED,OAAO,aAAa,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB;IAClD,IAAI,IAAY,CAAA;IAChB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,GAAgC,CAAA;QAC1C,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAA;QAC1D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/cli/run/schema.ts"],"names":[],"mappings":"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"}
@@ -437,6 +437,24 @@ describe('validateSpec — branch field', () => {
437
437
  expect(result.errors).toContainEqual(expect.stringContaining('branch'));
438
438
  });
439
439
  });
440
+ // ── validateSpec — per-task adapter ──────────────────────────
441
+ describe('validateSpec — per-task adapter', () => {
442
+ it('task.adapter must be a string', () => {
443
+ const result = validateSpec({
444
+ name: 'test',
445
+ tasks: [{ id: 'a', prompt: 'x', adapter: 123 }],
446
+ });
447
+ expect(result.valid).toBe(false);
448
+ expect(result.errors).toContainEqual(expect.stringContaining('adapter'));
449
+ });
450
+ it('task.adapter accepts valid string', () => {
451
+ const result = validateSpec({
452
+ name: 'test',
453
+ tasks: [{ id: 'a', prompt: 'x', adapter: 'opencode' }],
454
+ });
455
+ expect(result.valid).toBe(true);
456
+ });
457
+ });
440
458
  // ── validateSpec — per-task model and max_retries ──────────────
441
459
  describe('validateSpec — per-task model and max_retries', () => {
442
460
  it('accepts valid task model string', () => {
@@ -601,6 +619,32 @@ describe('applyDefaults — convoy spec (version: 1)', () => {
601
619
  expect(spec.gates).toEqual(['npm test']);
602
620
  expect(spec.branch).toBe('feat/convoy');
603
621
  });
622
+ it('applies defaults.adapter to tasks without explicit adapter', () => {
623
+ const spec = applyDefaults({
624
+ name: 'test',
625
+ version: 1,
626
+ defaults: { adapter: 'opencode' },
627
+ tasks: [{ id: 'a', prompt: 'x' }],
628
+ });
629
+ expect(spec.tasks[0].adapter).toBe('opencode');
630
+ });
631
+ it('task-level adapter overrides defaults.adapter', () => {
632
+ const spec = applyDefaults({
633
+ name: 'test',
634
+ version: 1,
635
+ defaults: { adapter: 'opencode' },
636
+ tasks: [{ id: 'a', prompt: 'x', adapter: 'claude-code' }],
637
+ });
638
+ expect(spec.tasks[0].adapter).toBe('claude-code');
639
+ });
640
+ it('tasks without adapter remain undefined when no defaults', () => {
641
+ const spec = applyDefaults({
642
+ name: 'test',
643
+ version: 1,
644
+ tasks: [{ id: 'a', prompt: 'x' }],
645
+ });
646
+ expect(spec.tasks[0].adapter).toBeUndefined();
647
+ });
604
648
  });
605
649
  // ── applyDefaults — max_retries default always applied ─────────
606
650
  describe('applyDefaults — max_retries always applied', () => {