@verial-ai/sdk 0.1.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/index.d.ts +1 -0
- package/dist/cli/index.js +882 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/index.d.ts +493 -0
- package/dist/index.js +445 -0
- package/dist/index.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1,882 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/cli/index.ts
|
|
4
|
+
import { Command as Command13 } from "commander";
|
|
5
|
+
|
|
6
|
+
// src/cli/commands/auth.ts
|
|
7
|
+
import { Command } from "commander";
|
|
8
|
+
|
|
9
|
+
// src/cli/config.ts
|
|
10
|
+
import * as fs from "fs";
|
|
11
|
+
import * as os from "os";
|
|
12
|
+
import * as path from "path";
|
|
13
|
+
var CONFIG_DIR = path.join(os.homedir(), ".verial");
|
|
14
|
+
var CONFIG_PATH = path.join(CONFIG_DIR, "config.json");
|
|
15
|
+
function readConfig() {
|
|
16
|
+
if (!fs.existsSync(CONFIG_PATH)) return {};
|
|
17
|
+
const raw = fs.readFileSync(CONFIG_PATH, "utf-8");
|
|
18
|
+
return JSON.parse(raw);
|
|
19
|
+
}
|
|
20
|
+
function writeConfig(config) {
|
|
21
|
+
if (!fs.existsSync(CONFIG_DIR)) {
|
|
22
|
+
fs.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
23
|
+
}
|
|
24
|
+
fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2), "utf-8");
|
|
25
|
+
}
|
|
26
|
+
function getApiKey() {
|
|
27
|
+
return process.env.VERIAL_API_KEY ?? readConfig().apiKey;
|
|
28
|
+
}
|
|
29
|
+
function getBaseUrl() {
|
|
30
|
+
return process.env.VERIAL_API_URL ?? readConfig().baseUrl ?? "https://api.verial.ai";
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// src/cli/commands/auth.ts
|
|
34
|
+
var authCommand = new Command("auth").description(
|
|
35
|
+
"Manage authentication"
|
|
36
|
+
);
|
|
37
|
+
authCommand.command("set-key <key>").description("Store API key in ~/.verial/config.json").action((key) => {
|
|
38
|
+
writeConfig({ apiKey: key });
|
|
39
|
+
console.log("API key saved.");
|
|
40
|
+
});
|
|
41
|
+
authCommand.command("status").description("Check if API key is configured").action(() => {
|
|
42
|
+
const key = getApiKey();
|
|
43
|
+
if (key) {
|
|
44
|
+
console.log(
|
|
45
|
+
`Authenticated (key: ${key.slice(0, 8)}...${key.slice(-4)})`
|
|
46
|
+
);
|
|
47
|
+
} else {
|
|
48
|
+
console.log("No API key configured. Run: verial auth set-key <key>");
|
|
49
|
+
process.exitCode = 1;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
// src/cli/commands/benchmarks.ts
|
|
54
|
+
import { Command as Command2 } from "commander";
|
|
55
|
+
|
|
56
|
+
// src/cli/format.ts
|
|
57
|
+
function output(data, json) {
|
|
58
|
+
console.log(JSON.stringify(data, null, json || !process.stdout.isTTY ? 2 : 2));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// src/errors.ts
|
|
62
|
+
var VerialError = class extends Error {
|
|
63
|
+
constructor(message) {
|
|
64
|
+
super(message);
|
|
65
|
+
this.name = "VerialError";
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
var VerialApiError = class extends VerialError {
|
|
69
|
+
status;
|
|
70
|
+
code;
|
|
71
|
+
details;
|
|
72
|
+
constructor(status, code, message, details) {
|
|
73
|
+
super(message);
|
|
74
|
+
this.name = "VerialApiError";
|
|
75
|
+
this.status = status;
|
|
76
|
+
this.code = code;
|
|
77
|
+
this.details = details;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
// src/client.ts
|
|
82
|
+
var VerialClient = class {
|
|
83
|
+
baseUrl;
|
|
84
|
+
apiKey;
|
|
85
|
+
constructor(config) {
|
|
86
|
+
if (!config.apiKey) {
|
|
87
|
+
throw new VerialError("API key is required");
|
|
88
|
+
}
|
|
89
|
+
this.apiKey = config.apiKey;
|
|
90
|
+
this.baseUrl = config.baseUrl ?? "https://api.verial.ai";
|
|
91
|
+
}
|
|
92
|
+
async get(path2, query) {
|
|
93
|
+
return this.request("GET", path2, void 0, query);
|
|
94
|
+
}
|
|
95
|
+
async post(path2, body) {
|
|
96
|
+
return this.request("POST", path2, body);
|
|
97
|
+
}
|
|
98
|
+
async patch(path2, body) {
|
|
99
|
+
return this.request("PATCH", path2, body);
|
|
100
|
+
}
|
|
101
|
+
async delete(path2) {
|
|
102
|
+
return this.request("DELETE", path2);
|
|
103
|
+
}
|
|
104
|
+
async request(method, path2, body, query) {
|
|
105
|
+
let url = `${this.baseUrl}${path2}`;
|
|
106
|
+
if (query) {
|
|
107
|
+
const params = new URLSearchParams();
|
|
108
|
+
for (const [k, v] of Object.entries(query)) {
|
|
109
|
+
if (v !== void 0) params.set(k, v);
|
|
110
|
+
}
|
|
111
|
+
const qs = params.toString();
|
|
112
|
+
if (qs) url += `?${qs}`;
|
|
113
|
+
}
|
|
114
|
+
const headers = {
|
|
115
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
116
|
+
"Content-Type": "application/json"
|
|
117
|
+
};
|
|
118
|
+
const res = await fetch(url, {
|
|
119
|
+
method,
|
|
120
|
+
headers,
|
|
121
|
+
body: body ? JSON.stringify(body) : void 0
|
|
122
|
+
});
|
|
123
|
+
if (!res.ok) {
|
|
124
|
+
const err = await res.json().catch(() => ({}));
|
|
125
|
+
throw new VerialApiError(
|
|
126
|
+
res.status,
|
|
127
|
+
err.code ?? "UNKNOWN",
|
|
128
|
+
err.error ?? res.statusText,
|
|
129
|
+
err.details
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
return res.json();
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
// src/resources/benchmarks.ts
|
|
137
|
+
var Benchmarks = class {
|
|
138
|
+
constructor(client) {
|
|
139
|
+
this.client = client;
|
|
140
|
+
}
|
|
141
|
+
async list(options = {}) {
|
|
142
|
+
return this.client.get("/benchmarks", {
|
|
143
|
+
cursor: options.cursor,
|
|
144
|
+
limit: options.limit?.toString()
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
async create(options) {
|
|
148
|
+
return this.client.post("/benchmarks", {
|
|
149
|
+
name: options.name,
|
|
150
|
+
environment_id: options.environmentId,
|
|
151
|
+
timeout: options.timeout,
|
|
152
|
+
concurrency: options.concurrency
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
async get(options) {
|
|
156
|
+
return this.client.get(`/benchmarks/${options.id}`);
|
|
157
|
+
}
|
|
158
|
+
async update(options) {
|
|
159
|
+
const { id, ...body } = options;
|
|
160
|
+
return this.client.patch(`/benchmarks/${id}`, body);
|
|
161
|
+
}
|
|
162
|
+
async delete(options) {
|
|
163
|
+
return this.client.delete(`/benchmarks/${options.id}`);
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
// src/resources/datasets.ts
|
|
168
|
+
var Datasets = class {
|
|
169
|
+
constructor(client) {
|
|
170
|
+
this.client = client;
|
|
171
|
+
}
|
|
172
|
+
async list(options = {}) {
|
|
173
|
+
return this.client.get("/datasets", {
|
|
174
|
+
cursor: options.cursor,
|
|
175
|
+
limit: options.limit?.toString()
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
async create(options) {
|
|
179
|
+
return this.client.post("/datasets", options);
|
|
180
|
+
}
|
|
181
|
+
async get(options) {
|
|
182
|
+
return this.client.get(`/datasets/${options.id}`);
|
|
183
|
+
}
|
|
184
|
+
async update(options) {
|
|
185
|
+
const { id, ...body } = options;
|
|
186
|
+
return this.client.patch(`/datasets/${id}`, body);
|
|
187
|
+
}
|
|
188
|
+
async delete(options) {
|
|
189
|
+
return this.client.delete(`/datasets/${options.id}`);
|
|
190
|
+
}
|
|
191
|
+
async generate(options) {
|
|
192
|
+
return this.client.post(`/datasets/${options.id}/generate`, {
|
|
193
|
+
prompt: options.prompt
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
// src/resources/environments.ts
|
|
199
|
+
var Environments = class {
|
|
200
|
+
constructor(client) {
|
|
201
|
+
this.client = client;
|
|
202
|
+
}
|
|
203
|
+
async list(options = {}) {
|
|
204
|
+
return this.client.get("/environments", {
|
|
205
|
+
cursor: options.cursor,
|
|
206
|
+
limit: options.limit?.toString()
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
async create(options) {
|
|
210
|
+
return this.client.post("/environments", {
|
|
211
|
+
name: options.name,
|
|
212
|
+
template_id: options.templateId
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
async get(options) {
|
|
216
|
+
return this.client.get(`/environments/${options.id}`);
|
|
217
|
+
}
|
|
218
|
+
async update(options) {
|
|
219
|
+
const { id, ...body } = options;
|
|
220
|
+
return this.client.patch(`/environments/${id}`, body);
|
|
221
|
+
}
|
|
222
|
+
async delete(options) {
|
|
223
|
+
return this.client.delete(`/environments/${options.id}`);
|
|
224
|
+
}
|
|
225
|
+
async addSimulator(options) {
|
|
226
|
+
return this.client.post(
|
|
227
|
+
`/environments/${options.environmentId}/simulators/${options.simulatorId}`
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
async removeSimulator(options) {
|
|
231
|
+
return this.client.delete(
|
|
232
|
+
`/environments/${options.environmentId}/simulators/${options.simulatorId}`
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
// src/resources/eval-runs.ts
|
|
238
|
+
var EvalRuns = class {
|
|
239
|
+
constructor(client) {
|
|
240
|
+
this.client = client;
|
|
241
|
+
}
|
|
242
|
+
async list(options) {
|
|
243
|
+
return this.client.get("/eval-runs", {
|
|
244
|
+
taskRunId: options.taskRunId,
|
|
245
|
+
cursor: options.cursor,
|
|
246
|
+
limit: options.limit?.toString()
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
async get(options) {
|
|
250
|
+
return this.client.get(`/eval-runs/${options.id}`);
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
// src/resources/evals.ts
|
|
255
|
+
var Evals = class {
|
|
256
|
+
constructor(client) {
|
|
257
|
+
this.client = client;
|
|
258
|
+
}
|
|
259
|
+
async list(options) {
|
|
260
|
+
return this.client.get("/evals", {
|
|
261
|
+
taskId: options.taskId,
|
|
262
|
+
cursor: options.cursor,
|
|
263
|
+
limit: options.limit?.toString()
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
async create(options) {
|
|
267
|
+
return this.client.post("/evals", {
|
|
268
|
+
task_id: options.taskId,
|
|
269
|
+
label: options.label,
|
|
270
|
+
assert: options.assert,
|
|
271
|
+
weight: options.weight
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
async get(options) {
|
|
275
|
+
return this.client.get(`/evals/${options.id}`);
|
|
276
|
+
}
|
|
277
|
+
async update(options) {
|
|
278
|
+
const { id, ...body } = options;
|
|
279
|
+
return this.client.patch(`/evals/${id}`, body);
|
|
280
|
+
}
|
|
281
|
+
async delete(options) {
|
|
282
|
+
return this.client.delete(`/evals/${options.id}`);
|
|
283
|
+
}
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
// src/resources/playgrounds.ts
|
|
287
|
+
var Playgrounds = class {
|
|
288
|
+
constructor(client) {
|
|
289
|
+
this.client = client;
|
|
290
|
+
}
|
|
291
|
+
async list(options = {}) {
|
|
292
|
+
return this.client.get("/playgrounds", {
|
|
293
|
+
cursor: options.cursor,
|
|
294
|
+
limit: options.limit?.toString()
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
async create(options) {
|
|
298
|
+
return this.client.post("/playgrounds", {
|
|
299
|
+
environment_id: options.environmentId
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
async get(options) {
|
|
303
|
+
return this.client.get(`/playgrounds/${options.id}`);
|
|
304
|
+
}
|
|
305
|
+
async teardown(options) {
|
|
306
|
+
return this.client.post(`/playgrounds/${options.id}/teardown`);
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
// src/resources/runs.ts
|
|
311
|
+
var Runs = class {
|
|
312
|
+
constructor(client) {
|
|
313
|
+
this.client = client;
|
|
314
|
+
}
|
|
315
|
+
async list(options = {}) {
|
|
316
|
+
return this.client.get("/runs", {
|
|
317
|
+
cursor: options.cursor,
|
|
318
|
+
limit: options.limit?.toString()
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
async create(options) {
|
|
322
|
+
return this.client.post("/runs", {
|
|
323
|
+
benchmark_id: options.benchmarkId
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
async get(options) {
|
|
327
|
+
return this.client.get(`/runs/${options.id}`);
|
|
328
|
+
}
|
|
329
|
+
async complete(options) {
|
|
330
|
+
return this.client.post(`/runs/${options.id}/complete`);
|
|
331
|
+
}
|
|
332
|
+
async cancel(options) {
|
|
333
|
+
return this.client.post(`/runs/${options.id}/cancel`);
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
|
|
337
|
+
// src/resources/sandboxes.ts
|
|
338
|
+
var Sandboxes = class {
|
|
339
|
+
constructor(client) {
|
|
340
|
+
this.client = client;
|
|
341
|
+
}
|
|
342
|
+
async list(options = {}) {
|
|
343
|
+
return this.client.get("/sandboxes", {
|
|
344
|
+
playgroundId: options.playgroundId,
|
|
345
|
+
cursor: options.cursor,
|
|
346
|
+
limit: options.limit?.toString()
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
async create(options) {
|
|
350
|
+
return this.client.post("/sandboxes", {
|
|
351
|
+
simulator_id: options.simulatorId
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
async get(options) {
|
|
355
|
+
return this.client.get(`/sandboxes/${options.id}`);
|
|
356
|
+
}
|
|
357
|
+
async listEvents(options) {
|
|
358
|
+
return this.client.get(`/sandboxes/${options.id}/events`, {
|
|
359
|
+
cursor: options.cursor,
|
|
360
|
+
limit: options.limit?.toString()
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
async teardown(options) {
|
|
364
|
+
return this.client.post(`/sandboxes/${options.id}/teardown`);
|
|
365
|
+
}
|
|
366
|
+
async addDataset(options) {
|
|
367
|
+
return this.client.post(
|
|
368
|
+
`/sandboxes/${options.sandboxId}/datasets/${options.datasetId}`
|
|
369
|
+
);
|
|
370
|
+
}
|
|
371
|
+
async removeDataset(options) {
|
|
372
|
+
return this.client.delete(
|
|
373
|
+
`/sandboxes/${options.sandboxId}/datasets/${options.datasetId}`
|
|
374
|
+
);
|
|
375
|
+
}
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
// src/resources/simulators.ts
|
|
379
|
+
var Simulators = class {
|
|
380
|
+
constructor(client) {
|
|
381
|
+
this.client = client;
|
|
382
|
+
}
|
|
383
|
+
async list(options = {}) {
|
|
384
|
+
return this.client.get("/simulators", {
|
|
385
|
+
environmentId: options.environmentId,
|
|
386
|
+
cursor: options.cursor,
|
|
387
|
+
limit: options.limit?.toString()
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
async create(options) {
|
|
391
|
+
return this.client.post("/simulators", options);
|
|
392
|
+
}
|
|
393
|
+
async get(options) {
|
|
394
|
+
return this.client.get(`/simulators/${options.id}`);
|
|
395
|
+
}
|
|
396
|
+
async update(options) {
|
|
397
|
+
const { id, ...body } = options;
|
|
398
|
+
return this.client.patch(`/simulators/${id}`, body);
|
|
399
|
+
}
|
|
400
|
+
async delete(options) {
|
|
401
|
+
return this.client.delete(`/simulators/${options.id}`);
|
|
402
|
+
}
|
|
403
|
+
async generateConfig(options) {
|
|
404
|
+
return this.client.post(`/simulators/${options.id}/config/generate`, {
|
|
405
|
+
prompt: options.prompt
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
async generateData(options) {
|
|
409
|
+
return this.client.post(`/simulators/${options.id}/data/generate`, {
|
|
410
|
+
seed: options.seed
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
};
|
|
414
|
+
|
|
415
|
+
// src/resources/task-runs.ts
|
|
416
|
+
var TaskRuns = class {
|
|
417
|
+
constructor(client) {
|
|
418
|
+
this.client = client;
|
|
419
|
+
}
|
|
420
|
+
async list(options) {
|
|
421
|
+
return this.client.get("/task-runs", {
|
|
422
|
+
runId: options.runId,
|
|
423
|
+
cursor: options.cursor,
|
|
424
|
+
limit: options.limit?.toString()
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
async get(options) {
|
|
428
|
+
return this.client.get(`/task-runs/${options.id}`);
|
|
429
|
+
}
|
|
430
|
+
async complete(options) {
|
|
431
|
+
return this.client.post(`/task-runs/${options.id}/complete`);
|
|
432
|
+
}
|
|
433
|
+
async cancel(options) {
|
|
434
|
+
return this.client.post(`/task-runs/${options.id}/cancel`);
|
|
435
|
+
}
|
|
436
|
+
};
|
|
437
|
+
|
|
438
|
+
// src/resources/tasks.ts
|
|
439
|
+
var Tasks = class {
|
|
440
|
+
constructor(client) {
|
|
441
|
+
this.client = client;
|
|
442
|
+
}
|
|
443
|
+
async list(options) {
|
|
444
|
+
return this.client.get("/tasks", {
|
|
445
|
+
benchmarkId: options.benchmarkId,
|
|
446
|
+
cursor: options.cursor,
|
|
447
|
+
limit: options.limit?.toString()
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
async create(options) {
|
|
451
|
+
return this.client.post("/tasks", {
|
|
452
|
+
benchmark_id: options.benchmarkId,
|
|
453
|
+
name: options.name,
|
|
454
|
+
instruction: options.instruction,
|
|
455
|
+
timeout: options.timeout,
|
|
456
|
+
trigger: options.trigger,
|
|
457
|
+
tags: options.tags
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
async get(options) {
|
|
461
|
+
return this.client.get(`/tasks/${options.id}`);
|
|
462
|
+
}
|
|
463
|
+
async update(options) {
|
|
464
|
+
const { id, ...body } = options;
|
|
465
|
+
return this.client.patch(`/tasks/${id}`, body);
|
|
466
|
+
}
|
|
467
|
+
async delete(options) {
|
|
468
|
+
return this.client.delete(`/tasks/${options.id}`);
|
|
469
|
+
}
|
|
470
|
+
};
|
|
471
|
+
|
|
472
|
+
// src/index.ts
|
|
473
|
+
var Verial = class {
|
|
474
|
+
environments;
|
|
475
|
+
simulators;
|
|
476
|
+
datasets;
|
|
477
|
+
benchmarks;
|
|
478
|
+
tasks;
|
|
479
|
+
evals;
|
|
480
|
+
playgrounds;
|
|
481
|
+
sandboxes;
|
|
482
|
+
runs;
|
|
483
|
+
taskRuns;
|
|
484
|
+
evalRuns;
|
|
485
|
+
constructor(config) {
|
|
486
|
+
const client = new VerialClient(config);
|
|
487
|
+
this.environments = new Environments(client);
|
|
488
|
+
this.simulators = new Simulators(client);
|
|
489
|
+
this.datasets = new Datasets(client);
|
|
490
|
+
this.benchmarks = new Benchmarks(client);
|
|
491
|
+
this.tasks = new Tasks(client);
|
|
492
|
+
this.evals = new Evals(client);
|
|
493
|
+
this.playgrounds = new Playgrounds(client);
|
|
494
|
+
this.sandboxes = new Sandboxes(client);
|
|
495
|
+
this.runs = new Runs(client);
|
|
496
|
+
this.taskRuns = new TaskRuns(client);
|
|
497
|
+
this.evalRuns = new EvalRuns(client);
|
|
498
|
+
}
|
|
499
|
+
};
|
|
500
|
+
|
|
501
|
+
// src/cli/commands/helpers.ts
|
|
502
|
+
function getClient() {
|
|
503
|
+
const apiKey = getApiKey();
|
|
504
|
+
if (!apiKey) {
|
|
505
|
+
console.error("No API key. Run: verial auth set-key <key>");
|
|
506
|
+
process.exit(1);
|
|
507
|
+
}
|
|
508
|
+
return new Verial({ apiKey, baseUrl: getBaseUrl() });
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
// src/cli/commands/benchmarks.ts
|
|
512
|
+
var benchmarksCommand = new Command2("benchmarks").description(
|
|
513
|
+
"Manage benchmarks"
|
|
514
|
+
);
|
|
515
|
+
benchmarksCommand.command("list").option("--json", "Output as JSON").action(async (opts) => {
|
|
516
|
+
const result = await getClient().benchmarks.list();
|
|
517
|
+
output(result, opts.json);
|
|
518
|
+
});
|
|
519
|
+
benchmarksCommand.command("create").requiredOption("--name <name>", "Benchmark name").requiredOption("--environment-id <id>", "Environment ID").option("--timeout <seconds>", "Task timeout", parseInt).option("--concurrency <n>", "Max parallel tasks", parseInt).option("--json", "Output as JSON").action(async (opts) => {
|
|
520
|
+
const result = await getClient().benchmarks.create({
|
|
521
|
+
name: opts.name,
|
|
522
|
+
environmentId: opts.environmentId,
|
|
523
|
+
timeout: opts.timeout,
|
|
524
|
+
concurrency: opts.concurrency
|
|
525
|
+
});
|
|
526
|
+
output(result, opts.json);
|
|
527
|
+
});
|
|
528
|
+
benchmarksCommand.command("get").requiredOption("--id <id>", "Benchmark ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
529
|
+
const result = await getClient().benchmarks.get({ id: opts.id });
|
|
530
|
+
output(result, opts.json);
|
|
531
|
+
});
|
|
532
|
+
benchmarksCommand.command("delete").requiredOption("--id <id>", "Benchmark ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
533
|
+
const result = await getClient().benchmarks.delete({ id: opts.id });
|
|
534
|
+
output(result, opts.json);
|
|
535
|
+
});
|
|
536
|
+
|
|
537
|
+
// src/cli/commands/datasets.ts
|
|
538
|
+
import { Command as Command3 } from "commander";
|
|
539
|
+
var datasetsCommand = new Command3("datasets").description(
|
|
540
|
+
"Manage datasets"
|
|
541
|
+
);
|
|
542
|
+
datasetsCommand.command("list").option("--json", "Output as JSON").action(async (opts) => {
|
|
543
|
+
const result = await getClient().datasets.list();
|
|
544
|
+
output(result, opts.json);
|
|
545
|
+
});
|
|
546
|
+
datasetsCommand.command("create").requiredOption("--name <name>", "Dataset name").option("--json", "Output as JSON").action(async (opts) => {
|
|
547
|
+
const result = await getClient().datasets.create({ name: opts.name });
|
|
548
|
+
output(result, opts.json);
|
|
549
|
+
});
|
|
550
|
+
datasetsCommand.command("get").requiredOption("--id <id>", "Dataset ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
551
|
+
const result = await getClient().datasets.get({ id: opts.id });
|
|
552
|
+
output(result, opts.json);
|
|
553
|
+
});
|
|
554
|
+
datasetsCommand.command("delete").requiredOption("--id <id>", "Dataset ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
555
|
+
const result = await getClient().datasets.delete({ id: opts.id });
|
|
556
|
+
output(result, opts.json);
|
|
557
|
+
});
|
|
558
|
+
datasetsCommand.command("generate").requiredOption("--id <id>", "Dataset ID").requiredOption("--prompt <prompt>", "Natural language prompt").option("--json", "Output as JSON").action(async (opts) => {
|
|
559
|
+
const result = await getClient().datasets.generate({
|
|
560
|
+
id: opts.id,
|
|
561
|
+
prompt: opts.prompt
|
|
562
|
+
});
|
|
563
|
+
output(result, opts.json);
|
|
564
|
+
});
|
|
565
|
+
|
|
566
|
+
// src/cli/commands/environments.ts
|
|
567
|
+
import { Command as Command4 } from "commander";
|
|
568
|
+
var environmentsCommand = new Command4("environments").description(
|
|
569
|
+
"Manage environments"
|
|
570
|
+
);
|
|
571
|
+
environmentsCommand.command("list").option("--json", "Output as JSON").action(async (opts) => {
|
|
572
|
+
const result = await getClient().environments.list();
|
|
573
|
+
output(result, opts.json);
|
|
574
|
+
});
|
|
575
|
+
environmentsCommand.command("create").requiredOption("--name <name>", "Environment name").option("--template-id <id>", "Template ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
576
|
+
const result = await getClient().environments.create({
|
|
577
|
+
name: opts.name,
|
|
578
|
+
templateId: opts.templateId
|
|
579
|
+
});
|
|
580
|
+
output(result, opts.json);
|
|
581
|
+
});
|
|
582
|
+
environmentsCommand.command("get").requiredOption("--id <id>", "Environment ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
583
|
+
const result = await getClient().environments.get({ id: opts.id });
|
|
584
|
+
output(result, opts.json);
|
|
585
|
+
});
|
|
586
|
+
environmentsCommand.command("update").requiredOption("--id <id>", "Environment ID").option("--name <name>", "New name").option("--description <desc>", "New description").option("--json", "Output as JSON").action(async (opts) => {
|
|
587
|
+
const result = await getClient().environments.update({
|
|
588
|
+
id: opts.id,
|
|
589
|
+
name: opts.name,
|
|
590
|
+
description: opts.description
|
|
591
|
+
});
|
|
592
|
+
output(result, opts.json);
|
|
593
|
+
});
|
|
594
|
+
environmentsCommand.command("delete").requiredOption("--id <id>", "Environment ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
595
|
+
const result = await getClient().environments.delete({ id: opts.id });
|
|
596
|
+
output(result, opts.json);
|
|
597
|
+
});
|
|
598
|
+
environmentsCommand.command("add-simulator").requiredOption("--environment-id <id>", "Environment ID").requiredOption("--simulator-id <id>", "Simulator ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
599
|
+
const result = await getClient().environments.addSimulator({
|
|
600
|
+
environmentId: opts.environmentId,
|
|
601
|
+
simulatorId: opts.simulatorId
|
|
602
|
+
});
|
|
603
|
+
output(result, opts.json);
|
|
604
|
+
});
|
|
605
|
+
environmentsCommand.command("remove-simulator").requiredOption("--environment-id <id>", "Environment ID").requiredOption("--simulator-id <id>", "Simulator ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
606
|
+
const result = await getClient().environments.removeSimulator({
|
|
607
|
+
environmentId: opts.environmentId,
|
|
608
|
+
simulatorId: opts.simulatorId
|
|
609
|
+
});
|
|
610
|
+
output(result, opts.json);
|
|
611
|
+
});
|
|
612
|
+
|
|
613
|
+
// src/cli/commands/eval-runs.ts
|
|
614
|
+
import { Command as Command5 } from "commander";
|
|
615
|
+
var evalRunsCommand = new Command5("eval-runs").description(
|
|
616
|
+
"View eval runs"
|
|
617
|
+
);
|
|
618
|
+
evalRunsCommand.command("list").requiredOption("--task-run-id <id>", "Task run ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
619
|
+
const result = await getClient().evalRuns.list({
|
|
620
|
+
taskRunId: opts.taskRunId
|
|
621
|
+
});
|
|
622
|
+
output(result, opts.json);
|
|
623
|
+
});
|
|
624
|
+
evalRunsCommand.command("get").requiredOption("--id <id>", "Eval run ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
625
|
+
const result = await getClient().evalRuns.get({ id: opts.id });
|
|
626
|
+
output(result, opts.json);
|
|
627
|
+
});
|
|
628
|
+
|
|
629
|
+
// src/cli/commands/evals.ts
|
|
630
|
+
import { Command as Command6 } from "commander";
|
|
631
|
+
var evalsCommand = new Command6("evals").description("Manage evals");
|
|
632
|
+
evalsCommand.command("list").requiredOption("--task-id <id>", "Task ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
633
|
+
const result = await getClient().evals.list({ taskId: opts.taskId });
|
|
634
|
+
output(result, opts.json);
|
|
635
|
+
});
|
|
636
|
+
evalsCommand.command("create").requiredOption("--task-id <id>", "Task ID").requiredOption("--label <label>", "Eval label").requiredOption("--assert <assert>", "Assertion criteria").option("--weight <n>", "Score weight", parseFloat).option("--json", "Output as JSON").action(async (opts) => {
|
|
637
|
+
const result = await getClient().evals.create({
|
|
638
|
+
taskId: opts.taskId,
|
|
639
|
+
label: opts.label,
|
|
640
|
+
assert: opts.assert,
|
|
641
|
+
weight: opts.weight
|
|
642
|
+
});
|
|
643
|
+
output(result, opts.json);
|
|
644
|
+
});
|
|
645
|
+
evalsCommand.command("get").requiredOption("--id <id>", "Eval ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
646
|
+
const result = await getClient().evals.get({ id: opts.id });
|
|
647
|
+
output(result, opts.json);
|
|
648
|
+
});
|
|
649
|
+
evalsCommand.command("delete").requiredOption("--id <id>", "Eval ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
650
|
+
const result = await getClient().evals.delete({ id: opts.id });
|
|
651
|
+
output(result, opts.json);
|
|
652
|
+
});
|
|
653
|
+
|
|
654
|
+
// src/cli/commands/playgrounds.ts
|
|
655
|
+
import { Command as Command7 } from "commander";
|
|
656
|
+
var playgroundsCommand = new Command7("playgrounds").description(
|
|
657
|
+
"Manage playgrounds"
|
|
658
|
+
);
|
|
659
|
+
playgroundsCommand.command("list").option("--json", "Output as JSON").action(async (opts) => {
|
|
660
|
+
const result = await getClient().playgrounds.list();
|
|
661
|
+
output(result, opts.json);
|
|
662
|
+
});
|
|
663
|
+
playgroundsCommand.command("create").requiredOption("--environment-id <id>", "Environment ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
664
|
+
const result = await getClient().playgrounds.create({
|
|
665
|
+
environmentId: opts.environmentId
|
|
666
|
+
});
|
|
667
|
+
output(result, opts.json);
|
|
668
|
+
});
|
|
669
|
+
playgroundsCommand.command("get").requiredOption("--id <id>", "Playground ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
670
|
+
const result = await getClient().playgrounds.get({ id: opts.id });
|
|
671
|
+
output(result, opts.json);
|
|
672
|
+
});
|
|
673
|
+
playgroundsCommand.command("teardown").requiredOption("--id <id>", "Playground ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
674
|
+
const result = await getClient().playgrounds.teardown({ id: opts.id });
|
|
675
|
+
output(result, opts.json);
|
|
676
|
+
});
|
|
677
|
+
|
|
678
|
+
// src/cli/commands/runs.ts
|
|
679
|
+
import { Command as Command8 } from "commander";
|
|
680
|
+
var runsCommand = new Command8("runs").description(
|
|
681
|
+
"Manage benchmark runs"
|
|
682
|
+
);
|
|
683
|
+
runsCommand.command("list").option("--json", "Output as JSON").action(async (opts) => {
|
|
684
|
+
const result = await getClient().runs.list();
|
|
685
|
+
output(result, opts.json);
|
|
686
|
+
});
|
|
687
|
+
runsCommand.command("create").requiredOption("--benchmark-id <id>", "Benchmark ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
688
|
+
const result = await getClient().runs.create({
|
|
689
|
+
benchmarkId: opts.benchmarkId
|
|
690
|
+
});
|
|
691
|
+
output(result, opts.json);
|
|
692
|
+
});
|
|
693
|
+
runsCommand.command("get").requiredOption("--id <id>", "Run ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
694
|
+
const result = await getClient().runs.get({ id: opts.id });
|
|
695
|
+
output(result, opts.json);
|
|
696
|
+
});
|
|
697
|
+
runsCommand.command("complete").requiredOption("--id <id>", "Run ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
698
|
+
const result = await getClient().runs.complete({ id: opts.id });
|
|
699
|
+
output(result, opts.json);
|
|
700
|
+
});
|
|
701
|
+
runsCommand.command("cancel").requiredOption("--id <id>", "Run ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
702
|
+
const result = await getClient().runs.cancel({ id: opts.id });
|
|
703
|
+
output(result, opts.json);
|
|
704
|
+
});
|
|
705
|
+
runsCommand.command("wait").requiredOption("--id <id>", "Run ID").option("--interval <seconds>", "Poll interval", "5").option("--timeout <seconds>", "Max wait time", "600").option("--json", "Output as JSON").action(async (opts) => {
|
|
706
|
+
const client = getClient();
|
|
707
|
+
const interval = parseInt(opts.interval, 10) * 1e3;
|
|
708
|
+
const timeout = parseInt(opts.timeout, 10) * 1e3;
|
|
709
|
+
const start = Date.now();
|
|
710
|
+
while (Date.now() - start < timeout) {
|
|
711
|
+
const run = await client.runs.get({ id: opts.id });
|
|
712
|
+
if (run.status !== "active") {
|
|
713
|
+
output(run, opts.json);
|
|
714
|
+
process.exitCode = run.verdict === "pass" ? 0 : 1;
|
|
715
|
+
return;
|
|
716
|
+
}
|
|
717
|
+
await new Promise((r) => setTimeout(r, interval));
|
|
718
|
+
}
|
|
719
|
+
console.error("Timeout waiting for run to complete");
|
|
720
|
+
process.exitCode = 2;
|
|
721
|
+
});
|
|
722
|
+
|
|
723
|
+
// src/cli/commands/sandboxes.ts
|
|
724
|
+
import { Command as Command9 } from "commander";
|
|
725
|
+
var sandboxesCommand = new Command9("sandboxes").description(
|
|
726
|
+
"Manage sandboxes"
|
|
727
|
+
);
|
|
728
|
+
sandboxesCommand.command("list").option("--playground-id <id>", "Filter by playground").option("--json", "Output as JSON").action(async (opts) => {
|
|
729
|
+
const result = await getClient().sandboxes.list({
|
|
730
|
+
playgroundId: opts.playgroundId
|
|
731
|
+
});
|
|
732
|
+
output(result, opts.json);
|
|
733
|
+
});
|
|
734
|
+
sandboxesCommand.command("create").requiredOption("--simulator-id <id>", "Simulator ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
735
|
+
const result = await getClient().sandboxes.create({
|
|
736
|
+
simulatorId: opts.simulatorId
|
|
737
|
+
});
|
|
738
|
+
output(result, opts.json);
|
|
739
|
+
});
|
|
740
|
+
sandboxesCommand.command("get").requiredOption("--id <id>", "Sandbox ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
741
|
+
const result = await getClient().sandboxes.get({ id: opts.id });
|
|
742
|
+
output(result, opts.json);
|
|
743
|
+
});
|
|
744
|
+
sandboxesCommand.command("list-events").requiredOption("--id <id>", "Sandbox ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
745
|
+
const result = await getClient().sandboxes.listEvents({ id: opts.id });
|
|
746
|
+
output(result, opts.json);
|
|
747
|
+
});
|
|
748
|
+
sandboxesCommand.command("teardown").requiredOption("--id <id>", "Sandbox ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
749
|
+
const result = await getClient().sandboxes.teardown({ id: opts.id });
|
|
750
|
+
output(result, opts.json);
|
|
751
|
+
});
|
|
752
|
+
sandboxesCommand.command("add-dataset").requiredOption("--sandbox-id <id>", "Sandbox ID").requiredOption("--dataset-id <id>", "Dataset ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
753
|
+
const result = await getClient().sandboxes.addDataset({
|
|
754
|
+
sandboxId: opts.sandboxId,
|
|
755
|
+
datasetId: opts.datasetId
|
|
756
|
+
});
|
|
757
|
+
output(result, opts.json);
|
|
758
|
+
});
|
|
759
|
+
sandboxesCommand.command("remove-dataset").requiredOption("--sandbox-id <id>", "Sandbox ID").requiredOption("--dataset-id <id>", "Dataset ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
760
|
+
const result = await getClient().sandboxes.removeDataset({
|
|
761
|
+
sandboxId: opts.sandboxId,
|
|
762
|
+
datasetId: opts.datasetId
|
|
763
|
+
});
|
|
764
|
+
output(result, opts.json);
|
|
765
|
+
});
|
|
766
|
+
|
|
767
|
+
// src/cli/commands/simulators.ts
|
|
768
|
+
import { Command as Command10 } from "commander";
|
|
769
|
+
var simulatorsCommand = new Command10("simulators").description(
|
|
770
|
+
"Manage simulators"
|
|
771
|
+
);
|
|
772
|
+
simulatorsCommand.command("list").option("--environment-id <id>", "Filter by environment").option("--json", "Output as JSON").action(async (opts) => {
|
|
773
|
+
const result = await getClient().simulators.list({
|
|
774
|
+
environmentId: opts.environmentId
|
|
775
|
+
});
|
|
776
|
+
output(result, opts.json);
|
|
777
|
+
});
|
|
778
|
+
simulatorsCommand.command("create").requiredOption("--type <type>", "Simulator type (FHIR, HL7, Voice, etc.)").requiredOption("--name <name>", "Simulator name").option("--json", "Output as JSON").action(async (opts) => {
|
|
779
|
+
const result = await getClient().simulators.create({
|
|
780
|
+
type: opts.type,
|
|
781
|
+
name: opts.name
|
|
782
|
+
});
|
|
783
|
+
output(result, opts.json);
|
|
784
|
+
});
|
|
785
|
+
simulatorsCommand.command("get").requiredOption("--id <id>", "Simulator ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
786
|
+
const result = await getClient().simulators.get({ id: opts.id });
|
|
787
|
+
output(result, opts.json);
|
|
788
|
+
});
|
|
789
|
+
simulatorsCommand.command("update").requiredOption("--id <id>", "Simulator ID").option("--name <name>", "New name").option("--json", "Output as JSON").action(async (opts) => {
|
|
790
|
+
const result = await getClient().simulators.update({
|
|
791
|
+
id: opts.id,
|
|
792
|
+
name: opts.name
|
|
793
|
+
});
|
|
794
|
+
output(result, opts.json);
|
|
795
|
+
});
|
|
796
|
+
simulatorsCommand.command("delete").requiredOption("--id <id>", "Simulator ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
797
|
+
const result = await getClient().simulators.delete({ id: opts.id });
|
|
798
|
+
output(result, opts.json);
|
|
799
|
+
});
|
|
800
|
+
simulatorsCommand.command("generate-config").requiredOption("--id <id>", "Simulator ID").requiredOption("--prompt <prompt>", "Natural language prompt").option("--json", "Output as JSON").action(async (opts) => {
|
|
801
|
+
const result = await getClient().simulators.generateConfig({
|
|
802
|
+
id: opts.id,
|
|
803
|
+
prompt: opts.prompt
|
|
804
|
+
});
|
|
805
|
+
output(result, opts.json);
|
|
806
|
+
});
|
|
807
|
+
simulatorsCommand.command("generate-data").requiredOption("--id <id>", "Simulator ID").option("--seed <seed>", "Random seed", parseInt).option("--json", "Output as JSON").action(async (opts) => {
|
|
808
|
+
const result = await getClient().simulators.generateData({
|
|
809
|
+
id: opts.id,
|
|
810
|
+
seed: opts.seed
|
|
811
|
+
});
|
|
812
|
+
output(result, opts.json);
|
|
813
|
+
});
|
|
814
|
+
|
|
815
|
+
// src/cli/commands/task-runs.ts
|
|
816
|
+
import { Command as Command11 } from "commander";
|
|
817
|
+
var taskRunsCommand = new Command11("task-runs").description(
|
|
818
|
+
"Manage task runs"
|
|
819
|
+
);
|
|
820
|
+
taskRunsCommand.command("list").requiredOption("--run-id <id>", "Run ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
821
|
+
const result = await getClient().taskRuns.list({ runId: opts.runId });
|
|
822
|
+
output(result, opts.json);
|
|
823
|
+
});
|
|
824
|
+
taskRunsCommand.command("get").requiredOption("--id <id>", "Task run ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
825
|
+
const result = await getClient().taskRuns.get({ id: opts.id });
|
|
826
|
+
output(result, opts.json);
|
|
827
|
+
});
|
|
828
|
+
taskRunsCommand.command("complete").requiredOption("--id <id>", "Task run ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
829
|
+
const result = await getClient().taskRuns.complete({ id: opts.id });
|
|
830
|
+
output(result, opts.json);
|
|
831
|
+
});
|
|
832
|
+
taskRunsCommand.command("cancel").requiredOption("--id <id>", "Task run ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
833
|
+
const result = await getClient().taskRuns.cancel({ id: opts.id });
|
|
834
|
+
output(result, opts.json);
|
|
835
|
+
});
|
|
836
|
+
|
|
837
|
+
// src/cli/commands/tasks.ts
|
|
838
|
+
import { Command as Command12 } from "commander";
|
|
839
|
+
var tasksCommand = new Command12("tasks").description("Manage tasks");
|
|
840
|
+
tasksCommand.command("list").requiredOption("--benchmark-id <id>", "Benchmark ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
841
|
+
const result = await getClient().tasks.list({
|
|
842
|
+
benchmarkId: opts.benchmarkId
|
|
843
|
+
});
|
|
844
|
+
output(result, opts.json);
|
|
845
|
+
});
|
|
846
|
+
tasksCommand.command("create").requiredOption("--benchmark-id <id>", "Benchmark ID").requiredOption("--name <name>", "Task name").option("--instruction <text>", "Task instruction").option("--timeout <seconds>", "Task timeout", parseInt).option("--json", "Output as JSON").action(async (opts) => {
|
|
847
|
+
const result = await getClient().tasks.create({
|
|
848
|
+
benchmarkId: opts.benchmarkId,
|
|
849
|
+
name: opts.name,
|
|
850
|
+
instruction: opts.instruction,
|
|
851
|
+
timeout: opts.timeout
|
|
852
|
+
});
|
|
853
|
+
output(result, opts.json);
|
|
854
|
+
});
|
|
855
|
+
tasksCommand.command("get").requiredOption("--id <id>", "Task ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
856
|
+
const result = await getClient().tasks.get({ id: opts.id });
|
|
857
|
+
output(result, opts.json);
|
|
858
|
+
});
|
|
859
|
+
tasksCommand.command("delete").requiredOption("--id <id>", "Task ID").option("--json", "Output as JSON").action(async (opts) => {
|
|
860
|
+
const result = await getClient().tasks.delete({ id: opts.id });
|
|
861
|
+
output(result, opts.json);
|
|
862
|
+
});
|
|
863
|
+
|
|
864
|
+
// src/cli/index.ts
|
|
865
|
+
var program = new Command13().name("verial").description("Verial CLI - Healthcare agent simulation and testing").version("0.1.0");
|
|
866
|
+
program.addCommand(authCommand);
|
|
867
|
+
program.addCommand(environmentsCommand);
|
|
868
|
+
program.addCommand(simulatorsCommand);
|
|
869
|
+
program.addCommand(datasetsCommand);
|
|
870
|
+
program.addCommand(benchmarksCommand);
|
|
871
|
+
program.addCommand(tasksCommand);
|
|
872
|
+
program.addCommand(evalsCommand);
|
|
873
|
+
program.addCommand(playgroundsCommand);
|
|
874
|
+
program.addCommand(sandboxesCommand);
|
|
875
|
+
program.addCommand(runsCommand);
|
|
876
|
+
program.addCommand(taskRunsCommand);
|
|
877
|
+
program.addCommand(evalRunsCommand);
|
|
878
|
+
program.parseAsync(process.argv).catch((err) => {
|
|
879
|
+
console.error(err.message);
|
|
880
|
+
process.exitCode = 2;
|
|
881
|
+
});
|
|
882
|
+
//# sourceMappingURL=index.js.map
|