@alexkroman1/aai-cli 7.0.0 → 8.0.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/README.md +1 -0
- package/dist/{_bundler-B4RqNF5Z.mjs → _bundler-CDuYl5Gb.mjs} +1 -1
- package/dist/{_dev-server-CiKFH9qw.mjs → _dev-server-Me06wgeF.mjs} +2 -2
- package/dist/{_init-CE4HKdgV.mjs → _init-BhEfQ6Yi.mjs} +1 -1
- package/dist/_resource-commands.d.ts +23 -0
- package/dist/{_slug-api-nRFaBEPJ.mjs → _slug-api-z-USxPtL.mjs} +14 -10
- package/dist/_slug-api.d.ts +5 -2
- package/dist/{_templates-FI3xPEMj.mjs → _templates-4WcKOjS5.mjs} +4 -5
- package/dist/_templates.d.ts +3 -4
- package/dist/{build-6jfaakgc.mjs → build-BBxf8vom.mjs} +2 -2
- package/dist/cli.mjs +338 -346
- package/dist/{deploy-DvYeD8ia.mjs → deploy-DRC8jWr8.mjs} +1 -1
- package/dist/{dev-B59JIfWO.mjs → dev-BvcctCn2.mjs} +1 -1
- package/dist/eval-DfQ8cm5p.mjs +56 -0
- package/dist/eval.d.ts +43 -0
- package/dist/{init-CpJVjEg0.mjs → init-CUo87gcI.mjs} +2 -2
- package/dist/{logs-9q-psa4q.mjs → logs-CQ2T46dr.mjs} +1 -1
- package/dist/scaffold/CLAUDE.md +409 -68
- package/dist/scaffold/package.json +5 -4
- package/dist/scaffold/server.mjs +10 -3
- package/dist/scaffold/tsconfig.json +0 -1
- package/dist/{secret-CVvSLIDV.mjs → secret-Ct34kdgU.mjs} +1 -1
- package/dist/{storage-BvUrnvM3.mjs → storage-i_79ZwAR.mjs} +1 -1
- package/dist/{studio--MUV0cid.mjs → studio-CzTzPqe1.mjs} +1 -1
- package/dist/templates/briefing-desk/agent.test.ts +350 -0
- package/dist/templates/briefing-desk/agent.ts +30 -0
- package/dist/templates/briefing-desk/shared.ts +200 -0
- package/dist/templates/briefing-desk/system-prompt.md +39 -0
- package/dist/templates/briefing-desk/tools/briefing_so_far.ts +35 -0
- package/dist/templates/briefing-desk/tools/research_topic.ts +88 -0
- package/dist/templates/briefing-desk/tools/verify_claim.ts +77 -0
- package/dist/templates/call-audit/agent.eval.test.ts +474 -0
- package/dist/templates/code-interpreter/agent.eval.test.ts +165 -0
- package/dist/templates/dispatch-center/agent.eval.test.ts +349 -0
- package/dist/templates/embedded-assets/agent.eval.test.ts +138 -0
- package/dist/templates/health-assistant/agent.eval.test.ts +167 -0
- package/dist/templates/infocom-adventure/agent.eval.test.ts +158 -0
- package/dist/templates/infocom-adventure/agent.test.ts +49 -18
- package/dist/templates/infocom-adventure/agent.ts +21 -0
- package/dist/templates/infocom-adventure/shared.ts +20 -9
- package/dist/templates/infocom-adventure/system-prompt.md +1 -1
- package/dist/templates/infocom-adventure/tools/game_state_move.ts +3 -2
- package/dist/templates/link-digest/agent.eval.test.ts +195 -0
- package/dist/templates/math-buddy/agent.eval.test.ts +146 -0
- package/dist/templates/night-owl/agent.eval.test.ts +272 -0
- package/dist/templates/personal-finance/agent.eval.test.ts +168 -0
- package/dist/templates/personal-finance/system-prompt.md +4 -0
- package/dist/templates/pipeline-simple/agent.eval.test.ts +78 -0
- package/dist/templates/pipeline-simple/agent.ts +2 -2
- package/dist/templates/pizza-ordering/agent.eval.test.ts +171 -0
- package/dist/templates/pizza-ordering/agent.test.ts +15 -0
- package/dist/templates/pizza-ordering/shared.ts +20 -1
- package/dist/templates/pizza-ordering/system-prompt.md +6 -0
- package/dist/templates/plan-and-execute/agent.eval.test.ts +209 -0
- package/dist/templates/podcast-digest/agent.eval.test.ts +411 -0
- package/dist/templates/podcast-digest/agent.test.ts +30 -59
- package/dist/templates/podcast-digest/agent.ts +1 -1
- package/dist/templates/podcast-digest/workflows/digest.ts +52 -19
- package/dist/templates/podcast-digest/workflows/slack.ts +48 -169
- package/dist/templates/recap-workflow/agent.eval.test.ts +366 -0
- package/dist/templates/redline/agent.eval.test.ts +209 -0
- package/dist/templates/research-workflow/agent.eval.test.ts +329 -0
- package/dist/templates/retail/address.ts +87 -1
- package/dist/templates/retail/agent.eval.test.ts +314 -0
- package/dist/templates/retail/agent.test.ts +171 -91
- package/dist/templates/retail/agent.ts +35 -1
- package/dist/templates/retail/cancel.ts +116 -0
- package/dist/templates/retail/client.tsx +39 -0
- package/dist/templates/retail/payment.ts +107 -0
- package/dist/templates/retail/pending.test.ts +196 -0
- package/dist/templates/retail/pending.ts +137 -0
- package/dist/templates/retail/registry.test.ts +119 -8
- package/dist/templates/retail/returns.ts +102 -0
- package/dist/templates/retail/shared.test.ts +42 -0
- package/dist/templates/retail/shared.ts +35 -0
- package/dist/templates/retail/store.test.ts +6 -4
- package/dist/templates/retail/store.ts +113 -57
- package/dist/templates/retail/swap.test.ts +4 -4
- package/dist/templates/retail/swap.ts +248 -15
- package/dist/templates/retail/system-prompt.md +62 -30
- package/dist/templates/retail/tools/cancel_change.ts +33 -0
- package/dist/templates/retail/tools/cancel_pending_order.ts +15 -59
- package/dist/templates/retail/tools/confirm_change.ts +42 -0
- package/dist/templates/retail/tools/exchange_delivered_order_items.ts +21 -66
- package/dist/templates/retail/tools/modify_pending_order_address.ts +12 -24
- package/dist/templates/retail/tools/modify_pending_order_items.ts +22 -60
- package/dist/templates/retail/tools/modify_pending_order_payment.ts +15 -77
- package/dist/templates/retail/tools/modify_user_address.ts +12 -15
- package/dist/templates/retail/tools/return_delivered_order_items.ts +16 -71
- package/dist/templates/retail/tools/transfer_to_human_agents.ts +4 -2
- package/dist/templates/simple/agent.eval.test.ts +54 -0
- package/dist/templates/solo-rpg/agent.eval.test.ts +320 -0
- package/dist/templates/spoken-summary/agent.eval.test.ts +342 -0
- package/dist/templates/support-line/agent.eval.test.ts +273 -0
- package/dist/templates/support-line/system-prompt.md +2 -1
- package/dist/templates/support-line/tools/answer_question.ts +56 -7
- package/dist/templates/transcription-workflow/agent.eval.test.ts +234 -0
- package/dist/templates/travel-concierge/agent.eval.test.ts +323 -0
- package/dist/templates/travel-concierge/agent.test.ts +110 -10
- package/dist/templates/travel-concierge/agent.ts +18 -9
- package/dist/templates/travel-concierge/shared.ts +110 -9
- package/dist/templates/travel-concierge/system-prompt.md +7 -1
- package/dist/templates/travel-concierge/tools/book_car_rental.ts +6 -3
- package/dist/templates/travel-concierge/tools/book_excursion.ts +6 -3
- package/dist/templates/travel-concierge/tools/book_hotel.ts +6 -3
- package/dist/templates/travel-concierge/tools/cancel_ticket.ts +6 -3
- package/dist/templates/travel-concierge/tools/search_car_rentals.ts +9 -5
- package/dist/templates/travel-concierge/tools/search_excursions.ts +9 -5
- package/dist/templates/travel-concierge/tools/search_flights.ts +9 -6
- package/dist/templates/travel-concierge/tools/search_hotels.ts +9 -5
- package/dist/templates/travel-concierge/tools/update_ticket.ts +6 -3
- package/dist/templates/web-researcher/agent.eval.test.ts +121 -0
- package/dist/templates/web-researcher/system-prompt.md +15 -4
- package/dist/{test-9kPKJI-w.mjs → test-BvyT6sAc.mjs} +24 -10
- package/dist/test.d.ts +29 -5
- package/dist/{worker-bundler-COxnqstQ.mjs → worker-bundler-CCVEDjm1.mjs} +45 -25
- package/dist/worker-bundler.mjs +1 -1
- package/dist/{workflow-D2AQf2Pl.mjs → workflow-BflATMmU.mjs} +19 -11
- package/package.json +5 -5
- package/dist/eject-C9WJyyr2.mjs +0 -116
- package/dist/eject.d.ts +0 -60
- package/dist/templates/infocom-adventure/tools/game_state_history.ts +0 -14
package/dist/cli.mjs
CHANGED
|
@@ -237,8 +237,191 @@ function defineExec(spec) {
|
|
|
237
237
|
}
|
|
238
238
|
});
|
|
239
239
|
}
|
|
240
|
+
const secret = defineCommand({
|
|
241
|
+
meta: {
|
|
242
|
+
name: "secret",
|
|
243
|
+
description: "Manage agent secrets"
|
|
244
|
+
},
|
|
245
|
+
subCommands: {
|
|
246
|
+
put: defineExec({
|
|
247
|
+
meta: {
|
|
248
|
+
name: "put",
|
|
249
|
+
description: "Create or update a secret"
|
|
250
|
+
},
|
|
251
|
+
args: {
|
|
252
|
+
name: {
|
|
253
|
+
type: "positional",
|
|
254
|
+
description: "Secret name",
|
|
255
|
+
required: true
|
|
256
|
+
},
|
|
257
|
+
server: sharedArgs.server,
|
|
258
|
+
json: sharedArgs.json
|
|
259
|
+
},
|
|
260
|
+
cwd: "any",
|
|
261
|
+
async run({ args, mode, cwd }) {
|
|
262
|
+
const { executeSecretPut, NO_INPUT, readStdin } = await import("./secret-Ct34kdgU.mjs");
|
|
263
|
+
const value = mode === "json" ? await readStdin() : void 0;
|
|
264
|
+
if (mode === "json" && !value) throw new CliError(...NO_INPUT);
|
|
265
|
+
return executeSecretPut(cwd, args.name, value, args.server);
|
|
266
|
+
}
|
|
267
|
+
}),
|
|
268
|
+
delete: defineExec({
|
|
269
|
+
meta: {
|
|
270
|
+
name: "delete",
|
|
271
|
+
description: "Delete a secret"
|
|
272
|
+
},
|
|
273
|
+
args: {
|
|
274
|
+
name: {
|
|
275
|
+
type: "positional",
|
|
276
|
+
description: "Secret name",
|
|
277
|
+
required: true
|
|
278
|
+
},
|
|
279
|
+
server: sharedArgs.server,
|
|
280
|
+
json: sharedArgs.json
|
|
281
|
+
},
|
|
282
|
+
cwd: "any",
|
|
283
|
+
async run({ args, cwd }) {
|
|
284
|
+
const { executeSecretDelete } = await import("./secret-Ct34kdgU.mjs");
|
|
285
|
+
return executeSecretDelete(cwd, args.name, args.server);
|
|
286
|
+
}
|
|
287
|
+
}),
|
|
288
|
+
list: defineExec({
|
|
289
|
+
meta: {
|
|
290
|
+
name: "list",
|
|
291
|
+
description: "List all secrets"
|
|
292
|
+
},
|
|
293
|
+
args: {
|
|
294
|
+
server: sharedArgs.server,
|
|
295
|
+
json: sharedArgs.json
|
|
296
|
+
},
|
|
297
|
+
cwd: "any",
|
|
298
|
+
async run({ args, cwd }) {
|
|
299
|
+
const { executeSecretList } = await import("./secret-Ct34kdgU.mjs");
|
|
300
|
+
return executeSecretList(cwd, args.server);
|
|
301
|
+
}
|
|
302
|
+
})
|
|
303
|
+
}
|
|
304
|
+
});
|
|
305
|
+
/** An optional `[dir]` positional, resolved against the working directory. */
|
|
306
|
+
function resolveDirArg(cwd, dir) {
|
|
307
|
+
return dir ? path.resolve(cwd, dir) : cwd;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* The optional `[dir]` positional the project-scoped subcommands share.
|
|
311
|
+
*
|
|
312
|
+
* Named for what it is rather than for `storage`, which was the only group
|
|
313
|
+
* that had one when it was written — `logs` takes the same positional and
|
|
314
|
+
* read as borrowing another command's arg.
|
|
315
|
+
*/
|
|
316
|
+
const dirArg = {
|
|
317
|
+
type: "positional",
|
|
318
|
+
description: "Project directory",
|
|
319
|
+
required: false
|
|
320
|
+
};
|
|
321
|
+
const storageStatus = defineExec({
|
|
322
|
+
meta: {
|
|
323
|
+
name: "status",
|
|
324
|
+
description: "Show whether storage is enabled"
|
|
325
|
+
},
|
|
326
|
+
args: {
|
|
327
|
+
dir: dirArg,
|
|
328
|
+
server: sharedArgs.server,
|
|
329
|
+
json: sharedArgs.json
|
|
330
|
+
},
|
|
331
|
+
cwd: "any",
|
|
332
|
+
async run({ args, cwd }) {
|
|
333
|
+
const { executeStorageStatus } = await import("./storage-i_79ZwAR.mjs");
|
|
334
|
+
return executeStorageStatus(resolveDirArg(cwd, args.dir), args.server);
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
const storageEnable = defineExec({
|
|
338
|
+
meta: {
|
|
339
|
+
name: "enable",
|
|
340
|
+
description: "Enable the agent's app database"
|
|
341
|
+
},
|
|
342
|
+
args: {
|
|
343
|
+
dir: dirArg,
|
|
344
|
+
server: sharedArgs.server,
|
|
345
|
+
json: sharedArgs.json
|
|
346
|
+
},
|
|
347
|
+
cwd: "any",
|
|
348
|
+
async run({ args, cwd }) {
|
|
349
|
+
const { executeStorageEnable } = await import("./storage-i_79ZwAR.mjs");
|
|
350
|
+
return executeStorageEnable(resolveDirArg(cwd, args.dir), args.server);
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
const storageDisable = defineExec({
|
|
354
|
+
meta: {
|
|
355
|
+
name: "disable",
|
|
356
|
+
description: "Disable storage and DROP the database schema with all its data"
|
|
357
|
+
},
|
|
358
|
+
args: {
|
|
359
|
+
dir: dirArg,
|
|
360
|
+
force: {
|
|
361
|
+
type: "boolean",
|
|
362
|
+
alias: "f",
|
|
363
|
+
description: "Skip confirmation prompt"
|
|
364
|
+
},
|
|
365
|
+
server: sharedArgs.server,
|
|
366
|
+
json: sharedArgs.json
|
|
367
|
+
},
|
|
368
|
+
cwd: "any",
|
|
369
|
+
async run({ args, cwd }) {
|
|
370
|
+
const { executeStorageDisable } = await import("./storage-i_79ZwAR.mjs");
|
|
371
|
+
return executeStorageDisable(resolveDirArg(cwd, args.dir), {
|
|
372
|
+
server: args.server,
|
|
373
|
+
force: args.force
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
});
|
|
377
|
+
const logs = defineExec({
|
|
378
|
+
meta: {
|
|
379
|
+
name: "logs",
|
|
380
|
+
description: "Show what the deployed agent has printed"
|
|
381
|
+
},
|
|
382
|
+
args: {
|
|
383
|
+
dir: dirArg,
|
|
384
|
+
follow: {
|
|
385
|
+
type: "boolean",
|
|
386
|
+
alias: "f",
|
|
387
|
+
description: "Keep printing new output"
|
|
388
|
+
},
|
|
389
|
+
server: sharedArgs.server,
|
|
390
|
+
json: sharedArgs.json
|
|
391
|
+
},
|
|
392
|
+
cwd: "any",
|
|
393
|
+
async run({ args, cwd }) {
|
|
394
|
+
const { executeLogs } = await import("./logs-CQ2T46dr.mjs");
|
|
395
|
+
return executeLogs(resolveDirArg(cwd, args.dir), {
|
|
396
|
+
server: args.server,
|
|
397
|
+
follow: args.follow
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
});
|
|
401
|
+
const storage = defineCommand({
|
|
402
|
+
meta: {
|
|
403
|
+
name: "storage",
|
|
404
|
+
description: "Manage the agent's app database"
|
|
405
|
+
},
|
|
406
|
+
subCommands: {
|
|
407
|
+
status: storageStatus,
|
|
408
|
+
enable: storageEnable,
|
|
409
|
+
disable: storageDisable
|
|
410
|
+
}
|
|
411
|
+
});
|
|
240
412
|
//#endregion
|
|
241
413
|
//#region _studio-commands.ts
|
|
414
|
+
/**
|
|
415
|
+
* The fast-forward override `push` and `publish` share — `publish` pushes
|
|
416
|
+
* first, so the two must always describe the same thing to the user.
|
|
417
|
+
* `pull`'s `--force` is a different act (overwriting local files) and keeps
|
|
418
|
+
* its own wording.
|
|
419
|
+
*/
|
|
420
|
+
const forceArg = {
|
|
421
|
+
type: "boolean",
|
|
422
|
+
alias: "f",
|
|
423
|
+
description: "Overwrite studio-side changes instead of failing the fast-forward check"
|
|
424
|
+
};
|
|
242
425
|
const list = defineExec({
|
|
243
426
|
meta: {
|
|
244
427
|
name: "list",
|
|
@@ -250,7 +433,7 @@ const list = defineExec({
|
|
|
250
433
|
},
|
|
251
434
|
cwd: "any",
|
|
252
435
|
async run({ args, cwd }) {
|
|
253
|
-
const { executeList } = await import("./studio
|
|
436
|
+
const { executeList } = await import("./studio-CzTzPqe1.mjs");
|
|
254
437
|
return executeList({
|
|
255
438
|
cwd,
|
|
256
439
|
server: args.server
|
|
@@ -283,7 +466,7 @@ const pull = defineExec({
|
|
|
283
466
|
},
|
|
284
467
|
cwd: "any",
|
|
285
468
|
async run({ args, cwd }) {
|
|
286
|
-
const { executePull } = await import("./studio
|
|
469
|
+
const { executePull } = await import("./studio-CzTzPqe1.mjs");
|
|
287
470
|
return executePull({
|
|
288
471
|
cwd,
|
|
289
472
|
project: args.project,
|
|
@@ -299,17 +482,13 @@ const push = defineExec({
|
|
|
299
482
|
description: "Sync this project's source to its studio workspace"
|
|
300
483
|
},
|
|
301
484
|
args: {
|
|
302
|
-
force:
|
|
303
|
-
type: "boolean",
|
|
304
|
-
alias: "f",
|
|
305
|
-
description: "Overwrite studio-side changes instead of failing the fast-forward check"
|
|
306
|
-
},
|
|
485
|
+
force: forceArg,
|
|
307
486
|
server: sharedArgs.server,
|
|
308
487
|
json: sharedArgs.json
|
|
309
488
|
},
|
|
310
489
|
cwd: "agent",
|
|
311
490
|
async run({ args, cwd }) {
|
|
312
|
-
const { executePush } = await import("./studio
|
|
491
|
+
const { executePush } = await import("./studio-CzTzPqe1.mjs");
|
|
313
492
|
return executePush({
|
|
314
493
|
cwd,
|
|
315
494
|
server: args.server,
|
|
@@ -323,11 +502,7 @@ const publish = defineExec({
|
|
|
323
502
|
description: "Push to the studio and deploy to production (the studio's Publish button)"
|
|
324
503
|
},
|
|
325
504
|
args: {
|
|
326
|
-
force:
|
|
327
|
-
type: "boolean",
|
|
328
|
-
alias: "f",
|
|
329
|
-
description: "Overwrite studio-side changes instead of failing the fast-forward check"
|
|
330
|
-
},
|
|
505
|
+
force: forceArg,
|
|
331
506
|
server: sharedArgs.server,
|
|
332
507
|
json: sharedArgs.json,
|
|
333
508
|
skipTypecheck: {
|
|
@@ -337,7 +512,7 @@ const publish = defineExec({
|
|
|
337
512
|
},
|
|
338
513
|
cwd: "agent",
|
|
339
514
|
async run({ args, cwd }) {
|
|
340
|
-
const { executePublish } = await import("./studio
|
|
515
|
+
const { executePublish } = await import("./studio-CzTzPqe1.mjs");
|
|
341
516
|
return executePublish({
|
|
342
517
|
cwd,
|
|
343
518
|
server: args.server,
|
|
@@ -404,7 +579,7 @@ const workflow = defineCommand({
|
|
|
404
579
|
args: workflowArgs,
|
|
405
580
|
cwd: WORKFLOW_CWD,
|
|
406
581
|
async run({ args, cwd }) {
|
|
407
|
-
const { executeWorkflowList } = await import("./workflow-
|
|
582
|
+
const { executeWorkflowList } = await import("./workflow-BflATMmU.mjs");
|
|
408
583
|
return executeWorkflowList(cwd, {
|
|
409
584
|
server: args.server,
|
|
410
585
|
token: args.token
|
|
@@ -430,7 +605,7 @@ const workflow = defineCommand({
|
|
|
430
605
|
},
|
|
431
606
|
cwd: WORKFLOW_CWD,
|
|
432
607
|
async run({ args, cwd }) {
|
|
433
|
-
const { executeWorkflowRuns } = await import("./workflow-
|
|
608
|
+
const { executeWorkflowRuns } = await import("./workflow-BflATMmU.mjs");
|
|
434
609
|
const limit = args.limit === void 0 ? void 0 : Number(args.limit);
|
|
435
610
|
if (limit !== void 0 && !Number.isFinite(limit)) throw new CliError("bad_limit", "--limit must be a number");
|
|
436
611
|
return executeWorkflowRuns(cwd, args.workflow, {
|
|
@@ -451,7 +626,7 @@ const workflow = defineCommand({
|
|
|
451
626
|
},
|
|
452
627
|
cwd: WORKFLOW_CWD,
|
|
453
628
|
async run({ args, cwd }) {
|
|
454
|
-
const { executeWorkflowShow } = await import("./workflow-
|
|
629
|
+
const { executeWorkflowShow } = await import("./workflow-BflATMmU.mjs");
|
|
455
630
|
return executeWorkflowShow(cwd, args.runId, {
|
|
456
631
|
server: args.server,
|
|
457
632
|
token: args.token
|
|
@@ -469,7 +644,7 @@ const workflow = defineCommand({
|
|
|
469
644
|
},
|
|
470
645
|
cwd: WORKFLOW_CWD,
|
|
471
646
|
async run({ args, cwd }) {
|
|
472
|
-
const { executeWorkflowCancel } = await import("./workflow-
|
|
647
|
+
const { executeWorkflowCancel } = await import("./workflow-BflATMmU.mjs");
|
|
473
648
|
return executeWorkflowCancel(cwd, args.runId, {
|
|
474
649
|
server: args.server,
|
|
475
650
|
token: args.token
|
|
@@ -506,365 +681,182 @@ function readCliVersion(dir) {
|
|
|
506
681
|
* commands that display it. Memoized because usage rendering reads it twice.
|
|
507
682
|
*/
|
|
508
683
|
let _version;
|
|
509
|
-
const
|
|
510
|
-
name: "aai",
|
|
511
|
-
description: "Voice agent development kit",
|
|
512
|
-
get version() {
|
|
513
|
-
_version ??= readCliVersion(cliDir);
|
|
514
|
-
return _version;
|
|
515
|
-
}
|
|
516
|
-
};
|
|
517
|
-
const init = defineExec({
|
|
518
|
-
meta: {
|
|
519
|
-
name: "init",
|
|
520
|
-
description: "Scaffold a new agent project"
|
|
521
|
-
},
|
|
522
|
-
args: {
|
|
523
|
-
dir: {
|
|
524
|
-
type: "positional",
|
|
525
|
-
description: "Project directory",
|
|
526
|
-
required: false
|
|
527
|
-
},
|
|
528
|
-
force: {
|
|
529
|
-
type: "boolean",
|
|
530
|
-
alias: "f",
|
|
531
|
-
description: "Overwrite existing files"
|
|
532
|
-
},
|
|
533
|
-
template: {
|
|
534
|
-
type: "string",
|
|
535
|
-
alias: "t",
|
|
536
|
-
description: "Template to use (run `aai templates` for the list)"
|
|
537
|
-
},
|
|
538
|
-
server: sharedArgs.server,
|
|
539
|
-
yes: sharedArgs.yes,
|
|
540
|
-
json: sharedArgs.json,
|
|
541
|
-
skipDeploy: {
|
|
542
|
-
type: "boolean",
|
|
543
|
-
description: "Skip deploy after scaffolding"
|
|
544
|
-
}
|
|
545
|
-
},
|
|
546
|
-
cwd: "none",
|
|
547
|
-
async run({ args, mode }) {
|
|
548
|
-
const { executeInit } = await import("./init-CpJVjEg0.mjs");
|
|
549
|
-
return executeInit({
|
|
550
|
-
dir: args.dir,
|
|
551
|
-
force: args.force,
|
|
552
|
-
template: args.template,
|
|
553
|
-
yes: mode === "json" ? true : args.yes,
|
|
554
|
-
skipDeploy: args.skipDeploy,
|
|
555
|
-
server: args.server
|
|
556
|
-
}, mode === "json" ? { silent: true } : void 0);
|
|
557
|
-
}
|
|
558
|
-
});
|
|
559
|
-
const dev = defineExec({
|
|
560
|
-
meta: {
|
|
561
|
-
name: "dev",
|
|
562
|
-
description: "Start a local development server"
|
|
563
|
-
},
|
|
564
|
-
args: {
|
|
565
|
-
port: {
|
|
566
|
-
type: "string",
|
|
567
|
-
alias: "p",
|
|
568
|
-
description: "Port to listen on",
|
|
569
|
-
default: "3000"
|
|
570
|
-
},
|
|
571
|
-
json: sharedArgs.json
|
|
572
|
-
},
|
|
573
|
-
cwd: "agent",
|
|
574
|
-
async run({ args, cwd }) {
|
|
575
|
-
const { executeDev } = await import("./dev-B59JIfWO.mjs");
|
|
576
|
-
return executeDev({
|
|
577
|
-
cwd,
|
|
578
|
-
port: args.port
|
|
579
|
-
});
|
|
580
|
-
}
|
|
581
|
-
});
|
|
582
|
-
const test = defineExec({
|
|
583
|
-
meta: {
|
|
584
|
-
name: "test",
|
|
585
|
-
description: "Run agent tests"
|
|
586
|
-
},
|
|
587
|
-
args: { json: sharedArgs.json },
|
|
588
|
-
cwd: "agent",
|
|
589
|
-
async run({ cwd }) {
|
|
590
|
-
const { executeTest } = await import("./test-9kPKJI-w.mjs");
|
|
591
|
-
return executeTest(cwd);
|
|
592
|
-
}
|
|
593
|
-
});
|
|
594
|
-
const build = defineExec({
|
|
595
|
-
meta: {
|
|
596
|
-
name: "build",
|
|
597
|
-
description: "Bundle agent without deploying"
|
|
598
|
-
},
|
|
599
|
-
args: {
|
|
600
|
-
json: sharedArgs.json,
|
|
601
|
-
skipTests: {
|
|
602
|
-
type: "boolean",
|
|
603
|
-
description: "Skip running tests before build"
|
|
604
|
-
},
|
|
605
|
-
skipTypecheck: {
|
|
606
|
-
type: "boolean",
|
|
607
|
-
description: "Skip type checking before build"
|
|
608
|
-
}
|
|
609
|
-
},
|
|
610
|
-
cwd: "agent",
|
|
611
|
-
async run({ args, cwd }) {
|
|
612
|
-
const { executeBuild } = await import("./build-6jfaakgc.mjs");
|
|
613
|
-
return executeBuild({
|
|
614
|
-
cwd,
|
|
615
|
-
skipTests: args.skipTests,
|
|
616
|
-
skipTypecheck: args.skipTypecheck
|
|
617
|
-
});
|
|
618
|
-
}
|
|
619
|
-
});
|
|
620
|
-
const eject = defineExec({
|
|
621
|
-
meta: {
|
|
622
|
-
name: "eject",
|
|
623
|
-
description: "Add the self-hosted server.mjs entrypoint to an older project"
|
|
624
|
-
},
|
|
625
|
-
args: {
|
|
626
|
-
force: {
|
|
627
|
-
type: "boolean",
|
|
628
|
-
alias: "f",
|
|
629
|
-
description: "Replace an existing server.mjs"
|
|
630
|
-
},
|
|
631
|
-
json: sharedArgs.json
|
|
632
|
-
},
|
|
633
|
-
cwd: "agent",
|
|
634
|
-
async run({ args, cwd }) {
|
|
635
|
-
const { executeEject } = await import("./eject-C9WJyyr2.mjs");
|
|
636
|
-
return executeEject({
|
|
637
|
-
cwd,
|
|
638
|
-
force: args.force
|
|
639
|
-
});
|
|
640
|
-
}
|
|
641
|
-
});
|
|
642
|
-
const deploy = defineExec({
|
|
684
|
+
const mainCommand = defineCommand({
|
|
643
685
|
meta: {
|
|
644
|
-
name: "
|
|
645
|
-
description: "
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
server: sharedArgs.server,
|
|
650
|
-
json: sharedArgs.json,
|
|
651
|
-
allowPreviewSlug: {
|
|
652
|
-
type: "boolean",
|
|
653
|
-
description: "Permit a `-preview`-suffixed slug (reserved for studio auto-previews; studio-internal — a slug you claim this way is subject to the preview reaper)"
|
|
654
|
-
},
|
|
655
|
-
skipTypecheck: {
|
|
656
|
-
type: "boolean",
|
|
657
|
-
description: "Skip type checking before deploy"
|
|
686
|
+
name: "aai",
|
|
687
|
+
description: "Voice agent development kit",
|
|
688
|
+
get version() {
|
|
689
|
+
_version ??= readCliVersion(cliDir);
|
|
690
|
+
return _version;
|
|
658
691
|
}
|
|
659
692
|
},
|
|
660
|
-
cwd: "agent",
|
|
661
|
-
async run({ args, cwd }) {
|
|
662
|
-
const { executeDeploy } = await import("./deploy-DvYeD8ia.mjs");
|
|
663
|
-
return executeDeploy({
|
|
664
|
-
cwd,
|
|
665
|
-
server: args.server,
|
|
666
|
-
allowPreviewSlug: args.allowPreviewSlug,
|
|
667
|
-
skipTypecheck: args.skipTypecheck
|
|
668
|
-
});
|
|
669
|
-
}
|
|
670
|
-
});
|
|
671
|
-
const del = defineExec({
|
|
672
|
-
meta: {
|
|
673
|
-
name: "delete",
|
|
674
|
-
description: "Delete the studio project and its deployed agents"
|
|
675
|
-
},
|
|
676
|
-
args: {
|
|
677
|
-
server: sharedArgs.server,
|
|
678
|
-
json: sharedArgs.json
|
|
679
|
-
},
|
|
680
|
-
cwd: "any",
|
|
681
|
-
async run({ args, cwd }) {
|
|
682
|
-
const { executeDelete } = await import("./delete-Dl_LSfvI.mjs");
|
|
683
|
-
return executeDelete({
|
|
684
|
-
cwd,
|
|
685
|
-
server: args.server
|
|
686
|
-
});
|
|
687
|
-
}
|
|
688
|
-
});
|
|
689
|
-
const secret = defineCommand({
|
|
690
|
-
meta: {
|
|
691
|
-
name: "secret",
|
|
692
|
-
description: "Manage agent secrets"
|
|
693
|
-
},
|
|
694
693
|
subCommands: {
|
|
695
|
-
|
|
694
|
+
init: defineExec({
|
|
696
695
|
meta: {
|
|
697
|
-
name: "
|
|
698
|
-
description: "
|
|
696
|
+
name: "init",
|
|
697
|
+
description: "Scaffold a new agent project"
|
|
699
698
|
},
|
|
700
699
|
args: {
|
|
701
|
-
|
|
700
|
+
dir: {
|
|
702
701
|
type: "positional",
|
|
703
|
-
description: "
|
|
704
|
-
required:
|
|
702
|
+
description: "Project directory",
|
|
703
|
+
required: false
|
|
704
|
+
},
|
|
705
|
+
force: {
|
|
706
|
+
type: "boolean",
|
|
707
|
+
alias: "f",
|
|
708
|
+
description: "Overwrite existing files"
|
|
709
|
+
},
|
|
710
|
+
template: {
|
|
711
|
+
type: "string",
|
|
712
|
+
alias: "t",
|
|
713
|
+
description: "Template to use (run `aai templates` for the list)"
|
|
705
714
|
},
|
|
706
715
|
server: sharedArgs.server,
|
|
707
|
-
|
|
716
|
+
yes: sharedArgs.yes,
|
|
717
|
+
json: sharedArgs.json,
|
|
718
|
+
skipDeploy: {
|
|
719
|
+
type: "boolean",
|
|
720
|
+
description: "Skip deploy after scaffolding"
|
|
721
|
+
}
|
|
708
722
|
},
|
|
709
|
-
cwd: "
|
|
710
|
-
async run({ args, mode
|
|
711
|
-
const {
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
723
|
+
cwd: "none",
|
|
724
|
+
async run({ args, mode }) {
|
|
725
|
+
const { executeInit } = await import("./init-CUo87gcI.mjs");
|
|
726
|
+
return executeInit({
|
|
727
|
+
dir: args.dir,
|
|
728
|
+
force: args.force,
|
|
729
|
+
template: args.template,
|
|
730
|
+
yes: mode === "json" ? true : args.yes,
|
|
731
|
+
skipDeploy: args.skipDeploy,
|
|
732
|
+
server: args.server
|
|
733
|
+
}, mode === "json" ? { silent: true } : void 0);
|
|
715
734
|
}
|
|
716
735
|
}),
|
|
717
|
-
|
|
736
|
+
dev: defineExec({
|
|
718
737
|
meta: {
|
|
719
|
-
name: "
|
|
720
|
-
description: "
|
|
738
|
+
name: "dev",
|
|
739
|
+
description: "Start a local development server"
|
|
721
740
|
},
|
|
722
741
|
args: {
|
|
723
|
-
|
|
724
|
-
type: "
|
|
725
|
-
|
|
726
|
-
|
|
742
|
+
port: {
|
|
743
|
+
type: "string",
|
|
744
|
+
alias: "p",
|
|
745
|
+
description: "Port to listen on",
|
|
746
|
+
default: "3000"
|
|
727
747
|
},
|
|
728
|
-
server: sharedArgs.server,
|
|
729
748
|
json: sharedArgs.json
|
|
730
749
|
},
|
|
731
|
-
cwd: "
|
|
750
|
+
cwd: "agent",
|
|
732
751
|
async run({ args, cwd }) {
|
|
733
|
-
const {
|
|
734
|
-
return
|
|
752
|
+
const { executeDev } = await import("./dev-BvcctCn2.mjs");
|
|
753
|
+
return executeDev({
|
|
754
|
+
cwd,
|
|
755
|
+
port: args.port
|
|
756
|
+
});
|
|
735
757
|
}
|
|
736
758
|
}),
|
|
737
|
-
|
|
759
|
+
test: defineExec({
|
|
738
760
|
meta: {
|
|
739
|
-
name: "
|
|
740
|
-
description: "
|
|
761
|
+
name: "test",
|
|
762
|
+
description: "Run agent tests"
|
|
763
|
+
},
|
|
764
|
+
args: { json: sharedArgs.json },
|
|
765
|
+
cwd: "agent",
|
|
766
|
+
async run({ cwd }) {
|
|
767
|
+
const { executeTest } = await import("./test-BvyT6sAc.mjs");
|
|
768
|
+
return executeTest(cwd);
|
|
769
|
+
}
|
|
770
|
+
}),
|
|
771
|
+
eval: defineExec({
|
|
772
|
+
meta: {
|
|
773
|
+
name: "eval",
|
|
774
|
+
description: "Run agent behaviour evals against a live model"
|
|
775
|
+
},
|
|
776
|
+
args: { json: sharedArgs.json },
|
|
777
|
+
cwd: "agent",
|
|
778
|
+
async run({ cwd }) {
|
|
779
|
+
const { executeEval } = await import("./eval-DfQ8cm5p.mjs");
|
|
780
|
+
return executeEval(cwd);
|
|
781
|
+
}
|
|
782
|
+
}),
|
|
783
|
+
build: defineExec({
|
|
784
|
+
meta: {
|
|
785
|
+
name: "build",
|
|
786
|
+
description: "Bundle agent without deploying"
|
|
741
787
|
},
|
|
742
788
|
args: {
|
|
743
|
-
|
|
744
|
-
|
|
789
|
+
json: sharedArgs.json,
|
|
790
|
+
skipTests: {
|
|
791
|
+
type: "boolean",
|
|
792
|
+
description: "Skip running tests before build"
|
|
793
|
+
},
|
|
794
|
+
skipTypecheck: {
|
|
795
|
+
type: "boolean",
|
|
796
|
+
description: "Skip type checking before build"
|
|
797
|
+
}
|
|
745
798
|
},
|
|
746
|
-
cwd: "
|
|
799
|
+
cwd: "agent",
|
|
747
800
|
async run({ args, cwd }) {
|
|
748
|
-
const {
|
|
749
|
-
return
|
|
801
|
+
const { executeBuild } = await import("./build-BBxf8vom.mjs");
|
|
802
|
+
return executeBuild({
|
|
803
|
+
cwd,
|
|
804
|
+
skipTests: args.skipTests,
|
|
805
|
+
skipTypecheck: args.skipTypecheck
|
|
806
|
+
});
|
|
750
807
|
}
|
|
751
|
-
})
|
|
752
|
-
}
|
|
753
|
-
});
|
|
754
|
-
/** A storage subcommand's optional [dir], resolved against the working directory. */
|
|
755
|
-
function resolveStorageCwd(cwd, dir) {
|
|
756
|
-
return dir ? path.resolve(cwd, dir) : cwd;
|
|
757
|
-
}
|
|
758
|
-
const storageDir = {
|
|
759
|
-
type: "positional",
|
|
760
|
-
description: "Project directory",
|
|
761
|
-
required: false
|
|
762
|
-
};
|
|
763
|
-
const storageStatus = defineExec({
|
|
764
|
-
meta: {
|
|
765
|
-
name: "status",
|
|
766
|
-
description: "Show whether storage is enabled"
|
|
767
|
-
},
|
|
768
|
-
args: {
|
|
769
|
-
dir: storageDir,
|
|
770
|
-
server: sharedArgs.server,
|
|
771
|
-
json: sharedArgs.json
|
|
772
|
-
},
|
|
773
|
-
cwd: "any",
|
|
774
|
-
async run({ args, cwd }) {
|
|
775
|
-
const { executeStorageStatus } = await import("./storage-BvUrnvM3.mjs");
|
|
776
|
-
return executeStorageStatus(resolveStorageCwd(cwd, args.dir), args.server);
|
|
777
|
-
}
|
|
778
|
-
});
|
|
779
|
-
const storageEnable = defineExec({
|
|
780
|
-
meta: {
|
|
781
|
-
name: "enable",
|
|
782
|
-
description: "Enable the agent's app database"
|
|
783
|
-
},
|
|
784
|
-
args: {
|
|
785
|
-
dir: storageDir,
|
|
786
|
-
server: sharedArgs.server,
|
|
787
|
-
json: sharedArgs.json
|
|
788
|
-
},
|
|
789
|
-
cwd: "any",
|
|
790
|
-
async run({ args, cwd }) {
|
|
791
|
-
const { executeStorageEnable } = await import("./storage-BvUrnvM3.mjs");
|
|
792
|
-
return executeStorageEnable(resolveStorageCwd(cwd, args.dir), args.server);
|
|
793
|
-
}
|
|
794
|
-
});
|
|
795
|
-
const storageDisable = defineExec({
|
|
796
|
-
meta: {
|
|
797
|
-
name: "disable",
|
|
798
|
-
description: "Disable storage and DROP the database schema with all its data"
|
|
799
|
-
},
|
|
800
|
-
args: {
|
|
801
|
-
dir: storageDir,
|
|
802
|
-
force: {
|
|
803
|
-
type: "boolean",
|
|
804
|
-
alias: "f",
|
|
805
|
-
description: "Skip confirmation prompt"
|
|
806
|
-
},
|
|
807
|
-
server: sharedArgs.server,
|
|
808
|
-
json: sharedArgs.json
|
|
809
|
-
},
|
|
810
|
-
cwd: "any",
|
|
811
|
-
async run({ args, cwd }) {
|
|
812
|
-
const { executeStorageDisable } = await import("./storage-BvUrnvM3.mjs");
|
|
813
|
-
return executeStorageDisable(resolveStorageCwd(cwd, args.dir), {
|
|
814
|
-
server: args.server,
|
|
815
|
-
force: args.force
|
|
816
|
-
});
|
|
817
|
-
}
|
|
818
|
-
});
|
|
819
|
-
const logs = defineExec({
|
|
820
|
-
meta: {
|
|
821
|
-
name: "logs",
|
|
822
|
-
description: "Show what the deployed agent has printed"
|
|
823
|
-
},
|
|
824
|
-
args: {
|
|
825
|
-
dir: storageDir,
|
|
826
|
-
follow: {
|
|
827
|
-
type: "boolean",
|
|
828
|
-
alias: "f",
|
|
829
|
-
description: "Keep printing new output"
|
|
830
|
-
},
|
|
831
|
-
server: sharedArgs.server,
|
|
832
|
-
json: sharedArgs.json
|
|
833
|
-
},
|
|
834
|
-
cwd: "any",
|
|
835
|
-
async run({ args, cwd }) {
|
|
836
|
-
const { executeLogs } = await import("./logs-9q-psa4q.mjs");
|
|
837
|
-
return executeLogs(resolveStorageCwd(cwd, args.dir), {
|
|
838
|
-
server: args.server,
|
|
839
|
-
follow: args.follow
|
|
840
|
-
});
|
|
841
|
-
}
|
|
842
|
-
});
|
|
843
|
-
const storage = defineCommand({
|
|
844
|
-
meta: {
|
|
845
|
-
name: "storage",
|
|
846
|
-
description: "Manage the agent's app database"
|
|
847
|
-
},
|
|
848
|
-
subCommands: {
|
|
849
|
-
status: storageStatus,
|
|
850
|
-
enable: storageEnable,
|
|
851
|
-
disable: storageDisable
|
|
852
|
-
}
|
|
853
|
-
});
|
|
854
|
-
const mainCommand = defineCommand({
|
|
855
|
-
meta: mainMeta,
|
|
856
|
-
subCommands: {
|
|
857
|
-
init,
|
|
858
|
-
dev,
|
|
859
|
-
test,
|
|
860
|
-
build,
|
|
861
|
-
eject,
|
|
808
|
+
}),
|
|
862
809
|
list,
|
|
863
810
|
pull,
|
|
864
811
|
push,
|
|
865
812
|
publish,
|
|
866
|
-
deploy
|
|
867
|
-
|
|
813
|
+
deploy: defineExec({
|
|
814
|
+
meta: {
|
|
815
|
+
name: "deploy",
|
|
816
|
+
description: "(internal) used by studio Publish",
|
|
817
|
+
hidden: true
|
|
818
|
+
},
|
|
819
|
+
args: {
|
|
820
|
+
server: sharedArgs.server,
|
|
821
|
+
json: sharedArgs.json,
|
|
822
|
+
allowPreviewSlug: {
|
|
823
|
+
type: "boolean",
|
|
824
|
+
description: "Permit a `-preview`-suffixed slug (reserved for studio auto-previews; studio-internal — a slug you claim this way is subject to the preview reaper)"
|
|
825
|
+
},
|
|
826
|
+
skipTypecheck: {
|
|
827
|
+
type: "boolean",
|
|
828
|
+
description: "Skip type checking before deploy"
|
|
829
|
+
}
|
|
830
|
+
},
|
|
831
|
+
cwd: "agent",
|
|
832
|
+
async run({ args, cwd }) {
|
|
833
|
+
const { executeDeploy } = await import("./deploy-DRC8jWr8.mjs");
|
|
834
|
+
return executeDeploy({
|
|
835
|
+
cwd,
|
|
836
|
+
server: args.server,
|
|
837
|
+
allowPreviewSlug: args.allowPreviewSlug,
|
|
838
|
+
skipTypecheck: args.skipTypecheck
|
|
839
|
+
});
|
|
840
|
+
}
|
|
841
|
+
}),
|
|
842
|
+
delete: defineExec({
|
|
843
|
+
meta: {
|
|
844
|
+
name: "delete",
|
|
845
|
+
description: "Delete the studio project and its deployed agents"
|
|
846
|
+
},
|
|
847
|
+
args: {
|
|
848
|
+
server: sharedArgs.server,
|
|
849
|
+
json: sharedArgs.json
|
|
850
|
+
},
|
|
851
|
+
cwd: "any",
|
|
852
|
+
async run({ args, cwd }) {
|
|
853
|
+
const { executeDelete } = await import("./delete-Dl_LSfvI.mjs");
|
|
854
|
+
return executeDelete({
|
|
855
|
+
cwd,
|
|
856
|
+
server: args.server
|
|
857
|
+
});
|
|
858
|
+
}
|
|
859
|
+
}),
|
|
868
860
|
login: defineExec({
|
|
869
861
|
meta: {
|
|
870
862
|
name: "login",
|
|
@@ -892,7 +884,7 @@ const mainCommand = defineCommand({
|
|
|
892
884
|
args: { json: sharedArgs.json },
|
|
893
885
|
cwd: "none",
|
|
894
886
|
async run({ mode }) {
|
|
895
|
-
const { listTemplates } = await import("./_templates-
|
|
887
|
+
const { listTemplates } = await import("./_templates-4WcKOjS5.mjs");
|
|
896
888
|
const names = await listTemplates();
|
|
897
889
|
if (mode === "human") {
|
|
898
890
|
for (const name of names) log.message(name);
|