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.
- package/dist/cli/convoy/engine.d.ts.map +1 -1
- package/dist/cli/convoy/engine.js +47 -11
- package/dist/cli/convoy/engine.js.map +1 -1
- package/dist/cli/convoy/engine.test.js +104 -1
- package/dist/cli/convoy/engine.test.js.map +1 -1
- package/dist/cli/convoy/export.d.ts +3 -0
- package/dist/cli/convoy/export.d.ts.map +1 -0
- package/dist/cli/convoy/export.js +46 -0
- package/dist/cli/convoy/export.js.map +1 -0
- package/dist/cli/convoy/export.test.d.ts +2 -0
- package/dist/cli/convoy/export.test.d.ts.map +1 -0
- package/dist/cli/convoy/export.test.js +157 -0
- package/dist/cli/convoy/export.test.js.map +1 -0
- package/dist/cli/convoy/health.test.js +1 -0
- package/dist/cli/convoy/health.test.js.map +1 -1
- package/dist/cli/convoy/store.d.ts.map +1 -1
- package/dist/cli/convoy/store.js +8 -3
- package/dist/cli/convoy/store.js.map +1 -1
- package/dist/cli/convoy/store.test.js +83 -3
- package/dist/cli/convoy/store.test.js.map +1 -1
- package/dist/cli/convoy/types.d.ts +1 -0
- package/dist/cli/convoy/types.d.ts.map +1 -1
- package/dist/cli/dashboard.d.ts +14 -0
- package/dist/cli/dashboard.d.ts.map +1 -1
- package/dist/cli/dashboard.js +73 -36
- package/dist/cli/dashboard.js.map +1 -1
- package/dist/cli/run/adapters/index.d.ts.map +1 -1
- package/dist/cli/run/adapters/index.js +2 -1
- package/dist/cli/run/adapters/index.js.map +1 -1
- package/dist/cli/run/adapters/opencode.d.ts +16 -0
- package/dist/cli/run/adapters/opencode.d.ts.map +1 -0
- package/dist/cli/run/adapters/opencode.js +75 -0
- package/dist/cli/run/adapters/opencode.js.map +1 -0
- package/dist/cli/run/schema.d.ts.map +1 -1
- package/dist/cli/run/schema.js +11 -0
- package/dist/cli/run/schema.js.map +1 -1
- package/dist/cli/run/schema.test.js +44 -0
- package/dist/cli/run/schema.test.js.map +1 -1
- package/dist/cli/run.d.ts +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +18 -1
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/types.d.ts +3 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/cli/convoy/engine.test.ts +126 -1
- package/src/cli/convoy/engine.ts +39 -9
- package/src/cli/convoy/export.test.ts +190 -0
- package/src/cli/convoy/export.ts +52 -0
- package/src/cli/convoy/health.test.ts +1 -0
- package/src/cli/convoy/store.test.ts +89 -3
- package/src/cli/convoy/store.ts +8 -3
- package/src/cli/convoy/types.ts +1 -0
- package/src/cli/dashboard.ts +94 -42
- package/src/cli/run/adapters/index.ts +2 -1
- package/src/cli/run/adapters/opencode.ts +88 -0
- package/src/cli/run/schema.test.ts +50 -0
- package/src/cli/run/schema.ts +13 -0
- package/src/cli/run.ts +19 -1
- package/src/cli/types.ts +3 -0
- package/src/dashboard/dist/_astro/{index.Bnq19_1M.css → index.DyyaCW8L.css} +1 -1
- package/src/dashboard/dist/index.html +145 -6
- package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
- package/src/dashboard/src/pages/index.astro +160 -4
- 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"}
|
package/dist/cli/dashboard.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/cli/dashboard.js
CHANGED
|
@@ -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
|
|
86
|
-
const
|
|
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
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
168
|
-
|
|
169
|
-
console.log(
|
|
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(
|
|
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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAG7C,MAAM,UAAU,GAA2B;IACzC,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,wBAAwB;IAC/B,OAAO,EAAE,kBAAkB;IAC3B,SAAS,EAAE,sBAAsB;IACjC,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,YAAY;CACvB,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,eAAe;IACf,6DAA6D;IAC7D,iBAAiB;IACjB,oBAAoB;IACpB,eAAe;IACf,gBAAgB;IAChB,iBAAiB;CAClB,CAAA;
|
|
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;
|
|
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;
|
|
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;
|
|
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"}
|
package/dist/cli/run/schema.js
CHANGED
|
@@ -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', () => {
|