@duvoai/cli 1.52.0 → 1.54.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 +61 -13
- package/dist/bin/duvo.js.map +3 -3
- package/package.json +1 -1
package/dist/bin/duvo.js
CHANGED
|
@@ -3070,6 +3070,23 @@ var CASE_OUTCOME_SEVERITY = {
|
|
|
3070
3070
|
MEDIUM: "medium",
|
|
3071
3071
|
LOW: "low"
|
|
3072
3072
|
};
|
|
3073
|
+
var CASE_MANUAL_STATUS_TARGETS_BY_STATE = {
|
|
3074
|
+
pending: ["completed", "failed", "canceled"],
|
|
3075
|
+
postponed: ["pending", "completed", "failed", "canceled"],
|
|
3076
|
+
in_progress: ["pending", "completed", "failed", "canceled"],
|
|
3077
|
+
needs_input: ["pending", "completed", "failed", "canceled"],
|
|
3078
|
+
evaluating: ["pending", "completed", "failed", "canceled"],
|
|
3079
|
+
success: ["pending", "completed", "failed", "canceled"],
|
|
3080
|
+
issues: ["pending", "completed", "failed", "canceled"],
|
|
3081
|
+
completed: ["pending", "failed", "canceled"],
|
|
3082
|
+
failed: ["pending", "completed", "canceled"],
|
|
3083
|
+
canceled: ["pending", "completed", "failed"]
|
|
3084
|
+
};
|
|
3085
|
+
function caseManualStatusTargetsFor(status) {
|
|
3086
|
+
return CASE_MANUAL_STATUS_TARGETS_BY_STATE[status];
|
|
3087
|
+
}
|
|
3088
|
+
__name(caseManualStatusTargetsFor, "caseManualStatusTargetsFor");
|
|
3089
|
+
__name2(caseManualStatusTargetsFor, "caseManualStatusTargetsFor");
|
|
3073
3090
|
var CASE_PRIORITY = {
|
|
3074
3091
|
NONE: "none",
|
|
3075
3092
|
MEDIUM: "medium",
|
|
@@ -4182,6 +4199,17 @@ var clarityProcessLandscapeFullNodeSchema = z19.object({
|
|
|
4182
4199
|
id: z19.guid(),
|
|
4183
4200
|
parentId: z19.guid().nullable(),
|
|
4184
4201
|
processId: z19.guid().nullable(),
|
|
4202
|
+
/**
|
|
4203
|
+
* Whether this node is a container or work. Load-bearing for callers that
|
|
4204
|
+
* create nodes: a new node's parent must be an `area`, and `processId` does
|
|
4205
|
+
* NOT discriminate — it is null for areas and for proposed processes alike,
|
|
4206
|
+
* so without this an agent can only guess from the name (DUVO-9512).
|
|
4207
|
+
*
|
|
4208
|
+
* Optional for the same reason as the priority fields below — a client keeps
|
|
4209
|
+
* parsing responses from a server that predates it; the backend always
|
|
4210
|
+
* emits it.
|
|
4211
|
+
*/
|
|
4212
|
+
nodeKind: z19.enum(["area", "process"]).optional(),
|
|
4185
4213
|
name: z19.string(),
|
|
4186
4214
|
ownerLabel: z19.string().nullable(),
|
|
4187
4215
|
sortOrder: z19.number(),
|
|
@@ -12469,8 +12497,8 @@ var automationDetailResponseApiSchema = z66.object({
|
|
|
12469
12497
|
});
|
|
12470
12498
|
var createAutomationResponseApiSchema = z66.object({
|
|
12471
12499
|
automation: automationSummaryApiSchema,
|
|
12472
|
-
draft_revision_id: z66.guid().describe(
|
|
12473
|
-
"The draft revision the new automation was created with. A manually created automation has no live revision until it is first activated, so this is where its first agent build belongs."
|
|
12500
|
+
draft_revision_id: z66.guid().nullable().describe(
|
|
12501
|
+
"The draft revision the new automation was created with, or null when the team isn't on revision semantics and the automation is a bare container. A manually created automation has no live revision until it is first activated, so this is where its first agent build belongs."
|
|
12474
12502
|
),
|
|
12475
12503
|
first_agent_id: z66.guid().describe(
|
|
12476
12504
|
"The automation's first agent, created alongside it with a default build bound into the draft revision, so the caller can open it directly."
|
|
@@ -13450,15 +13478,26 @@ var casesStatsSchema = z76.object({
|
|
|
13450
13478
|
total: z76.number(),
|
|
13451
13479
|
/** `pending` — unowned, idle, not postponed; claimable now. */
|
|
13452
13480
|
pending: z76.number(),
|
|
13453
|
-
/**
|
|
13481
|
+
/**
|
|
13482
|
+
* `in_progress` — work still moving. Owned by a run with no open HITL token,
|
|
13483
|
+
* plus the `evaluating` window: a case that settled OK and is waiting on its
|
|
13484
|
+
* whole-case evaluation has no verdict yet, so it reads as still in progress
|
|
13485
|
+
* rather than as its own bucket.
|
|
13486
|
+
*/
|
|
13454
13487
|
processing: z76.number(),
|
|
13455
13488
|
/** `needs_input` — owned by a run holding an open HITL token. */
|
|
13456
13489
|
needs_input: z76.number(),
|
|
13457
13490
|
/** `postponed` — unowned, scheduled for later. */
|
|
13458
13491
|
postponed: z76.number(),
|
|
13459
13492
|
/**
|
|
13460
|
-
* `evaluating` — settled OK with its whole-case evaluation still resolving
|
|
13461
|
-
*
|
|
13493
|
+
* `evaluating` — settled OK with its whole-case evaluation still resolving (no
|
|
13494
|
+
* stored outcome yet). Transient, and bounded by the recovery sweep.
|
|
13495
|
+
*
|
|
13496
|
+
* NOT a bucket, and deliberately excluded from the partition sum above: these
|
|
13497
|
+
* cases are counted inside `processing`, because a case with no verdict yet has
|
|
13498
|
+
* not reached an outcome. Kept as a response field because it shipped as one —
|
|
13499
|
+
* dropping it is a breaking change needing its own deprecation window — and it
|
|
13500
|
+
* is still useful on its own as "how many are waiting on a verdict".
|
|
13462
13501
|
*/
|
|
13463
13502
|
evaluating: z76.number(),
|
|
13464
13503
|
/** `success` + `completed` — finished cleanly. */
|
|
@@ -13494,13 +13533,13 @@ var casesStatsSchema = z76.object({
|
|
|
13494
13533
|
description: "Deprecated alias of needs_input. Read needs_input instead."
|
|
13495
13534
|
}),
|
|
13496
13535
|
/**
|
|
13497
|
-
* @deprecated Every settled-OK case (`status = completed`) — i.e.
|
|
13498
|
-
* `
|
|
13499
|
-
* synonym for `resolved`, which excludes the other two.
|
|
13536
|
+
* @deprecated Every settled-OK case (`status = completed`) — i.e. `resolved +`
|
|
13537
|
+
* the evaluating share of `processing` + the `issues` share of `needs_review`.
|
|
13538
|
+
* Not a synonym for `resolved`, which excludes the other two.
|
|
13500
13539
|
*/
|
|
13501
13540
|
completed: z76.number().meta({
|
|
13502
13541
|
deprecated: true,
|
|
13503
|
-
description: "Deprecated count of all settled-OK cases. Read resolved (finished cleanly),
|
|
13542
|
+
description: "Deprecated count of all settled-OK cases. Read resolved (finished cleanly), processing, and needs_review instead."
|
|
13504
13543
|
}),
|
|
13505
13544
|
/**
|
|
13506
13545
|
* @deprecated Every errored-or-stopped case (`status = failed`) — i.e. the
|
|
@@ -13897,7 +13936,12 @@ var FEATURE_FLAG_CATALOGUE = {
|
|
|
13897
13936
|
AUTOMATIONS: {
|
|
13898
13937
|
key: "automations",
|
|
13899
13938
|
defaultValue: false,
|
|
13900
|
-
description: "Exposes the
|
|
13939
|
+
description: "Exposes the Automations workspace migration entry point. When on, Managers see a 'Migrate to automations' action on the Agents page that sorts the team's standalone agents and queues into Automations (one per connected closure, via the same closure logic as the cross-team move) and stamps team.automations_migrated_at. Which conversion runs is decided by AUTOMATION_VERSIONING, not by this flag: off (the default) writes automation containers and identity FKs only, so builds, triggers and schedules keep their existing lifecycle and a global admin can reverse the move from the team's admin panel; on, the same entry point converts straight to revision semantics and additionally stamps team.automation_revisions_migrated_at, which is not reversible. Revision semantics are also reachable for an already-converted team through the separate phase-2 cutover. The workspace stamp \u2014 not this flag \u2014 drives the Automations sidebar entry. Resolved by team/org (user-level overrides are ignored by the migration gate). Off-by-default for staged, per-team rollout."
|
|
13940
|
+
},
|
|
13941
|
+
AUTOMATION_VERSIONING: {
|
|
13942
|
+
key: "automation_versioning",
|
|
13943
|
+
defaultValue: false,
|
|
13944
|
+
description: "Makes the Automations migration convert straight to revision semantics instead of the lite workspace. When off (the default), POST /automations/migrate writes automation containers only and stamps team.automations_migrated_at; when on, it also snapshots each automation's current live builds, queue routing, trigger configs and recurring schedules as revision 1 and stamps team.automation_revisions_migrated_at. Only applies to a team that is still standalone \u2014 it is not the lite-to-versioned cutover, which resolves its groups from existing automation membership rather than by closure discovery. Resolved by team/org (user-level overrides are ignored by the migration gate), and only consulted for a team that also has AUTOMATIONS on."
|
|
13901
13945
|
},
|
|
13902
13946
|
AGENT_SELF_SCHEDULING: {
|
|
13903
13947
|
key: "agent_self_scheduling",
|
|
@@ -22383,10 +22427,14 @@ function parsePriority(raw) {
|
|
|
22383
22427
|
__name(parsePriority, "parsePriority");
|
|
22384
22428
|
|
|
22385
22429
|
// src/commands/cases/bulk-update-status.ts
|
|
22386
|
-
var CASE_TERMINAL_STATUSES = [
|
|
22430
|
+
var CASE_TERMINAL_STATUSES = [
|
|
22431
|
+
"completed",
|
|
22432
|
+
"failed",
|
|
22433
|
+
"canceled"
|
|
22434
|
+
];
|
|
22387
22435
|
function registerCasesBulkUpdateStatus(cases) {
|
|
22388
22436
|
cases.command("bulk-update-status").description(
|
|
22389
|
-
"Update the status of multiple cases to completed or
|
|
22437
|
+
"Update the status of multiple cases to completed, failed, or canceled (1-100). Interrupts any active runs. Use canceled for a deliberate human stop, as distinct from a system failure."
|
|
22390
22438
|
).requiredOption("--queue <id>", "ID of the queue the cases belong to").requiredOption("--ids <list>", "comma-separated case IDs (1-100)").requiredOption(
|
|
22391
22439
|
"--status <status>",
|
|
22392
22440
|
`terminal status (${CASE_TERMINAL_STATUSES.join(", ")})`
|
|
@@ -43102,7 +43150,7 @@ __name(isStandaloneBinary, "isStandaloneBinary");
|
|
|
43102
43150
|
import { createRequire } from "node:module";
|
|
43103
43151
|
function getPackageMeta() {
|
|
43104
43152
|
if (true) {
|
|
43105
|
-
return { name: "@duvoai/cli", version: "1.
|
|
43153
|
+
return { name: "@duvoai/cli", version: "1.54.0" };
|
|
43106
43154
|
}
|
|
43107
43155
|
const require2 = createRequire(import.meta.url);
|
|
43108
43156
|
const raw = require2("../../package.json");
|