@duvoai/cli 1.1.0 → 1.3.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/bin/duvo.js CHANGED
@@ -863,7 +863,7 @@ var PLAN_VERSIONS = {
863
863
  maxAgents: "unlimited",
864
864
  maxAgentRunsPerMonth: 500,
865
865
  runCountingMode: "monthly",
866
- maxConcurrentRuns: 1,
866
+ maxConcurrentRuns: 20,
867
867
  features: [
868
868
  PLAN_FEATURE.BROWSER_AUTOMATION,
869
869
  PLAN_FEATURE.ADVANCED_INTEGRATIONS,
@@ -1965,6 +1965,31 @@ var ClaudeModelIdSchema = z11.enum([
1965
1965
  ...CLAUDE_MODEL_IDS,
1966
1966
  ...LEGACY_MODEL_IDS
1967
1967
  ]);
1968
+ var AVAILABLE_AGENT_MODELS = {
1969
+ "claude-sonnet-4-6": {
1970
+ displayName: "Claude Sonnet 4.6"
1971
+ },
1972
+ "claude-sonnet-4-6[1m]": {
1973
+ displayName: "Claude Sonnet 4.6",
1974
+ description: "Fast and capable for everyday tasks"
1975
+ },
1976
+ "claude-opus-4-6": {
1977
+ displayName: "Claude Opus 4.6",
1978
+ description: "Advanced model for complex work"
1979
+ },
1980
+ "claude-opus-4-6[1m]": {
1981
+ displayName: "Claude Opus 4.6",
1982
+ description: "Advanced model for complex work"
1983
+ },
1984
+ "claude-opus-4-7": {
1985
+ displayName: "Claude Opus 4.7",
1986
+ description: "Our most capable model \u2014 best for complex work"
1987
+ },
1988
+ "claude-opus-4-7[1m]": {
1989
+ displayName: "Claude Opus 4.7",
1990
+ description: "Our most capable model \u2014 best for complex work"
1991
+ }
1992
+ };
1968
1993
  var BrowsingModelIdSchema = z11.enum([
1969
1994
  "gemini-2.5-pro",
1970
1995
  "gemini-2.5-flash",
@@ -3176,6 +3201,66 @@ function refineStepGraph(steps, ctx) {
3176
3201
  }
3177
3202
  __name(refineStepGraph, "refineStepGraph");
3178
3203
  __name2(refineStepGraph, "refineStepGraph");
3204
+ var STRING_ARRAY_FIELDS = ["assumptions", "openQuestions"];
3205
+ var NULLABLE_STRING_FIELDS = [
3206
+ "action",
3207
+ "role",
3208
+ "system",
3209
+ "input",
3210
+ "output",
3211
+ "condition",
3212
+ "exception",
3213
+ "handling"
3214
+ ];
3215
+ function isPlainObject(value) {
3216
+ return typeof value === "object" && value !== null && !Array.isArray(value);
3217
+ }
3218
+ __name(isPlainObject, "isPlainObject");
3219
+ __name2(isPlainObject, "isPlainObject");
3220
+ function coerceStringArrayField(value) {
3221
+ if (Array.isArray(value)) {
3222
+ return value;
3223
+ }
3224
+ if (typeof value === "string") {
3225
+ const trimmed = value.trim();
3226
+ return trimmed.length === 0 ? null : [trimmed];
3227
+ }
3228
+ return value;
3229
+ }
3230
+ __name(coerceStringArrayField, "coerceStringArrayField");
3231
+ __name2(coerceStringArrayField, "coerceStringArrayField");
3232
+ function coerceNullableStringField(value) {
3233
+ if (typeof value === "string" && value.trim().length === 0) {
3234
+ return null;
3235
+ }
3236
+ return value;
3237
+ }
3238
+ __name(coerceNullableStringField, "coerceNullableStringField");
3239
+ __name2(coerceNullableStringField, "coerceNullableStringField");
3240
+ function coerceStepOutput(step) {
3241
+ if (!isPlainObject(step)) {
3242
+ return step;
3243
+ }
3244
+ const next = { ...step };
3245
+ for (const field of STRING_ARRAY_FIELDS) {
3246
+ if (field in next) {
3247
+ next[field] = coerceStringArrayField(next[field]);
3248
+ }
3249
+ }
3250
+ for (const field of NULLABLE_STRING_FIELDS) {
3251
+ if (field in next) {
3252
+ next[field] = coerceNullableStringField(next[field]);
3253
+ }
3254
+ }
3255
+ return next;
3256
+ }
3257
+ __name(coerceStepOutput, "coerceStepOutput");
3258
+ __name2(coerceStepOutput, "coerceStepOutput");
3259
+ function coerceStepsOutput(steps) {
3260
+ return steps.map(coerceStepOutput);
3261
+ }
3262
+ __name(coerceStepsOutput, "coerceStepsOutput");
3263
+ __name2(coerceStepsOutput, "coerceStepsOutput");
3179
3264
  var stepSourceSchema = z14.object({
3180
3265
  attribution: z14.string().min(1).describe(
3181
3266
  'Human-readable source label identifying who or what the evidence comes from. Examples: "Anna (sales interview)", "Onboarding SOP \xA73.2", "Slack #ops 2024-06-12"'
@@ -3712,6 +3797,151 @@ var artifactChatMessageUpsertEventDataSchema = z18.object({
3712
3797
  conversation: clarityProcessChatConversationSchema,
3713
3798
  message: clarityProcessChatMessageSchema
3714
3799
  });
3800
+ function isJsonObject(value) {
3801
+ return typeof value === "object" && value !== null && !Array.isArray(value);
3802
+ }
3803
+ __name(isJsonObject, "isJsonObject");
3804
+ __name2(isJsonObject, "isJsonObject");
3805
+ function clarityStepsToEaseDocument(steps) {
3806
+ const stepOrder = steps.map((step) => step.id);
3807
+ const stepsById = Object.fromEntries(
3808
+ steps.map((step) => {
3809
+ const {
3810
+ id,
3811
+ readiness: _readiness,
3812
+ readinessRationale: _readinessRationale,
3813
+ extraCaptureNeeded: _extraCaptureNeeded,
3814
+ ...baseStep
3815
+ } = step;
3816
+ return [id, baseStep];
3817
+ })
3818
+ );
3819
+ return { stepOrder, stepsById };
3820
+ }
3821
+ __name(clarityStepsToEaseDocument, "clarityStepsToEaseDocument");
3822
+ __name2(clarityStepsToEaseDocument, "clarityStepsToEaseDocument");
3823
+ function assertEaseDocument(value) {
3824
+ if (!isJsonObject(value)) {
3825
+ throw new Error("EASE document must be an object");
3826
+ }
3827
+ if (!Array.isArray(value.stepOrder)) {
3828
+ throw new Error("EASE document stepOrder must be an array");
3829
+ }
3830
+ if (!isJsonObject(value.stepsById)) {
3831
+ throw new Error("EASE document stepsById must be an object");
3832
+ }
3833
+ const stepOrder = value.stepOrder.map((stepId, index) => {
3834
+ if (typeof stepId !== "string" || stepId.length === 0) {
3835
+ throw new Error(`stepOrder[${index}] must be a non-empty string`);
3836
+ }
3837
+ return stepId;
3838
+ });
3839
+ const duplicateStepIds = stepOrder.filter(
3840
+ (stepId, index) => stepOrder.indexOf(stepId) !== index
3841
+ );
3842
+ if (duplicateStepIds.length > 0) {
3843
+ throw new Error(`stepOrder contains duplicate id "${duplicateStepIds[0]}"`);
3844
+ }
3845
+ const stepOrderSet = new Set(stepOrder);
3846
+ const stepEntries = Object.entries(value.stepsById).map(([stepId, step]) => {
3847
+ if (!stepOrderSet.has(stepId)) {
3848
+ throw new Error(`stepsById contains "${stepId}" but stepOrder does not`);
3849
+ }
3850
+ if (!isJsonObject(step)) {
3851
+ throw new Error(`stepsById.${stepId} must be an object`);
3852
+ }
3853
+ if ("id" in step) {
3854
+ throw new Error(`stepsById.${stepId} must not contain an id field`);
3855
+ }
3856
+ const targetSteps = step.targetSteps;
3857
+ if (!Array.isArray(targetSteps)) {
3858
+ throw new Error(`stepsById.${stepId}.targetSteps must be an array`);
3859
+ }
3860
+ targetSteps.forEach((edge, edgeIndex) => {
3861
+ if (!isJsonObject(edge)) {
3862
+ throw new Error(
3863
+ `stepsById.${stepId}.targetSteps[${edgeIndex}] must be an object`
3864
+ );
3865
+ }
3866
+ if (typeof edge.stepId !== "string" || !stepOrderSet.has(edge.stepId)) {
3867
+ throw new Error(
3868
+ `stepsById.${stepId}.targetSteps[${edgeIndex}].stepId "${String(edge.stepId)}" does not match any step id`
3869
+ );
3870
+ }
3871
+ });
3872
+ return [stepId, step];
3873
+ });
3874
+ for (const stepId of stepOrder) {
3875
+ if (!(stepId in value.stepsById)) {
3876
+ throw new Error(`stepOrder contains "${stepId}" but stepsById does not`);
3877
+ }
3878
+ }
3879
+ return {
3880
+ stepOrder,
3881
+ stepsById: Object.fromEntries(stepEntries)
3882
+ };
3883
+ }
3884
+ __name(assertEaseDocument, "assertEaseDocument");
3885
+ __name2(assertEaseDocument, "assertEaseDocument");
3886
+ function materializeEaseDocument(easeDocument) {
3887
+ const ease = assertEaseDocument(easeDocument);
3888
+ return {
3889
+ steps: ease.stepOrder.map((stepId) => ({
3890
+ id: stepId,
3891
+ ...ease.stepsById[stepId]
3892
+ }))
3893
+ };
3894
+ }
3895
+ __name(materializeEaseDocument, "materializeEaseDocument");
3896
+ __name2(materializeEaseDocument, "materializeEaseDocument");
3897
+ function mergeCurrentProcessPostprocessSlices(previous, steps) {
3898
+ return { ...previous, steps: mergeSteps(previous.steps, steps) };
3899
+ }
3900
+ __name(mergeCurrentProcessPostprocessSlices, "mergeCurrentProcessPostprocessSlices");
3901
+ __name2(mergeCurrentProcessPostprocessSlices, "mergeCurrentProcessPostprocessSlices");
3902
+ function mergeTransformationProposalPostprocessSlices(previous, steps) {
3903
+ return { ...previous, steps: mergeSteps(previous.steps, steps) };
3904
+ }
3905
+ __name(mergeTransformationProposalPostprocessSlices, "mergeTransformationProposalPostprocessSlices");
3906
+ __name2(mergeTransformationProposalPostprocessSlices, "mergeTransformationProposalPostprocessSlices");
3907
+ function createBaseCurrentProcessData(previous, steps) {
3908
+ return postprocessClarityCurrentProcessDataSchema.parse({
3909
+ version: previous.version,
3910
+ steps: steps.map((step) => clarityStepBaseSchema.parse(step))
3911
+ });
3912
+ }
3913
+ __name(createBaseCurrentProcessData, "createBaseCurrentProcessData");
3914
+ __name2(createBaseCurrentProcessData, "createBaseCurrentProcessData");
3915
+ function createBaseTransformationProposalData(previous, steps) {
3916
+ return postprocessClarityTransformationProposalDataSchema.parse({
3917
+ version: previous.version,
3918
+ steps: steps.map((step) => clarityStepBaseSchema.parse(step))
3919
+ });
3920
+ }
3921
+ __name(createBaseTransformationProposalData, "createBaseTransformationProposalData");
3922
+ __name2(createBaseTransformationProposalData, "createBaseTransformationProposalData");
3923
+ function mergeSteps(previousSteps, steps) {
3924
+ const previousById = new Map(previousSteps.map((step) => [step.id, step]));
3925
+ return steps.map((step) => {
3926
+ const prev = previousById.get(step.id);
3927
+ if (!prev) {
3928
+ return step;
3929
+ }
3930
+ return {
3931
+ ...step,
3932
+ readiness: step.readiness ?? prev.readiness,
3933
+ readinessRationale: nonEmptyString(step.readinessRationale) ? step.readinessRationale : prev.readinessRationale,
3934
+ extraCaptureNeeded: step.extraCaptureNeeded ?? prev.extraCaptureNeeded
3935
+ };
3936
+ });
3937
+ }
3938
+ __name(mergeSteps, "mergeSteps");
3939
+ __name2(mergeSteps, "mergeSteps");
3940
+ function nonEmptyString(value) {
3941
+ return value != null && value.length > 0;
3942
+ }
3943
+ __name(nonEmptyString, "nonEmptyString");
3944
+ __name2(nonEmptyString, "nonEmptyString");
3715
3945
  var MAX_PROCESS_GUIDANCE_PROMPT_CHARS = 500;
3716
3946
  function removeControlCharacters(value) {
3717
3947
  return [...value].map((character) => {
@@ -6322,6 +6552,11 @@ var FEATURE_FLAG_CATALOGUE = {
6322
6552
  defaultValue: true,
6323
6553
  description: "Grants a team access to the Windows Remote Desktop beta. Default-on day-one (no known scaling limit); flip off to hide the Enable form and show a Request Access flow on the tile's detail page."
6324
6554
  },
6555
+ CROSS_TEAM_AGENT_MOVE: {
6556
+ key: "cross_team_agent_move",
6557
+ defaultValue: false,
6558
+ description: "Enables the Move Assignment to another team flow. Default-off while we monitor multi-table move semantics in prod; flip on for individual teams to grant access."
6559
+ },
6325
6560
  TEAM_ONTOLOGY: {
6326
6561
  key: "team_ontology",
6327
6562
  defaultValue: false,
@@ -6356,6 +6591,11 @@ var FEATURE_FLAG_CATALOGUE = {
6356
6591
  key: "portfolio_intelligence",
6357
6592
  defaultValue: false,
6358
6593
  description: "Enables portfolio intelligence analysis in the Clarity sidebar, providing cross-process insights and recommendations."
6594
+ },
6595
+ SHARED_CONNECTIONS: {
6596
+ key: "shared_connections",
6597
+ defaultValue: false,
6598
+ description: "Grants connection sharing to teams that are NOT part of an organization (org-less teams have no org-level `connections_sharing_enabled` kill-switch). Resolved with team > global precedence; a global override turns it on for every org-less team. Teams inside an organization are governed solely by their org's setting and are unaffected by this flag."
6359
6599
  }
6360
6600
  };
6361
6601
  var FEATURE_FLAGS = Object.fromEntries(
@@ -10028,40 +10268,56 @@ import { readFile as readFile2 } from "node:fs/promises";
10028
10268
  import { confirm as confirm2, isCancel as isCancel2, text } from "@clack/prompts";
10029
10269
 
10030
10270
  // src/api/agent-schemas.ts
10271
+ import { z as z68 } from "zod";
10272
+
10273
+ // src/api/json-value.ts
10031
10274
  import { z as z67 } from "zod";
10032
- var publicAgentSchema = z67.object({
10033
- id: z67.string(),
10034
- name: z67.string(),
10035
- slack_enabled: z67.boolean().nullish(),
10036
- microsoft_teams_enabled: z67.boolean().nullish(),
10037
- agentic_memory_enabled: z67.boolean().nullish(),
10038
- thread_id: z67.string().nullish(),
10039
- created_at: z67.string().nullish(),
10040
- updated_at: z67.string().nullish()
10041
- });
10042
- var publicBuildSchema = z67.object({
10043
- id: z67.string(),
10044
- agent_id: z67.string(),
10045
- name: z67.string(),
10046
- revision_number: z67.number().nullish(),
10047
- created_at: z67.string().nullish(),
10048
- updated_at: z67.string().nullish()
10049
- });
10050
- var listAgentsResponseSchema = z67.object({
10051
- agents: z67.array(publicAgentSchema),
10052
- total: z67.number().nullish(),
10053
- limit: z67.number().nullish(),
10054
- offset: z67.number().nullish()
10055
- });
10056
- var getAgentResponseSchema = z67.object({
10275
+ var jsonValueSchema = z67.lazy(
10276
+ () => z67.union([
10277
+ z67.string(),
10278
+ z67.number(),
10279
+ z67.boolean(),
10280
+ z67.null(),
10281
+ z67.array(jsonValueSchema),
10282
+ z67.record(z67.string(), jsonValueSchema)
10283
+ ])
10284
+ );
10285
+
10286
+ // src/api/agent-schemas.ts
10287
+ var publicAgentSchema = z68.object({
10288
+ id: z68.string(),
10289
+ name: z68.string(),
10290
+ slack_enabled: z68.boolean().nullish(),
10291
+ microsoft_teams_enabled: z68.boolean().nullish(),
10292
+ agentic_memory_enabled: z68.boolean().nullish(),
10293
+ thread_id: z68.string().nullish(),
10294
+ created_at: z68.string().nullish(),
10295
+ updated_at: z68.string().nullish(),
10296
+ latest_build: z68.object({ config: jsonValueSchema.nullish() }).nullish()
10297
+ });
10298
+ var publicBuildSchema = z68.object({
10299
+ id: z68.string(),
10300
+ agent_id: z68.string(),
10301
+ name: z68.string(),
10302
+ revision_number: z68.number().nullish(),
10303
+ created_at: z68.string().nullish(),
10304
+ updated_at: z68.string().nullish()
10305
+ });
10306
+ var listAgentsResponseSchema = z68.object({
10307
+ agents: z68.array(publicAgentSchema),
10308
+ total: z68.number().nullish(),
10309
+ limit: z68.number().nullish(),
10310
+ offset: z68.number().nullish()
10311
+ });
10312
+ var getAgentResponseSchema = z68.object({
10057
10313
  agent: publicAgentSchema
10058
10314
  });
10059
- var createAgentResponseSchema = z67.object({
10315
+ var createAgentResponseSchema = z68.object({
10060
10316
  agent: publicAgentSchema,
10061
10317
  build: publicBuildSchema.optional()
10062
10318
  });
10063
- var deleteAgentResponseSchema = z67.object({
10064
- success: z67.literal(true)
10319
+ var deleteAgentResponseSchema = z68.object({
10320
+ success: z68.literal(true)
10065
10321
  });
10066
10322
  var buildConfigSchema = StoredAgentConfigSchemaV2;
10067
10323
  var DEFAULT_NEW_AGENT_NAME = DEFAULT_AGENT_NAME;
@@ -10071,6 +10327,77 @@ var DEFAULT_BUILD_CONFIG = {
10071
10327
  data: DEFAULT_AGENT_CONFIG
10072
10328
  };
10073
10329
 
10330
+ // src/commands/shared/is-interactive-terminal.ts
10331
+ function isInteractiveTerminal() {
10332
+ return process.stdin.isTTY === true && process.stdout.isTTY === true;
10333
+ }
10334
+ __name(isInteractiveTerminal, "isInteractiveTerminal");
10335
+
10336
+ // src/commands/agents/model-option.ts
10337
+ var MODEL_IDS = CLAUDE_MODEL_IDS;
10338
+ var NO_MODEL_LABEL = "\u2014";
10339
+ function modelFromConfig(config) {
10340
+ if (config === null || config === void 0) {
10341
+ return NO_MODEL_LABEL;
10342
+ }
10343
+ const { config: parsed } = parseAgentConfig(config);
10344
+ return parsed ? parsed.models.agent.model : NO_MODEL_LABEL;
10345
+ }
10346
+ __name(modelFromConfig, "modelFromConfig");
10347
+ function isCoreClaudeModelId(value) {
10348
+ return MODEL_IDS.includes(value);
10349
+ }
10350
+ __name(isCoreClaudeModelId, "isCoreClaudeModelId");
10351
+ function formatModelChoices() {
10352
+ return MODEL_IDS.map(
10353
+ (id) => ` ${id} \u2014 ${AVAILABLE_AGENT_MODELS[id].displayName}`
10354
+ ).join("\n");
10355
+ }
10356
+ __name(formatModelChoices, "formatModelChoices");
10357
+ function resolveModelFlag(flag) {
10358
+ const trimmed = flag.trim();
10359
+ if (trimmed.length === 0) {
10360
+ throw new CliError("--model must not be empty");
10361
+ }
10362
+ if (!isCoreClaudeModelId(trimmed)) {
10363
+ throw new CliError(
10364
+ `Unknown model "${trimmed}". Available models:
10365
+ ${formatModelChoices()}`
10366
+ );
10367
+ }
10368
+ return trimmed;
10369
+ }
10370
+ __name(resolveModelFlag, "resolveModelFlag");
10371
+ function listAgentModels() {
10372
+ return MODEL_IDS.map((id) => ({
10373
+ id,
10374
+ displayName: AVAILABLE_AGENT_MODELS[id].displayName,
10375
+ description: AVAILABLE_AGENT_MODELS[id].description ?? "",
10376
+ isDefault: id === PLATFORM_DEFAULT_MODELS.agent.model
10377
+ }));
10378
+ }
10379
+ __name(listAgentModels, "listAgentModels");
10380
+ function buildModelPickerOptions() {
10381
+ return MODEL_IDS.map((id) => ({
10382
+ value: id,
10383
+ label: `${AVAILABLE_AGENT_MODELS[id].displayName} (${id})`
10384
+ }));
10385
+ }
10386
+ __name(buildModelPickerOptions, "buildModelPickerOptions");
10387
+ function applyModelToConfig(config, model) {
10388
+ return {
10389
+ ...config,
10390
+ data: {
10391
+ ...config.data,
10392
+ models: {
10393
+ ...config.data.models,
10394
+ agent: { ...config.data.models.agent, model }
10395
+ }
10396
+ }
10397
+ };
10398
+ }
10399
+ __name(applyModelToConfig, "applyModelToConfig");
10400
+
10074
10401
  // src/commands/agents/create.ts
10075
10402
  function registerAgentsCreate(agents) {
10076
10403
  agents.command("create").description("Create a new agent").option("--name <name>", "human-readable agent name").option(
@@ -10079,11 +10406,18 @@ function registerAgentsCreate(agents) {
10079
10406
  ).option(
10080
10407
  "--config <path>",
10081
10408
  "path to a JSON file with the full build config (overrides --input)"
10409
+ ).option(
10410
+ "--model <model>",
10411
+ "Claude model the agent should use (overrides the model in --config)"
10082
10412
  ).option("--no-build", "create the agent without an initial build").option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function createAction(options) {
10083
10413
  const resolved = await requireAuthenticatedConfig(this);
10084
10414
  const teamId = await resolveRequiredTeamId(resolved, {
10085
10415
  override: getTeamFlag(this)
10086
10416
  });
10417
+ const model = options.model !== void 0 ? resolveModelFlag(options.model) : void 0;
10418
+ if (options.build === false && model !== void 0) {
10419
+ throw new CliError("--model cannot be combined with --no-build.");
10420
+ }
10087
10421
  const name = await resolveName(options.name);
10088
10422
  const body = { name };
10089
10423
  if (options.build !== false) {
@@ -10091,7 +10425,7 @@ function registerAgentsCreate(agents) {
10091
10425
  if (config) {
10092
10426
  body.build = {
10093
10427
  name: DEFAULT_BUILD_NAME,
10094
- config
10428
+ config: model ? applyModelToConfig(config, model) : config
10095
10429
  };
10096
10430
  }
10097
10431
  }
@@ -10120,6 +10454,12 @@ function registerAgentsCreate(agents) {
10120
10454
  ];
10121
10455
  if (build) {
10122
10456
  entries.push({ label: "Build", value: `${build.id} (${build.name})` });
10457
+ if (body.build) {
10458
+ entries.push({
10459
+ label: "Model",
10460
+ value: modelFromConfig(body.build.config)
10461
+ });
10462
+ }
10123
10463
  }
10124
10464
  console.log(green("Agent created!"));
10125
10465
  console.log();
@@ -10127,10 +10467,6 @@ function registerAgentsCreate(agents) {
10127
10467
  }, "createAction"));
10128
10468
  }
10129
10469
  __name(registerAgentsCreate, "registerAgentsCreate");
10130
- function isInteractiveTerminal() {
10131
- return process.stdin.isTTY === true && process.stdout.isTTY === true;
10132
- }
10133
- __name(isInteractiveTerminal, "isInteractiveTerminal");
10134
10470
  async function resolveName(flag) {
10135
10471
  if (flag !== void 0) {
10136
10472
  const trimmed2 = flag.trim();
@@ -10289,7 +10625,56 @@ function registerAgentsDelete(agents) {
10289
10625
  }
10290
10626
  __name(registerAgentsDelete, "registerAgentsDelete");
10291
10627
 
10628
+ // src/api/build-schemas.ts
10629
+ import { z as z69 } from "zod";
10630
+ var publicBuildSchema2 = z69.object({
10631
+ id: z69.string(),
10632
+ agent_id: z69.string(),
10633
+ name: z69.string(),
10634
+ status: z69.string().nullish(),
10635
+ config: jsonValueSchema.nullish(),
10636
+ revision_number: z69.number().nullish(),
10637
+ created_at: z69.string().nullish(),
10638
+ updated_at: z69.string().nullish()
10639
+ });
10640
+ var listBuildsResponseSchema2 = z69.object({
10641
+ builds: z69.array(publicBuildSchema2),
10642
+ total: z69.number().nullish(),
10643
+ limit: z69.number().nullish(),
10644
+ offset: z69.number().nullish()
10645
+ });
10646
+ var getBuildResponseSchema = z69.object({
10647
+ build: publicBuildSchema2
10648
+ });
10649
+ var createBuildResponseSchema = z69.object({
10650
+ build: publicBuildSchema2,
10651
+ agent: z69.object({ id: z69.string() })
10652
+ });
10653
+
10292
10654
  // src/commands/agents/get.ts
10655
+ async function fetchLatestModel(agentId, apiKey, apiBaseUrl) {
10656
+ const searchParams = new URLSearchParams();
10657
+ searchParams.append("limit", "1");
10658
+ searchParams.append("offset", "0");
10659
+ try {
10660
+ const raw = await httpRequest({
10661
+ method: "GET",
10662
+ path: `/v2/agents/${encodeURIComponent(agentId)}/revisions`,
10663
+ apiKey,
10664
+ apiBaseUrl,
10665
+ searchParams
10666
+ });
10667
+ const parsed = listBuildsResponseSchema2.safeParse(raw);
10668
+ if (!parsed.success) {
10669
+ return NO_MODEL_LABEL;
10670
+ }
10671
+ const latest = parsed.data.builds[0];
10672
+ return latest ? modelFromConfig(latest.config) : NO_MODEL_LABEL;
10673
+ } catch {
10674
+ return NO_MODEL_LABEL;
10675
+ }
10676
+ }
10677
+ __name(fetchLatestModel, "fetchLatestModel");
10293
10678
  function registerAgentsGet(agents) {
10294
10679
  agents.command("get <id>").description("Get an agent by ID").option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function getAction(id, options) {
10295
10680
  const { apiKey, apiBaseUrl } = await requireAuthenticatedConfig(this);
@@ -10310,10 +10695,12 @@ function registerAgentsGet(agents) {
10310
10695
  );
10311
10696
  }
10312
10697
  const { agent } = parsed.data;
10698
+ const model = await fetchLatestModel(agent.id, apiKey, apiBaseUrl);
10313
10699
  console.log(
10314
10700
  renderKeyValue([
10315
10701
  { label: "ID", value: agent.id },
10316
10702
  { label: "Name", value: agent.name },
10703
+ { label: "Model", value: model },
10317
10704
  { label: "Created", value: agent.created_at ?? "" },
10318
10705
  { label: "Updated", value: agent.updated_at ?? "" }
10319
10706
  ])
@@ -10356,6 +10743,10 @@ var MAX_LIMIT = 100;
10356
10743
  var TABLE_COLUMNS4 = [
10357
10744
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
10358
10745
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
10746
+ {
10747
+ header: "MODEL",
10748
+ cell: /* @__PURE__ */ __name((row) => modelFromConfig(row.latest_build?.config), "cell")
10749
+ },
10359
10750
  { header: "CREATED", cell: /* @__PURE__ */ __name((row) => row.created_at ?? "", "cell") }
10360
10751
  ];
10361
10752
  function registerAgentsList(agents) {
@@ -10479,31 +10870,58 @@ function registerAgentsMemory(agents) {
10479
10870
  }
10480
10871
  __name(registerAgentsMemory, "registerAgentsMemory");
10481
10872
 
10873
+ // src/commands/agents/models.ts
10874
+ var DEFAULT_MARKER = "\u2713";
10875
+ var TABLE_COLUMNS6 = [
10876
+ { header: "MODEL", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
10877
+ { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.displayName, "cell") },
10878
+ {
10879
+ header: "DEFAULT",
10880
+ cell: /* @__PURE__ */ __name((row) => row.isDefault ? DEFAULT_MARKER : "", "cell")
10881
+ },
10882
+ { header: "DESCRIPTION", cell: /* @__PURE__ */ __name((row) => row.description, "cell") }
10883
+ ];
10884
+ function registerAgentsModels(agents) {
10885
+ agents.command("models").description("List the LLM models available for agents").option("--json", "output raw JSON").action(/* @__PURE__ */ __name(function modelsAction(options) {
10886
+ const models = listAgentModels();
10887
+ if (options.json) {
10888
+ printJson(models);
10889
+ return;
10890
+ }
10891
+ console.log(renderTable(TABLE_COLUMNS6, models));
10892
+ console.log();
10893
+ console.log(
10894
+ `Use a MODEL value with \`duvo agents create --model <model>\` or \`duvo agents set-model <id> --model <model>\`.`
10895
+ );
10896
+ }, "modelsAction"));
10897
+ }
10898
+ __name(registerAgentsModels, "registerAgentsModels");
10899
+
10482
10900
  // src/api/schedule-schemas.ts
10483
- import { z as z68 } from "zod";
10484
- var publicScheduleSchema = z68.object({
10485
- id: z68.string(),
10486
- build_id: z68.string(),
10487
- agent_id: z68.string(),
10488
- user_id: z68.string(),
10489
- enabled: z68.boolean(),
10490
- frequency: z68.string(),
10491
- time: z68.string().nullish(),
10492
- timezone: z68.string(),
10493
- day: z68.string().nullish(),
10494
- day_of_month: z68.number().nullish(),
10495
- cron: z68.string().nullish(),
10496
- source: z68.string().nullish(),
10497
- task: z68.string().nullish(),
10498
- recurring: z68.boolean().nullish(),
10499
- created_at: z68.string(),
10500
- updated_at: z68.string()
10501
- });
10502
- var listSchedulesResponseSchema = z68.object({
10503
- schedules: z68.array(publicScheduleSchema)
10504
- });
10505
- var deleteScheduleResponseSchema = z68.object({
10506
- success: z68.literal(true)
10901
+ import { z as z70 } from "zod";
10902
+ var publicScheduleSchema = z70.object({
10903
+ id: z70.string(),
10904
+ build_id: z70.string(),
10905
+ agent_id: z70.string(),
10906
+ user_id: z70.string(),
10907
+ enabled: z70.boolean(),
10908
+ frequency: z70.string(),
10909
+ time: z70.string().nullish(),
10910
+ timezone: z70.string(),
10911
+ day: z70.string().nullish(),
10912
+ day_of_month: z70.number().nullish(),
10913
+ cron: z70.string().nullish(),
10914
+ source: z70.string().nullish(),
10915
+ task: z70.string().nullish(),
10916
+ recurring: z70.boolean().nullish(),
10917
+ created_at: z70.string(),
10918
+ updated_at: z70.string()
10919
+ });
10920
+ var listSchedulesResponseSchema = z70.object({
10921
+ schedules: z70.array(publicScheduleSchema)
10922
+ });
10923
+ var deleteScheduleResponseSchema = z70.object({
10924
+ success: z70.literal(true)
10507
10925
  });
10508
10926
 
10509
10927
  // src/commands/agents/schedules/render-schedule.ts
@@ -10682,7 +11100,7 @@ __name(registerAgentsSchedulesDelete, "registerAgentsSchedulesDelete");
10682
11100
 
10683
11101
  // src/commands/agents/schedules/list.ts
10684
11102
  var TASK_PREVIEW_WIDTH = 40;
10685
- var TABLE_COLUMNS6 = [
11103
+ var TABLE_COLUMNS7 = [
10686
11104
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
10687
11105
  {
10688
11106
  header: "ENABLED",
@@ -10741,7 +11159,7 @@ function registerAgentsSchedulesList(schedules) {
10741
11159
  console.log("No schedules found.");
10742
11160
  return;
10743
11161
  }
10744
- console.log(renderTable(TABLE_COLUMNS6, rows));
11162
+ console.log(renderTable(TABLE_COLUMNS7, rows));
10745
11163
  console.log(`Showing ${rows.length}`);
10746
11164
  }, "listAction"));
10747
11165
  }
@@ -10860,39 +11278,129 @@ function registerAgentsSchedules(agents) {
10860
11278
  }
10861
11279
  __name(registerAgentsSchedules, "registerAgentsSchedules");
10862
11280
 
11281
+ // src/commands/agents/set-model.ts
11282
+ import { isCancel as isCancel3, select } from "@clack/prompts";
11283
+ async function resolveModel(flag) {
11284
+ if (flag !== void 0) {
11285
+ return resolveModelFlag(flag);
11286
+ }
11287
+ if (!isInteractiveTerminal()) {
11288
+ throw new CliError(
11289
+ "--model is required in non-interactive shells (e.g. --model claude-opus-4-7)."
11290
+ );
11291
+ }
11292
+ const answer = await select({
11293
+ message: "Select a model for this agent",
11294
+ options: buildModelPickerOptions()
11295
+ });
11296
+ if (isCancel3(answer)) {
11297
+ throw new CancelCliError("Model switch cancelled.");
11298
+ }
11299
+ return answer;
11300
+ }
11301
+ __name(resolveModel, "resolveModel");
11302
+ function buildConfigWithModel(rawConfig, model) {
11303
+ const { config } = parseAgentConfig(rawConfig);
11304
+ const data = config ?? DEFAULT_AGENT_CONFIG;
11305
+ return {
11306
+ version: AGENT_CONFIG_VERSION,
11307
+ data: {
11308
+ ...data,
11309
+ models: {
11310
+ ...data.models,
11311
+ agent: { ...data.models.agent, model }
11312
+ }
11313
+ }
11314
+ };
11315
+ }
11316
+ __name(buildConfigWithModel, "buildConfigWithModel");
11317
+ function registerAgentsSetModel(agents) {
11318
+ agents.command("set-model <id>").description("Switch the LLM model used by an agent's latest revision").option(
11319
+ "--model <model>",
11320
+ "Claude model to switch to (interactive picker when omitted)"
11321
+ ).option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function setModelAction(id, options) {
11322
+ const agentId = trimRequired(id, "<id>");
11323
+ const { apiKey, apiBaseUrl } = await requireAuthenticatedConfig(this);
11324
+ const model = await resolveModel(options.model);
11325
+ const searchParams = new URLSearchParams();
11326
+ searchParams.append("limit", "1");
11327
+ searchParams.append("offset", "0");
11328
+ const listRaw = await httpRequest({
11329
+ method: "GET",
11330
+ path: `/v2/agents/${encodeURIComponent(agentId)}/revisions`,
11331
+ apiKey,
11332
+ apiBaseUrl,
11333
+ searchParams
11334
+ });
11335
+ const listParsed = listBuildsResponseSchema2.safeParse(listRaw);
11336
+ if (!listParsed.success) {
11337
+ throw new CliError(
11338
+ `Unexpected response from the API: ${listParsed.error.message}`
11339
+ );
11340
+ }
11341
+ const latest = listParsed.data.builds[0];
11342
+ if (!latest) {
11343
+ throw new CliError(
11344
+ "This agent has no revisions yet. Create one with `duvo builds create` first."
11345
+ );
11346
+ }
11347
+ const config = buildConfigWithModel(latest.config, model);
11348
+ const raw = await httpRequest({
11349
+ method: "PATCH",
11350
+ path: `/v2/revisions/${encodeURIComponent(latest.id)}`,
11351
+ apiKey,
11352
+ apiBaseUrl,
11353
+ body: { config }
11354
+ });
11355
+ if (options.json) {
11356
+ printJson(raw);
11357
+ return;
11358
+ }
11359
+ console.log(green("Model updated!"));
11360
+ console.log(
11361
+ renderKeyValue([
11362
+ { label: "Agent", value: agentId },
11363
+ { label: "Revision", value: latest.id },
11364
+ { label: "Model", value: model }
11365
+ ])
11366
+ );
11367
+ }, "setModelAction"));
11368
+ }
11369
+ __name(registerAgentsSetModel, "registerAgentsSetModel");
11370
+
10863
11371
  // src/api/trigger-schemas.ts
10864
- import { z as z69 } from "zod";
10865
- var triggerSchema = z69.object({
10866
- id: z69.string(),
10867
- agent_id: z69.string(),
10868
- user_id: z69.string(),
10869
- integration_slug: z69.string(),
10870
- trigger_type: z69.string(),
10871
- filter_config: z69.record(z69.string(), z69.unknown()),
10872
- integration_instance_id: z69.string(),
10873
- enabled: z69.boolean(),
10874
- created_at: z69.string(),
10875
- updated_at: z69.string()
10876
- });
10877
- var listTriggersResponseSchema = z69.object({
10878
- triggers: z69.array(triggerSchema)
10879
- });
10880
- var triggerTypeSchema = z69.object({
10881
- integration_slug: z69.string(),
10882
- integration_name: z69.string(),
10883
- icon_url: z69.string(),
10884
- trigger_type: z69.string(),
10885
- label: z69.string(),
10886
- description: z69.string(),
10887
- filter_schema: z69.record(z69.string(), z69.unknown())
10888
- });
10889
- var listTriggerTypesResponseSchema = z69.object({
10890
- trigger_types: z69.array(triggerTypeSchema)
11372
+ import { z as z71 } from "zod";
11373
+ var triggerSchema = z71.object({
11374
+ id: z71.string(),
11375
+ agent_id: z71.string(),
11376
+ user_id: z71.string(),
11377
+ integration_slug: z71.string(),
11378
+ trigger_type: z71.string(),
11379
+ filter_config: z71.record(z71.string(), z71.unknown()),
11380
+ integration_instance_id: z71.string(),
11381
+ enabled: z71.boolean(),
11382
+ created_at: z71.string(),
11383
+ updated_at: z71.string()
11384
+ });
11385
+ var listTriggersResponseSchema = z71.object({
11386
+ triggers: z71.array(triggerSchema)
11387
+ });
11388
+ var triggerTypeSchema = z71.object({
11389
+ integration_slug: z71.string(),
11390
+ integration_name: z71.string(),
11391
+ icon_url: z71.string(),
11392
+ trigger_type: z71.string(),
11393
+ label: z71.string(),
11394
+ description: z71.string(),
11395
+ filter_schema: z71.record(z71.string(), z71.unknown())
11396
+ });
11397
+ var listTriggerTypesResponseSchema = z71.object({
11398
+ trigger_types: z71.array(triggerTypeSchema)
10891
11399
  });
10892
11400
 
10893
11401
  // src/commands/agents/triggers/list.ts
10894
11402
  var FILTER_PREVIEW_WIDTH = 40;
10895
- var TABLE_COLUMNS7 = [
11403
+ var TABLE_COLUMNS8 = [
10896
11404
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
10897
11405
  { header: "INTEGRATION", cell: /* @__PURE__ */ __name((row) => row.integration_slug, "cell") },
10898
11406
  { header: "TRIGGER TYPE", cell: /* @__PURE__ */ __name((row) => row.trigger_type, "cell") },
@@ -10936,7 +11444,7 @@ function registerAgentsTriggersList(triggers) {
10936
11444
  console.log("No triggers found.");
10937
11445
  return;
10938
11446
  }
10939
- console.log(renderTable(TABLE_COLUMNS7, rows));
11447
+ console.log(renderTable(TABLE_COLUMNS8, rows));
10940
11448
  console.log(`Showing ${rows.length}`);
10941
11449
  }, "listAction"));
10942
11450
  }
@@ -11018,7 +11526,7 @@ __name(registerAgentsTriggersSet, "registerAgentsTriggersSet");
11018
11526
 
11019
11527
  // src/commands/agents/triggers/types.ts
11020
11528
  var DESCRIPTION_PREVIEW_WIDTH = 50;
11021
- var TABLE_COLUMNS8 = [
11529
+ var TABLE_COLUMNS9 = [
11022
11530
  { header: "INTEGRATION", cell: /* @__PURE__ */ __name((row) => row.integration_slug, "cell") },
11023
11531
  { header: "TRIGGER TYPE", cell: /* @__PURE__ */ __name((row) => row.trigger_type, "cell") },
11024
11532
  { header: "LABEL", cell: /* @__PURE__ */ __name((row) => row.label, "cell") },
@@ -11055,7 +11563,7 @@ function registerAgentsTriggersTypes(triggers) {
11055
11563
  console.log("No trigger types available.");
11056
11564
  return;
11057
11565
  }
11058
- console.log(renderTable(TABLE_COLUMNS8, rows));
11566
+ console.log(renderTable(TABLE_COLUMNS9, rows));
11059
11567
  console.log(`Showing ${rows.length}`);
11060
11568
  }, "typesAction"));
11061
11569
  }
@@ -11201,6 +11709,8 @@ function registerAgents(program) {
11201
11709
  registerAgentsGet(agents);
11202
11710
  registerAgentsCreate(agents);
11203
11711
  registerAgentsUpdate(agents);
11712
+ registerAgentsModels(agents);
11713
+ registerAgentsSetModel(agents);
11204
11714
  registerAgentsDelete(agents);
11205
11715
  registerAgentsSchedules(agents);
11206
11716
  registerAgentsCaseTriggers(agents);
@@ -11507,55 +12017,55 @@ function fieldsToSearchParams(fields) {
11507
12017
  __name(fieldsToSearchParams, "fieldsToSearchParams");
11508
12018
 
11509
12019
  // src/api/integration-schemas.ts
11510
- import { z as z70 } from "zod";
11511
- var integrationSchema = z70.object({
11512
- id: z70.string(),
11513
- name: z70.string(),
11514
- type: z70.string(),
11515
- provider: z70.string(),
11516
- user_id: z70.string().nullable(),
11517
- team_id: z70.string(),
11518
- server_url: z70.string().optional(),
11519
- transport_type: z70.string().optional(),
11520
- auth_method: z70.string().nullish(),
11521
- composio_mcp_id: z70.string().nullish(),
11522
- custom_integration_id: z70.string().nullish(),
11523
- icon_url: z70.string().nullish(),
11524
- oauth_provider: z70.string().nullish(),
11525
- oauth_provider_key: z70.string().nullish(),
11526
- oauth_scopes: z70.array(z70.string()).nullish(),
11527
- integration_id: z70.string().nullish(),
11528
- created_at: z70.string(),
11529
- updated_at: z70.string()
11530
- });
11531
- var integrationsListResponseSchema2 = z70.object({
11532
- integrations: z70.array(integrationSchema)
12020
+ import { z as z72 } from "zod";
12021
+ var integrationSchema = z72.object({
12022
+ id: z72.string(),
12023
+ name: z72.string(),
12024
+ type: z72.string(),
12025
+ provider: z72.string(),
12026
+ user_id: z72.string().nullable(),
12027
+ team_id: z72.string(),
12028
+ server_url: z72.string().optional(),
12029
+ transport_type: z72.string().optional(),
12030
+ auth_method: z72.string().nullish(),
12031
+ composio_mcp_id: z72.string().nullish(),
12032
+ custom_integration_id: z72.string().nullish(),
12033
+ icon_url: z72.string().nullish(),
12034
+ oauth_provider: z72.string().nullish(),
12035
+ oauth_provider_key: z72.string().nullish(),
12036
+ oauth_scopes: z72.array(z72.string()).nullish(),
12037
+ integration_id: z72.string().nullish(),
12038
+ created_at: z72.string(),
12039
+ updated_at: z72.string()
12040
+ });
12041
+ var integrationsListResponseSchema2 = z72.object({
12042
+ integrations: z72.array(integrationSchema)
11533
12043
  });
11534
12044
  var connectionResponseSchema = integrationSchema;
11535
- var buildIntegrationConfigSchema2 = z70.object({
11536
- id: z70.string(),
11537
- integration_id: z70.string().nullable(),
11538
- custom_integration_id: z70.string().nullable(),
11539
- integration_type: z70.string(),
11540
- integration_name: z70.string(),
11541
- created_at: z70.string()
12045
+ var buildIntegrationConfigSchema2 = z72.object({
12046
+ id: z72.string(),
12047
+ integration_id: z72.string().nullable(),
12048
+ custom_integration_id: z72.string().nullable(),
12049
+ integration_type: z72.string(),
12050
+ integration_name: z72.string(),
12051
+ created_at: z72.string()
11542
12052
  });
11543
- var listBuildIntegrationsResponseSchema2 = z70.object({
11544
- integrations: z70.array(buildIntegrationConfigSchema2)
12053
+ var listBuildIntegrationsResponseSchema2 = z72.object({
12054
+ integrations: z72.array(buildIntegrationConfigSchema2)
11545
12055
  });
11546
- var attachBuildIntegrationsResponseSchema = z70.object({
11547
- success: z70.boolean(),
11548
- count: z70.number()
12056
+ var attachBuildIntegrationsResponseSchema = z72.object({
12057
+ success: z72.boolean(),
12058
+ count: z72.number()
11549
12059
  });
11550
- var buildIntegrationConnectionSchema = z70.object({
11551
- connection_id: z70.string(),
11552
- created_at: z70.string()
12060
+ var buildIntegrationConnectionSchema = z72.object({
12061
+ connection_id: z72.string(),
12062
+ created_at: z72.string()
11553
12063
  });
11554
- var listBuildIntegrationConnectionsResponseSchema = z70.object({
11555
- connections: z70.array(buildIntegrationConnectionSchema)
12064
+ var listBuildIntegrationConnectionsResponseSchema = z72.object({
12065
+ connections: z72.array(buildIntegrationConnectionSchema)
11556
12066
  });
11557
- var successResponseSchema = z70.object({
11558
- success: z70.boolean()
12067
+ var successResponseSchema = z72.object({
12068
+ success: z72.boolean()
11559
12069
  });
11560
12070
 
11561
12071
  // src/commands/build-integrations/attach.ts
@@ -11597,8 +12107,72 @@ function registerBuildIntegrationsAttach(buildIntegrations) {
11597
12107
  }
11598
12108
  __name(registerBuildIntegrationsAttach, "registerBuildIntegrationsAttach");
11599
12109
 
12110
+ // src/commands/build-integrations/case-queue-setup.ts
12111
+ import { z as z73 } from "zod";
12112
+ var slotSchema = z73.object({
12113
+ config_id: z73.string(),
12114
+ integration_type: z73.string(),
12115
+ linked_queue_count: z73.number()
12116
+ });
12117
+ var responseSchema2 = z73.object({
12118
+ configs: z73.array(slotSchema),
12119
+ has_available_queues: z73.boolean()
12120
+ });
12121
+ var TABLE_COLUMNS10 = [
12122
+ { header: "SLOT ID", cell: /* @__PURE__ */ __name((row) => row.config_id, "cell") },
12123
+ { header: "TYPE", cell: /* @__PURE__ */ __name((row) => row.integration_type, "cell") },
12124
+ { header: "QUEUES", cell: /* @__PURE__ */ __name((row) => String(row.linked_queue_count), "cell") },
12125
+ {
12126
+ header: "STATUS",
12127
+ cell: /* @__PURE__ */ __name((row) => row.linked_queue_count === 0 ? "no queue linked \u2014 will fail" : "ok", "cell")
12128
+ }
12129
+ ];
12130
+ function registerBuildIntegrationsCaseQueueSetup(buildIntegrations) {
12131
+ buildIntegrations.command("case-queue-setup").description(
12132
+ "Check that a revision's case-queue integration slots each point at a queue"
12133
+ ).requiredOption("--agent <id>", "ID of the agent the revision belongs to").requiredOption("--revision <id>", "ID of the revision").option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function setupAction(options) {
12134
+ const { apiKey, apiBaseUrl } = await requireAuthenticatedConfig(this);
12135
+ const raw = await httpRequest({
12136
+ method: "GET",
12137
+ path: `/v2/agents/${encodeURIComponent(options.agent)}/revisions/${encodeURIComponent(options.revision)}/case-queue-validation`,
12138
+ apiKey,
12139
+ apiBaseUrl
12140
+ });
12141
+ if (options.json) {
12142
+ printJson(raw);
12143
+ return;
12144
+ }
12145
+ const parsed = responseSchema2.safeParse(raw);
12146
+ if (!parsed.success) {
12147
+ throw new CliError(
12148
+ `Unexpected response from the API: ${parsed.error.message}`
12149
+ );
12150
+ }
12151
+ const { configs, has_available_queues: hasAvailableQueues } = parsed.data;
12152
+ if (configs.length === 0) {
12153
+ console.log("No case-queue integration slots on this revision.");
12154
+ return;
12155
+ }
12156
+ console.log(renderTable(TABLE_COLUMNS10, configs));
12157
+ const unmapped = configs.filter((slot) => slot.linked_queue_count === 0);
12158
+ if (unmapped.length > 0) {
12159
+ console.log(
12160
+ `${unmapped.length} slot(s) point at no queue and will fail at runtime \u2014 link a queue with "revision-integrations queues set".`
12161
+ );
12162
+ if (!hasAvailableQueues) {
12163
+ console.log(
12164
+ 'Your team owns no case queues yet \u2014 create one with "queues create" first.'
12165
+ );
12166
+ }
12167
+ } else {
12168
+ console.log("All case-queue slots are linked to at least one queue.");
12169
+ }
12170
+ }, "setupAction"));
12171
+ }
12172
+ __name(registerBuildIntegrationsCaseQueueSetup, "registerBuildIntegrationsCaseQueueSetup");
12173
+
11600
12174
  // src/commands/build-integrations/connections-list.ts
11601
- var TABLE_COLUMNS9 = [
12175
+ var TABLE_COLUMNS11 = [
11602
12176
  {
11603
12177
  header: "CONNECTION ID",
11604
12178
  cell: /* @__PURE__ */ __name((row) => row.connection_id, "cell")
@@ -11637,7 +12211,7 @@ function registerBuildIntegrationsConnectionsList(connections) {
11637
12211
  console.log("No connections pinned to this slot.");
11638
12212
  return;
11639
12213
  }
11640
- console.log(renderTable(TABLE_COLUMNS9, rows));
12214
+ console.log(renderTable(TABLE_COLUMNS11, rows));
11641
12215
  console.log(`Showing ${rows.length}`);
11642
12216
  }, "listAction"));
11643
12217
  }
@@ -11707,7 +12281,7 @@ function registerBuildIntegrationsConnectionsUnpin(connections) {
11707
12281
  __name(registerBuildIntegrationsConnectionsUnpin, "registerBuildIntegrationsConnectionsUnpin");
11708
12282
 
11709
12283
  // src/commands/build-integrations/list.ts
11710
- var TABLE_COLUMNS10 = [
12284
+ var TABLE_COLUMNS12 = [
11711
12285
  {
11712
12286
  header: "INTEGRATION ID",
11713
12287
  cell: /* @__PURE__ */ __name((row) => row.integration_id ?? row.custom_integration_id ?? "", "cell")
@@ -11747,14 +12321,14 @@ function registerBuildIntegrationsList(buildIntegrations) {
11747
12321
  console.log("No integrations attached to this revision.");
11748
12322
  return;
11749
12323
  }
11750
- console.log(renderTable(TABLE_COLUMNS10, integrations));
12324
+ console.log(renderTable(TABLE_COLUMNS12, integrations));
11751
12325
  console.log(`Showing ${integrations.length}`);
11752
12326
  }, "listAction"));
11753
12327
  }
11754
12328
  __name(registerBuildIntegrationsList, "registerBuildIntegrationsList");
11755
12329
 
11756
12330
  // src/commands/build-integrations/queues-list.ts
11757
- var TABLE_COLUMNS11 = [
12331
+ var TABLE_COLUMNS13 = [
11758
12332
  { header: "QUEUE ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
11759
12333
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") }
11760
12334
  ];
@@ -11786,14 +12360,14 @@ function registerBuildIntegrationsQueuesList(queues) {
11786
12360
  console.log("No case queues linked to this integration slot.");
11787
12361
  return;
11788
12362
  }
11789
- console.log(renderTable(TABLE_COLUMNS11, parsed.data.queues));
12363
+ console.log(renderTable(TABLE_COLUMNS13, parsed.data.queues));
11790
12364
  console.log(`Showing ${parsed.data.queues.length}`);
11791
12365
  }, "listAction"));
11792
12366
  }
11793
12367
  __name(registerBuildIntegrationsQueuesList, "registerBuildIntegrationsQueuesList");
11794
12368
 
11795
12369
  // src/commands/build-integrations/queues-set.ts
11796
- var TABLE_COLUMNS12 = [
12370
+ var TABLE_COLUMNS14 = [
11797
12371
  { header: "QUEUE ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
11798
12372
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") }
11799
12373
  ];
@@ -11835,7 +12409,7 @@ function registerBuildIntegrationsQueuesSet(queues) {
11835
12409
  green(`Linked ${parsed.data.queues.length} case queue(s) to the slot.`)
11836
12410
  );
11837
12411
  if (parsed.data.queues.length > 0) {
11838
- console.log(renderTable(TABLE_COLUMNS12, parsed.data.queues));
12412
+ console.log(renderTable(TABLE_COLUMNS14, parsed.data.queues));
11839
12413
  }
11840
12414
  }, "setAction"));
11841
12415
  }
@@ -11878,6 +12452,7 @@ function registerBuildIntegrations(program) {
11878
12452
  registerBuildIntegrationsList(buildIntegrations);
11879
12453
  registerBuildIntegrationsAttach(buildIntegrations);
11880
12454
  registerBuildIntegrationsRemove(buildIntegrations);
12455
+ registerBuildIntegrationsCaseQueueSetup(buildIntegrations);
11881
12456
  const connections = buildIntegrations.command("connections").description(
11882
12457
  "Manage your pinned connections for a revision's integration slot"
11883
12458
  );
@@ -11892,47 +12467,6 @@ function registerBuildIntegrations(program) {
11892
12467
  }
11893
12468
  __name(registerBuildIntegrations, "registerBuildIntegrations");
11894
12469
 
11895
- // src/api/build-schemas.ts
11896
- import { z as z72 } from "zod";
11897
-
11898
- // src/api/json-value.ts
11899
- import { z as z71 } from "zod";
11900
- var jsonValueSchema = z71.lazy(
11901
- () => z71.union([
11902
- z71.string(),
11903
- z71.number(),
11904
- z71.boolean(),
11905
- z71.null(),
11906
- z71.array(jsonValueSchema),
11907
- z71.record(z71.string(), jsonValueSchema)
11908
- ])
11909
- );
11910
-
11911
- // src/api/build-schemas.ts
11912
- var publicBuildSchema2 = z72.object({
11913
- id: z72.string(),
11914
- agent_id: z72.string(),
11915
- name: z72.string(),
11916
- status: z72.string().nullish(),
11917
- config: jsonValueSchema.nullish(),
11918
- revision_number: z72.number().nullish(),
11919
- created_at: z72.string().nullish(),
11920
- updated_at: z72.string().nullish()
11921
- });
11922
- var listBuildsResponseSchema2 = z72.object({
11923
- builds: z72.array(publicBuildSchema2),
11924
- total: z72.number().nullish(),
11925
- limit: z72.number().nullish(),
11926
- offset: z72.number().nullish()
11927
- });
11928
- var getBuildResponseSchema = z72.object({
11929
- build: publicBuildSchema2
11930
- });
11931
- var createBuildResponseSchema = z72.object({
11932
- build: publicBuildSchema2,
11933
- agent: z72.object({ id: z72.string() })
11934
- });
11935
-
11936
12470
  // src/commands/builds/create.ts
11937
12471
  function registerBuildsCreate(builds) {
11938
12472
  builds.command("create").description("Create a new revision for an existing agent").requiredOption("--agent <id>", "ID of the agent this revision belongs to").requiredOption("--name <text>", "revision name").requiredOption(
@@ -12024,7 +12558,7 @@ __name(registerBuildsGet, "registerBuildsGet");
12024
12558
  var DEFAULT_LIMIT2 = 20;
12025
12559
  var MIN_LIMIT2 = 1;
12026
12560
  var MAX_LIMIT2 = 100;
12027
- var TABLE_COLUMNS13 = [
12561
+ var TABLE_COLUMNS15 = [
12028
12562
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
12029
12563
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
12030
12564
  {
@@ -12067,7 +12601,7 @@ function registerBuildsList(builds) {
12067
12601
  console.log("No revisions found.");
12068
12602
  return;
12069
12603
  }
12070
- console.log(renderTable(TABLE_COLUMNS13, response.builds));
12604
+ console.log(renderTable(TABLE_COLUMNS15, response.builds));
12071
12605
  const resolvedOffset = response.offset ?? offset;
12072
12606
  const total = response.total ?? null;
12073
12607
  const summary = total === null ? `Showing ${response.builds.length} \xB7 offset ${resolvedOffset}` : `Showing ${response.builds.length} of ${total} \xB7 offset ${resolvedOffset}`;
@@ -12077,9 +12611,9 @@ function registerBuildsList(builds) {
12077
12611
  __name(registerBuildsList, "registerBuildsList");
12078
12612
 
12079
12613
  // src/commands/builds/promote.ts
12080
- import { z as z73 } from "zod";
12081
- var promoteResponseSchema = z73.object({
12082
- success: z73.boolean()
12614
+ import { z as z74 } from "zod";
12615
+ var promoteResponseSchema = z74.object({
12616
+ success: z74.boolean()
12083
12617
  });
12084
12618
  function registerBuildsPromote(builds) {
12085
12619
  builds.command("promote <id>").description(
@@ -12538,7 +13072,7 @@ __name(fetchQueueCaseCount, "fetchQueueCaseCount");
12538
13072
 
12539
13073
  // src/commands/cases/create.ts
12540
13074
  import { readFile as readFile4 } from "node:fs/promises";
12541
- var TABLE_COLUMNS14 = [
13075
+ var TABLE_COLUMNS16 = [
12542
13076
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
12543
13077
  { header: "TITLE", cell: /* @__PURE__ */ __name((row) => row.title, "cell"), maxWidth: 50 },
12544
13078
  { header: "STATUS", cell: /* @__PURE__ */ __name((row) => row.status, "cell") }
@@ -12581,7 +13115,7 @@ function registerCasesCreate(cases) {
12581
13115
  )
12582
13116
  );
12583
13117
  console.log();
12584
- console.log(renderTable(TABLE_COLUMNS14, addedCases));
13118
+ console.log(renderTable(TABLE_COLUMNS16, addedCases));
12585
13119
  }, "createAction"));
12586
13120
  }
12587
13121
  __name(registerCasesCreate, "registerCasesCreate");
@@ -12816,7 +13350,7 @@ __name(registerCasesGet, "registerCasesGet");
12816
13350
 
12817
13351
  // src/commands/cases/labels.ts
12818
13352
  var MAX_LABELS_PER_REQUEST = 50;
12819
- var TABLE_COLUMNS15 = [
13353
+ var TABLE_COLUMNS17 = [
12820
13354
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
12821
13355
  { header: "KEY", cell: /* @__PURE__ */ __name((row) => row.key, "cell") },
12822
13356
  { header: "VALUE", cell: /* @__PURE__ */ __name((row) => row.value, "cell") },
@@ -12846,7 +13380,7 @@ function registerCasesLabels(cases) {
12846
13380
  console.log("No labels assigned.");
12847
13381
  return;
12848
13382
  }
12849
- console.log(renderTable(TABLE_COLUMNS15, parsed.data.labels));
13383
+ console.log(renderTable(TABLE_COLUMNS17, parsed.data.labels));
12850
13384
  console.log(`Showing ${parsed.data.labels.length}`);
12851
13385
  }, "listAction"));
12852
13386
  labels.command("assign <case-id>").description(
@@ -12886,7 +13420,7 @@ function registerCasesLabels(cases) {
12886
13420
  );
12887
13421
  }
12888
13422
  console.log(green("Labels assigned!"));
12889
- console.log(renderTable(TABLE_COLUMNS15, parsed.data.labels));
13423
+ console.log(renderTable(TABLE_COLUMNS17, parsed.data.labels));
12890
13424
  }, "assignAction"));
12891
13425
  labels.command("unlink <case-id>").description(
12892
13426
  "Remove one or more labels from a case (by --label-id or --label key=value, for symmetry with assign)"
@@ -13004,7 +13538,7 @@ var MIN_LIMIT3 = 1;
13004
13538
  var MAX_LIMIT3 = 100;
13005
13539
  var SORT_FIELDS = ["created_at", "updated_at", "postponed_to"];
13006
13540
  var SORT_ORDERS = ["asc", "desc"];
13007
- var TABLE_COLUMNS16 = [
13541
+ var TABLE_COLUMNS18 = [
13008
13542
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
13009
13543
  { header: "TITLE", cell: /* @__PURE__ */ __name((row) => row.title, "cell"), maxWidth: 50 },
13010
13544
  { header: "STATUS", cell: /* @__PURE__ */ __name((row) => row.status, "cell") },
@@ -13077,7 +13611,7 @@ function registerCasesList(cases) {
13077
13611
  console.log("No cases found.");
13078
13612
  return;
13079
13613
  }
13080
- console.log(renderTable(TABLE_COLUMNS16, response.cases));
13614
+ console.log(renderTable(TABLE_COLUMNS18, response.cases));
13081
13615
  const resolvedOffset = response.offset ?? offset;
13082
13616
  const total = response.total ?? null;
13083
13617
  const summary = total === null ? `Showing ${response.cases.length} \xB7 offset ${resolvedOffset}` : `Showing ${response.cases.length} of ${total} \xB7 offset ${resolvedOffset}`;
@@ -13131,7 +13665,7 @@ function parseSortOrder(raw) {
13131
13665
  __name(parseSortOrder, "parseSortOrder");
13132
13666
 
13133
13667
  // src/commands/cases/runs.ts
13134
- import { z as z74 } from "zod";
13668
+ import { z as z75 } from "zod";
13135
13669
  var MIN_LIMIT4 = 1;
13136
13670
  var MAX_LIMIT4 = 10;
13137
13671
  var DEFAULT_LIMIT4 = 3;
@@ -13149,17 +13683,17 @@ var RUNS_TABLE_COLUMNS = [
13149
13683
  cell: /* @__PURE__ */ __name((row) => row.has_pending_human_request ? row.pending_human_request_title ?? "(unknown)" : "", "cell")
13150
13684
  }
13151
13685
  ];
13152
- var recentMessageSchema = z74.object({
13153
- id: z74.string(),
13154
- type: z74.string(),
13155
- role: z74.string(),
13156
- timestamp: z74.string(),
13157
- text_content: z74.string().nullish(),
13158
- tool_call: z74.object({ id: z74.string(), name: z74.string() }).passthrough().nullish(),
13159
- tool_result: z74.object({ tool_call_id: z74.string() }).passthrough().nullish()
13160
- });
13161
- var recentMessagesResponseSchema = z74.object({
13162
- messages: z74.array(recentMessageSchema)
13686
+ var recentMessageSchema = z75.object({
13687
+ id: z75.string(),
13688
+ type: z75.string(),
13689
+ role: z75.string(),
13690
+ timestamp: z75.string(),
13691
+ text_content: z75.string().nullish(),
13692
+ tool_call: z75.object({ id: z75.string(), name: z75.string() }).passthrough().nullish(),
13693
+ tool_result: z75.object({ tool_call_id: z75.string() }).passthrough().nullish()
13694
+ });
13695
+ var recentMessagesResponseSchema = z75.object({
13696
+ messages: z75.array(recentMessageSchema)
13163
13697
  });
13164
13698
  var TEXT_PREVIEW_WIDTH = 60;
13165
13699
  var MESSAGES_TABLE_COLUMNS = [
@@ -13289,7 +13823,7 @@ function registerCases(program) {
13289
13823
  __name(registerCases, "registerCases");
13290
13824
 
13291
13825
  // src/commands/clarity/index.ts
13292
- import { z as z78 } from "zod";
13826
+ import { z as z79 } from "zod";
13293
13827
 
13294
13828
  // src/commands/clarity/render.ts
13295
13829
  var DEFAULT_HUMAN_SUMMARY_LIMIT = 1200;
@@ -14283,16 +14817,16 @@ function formatOptionalBoolean(value) {
14283
14817
  __name(formatOptionalBoolean, "formatOptionalBoolean");
14284
14818
 
14285
14819
  // src/commands/clarity/get-current-process.ts
14286
- import { z as z75 } from "zod";
14287
- var snapshotSchema = z75.object({
14288
- snapshot: z75.object({
14289
- id: z75.string(),
14290
- status: z75.string(),
14291
- creator_type: z75.string(),
14292
- user_id: z75.string().nullable(),
14293
- sandbox_id: z75.string().nullable(),
14294
- created_at: z75.string(),
14295
- updated_at: z75.string()
14820
+ import { z as z76 } from "zod";
14821
+ var snapshotSchema = z76.object({
14822
+ snapshot: z76.object({
14823
+ id: z76.string(),
14824
+ status: z76.string(),
14825
+ creator_type: z76.string(),
14826
+ user_id: z76.string().nullable(),
14827
+ sandbox_id: z76.string().nullable(),
14828
+ created_at: z76.string(),
14829
+ updated_at: z76.string()
14296
14830
  })
14297
14831
  });
14298
14832
  function registerClarityGetCurrentProcess(clarity) {
@@ -14331,16 +14865,16 @@ function registerClarityGetCurrentProcess(clarity) {
14331
14865
  __name(registerClarityGetCurrentProcess, "registerClarityGetCurrentProcess");
14332
14866
 
14333
14867
  // src/commands/clarity/get-transformation-proposal.ts
14334
- import { z as z76 } from "zod";
14335
- var snapshotSchema2 = z76.object({
14336
- snapshot: z76.object({
14337
- id: z76.string(),
14338
- status: z76.string(),
14339
- creator_type: z76.string(),
14340
- user_id: z76.string().nullable(),
14341
- sandbox_id: z76.string().nullable(),
14342
- created_at: z76.string(),
14343
- updated_at: z76.string()
14868
+ import { z as z77 } from "zod";
14869
+ var snapshotSchema2 = z77.object({
14870
+ snapshot: z77.object({
14871
+ id: z77.string(),
14872
+ status: z77.string(),
14873
+ creator_type: z77.string(),
14874
+ user_id: z77.string().nullable(),
14875
+ sandbox_id: z77.string().nullable(),
14876
+ created_at: z77.string(),
14877
+ updated_at: z77.string()
14344
14878
  })
14345
14879
  });
14346
14880
  function registerClarityGetTransformationProposal(clarity) {
@@ -14445,7 +14979,7 @@ __name(registerClarityGet, "registerClarityGet");
14445
14979
  var DEFAULT_LIMIT5 = 20;
14446
14980
  var MIN_LIMIT5 = 1;
14447
14981
  var MAX_LIMIT5 = 100;
14448
- var TABLE_COLUMNS17 = [
14982
+ var TABLE_COLUMNS19 = [
14449
14983
  {
14450
14984
  header: "ID",
14451
14985
  cell: /* @__PURE__ */ __name((row) => row.id, "cell")
@@ -14506,7 +15040,7 @@ function registerClarityListExtraCaptureRequests(clarity) {
14506
15040
  console.log("No extra-capture requests found.");
14507
15041
  return;
14508
15042
  }
14509
- console.log(renderTable(TABLE_COLUMNS17, response.requests));
15043
+ console.log(renderTable(TABLE_COLUMNS19, response.requests));
14510
15044
  console.log(
14511
15045
  `Showing ${response.requests.length} of ${response.total} \xB7 offset ${response.offset}`
14512
15046
  );
@@ -14515,33 +15049,33 @@ function registerClarityListExtraCaptureRequests(clarity) {
14515
15049
  __name(registerClarityListExtraCaptureRequests, "registerClarityListExtraCaptureRequests");
14516
15050
 
14517
15051
  // src/api/clarity-schemas.ts
14518
- import { z as z77 } from "zod";
14519
- var clarityListProcessSchema = z77.object({
14520
- id: z77.guid(),
14521
- name: z77.string(),
15052
+ import { z as z78 } from "zod";
15053
+ var clarityListProcessSchema = z78.object({
15054
+ id: z78.guid(),
15055
+ name: z78.string(),
14522
15056
  status: clarityProcessStatusSchema,
14523
- version: z77.number().int(),
14524
- capture_count: z77.number().int(),
14525
- capture_counts: z77.object({
14526
- video: z77.number().int(),
14527
- interview: z77.number().int(),
14528
- document: z77.number().int()
15057
+ version: z78.number().int(),
15058
+ capture_count: z78.number().int(),
15059
+ capture_counts: z78.object({
15060
+ video: z78.number().int(),
15061
+ interview: z78.number().int(),
15062
+ document: z78.number().int()
14529
15063
  }).optional(),
14530
- pending_invitation_count: z77.number().int(),
14531
- contributors: z77.array(
14532
- z77.object({
14533
- user_id: z77.string(),
14534
- user_name: z77.string()
15064
+ pending_invitation_count: z78.number().int(),
15065
+ contributors: z78.array(
15066
+ z78.object({
15067
+ user_id: z78.string(),
15068
+ user_name: z78.string()
14535
15069
  })
14536
15070
  ),
14537
- created_at: z77.string(),
14538
- created_by_name: z77.string().nullable()
15071
+ created_at: z78.string(),
15072
+ created_by_name: z78.string().nullable()
14539
15073
  });
14540
- var listClarityProcessesResponseSchema = z77.object({
14541
- processes: z77.array(clarityListProcessSchema),
14542
- total: z77.number().int(),
14543
- limit: z77.number().int(),
14544
- offset: z77.number().int()
15074
+ var listClarityProcessesResponseSchema = z78.object({
15075
+ processes: z78.array(clarityListProcessSchema),
15076
+ total: z78.number().int(),
15077
+ limit: z78.number().int(),
15078
+ offset: z78.number().int()
14545
15079
  });
14546
15080
  var legacyClarityProcessResponseSchema = legacyClarityProcessDetailSchema;
14547
15081
 
@@ -15552,8 +16086,8 @@ async function buildTeamContextCheck(config) {
15552
16086
  }
15553
16087
  }
15554
16088
  __name(buildTeamContextCheck, "buildTeamContextCheck");
15555
- var listMyTeamsResponseSchema2 = z78.object({
15556
- teams: z78.array(z78.object({ id: z78.string() }))
16089
+ var listMyTeamsResponseSchema2 = z79.object({
16090
+ teams: z79.array(z79.object({ id: z79.string() }))
15557
16091
  });
15558
16092
  async function buildClarityApiReachableCheck(command, config) {
15559
16093
  let teamId;
@@ -16254,7 +16788,7 @@ function registerConnectionsGet(connections) {
16254
16788
  __name(registerConnectionsGet, "registerConnectionsGet");
16255
16789
 
16256
16790
  // src/commands/connections/list.ts
16257
- var TABLE_COLUMNS18 = [
16791
+ var TABLE_COLUMNS20 = [
16258
16792
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
16259
16793
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
16260
16794
  { header: "TYPE", cell: /* @__PURE__ */ __name((row) => row.type, "cell") },
@@ -16294,26 +16828,26 @@ function registerConnectionsList(connections) {
16294
16828
  console.log("No connections found.");
16295
16829
  return;
16296
16830
  }
16297
- console.log(renderTable(TABLE_COLUMNS18, rows));
16831
+ console.log(renderTable(TABLE_COLUMNS20, rows));
16298
16832
  console.log(`Showing ${rows.length}`);
16299
16833
  }, "listAction"));
16300
16834
  }
16301
16835
  __name(registerConnectionsList, "registerConnectionsList");
16302
16836
 
16303
16837
  // src/commands/connections/probe.ts
16304
- import { z as z79 } from "zod";
16305
- var toolSchema = z79.object({
16306
- name: z79.string(),
16307
- description: z79.string().optional(),
16308
- input_schema: z79.record(z79.string(), z79.unknown()).optional()
16838
+ import { z as z80 } from "zod";
16839
+ var toolSchema = z80.object({
16840
+ name: z80.string(),
16841
+ description: z80.string().optional(),
16842
+ input_schema: z80.record(z80.string(), z80.unknown()).optional()
16309
16843
  });
16310
- var probeResponseSchema = z79.object({
16311
- success: z79.boolean(),
16312
- tools: z79.array(toolSchema).optional(),
16313
- error: z79.string().optional()
16844
+ var probeResponseSchema = z80.object({
16845
+ success: z80.boolean(),
16846
+ tools: z80.array(toolSchema).optional(),
16847
+ error: z80.string().optional()
16314
16848
  });
16315
16849
  var DESCRIPTION_MAX_WIDTH = 80;
16316
- var TABLE_COLUMNS19 = [
16850
+ var TABLE_COLUMNS21 = [
16317
16851
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
16318
16852
  {
16319
16853
  header: "DESCRIPTION",
@@ -16373,7 +16907,7 @@ function registerConnectionsProbe(connections) {
16373
16907
  console.log("No tools found.");
16374
16908
  return;
16375
16909
  }
16376
- console.log(renderTable(TABLE_COLUMNS19, tools));
16910
+ console.log(renderTable(TABLE_COLUMNS21, tools));
16377
16911
  console.log(
16378
16912
  `Showing ${tools.length} tool${tools.length === 1 ? "" : "s"}`
16379
16913
  );
@@ -16529,48 +17063,48 @@ function registerConnections(program) {
16529
17063
  __name(registerConnections, "registerConnections");
16530
17064
 
16531
17065
  // src/api/credential-schemas.ts
16532
- import { z as z80 } from "zod";
16533
- var dateLike = z80.string();
16534
- var secretSchema = z80.object({
16535
- id: z80.string(),
16536
- team_id: z80.string(),
16537
- user_id: z80.string().nullable(),
16538
- name: z80.string(),
16539
- service_slug: z80.string().nullable(),
16540
- env_var_keys: z80.array(z80.string()),
16541
- created_by: z80.string(),
17066
+ import { z as z81 } from "zod";
17067
+ var dateLike = z81.string();
17068
+ var secretSchema = z81.object({
17069
+ id: z81.string(),
17070
+ team_id: z81.string(),
17071
+ user_id: z81.string().nullable(),
17072
+ name: z81.string(),
17073
+ service_slug: z81.string().nullable(),
17074
+ env_var_keys: z81.array(z81.string()),
17075
+ created_by: z81.string(),
16542
17076
  created_at: dateLike,
16543
17077
  updated_at: dateLike
16544
17078
  });
16545
- var secretsListResponseSchema = z80.array(secretSchema);
17079
+ var secretsListResponseSchema = z81.array(secretSchema);
16546
17080
  var secretResponseSchema = secretSchema;
16547
- var browserLoginSchema = z80.object({
16548
- id: z80.string(),
16549
- user_id: z80.string().nullable(),
16550
- team_id: z80.string(),
16551
- domain: z80.string(),
16552
- username: z80.string().nullable(),
17081
+ var browserLoginSchema = z81.object({
17082
+ id: z81.string(),
17083
+ user_id: z81.string().nullable(),
17084
+ team_id: z81.string(),
17085
+ domain: z81.string(),
17086
+ username: z81.string().nullable(),
16553
17087
  password: encryptedDataSchema.nullable(),
16554
17088
  otp_secret: encryptedDataSchema.nullable(),
16555
17089
  created_at: dateLike,
16556
17090
  updated_at: dateLike
16557
17091
  });
16558
- var browserLoginsListResponseSchema = z80.array(credentialPreviewSchema);
16559
- var revisionLoginSummarySchema = z80.object({
16560
- id: z80.string(),
16561
- user_id: z80.string().nullable(),
16562
- team_id: z80.string().nullable(),
16563
- domain: z80.string(),
16564
- username: z80.string().nullable(),
17092
+ var browserLoginsListResponseSchema = z81.array(credentialPreviewSchema);
17093
+ var revisionLoginSummarySchema = z81.object({
17094
+ id: z81.string(),
17095
+ user_id: z81.string().nullable(),
17096
+ team_id: z81.string().nullable(),
17097
+ domain: z81.string(),
17098
+ username: z81.string().nullable(),
16565
17099
  created_at: dateLike,
16566
17100
  updated_at: dateLike
16567
17101
  });
16568
- var revisionLoginsListResponseSchema = z80.array(
17102
+ var revisionLoginsListResponseSchema = z81.array(
16569
17103
  revisionLoginSummarySchema
16570
17104
  );
16571
- var revisionSecretsListResponseSchema = z80.array(secretSchema);
16572
- var successResponseSchema2 = z80.object({
16573
- success: z80.boolean()
17105
+ var revisionSecretsListResponseSchema = z81.array(secretSchema);
17106
+ var successResponseSchema2 = z81.object({
17107
+ success: z81.boolean()
16574
17108
  });
16575
17109
  var attachSuccessResponseSchema = successResponseSchema2;
16576
17110
  var deleteSecretResponseSchema = successResponseSchema2;
@@ -16764,7 +17298,7 @@ function registerCredentialsGet(credentials) {
16764
17298
  __name(registerCredentialsGet, "registerCredentialsGet");
16765
17299
 
16766
17300
  // src/commands/credentials/list.ts
16767
- var TABLE_COLUMNS20 = [
17301
+ var TABLE_COLUMNS22 = [
16768
17302
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
16769
17303
  { header: "DOMAIN", cell: /* @__PURE__ */ __name((row) => row.domain, "cell") },
16770
17304
  {
@@ -16823,7 +17357,7 @@ function registerCredentialsList(credentials) {
16823
17357
  console.log("No credentials found.");
16824
17358
  return;
16825
17359
  }
16826
- console.log(renderTable(TABLE_COLUMNS20, rows));
17360
+ console.log(renderTable(TABLE_COLUMNS22, rows));
16827
17361
  console.log(`Showing ${rows.length}`);
16828
17362
  }, "listAction"));
16829
17363
  }
@@ -17103,7 +17637,7 @@ function registerFilesDownloadUrl(files) {
17103
17637
  __name(registerFilesDownloadUrl, "registerFilesDownloadUrl");
17104
17638
 
17105
17639
  // src/commands/files/list.ts
17106
- var TABLE_COLUMNS21 = [
17640
+ var TABLE_COLUMNS23 = [
17107
17641
  { header: "PATH", cell: /* @__PURE__ */ __name((row) => row.path, "cell") },
17108
17642
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
17109
17643
  {
@@ -17146,7 +17680,7 @@ function registerFilesList(files) {
17146
17680
  console.log("No files found.");
17147
17681
  return;
17148
17682
  }
17149
- console.log(renderTable(TABLE_COLUMNS21, parsed.data.files));
17683
+ console.log(renderTable(TABLE_COLUMNS23, parsed.data.files));
17150
17684
  console.log(`Showing ${parsed.data.files.length}`);
17151
17685
  }, "listAction"));
17152
17686
  }
@@ -17408,7 +17942,7 @@ function registerIntegrationsCustom(integrations) {
17408
17942
  __name(registerIntegrationsCustom, "registerIntegrationsCustom");
17409
17943
 
17410
17944
  // src/commands/integrations/list.ts
17411
- var TABLE_COLUMNS22 = [
17945
+ var TABLE_COLUMNS24 = [
17412
17946
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
17413
17947
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
17414
17948
  { header: "TYPE", cell: /* @__PURE__ */ __name((row) => row.type, "cell") },
@@ -17450,7 +17984,7 @@ function registerIntegrationsList(integrations) {
17450
17984
  console.log("No integrations found.");
17451
17985
  return;
17452
17986
  }
17453
- console.log(renderTable(TABLE_COLUMNS22, rows));
17987
+ console.log(renderTable(TABLE_COLUMNS24, rows));
17454
17988
  console.log(`Showing ${rows.length}`);
17455
17989
  }, "listAction"));
17456
17990
  }
@@ -17467,7 +18001,7 @@ function registerIntegrations(program) {
17467
18001
  __name(registerIntegrations, "registerIntegrations");
17468
18002
 
17469
18003
  // src/commands/login.ts
17470
- import { isCancel as isCancel3, password, spinner, text as text2 } from "@clack/prompts";
18004
+ import { isCancel as isCancel4, password, spinner, text as text2 } from "@clack/prompts";
17471
18005
 
17472
18006
  // src/oauth/auth0-config.ts
17473
18007
  var BAKED_DOMAIN = "login.duvo.ai" ? "login.duvo.ai" : "login.dev.duvo.ai";
@@ -17859,7 +18393,7 @@ async function resolveProfileName(flag, existingCount) {
17859
18393
  return void 0;
17860
18394
  }, "validate")
17861
18395
  });
17862
- if (isCancel3(answer)) {
18396
+ if (isCancel4(answer)) {
17863
18397
  throw new CancelCliError("Login cancelled.");
17864
18398
  }
17865
18399
  return answer;
@@ -17878,7 +18412,7 @@ async function resolveApiKey(flag) {
17878
18412
  return void 0;
17879
18413
  }, "validate")
17880
18414
  });
17881
- if (isCancel3(answer)) {
18415
+ if (isCancel4(answer)) {
17882
18416
  throw new CancelCliError("Login cancelled.");
17883
18417
  }
17884
18418
  return answer;
@@ -18289,7 +18823,7 @@ function parseHeaders(raw) {
18289
18823
  return result;
18290
18824
  }
18291
18825
  __name(parseHeaders, "parseHeaders");
18292
- var TABLE_COLUMNS23 = [
18826
+ var TABLE_COLUMNS25 = [
18293
18827
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
18294
18828
  { header: "DESCRIPTION", cell: /* @__PURE__ */ __name((row) => row.description, "cell") }
18295
18829
  ];
@@ -18347,7 +18881,7 @@ function registerOauthMcpProbe(mcp) {
18347
18881
  console.log("No tools advertised by this MCP server.");
18348
18882
  return;
18349
18883
  }
18350
- console.log(renderTable(TABLE_COLUMNS23, rows));
18884
+ console.log(renderTable(TABLE_COLUMNS25, rows));
18351
18885
  console.log(`Showing ${rows.length}`);
18352
18886
  }, "probeMcpAction"));
18353
18887
  }
@@ -18429,7 +18963,7 @@ function registerOauth(program) {
18429
18963
  __name(registerOauth, "registerOauth");
18430
18964
 
18431
18965
  // src/commands/plugins/list.ts
18432
- var TABLE_COLUMNS24 = [
18966
+ var TABLE_COLUMNS26 = [
18433
18967
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
18434
18968
  { header: "TYPE", cell: /* @__PURE__ */ __name((row) => row.type, "cell") },
18435
18969
  {
@@ -18463,7 +18997,7 @@ function registerPluginsList(plugins) {
18463
18997
  console.log("No plugins found.");
18464
18998
  return;
18465
18999
  }
18466
- console.log(renderTable(TABLE_COLUMNS24, parsed.data.plugins));
19000
+ console.log(renderTable(TABLE_COLUMNS26, parsed.data.plugins));
18467
19001
  console.log(`Showing ${parsed.data.plugins.length}`);
18468
19002
  }, "listAction"));
18469
19003
  }
@@ -18500,12 +19034,12 @@ function padRight(value, width) {
18500
19034
  __name(padRight, "padRight");
18501
19035
 
18502
19036
  // src/commands/profiles/render-list.ts
18503
- var DEFAULT_MARKER = "\u25B6";
19037
+ var DEFAULT_MARKER2 = "\u25B6";
18504
19038
  var NON_DEFAULT_MARKER = " ";
18505
19039
  var COLUMNS = [
18506
19040
  {
18507
19041
  header: "",
18508
- cell: /* @__PURE__ */ __name((item) => item.isDefault ? DEFAULT_MARKER : NON_DEFAULT_MARKER, "cell")
19042
+ cell: /* @__PURE__ */ __name((item) => item.isDefault ? DEFAULT_MARKER2 : NON_DEFAULT_MARKER, "cell")
18509
19043
  },
18510
19044
  { header: "NAME", cell: /* @__PURE__ */ __name((item) => item.name, "cell") },
18511
19045
  {
@@ -18588,7 +19122,7 @@ function registerRename(profiles) {
18588
19122
  __name(registerRename, "registerRename");
18589
19123
 
18590
19124
  // src/commands/profiles/use.ts
18591
- import { isCancel as isCancel4, select } from "@clack/prompts";
19125
+ import { isCancel as isCancel5, select as select2 } from "@clack/prompts";
18592
19126
  var NAME_HEADER = "NAME";
18593
19127
  function registerUse(profiles) {
18594
19128
  profiles.command("use [name]").description(
@@ -18620,12 +19154,12 @@ async function pickProfileInteractively(config) {
18620
19154
  );
18621
19155
  }
18622
19156
  const options = buildPickerOptions(profiles);
18623
- const answer = await select({
19157
+ const answer = await select2({
18624
19158
  message: "Select default profile",
18625
19159
  initialValue: config.defaultProfile ?? profiles[0].name,
18626
19160
  options
18627
19161
  });
18628
- if (isCancel4(answer)) {
19162
+ if (isCancel5(answer)) {
18629
19163
  throw new CancelCliError("Profile switch cancelled.");
18630
19164
  }
18631
19165
  return answer;
@@ -18640,7 +19174,7 @@ function buildPickerOptions(profiles) {
18640
19174
  ...profiles.map((profile) => profile.name.length)
18641
19175
  );
18642
19176
  return profiles.map((profile, index) => {
18643
- const marker = profile.isDefault ? DEFAULT_MARKER : NON_DEFAULT_MARKER;
19177
+ const marker = profile.isDefault ? DEFAULT_MARKER2 : NON_DEFAULT_MARKER;
18644
19178
  const label = `${marker} ${padRight(profile.name, nameWidth)} ${maskedKeys[index]}`;
18645
19179
  return {
18646
19180
  value: profile.name,
@@ -18661,7 +19195,7 @@ function registerProfiles(program) {
18661
19195
  __name(registerProfiles, "registerProfiles");
18662
19196
 
18663
19197
  // src/commands/queue-labels/index.ts
18664
- var TABLE_COLUMNS25 = [
19198
+ var TABLE_COLUMNS27 = [
18665
19199
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
18666
19200
  { header: "KEY", cell: /* @__PURE__ */ __name((row) => row.key, "cell") },
18667
19201
  { header: "VALUE", cell: /* @__PURE__ */ __name((row) => row.value, "cell") },
@@ -18715,7 +19249,7 @@ function registerList3(labels) {
18715
19249
  console.log("No labels defined on this queue.");
18716
19250
  return;
18717
19251
  }
18718
- console.log(renderTable(TABLE_COLUMNS25, parsed.data.labels));
19252
+ console.log(renderTable(TABLE_COLUMNS27, parsed.data.labels));
18719
19253
  console.log(`Showing ${parsed.data.labels.length}`);
18720
19254
  }, "listAction"));
18721
19255
  }
@@ -19469,7 +20003,7 @@ __name(registerQueuesLinkAgent, "registerQueuesLinkAgent");
19469
20003
  var DEFAULT_LIMIT7 = 20;
19470
20004
  var MIN_LIMIT7 = 1;
19471
20005
  var MAX_LIMIT7 = 100;
19472
- var TABLE_COLUMNS26 = [
20006
+ var TABLE_COLUMNS28 = [
19473
20007
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
19474
20008
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
19475
20009
  {
@@ -19517,7 +20051,7 @@ function registerQueuesList(queues) {
19517
20051
  console.log("No queues found.");
19518
20052
  return;
19519
20053
  }
19520
- console.log(renderTable(TABLE_COLUMNS26, response.queues));
20054
+ console.log(renderTable(TABLE_COLUMNS28, response.queues));
19521
20055
  const resolvedOffset = response.offset ?? offset;
19522
20056
  const total = response.total ?? null;
19523
20057
  const summary = total === null ? `Showing ${response.queues.length} \xB7 offset ${resolvedOffset}` : `Showing ${response.queues.length} of ${total} \xB7 offset ${resolvedOffset}`;
@@ -19775,7 +20309,7 @@ function registerRevisionLoginsDetach(revisionLogins) {
19775
20309
  __name(registerRevisionLoginsDetach, "registerRevisionLoginsDetach");
19776
20310
 
19777
20311
  // src/commands/revision-logins/list.ts
19778
- var TABLE_COLUMNS27 = [
20312
+ var TABLE_COLUMNS29 = [
19779
20313
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
19780
20314
  { header: "DOMAIN", cell: /* @__PURE__ */ __name((row) => row.domain, "cell") },
19781
20315
  {
@@ -19811,7 +20345,7 @@ function registerRevisionLoginsList(revisionLogins) {
19811
20345
  console.log("No browser logins attached to this revision.");
19812
20346
  return;
19813
20347
  }
19814
- console.log(renderTable(TABLE_COLUMNS27, rows));
20348
+ console.log(renderTable(TABLE_COLUMNS29, rows));
19815
20349
  console.log(`Showing ${rows.length}`);
19816
20350
  }, "listAction"));
19817
20351
  }
@@ -19884,7 +20418,7 @@ function registerRevisionSecretsDetach(revisionSecrets) {
19884
20418
  __name(registerRevisionSecretsDetach, "registerRevisionSecretsDetach");
19885
20419
 
19886
20420
  // src/commands/revision-secrets/list.ts
19887
- var TABLE_COLUMNS28 = [
20421
+ var TABLE_COLUMNS30 = [
19888
20422
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
19889
20423
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
19890
20424
  {
@@ -19922,7 +20456,7 @@ function registerRevisionSecretsList(revisionSecrets) {
19922
20456
  console.log("No secrets attached to this revision.");
19923
20457
  return;
19924
20458
  }
19925
- console.log(renderTable(TABLE_COLUMNS28, rows));
20459
+ console.log(renderTable(TABLE_COLUMNS30, rows));
19926
20460
  console.log(`Showing ${rows.length}`);
19927
20461
  }, "listAction"));
19928
20462
  }
@@ -19938,91 +20472,91 @@ function registerRevisionSecrets(program) {
19938
20472
  __name(registerRevisionSecrets, "registerRevisionSecrets");
19939
20473
 
19940
20474
  // src/api/run-schemas.ts
19941
- import { z as z81 } from "zod";
19942
- var publicRunSchema = z81.object({
19943
- id: z81.string(),
19944
- agent_id: z81.string(),
19945
- build_id: z81.string(),
19946
- status: z81.string(),
19947
- source: z81.string().nullish(),
19948
- sandbox_id: z81.string().nullish(),
19949
- started_at: z81.string().nullish(),
19950
- completed_at: z81.string().nullish(),
19951
- created_at: z81.string(),
19952
- updated_at: z81.string().nullish(),
19953
- human_in_the_loop_enabled: z81.boolean().nullish()
19954
- });
19955
- var startRunResponseSchema = z81.object({
20475
+ import { z as z82 } from "zod";
20476
+ var publicRunSchema = z82.object({
20477
+ id: z82.string(),
20478
+ agent_id: z82.string(),
20479
+ build_id: z82.string(),
20480
+ status: z82.string(),
20481
+ source: z82.string().nullish(),
20482
+ sandbox_id: z82.string().nullish(),
20483
+ started_at: z82.string().nullish(),
20484
+ completed_at: z82.string().nullish(),
20485
+ created_at: z82.string(),
20486
+ updated_at: z82.string().nullish(),
20487
+ human_in_the_loop_enabled: z82.boolean().nullish()
20488
+ });
20489
+ var startRunResponseSchema = z82.object({
19956
20490
  run: publicRunSchema
19957
20491
  });
19958
- var questionOptionSchema = z81.object({
19959
- label: z81.string(),
19960
- description: z81.string().nullish()
19961
- });
19962
- var questionSchema = z81.object({
19963
- question: z81.string(),
19964
- header: z81.string().nullish(),
19965
- options: z81.array(questionOptionSchema).nullish(),
19966
- multi_select: z81.boolean().nullish()
19967
- });
19968
- var pendingHumanRequestSchema = z81.object({
19969
- id: z81.string(),
19970
- title: z81.string(),
19971
- description: z81.string().nullish(),
19972
- created_at: z81.string(),
19973
- type: z81.string(),
19974
- questions: z81.array(questionSchema).nullish()
19975
- });
19976
- var getRunResponseSchema = z81.object({
20492
+ var questionOptionSchema = z82.object({
20493
+ label: z82.string(),
20494
+ description: z82.string().nullish()
20495
+ });
20496
+ var questionSchema = z82.object({
20497
+ question: z82.string(),
20498
+ header: z82.string().nullish(),
20499
+ options: z82.array(questionOptionSchema).nullish(),
20500
+ multi_select: z82.boolean().nullish()
20501
+ });
20502
+ var pendingHumanRequestSchema = z82.object({
20503
+ id: z82.string(),
20504
+ title: z82.string(),
20505
+ description: z82.string().nullish(),
20506
+ created_at: z82.string(),
20507
+ type: z82.string(),
20508
+ questions: z82.array(questionSchema).nullish()
20509
+ });
20510
+ var getRunResponseSchema = z82.object({
19977
20511
  run: publicRunSchema.nullable(),
19978
20512
  pending_human_request: pendingHumanRequestSchema.nullish()
19979
20513
  });
19980
- var stopRunResponseSchema = z81.object({
19981
- success: z81.boolean(),
19982
- message: z81.string().nullish()
19983
- });
19984
- var runMessageSchema = z81.object({
19985
- id: z81.string(),
19986
- type: z81.string(),
19987
- role: z81.string(),
19988
- timestamp: z81.string(),
19989
- text_content: z81.string().nullish(),
19990
- tool_call: z81.object({
19991
- id: z81.string(),
19992
- name: z81.string(),
19993
- arguments: z81.record(z81.string(), z81.unknown()).nullish()
20514
+ var stopRunResponseSchema = z82.object({
20515
+ success: z82.boolean(),
20516
+ message: z82.string().nullish()
20517
+ });
20518
+ var runMessageSchema = z82.object({
20519
+ id: z82.string(),
20520
+ type: z82.string(),
20521
+ role: z82.string(),
20522
+ timestamp: z82.string(),
20523
+ text_content: z82.string().nullish(),
20524
+ tool_call: z82.object({
20525
+ id: z82.string(),
20526
+ name: z82.string(),
20527
+ arguments: z82.record(z82.string(), z82.unknown()).nullish()
19994
20528
  }).nullish(),
19995
- tool_result: z81.object({
19996
- tool_call_id: z81.string(),
19997
- result: z81.unknown().nullish(),
19998
- error: z81.string().nullish()
20529
+ tool_result: z82.object({
20530
+ tool_call_id: z82.string(),
20531
+ result: z82.unknown().nullish(),
20532
+ error: z82.string().nullish()
19999
20533
  }).nullish()
20000
20534
  });
20001
- var listRunMessagesResponseSchema = z81.object({
20002
- messages: z81.array(runMessageSchema),
20003
- total: z81.number().nullish(),
20004
- limit: z81.number().nullish(),
20005
- offset: z81.number().nullish()
20535
+ var listRunMessagesResponseSchema = z82.object({
20536
+ messages: z82.array(runMessageSchema),
20537
+ total: z82.number().nullish(),
20538
+ limit: z82.number().nullish(),
20539
+ offset: z82.number().nullish()
20006
20540
  });
20007
- var postedMessageSchema = z81.object({
20008
- id: z81.string(),
20009
- type: z81.string(),
20010
- role: z81.string(),
20011
- timestamp: z81.string(),
20012
- text_content: z81.string()
20541
+ var postedMessageSchema = z82.object({
20542
+ id: z82.string(),
20543
+ type: z82.string(),
20544
+ role: z82.string(),
20545
+ timestamp: z82.string(),
20546
+ text_content: z82.string()
20013
20547
  });
20014
- var postRunMessageResponseSchema = z81.object({
20548
+ var postRunMessageResponseSchema = z82.object({
20015
20549
  message: postedMessageSchema
20016
20550
  });
20017
- var respondHumanRequestResponseSchema = z81.object({
20018
- human_request: z81.object({
20019
- id: z81.string(),
20020
- run_id: z81.string(),
20021
- title: z81.string(),
20022
- description: z81.string().nullish(),
20023
- response: z81.string().nullish(),
20024
- responded_at: z81.string().nullish(),
20025
- created_at: z81.string()
20551
+ var respondHumanRequestResponseSchema = z82.object({
20552
+ human_request: z82.object({
20553
+ id: z82.string(),
20554
+ run_id: z82.string(),
20555
+ title: z82.string(),
20556
+ description: z82.string().nullish(),
20557
+ response: z82.string().nullish(),
20558
+ responded_at: z82.string().nullish(),
20559
+ created_at: z82.string()
20026
20560
  })
20027
20561
  });
20028
20562
 
@@ -20091,7 +20625,7 @@ var MAX_LIMIT8 = 100;
20091
20625
  var SORT_ORDERS2 = ["asc", "desc"];
20092
20626
  var HAS_ISSUES_VALUES = ["true", "false"];
20093
20627
  var TITLE_PREVIEW_WIDTH = 50;
20094
- var TABLE_COLUMNS29 = [
20628
+ var TABLE_COLUMNS31 = [
20095
20629
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
20096
20630
  { header: "RUN#", cell: /* @__PURE__ */ __name((row) => String(row.run_number), "cell") },
20097
20631
  { header: "STATUS", cell: /* @__PURE__ */ __name((row) => row.status, "cell") },
@@ -20192,7 +20726,7 @@ function registerRunsList(runs) {
20192
20726
  console.log("No runs found.");
20193
20727
  return;
20194
20728
  }
20195
- console.log(renderTable(TABLE_COLUMNS29, response.data));
20729
+ console.log(renderTable(TABLE_COLUMNS31, response.data));
20196
20730
  console.log(
20197
20731
  `Showing ${response.data.length} of ${response.total} \xB7 offset ${offset}`
20198
20732
  );
@@ -20302,7 +20836,7 @@ var DEFAULT_LIMIT9 = 20;
20302
20836
  var MIN_LIMIT9 = 1;
20303
20837
  var MAX_LIMIT9 = 50;
20304
20838
  var TEXT_PREVIEW_WIDTH2 = 60;
20305
- var TABLE_COLUMNS30 = [
20839
+ var TABLE_COLUMNS32 = [
20306
20840
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
20307
20841
  { header: "ROLE", cell: /* @__PURE__ */ __name((row) => row.role, "cell") },
20308
20842
  { header: "TYPE", cell: /* @__PURE__ */ __name((row) => row.type, "cell") },
@@ -20367,7 +20901,7 @@ function registerRunsMessages(runs) {
20367
20901
  console.log("No messages found.");
20368
20902
  return;
20369
20903
  }
20370
- console.log(renderTable(TABLE_COLUMNS30, response.messages));
20904
+ console.log(renderTable(TABLE_COLUMNS32, response.messages));
20371
20905
  const resolvedOffset = response.offset ?? offset;
20372
20906
  const summary = response.total === null || response.total === void 0 ? `Showing ${response.messages.length} \xB7 offset ${resolvedOffset}` : `Showing ${response.messages.length} of ${response.total} \xB7 offset ${resolvedOffset}`;
20373
20907
  console.log(summary);
@@ -20634,28 +21168,28 @@ function registerRuns(program) {
20634
21168
  __name(registerRuns, "registerRuns");
20635
21169
 
20636
21170
  // src/api/sandbox-schemas.ts
20637
- import { z as z82 } from "zod";
20638
- var createSandboxResponseSchema = z82.object({
20639
- sandbox_id: z82.string(),
20640
- expires_at: z82.string()
21171
+ import { z as z83 } from "zod";
21172
+ var createSandboxResponseSchema = z83.object({
21173
+ sandbox_id: z83.string(),
21174
+ expires_at: z83.string()
20641
21175
  });
20642
- var createSandboxUploadUrlResponseSchema = z82.object({
20643
- upload_url: z82.string(),
20644
- path: z82.string(),
20645
- expires_in_seconds: z82.number()
21176
+ var createSandboxUploadUrlResponseSchema = z83.object({
21177
+ upload_url: z83.string(),
21178
+ path: z83.string(),
21179
+ expires_in_seconds: z83.number()
20646
21180
  });
20647
- var sandboxFileSchema = z82.object({
20648
- name: z82.string(),
20649
- path: z82.string(),
20650
- type: z82.enum(["file", "dir"]),
20651
- size_bytes: z82.number()
21181
+ var sandboxFileSchema = z83.object({
21182
+ name: z83.string(),
21183
+ path: z83.string(),
21184
+ type: z83.enum(["file", "dir"]),
21185
+ size_bytes: z83.number()
20652
21186
  });
20653
- var listSandboxFilesResponseSchema = z82.object({
20654
- files: z82.array(sandboxFileSchema)
21187
+ var listSandboxFilesResponseSchema = z83.object({
21188
+ files: z83.array(sandboxFileSchema)
20655
21189
  });
20656
- var uploadSandboxFileResponseSchema = z82.object({
20657
- path: z82.string(),
20658
- size_bytes: z82.number()
21190
+ var uploadSandboxFileResponseSchema = z83.object({
21191
+ path: z83.string(),
21192
+ size_bytes: z83.number()
20659
21193
  });
20660
21194
  var DEFAULT_SANDBOX_FILES_PATH = "/workspace";
20661
21195
 
@@ -20692,7 +21226,7 @@ function registerSandboxesCreate(sandboxes) {
20692
21226
  __name(registerSandboxesCreate, "registerSandboxesCreate");
20693
21227
 
20694
21228
  // src/commands/sandboxes/files.ts
20695
- var TABLE_COLUMNS31 = [
21229
+ var TABLE_COLUMNS33 = [
20696
21230
  { header: "TYPE", cell: /* @__PURE__ */ __name((row) => row.type, "cell") },
20697
21231
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
20698
21232
  { header: "PATH", cell: /* @__PURE__ */ __name((row) => row.path, "cell") },
@@ -20730,7 +21264,7 @@ function registerSandboxesFiles(sandboxes) {
20730
21264
  console.log("No files found.");
20731
21265
  return;
20732
21266
  }
20733
- console.log(renderTable(TABLE_COLUMNS31, files));
21267
+ console.log(renderTable(TABLE_COLUMNS33, files));
20734
21268
  console.log(`Showing ${files.length}`);
20735
21269
  }, "filesAction"));
20736
21270
  }
@@ -21075,7 +21609,7 @@ function registerSecretsGet(secrets) {
21075
21609
  __name(registerSecretsGet, "registerSecretsGet");
21076
21610
 
21077
21611
  // src/commands/secrets/list.ts
21078
- var TABLE_COLUMNS32 = [
21612
+ var TABLE_COLUMNS34 = [
21079
21613
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
21080
21614
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
21081
21615
  {
@@ -21119,7 +21653,7 @@ function registerSecretsList(secrets) {
21119
21653
  console.log("No secrets found.");
21120
21654
  return;
21121
21655
  }
21122
- console.log(renderTable(TABLE_COLUMNS32, rows));
21656
+ console.log(renderTable(TABLE_COLUMNS34, rows));
21123
21657
  console.log(`Showing ${rows.length}`);
21124
21658
  }, "listAction"));
21125
21659
  }
@@ -21230,7 +21764,7 @@ function registerSecrets(program) {
21230
21764
  __name(registerSecrets, "registerSecrets");
21231
21765
 
21232
21766
  // src/commands/skills/assignments.ts
21233
- var TABLE_COLUMNS33 = [
21767
+ var TABLE_COLUMNS35 = [
21234
21768
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
21235
21769
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") }
21236
21770
  ];
@@ -21258,7 +21792,7 @@ function registerSkillsAssignments(skills) {
21258
21792
  console.log("No assignments use this skill.");
21259
21793
  return;
21260
21794
  }
21261
- console.log(renderTable(TABLE_COLUMNS33, assignments));
21795
+ console.log(renderTable(TABLE_COLUMNS35, assignments));
21262
21796
  console.log(`Showing ${assignments.length} of ${total}`);
21263
21797
  }, "assignmentsAction"));
21264
21798
  }
@@ -21266,13 +21800,13 @@ __name(registerSkillsAssignments, "registerSkillsAssignments");
21266
21800
 
21267
21801
  // src/commands/skills/create.ts
21268
21802
  import { readFileSync as readFileSync4 } from "node:fs";
21269
- import { z as z83 } from "zod";
21270
- var createSkillResponseSchema = z83.object({
21271
- skill: z83.object({
21272
- id: z83.string(),
21273
- name: z83.string(),
21274
- description: z83.string(),
21275
- team_id: z83.string()
21803
+ import { z as z84 } from "zod";
21804
+ var createSkillResponseSchema = z84.object({
21805
+ skill: z84.object({
21806
+ id: z84.string(),
21807
+ name: z84.string(),
21808
+ description: z84.string(),
21809
+ team_id: z84.string()
21276
21810
  })
21277
21811
  });
21278
21812
  function registerSkillsCreate(skills) {
@@ -21540,7 +22074,7 @@ function readContent2(options) {
21540
22074
  __name(readContent2, "readContent");
21541
22075
 
21542
22076
  // src/commands/skills/files.ts
21543
- var TABLE_COLUMNS34 = [
22077
+ var TABLE_COLUMNS36 = [
21544
22078
  { header: "PATH", cell: /* @__PURE__ */ __name((row) => row.path, "cell") },
21545
22079
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
21546
22080
  {
@@ -21579,7 +22113,7 @@ function registerSkillsFiles(skills) {
21579
22113
  console.log("No files found.");
21580
22114
  return;
21581
22115
  }
21582
- console.log(renderTable(TABLE_COLUMNS34, parsed.data.files));
22116
+ console.log(renderTable(TABLE_COLUMNS36, parsed.data.files));
21583
22117
  console.log(`Showing ${parsed.data.files.length}`);
21584
22118
  }, "filesAction"));
21585
22119
  }
@@ -21636,13 +22170,13 @@ function readExistingContent(source) {
21636
22170
  __name(readExistingContent, "readExistingContent");
21637
22171
 
21638
22172
  // src/commands/skills/install.ts
21639
- import { z as z84 } from "zod";
21640
- var installSkillResponseSchema = z84.object({
21641
- skill: z84.object({
21642
- id: z84.string(),
21643
- name: z84.string(),
21644
- description: z84.string(),
21645
- team_id: z84.string()
22173
+ import { z as z85 } from "zod";
22174
+ var installSkillResponseSchema = z85.object({
22175
+ skill: z85.object({
22176
+ id: z85.string(),
22177
+ name: z85.string(),
22178
+ description: z85.string(),
22179
+ team_id: z85.string()
21646
22180
  })
21647
22181
  });
21648
22182
  function registerSkillsInstall(skills) {
@@ -21832,13 +22366,13 @@ __name(registerSkillsSystem, "registerSkillsSystem");
21832
22366
  // src/commands/skills/upload.ts
21833
22367
  import { readFile as readFile6, stat as stat2 } from "node:fs/promises";
21834
22368
  import { basename as basename2 } from "node:path";
21835
- import { z as z85 } from "zod";
21836
- var uploadSkillResponseSchema = z85.object({
21837
- skill: z85.object({
21838
- id: z85.string(),
21839
- name: z85.string(),
21840
- description: z85.string(),
21841
- team_id: z85.string()
22369
+ import { z as z86 } from "zod";
22370
+ var uploadSkillResponseSchema = z86.object({
22371
+ skill: z86.object({
22372
+ id: z86.string(),
22373
+ name: z86.string(),
22374
+ description: z86.string(),
22375
+ team_id: z86.string()
21842
22376
  })
21843
22377
  });
21844
22378
  function registerSkillsUpload(skills) {
@@ -21993,7 +22527,7 @@ __name(registerTeamGet, "registerTeamGet");
21993
22527
  var DEFAULT_LIMIT10 = 50;
21994
22528
  var MIN_LIMIT10 = 1;
21995
22529
  var MAX_LIMIT10 = 100;
21996
- var TABLE_COLUMNS35 = [
22530
+ var TABLE_COLUMNS37 = [
21997
22531
  { header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
21998
22532
  { header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name ?? "", "cell") },
21999
22533
  { header: "EMAIL", cell: /* @__PURE__ */ __name((row) => row.email, "cell") },
@@ -22044,7 +22578,7 @@ function registerTeamMembers(team) {
22044
22578
  console.log("No members found.");
22045
22579
  return;
22046
22580
  }
22047
- console.log(renderTable(TABLE_COLUMNS35, response.members));
22581
+ console.log(renderTable(TABLE_COLUMNS37, response.members));
22048
22582
  console.log(
22049
22583
  `Showing ${response.members.length} of ${response.total} \xB7 offset ${response.offset}`
22050
22584
  );
@@ -22053,11 +22587,11 @@ function registerTeamMembers(team) {
22053
22587
  __name(registerTeamMembers, "registerTeamMembers");
22054
22588
 
22055
22589
  // src/commands/team/use.ts
22056
- import { z as z86 } from "zod";
22590
+ import { z as z87 } from "zod";
22057
22591
  var TEAM_ID_SHAPE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
22058
- var teamIdSchema = z86.string().regex(TEAM_ID_SHAPE);
22059
- var listMyTeamsResponseSchema3 = z86.object({
22060
- teams: z86.array(z86.object({ id: z86.string() }))
22592
+ var teamIdSchema = z87.string().regex(TEAM_ID_SHAPE);
22593
+ var listMyTeamsResponseSchema3 = z87.object({
22594
+ teams: z87.array(z87.object({ id: z87.string() }))
22061
22595
  });
22062
22596
  function registerTeamUse(team) {
22063
22597
  team.command("use <team-id>").description(
@@ -22139,14 +22673,14 @@ function registerTeam(program) {
22139
22673
  __name(registerTeam, "registerTeam");
22140
22674
 
22141
22675
  // src/commands/teams/list.ts
22142
- import { z as z87 } from "zod";
22143
- var teamApiSchema2 = z87.object({
22144
- id: z87.string(),
22145
- name: z87.string(),
22146
- organization_id: z87.string().nullable()
22676
+ import { z as z88 } from "zod";
22677
+ var teamApiSchema2 = z88.object({
22678
+ id: z88.string(),
22679
+ name: z88.string(),
22680
+ organization_id: z88.string().nullable()
22147
22681
  });
22148
- var listMyTeamsResponseSchema4 = z87.object({
22149
- teams: z87.array(teamApiSchema2)
22682
+ var listMyTeamsResponseSchema4 = z88.object({
22683
+ teams: z88.array(teamApiSchema2)
22150
22684
  });
22151
22685
  function registerTeamsList(program) {
22152
22686
  const teams = program.command("teams").description("Inspect the teams your credentials can act on");
@@ -22242,7 +22776,7 @@ __name(resolveActiveTeamId, "resolveActiveTeamId");
22242
22776
  var version = resolveVersion();
22243
22777
  function resolveVersion() {
22244
22778
  if (true) {
22245
- return "1.1.0";
22779
+ return "1.3.0";
22246
22780
  }
22247
22781
  const packageJsonPath = join2(
22248
22782
  dirname2(fileURLToPath(import.meta.url)),
@@ -22311,7 +22845,7 @@ function checkForUpdate() {
22311
22845
  __name(checkForUpdate, "checkForUpdate");
22312
22846
  function loadPackageMeta() {
22313
22847
  if (true) {
22314
- return { name: "@duvoai/cli", version: "1.1.0" };
22848
+ return { name: "@duvoai/cli", version: "1.3.0" };
22315
22849
  }
22316
22850
  const require2 = createRequire(import.meta.url);
22317
22851
  const raw = require2("../package.json");