@duvoai/cli 1.7.1 → 1.8.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 +1900 -1299
- package/dist/bin/duvo.js.map +4 -4
- package/guides/duvo.md +7 -0
- package/package.json +1 -1
package/dist/bin/duvo.js
CHANGED
|
@@ -85,9 +85,9 @@ import { z as z47 } from "zod";
|
|
|
85
85
|
import { z as z48 } from "zod";
|
|
86
86
|
import { z as z50 } from "zod";
|
|
87
87
|
import { z as z49 } from "zod";
|
|
88
|
+
import { z as z52 } from "zod";
|
|
88
89
|
import { z as z51 } from "zod";
|
|
89
90
|
import { z as z53 } from "zod";
|
|
90
|
-
import { z as z52 } from "zod";
|
|
91
91
|
import { z as z54 } from "zod";
|
|
92
92
|
import { z as z55 } from "zod";
|
|
93
93
|
import { z as z56 } from "zod";
|
|
@@ -99,14 +99,13 @@ import { z as z61 } from "zod";
|
|
|
99
99
|
import { z as z62 } from "zod";
|
|
100
100
|
import { z as z63 } from "zod";
|
|
101
101
|
import { z as z64 } from "zod";
|
|
102
|
+
import { z as z66 } from "zod";
|
|
102
103
|
import { z as z65 } from "zod";
|
|
103
104
|
import { z as z67 } from "zod";
|
|
104
|
-
import { z as z66 } from "zod";
|
|
105
105
|
import { z as z68 } from "zod";
|
|
106
106
|
import { z as z69 } from "zod";
|
|
107
107
|
import { z as z70 } from "zod";
|
|
108
108
|
import { z as z71 } from "zod";
|
|
109
|
-
import { z as z72 } from "zod";
|
|
110
109
|
|
|
111
110
|
// ../node_modules/.pnpm/jsonrepair@3.13.2/node_modules/jsonrepair/lib/esm/utils/JSONRepairError.js
|
|
112
111
|
var JSONRepairError = class extends Error {
|
|
@@ -833,7 +832,6 @@ var PLAN_FEATURE = {
|
|
|
833
832
|
CUSTOM_MCP_SERVERS: "custom_mcp_servers",
|
|
834
833
|
CASE_QUEUE: "case_queue",
|
|
835
834
|
CLARITY: "clarity",
|
|
836
|
-
CLARITY_OVERVIEW: "clarity_overview",
|
|
837
835
|
PORTFOLIO_INTELLIGENCE: "portfolio_intelligence",
|
|
838
836
|
SSO: "sso",
|
|
839
837
|
AUDIT_LOGS: "audit_logs",
|
|
@@ -847,7 +845,7 @@ var PLAN_FEATURE = {
|
|
|
847
845
|
};
|
|
848
846
|
var PLAN_VERSIONS = {
|
|
849
847
|
free_v1: {
|
|
850
|
-
name: "
|
|
848
|
+
name: "Free",
|
|
851
849
|
basePlan: "free",
|
|
852
850
|
maxAgents: "unlimited",
|
|
853
851
|
maxAgentRunsPerMonth: 100,
|
|
@@ -875,7 +873,6 @@ var PLAN_VERSIONS = {
|
|
|
875
873
|
PLAN_FEATURE.CUSTOM_MCP_SERVERS,
|
|
876
874
|
PLAN_FEATURE.CASE_QUEUE,
|
|
877
875
|
PLAN_FEATURE.CLARITY,
|
|
878
|
-
PLAN_FEATURE.CLARITY_OVERVIEW,
|
|
879
876
|
PLAN_FEATURE.PORTFOLIO_INTELLIGENCE,
|
|
880
877
|
PLAN_FEATURE.LEARNINGS,
|
|
881
878
|
PLAN_FEATURE.BROWSING_SKILL_RECORDING,
|
|
@@ -899,7 +896,6 @@ var PLAN_VERSIONS = {
|
|
|
899
896
|
PLAN_FEATURE.CUSTOM_MCP_SERVERS,
|
|
900
897
|
PLAN_FEATURE.CASE_QUEUE,
|
|
901
898
|
PLAN_FEATURE.CLARITY,
|
|
902
|
-
PLAN_FEATURE.CLARITY_OVERVIEW,
|
|
903
899
|
PLAN_FEATURE.PORTFOLIO_INTELLIGENCE,
|
|
904
900
|
PLAN_FEATURE.SSO,
|
|
905
901
|
PLAN_FEATURE.AUDIT_LOGS,
|
|
@@ -928,11 +924,7 @@ var PLAN_VERSIONS = {
|
|
|
928
924
|
maxAgentRunsPerMonth: 0,
|
|
929
925
|
runCountingMode: "monthly",
|
|
930
926
|
maxConcurrentRuns: 0,
|
|
931
|
-
features: [
|
|
932
|
-
PLAN_FEATURE.CLARITY,
|
|
933
|
-
PLAN_FEATURE.CLARITY_OVERVIEW,
|
|
934
|
-
PLAN_FEATURE.PORTFOLIO_INTELLIGENCE
|
|
935
|
-
],
|
|
927
|
+
features: [PLAN_FEATURE.CLARITY, PLAN_FEATURE.PORTFOLIO_INTELLIGENCE],
|
|
936
928
|
isActive: true,
|
|
937
929
|
monthlyPriceCents: 0
|
|
938
930
|
// Custom pricing
|
|
@@ -1125,7 +1117,6 @@ var CAPABILITY = {
|
|
|
1125
1117
|
ADVANCED_INTEGRATIONS: "advanced_integrations",
|
|
1126
1118
|
CUSTOM_MCP_SERVERS: "custom_mcp_servers",
|
|
1127
1119
|
CASE_QUEUE: "case_queue",
|
|
1128
|
-
CLARITY_OVERVIEW: "clarity_overview",
|
|
1129
1120
|
PORTFOLIO_INTELLIGENCE: "portfolio_intelligence",
|
|
1130
1121
|
SSO: "sso",
|
|
1131
1122
|
AUDIT_LOGS: "audit_logs",
|
|
@@ -1141,7 +1132,6 @@ var CAPABILITY_KEYS = [
|
|
|
1141
1132
|
CAPABILITY.ADVANCED_INTEGRATIONS,
|
|
1142
1133
|
CAPABILITY.CUSTOM_MCP_SERVERS,
|
|
1143
1134
|
CAPABILITY.CASE_QUEUE,
|
|
1144
|
-
CAPABILITY.CLARITY_OVERVIEW,
|
|
1145
1135
|
CAPABILITY.PORTFOLIO_INTELLIGENCE,
|
|
1146
1136
|
CAPABILITY.SSO,
|
|
1147
1137
|
CAPABILITY.AUDIT_LOGS,
|
|
@@ -1167,7 +1157,6 @@ var CAPABILITY_PRODUCT = {
|
|
|
1167
1157
|
[CAPABILITY.ADVANCED_INTEGRATIONS]: PRODUCT.AUTOMATION,
|
|
1168
1158
|
[CAPABILITY.CUSTOM_MCP_SERVERS]: PRODUCT.AUTOMATION,
|
|
1169
1159
|
[CAPABILITY.CASE_QUEUE]: PRODUCT.AUTOMATION,
|
|
1170
|
-
[CAPABILITY.CLARITY_OVERVIEW]: PRODUCT.CLARITY,
|
|
1171
1160
|
[CAPABILITY.PORTFOLIO_INTELLIGENCE]: PRODUCT.CLARITY,
|
|
1172
1161
|
[CAPABILITY.SSO]: PRODUCT.PLATFORM,
|
|
1173
1162
|
[CAPABILITY.AUDIT_LOGS]: PRODUCT.PLATFORM,
|
|
@@ -1183,7 +1172,6 @@ var CAPABILITY_FEATURE_COMPATIBILITY = {
|
|
|
1183
1172
|
[CAPABILITY.ADVANCED_INTEGRATIONS]: PLAN_FEATURE.ADVANCED_INTEGRATIONS,
|
|
1184
1173
|
[CAPABILITY.CUSTOM_MCP_SERVERS]: PLAN_FEATURE.CUSTOM_MCP_SERVERS,
|
|
1185
1174
|
[CAPABILITY.CASE_QUEUE]: PLAN_FEATURE.CASE_QUEUE,
|
|
1186
|
-
[CAPABILITY.CLARITY_OVERVIEW]: PLAN_FEATURE.CLARITY_OVERVIEW,
|
|
1187
1175
|
[CAPABILITY.PORTFOLIO_INTELLIGENCE]: PLAN_FEATURE.PORTFOLIO_INTELLIGENCE,
|
|
1188
1176
|
[CAPABILITY.SSO]: PLAN_FEATURE.SSO,
|
|
1189
1177
|
[CAPABILITY.AUDIT_LOGS]: PLAN_FEATURE.AUDIT_LOGS,
|
|
@@ -1231,7 +1219,6 @@ var PLAN_PRESET_ENTITLEMENTS = {
|
|
|
1231
1219
|
CAPABILITY.ADVANCED_INTEGRATIONS,
|
|
1232
1220
|
CAPABILITY.CUSTOM_MCP_SERVERS,
|
|
1233
1221
|
CAPABILITY.CASE_QUEUE,
|
|
1234
|
-
CAPABILITY.CLARITY_OVERVIEW,
|
|
1235
1222
|
CAPABILITY.PORTFOLIO_INTELLIGENCE,
|
|
1236
1223
|
CAPABILITY.LEARNINGS,
|
|
1237
1224
|
CAPABILITY.BROWSING_SKILL_RECORDING,
|
|
@@ -1247,7 +1234,6 @@ var PLAN_PRESET_ENTITLEMENTS = {
|
|
|
1247
1234
|
CAPABILITY.ADVANCED_INTEGRATIONS,
|
|
1248
1235
|
CAPABILITY.CUSTOM_MCP_SERVERS,
|
|
1249
1236
|
CAPABILITY.CASE_QUEUE,
|
|
1250
|
-
CAPABILITY.CLARITY_OVERVIEW,
|
|
1251
1237
|
CAPABILITY.PORTFOLIO_INTELLIGENCE,
|
|
1252
1238
|
CAPABILITY.SSO,
|
|
1253
1239
|
CAPABILITY.AUDIT_LOGS,
|
|
@@ -1262,10 +1248,7 @@ var PLAN_PRESET_ENTITLEMENTS = {
|
|
|
1262
1248
|
},
|
|
1263
1249
|
clarity_v1: {
|
|
1264
1250
|
products: [PRODUCT.CLARITY],
|
|
1265
|
-
capabilities: [
|
|
1266
|
-
CAPABILITY.CLARITY_OVERVIEW,
|
|
1267
|
-
CAPABILITY.PORTFOLIO_INTELLIGENCE
|
|
1268
|
-
],
|
|
1251
|
+
capabilities: [CAPABILITY.PORTFOLIO_INTELLIGENCE],
|
|
1269
1252
|
limits: getLimitsFromPlan(PLAN_VERSIONS.clarity_v1)
|
|
1270
1253
|
}
|
|
1271
1254
|
};
|
|
@@ -1481,7 +1464,6 @@ var PLAN_FEATURE_LABELS = {
|
|
|
1481
1464
|
[PLAN_FEATURE.CUSTOM_MCP_SERVERS]: "Custom MCP Servers",
|
|
1482
1465
|
[PLAN_FEATURE.CASE_QUEUE]: "Queue",
|
|
1483
1466
|
[PLAN_FEATURE.CLARITY]: "Clarity",
|
|
1484
|
-
[PLAN_FEATURE.CLARITY_OVERVIEW]: "Clarity Overview",
|
|
1485
1467
|
[PLAN_FEATURE.PORTFOLIO_INTELLIGENCE]: "Portfolio Intelligence",
|
|
1486
1468
|
[PLAN_FEATURE.SSO]: "Single Sign-On (SSO)",
|
|
1487
1469
|
[PLAN_FEATURE.AUDIT_LOGS]: "Audit Logs",
|
|
@@ -1586,9 +1568,18 @@ var duvoSystemSessionStartedMessageSchema = duvoBaseSystemMessageSchema.and(
|
|
|
1586
1568
|
type: z8.literal("session_started")
|
|
1587
1569
|
})
|
|
1588
1570
|
);
|
|
1571
|
+
var sessionPhaseTimingsSchema = z8.object({
|
|
1572
|
+
setupMs: z8.number().optional(),
|
|
1573
|
+
preflightMs: z8.number().optional(),
|
|
1574
|
+
warmupMs: z8.number().nullable().optional(),
|
|
1575
|
+
warmupOutcome: z8.enum(["warmed", "skipped", "failed"]).optional(),
|
|
1576
|
+
modelTtftMs: z8.number().optional(),
|
|
1577
|
+
firstTokenMs: z8.number().optional()
|
|
1578
|
+
});
|
|
1589
1579
|
var duvoSystemSessionCompletedMessageSchema = duvoBaseSystemMessageSchema.and(
|
|
1590
1580
|
z8.object({
|
|
1591
|
-
type: z8.literal("session_completed")
|
|
1581
|
+
type: z8.literal("session_completed"),
|
|
1582
|
+
phases: sessionPhaseTimingsSchema.optional()
|
|
1592
1583
|
})
|
|
1593
1584
|
);
|
|
1594
1585
|
var duvoSystemSessionInterruptedMessageSchema = duvoBaseSystemMessageSchema.and(
|
|
@@ -2620,9 +2611,10 @@ var CLARITY_CAPTURE_TYPES = [
|
|
|
2620
2611
|
"video",
|
|
2621
2612
|
"interview",
|
|
2622
2613
|
"document",
|
|
2623
|
-
"screenshare"
|
|
2614
|
+
"screenshare",
|
|
2615
|
+
"meeting"
|
|
2624
2616
|
];
|
|
2625
|
-
var clarityCaptureTypeSchema =
|
|
2617
|
+
var clarityCaptureTypeSchema = extensibleEnum(CLARITY_CAPTURE_TYPES);
|
|
2626
2618
|
var conversationMessageSchema = z13.object({
|
|
2627
2619
|
source: z13.enum(["ai", "user", "interviewer"]),
|
|
2628
2620
|
message: z13.string().min(1),
|
|
@@ -3064,6 +3056,37 @@ var initiateClarityPhoneInterviewResponseSchema = z13.object({
|
|
|
3064
3056
|
captureId: z13.string().uuid(),
|
|
3065
3057
|
status: z13.literal("calling")
|
|
3066
3058
|
});
|
|
3059
|
+
var MEETING_PLATFORM_HOST_PATTERNS = [
|
|
3060
|
+
{ platform: "google_meet", pattern: /(^|\.)meet\.google\.com$/ },
|
|
3061
|
+
{
|
|
3062
|
+
platform: "microsoft_teams",
|
|
3063
|
+
pattern: /(^|\.)(teams\.microsoft\.com|teams\.live\.com)$/
|
|
3064
|
+
},
|
|
3065
|
+
{ platform: "zoom", pattern: /(^|\.)zoom\.(us|com)$/ },
|
|
3066
|
+
{ platform: "webex", pattern: /(^|\.)webex\.com$/ }
|
|
3067
|
+
];
|
|
3068
|
+
function detectMeetingPlatform(meetingUrl) {
|
|
3069
|
+
let host;
|
|
3070
|
+
try {
|
|
3071
|
+
host = new URL(meetingUrl).hostname.toLowerCase();
|
|
3072
|
+
} catch {
|
|
3073
|
+
return null;
|
|
3074
|
+
}
|
|
3075
|
+
const match = MEETING_PLATFORM_HOST_PATTERNS.find(
|
|
3076
|
+
({ pattern }) => pattern.test(host)
|
|
3077
|
+
);
|
|
3078
|
+
return match?.platform ?? null;
|
|
3079
|
+
}
|
|
3080
|
+
__name(detectMeetingPlatform, "detectMeetingPlatform");
|
|
3081
|
+
__name2(detectMeetingPlatform, "detectMeetingPlatform");
|
|
3082
|
+
var inviteClarityNotetakerSchema = z13.object({
|
|
3083
|
+
meetingUrl: z13.url().max(2048),
|
|
3084
|
+
extraCaptureRequestId: z13.guid().optional()
|
|
3085
|
+
});
|
|
3086
|
+
var inviteClarityNotetakerResponseSchema = z13.object({
|
|
3087
|
+
captureId: z13.guid(),
|
|
3088
|
+
status: z13.literal("pending")
|
|
3089
|
+
});
|
|
3067
3090
|
var publicClarityProcessSchema = z13.object({
|
|
3068
3091
|
id: z13.guid(),
|
|
3069
3092
|
name: z13.string(),
|
|
@@ -3861,6 +3884,11 @@ var clarityVersionStatusChangedEventDataSchema = z17.object({
|
|
|
3861
3884
|
versionId: z17.guid(),
|
|
3862
3885
|
status: clarityV2SnapshotStatusSchema
|
|
3863
3886
|
});
|
|
3887
|
+
var clarityCaptureTranscriptReadyEventDataSchema = z17.object({
|
|
3888
|
+
processId: z17.guid(),
|
|
3889
|
+
captureId: z17.guid(),
|
|
3890
|
+
status: clarityCaptureStatusSchema
|
|
3891
|
+
});
|
|
3864
3892
|
var clarityProcessRoomPayloadSchema = z17.object({
|
|
3865
3893
|
processId: z17.guid()
|
|
3866
3894
|
});
|
|
@@ -4040,7 +4068,10 @@ var clarityTransformationProposalSnapshotKindDetailResponseSchema = z18.object({
|
|
|
4040
4068
|
var saveClarityProcessSnapshotBodySchema = z18.object({
|
|
4041
4069
|
steps: z18.array(postprocessClarityStepBaseSchema).min(1).superRefine(refineStepGraph),
|
|
4042
4070
|
baselineSnapshotId: z18.guid(),
|
|
4043
|
-
clarityCurrentProcessId: z18.guid().optional()
|
|
4071
|
+
clarityCurrentProcessId: z18.guid().optional(),
|
|
4072
|
+
...swotAnalysisAgentCurrentProcessSchema.shape,
|
|
4073
|
+
...processSummaryAgentCurrentProcessSchema.shape,
|
|
4074
|
+
...projectedImpactAgentTransformationProposalSchema.shape
|
|
4044
4075
|
});
|
|
4045
4076
|
var saveClarityProcessSnapshotResponseSchema = clarityProcessSnapshotDetailResponseSchema;
|
|
4046
4077
|
var clarityV2ProcessReadModelSchema = z18.object({
|
|
@@ -4309,6 +4340,32 @@ function clarityStepsToEaseDocument(steps) {
|
|
|
4309
4340
|
}
|
|
4310
4341
|
__name(clarityStepsToEaseDocument, "clarityStepsToEaseDocument");
|
|
4311
4342
|
__name2(clarityStepsToEaseDocument, "clarityStepsToEaseDocument");
|
|
4343
|
+
function pickAllowedRoots(value) {
|
|
4344
|
+
if (!isJsonObject(value)) {
|
|
4345
|
+
return {};
|
|
4346
|
+
}
|
|
4347
|
+
const roots = {};
|
|
4348
|
+
if (value.summary !== void 0) {
|
|
4349
|
+
roots.summary = value.summary;
|
|
4350
|
+
}
|
|
4351
|
+
if (value.swot !== void 0) {
|
|
4352
|
+
roots.swot = value.swot;
|
|
4353
|
+
}
|
|
4354
|
+
if (value.projectedImpact !== void 0) {
|
|
4355
|
+
roots.projectedImpact = value.projectedImpact;
|
|
4356
|
+
}
|
|
4357
|
+
return roots;
|
|
4358
|
+
}
|
|
4359
|
+
__name(pickAllowedRoots, "pickAllowedRoots");
|
|
4360
|
+
__name2(pickAllowedRoots, "pickAllowedRoots");
|
|
4361
|
+
function clarityDataToEaseDocument(data) {
|
|
4362
|
+
return {
|
|
4363
|
+
...pickAllowedRoots(data),
|
|
4364
|
+
...clarityStepsToEaseDocument(data.steps)
|
|
4365
|
+
};
|
|
4366
|
+
}
|
|
4367
|
+
__name(clarityDataToEaseDocument, "clarityDataToEaseDocument");
|
|
4368
|
+
__name2(clarityDataToEaseDocument, "clarityDataToEaseDocument");
|
|
4312
4369
|
function assertEaseDocument(value) {
|
|
4313
4370
|
if (!isJsonObject(value)) {
|
|
4314
4371
|
throw new Error("EASE document must be an object");
|
|
@@ -4366,6 +4423,7 @@ function assertEaseDocument(value) {
|
|
|
4366
4423
|
}
|
|
4367
4424
|
}
|
|
4368
4425
|
return {
|
|
4426
|
+
...pickAllowedRoots(value),
|
|
4369
4427
|
stepOrder,
|
|
4370
4428
|
stepsById: Object.fromEntries(stepEntries)
|
|
4371
4429
|
};
|
|
@@ -4375,6 +4433,7 @@ __name2(assertEaseDocument, "assertEaseDocument");
|
|
|
4375
4433
|
function materializeEaseDocument(easeDocument) {
|
|
4376
4434
|
const ease = assertEaseDocument(easeDocument);
|
|
4377
4435
|
return {
|
|
4436
|
+
...pickAllowedRoots(ease),
|
|
4378
4437
|
steps: ease.stepOrder.map((stepId) => ({
|
|
4379
4438
|
id: stepId,
|
|
4380
4439
|
...ease.stepsById[stepId]
|
|
@@ -4383,32 +4442,125 @@ function materializeEaseDocument(easeDocument) {
|
|
|
4383
4442
|
}
|
|
4384
4443
|
__name(materializeEaseDocument, "materializeEaseDocument");
|
|
4385
4444
|
__name2(materializeEaseDocument, "materializeEaseDocument");
|
|
4445
|
+
function clarityOutputToEaseDocument(output) {
|
|
4446
|
+
return {
|
|
4447
|
+
...pickAllowedRoots(output),
|
|
4448
|
+
...clarityStepsToEaseDocument(output.steps)
|
|
4449
|
+
};
|
|
4450
|
+
}
|
|
4451
|
+
__name(clarityOutputToEaseDocument, "clarityOutputToEaseDocument");
|
|
4452
|
+
__name2(clarityOutputToEaseDocument, "clarityOutputToEaseDocument");
|
|
4386
4453
|
function mergeCurrentProcessPostprocessSlices(previous, steps) {
|
|
4387
4454
|
return { ...previous, steps: mergeSteps(previous.steps, steps) };
|
|
4388
4455
|
}
|
|
4389
4456
|
__name(mergeCurrentProcessPostprocessSlices, "mergeCurrentProcessPostprocessSlices");
|
|
4390
4457
|
__name2(mergeCurrentProcessPostprocessSlices, "mergeCurrentProcessPostprocessSlices");
|
|
4458
|
+
function stripProposalOnlyStepSlices(steps) {
|
|
4459
|
+
return steps.map((step) => {
|
|
4460
|
+
if (typeof step !== "object" || step === null) {
|
|
4461
|
+
return step;
|
|
4462
|
+
}
|
|
4463
|
+
return Object.fromEntries(
|
|
4464
|
+
Object.entries(step).filter(
|
|
4465
|
+
([key]) => key !== "readiness" && key !== "readinessRationale" && key !== "extraCaptureNeeded"
|
|
4466
|
+
)
|
|
4467
|
+
);
|
|
4468
|
+
});
|
|
4469
|
+
}
|
|
4470
|
+
__name(stripProposalOnlyStepSlices, "stripProposalOnlyStepSlices");
|
|
4471
|
+
__name2(stripProposalOnlyStepSlices, "stripProposalOnlyStepSlices");
|
|
4391
4472
|
function mergeTransformationProposalPostprocessSlices(previous, steps) {
|
|
4392
4473
|
return { ...previous, steps: mergeSteps(previous.steps, steps) };
|
|
4393
4474
|
}
|
|
4394
4475
|
__name(mergeTransformationProposalPostprocessSlices, "mergeTransformationProposalPostprocessSlices");
|
|
4395
4476
|
__name2(mergeTransformationProposalPostprocessSlices, "mergeTransformationProposalPostprocessSlices");
|
|
4396
|
-
function
|
|
4477
|
+
function resolveEditedRoot(edited, previous, pending = false) {
|
|
4478
|
+
if (edited !== void 0) {
|
|
4479
|
+
return edited;
|
|
4480
|
+
}
|
|
4481
|
+
return pending ? void 0 : previous;
|
|
4482
|
+
}
|
|
4483
|
+
__name(resolveEditedRoot, "resolveEditedRoot");
|
|
4484
|
+
__name2(resolveEditedRoot, "resolveEditedRoot");
|
|
4485
|
+
function materializeCurrentProcessEdit(previous, easeOutput, options = {}) {
|
|
4397
4486
|
return postprocessClarityCurrentProcessDataSchema.parse({
|
|
4398
|
-
|
|
4399
|
-
|
|
4487
|
+
...previous,
|
|
4488
|
+
summary: resolveEditedRoot(
|
|
4489
|
+
easeOutput.summary,
|
|
4490
|
+
previous.summary,
|
|
4491
|
+
options.pendingSummary
|
|
4492
|
+
),
|
|
4493
|
+
swot: resolveEditedRoot(
|
|
4494
|
+
easeOutput.swot,
|
|
4495
|
+
previous.swot,
|
|
4496
|
+
options.pendingSwot
|
|
4497
|
+
),
|
|
4498
|
+
steps: stripProposalOnlyStepSlices(
|
|
4499
|
+
coerceStepsOutput([...easeOutput.steps])
|
|
4500
|
+
)
|
|
4400
4501
|
});
|
|
4401
4502
|
}
|
|
4402
|
-
__name(
|
|
4403
|
-
__name2(
|
|
4404
|
-
function
|
|
4503
|
+
__name(materializeCurrentProcessEdit, "materializeCurrentProcessEdit");
|
|
4504
|
+
__name2(materializeCurrentProcessEdit, "materializeCurrentProcessEdit");
|
|
4505
|
+
function materializeProposalEdit(previous, easeOutput, options = {}) {
|
|
4506
|
+
const steps = coerceStepsOutput([
|
|
4507
|
+
...easeOutput.steps
|
|
4508
|
+
]);
|
|
4405
4509
|
return postprocessClarityTransformationProposalDataSchema.parse({
|
|
4406
|
-
|
|
4407
|
-
|
|
4510
|
+
...previous,
|
|
4511
|
+
summary: resolveEditedRoot(
|
|
4512
|
+
easeOutput.summary,
|
|
4513
|
+
previous.summary,
|
|
4514
|
+
options.pendingSummary
|
|
4515
|
+
),
|
|
4516
|
+
projectedImpact: resolveEditedRoot(
|
|
4517
|
+
easeOutput.projectedImpact,
|
|
4518
|
+
previous.projectedImpact,
|
|
4519
|
+
options.pendingProjectedImpact
|
|
4520
|
+
),
|
|
4521
|
+
steps: options.preserveVolatileSlices ? preserveProposalVolatileSlices(previous.steps, steps) : clearProposalVolatileSlices(steps)
|
|
4522
|
+
});
|
|
4523
|
+
}
|
|
4524
|
+
__name(materializeProposalEdit, "materializeProposalEdit");
|
|
4525
|
+
__name2(materializeProposalEdit, "materializeProposalEdit");
|
|
4526
|
+
function clearProposalVolatileSlices(steps) {
|
|
4527
|
+
return steps.map((step) => {
|
|
4528
|
+
if (typeof step !== "object" || step === null) {
|
|
4529
|
+
return step;
|
|
4530
|
+
}
|
|
4531
|
+
const proposalStep = step;
|
|
4532
|
+
const {
|
|
4533
|
+
readiness: _readiness,
|
|
4534
|
+
readinessRationale: _readinessRationale,
|
|
4535
|
+
extraCaptureNeeded: _extraCaptureNeeded,
|
|
4536
|
+
...baseStep
|
|
4537
|
+
} = proposalStep;
|
|
4538
|
+
return baseStep;
|
|
4539
|
+
});
|
|
4540
|
+
}
|
|
4541
|
+
__name(clearProposalVolatileSlices, "clearProposalVolatileSlices");
|
|
4542
|
+
__name2(clearProposalVolatileSlices, "clearProposalVolatileSlices");
|
|
4543
|
+
function preserveProposalVolatileSlices(previousSteps, steps) {
|
|
4544
|
+
const previousById = new Map(previousSteps.map((step) => [step.id, step]));
|
|
4545
|
+
return clearProposalVolatileSlices(steps).map((step) => {
|
|
4546
|
+
if (typeof step !== "object" || step === null || !("id" in step)) {
|
|
4547
|
+
return step;
|
|
4548
|
+
}
|
|
4549
|
+
const stepId = typeof step.id === "string" ? step.id : null;
|
|
4550
|
+
const prev = stepId === null ? void 0 : previousById.get(stepId);
|
|
4551
|
+
if (!prev) {
|
|
4552
|
+
return step;
|
|
4553
|
+
}
|
|
4554
|
+
return {
|
|
4555
|
+
...step,
|
|
4556
|
+
...prev.readiness === void 0 ? {} : { readiness: prev.readiness },
|
|
4557
|
+
...prev.readinessRationale === void 0 ? {} : { readinessRationale: prev.readinessRationale },
|
|
4558
|
+
...prev.extraCaptureNeeded === void 0 ? {} : { extraCaptureNeeded: prev.extraCaptureNeeded }
|
|
4559
|
+
};
|
|
4408
4560
|
});
|
|
4409
4561
|
}
|
|
4410
|
-
__name(
|
|
4411
|
-
__name2(
|
|
4562
|
+
__name(preserveProposalVolatileSlices, "preserveProposalVolatileSlices");
|
|
4563
|
+
__name2(preserveProposalVolatileSlices, "preserveProposalVolatileSlices");
|
|
4412
4564
|
function mergeSteps(previousSteps, steps) {
|
|
4413
4565
|
const previousById = new Map(previousSteps.map((step) => [step.id, step]));
|
|
4414
4566
|
return steps.map((step) => {
|
|
@@ -4857,6 +5009,7 @@ var INTEGRATION_SLUGS = [
|
|
|
4857
5009
|
"workday",
|
|
4858
5010
|
"coupa",
|
|
4859
5011
|
"signavio",
|
|
5012
|
+
"sap-ecc",
|
|
4860
5013
|
"msteams",
|
|
4861
5014
|
"human-in-the-loop",
|
|
4862
5015
|
"email-attachments-reader",
|
|
@@ -5239,11 +5392,15 @@ var artifactMessageSchema = z24.object({
|
|
|
5239
5392
|
// rows, whose visible text lives in `content`.
|
|
5240
5393
|
message: z24.unknown().nullable().optional()
|
|
5241
5394
|
});
|
|
5395
|
+
var artifactListScopeSchema = z24.enum(["created", "shared"]);
|
|
5242
5396
|
var artifactListResponseSchema = z24.object({
|
|
5243
|
-
|
|
5244
|
-
|
|
5397
|
+
artifacts: z24.array(artifactSchema),
|
|
5398
|
+
total: z24.number(),
|
|
5399
|
+
limit: z24.number(),
|
|
5400
|
+
offset: z24.number()
|
|
5245
5401
|
});
|
|
5246
|
-
var artifactDetailResponseSchema =
|
|
5402
|
+
var artifactDetailResponseSchema = z24.object({
|
|
5403
|
+
artifact: artifactSchema,
|
|
5247
5404
|
is_creator: z24.boolean(),
|
|
5248
5405
|
messages: z24.array(artifactMessageSchema)
|
|
5249
5406
|
});
|
|
@@ -5278,8 +5435,8 @@ var createArtifactBodySchema = z24.object({
|
|
|
5278
5435
|
message: z24.string().min(1).max(1e4)
|
|
5279
5436
|
});
|
|
5280
5437
|
var createArtifactResponseSchema = z24.object({
|
|
5281
|
-
|
|
5282
|
-
|
|
5438
|
+
artifact_id: z24.guid(),
|
|
5439
|
+
user_message: artifactMessageSchema
|
|
5283
5440
|
});
|
|
5284
5441
|
var pulseSelectedElementSchema = z24.object({
|
|
5285
5442
|
// Best-effort CSS path to the element (id-anchored where possible).
|
|
@@ -5302,8 +5459,7 @@ var sendArtifactMessageBodySchema = z24.object({
|
|
|
5302
5459
|
selected_element: pulseSelectedElementSchema.optional()
|
|
5303
5460
|
});
|
|
5304
5461
|
var sendArtifactMessageResponseSchema = z24.object({
|
|
5305
|
-
|
|
5306
|
-
userMessage: artifactMessageSchema
|
|
5462
|
+
user_message: artifactMessageSchema
|
|
5307
5463
|
});
|
|
5308
5464
|
var answerArtifactQuestionBodySchema = z24.object({
|
|
5309
5465
|
toolCallId: z24.string().min(1),
|
|
@@ -5318,7 +5474,7 @@ var updateArtifactBodySchema = z24.object({
|
|
|
5318
5474
|
title: z24.string().trim().min(1).max(120)
|
|
5319
5475
|
}).strict();
|
|
5320
5476
|
var deleteArtifactResponseSchema = z24.object({
|
|
5321
|
-
|
|
5477
|
+
success: z24.literal(true)
|
|
5322
5478
|
});
|
|
5323
5479
|
var browserReplayScreenshotSchema = z25.object({
|
|
5324
5480
|
id: z25.guid(),
|
|
@@ -5388,7 +5544,8 @@ var startInterviewCaptureBodySchema = z26.object({
|
|
|
5388
5544
|
type: clarityCaptureSubTypeSchema,
|
|
5389
5545
|
captureId: z26.guid().optional(),
|
|
5390
5546
|
language: clarityInterviewLanguageSchema.optional(),
|
|
5391
|
-
extraCaptureRequestId: z26.guid().optional()
|
|
5547
|
+
extraCaptureRequestId: z26.guid().optional(),
|
|
5548
|
+
processNodeId: z26.guid().optional()
|
|
5392
5549
|
});
|
|
5393
5550
|
var startInterviewCaptureResponseSchema = clarityCaptureSchema.extend({
|
|
5394
5551
|
createdAt: z26.string(),
|
|
@@ -5424,6 +5581,77 @@ var startInterviewCaptureResponseSchema = clarityCaptureSchema.extend({
|
|
|
5424
5581
|
*/
|
|
5425
5582
|
extraCaptureGuidance: interviewExtraCaptureGuidanceSchema.nullable()
|
|
5426
5583
|
});
|
|
5584
|
+
var CLARITY_INTERVIEW_STATUSES = [
|
|
5585
|
+
"pending",
|
|
5586
|
+
"recording",
|
|
5587
|
+
"complete",
|
|
5588
|
+
"failed"
|
|
5589
|
+
];
|
|
5590
|
+
var clarityInterviewStatusSchema = z26.enum(CLARITY_INTERVIEW_STATUSES);
|
|
5591
|
+
var CLARITY_INTERVIEW_SCOPES = ["team", "organization"];
|
|
5592
|
+
var clarityInterviewScopeSchema = z26.enum(CLARITY_INTERVIEW_SCOPES);
|
|
5593
|
+
var teamInterviewSummarySchema = z26.object({
|
|
5594
|
+
id: z26.guid(),
|
|
5595
|
+
userId: z26.guid(),
|
|
5596
|
+
title: z26.string(),
|
|
5597
|
+
status: clarityInterviewStatusSchema,
|
|
5598
|
+
createdAt: z26.string(),
|
|
5599
|
+
updatedAt: z26.string()
|
|
5600
|
+
});
|
|
5601
|
+
var organizationInterviewSummarySchema = teamInterviewSummarySchema.extend({
|
|
5602
|
+
scope: clarityInterviewScopeSchema,
|
|
5603
|
+
teamId: z26.guid().nullable(),
|
|
5604
|
+
teamName: z26.string().nullable(),
|
|
5605
|
+
organizationId: z26.guid()
|
|
5606
|
+
});
|
|
5607
|
+
var clarityInterviewSchema = z26.object({
|
|
5608
|
+
id: z26.guid(),
|
|
5609
|
+
scope: clarityInterviewScopeSchema,
|
|
5610
|
+
teamId: z26.guid().nullable(),
|
|
5611
|
+
organizationId: z26.guid().nullable(),
|
|
5612
|
+
processId: z26.guid().nullable(),
|
|
5613
|
+
processNodeId: z26.guid().nullable(),
|
|
5614
|
+
userId: z26.guid(),
|
|
5615
|
+
title: z26.string(),
|
|
5616
|
+
status: clarityInterviewStatusSchema,
|
|
5617
|
+
recordingUrl: z26.string().nullable(),
|
|
5618
|
+
transcript: z26.array(conversationMessageSchema).nullable(),
|
|
5619
|
+
createdAt: z26.string(),
|
|
5620
|
+
updatedAt: z26.string()
|
|
5621
|
+
});
|
|
5622
|
+
var teamInterviewSchema = clarityInterviewSchema.extend({
|
|
5623
|
+
scope: z26.literal("team"),
|
|
5624
|
+
teamId: z26.guid()
|
|
5625
|
+
});
|
|
5626
|
+
var organizationInterviewSchema = clarityInterviewSchema.extend({
|
|
5627
|
+
scope: z26.literal("organization"),
|
|
5628
|
+
teamId: z26.null(),
|
|
5629
|
+
organizationId: z26.guid()
|
|
5630
|
+
});
|
|
5631
|
+
var listTeamInterviewResponseSchema = z26.object({
|
|
5632
|
+
interviews: z26.array(teamInterviewSummarySchema)
|
|
5633
|
+
});
|
|
5634
|
+
var listOrganizationInterviewResponseSchema = z26.object({
|
|
5635
|
+
interviews: z26.array(organizationInterviewSummarySchema)
|
|
5636
|
+
});
|
|
5637
|
+
var startTeamInterviewResponseSchema = teamInterviewSchema.extend({
|
|
5638
|
+
openaiToken: z26.string(),
|
|
5639
|
+
openaiTokenExpiresAt: z26.string(),
|
|
5640
|
+
provider: clarityInterviewVoiceProviderSchema,
|
|
5641
|
+
providerConfig: voiceProviderConfigSchema,
|
|
5642
|
+
instructions: z26.string().min(1),
|
|
5643
|
+
processGuidance: z26.null(),
|
|
5644
|
+
extraCaptureGuidance: z26.null()
|
|
5645
|
+
});
|
|
5646
|
+
var startOrganizationInterviewResponseSchema = organizationInterviewSchema.extend({
|
|
5647
|
+
openaiToken: z26.string(),
|
|
5648
|
+
openaiTokenExpiresAt: z26.string(),
|
|
5649
|
+
provider: clarityInterviewVoiceProviderSchema,
|
|
5650
|
+
providerConfig: voiceProviderConfigSchema,
|
|
5651
|
+
instructions: z26.string().min(1),
|
|
5652
|
+
processGuidance: z26.null(),
|
|
5653
|
+
extraCaptureGuidance: z26.null()
|
|
5654
|
+
});
|
|
5427
5655
|
var MAX_INTERVIEW_FRAMES_PER_CAPTURE = 300;
|
|
5428
5656
|
var interviewUploadUrlsBodySchema = z26.object({
|
|
5429
5657
|
type: clarityCaptureSubTypeSchema,
|
|
@@ -5759,6 +5987,11 @@ var adminMemoryStoreSummarySchema = z32.object({
|
|
|
5759
5987
|
totalSizeBytes: z32.number().int().nonnegative(),
|
|
5760
5988
|
/** `memory_file_version.written_by` of the store's most recent write. */
|
|
5761
5989
|
lastWriter: z32.string().nullable(),
|
|
5990
|
+
/** `agent_run_id` of that most recent write, when it came from an agent run
|
|
5991
|
+
* (the `assignment` writer). Null for non-run writers (user, meta-agent) or
|
|
5992
|
+
* when no run id was recorded. Lets the admin UI link the last writer to its
|
|
5993
|
+
* originating run (`/admin/run/:id`). */
|
|
5994
|
+
lastWriterAgentRunId: z32.guid().nullable(),
|
|
5762
5995
|
lastUpdatedAt: z32.string(),
|
|
5763
5996
|
archivedAt: z32.string().nullable(),
|
|
5764
5997
|
deletedAt: z32.string().nullable(),
|
|
@@ -7435,323 +7668,75 @@ var batchQueueAgentsResponseSchema = z50.object({
|
|
|
7435
7668
|
})
|
|
7436
7669
|
)
|
|
7437
7670
|
});
|
|
7438
|
-
var
|
|
7439
|
-
|
|
7440
|
-
"collecting",
|
|
7441
|
-
"generating",
|
|
7442
|
-
"review",
|
|
7443
|
-
"complete",
|
|
7444
|
-
"generation_failed"
|
|
7445
|
-
];
|
|
7446
|
-
var clarityOverviewStatusSchema = z51.enum(CLARITY_OVERVIEW_STATUSES);
|
|
7447
|
-
var CLARITY_OVERVIEW_CAPTURE_STATUSES = [
|
|
7448
|
-
"pending",
|
|
7449
|
-
"recording",
|
|
7450
|
-
"processing",
|
|
7451
|
-
"complete",
|
|
7452
|
-
"failed"
|
|
7453
|
-
];
|
|
7454
|
-
var CLARITY_OVERVIEW_CAPTURE_TYPES = [
|
|
7455
|
-
"video",
|
|
7456
|
-
"interview",
|
|
7457
|
-
"document",
|
|
7458
|
-
"screenshare"
|
|
7459
|
-
];
|
|
7460
|
-
var clarityOverviewCaptureSchema = z51.object({
|
|
7461
|
-
id: z51.guid(),
|
|
7462
|
-
overviewId: z51.guid(),
|
|
7463
|
-
userId: z51.guid(),
|
|
7464
|
-
userName: z51.string().optional(),
|
|
7465
|
-
type: z51.enum(CLARITY_OVERVIEW_CAPTURE_TYPES),
|
|
7466
|
-
videoUrl: z51.string().nullable(),
|
|
7467
|
-
videoTranscript: z51.string().nullable(),
|
|
7468
|
-
transcript: z51.array(conversationMessageSchema).nullable(),
|
|
7469
|
-
status: z51.enum(CLARITY_OVERVIEW_CAPTURE_STATUSES),
|
|
7470
|
-
createdAt: z51.coerce.date(),
|
|
7471
|
-
updatedAt: z51.coerce.date()
|
|
7472
|
-
});
|
|
7473
|
-
var OverviewKpi = z51.object({
|
|
7474
|
-
id: z51.guid(),
|
|
7475
|
-
name: z51.string(),
|
|
7476
|
-
value: z51.string(),
|
|
7477
|
-
description: z51.string()
|
|
7478
|
-
});
|
|
7479
|
-
var OverviewHeadcount = z51.object({
|
|
7480
|
-
approximate: z51.int().nonnegative(),
|
|
7481
|
-
notes: z51.string().optional()
|
|
7482
|
-
});
|
|
7483
|
-
var OverviewTeamMember = z51.object({
|
|
7484
|
-
id: z51.guid(),
|
|
7485
|
-
name: z51.string(),
|
|
7486
|
-
role: z51.string()
|
|
7487
|
-
});
|
|
7488
|
-
var OverviewTeam = z51.object({
|
|
7489
|
-
id: z51.guid(),
|
|
7490
|
-
name: z51.string(),
|
|
7491
|
-
leadId: z51.guid().nullable(),
|
|
7492
|
-
description: z51.string(),
|
|
7493
|
-
memberCount: z51.int().nonnegative().optional(),
|
|
7494
|
-
people: z51.array(OverviewTeamMember)
|
|
7671
|
+
var createTeamInviteLinkRequestSchema = z51.object({
|
|
7672
|
+
frontendUrl: z51.url()
|
|
7495
7673
|
});
|
|
7496
|
-
var
|
|
7497
|
-
|
|
7498
|
-
title: z51.string(),
|
|
7499
|
-
description: z51.string()
|
|
7674
|
+
var getTeamInviteLinkQuerySchema = z51.object({
|
|
7675
|
+
frontendUrl: z51.url()
|
|
7500
7676
|
});
|
|
7501
|
-
var
|
|
7677
|
+
var teamInviteLinkCreatorSchema = z51.object({
|
|
7502
7678
|
id: z51.guid(),
|
|
7503
|
-
|
|
7504
|
-
|
|
7505
|
-
fromWhom: z51.string()
|
|
7506
|
-
});
|
|
7507
|
-
var DepartmentOverview = z51.object({
|
|
7508
|
-
mission: z51.string().nullable(),
|
|
7509
|
-
kpis: z51.array(OverviewKpi),
|
|
7510
|
-
headcount: OverviewHeadcount.nullable(),
|
|
7511
|
-
teams: z51.array(OverviewTeam),
|
|
7512
|
-
worksWell: z51.array(OverviewInsight),
|
|
7513
|
-
doesNotWorkWell: z51.array(OverviewInsight),
|
|
7514
|
-
needsHelp: z51.array(OverviewHelpNeeded)
|
|
7515
|
-
});
|
|
7516
|
-
var DocumentationStatus = z51.enum(["documented", "draft", "not_started"]);
|
|
7517
|
-
var VulnerabilitySeverity = z51.enum(["warning", "critical"]);
|
|
7518
|
-
var AccountabilityTag = z51.enum([
|
|
7519
|
-
"owner",
|
|
7520
|
-
// Decision-maker, shown with "owner" badge
|
|
7521
|
-
"spof",
|
|
7522
|
-
// Single point of failure — highlighted as risk
|
|
7523
|
-
"external",
|
|
7524
|
-
// Outside the org (e.g. Supplier)
|
|
7525
|
-
"notified"
|
|
7526
|
-
// Receives updates but doesn't act (e.g. Supply Chain)
|
|
7527
|
-
]);
|
|
7528
|
-
var SystemRef = z51.object({
|
|
7529
|
-
/** Stable identifier for the system, used for deduplication across processes */
|
|
7530
|
-
id: z51.string(),
|
|
7531
|
-
/** Display name as it appears in the UI: "Product Pantry", "Rohlik Admin", "Google Sheets" */
|
|
7532
|
-
name: z51.string(),
|
|
7533
|
-
/** URL to the system's icon/logo. Null if we don't have one — FE shows a generic fallback */
|
|
7534
|
-
iconUrl: z51.url().nullable()
|
|
7535
|
-
});
|
|
7536
|
-
var PersonRole = z51.object({
|
|
7537
|
-
id: z51.guid(),
|
|
7538
|
-
/** Person's display name: "Tereza", "Kristyna" */
|
|
7539
|
-
name: z51.string(),
|
|
7540
|
-
/**
|
|
7541
|
-
* Their role title within this process, not their org-wide job title.
|
|
7542
|
-
* e.g. "Listing Specialist", "Senior Category Manager"
|
|
7543
|
-
*/
|
|
7544
|
-
role: z51.string(),
|
|
7545
|
-
/**
|
|
7546
|
-
* Accountability tags for this person within THIS process.
|
|
7547
|
-
* Same person can be "owner" in one process and have no tags in another.
|
|
7548
|
-
*/
|
|
7549
|
-
tags: z51.array(AccountabilityTag).default([]),
|
|
7550
|
-
/**
|
|
7551
|
-
* Full-time equivalent headcount allocated to this role.
|
|
7552
|
-
* Optional — only set when the capture interview surfaced it.
|
|
7553
|
-
* e.g. 2.25 FTE for a Listing Specialist team of 3 part-timers.
|
|
7554
|
-
*/
|
|
7555
|
-
fte: z51.number().positive().optional()
|
|
7679
|
+
name: z51.string().nullable(),
|
|
7680
|
+
email: z51.email()
|
|
7556
7681
|
});
|
|
7557
|
-
var
|
|
7682
|
+
var teamInviteLinkSchema = z51.object({
|
|
7558
7683
|
id: z51.guid(),
|
|
7559
|
-
|
|
7560
|
-
|
|
7561
|
-
|
|
7562
|
-
* Human-readable description surfaced from the interview.
|
|
7563
|
-
* e.g. "Tereza alone covers fresh listing"
|
|
7564
|
-
* e.g. "75-95% of obvious approvals still needs human"
|
|
7565
|
-
*/
|
|
7566
|
-
description: z51.string(),
|
|
7567
|
-
/**
|
|
7568
|
-
* IDs of people directly tied to this vulnerability.
|
|
7569
|
-
* Enables FE to highlight affected people in the detail view.
|
|
7570
|
-
* e.g. SPOF vulnerability → [terezaId]
|
|
7571
|
-
*/
|
|
7572
|
-
affectedPersonIds: z51.array(z51.string()).optional()
|
|
7684
|
+
url: z51.url().optional(),
|
|
7685
|
+
createdAt: z51.string(),
|
|
7686
|
+
createdBy: teamInviteLinkCreatorSchema
|
|
7573
7687
|
});
|
|
7574
|
-
var
|
|
7575
|
-
|
|
7576
|
-
|
|
7577
|
-
* Operational pain point captured during interview.
|
|
7578
|
-
* e.g. "40 unresolved bugs, periodic outages"
|
|
7579
|
-
* These feed into the maturity score (future iteration) as penalties.
|
|
7580
|
-
*/
|
|
7581
|
-
description: z51.string(),
|
|
7582
|
-
/** Systems where this friction manifests — used for cross-referencing */
|
|
7583
|
-
relatedSystemIds: z51.array(z51.string()).optional()
|
|
7688
|
+
var getTeamInviteLinkResponseSchema = z51.object({
|
|
7689
|
+
hasLink: z51.boolean(),
|
|
7690
|
+
link: teamInviteLinkSchema.optional()
|
|
7584
7691
|
});
|
|
7585
|
-
var
|
|
7586
|
-
|
|
7587
|
-
|
|
7588
|
-
|
|
7589
|
-
|
|
7590
|
-
* Tracks where this process is in the Clarity documentation pipeline.
|
|
7591
|
-
* - "documented": fully captured and reviewed
|
|
7592
|
-
* - "draft": interview done, output not yet validated
|
|
7593
|
-
* - "not_started": identified but not yet interviewed
|
|
7594
|
-
*/
|
|
7595
|
-
documentationStatus: DocumentationStatus,
|
|
7596
|
-
clarityProcessId: z51.guid().nullable().optional(),
|
|
7597
|
-
// --- Content ---
|
|
7598
|
-
/**
|
|
7599
|
-
* Short summary for overview cards (1-2 sentences).
|
|
7600
|
-
* e.g. "End-to-end workflow of listing new products into the catalog..."
|
|
7601
|
-
*/
|
|
7602
|
-
summary: z51.string(),
|
|
7603
|
-
/**
|
|
7604
|
-
* Rich description shown in the detail panel.
|
|
7605
|
-
* May include emphasized metrics (FE handles bold rendering).
|
|
7606
|
-
* e.g. "Listing **660–880 new SKUs every month** from the commercial decision..."
|
|
7607
|
-
*/
|
|
7608
|
-
description: z51.string(),
|
|
7609
|
-
/**
|
|
7610
|
-
* Authored narrative describing the system flow / toolchain.
|
|
7611
|
-
* Comes from the Duvo capture output, not computed.
|
|
7612
|
-
* e.g. "Product Pantry portal → Rohlik Admin backend → ChatGPT for description rewrites → ..."
|
|
7613
|
-
*/
|
|
7614
|
-
systemNarrative: z51.string().optional(),
|
|
7615
|
-
/**
|
|
7616
|
-
* Authored narrative describing who does what and how accountability flows.
|
|
7617
|
-
* e.g. "Senior CMs decide. Junior CMs configure. The Listing Specialist team finalizes everything."
|
|
7618
|
-
*/
|
|
7619
|
-
accountabilityNarrative: z51.string().optional(),
|
|
7620
|
-
/**
|
|
7621
|
-
* Free-text frequency because the real-world cadences are too varied to enumerate.
|
|
7622
|
-
* e.g. "Continuous", "Weekly + monthly slowmover", "10–15 per CM / month", "Ad-hoc, no fixed cadence"
|
|
7623
|
-
*/
|
|
7624
|
-
frequency: z51.string(),
|
|
7625
|
-
// --- Relations ---
|
|
7626
|
-
people: z51.array(PersonRole),
|
|
7627
|
-
systems: z51.array(SystemRef),
|
|
7628
|
-
vulnerabilities: z51.array(Vulnerability),
|
|
7629
|
-
frictionSignals: z51.array(FrictionSignal)
|
|
7630
|
-
});
|
|
7631
|
-
var ProcessOverviewItem = Process.extend({
|
|
7632
|
-
/**
|
|
7633
|
-
* Pre-computed count so FE doesn't need to re-count the people array.
|
|
7634
|
-
* Displayed as "5 involved" on overview cards.
|
|
7635
|
-
*/
|
|
7636
|
-
peopleCount: z51.int(),
|
|
7637
|
-
/**
|
|
7638
|
-
* First N systems (typically 4) to render the icon row.
|
|
7639
|
-
*/
|
|
7640
|
-
systemPreviews: z51.array(SystemRef),
|
|
7641
|
-
/**
|
|
7642
|
-
* How many systems beyond systemPreviews exist.
|
|
7643
|
-
* Rendered as "+3" badge after the icon row. 0 means all systems fit.
|
|
7644
|
-
*/
|
|
7645
|
-
systemOverflowCount: z51.int().default(0)
|
|
7692
|
+
var joinLinkInfoResponseSchema = z51.object({
|
|
7693
|
+
valid: z51.boolean(),
|
|
7694
|
+
teamName: z51.string().optional(),
|
|
7695
|
+
teamId: z51.guid().optional(),
|
|
7696
|
+
reason: z51.enum(["invalid", "expired"]).optional()
|
|
7646
7697
|
});
|
|
7647
|
-
var
|
|
7648
|
-
|
|
7649
|
-
|
|
7650
|
-
/**
|
|
7651
|
-
* Count of processes with at least one SPOF vulnerability.
|
|
7652
|
-
* Powers the "Single point of failure" KPI tile.
|
|
7653
|
-
*/
|
|
7654
|
-
singlePointOfFailureCount: z51.int(),
|
|
7655
|
-
processes: z51.array(ProcessOverviewItem),
|
|
7656
|
-
// Department-level overview sections
|
|
7657
|
-
mission: z51.string().nullable(),
|
|
7658
|
-
kpis: z51.array(OverviewKpi),
|
|
7659
|
-
headcount: OverviewHeadcount.nullable(),
|
|
7660
|
-
teams: z51.array(OverviewTeam),
|
|
7661
|
-
worksWell: z51.array(OverviewInsight),
|
|
7662
|
-
doesNotWorkWell: z51.array(OverviewInsight),
|
|
7663
|
-
needsHelp: z51.array(OverviewHelpNeeded)
|
|
7664
|
-
});
|
|
7665
|
-
var clarityOverviewDetailSchema = z51.object({
|
|
7666
|
-
id: z51.guid(),
|
|
7667
|
-
teamId: z51.guid(),
|
|
7668
|
-
userId: z51.guid(),
|
|
7669
|
-
status: clarityOverviewStatusSchema,
|
|
7670
|
-
processCount: z51.int(),
|
|
7671
|
-
singlePointOfFailureCount: z51.int(),
|
|
7672
|
-
processes: z51.array(ProcessOverviewItem),
|
|
7673
|
-
// Department-level overview sections
|
|
7674
|
-
mission: z51.string().nullable(),
|
|
7675
|
-
kpis: z51.array(OverviewKpi),
|
|
7676
|
-
headcount: OverviewHeadcount.nullable(),
|
|
7677
|
-
teams: z51.array(OverviewTeam),
|
|
7678
|
-
worksWell: z51.array(OverviewInsight),
|
|
7679
|
-
doesNotWorkWell: z51.array(OverviewInsight),
|
|
7680
|
-
needsHelp: z51.array(OverviewHelpNeeded),
|
|
7681
|
-
generationError: z51.string().nullable(),
|
|
7682
|
-
captures: z51.array(clarityOverviewCaptureSchema),
|
|
7683
|
-
createdAt: z51.coerce.date(),
|
|
7684
|
-
updatedAt: z51.coerce.date()
|
|
7685
|
-
});
|
|
7686
|
-
var createTeamInviteLinkRequestSchema = z52.object({
|
|
7687
|
-
frontendUrl: z52.url()
|
|
7698
|
+
var acceptJoinLinkResponseSchema = z51.object({
|
|
7699
|
+
success: z51.boolean(),
|
|
7700
|
+
teamId: z51.guid()
|
|
7688
7701
|
});
|
|
7689
|
-
var
|
|
7702
|
+
var createClarityProcessInviteLinkRequestSchema = z52.object({
|
|
7690
7703
|
frontendUrl: z52.url()
|
|
7691
7704
|
});
|
|
7692
|
-
var
|
|
7693
|
-
|
|
7694
|
-
name: z52.string().nullable(),
|
|
7695
|
-
email: z52.email()
|
|
7696
|
-
});
|
|
7697
|
-
var teamInviteLinkSchema = z52.object({
|
|
7698
|
-
id: z52.guid(),
|
|
7699
|
-
url: z52.url().optional(),
|
|
7700
|
-
createdAt: z52.string(),
|
|
7701
|
-
createdBy: teamInviteLinkCreatorSchema
|
|
7702
|
-
});
|
|
7703
|
-
var getTeamInviteLinkResponseSchema = z52.object({
|
|
7705
|
+
var clarityProcessInviteLinkSchema = teamInviteLinkSchema;
|
|
7706
|
+
var getClarityProcessInviteLinkResponseSchema = z52.object({
|
|
7704
7707
|
hasLink: z52.boolean(),
|
|
7705
|
-
link:
|
|
7708
|
+
link: clarityProcessInviteLinkSchema.optional()
|
|
7706
7709
|
});
|
|
7707
|
-
var
|
|
7710
|
+
var clarityJoinLinkInfoResponseSchema = z52.object({
|
|
7708
7711
|
valid: z52.boolean(),
|
|
7709
|
-
|
|
7712
|
+
processName: z52.string().optional(),
|
|
7713
|
+
processId: z52.guid().optional(),
|
|
7710
7714
|
teamId: z52.guid().optional(),
|
|
7711
7715
|
reason: z52.enum(["invalid", "expired"]).optional()
|
|
7712
7716
|
});
|
|
7713
|
-
var
|
|
7717
|
+
var acceptClarityJoinLinkResponseSchema = z52.object({
|
|
7714
7718
|
success: z52.boolean(),
|
|
7715
|
-
|
|
7716
|
-
});
|
|
7717
|
-
var
|
|
7718
|
-
|
|
7719
|
-
|
|
7720
|
-
|
|
7721
|
-
|
|
7722
|
-
|
|
7723
|
-
|
|
7724
|
-
});
|
|
7725
|
-
var
|
|
7726
|
-
|
|
7727
|
-
|
|
7728
|
-
|
|
7729
|
-
|
|
7730
|
-
|
|
7731
|
-
|
|
7732
|
-
|
|
7733
|
-
|
|
7734
|
-
|
|
7735
|
-
|
|
7736
|
-
var credentialPreviewSchema = z54.object({
|
|
7737
|
-
id: z54.guid().describe("Credential ID"),
|
|
7738
|
-
domain: z54.string().describe("Domain for the credential"),
|
|
7739
|
-
username: z54.string().nullable().describe("Username (if any)"),
|
|
7740
|
-
hasEnabledTOTP: z54.boolean().describe("Whether TOTP is enabled"),
|
|
7741
|
-
hasPassword: z54.boolean().describe("Whether a password is stored"),
|
|
7742
|
-
user_id: z54.string().nullable().describe("Owner user id; null when shared with the team")
|
|
7743
|
-
});
|
|
7744
|
-
var otpResponseSchema = z54.object({
|
|
7745
|
-
code: z54.string().describe("The TOTP code"),
|
|
7746
|
-
expiresAt: z54.number().describe("Expiration timestamp in milliseconds")
|
|
7747
|
-
});
|
|
7748
|
-
var encryptedDataSchema = z54.object({
|
|
7749
|
-
encrypted_data: z54.string().describe("Base64-encoded encrypted data"),
|
|
7750
|
-
key_version: z54.string().describe("KMS key version or 'base64' for dev")
|
|
7751
|
-
});
|
|
7752
|
-
var credentialDetailSchema = z54.object({
|
|
7753
|
-
domain: z54.string().describe("Domain for the credential"),
|
|
7754
|
-
username: z54.string().nullable().describe("Username (if any)"),
|
|
7719
|
+
processId: z52.guid()
|
|
7720
|
+
});
|
|
7721
|
+
var credentialPreviewSchema = z53.object({
|
|
7722
|
+
id: z53.guid().describe("Credential ID"),
|
|
7723
|
+
domain: z53.string().describe("Domain for the credential"),
|
|
7724
|
+
username: z53.string().nullable().describe("Username (if any)"),
|
|
7725
|
+
hasEnabledTOTP: z53.boolean().describe("Whether TOTP is enabled"),
|
|
7726
|
+
hasPassword: z53.boolean().describe("Whether a password is stored"),
|
|
7727
|
+
user_id: z53.string().nullable().describe("Owner user id; null when shared with the team")
|
|
7728
|
+
});
|
|
7729
|
+
var otpResponseSchema = z53.object({
|
|
7730
|
+
code: z53.string().describe("The TOTP code"),
|
|
7731
|
+
expiresAt: z53.number().describe("Expiration timestamp in milliseconds")
|
|
7732
|
+
});
|
|
7733
|
+
var encryptedDataSchema = z53.object({
|
|
7734
|
+
encrypted_data: z53.string().describe("Base64-encoded encrypted data"),
|
|
7735
|
+
key_version: z53.string().describe("KMS key version or 'base64' for dev")
|
|
7736
|
+
});
|
|
7737
|
+
var credentialDetailSchema = z53.object({
|
|
7738
|
+
domain: z53.string().describe("Domain for the credential"),
|
|
7739
|
+
username: z53.string().nullable().describe("Username (if any)"),
|
|
7755
7740
|
password: encryptedDataSchema.nullable().describe("Encrypted password data")
|
|
7756
7741
|
});
|
|
7757
7742
|
var FEATURE_FLAG_CATALOGUE = {
|
|
@@ -7840,15 +7825,10 @@ var FEATURE_FLAG_CATALOGUE = {
|
|
|
7840
7825
|
defaultValue: false,
|
|
7841
7826
|
description: "Enables the L1-L4 Clarity process hierarchy surfaces, including the process landscape tree and related organize/auto-sort workflows."
|
|
7842
7827
|
},
|
|
7843
|
-
|
|
7844
|
-
key: "
|
|
7845
|
-
defaultValue: false,
|
|
7846
|
-
description: "When enabled, the Clarity generation agent receives capture content (transcripts, documents, video transcripts, screenshare frames) as files on the sandbox filesystem and is instructed to read them via a hard checklist, instead of having the content inlined into the prompt."
|
|
7847
|
-
},
|
|
7848
|
-
CLARITY_OVERVIEW: {
|
|
7849
|
-
key: "clarity_overview",
|
|
7828
|
+
CLARITY_NOTETAKER: {
|
|
7829
|
+
key: "clarity_notetaker",
|
|
7850
7830
|
defaultValue: false,
|
|
7851
|
-
description: "Enables the Clarity
|
|
7831
|
+
description: "Enables the Clarity meeting notetaker (Recall.ai bot). When disabled, the 'Meeting Notetaker' option is hidden in the Add Content menu and the POST /clarity/processes/:id/captures/meeting invite route returns 404; the Recall webhook callback is unaffected. Off-by-default for staged rollout."
|
|
7852
7832
|
},
|
|
7853
7833
|
CLARITY_VOICE_ELEVENLABS: {
|
|
7854
7834
|
key: "clarity_voice_elevenlabs",
|
|
@@ -7963,160 +7943,160 @@ function coerceFlagValue(value) {
|
|
|
7963
7943
|
}
|
|
7964
7944
|
__name(coerceFlagValue, "coerceFlagValue");
|
|
7965
7945
|
__name2(coerceFlagValue, "coerceFlagValue");
|
|
7966
|
-
var teamFileItemSchema =
|
|
7967
|
-
id:
|
|
7968
|
-
name:
|
|
7969
|
-
path:
|
|
7970
|
-
created_at:
|
|
7971
|
-
updated_at:
|
|
7972
|
-
metadata:
|
|
7973
|
-
mimetype:
|
|
7974
|
-
size:
|
|
7946
|
+
var teamFileItemSchema = z54.object({
|
|
7947
|
+
id: z54.string(),
|
|
7948
|
+
name: z54.string(),
|
|
7949
|
+
path: z54.string(),
|
|
7950
|
+
created_at: z54.string().optional(),
|
|
7951
|
+
updated_at: z54.string().optional(),
|
|
7952
|
+
metadata: z54.object({
|
|
7953
|
+
mimetype: z54.string().optional(),
|
|
7954
|
+
size: z54.number().optional()
|
|
7975
7955
|
}).nullable().optional()
|
|
7976
7956
|
});
|
|
7977
|
-
var listTeamFilesResponseSchema =
|
|
7978
|
-
files:
|
|
7979
|
-
});
|
|
7980
|
-
var createTeamFileUploadUrlBodySchema =
|
|
7981
|
-
fileName:
|
|
7982
|
-
contentType:
|
|
7983
|
-
});
|
|
7984
|
-
var createTeamFileUploadUrlResponseSchema =
|
|
7985
|
-
signedUrl:
|
|
7986
|
-
expiresAt:
|
|
7987
|
-
filePath:
|
|
7988
|
-
});
|
|
7989
|
-
var renameTeamFileBodySchema =
|
|
7990
|
-
relativePath:
|
|
7991
|
-
newFilenameOnly:
|
|
7992
|
-
});
|
|
7993
|
-
var teamFileSuccessResponseSchema =
|
|
7994
|
-
success:
|
|
7995
|
-
});
|
|
7996
|
-
var teamFileDownloadUrlResponseSchema =
|
|
7997
|
-
url:
|
|
7998
|
-
expiresAt:
|
|
7999
|
-
});
|
|
8000
|
-
var teamFileContentResponseSchema =
|
|
8001
|
-
content:
|
|
8002
|
-
path:
|
|
8003
|
-
contentType:
|
|
8004
|
-
});
|
|
8005
|
-
var updateTeamFileContentBodySchema =
|
|
8006
|
-
content:
|
|
8007
|
-
});
|
|
8008
|
-
var globalAdminApiSchema =
|
|
8009
|
-
id:
|
|
8010
|
-
email:
|
|
8011
|
-
userId:
|
|
8012
|
-
userName:
|
|
8013
|
-
addedByUserId:
|
|
8014
|
-
createdAt:
|
|
8015
|
-
});
|
|
8016
|
-
var globalAdminListResponseSchema =
|
|
8017
|
-
admins:
|
|
8018
|
-
});
|
|
8019
|
-
var globalAdminSearchResponseSchema =
|
|
8020
|
-
users:
|
|
8021
|
-
|
|
8022
|
-
id:
|
|
8023
|
-
name:
|
|
8024
|
-
email:
|
|
8025
|
-
createdAt:
|
|
7957
|
+
var listTeamFilesResponseSchema = z54.object({
|
|
7958
|
+
files: z54.array(teamFileItemSchema)
|
|
7959
|
+
});
|
|
7960
|
+
var createTeamFileUploadUrlBodySchema = z54.object({
|
|
7961
|
+
fileName: z54.string().min(1),
|
|
7962
|
+
contentType: z54.string().min(1)
|
|
7963
|
+
});
|
|
7964
|
+
var createTeamFileUploadUrlResponseSchema = z54.object({
|
|
7965
|
+
signedUrl: z54.url(),
|
|
7966
|
+
expiresAt: z54.iso.datetime(),
|
|
7967
|
+
filePath: z54.string()
|
|
7968
|
+
});
|
|
7969
|
+
var renameTeamFileBodySchema = z54.object({
|
|
7970
|
+
relativePath: z54.string().min(1),
|
|
7971
|
+
newFilenameOnly: z54.string().min(1)
|
|
7972
|
+
});
|
|
7973
|
+
var teamFileSuccessResponseSchema = z54.object({
|
|
7974
|
+
success: z54.boolean()
|
|
7975
|
+
});
|
|
7976
|
+
var teamFileDownloadUrlResponseSchema = z54.object({
|
|
7977
|
+
url: z54.url(),
|
|
7978
|
+
expiresAt: z54.iso.datetime()
|
|
7979
|
+
});
|
|
7980
|
+
var teamFileContentResponseSchema = z54.object({
|
|
7981
|
+
content: z54.string(),
|
|
7982
|
+
path: z54.string(),
|
|
7983
|
+
contentType: z54.string().optional()
|
|
7984
|
+
});
|
|
7985
|
+
var updateTeamFileContentBodySchema = z54.object({
|
|
7986
|
+
content: z54.string()
|
|
7987
|
+
});
|
|
7988
|
+
var globalAdminApiSchema = z55.object({
|
|
7989
|
+
id: z55.guid(),
|
|
7990
|
+
email: z55.string(),
|
|
7991
|
+
userId: z55.guid(),
|
|
7992
|
+
userName: z55.string().nullable(),
|
|
7993
|
+
addedByUserId: z55.guid().nullable(),
|
|
7994
|
+
createdAt: z55.string()
|
|
7995
|
+
});
|
|
7996
|
+
var globalAdminListResponseSchema = z55.object({
|
|
7997
|
+
admins: z55.array(globalAdminApiSchema)
|
|
7998
|
+
});
|
|
7999
|
+
var globalAdminSearchResponseSchema = z55.object({
|
|
8000
|
+
users: z55.array(
|
|
8001
|
+
z55.object({
|
|
8002
|
+
id: z55.guid(),
|
|
8003
|
+
name: z55.string().nullable(),
|
|
8004
|
+
email: z55.string(),
|
|
8005
|
+
createdAt: z55.string().nullable()
|
|
8026
8006
|
})
|
|
8027
8007
|
)
|
|
8028
8008
|
});
|
|
8029
|
-
var globalAdminCreateRequestSchema =
|
|
8030
|
-
userId:
|
|
8009
|
+
var globalAdminCreateRequestSchema = z55.object({
|
|
8010
|
+
userId: z55.guid()
|
|
8031
8011
|
});
|
|
8032
|
-
var globalAdminCreateResponseSchema =
|
|
8012
|
+
var globalAdminCreateResponseSchema = z55.object({
|
|
8033
8013
|
admin: globalAdminApiSchema
|
|
8034
8014
|
});
|
|
8035
|
-
var globalAdminDeleteResponseSchema =
|
|
8036
|
-
success:
|
|
8015
|
+
var globalAdminDeleteResponseSchema = z55.object({
|
|
8016
|
+
success: z55.literal(true)
|
|
8037
8017
|
});
|
|
8038
|
-
var adminAccessCheckResponseSchema =
|
|
8039
|
-
isGlobalAdmin:
|
|
8018
|
+
var adminAccessCheckResponseSchema = z55.object({
|
|
8019
|
+
isGlobalAdmin: z55.boolean()
|
|
8040
8020
|
});
|
|
8041
8021
|
var JOB_LIST_SORT_COLUMNS = ["created_at"];
|
|
8042
|
-
var jobListSortColumnSchema =
|
|
8043
|
-
var jobListIssueSeveritySchema =
|
|
8022
|
+
var jobListSortColumnSchema = z56.enum(JOB_LIST_SORT_COLUMNS);
|
|
8023
|
+
var jobListIssueSeveritySchema = z56.enum(
|
|
8044
8024
|
ALL_EVALUATION_RUBRIC_SEVERITIES
|
|
8045
8025
|
);
|
|
8046
|
-
var jobListItemSchema =
|
|
8047
|
-
id:
|
|
8048
|
-
created_at:
|
|
8049
|
-
updated_at:
|
|
8050
|
-
started_at:
|
|
8051
|
-
completed_at:
|
|
8026
|
+
var jobListItemSchema = z56.object({
|
|
8027
|
+
id: z56.guid(),
|
|
8028
|
+
created_at: z56.coerce.date(),
|
|
8029
|
+
updated_at: z56.coerce.date(),
|
|
8030
|
+
started_at: z56.coerce.date().nullable(),
|
|
8031
|
+
completed_at: z56.coerce.date().nullable(),
|
|
8052
8032
|
status: agentRunStatusSchema,
|
|
8053
|
-
source:
|
|
8054
|
-
title:
|
|
8055
|
-
run_number:
|
|
8033
|
+
source: z56.string().nullable(),
|
|
8034
|
+
title: z56.string(),
|
|
8035
|
+
run_number: z56.number(),
|
|
8056
8036
|
// Agent info
|
|
8057
|
-
agent_id:
|
|
8058
|
-
agent_name:
|
|
8059
|
-
build_id:
|
|
8037
|
+
agent_id: z56.guid(),
|
|
8038
|
+
agent_name: z56.string(),
|
|
8039
|
+
build_id: z56.guid(),
|
|
8060
8040
|
// User info
|
|
8061
|
-
user_id:
|
|
8041
|
+
user_id: z56.guid().nullable(),
|
|
8062
8042
|
// Case info
|
|
8063
|
-
case_queue_item_id:
|
|
8064
|
-
case_queue_id:
|
|
8065
|
-
case_queue_name:
|
|
8066
|
-
case_title:
|
|
8067
|
-
postponed_to:
|
|
8068
|
-
submitted_prompt_count:
|
|
8043
|
+
case_queue_item_id: z56.guid().nullable(),
|
|
8044
|
+
case_queue_id: z56.guid().nullable(),
|
|
8045
|
+
case_queue_name: z56.string().nullable(),
|
|
8046
|
+
case_title: z56.string().nullable(),
|
|
8047
|
+
postponed_to: z56.coerce.date().nullable(),
|
|
8048
|
+
submitted_prompt_count: z56.number().int().min(0),
|
|
8069
8049
|
eval_summaries: evalSummarySchema.nullable().optional()
|
|
8070
8050
|
});
|
|
8071
|
-
var jobListResponseSchema =
|
|
8072
|
-
data:
|
|
8073
|
-
total:
|
|
8051
|
+
var jobListResponseSchema = z56.object({
|
|
8052
|
+
data: z56.array(jobListItemSchema),
|
|
8053
|
+
total: z56.number()
|
|
8074
8054
|
});
|
|
8075
|
-
var jobFilterOptionsSchema =
|
|
8076
|
-
agents:
|
|
8077
|
-
|
|
8078
|
-
id:
|
|
8079
|
-
name:
|
|
8080
|
-
folder_id:
|
|
8055
|
+
var jobFilterOptionsSchema = z56.object({
|
|
8056
|
+
agents: z56.array(
|
|
8057
|
+
z56.object({
|
|
8058
|
+
id: z56.string(),
|
|
8059
|
+
name: z56.string(),
|
|
8060
|
+
folder_id: z56.string().nullable()
|
|
8081
8061
|
})
|
|
8082
8062
|
),
|
|
8083
|
-
folders:
|
|
8084
|
-
|
|
8085
|
-
id:
|
|
8086
|
-
name:
|
|
8087
|
-
parent_folder_id:
|
|
8063
|
+
folders: z56.array(
|
|
8064
|
+
z56.object({
|
|
8065
|
+
id: z56.string(),
|
|
8066
|
+
name: z56.string(),
|
|
8067
|
+
parent_folder_id: z56.string().nullable()
|
|
8088
8068
|
})
|
|
8089
8069
|
),
|
|
8090
|
-
users:
|
|
8091
|
-
|
|
8092
|
-
id:
|
|
8093
|
-
name:
|
|
8094
|
-
email:
|
|
8070
|
+
users: z56.array(
|
|
8071
|
+
z56.object({
|
|
8072
|
+
id: z56.string(),
|
|
8073
|
+
name: z56.string().nullable(),
|
|
8074
|
+
email: z56.string()
|
|
8095
8075
|
})
|
|
8096
8076
|
),
|
|
8097
|
-
caseQueues:
|
|
8098
|
-
});
|
|
8099
|
-
var mcpStepSchema =
|
|
8100
|
-
tool:
|
|
8101
|
-
params:
|
|
8102
|
-
fallbackSelectors:
|
|
8103
|
-
description:
|
|
8104
|
-
screenshot:
|
|
8105
|
-
snapshot:
|
|
8106
|
-
framePath:
|
|
8077
|
+
caseQueues: z56.array(z56.object({ id: z56.string(), name: z56.string() }))
|
|
8078
|
+
});
|
|
8079
|
+
var mcpStepSchema = z57.object({
|
|
8080
|
+
tool: z57.string().describe("MCP tool name (e.g., click, fill, navigate_page)"),
|
|
8081
|
+
params: z57.record(z57.string(), z57.unknown()).describe("Tool-specific parameters"),
|
|
8082
|
+
fallbackSelectors: z57.array(z57.string()).optional().describe("Alternative CSS selectors if primary fails"),
|
|
8083
|
+
description: z57.string().optional().describe("Human-readable step description"),
|
|
8084
|
+
screenshot: z57.string().optional().describe("Base64 screenshot at this step for visual context"),
|
|
8085
|
+
snapshot: z57.string().optional().describe("DOM snapshot in accessibility tree format at this step"),
|
|
8086
|
+
framePath: z57.array(z57.number()).optional().describe(
|
|
8107
8087
|
"Index-based path to the target iframe (e.g., [0] for first child iframe, [1, 0] for nested)"
|
|
8108
8088
|
)
|
|
8109
8089
|
});
|
|
8110
|
-
var mcpWorkflowSchema =
|
|
8111
|
-
name:
|
|
8112
|
-
startUrl:
|
|
8113
|
-
viewport:
|
|
8114
|
-
width:
|
|
8115
|
-
height:
|
|
8090
|
+
var mcpWorkflowSchema = z57.object({
|
|
8091
|
+
name: z57.string(),
|
|
8092
|
+
startUrl: z57.string(),
|
|
8093
|
+
viewport: z57.object({
|
|
8094
|
+
width: z57.number(),
|
|
8095
|
+
height: z57.number()
|
|
8116
8096
|
}),
|
|
8117
|
-
steps:
|
|
8097
|
+
steps: z57.array(mcpStepSchema)
|
|
8118
8098
|
});
|
|
8119
|
-
var MCP_WORKFLOW_JSON_SCHEMA =
|
|
8099
|
+
var MCP_WORKFLOW_JSON_SCHEMA = z57.toJSONSchema(mcpWorkflowSchema, {
|
|
8120
8100
|
reused: "inline"
|
|
8121
8101
|
});
|
|
8122
8102
|
var MCP_WORKFLOW_SCHEMA_DOCS = JSON.stringify(
|
|
@@ -8125,52 +8105,52 @@ var MCP_WORKFLOW_SCHEMA_DOCS = JSON.stringify(
|
|
|
8125
8105
|
2
|
|
8126
8106
|
);
|
|
8127
8107
|
var ORG_BROWSER_CONFIG_VERSION = 1;
|
|
8128
|
-
var organizationBrowserConfigDataSchema =
|
|
8108
|
+
var organizationBrowserConfigDataSchema = z58.object({
|
|
8129
8109
|
browserProvider: BrowserProviderTypeSchema.nullable(),
|
|
8130
8110
|
dataResidency: DataResidencySchema.nullable(),
|
|
8131
8111
|
dataHandling: DataHandlingSchema.nullable(),
|
|
8132
|
-
enforced:
|
|
8112
|
+
enforced: z58.boolean()
|
|
8133
8113
|
});
|
|
8134
|
-
var organizationBrowserConfigSchema =
|
|
8135
|
-
version:
|
|
8114
|
+
var organizationBrowserConfigSchema = z58.object({
|
|
8115
|
+
version: z58.literal(ORG_BROWSER_CONFIG_VERSION),
|
|
8136
8116
|
data: organizationBrowserConfigDataSchema
|
|
8137
8117
|
});
|
|
8138
|
-
var organizationBrowserSettingsSchema =
|
|
8139
|
-
organizationId:
|
|
8118
|
+
var organizationBrowserSettingsSchema = z58.object({
|
|
8119
|
+
organizationId: z58.guid(),
|
|
8140
8120
|
browserProvider: BrowserProviderTypeSchema.nullable(),
|
|
8141
8121
|
dataResidency: DataResidencySchema.nullable(),
|
|
8142
8122
|
dataHandling: DataHandlingSchema.nullable(),
|
|
8143
|
-
enforced:
|
|
8144
|
-
createdAt:
|
|
8145
|
-
updatedAt:
|
|
8123
|
+
enforced: z58.boolean(),
|
|
8124
|
+
createdAt: z58.string(),
|
|
8125
|
+
updatedAt: z58.string()
|
|
8146
8126
|
});
|
|
8147
|
-
var getOrganizationBrowserSettingsResponseSchema =
|
|
8127
|
+
var getOrganizationBrowserSettingsResponseSchema = z58.object({
|
|
8148
8128
|
settings: organizationBrowserSettingsSchema.nullable()
|
|
8149
8129
|
});
|
|
8150
|
-
var updateOrganizationBrowserSettingsRequestSchema =
|
|
8130
|
+
var updateOrganizationBrowserSettingsRequestSchema = z58.object({
|
|
8151
8131
|
browserProvider: BrowserProviderTypeSchema.nullable().optional(),
|
|
8152
8132
|
dataResidency: DataResidencySchema.nullable().optional(),
|
|
8153
8133
|
dataHandling: DataHandlingSchema.nullable().optional(),
|
|
8154
|
-
enforced:
|
|
8134
|
+
enforced: z58.boolean().optional()
|
|
8155
8135
|
});
|
|
8156
|
-
var updateOrganizationBrowserSettingsResponseSchema =
|
|
8136
|
+
var updateOrganizationBrowserSettingsResponseSchema = z58.object({
|
|
8157
8137
|
settings: organizationBrowserSettingsSchema
|
|
8158
8138
|
});
|
|
8159
|
-
var catalogPluginSchema =
|
|
8160
|
-
name:
|
|
8139
|
+
var catalogPluginSchema = z59.object({
|
|
8140
|
+
name: z59.string().describe("Identifier to pass in the build's plugins array."),
|
|
8161
8141
|
type: extensibleEnum(["duvo-platform", "knowledge-work", "github"], {
|
|
8162
8142
|
description: "Plugin source. 'duvo-platform' plugins are pre-baked into the Duvo runtime; 'knowledge-work' plugins are role-oriented bundles (engineering, sales, legal, \u2026) also baked into the runtime; 'github' plugins are downloaded from a user-supplied repository URL at run time."
|
|
8163
8143
|
}),
|
|
8164
|
-
description:
|
|
8144
|
+
description: z59.string()
|
|
8165
8145
|
});
|
|
8166
|
-
var pluginCatalogResponseSchema =
|
|
8167
|
-
plugins:
|
|
8146
|
+
var pluginCatalogResponseSchema = z59.object({
|
|
8147
|
+
plugins: z59.array(catalogPluginSchema)
|
|
8168
8148
|
});
|
|
8169
|
-
var limitValueSchema =
|
|
8170
|
-
|
|
8171
|
-
|
|
8149
|
+
var limitValueSchema = z60.union([
|
|
8150
|
+
z60.number().int().nonnegative(),
|
|
8151
|
+
z60.literal("unlimited")
|
|
8172
8152
|
]);
|
|
8173
|
-
var runCountingModeSchema =
|
|
8153
|
+
var runCountingModeSchema = z60.enum(["monthly", "lifetime"]);
|
|
8174
8154
|
function addDuplicateKeyIssues({
|
|
8175
8155
|
ctx,
|
|
8176
8156
|
items,
|
|
@@ -8182,7 +8162,7 @@ function addDuplicateKeyIssues({
|
|
|
8182
8162
|
const key = keyFor(item);
|
|
8183
8163
|
if (seen.has(key)) {
|
|
8184
8164
|
ctx.addIssue({
|
|
8185
|
-
code:
|
|
8165
|
+
code: z60.ZodIssueCode.custom,
|
|
8186
8166
|
message: `Duplicate Product Access grant key: ${key}`,
|
|
8187
8167
|
path: [...path, index]
|
|
8188
8168
|
});
|
|
@@ -8193,34 +8173,34 @@ function addDuplicateKeyIssues({
|
|
|
8193
8173
|
}
|
|
8194
8174
|
__name(addDuplicateKeyIssues, "addDuplicateKeyIssues");
|
|
8195
8175
|
__name2(addDuplicateKeyIssues, "addDuplicateKeyIssues");
|
|
8196
|
-
var productAccessOwnerSchema =
|
|
8197
|
-
|
|
8198
|
-
type:
|
|
8199
|
-
organizationId:
|
|
8176
|
+
var productAccessOwnerSchema = z60.discriminatedUnion("type", [
|
|
8177
|
+
z60.object({
|
|
8178
|
+
type: z60.literal("organization"),
|
|
8179
|
+
organizationId: z60.guid()
|
|
8200
8180
|
}),
|
|
8201
|
-
|
|
8202
|
-
type:
|
|
8203
|
-
teamId:
|
|
8204
|
-
organizationId:
|
|
8181
|
+
z60.object({
|
|
8182
|
+
type: z60.literal("team"),
|
|
8183
|
+
teamId: z60.guid(),
|
|
8184
|
+
organizationId: z60.guid().nullable()
|
|
8205
8185
|
})
|
|
8206
8186
|
]);
|
|
8207
|
-
var productAccessGrantSetSchema =
|
|
8208
|
-
products:
|
|
8209
|
-
|
|
8210
|
-
productKey:
|
|
8211
|
-
enabled:
|
|
8187
|
+
var productAccessGrantSetSchema = z60.object({
|
|
8188
|
+
products: z60.array(
|
|
8189
|
+
z60.object({
|
|
8190
|
+
productKey: z60.enum(PRODUCT_KEYS),
|
|
8191
|
+
enabled: z60.boolean()
|
|
8212
8192
|
})
|
|
8213
8193
|
),
|
|
8214
|
-
capabilities:
|
|
8215
|
-
|
|
8216
|
-
capabilityKey:
|
|
8217
|
-
enabled:
|
|
8194
|
+
capabilities: z60.array(
|
|
8195
|
+
z60.object({
|
|
8196
|
+
capabilityKey: z60.enum(PRODUCT_ACCESS_CAPABILITY_KEYS),
|
|
8197
|
+
enabled: z60.boolean()
|
|
8218
8198
|
})
|
|
8219
8199
|
),
|
|
8220
|
-
limits:
|
|
8221
|
-
|
|
8222
|
-
productKey:
|
|
8223
|
-
limitKey:
|
|
8200
|
+
limits: z60.array(
|
|
8201
|
+
z60.object({
|
|
8202
|
+
productKey: z60.enum(PRODUCT_KEYS),
|
|
8203
|
+
limitKey: z60.enum(ENTITLEMENT_LIMIT_KEYS),
|
|
8224
8204
|
limitValue: limitValueSchema,
|
|
8225
8205
|
countingMode: runCountingModeSchema.nullable()
|
|
8226
8206
|
})
|
|
@@ -8245,51 +8225,51 @@ var productAccessGrantSetSchema = z61.object({
|
|
|
8245
8225
|
path: ["limits"]
|
|
8246
8226
|
});
|
|
8247
8227
|
});
|
|
8248
|
-
var productAccessSnapshotSchema =
|
|
8249
|
-
products:
|
|
8250
|
-
|
|
8251
|
-
productKey:
|
|
8252
|
-
enabled:
|
|
8228
|
+
var productAccessSnapshotSchema = z60.object({
|
|
8229
|
+
products: z60.array(
|
|
8230
|
+
z60.object({
|
|
8231
|
+
productKey: z60.enum(PRODUCT_KEYS),
|
|
8232
|
+
enabled: z60.boolean()
|
|
8253
8233
|
})
|
|
8254
8234
|
),
|
|
8255
|
-
capabilities:
|
|
8256
|
-
|
|
8257
|
-
capabilityKey:
|
|
8258
|
-
productKey:
|
|
8259
|
-
enabled:
|
|
8235
|
+
capabilities: z60.array(
|
|
8236
|
+
z60.object({
|
|
8237
|
+
capabilityKey: z60.enum(PRODUCT_ACCESS_CAPABILITY_KEYS),
|
|
8238
|
+
productKey: z60.enum(PRODUCT_KEYS),
|
|
8239
|
+
enabled: z60.boolean()
|
|
8260
8240
|
})
|
|
8261
8241
|
),
|
|
8262
|
-
limits:
|
|
8263
|
-
|
|
8264
|
-
limitKey:
|
|
8265
|
-
productKey:
|
|
8242
|
+
limits: z60.array(
|
|
8243
|
+
z60.object({
|
|
8244
|
+
limitKey: z60.enum(ENTITLEMENT_LIMIT_KEYS),
|
|
8245
|
+
productKey: z60.enum(PRODUCT_KEYS),
|
|
8266
8246
|
limitValue: limitValueSchema,
|
|
8267
8247
|
countingMode: runCountingModeSchema.nullable(),
|
|
8268
|
-
label:
|
|
8248
|
+
label: z60.literal("per_team")
|
|
8269
8249
|
})
|
|
8270
8250
|
)
|
|
8271
8251
|
});
|
|
8272
|
-
var billingPlanSchema =
|
|
8273
|
-
planVersionId:
|
|
8274
|
-
planName:
|
|
8275
|
-
basePlan:
|
|
8252
|
+
var billingPlanSchema = z60.object({
|
|
8253
|
+
planVersionId: z60.string(),
|
|
8254
|
+
planName: z60.string(),
|
|
8255
|
+
basePlan: z60.enum(["free", "pro", "enterprise"])
|
|
8276
8256
|
});
|
|
8277
|
-
var inheritedFromSchema =
|
|
8278
|
-
|
|
8279
|
-
type:
|
|
8280
|
-
organizationId:
|
|
8257
|
+
var inheritedFromSchema = z60.discriminatedUnion("type", [
|
|
8258
|
+
z60.object({
|
|
8259
|
+
type: z60.literal("organization"),
|
|
8260
|
+
organizationId: z60.guid()
|
|
8281
8261
|
}),
|
|
8282
|
-
|
|
8283
|
-
type:
|
|
8284
|
-
planVersionId:
|
|
8262
|
+
z60.object({
|
|
8263
|
+
type: z60.literal("team_subscription"),
|
|
8264
|
+
planVersionId: z60.string()
|
|
8285
8265
|
})
|
|
8286
8266
|
]);
|
|
8287
|
-
var productAccessReadResponseSchema =
|
|
8267
|
+
var productAccessReadResponseSchema = z60.object({
|
|
8288
8268
|
owner: productAccessOwnerSchema,
|
|
8289
|
-
source:
|
|
8290
|
-
accessRevision:
|
|
8269
|
+
source: z60.enum(PLAN_ENTITLEMENTS_SOURCE_VALUES),
|
|
8270
|
+
accessRevision: z60.string().min(1),
|
|
8291
8271
|
displayPreset: displayPresetSchema,
|
|
8292
|
-
hasExplicitTeamAccess:
|
|
8272
|
+
hasExplicitTeamAccess: z60.boolean(),
|
|
8293
8273
|
inheritedFrom: inheritedFromSchema.nullable(),
|
|
8294
8274
|
billingPlan: billingPlanSchema.nullable(),
|
|
8295
8275
|
grants: productAccessSnapshotSchema,
|
|
@@ -8297,67 +8277,67 @@ var productAccessReadResponseSchema = z61.object({
|
|
|
8297
8277
|
}).superRefine((value, ctx) => {
|
|
8298
8278
|
if (value.owner.type === "team" && value.source === "organization" && value.inheritedFrom?.type !== "organization") {
|
|
8299
8279
|
ctx.addIssue({
|
|
8300
|
-
code:
|
|
8280
|
+
code: z60.ZodIssueCode.custom,
|
|
8301
8281
|
message: "inheritedFrom organization context is required when team source is organization",
|
|
8302
8282
|
path: ["inheritedFrom"]
|
|
8303
8283
|
});
|
|
8304
8284
|
}
|
|
8305
8285
|
if (value.owner.type === "team" && value.source === "team_subscription" && value.inheritedFrom?.type !== "team_subscription") {
|
|
8306
8286
|
ctx.addIssue({
|
|
8307
|
-
code:
|
|
8287
|
+
code: z60.ZodIssueCode.custom,
|
|
8308
8288
|
message: "inheritedFrom subscription context is required when team source is team_subscription",
|
|
8309
8289
|
path: ["inheritedFrom"]
|
|
8310
8290
|
});
|
|
8311
8291
|
}
|
|
8312
8292
|
if (value.owner.type === "team" && value.source === "team" && value.inheritedFrom !== null) {
|
|
8313
8293
|
ctx.addIssue({
|
|
8314
|
-
code:
|
|
8294
|
+
code: z60.ZodIssueCode.custom,
|
|
8315
8295
|
message: "inheritedFrom must be null for direct team Product Access",
|
|
8316
8296
|
path: ["inheritedFrom"]
|
|
8317
8297
|
});
|
|
8318
8298
|
}
|
|
8319
8299
|
if (value.owner.type === "organization" && value.billingPlan !== null) {
|
|
8320
8300
|
ctx.addIssue({
|
|
8321
|
-
code:
|
|
8301
|
+
code: z60.ZodIssueCode.custom,
|
|
8322
8302
|
message: "billingPlan must be null for organization Product Access",
|
|
8323
8303
|
path: ["billingPlan"]
|
|
8324
8304
|
});
|
|
8325
8305
|
}
|
|
8326
8306
|
if (value.owner.type === "organization" && value.source !== "organization") {
|
|
8327
8307
|
ctx.addIssue({
|
|
8328
|
-
code:
|
|
8308
|
+
code: z60.ZodIssueCode.custom,
|
|
8329
8309
|
message: "organization Product Access source must be organization",
|
|
8330
8310
|
path: ["source"]
|
|
8331
8311
|
});
|
|
8332
8312
|
}
|
|
8333
8313
|
if (value.owner.type === "organization" && value.inheritedFrom !== null) {
|
|
8334
8314
|
ctx.addIssue({
|
|
8335
|
-
code:
|
|
8315
|
+
code: z60.ZodIssueCode.custom,
|
|
8336
8316
|
message: "inheritedFrom must be null for organization Product Access",
|
|
8337
8317
|
path: ["inheritedFrom"]
|
|
8338
8318
|
});
|
|
8339
8319
|
}
|
|
8340
8320
|
});
|
|
8341
|
-
var productAccessImpactRequestSchema =
|
|
8321
|
+
var productAccessImpactRequestSchema = z60.object({
|
|
8342
8322
|
proposedGrants: productAccessGrantSetSchema
|
|
8343
8323
|
});
|
|
8344
|
-
var productAccessWriteRequestSchema =
|
|
8324
|
+
var productAccessWriteRequestSchema = z60.object({
|
|
8345
8325
|
proposedGrants: productAccessGrantSetSchema,
|
|
8346
|
-
accessRevision:
|
|
8347
|
-
impactFingerprint:
|
|
8348
|
-
});
|
|
8349
|
-
var productAccessTeamResetRequestSchema =
|
|
8350
|
-
accessRevision:
|
|
8351
|
-
impactFingerprint:
|
|
8352
|
-
});
|
|
8353
|
-
var productAccessChangeSummarySchema =
|
|
8354
|
-
addedProducts:
|
|
8355
|
-
removedProducts:
|
|
8356
|
-
addedCapabilities:
|
|
8357
|
-
removedCapabilities:
|
|
8358
|
-
limitChanges:
|
|
8359
|
-
|
|
8360
|
-
limitKey:
|
|
8326
|
+
accessRevision: z60.string().min(1),
|
|
8327
|
+
impactFingerprint: z60.string().min(1).optional()
|
|
8328
|
+
});
|
|
8329
|
+
var productAccessTeamResetRequestSchema = z60.object({
|
|
8330
|
+
accessRevision: z60.string().min(1),
|
|
8331
|
+
impactFingerprint: z60.string().min(1).optional()
|
|
8332
|
+
});
|
|
8333
|
+
var productAccessChangeSummarySchema = z60.object({
|
|
8334
|
+
addedProducts: z60.array(z60.enum(PRODUCT_KEYS)),
|
|
8335
|
+
removedProducts: z60.array(z60.enum(PRODUCT_KEYS)),
|
|
8336
|
+
addedCapabilities: z60.array(z60.enum(PRODUCT_ACCESS_CAPABILITY_KEYS)),
|
|
8337
|
+
removedCapabilities: z60.array(z60.enum(PRODUCT_ACCESS_CAPABILITY_KEYS)),
|
|
8338
|
+
limitChanges: z60.array(
|
|
8339
|
+
z60.object({
|
|
8340
|
+
limitKey: z60.enum(ENTITLEMENT_LIMIT_KEYS),
|
|
8361
8341
|
currentValue: limitValueSchema,
|
|
8362
8342
|
currentCountingMode: runCountingModeSchema.nullable(),
|
|
8363
8343
|
proposedValue: limitValueSchema,
|
|
@@ -8365,61 +8345,61 @@ var productAccessChangeSummarySchema = z61.object({
|
|
|
8365
8345
|
})
|
|
8366
8346
|
)
|
|
8367
8347
|
});
|
|
8368
|
-
var productAccessImpactResponseSchema =
|
|
8348
|
+
var productAccessImpactResponseSchema = z60.object({
|
|
8369
8349
|
owner: productAccessOwnerSchema,
|
|
8370
|
-
impactFingerprint:
|
|
8371
|
-
affectedTeamCount:
|
|
8372
|
-
affectedTeamsTruncated:
|
|
8350
|
+
impactFingerprint: z60.string().min(1),
|
|
8351
|
+
affectedTeamCount: z60.number().int().nonnegative(),
|
|
8352
|
+
affectedTeamsTruncated: z60.boolean(),
|
|
8373
8353
|
changes: productAccessChangeSummarySchema,
|
|
8374
|
-
sideEffects:
|
|
8375
|
-
automationWillPause:
|
|
8376
|
-
clarityWillHide:
|
|
8354
|
+
sideEffects: z60.object({
|
|
8355
|
+
automationWillPause: z60.boolean(),
|
|
8356
|
+
clarityWillHide: z60.boolean()
|
|
8377
8357
|
}),
|
|
8378
|
-
affectedTeamsPreview:
|
|
8379
|
-
|
|
8380
|
-
teamId:
|
|
8381
|
-
teamName:
|
|
8382
|
-
source:
|
|
8358
|
+
affectedTeamsPreview: z60.array(
|
|
8359
|
+
z60.object({
|
|
8360
|
+
teamId: z60.guid(),
|
|
8361
|
+
teamName: z60.string(),
|
|
8362
|
+
source: z60.enum(PLAN_ENTITLEMENTS_SOURCE_VALUES),
|
|
8383
8363
|
changes: productAccessChangeSummarySchema
|
|
8384
8364
|
})
|
|
8385
8365
|
)
|
|
8386
8366
|
});
|
|
8387
|
-
var publicProfileSchema =
|
|
8388
|
-
id:
|
|
8389
|
-
name:
|
|
8390
|
-
email:
|
|
8391
|
-
teamId:
|
|
8367
|
+
var publicProfileSchema = z61.object({
|
|
8368
|
+
id: z61.guid(),
|
|
8369
|
+
name: z61.string().nullable(),
|
|
8370
|
+
email: z61.email(),
|
|
8371
|
+
teamId: z61.guid().nullable()
|
|
8392
8372
|
});
|
|
8393
|
-
var publicProfileResponseSchema =
|
|
8373
|
+
var publicProfileResponseSchema = z61.object({
|
|
8394
8374
|
profile: publicProfileSchema
|
|
8395
8375
|
});
|
|
8396
|
-
var elementSelectorsSchema =
|
|
8397
|
-
css:
|
|
8398
|
-
cssPath:
|
|
8399
|
-
xpath:
|
|
8400
|
-
testId:
|
|
8401
|
-
ariaSelector:
|
|
8402
|
-
text:
|
|
8376
|
+
var elementSelectorsSchema = z62.object({
|
|
8377
|
+
css: z62.string().optional(),
|
|
8378
|
+
cssPath: z62.string().optional(),
|
|
8379
|
+
xpath: z62.string().optional(),
|
|
8380
|
+
testId: z62.string().optional(),
|
|
8381
|
+
ariaSelector: z62.string().optional(),
|
|
8382
|
+
text: z62.string().optional()
|
|
8403
8383
|
});
|
|
8404
|
-
var elementInfoSchema =
|
|
8405
|
-
uid:
|
|
8384
|
+
var elementInfoSchema = z62.object({
|
|
8385
|
+
uid: z62.string().optional(),
|
|
8406
8386
|
selectors: elementSelectorsSchema,
|
|
8407
|
-
tagName:
|
|
8408
|
-
textContent:
|
|
8409
|
-
ariaLabel:
|
|
8410
|
-
computedRole:
|
|
8411
|
-
attributes:
|
|
8412
|
-
framePath:
|
|
8413
|
-
frameUrl:
|
|
8414
|
-
});
|
|
8415
|
-
var recordedEventSchema =
|
|
8416
|
-
id:
|
|
8417
|
-
type:
|
|
8418
|
-
timestamp:
|
|
8419
|
-
url:
|
|
8420
|
-
tabId:
|
|
8421
|
-
frameId:
|
|
8422
|
-
framePath:
|
|
8387
|
+
tagName: z62.string(),
|
|
8388
|
+
textContent: z62.string().optional(),
|
|
8389
|
+
ariaLabel: z62.string().optional(),
|
|
8390
|
+
computedRole: z62.string().optional(),
|
|
8391
|
+
attributes: z62.record(z62.string(), z62.string()).optional(),
|
|
8392
|
+
framePath: z62.array(z62.number()).optional(),
|
|
8393
|
+
frameUrl: z62.string().optional()
|
|
8394
|
+
});
|
|
8395
|
+
var recordedEventSchema = z62.looseObject({
|
|
8396
|
+
id: z62.string(),
|
|
8397
|
+
type: z62.string(),
|
|
8398
|
+
timestamp: z62.number(),
|
|
8399
|
+
url: z62.string(),
|
|
8400
|
+
tabId: z62.number().optional(),
|
|
8401
|
+
frameId: z62.number().optional(),
|
|
8402
|
+
framePath: z62.array(z62.number()).optional(),
|
|
8423
8403
|
element: elementInfoSchema.optional()
|
|
8424
8404
|
});
|
|
8425
8405
|
var DUVO_CLIENT_HEADER = "x-duvo-client";
|
|
@@ -8439,63 +8419,63 @@ function resolveRequestSourceFromClientHeader(header) {
|
|
|
8439
8419
|
}
|
|
8440
8420
|
__name(resolveRequestSourceFromClientHeader, "resolveRequestSourceFromClientHeader");
|
|
8441
8421
|
__name2(resolveRequestSourceFromClientHeader, "resolveRequestSourceFromClientHeader");
|
|
8442
|
-
var RedactedMcpServerConfigSchema =
|
|
8422
|
+
var RedactedMcpServerConfigSchema = z63.object({
|
|
8443
8423
|
type: TransportTypeSchema,
|
|
8444
8424
|
integrationSlug: IntegrationSlugSchema,
|
|
8445
|
-
instanceId:
|
|
8425
|
+
instanceId: z63.string().nullable()
|
|
8446
8426
|
});
|
|
8447
|
-
var ThreadContextMessageSchema =
|
|
8448
|
-
role:
|
|
8449
|
-
content:
|
|
8427
|
+
var ThreadContextMessageSchema = z63.object({
|
|
8428
|
+
role: z63.enum(["user", "assistant"]),
|
|
8429
|
+
content: z63.string()
|
|
8450
8430
|
});
|
|
8451
|
-
var ChatFileReferenceSchema =
|
|
8452
|
-
id:
|
|
8453
|
-
name:
|
|
8454
|
-
mimetype:
|
|
8455
|
-
size:
|
|
8456
|
-
platform:
|
|
8457
|
-
workspaceId:
|
|
8458
|
-
channelId:
|
|
8459
|
-
});
|
|
8460
|
-
var ResolvedSubAgentSchema =
|
|
8461
|
-
agentId:
|
|
8462
|
-
buildId:
|
|
8463
|
-
name:
|
|
8431
|
+
var ChatFileReferenceSchema = z63.object({
|
|
8432
|
+
id: z63.string(),
|
|
8433
|
+
name: z63.string(),
|
|
8434
|
+
mimetype: z63.string(),
|
|
8435
|
+
size: z63.number(),
|
|
8436
|
+
platform: z63.enum(["slack", "teams"]),
|
|
8437
|
+
workspaceId: z63.string(),
|
|
8438
|
+
channelId: z63.string()
|
|
8439
|
+
});
|
|
8440
|
+
var ResolvedSubAgentSchema = z63.object({
|
|
8441
|
+
agentId: z63.string().uuid(),
|
|
8442
|
+
buildId: z63.string().uuid(),
|
|
8443
|
+
name: z63.string().min(1).max(64).regex(/^[a-z0-9-]+$/).describe(
|
|
8464
8444
|
"Stable slug used as the Claude Code subagent name (kebab-case, \u226464 chars)"
|
|
8465
8445
|
),
|
|
8466
|
-
description:
|
|
8446
|
+
description: z63.string().describe(
|
|
8467
8447
|
"Routing description Claude uses to decide when to delegate to this subagent"
|
|
8468
8448
|
),
|
|
8469
|
-
prompt:
|
|
8470
|
-
model:
|
|
8471
|
-
mcpServers:
|
|
8449
|
+
prompt: z63.string().describe("System prompt (AOP) for this subagent"),
|
|
8450
|
+
model: z63.string().optional().describe("Optional Claude model identifier override for this subagent"),
|
|
8451
|
+
mcpServers: z63.record(z63.string(), RedactedMcpServerConfigSchema).default({}).describe(
|
|
8472
8452
|
"Redacted MCP server configs scoped to this subagent. Secrets resolved at execution time."
|
|
8473
8453
|
)
|
|
8474
8454
|
});
|
|
8475
8455
|
var RunConfigSchema = AgentConfigSchema.extend({
|
|
8476
|
-
task:
|
|
8477
|
-
mcpServers:
|
|
8478
|
-
subAgents:
|
|
8479
|
-
conversationHistory:
|
|
8480
|
-
chatFiles:
|
|
8456
|
+
task: z63.string(),
|
|
8457
|
+
mcpServers: z63.record(z63.string(), RedactedMcpServerConfigSchema),
|
|
8458
|
+
subAgents: z63.array(ResolvedSubAgentSchema).optional().default([]),
|
|
8459
|
+
conversationHistory: z63.array(ThreadContextMessageSchema).optional(),
|
|
8460
|
+
chatFiles: z63.array(ChatFileReferenceSchema).optional(),
|
|
8481
8461
|
/** IANA timezone (e.g. `"Europe/Prague"`). Consumers should fall back to UTC when absent. */
|
|
8482
|
-
timezone:
|
|
8462
|
+
timezone: z63.string().optional(),
|
|
8483
8463
|
/**
|
|
8484
8464
|
* ISO 8601 timestamp captured when the run was created. Frozen at
|
|
8485
8465
|
* run-creation time and never recomputed, so resumes reuse the same value —
|
|
8486
8466
|
* the runtime injects it into the cached system prompt and a changing value
|
|
8487
8467
|
* would bust the prompt cache.
|
|
8488
8468
|
*/
|
|
8489
|
-
sessionStartedAt:
|
|
8469
|
+
sessionStartedAt: z63.string().optional()
|
|
8490
8470
|
});
|
|
8491
|
-
var StoredRunConfigV0Schema =
|
|
8492
|
-
version:
|
|
8471
|
+
var StoredRunConfigV0Schema = z63.object({
|
|
8472
|
+
version: z63.literal("v0")
|
|
8493
8473
|
});
|
|
8494
|
-
var StoredRunConfigV1Schema =
|
|
8495
|
-
version:
|
|
8474
|
+
var StoredRunConfigV1Schema = z63.object({
|
|
8475
|
+
version: z63.literal("v1"),
|
|
8496
8476
|
data: RunConfigSchema
|
|
8497
8477
|
});
|
|
8498
|
-
var StoredRunConfigSchema =
|
|
8478
|
+
var StoredRunConfigSchema = z63.union([
|
|
8499
8479
|
StoredRunConfigV0Schema,
|
|
8500
8480
|
StoredRunConfigV1Schema
|
|
8501
8481
|
]);
|
|
@@ -8514,177 +8494,177 @@ function isRunConfig(config) {
|
|
|
8514
8494
|
}
|
|
8515
8495
|
__name(isRunConfig, "isRunConfig");
|
|
8516
8496
|
__name2(isRunConfig, "isRunConfig");
|
|
8517
|
-
var skillApiSchema =
|
|
8518
|
-
id:
|
|
8519
|
-
name:
|
|
8520
|
-
description:
|
|
8497
|
+
var skillApiSchema = z64.object({
|
|
8498
|
+
id: z64.string(),
|
|
8499
|
+
name: z64.string(),
|
|
8500
|
+
description: z64.string(),
|
|
8521
8501
|
// System skills have null team_id.
|
|
8522
|
-
team_id:
|
|
8502
|
+
team_id: z64.string().nullable()
|
|
8523
8503
|
});
|
|
8524
|
-
var listSkillsResponseSchema =
|
|
8525
|
-
skills:
|
|
8504
|
+
var listSkillsResponseSchema = z64.object({
|
|
8505
|
+
skills: z64.array(skillApiSchema)
|
|
8526
8506
|
});
|
|
8527
|
-
var systemSkillSchema =
|
|
8528
|
-
id:
|
|
8529
|
-
name:
|
|
8530
|
-
description:
|
|
8531
|
-
});
|
|
8532
|
-
var listSystemSkillsResponseSchema = z65.object({
|
|
8533
|
-
skills: z65.array(systemSkillSchema)
|
|
8534
|
-
});
|
|
8535
|
-
var skillFileItemSchema = z65.object({
|
|
8536
|
-
name: z65.string(),
|
|
8537
|
-
path: z65.string(),
|
|
8538
|
-
size: z65.number().optional(),
|
|
8539
|
-
contentType: z65.string().optional(),
|
|
8540
|
-
updatedAt: z65.string().optional()
|
|
8541
|
-
});
|
|
8542
|
-
var listSkillFilesResponseSchema = z65.object({
|
|
8543
|
-
files: z65.array(skillFileItemSchema)
|
|
8544
|
-
});
|
|
8545
|
-
var getSkillFileContentResponseSchema = z65.object({
|
|
8546
|
-
content: z65.string(),
|
|
8547
|
-
path: z65.string(),
|
|
8548
|
-
contentType: z65.string().optional()
|
|
8549
|
-
});
|
|
8550
|
-
var updateSkillFileBodySchema = z65.object({
|
|
8551
|
-
content: z65.string()
|
|
8552
|
-
});
|
|
8553
|
-
var updateSkillFileResponseSchema = z65.object({
|
|
8554
|
-
success: z65.boolean(),
|
|
8555
|
-
message: z65.string(),
|
|
8556
|
-
skill: z65.object({
|
|
8557
|
-
id: z65.string(),
|
|
8558
|
-
name: z65.string(),
|
|
8559
|
-
description: z65.string()
|
|
8560
|
-
}).optional()
|
|
8507
|
+
var systemSkillSchema = z64.object({
|
|
8508
|
+
id: z64.string(),
|
|
8509
|
+
name: z64.string(),
|
|
8510
|
+
description: z64.string()
|
|
8561
8511
|
});
|
|
8562
|
-
var
|
|
8563
|
-
|
|
8564
|
-
message: z65.string()
|
|
8512
|
+
var listSystemSkillsResponseSchema = z64.object({
|
|
8513
|
+
skills: z64.array(systemSkillSchema)
|
|
8565
8514
|
});
|
|
8566
|
-
var
|
|
8567
|
-
|
|
8568
|
-
|
|
8515
|
+
var skillFileItemSchema = z64.object({
|
|
8516
|
+
name: z64.string(),
|
|
8517
|
+
path: z64.string(),
|
|
8518
|
+
size: z64.number().optional(),
|
|
8519
|
+
contentType: z64.string().optional(),
|
|
8520
|
+
updatedAt: z64.string().optional()
|
|
8569
8521
|
});
|
|
8570
|
-
var
|
|
8571
|
-
|
|
8522
|
+
var listSkillFilesResponseSchema = z64.object({
|
|
8523
|
+
files: z64.array(skillFileItemSchema)
|
|
8572
8524
|
});
|
|
8573
|
-
var
|
|
8574
|
-
|
|
8575
|
-
|
|
8525
|
+
var getSkillFileContentResponseSchema = z64.object({
|
|
8526
|
+
content: z64.string(),
|
|
8527
|
+
path: z64.string(),
|
|
8528
|
+
contentType: z64.string().optional()
|
|
8576
8529
|
});
|
|
8577
|
-
var
|
|
8578
|
-
|
|
8579
|
-
total: z65.number()
|
|
8530
|
+
var updateSkillFileBodySchema = z64.object({
|
|
8531
|
+
content: z64.string()
|
|
8580
8532
|
});
|
|
8581
|
-
var
|
|
8582
|
-
|
|
8583
|
-
|
|
8584
|
-
|
|
8585
|
-
|
|
8586
|
-
|
|
8587
|
-
|
|
8588
|
-
|
|
8589
|
-
created_at: z66.string(),
|
|
8590
|
-
process_id: z66.guid().nullable().optional()
|
|
8533
|
+
var updateSkillFileResponseSchema = z64.object({
|
|
8534
|
+
success: z64.boolean(),
|
|
8535
|
+
message: z64.string(),
|
|
8536
|
+
skill: z64.object({
|
|
8537
|
+
id: z64.string(),
|
|
8538
|
+
name: z64.string(),
|
|
8539
|
+
description: z64.string()
|
|
8540
|
+
}).optional()
|
|
8591
8541
|
});
|
|
8592
|
-
var
|
|
8593
|
-
|
|
8594
|
-
|
|
8595
|
-
|
|
8596
|
-
|
|
8597
|
-
|
|
8598
|
-
|
|
8599
|
-
|
|
8600
|
-
|
|
8601
|
-
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
|
|
8542
|
+
var deleteSkillResponseSchema = z64.object({
|
|
8543
|
+
success: z64.boolean(),
|
|
8544
|
+
message: z64.string()
|
|
8545
|
+
});
|
|
8546
|
+
var generateSkillBodySchema = z64.object({
|
|
8547
|
+
prompt: z64.string().min(1).max(2e3),
|
|
8548
|
+
existingContent: z64.string().max(2e4).optional()
|
|
8549
|
+
});
|
|
8550
|
+
var generateSkillResponseSchema = z64.object({
|
|
8551
|
+
content: z64.string()
|
|
8552
|
+
});
|
|
8553
|
+
var skillAssignmentSchema = z64.object({
|
|
8554
|
+
id: z64.string(),
|
|
8555
|
+
name: z64.string()
|
|
8556
|
+
});
|
|
8557
|
+
var listSkillAssignmentsResponseSchema = z64.object({
|
|
8558
|
+
assignments: z64.array(skillAssignmentSchema),
|
|
8559
|
+
total: z64.number()
|
|
8560
|
+
});
|
|
8561
|
+
var teamInvitationApiSchema = z65.object({
|
|
8562
|
+
id: z65.string(),
|
|
8563
|
+
team_id: z65.string(),
|
|
8564
|
+
email: z65.email(),
|
|
8565
|
+
invited_by: z65.string(),
|
|
8566
|
+
role: z65.string(),
|
|
8567
|
+
status: z65.string(),
|
|
8568
|
+
name: z65.string().nullable(),
|
|
8569
|
+
created_at: z65.string(),
|
|
8570
|
+
process_id: z65.guid().nullable().optional()
|
|
8571
|
+
});
|
|
8572
|
+
var teamInvitationDetailApiSchema = z65.object({
|
|
8573
|
+
id: z65.string(),
|
|
8574
|
+
team_id: z65.string(),
|
|
8575
|
+
email: z65.email(),
|
|
8576
|
+
invited_by: z65.string(),
|
|
8577
|
+
role: z65.string(),
|
|
8578
|
+
status: z65.string(),
|
|
8579
|
+
name: z65.string().nullable(),
|
|
8580
|
+
created_at: z65.string(),
|
|
8581
|
+
process_id: z65.guid().nullable().optional(),
|
|
8582
|
+
team: z65.object({
|
|
8583
|
+
id: z65.string(),
|
|
8584
|
+
name: z65.string()
|
|
8605
8585
|
}),
|
|
8606
|
-
invitedBy:
|
|
8607
|
-
id:
|
|
8608
|
-
name:
|
|
8609
|
-
email:
|
|
8586
|
+
invitedBy: z65.object({
|
|
8587
|
+
id: z65.string(),
|
|
8588
|
+
name: z65.string().nullable(),
|
|
8589
|
+
email: z65.email()
|
|
8610
8590
|
}),
|
|
8611
|
-
process:
|
|
8612
|
-
id:
|
|
8613
|
-
name:
|
|
8591
|
+
process: z65.object({
|
|
8592
|
+
id: z65.string(),
|
|
8593
|
+
name: z65.string()
|
|
8614
8594
|
}).optional()
|
|
8615
8595
|
});
|
|
8616
|
-
var createTeamInvitationRequestSchema =
|
|
8617
|
-
email:
|
|
8618
|
-
role:
|
|
8619
|
-
processId:
|
|
8596
|
+
var createTeamInvitationRequestSchema = z65.object({
|
|
8597
|
+
email: z65.email(),
|
|
8598
|
+
role: z65.string(),
|
|
8599
|
+
processId: z65.guid().optional()
|
|
8620
8600
|
});
|
|
8621
|
-
var acceptTeamInvitationRequestSchema =
|
|
8622
|
-
name:
|
|
8601
|
+
var acceptTeamInvitationRequestSchema = z65.object({
|
|
8602
|
+
name: z65.string().optional()
|
|
8623
8603
|
});
|
|
8624
|
-
var bulkInviteResponseSchema =
|
|
8625
|
-
succeeded:
|
|
8626
|
-
skipped:
|
|
8627
|
-
failed:
|
|
8604
|
+
var bulkInviteResponseSchema = z65.object({
|
|
8605
|
+
succeeded: z65.number(),
|
|
8606
|
+
skipped: z65.number(),
|
|
8607
|
+
failed: z65.number()
|
|
8628
8608
|
});
|
|
8629
|
-
var teamDiscoveryModeSchema =
|
|
8630
|
-
var BrowserRegionSchema =
|
|
8609
|
+
var teamDiscoveryModeSchema = z66.enum(["request", "auto"]);
|
|
8610
|
+
var BrowserRegionSchema = z66.enum([
|
|
8631
8611
|
"us-west-2",
|
|
8632
8612
|
"us-east-1",
|
|
8633
8613
|
"eu-central-1",
|
|
8634
8614
|
"ap-southeast-1"
|
|
8635
8615
|
]);
|
|
8636
|
-
var BrowserLocationSchema =
|
|
8637
|
-
|
|
8638
|
-
|
|
8639
|
-
|
|
8640
|
-
|
|
8641
|
-
|
|
8642
|
-
|
|
8643
|
-
|
|
8616
|
+
var BrowserLocationSchema = z66.union([
|
|
8617
|
+
z66.literal("cz"),
|
|
8618
|
+
z66.literal("de"),
|
|
8619
|
+
z66.literal("fr"),
|
|
8620
|
+
z66.literal("gb"),
|
|
8621
|
+
z66.literal("it"),
|
|
8622
|
+
z66.literal("pl"),
|
|
8623
|
+
z66.literal("sk")
|
|
8644
8624
|
]);
|
|
8645
|
-
var teamMemberApiSchema =
|
|
8646
|
-
id:
|
|
8647
|
-
name:
|
|
8648
|
-
email:
|
|
8649
|
-
role:
|
|
8650
|
-
inheritedFromOrg:
|
|
8651
|
-
});
|
|
8652
|
-
var listTeamMembersResponseSchema =
|
|
8653
|
-
members:
|
|
8654
|
-
total:
|
|
8655
|
-
limit:
|
|
8656
|
-
offset:
|
|
8657
|
-
});
|
|
8658
|
-
var updateMemberRoleRequestSchema =
|
|
8659
|
-
role:
|
|
8660
|
-
});
|
|
8661
|
-
var removeMemberResponseSchema =
|
|
8662
|
-
success:
|
|
8663
|
-
nextTeamId:
|
|
8664
|
-
planType:
|
|
8665
|
-
});
|
|
8666
|
-
var getMemberMeResponseSchema =
|
|
8667
|
-
role:
|
|
8668
|
-
});
|
|
8669
|
-
var addTeamMemberRequestSchema =
|
|
8670
|
-
userId:
|
|
8671
|
-
role:
|
|
8672
|
-
});
|
|
8673
|
-
var updateTeamRequestSchema =
|
|
8674
|
-
name:
|
|
8675
|
-
slack_team_id:
|
|
8625
|
+
var teamMemberApiSchema = z66.object({
|
|
8626
|
+
id: z66.guid(),
|
|
8627
|
+
name: z66.string().nullable(),
|
|
8628
|
+
email: z66.email(),
|
|
8629
|
+
role: z66.string(),
|
|
8630
|
+
inheritedFromOrg: z66.boolean().default(false)
|
|
8631
|
+
});
|
|
8632
|
+
var listTeamMembersResponseSchema = z66.object({
|
|
8633
|
+
members: z66.array(teamMemberApiSchema),
|
|
8634
|
+
total: z66.number().int().nonnegative(),
|
|
8635
|
+
limit: z66.number().int().positive(),
|
|
8636
|
+
offset: z66.number().int().nonnegative()
|
|
8637
|
+
});
|
|
8638
|
+
var updateMemberRoleRequestSchema = z66.object({
|
|
8639
|
+
role: z66.string()
|
|
8640
|
+
});
|
|
8641
|
+
var removeMemberResponseSchema = z66.object({
|
|
8642
|
+
success: z66.literal(true),
|
|
8643
|
+
nextTeamId: z66.guid().nullable(),
|
|
8644
|
+
planType: z66.enum(["pro", "enterprise"]).nullable()
|
|
8645
|
+
});
|
|
8646
|
+
var getMemberMeResponseSchema = z66.object({
|
|
8647
|
+
role: z66.string().nullable()
|
|
8648
|
+
});
|
|
8649
|
+
var addTeamMemberRequestSchema = z66.object({
|
|
8650
|
+
userId: z66.guid(),
|
|
8651
|
+
role: z66.string()
|
|
8652
|
+
});
|
|
8653
|
+
var updateTeamRequestSchema = z66.object({
|
|
8654
|
+
name: z66.string().min(1).optional(),
|
|
8655
|
+
slack_team_id: z66.string().optional(),
|
|
8676
8656
|
discovery_mode: teamDiscoveryModeSchema.optional()
|
|
8677
8657
|
});
|
|
8678
|
-
var teamApiSchema =
|
|
8679
|
-
id:
|
|
8680
|
-
name:
|
|
8681
|
-
created_at:
|
|
8682
|
-
organization_id:
|
|
8683
|
-
slack_team_id:
|
|
8658
|
+
var teamApiSchema = z66.object({
|
|
8659
|
+
id: z66.guid(),
|
|
8660
|
+
name: z66.string(),
|
|
8661
|
+
created_at: z66.string(),
|
|
8662
|
+
organization_id: z66.guid().nullable(),
|
|
8663
|
+
slack_team_id: z66.string().nullable(),
|
|
8684
8664
|
discovery_mode: teamDiscoveryModeSchema
|
|
8685
8665
|
});
|
|
8686
8666
|
var TEAM_CONFIG_VERSION = 1;
|
|
8687
|
-
var teamConfigDataSchema =
|
|
8667
|
+
var teamConfigDataSchema = z66.object({
|
|
8688
8668
|
browserProviderOverride: BrowserProviderTypeSchema.nullable().optional(),
|
|
8689
8669
|
// Egress identity (proxy country) — what the target site sees.
|
|
8690
8670
|
browserLocationOverride: BrowserLocationSchema.nullable().optional(),
|
|
@@ -8695,182 +8675,182 @@ var teamConfigDataSchema = z67.object({
|
|
|
8695
8675
|
// Kept optional so existing v1 rows still parse; the resolver reads the new
|
|
8696
8676
|
// fields first and falls back to these. Do not surface in the UI.
|
|
8697
8677
|
browserRegionOverride: BrowserRegionSchema.nullable().optional(),
|
|
8698
|
-
sessionRecordingOverride:
|
|
8678
|
+
sessionRecordingOverride: z66.boolean().nullable().optional()
|
|
8699
8679
|
});
|
|
8700
|
-
var teamConfigSchema =
|
|
8701
|
-
version:
|
|
8680
|
+
var teamConfigSchema = z66.object({
|
|
8681
|
+
version: z66.literal(TEAM_CONFIG_VERSION),
|
|
8702
8682
|
data: teamConfigDataSchema
|
|
8703
8683
|
});
|
|
8704
|
-
var listTeamInvitesResponseSchema =
|
|
8705
|
-
invitations:
|
|
8684
|
+
var listTeamInvitesResponseSchema = z66.object({
|
|
8685
|
+
invitations: z66.array(teamInvitationApiSchema)
|
|
8706
8686
|
});
|
|
8707
|
-
var teamInsightsCopilotSchema =
|
|
8708
|
-
id:
|
|
8709
|
-
name:
|
|
8710
|
-
teamName:
|
|
8711
|
-
created_at:
|
|
8712
|
-
updated_at:
|
|
8713
|
-
team_id:
|
|
8714
|
-
thread_id:
|
|
8715
|
-
slack_enabled:
|
|
8716
|
-
});
|
|
8717
|
-
var teamInsightsUserProfileSchema =
|
|
8718
|
-
id:
|
|
8719
|
-
name:
|
|
8720
|
-
email:
|
|
8687
|
+
var teamInsightsCopilotSchema = z67.object({
|
|
8688
|
+
id: z67.guid(),
|
|
8689
|
+
name: z67.string(),
|
|
8690
|
+
teamName: z67.string().nullable().optional(),
|
|
8691
|
+
created_at: z67.string().nullable(),
|
|
8692
|
+
updated_at: z67.string().nullable(),
|
|
8693
|
+
team_id: z67.string().nullable(),
|
|
8694
|
+
thread_id: z67.string().nullable(),
|
|
8695
|
+
slack_enabled: z67.boolean().nullable()
|
|
8696
|
+
});
|
|
8697
|
+
var teamInsightsUserProfileSchema = z67.object({
|
|
8698
|
+
id: z67.guid(),
|
|
8699
|
+
name: z67.string().nullable(),
|
|
8700
|
+
email: z67.string()
|
|
8721
8701
|
});
|
|
8722
8702
|
var teamInsightsUserUsageSchema = teamInsightsUserProfileSchema.extend(
|
|
8723
8703
|
{
|
|
8724
|
-
runCount:
|
|
8725
|
-
lastRun:
|
|
8704
|
+
runCount: z67.number(),
|
|
8705
|
+
lastRun: z67.string().nullable()
|
|
8726
8706
|
}
|
|
8727
8707
|
);
|
|
8728
|
-
var teamInsightsMetricSourceSchema =
|
|
8708
|
+
var teamInsightsMetricSourceSchema = z67.object({
|
|
8729
8709
|
source: agentRunSourceSchema,
|
|
8730
|
-
runsTotal:
|
|
8731
|
-
completedRuns:
|
|
8710
|
+
runsTotal: z67.number(),
|
|
8711
|
+
completedRuns: z67.number()
|
|
8732
8712
|
});
|
|
8733
8713
|
var teamInsightsCopilotWithRunsSchema = teamInsightsCopilotSchema.extend({
|
|
8734
|
-
integrations:
|
|
8735
|
-
uniqueUsersCount:
|
|
8736
|
-
users:
|
|
8737
|
-
totalRuns:
|
|
8738
|
-
completedRuns:
|
|
8739
|
-
totalTimeSpentMs:
|
|
8740
|
-
averageTimeSpentMs:
|
|
8741
|
-
completedRunsWithTiming:
|
|
8742
|
-
sources:
|
|
8743
|
-
});
|
|
8744
|
-
var teamInsightsAgentsRunResponseSchema =
|
|
8745
|
-
data:
|
|
8746
|
-
total:
|
|
8747
|
-
});
|
|
8748
|
-
var teamInsightsMetricsResponseSchema =
|
|
8749
|
-
runsTotal:
|
|
8750
|
-
completedRuns:
|
|
8751
|
-
sources:
|
|
8752
|
-
});
|
|
8753
|
-
var teamInsightsUserAgentRunSchema =
|
|
8754
|
-
id:
|
|
8755
|
-
created_at:
|
|
8756
|
-
updated_at:
|
|
8757
|
-
agent_id:
|
|
8758
|
-
agent_name:
|
|
8759
|
-
build_id:
|
|
8760
|
-
source:
|
|
8761
|
-
started_at:
|
|
8762
|
-
completed_at:
|
|
8763
|
-
});
|
|
8764
|
-
var teamInsightsAgentSchema =
|
|
8765
|
-
id:
|
|
8766
|
-
name:
|
|
8767
|
-
teamName:
|
|
8768
|
-
runs:
|
|
8714
|
+
integrations: z67.array(z67.string()),
|
|
8715
|
+
uniqueUsersCount: z67.number(),
|
|
8716
|
+
users: z67.array(teamInsightsUserUsageSchema),
|
|
8717
|
+
totalRuns: z67.number(),
|
|
8718
|
+
completedRuns: z67.number(),
|
|
8719
|
+
totalTimeSpentMs: z67.number(),
|
|
8720
|
+
averageTimeSpentMs: z67.number(),
|
|
8721
|
+
completedRunsWithTiming: z67.number(),
|
|
8722
|
+
sources: z67.array(teamInsightsMetricSourceSchema)
|
|
8723
|
+
});
|
|
8724
|
+
var teamInsightsAgentsRunResponseSchema = z67.object({
|
|
8725
|
+
data: z67.array(teamInsightsCopilotWithRunsSchema),
|
|
8726
|
+
total: z67.number()
|
|
8727
|
+
});
|
|
8728
|
+
var teamInsightsMetricsResponseSchema = z67.object({
|
|
8729
|
+
runsTotal: z67.number(),
|
|
8730
|
+
completedRuns: z67.number(),
|
|
8731
|
+
sources: z67.array(teamInsightsMetricSourceSchema)
|
|
8732
|
+
});
|
|
8733
|
+
var teamInsightsUserAgentRunSchema = z67.object({
|
|
8734
|
+
id: z67.guid(),
|
|
8735
|
+
created_at: z67.string(),
|
|
8736
|
+
updated_at: z67.string(),
|
|
8737
|
+
agent_id: z67.guid(),
|
|
8738
|
+
agent_name: z67.string(),
|
|
8739
|
+
build_id: z67.guid(),
|
|
8740
|
+
source: z67.string().nullable(),
|
|
8741
|
+
started_at: z67.string().nullable(),
|
|
8742
|
+
completed_at: z67.string().nullable()
|
|
8743
|
+
});
|
|
8744
|
+
var teamInsightsAgentSchema = z67.object({
|
|
8745
|
+
id: z67.guid(),
|
|
8746
|
+
name: z67.string(),
|
|
8747
|
+
teamName: z67.string().nullable().optional(),
|
|
8748
|
+
runs: z67.array(teamInsightsUserAgentRunSchema)
|
|
8769
8749
|
});
|
|
8770
8750
|
var teamInsightsUserWithAgentsAndRunsSchema = teamInsightsUserProfileSchema.extend({
|
|
8771
|
-
agents:
|
|
8772
|
-
runs:
|
|
8773
|
-
totalRuns:
|
|
8774
|
-
});
|
|
8775
|
-
var teamInsightsUsersResponseSchema =
|
|
8776
|
-
data:
|
|
8777
|
-
total:
|
|
8778
|
-
});
|
|
8779
|
-
var guardrailsAuthorSchema =
|
|
8780
|
-
id:
|
|
8781
|
-
name:
|
|
8782
|
-
email:
|
|
8783
|
-
});
|
|
8784
|
-
var guardrailsRevisionSchema =
|
|
8785
|
-
id:
|
|
8786
|
-
teamId:
|
|
8787
|
-
guardrailsText:
|
|
8788
|
-
blockedDomains:
|
|
8789
|
-
createdAt:
|
|
8751
|
+
agents: z67.array(teamInsightsAgentSchema),
|
|
8752
|
+
runs: z67.array(teamInsightsUserAgentRunSchema),
|
|
8753
|
+
totalRuns: z67.number()
|
|
8754
|
+
});
|
|
8755
|
+
var teamInsightsUsersResponseSchema = z67.object({
|
|
8756
|
+
data: z67.array(teamInsightsUserWithAgentsAndRunsSchema),
|
|
8757
|
+
total: z67.number()
|
|
8758
|
+
});
|
|
8759
|
+
var guardrailsAuthorSchema = z68.object({
|
|
8760
|
+
id: z68.guid(),
|
|
8761
|
+
name: z68.string().nullable(),
|
|
8762
|
+
email: z68.email()
|
|
8763
|
+
});
|
|
8764
|
+
var guardrailsRevisionSchema = z68.object({
|
|
8765
|
+
id: z68.guid(),
|
|
8766
|
+
teamId: z68.guid(),
|
|
8767
|
+
guardrailsText: z68.string().nullable(),
|
|
8768
|
+
blockedDomains: z68.array(z68.string()),
|
|
8769
|
+
createdAt: z68.string(),
|
|
8790
8770
|
createdBy: guardrailsAuthorSchema
|
|
8791
8771
|
});
|
|
8792
|
-
var getTeamGuardrailsResponseSchema =
|
|
8772
|
+
var getTeamGuardrailsResponseSchema = z68.object({
|
|
8793
8773
|
current: guardrailsRevisionSchema.nullable()
|
|
8794
8774
|
});
|
|
8795
|
-
var listTeamGuardrailsRevisionsQuerySchema =
|
|
8796
|
-
limit:
|
|
8797
|
-
offset:
|
|
8775
|
+
var listTeamGuardrailsRevisionsQuerySchema = z68.object({
|
|
8776
|
+
limit: z68.coerce.number().int().min(1).max(100).default(20),
|
|
8777
|
+
offset: z68.coerce.number().int().min(0).default(0)
|
|
8798
8778
|
});
|
|
8799
|
-
var listTeamGuardrailsRevisionsResponseSchema =
|
|
8800
|
-
revisions:
|
|
8801
|
-
total:
|
|
8779
|
+
var listTeamGuardrailsRevisionsResponseSchema = z68.object({
|
|
8780
|
+
revisions: z68.array(guardrailsRevisionSchema),
|
|
8781
|
+
total: z68.number().int().nonnegative()
|
|
8802
8782
|
});
|
|
8803
|
-
var createTeamGuardrailsRevisionRequestSchema =
|
|
8804
|
-
guardrailsText:
|
|
8805
|
-
blockedDomains:
|
|
8783
|
+
var createTeamGuardrailsRevisionRequestSchema = z68.object({
|
|
8784
|
+
guardrailsText: z68.string().max(MAX_GUARDRAILS_TEXT_LENGTH).nullable().transform((value) => value && value.trim().length > 0 ? value : null),
|
|
8785
|
+
blockedDomains: z68.array(z68.string()).max(MAX_BLOCKED_DOMAINS)
|
|
8806
8786
|
});
|
|
8807
|
-
var userDismissalListResponseSchema =
|
|
8808
|
-
data:
|
|
8787
|
+
var userDismissalListResponseSchema = z69.object({
|
|
8788
|
+
data: z69.array(z69.string())
|
|
8809
8789
|
});
|
|
8810
|
-
var userDismissalMutationSchema =
|
|
8811
|
-
elementKey:
|
|
8790
|
+
var userDismissalMutationSchema = z69.object({
|
|
8791
|
+
elementKey: z69.string()
|
|
8812
8792
|
});
|
|
8813
8793
|
var PASSWORD_MIN = 1;
|
|
8814
8794
|
var PASSWORD_MAX = 1024;
|
|
8815
8795
|
var NAME_MAX = 200;
|
|
8816
8796
|
var URL_MAX = 500;
|
|
8817
8797
|
var USERNAME_MAX = 200;
|
|
8818
|
-
var vpnProxyConfigSummarySchema =
|
|
8819
|
-
id:
|
|
8820
|
-
name:
|
|
8821
|
-
server:
|
|
8822
|
-
username:
|
|
8823
|
-
enabled:
|
|
8824
|
-
passwordSet:
|
|
8825
|
-
organizationCount:
|
|
8826
|
-
createdAt:
|
|
8827
|
-
updatedAt:
|
|
8828
|
-
});
|
|
8829
|
-
var vpnProxyConfigListResponseSchema =
|
|
8830
|
-
configs:
|
|
8831
|
-
});
|
|
8832
|
-
var vpnProxyConfigCreateRequestSchema =
|
|
8833
|
-
name:
|
|
8834
|
-
server:
|
|
8835
|
-
username:
|
|
8836
|
-
password:
|
|
8837
|
-
enabled:
|
|
8838
|
-
});
|
|
8839
|
-
var vpnProxyConfigCreateResponseSchema =
|
|
8798
|
+
var vpnProxyConfigSummarySchema = z70.object({
|
|
8799
|
+
id: z70.guid(),
|
|
8800
|
+
name: z70.string(),
|
|
8801
|
+
server: z70.string(),
|
|
8802
|
+
username: z70.string(),
|
|
8803
|
+
enabled: z70.boolean(),
|
|
8804
|
+
passwordSet: z70.boolean(),
|
|
8805
|
+
organizationCount: z70.number().int().nonnegative(),
|
|
8806
|
+
createdAt: z70.string(),
|
|
8807
|
+
updatedAt: z70.string()
|
|
8808
|
+
});
|
|
8809
|
+
var vpnProxyConfigListResponseSchema = z70.object({
|
|
8810
|
+
configs: z70.array(vpnProxyConfigSummarySchema)
|
|
8811
|
+
});
|
|
8812
|
+
var vpnProxyConfigCreateRequestSchema = z70.object({
|
|
8813
|
+
name: z70.string().trim().min(1).max(NAME_MAX),
|
|
8814
|
+
server: z70.string().trim().min(1).max(URL_MAX).url(),
|
|
8815
|
+
username: z70.string().trim().min(1).max(USERNAME_MAX),
|
|
8816
|
+
password: z70.string().min(PASSWORD_MIN).max(PASSWORD_MAX),
|
|
8817
|
+
enabled: z70.boolean().prefault(true)
|
|
8818
|
+
});
|
|
8819
|
+
var vpnProxyConfigCreateResponseSchema = z70.object({
|
|
8840
8820
|
config: vpnProxyConfigSummarySchema
|
|
8841
8821
|
});
|
|
8842
|
-
var vpnProxyConfigUpdateRequestSchema =
|
|
8843
|
-
name:
|
|
8844
|
-
server:
|
|
8845
|
-
username:
|
|
8846
|
-
password:
|
|
8847
|
-
enabled:
|
|
8822
|
+
var vpnProxyConfigUpdateRequestSchema = z70.object({
|
|
8823
|
+
name: z70.string().trim().min(1).max(NAME_MAX).optional(),
|
|
8824
|
+
server: z70.string().trim().min(1).max(URL_MAX).url().optional(),
|
|
8825
|
+
username: z70.string().trim().min(1).max(USERNAME_MAX).optional(),
|
|
8826
|
+
password: z70.string().min(PASSWORD_MIN).max(PASSWORD_MAX).optional(),
|
|
8827
|
+
enabled: z70.boolean().optional()
|
|
8848
8828
|
});
|
|
8849
|
-
var vpnProxyConfigUpdateResponseSchema =
|
|
8829
|
+
var vpnProxyConfigUpdateResponseSchema = z70.object({
|
|
8850
8830
|
config: vpnProxyConfigSummarySchema
|
|
8851
8831
|
});
|
|
8852
|
-
var vpnProxyConfigDeleteResponseSchema =
|
|
8853
|
-
success:
|
|
8832
|
+
var vpnProxyConfigDeleteResponseSchema = z70.object({
|
|
8833
|
+
success: z70.literal(true)
|
|
8854
8834
|
});
|
|
8855
|
-
var vpnProxyConfigOrganizationSchema =
|
|
8856
|
-
id:
|
|
8857
|
-
organizationId:
|
|
8858
|
-
organizationName:
|
|
8859
|
-
attachedAt:
|
|
8835
|
+
var vpnProxyConfigOrganizationSchema = z70.object({
|
|
8836
|
+
id: z70.guid(),
|
|
8837
|
+
organizationId: z70.guid(),
|
|
8838
|
+
organizationName: z70.string(),
|
|
8839
|
+
attachedAt: z70.string()
|
|
8860
8840
|
});
|
|
8861
|
-
var vpnProxyConfigOrganizationListResponseSchema =
|
|
8862
|
-
organizations:
|
|
8841
|
+
var vpnProxyConfigOrganizationListResponseSchema = z70.object({
|
|
8842
|
+
organizations: z70.array(vpnProxyConfigOrganizationSchema)
|
|
8863
8843
|
});
|
|
8864
|
-
var vpnProxyConfigAttachOrganizationRequestSchema =
|
|
8865
|
-
organizationId:
|
|
8844
|
+
var vpnProxyConfigAttachOrganizationRequestSchema = z70.object({
|
|
8845
|
+
organizationId: z70.guid()
|
|
8866
8846
|
});
|
|
8867
|
-
var vpnProxyConfigAttachOrganizationResponseSchema =
|
|
8847
|
+
var vpnProxyConfigAttachOrganizationResponseSchema = z70.object({
|
|
8868
8848
|
attachment: vpnProxyConfigOrganizationSchema
|
|
8869
8849
|
});
|
|
8870
|
-
var vpnProxyConfigDetachOrganizationResponseSchema =
|
|
8871
|
-
success:
|
|
8850
|
+
var vpnProxyConfigDetachOrganizationResponseSchema = z70.object({
|
|
8851
|
+
success: z70.literal(true)
|
|
8872
8852
|
});
|
|
8873
|
-
var vpnProxyConfigForOrganizationResponseSchema =
|
|
8853
|
+
var vpnProxyConfigForOrganizationResponseSchema = z70.object({
|
|
8874
8854
|
config: vpnProxyConfigSummarySchema.nullable()
|
|
8875
8855
|
});
|
|
8876
8856
|
function canonicalizeSopInput(config) {
|
|
@@ -8891,7 +8871,7 @@ function canonicalizeSopInput(config) {
|
|
|
8891
8871
|
}
|
|
8892
8872
|
__name(canonicalizeSopInput, "canonicalizeSopInput");
|
|
8893
8873
|
__name2(canonicalizeSopInput, "canonicalizeSopInput");
|
|
8894
|
-
var caseFilterStatusSchema =
|
|
8874
|
+
var caseFilterStatusSchema = z71.enum([
|
|
8895
8875
|
"pending",
|
|
8896
8876
|
"claimed",
|
|
8897
8877
|
"completed",
|
|
@@ -8899,19 +8879,19 @@ var caseFilterStatusSchema = z72.enum([
|
|
|
8899
8879
|
"needs_input",
|
|
8900
8880
|
"postponed"
|
|
8901
8881
|
]);
|
|
8902
|
-
var casesFiltersSchema =
|
|
8903
|
-
status:
|
|
8904
|
-
created_at_from:
|
|
8905
|
-
updated_at_from:
|
|
8906
|
-
labels:
|
|
8882
|
+
var casesFiltersSchema = z71.object({
|
|
8883
|
+
status: z71.array(caseFilterStatusSchema).optional(),
|
|
8884
|
+
created_at_from: z71.string().optional(),
|
|
8885
|
+
updated_at_from: z71.string().optional(),
|
|
8886
|
+
labels: z71.record(z71.string(), z71.array(z71.string())).optional()
|
|
8907
8887
|
});
|
|
8908
|
-
var casesListRequestBodySchema =
|
|
8888
|
+
var casesListRequestBodySchema = z71.object({
|
|
8909
8889
|
filters: casesFiltersSchema.default({}),
|
|
8910
|
-
limit:
|
|
8911
|
-
offset:
|
|
8912
|
-
sort_by:
|
|
8913
|
-
sort_order:
|
|
8914
|
-
search:
|
|
8890
|
+
limit: z71.int().min(1).max(100).default(25),
|
|
8891
|
+
offset: z71.int().min(0).default(0),
|
|
8892
|
+
sort_by: z71.enum(["created_at", "updated_at", "postponed_to"]).default("created_at"),
|
|
8893
|
+
sort_order: z71.enum(["asc", "desc"]).default("desc"),
|
|
8894
|
+
search: z71.string().optional()
|
|
8915
8895
|
});
|
|
8916
8896
|
function toBase64(input) {
|
|
8917
8897
|
if (typeof btoa === "function") {
|
|
@@ -9006,7 +8986,7 @@ function setFilterValuesByCategoryKey(filters, categoryKey, values) {
|
|
|
9006
8986
|
const { status: _, ...rest } = filters;
|
|
9007
8987
|
return rest;
|
|
9008
8988
|
}
|
|
9009
|
-
const parsed =
|
|
8989
|
+
const parsed = z71.array(caseFilterStatusSchema).safeParse(values);
|
|
9010
8990
|
if (!parsed.success) {
|
|
9011
8991
|
return filters;
|
|
9012
8992
|
}
|
|
@@ -9252,6 +9232,91 @@ function safeParseJson(input, log2, schema) {
|
|
|
9252
9232
|
}
|
|
9253
9233
|
__name(safeParseJson, "safeParseJson");
|
|
9254
9234
|
__name2(safeParseJson, "safeParseJson");
|
|
9235
|
+
var QUEUE_MENTION_REGEX_SOURCE = `<DUVO:QUEUE\\s+id="((?:[^"\\\\]|\\\\.)*)"\\s+name="((?:[^"\\\\]|\\\\.)*)">`;
|
|
9236
|
+
function escapeAttrValue(value) {
|
|
9237
|
+
return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
9238
|
+
}
|
|
9239
|
+
__name(escapeAttrValue, "escapeAttrValue");
|
|
9240
|
+
__name2(escapeAttrValue, "escapeAttrValue");
|
|
9241
|
+
function unescapeAttrValue2(value) {
|
|
9242
|
+
return value.replace(/\\(.)/g, "$1");
|
|
9243
|
+
}
|
|
9244
|
+
__name(unescapeAttrValue2, "unescapeAttrValue2");
|
|
9245
|
+
__name2(unescapeAttrValue2, "unescapeAttrValue");
|
|
9246
|
+
function createQueueMentionRegex() {
|
|
9247
|
+
return new RegExp(QUEUE_MENTION_REGEX_SOURCE, "g");
|
|
9248
|
+
}
|
|
9249
|
+
__name(createQueueMentionRegex, "createQueueMentionRegex");
|
|
9250
|
+
__name2(createQueueMentionRegex, "createQueueMentionRegex");
|
|
9251
|
+
function serializeQueueMention(id, name) {
|
|
9252
|
+
return `<DUVO:QUEUE id="${escapeAttrValue(id)}" name="${escapeAttrValue(name)}">`;
|
|
9253
|
+
}
|
|
9254
|
+
__name(serializeQueueMention, "serializeQueueMention");
|
|
9255
|
+
__name2(serializeQueueMention, "serializeQueueMention");
|
|
9256
|
+
function parseQueueMentionSegments(text3) {
|
|
9257
|
+
if (!text3) {
|
|
9258
|
+
return [];
|
|
9259
|
+
}
|
|
9260
|
+
const segments = [];
|
|
9261
|
+
let lastIndex = 0;
|
|
9262
|
+
for (const match of text3.matchAll(createQueueMentionRegex())) {
|
|
9263
|
+
const matchStart = match.index ?? 0;
|
|
9264
|
+
if (matchStart > lastIndex) {
|
|
9265
|
+
segments.push({ type: "text", value: text3.slice(lastIndex, matchStart) });
|
|
9266
|
+
}
|
|
9267
|
+
segments.push({
|
|
9268
|
+
type: "mention",
|
|
9269
|
+
id: unescapeAttrValue2(match[1]),
|
|
9270
|
+
name: unescapeAttrValue2(match[2])
|
|
9271
|
+
});
|
|
9272
|
+
lastIndex = matchStart + match[0].length;
|
|
9273
|
+
}
|
|
9274
|
+
if (lastIndex < text3.length) {
|
|
9275
|
+
segments.push({ type: "text", value: text3.slice(lastIndex) });
|
|
9276
|
+
}
|
|
9277
|
+
return segments;
|
|
9278
|
+
}
|
|
9279
|
+
__name(parseQueueMentionSegments, "parseQueueMentionSegments");
|
|
9280
|
+
__name2(parseQueueMentionSegments, "parseQueueMentionSegments");
|
|
9281
|
+
function extractQueueMentions(text3) {
|
|
9282
|
+
if (!text3) {
|
|
9283
|
+
return [];
|
|
9284
|
+
}
|
|
9285
|
+
const seen = /* @__PURE__ */ new Set();
|
|
9286
|
+
const mentions = [];
|
|
9287
|
+
for (const match of text3.matchAll(createQueueMentionRegex())) {
|
|
9288
|
+
const id = unescapeAttrValue2(match[1]);
|
|
9289
|
+
if (seen.has(id)) {
|
|
9290
|
+
continue;
|
|
9291
|
+
}
|
|
9292
|
+
seen.add(id);
|
|
9293
|
+
mentions.push({ id, name: unescapeAttrValue2(match[2]) });
|
|
9294
|
+
}
|
|
9295
|
+
return mentions;
|
|
9296
|
+
}
|
|
9297
|
+
__name(extractQueueMentions, "extractQueueMentions");
|
|
9298
|
+
__name2(extractQueueMentions, "extractQueueMentions");
|
|
9299
|
+
function textContainsQueueMention(text3) {
|
|
9300
|
+
if (!text3) {
|
|
9301
|
+
return false;
|
|
9302
|
+
}
|
|
9303
|
+
return createQueueMentionRegex().test(text3);
|
|
9304
|
+
}
|
|
9305
|
+
__name(textContainsQueueMention, "textContainsQueueMention");
|
|
9306
|
+
__name2(textContainsQueueMention, "textContainsQueueMention");
|
|
9307
|
+
function formatQueueMentionsAsText(text3) {
|
|
9308
|
+
if (!text3) {
|
|
9309
|
+
return text3;
|
|
9310
|
+
}
|
|
9311
|
+
return text3.replace(
|
|
9312
|
+
createQueueMentionRegex(),
|
|
9313
|
+
(_match, _id, name) => {
|
|
9314
|
+
return `@${unescapeAttrValue2(name)}`;
|
|
9315
|
+
}
|
|
9316
|
+
);
|
|
9317
|
+
}
|
|
9318
|
+
__name(formatQueueMentionsAsText, "formatQueueMentionsAsText");
|
|
9319
|
+
__name2(formatQueueMentionsAsText, "formatQueueMentionsAsText");
|
|
9255
9320
|
var BASE_HUES = [0, 30, 50, 90, 145, 175, 215, 270, 330];
|
|
9256
9321
|
function isLabelHue(value) {
|
|
9257
9322
|
return BASE_HUES.includes(value);
|
|
@@ -10146,11 +10211,11 @@ function emptyConfig() {
|
|
|
10146
10211
|
__name(emptyConfig, "emptyConfig");
|
|
10147
10212
|
|
|
10148
10213
|
// src/config/env.ts
|
|
10149
|
-
import { z as
|
|
10150
|
-
var optionalEnvString =
|
|
10214
|
+
import { z as z72 } from "zod";
|
|
10215
|
+
var optionalEnvString = z72.string().optional().transform(
|
|
10151
10216
|
(value) => value === void 0 || value === "" ? void 0 : value
|
|
10152
10217
|
);
|
|
10153
|
-
var CliEnvSchema =
|
|
10218
|
+
var CliEnvSchema = z72.object({
|
|
10154
10219
|
DUVO_PROFILE: optionalEnvString,
|
|
10155
10220
|
DUVO_API_KEY: optionalEnvString,
|
|
10156
10221
|
DUVO_API_BASE_URL: optionalEnvString,
|
|
@@ -10646,9 +10711,9 @@ async function requireAuthenticatedConfig(command) {
|
|
|
10646
10711
|
__name(requireAuthenticatedConfig, "requireAuthenticatedConfig");
|
|
10647
10712
|
|
|
10648
10713
|
// src/commands/shared/team-context.ts
|
|
10649
|
-
import { z as
|
|
10650
|
-
var teamSchema =
|
|
10651
|
-
var listMyTeamsResponseSchema =
|
|
10714
|
+
import { z as z73 } from "zod";
|
|
10715
|
+
var teamSchema = z73.object({ id: z73.string() });
|
|
10716
|
+
var listMyTeamsResponseSchema = z73.object({ teams: z73.array(teamSchema) });
|
|
10652
10717
|
async function resolveRequiredTeamId(config, options = {}) {
|
|
10653
10718
|
if (options.override) {
|
|
10654
10719
|
return options.override;
|
|
@@ -11436,56 +11501,56 @@ import { readFile as readFile2 } from "node:fs/promises";
|
|
|
11436
11501
|
import { confirm as confirm2, isCancel as isCancel2, text } from "@clack/prompts";
|
|
11437
11502
|
|
|
11438
11503
|
// src/api/agent-schemas.ts
|
|
11439
|
-
import { z as
|
|
11504
|
+
import { z as z75 } from "zod";
|
|
11440
11505
|
|
|
11441
11506
|
// src/api/json-value.ts
|
|
11442
|
-
import { z as
|
|
11443
|
-
var jsonValueSchema =
|
|
11444
|
-
() =>
|
|
11445
|
-
|
|
11446
|
-
|
|
11447
|
-
|
|
11448
|
-
|
|
11449
|
-
|
|
11450
|
-
|
|
11507
|
+
import { z as z74 } from "zod";
|
|
11508
|
+
var jsonValueSchema = z74.lazy(
|
|
11509
|
+
() => z74.union([
|
|
11510
|
+
z74.string(),
|
|
11511
|
+
z74.number(),
|
|
11512
|
+
z74.boolean(),
|
|
11513
|
+
z74.null(),
|
|
11514
|
+
z74.array(jsonValueSchema),
|
|
11515
|
+
z74.record(z74.string(), jsonValueSchema)
|
|
11451
11516
|
])
|
|
11452
11517
|
);
|
|
11453
11518
|
|
|
11454
11519
|
// src/api/agent-schemas.ts
|
|
11455
|
-
var publicAgentSchema =
|
|
11456
|
-
id:
|
|
11457
|
-
name:
|
|
11458
|
-
slack_enabled:
|
|
11459
|
-
microsoft_teams_enabled:
|
|
11460
|
-
agentic_memory_enabled:
|
|
11461
|
-
thread_id:
|
|
11462
|
-
created_at:
|
|
11463
|
-
updated_at:
|
|
11464
|
-
latest_build:
|
|
11465
|
-
});
|
|
11466
|
-
var publicBuildSchema =
|
|
11467
|
-
id:
|
|
11468
|
-
agent_id:
|
|
11469
|
-
name:
|
|
11470
|
-
revision_number:
|
|
11471
|
-
created_at:
|
|
11472
|
-
updated_at:
|
|
11473
|
-
});
|
|
11474
|
-
var listAgentsResponseSchema =
|
|
11475
|
-
agents:
|
|
11476
|
-
total:
|
|
11477
|
-
limit:
|
|
11478
|
-
offset:
|
|
11479
|
-
});
|
|
11480
|
-
var getAgentResponseSchema =
|
|
11520
|
+
var publicAgentSchema = z75.object({
|
|
11521
|
+
id: z75.string(),
|
|
11522
|
+
name: z75.string(),
|
|
11523
|
+
slack_enabled: z75.boolean().nullish(),
|
|
11524
|
+
microsoft_teams_enabled: z75.boolean().nullish(),
|
|
11525
|
+
agentic_memory_enabled: z75.boolean().nullish(),
|
|
11526
|
+
thread_id: z75.string().nullish(),
|
|
11527
|
+
created_at: z75.string().nullish(),
|
|
11528
|
+
updated_at: z75.string().nullish(),
|
|
11529
|
+
latest_build: z75.object({ config: jsonValueSchema.nullish() }).nullish()
|
|
11530
|
+
});
|
|
11531
|
+
var publicBuildSchema = z75.object({
|
|
11532
|
+
id: z75.string(),
|
|
11533
|
+
agent_id: z75.string(),
|
|
11534
|
+
name: z75.string(),
|
|
11535
|
+
revision_number: z75.number().nullish(),
|
|
11536
|
+
created_at: z75.string().nullish(),
|
|
11537
|
+
updated_at: z75.string().nullish()
|
|
11538
|
+
});
|
|
11539
|
+
var listAgentsResponseSchema = z75.object({
|
|
11540
|
+
agents: z75.array(publicAgentSchema),
|
|
11541
|
+
total: z75.number().nullish(),
|
|
11542
|
+
limit: z75.number().nullish(),
|
|
11543
|
+
offset: z75.number().nullish()
|
|
11544
|
+
});
|
|
11545
|
+
var getAgentResponseSchema = z75.object({
|
|
11481
11546
|
agent: publicAgentSchema
|
|
11482
11547
|
});
|
|
11483
|
-
var createAgentResponseSchema =
|
|
11548
|
+
var createAgentResponseSchema = z75.object({
|
|
11484
11549
|
agent: publicAgentSchema,
|
|
11485
11550
|
build: publicBuildSchema.optional()
|
|
11486
11551
|
});
|
|
11487
|
-
var deleteAgentResponseSchema =
|
|
11488
|
-
success:
|
|
11552
|
+
var deleteAgentResponseSchema = z75.object({
|
|
11553
|
+
success: z75.literal(true)
|
|
11489
11554
|
});
|
|
11490
11555
|
var buildConfigSchema = StoredAgentConfigSchemaV2;
|
|
11491
11556
|
var DEFAULT_NEW_AGENT_NAME = DEFAULT_AGENT_NAME;
|
|
@@ -11935,29 +12000,29 @@ function registerAgentsEvalScores(agents) {
|
|
|
11935
12000
|
__name(registerAgentsEvalScores, "registerAgentsEvalScores");
|
|
11936
12001
|
|
|
11937
12002
|
// src/api/build-schemas.ts
|
|
11938
|
-
import { z as
|
|
11939
|
-
var publicBuildSchema2 =
|
|
11940
|
-
id:
|
|
11941
|
-
agent_id:
|
|
11942
|
-
name:
|
|
11943
|
-
status:
|
|
12003
|
+
import { z as z76 } from "zod";
|
|
12004
|
+
var publicBuildSchema2 = z76.object({
|
|
12005
|
+
id: z76.string(),
|
|
12006
|
+
agent_id: z76.string(),
|
|
12007
|
+
name: z76.string(),
|
|
12008
|
+
status: z76.string().nullish(),
|
|
11944
12009
|
config: jsonValueSchema.nullish(),
|
|
11945
|
-
revision_number:
|
|
11946
|
-
created_at:
|
|
11947
|
-
updated_at:
|
|
12010
|
+
revision_number: z76.number().nullish(),
|
|
12011
|
+
created_at: z76.string().nullish(),
|
|
12012
|
+
updated_at: z76.string().nullish()
|
|
11948
12013
|
});
|
|
11949
|
-
var listBuildsResponseSchema2 =
|
|
11950
|
-
builds:
|
|
11951
|
-
total:
|
|
11952
|
-
limit:
|
|
11953
|
-
offset:
|
|
12014
|
+
var listBuildsResponseSchema2 = z76.object({
|
|
12015
|
+
builds: z76.array(publicBuildSchema2),
|
|
12016
|
+
total: z76.number().nullish(),
|
|
12017
|
+
limit: z76.number().nullish(),
|
|
12018
|
+
offset: z76.number().nullish()
|
|
11954
12019
|
});
|
|
11955
|
-
var getBuildResponseSchema =
|
|
12020
|
+
var getBuildResponseSchema = z76.object({
|
|
11956
12021
|
build: publicBuildSchema2
|
|
11957
12022
|
});
|
|
11958
|
-
var createBuildResponseSchema =
|
|
12023
|
+
var createBuildResponseSchema = z76.object({
|
|
11959
12024
|
build: publicBuildSchema2,
|
|
11960
|
-
agent:
|
|
12025
|
+
agent: z76.object({ id: z76.string() })
|
|
11961
12026
|
});
|
|
11962
12027
|
|
|
11963
12028
|
// src/commands/agents/get.ts
|
|
@@ -12207,30 +12272,30 @@ function registerAgentsModels(agents) {
|
|
|
12207
12272
|
__name(registerAgentsModels, "registerAgentsModels");
|
|
12208
12273
|
|
|
12209
12274
|
// src/api/schedule-schemas.ts
|
|
12210
|
-
import { z as
|
|
12211
|
-
var publicScheduleSchema =
|
|
12212
|
-
id:
|
|
12213
|
-
build_id:
|
|
12214
|
-
agent_id:
|
|
12215
|
-
user_id:
|
|
12216
|
-
enabled:
|
|
12217
|
-
frequency:
|
|
12218
|
-
time:
|
|
12219
|
-
timezone:
|
|
12220
|
-
day:
|
|
12221
|
-
day_of_month:
|
|
12222
|
-
cron:
|
|
12223
|
-
source:
|
|
12224
|
-
task:
|
|
12225
|
-
recurring:
|
|
12226
|
-
created_at:
|
|
12227
|
-
updated_at:
|
|
12228
|
-
});
|
|
12229
|
-
var listSchedulesResponseSchema =
|
|
12230
|
-
schedules:
|
|
12231
|
-
});
|
|
12232
|
-
var deleteScheduleResponseSchema =
|
|
12233
|
-
success:
|
|
12275
|
+
import { z as z77 } from "zod";
|
|
12276
|
+
var publicScheduleSchema = z77.object({
|
|
12277
|
+
id: z77.string(),
|
|
12278
|
+
build_id: z77.string(),
|
|
12279
|
+
agent_id: z77.string(),
|
|
12280
|
+
user_id: z77.string(),
|
|
12281
|
+
enabled: z77.boolean(),
|
|
12282
|
+
frequency: z77.string(),
|
|
12283
|
+
time: z77.string().nullish(),
|
|
12284
|
+
timezone: z77.string(),
|
|
12285
|
+
day: z77.string().nullish(),
|
|
12286
|
+
day_of_month: z77.number().nullish(),
|
|
12287
|
+
cron: z77.string().nullish(),
|
|
12288
|
+
source: z77.string().nullish(),
|
|
12289
|
+
task: z77.string().nullish(),
|
|
12290
|
+
recurring: z77.boolean().nullish(),
|
|
12291
|
+
created_at: z77.string(),
|
|
12292
|
+
updated_at: z77.string()
|
|
12293
|
+
});
|
|
12294
|
+
var listSchedulesResponseSchema = z77.object({
|
|
12295
|
+
schedules: z77.array(publicScheduleSchema)
|
|
12296
|
+
});
|
|
12297
|
+
var deleteScheduleResponseSchema = z77.object({
|
|
12298
|
+
success: z77.literal(true)
|
|
12234
12299
|
});
|
|
12235
12300
|
|
|
12236
12301
|
// src/commands/agents/schedules/render-schedule.ts
|
|
@@ -12678,33 +12743,33 @@ function registerAgentsSetModel(agents) {
|
|
|
12678
12743
|
__name(registerAgentsSetModel, "registerAgentsSetModel");
|
|
12679
12744
|
|
|
12680
12745
|
// src/api/trigger-schemas.ts
|
|
12681
|
-
import { z as
|
|
12682
|
-
var triggerSchema =
|
|
12683
|
-
id:
|
|
12684
|
-
agent_id:
|
|
12685
|
-
user_id:
|
|
12686
|
-
integration_slug:
|
|
12687
|
-
trigger_type:
|
|
12688
|
-
filter_config:
|
|
12689
|
-
integration_instance_id:
|
|
12690
|
-
enabled:
|
|
12691
|
-
created_at:
|
|
12692
|
-
updated_at:
|
|
12746
|
+
import { z as z78 } from "zod";
|
|
12747
|
+
var triggerSchema = z78.object({
|
|
12748
|
+
id: z78.string(),
|
|
12749
|
+
agent_id: z78.string(),
|
|
12750
|
+
user_id: z78.string(),
|
|
12751
|
+
integration_slug: z78.string(),
|
|
12752
|
+
trigger_type: z78.string(),
|
|
12753
|
+
filter_config: z78.record(z78.string(), z78.unknown()),
|
|
12754
|
+
integration_instance_id: z78.string(),
|
|
12755
|
+
enabled: z78.boolean(),
|
|
12756
|
+
created_at: z78.string(),
|
|
12757
|
+
updated_at: z78.string()
|
|
12693
12758
|
});
|
|
12694
|
-
var listTriggersResponseSchema =
|
|
12695
|
-
triggers:
|
|
12759
|
+
var listTriggersResponseSchema = z78.object({
|
|
12760
|
+
triggers: z78.array(triggerSchema)
|
|
12696
12761
|
});
|
|
12697
|
-
var triggerTypeSchema =
|
|
12698
|
-
integration_slug:
|
|
12699
|
-
integration_name:
|
|
12700
|
-
icon_url:
|
|
12701
|
-
trigger_type:
|
|
12702
|
-
label:
|
|
12703
|
-
description:
|
|
12704
|
-
filter_schema:
|
|
12762
|
+
var triggerTypeSchema = z78.object({
|
|
12763
|
+
integration_slug: z78.string(),
|
|
12764
|
+
integration_name: z78.string(),
|
|
12765
|
+
icon_url: z78.string(),
|
|
12766
|
+
trigger_type: z78.string(),
|
|
12767
|
+
label: z78.string(),
|
|
12768
|
+
description: z78.string(),
|
|
12769
|
+
filter_schema: z78.record(z78.string(), z78.unknown())
|
|
12705
12770
|
});
|
|
12706
|
-
var listTriggerTypesResponseSchema =
|
|
12707
|
-
trigger_types:
|
|
12771
|
+
var listTriggerTypesResponseSchema = z78.object({
|
|
12772
|
+
trigger_types: z78.array(triggerTypeSchema)
|
|
12708
12773
|
});
|
|
12709
12774
|
|
|
12710
12775
|
// src/commands/agents/triggers/list.ts
|
|
@@ -13328,55 +13393,55 @@ function fieldsToSearchParams(fields) {
|
|
|
13328
13393
|
__name(fieldsToSearchParams, "fieldsToSearchParams");
|
|
13329
13394
|
|
|
13330
13395
|
// src/api/integration-schemas.ts
|
|
13331
|
-
import { z as
|
|
13332
|
-
var integrationSchema =
|
|
13333
|
-
id:
|
|
13334
|
-
name:
|
|
13335
|
-
type:
|
|
13336
|
-
provider:
|
|
13337
|
-
user_id:
|
|
13338
|
-
team_id:
|
|
13339
|
-
server_url:
|
|
13340
|
-
transport_type:
|
|
13341
|
-
auth_method:
|
|
13342
|
-
composio_mcp_id:
|
|
13343
|
-
custom_integration_id:
|
|
13344
|
-
icon_url:
|
|
13345
|
-
oauth_provider:
|
|
13346
|
-
oauth_provider_key:
|
|
13347
|
-
oauth_scopes:
|
|
13348
|
-
integration_id:
|
|
13349
|
-
created_at:
|
|
13350
|
-
updated_at:
|
|
13351
|
-
});
|
|
13352
|
-
var integrationsListResponseSchema2 =
|
|
13353
|
-
integrations:
|
|
13396
|
+
import { z as z79 } from "zod";
|
|
13397
|
+
var integrationSchema = z79.object({
|
|
13398
|
+
id: z79.string(),
|
|
13399
|
+
name: z79.string(),
|
|
13400
|
+
type: z79.string(),
|
|
13401
|
+
provider: z79.string(),
|
|
13402
|
+
user_id: z79.string().nullable(),
|
|
13403
|
+
team_id: z79.string(),
|
|
13404
|
+
server_url: z79.string().optional(),
|
|
13405
|
+
transport_type: z79.string().optional(),
|
|
13406
|
+
auth_method: z79.string().nullish(),
|
|
13407
|
+
composio_mcp_id: z79.string().nullish(),
|
|
13408
|
+
custom_integration_id: z79.string().nullish(),
|
|
13409
|
+
icon_url: z79.string().nullish(),
|
|
13410
|
+
oauth_provider: z79.string().nullish(),
|
|
13411
|
+
oauth_provider_key: z79.string().nullish(),
|
|
13412
|
+
oauth_scopes: z79.array(z79.string()).nullish(),
|
|
13413
|
+
integration_id: z79.string().nullish(),
|
|
13414
|
+
created_at: z79.string(),
|
|
13415
|
+
updated_at: z79.string()
|
|
13416
|
+
});
|
|
13417
|
+
var integrationsListResponseSchema2 = z79.object({
|
|
13418
|
+
integrations: z79.array(integrationSchema)
|
|
13354
13419
|
});
|
|
13355
13420
|
var connectionResponseSchema = integrationSchema;
|
|
13356
|
-
var buildIntegrationConfigSchema2 =
|
|
13357
|
-
id:
|
|
13358
|
-
integration_id:
|
|
13359
|
-
custom_integration_id:
|
|
13360
|
-
integration_type:
|
|
13361
|
-
integration_name:
|
|
13362
|
-
created_at:
|
|
13421
|
+
var buildIntegrationConfigSchema2 = z79.object({
|
|
13422
|
+
id: z79.string(),
|
|
13423
|
+
integration_id: z79.string().nullable(),
|
|
13424
|
+
custom_integration_id: z79.string().nullable(),
|
|
13425
|
+
integration_type: z79.string(),
|
|
13426
|
+
integration_name: z79.string(),
|
|
13427
|
+
created_at: z79.string()
|
|
13363
13428
|
});
|
|
13364
|
-
var listBuildIntegrationsResponseSchema2 =
|
|
13365
|
-
integrations:
|
|
13429
|
+
var listBuildIntegrationsResponseSchema2 = z79.object({
|
|
13430
|
+
integrations: z79.array(buildIntegrationConfigSchema2)
|
|
13366
13431
|
});
|
|
13367
|
-
var attachBuildIntegrationsResponseSchema =
|
|
13368
|
-
success:
|
|
13369
|
-
count:
|
|
13432
|
+
var attachBuildIntegrationsResponseSchema = z79.object({
|
|
13433
|
+
success: z79.boolean(),
|
|
13434
|
+
count: z79.number()
|
|
13370
13435
|
});
|
|
13371
|
-
var buildIntegrationConnectionSchema =
|
|
13372
|
-
connection_id:
|
|
13373
|
-
created_at:
|
|
13436
|
+
var buildIntegrationConnectionSchema = z79.object({
|
|
13437
|
+
connection_id: z79.string(),
|
|
13438
|
+
created_at: z79.string()
|
|
13374
13439
|
});
|
|
13375
|
-
var listBuildIntegrationConnectionsResponseSchema =
|
|
13376
|
-
connections:
|
|
13440
|
+
var listBuildIntegrationConnectionsResponseSchema = z79.object({
|
|
13441
|
+
connections: z79.array(buildIntegrationConnectionSchema)
|
|
13377
13442
|
});
|
|
13378
|
-
var successResponseSchema =
|
|
13379
|
-
success:
|
|
13443
|
+
var successResponseSchema = z79.object({
|
|
13444
|
+
success: z79.boolean()
|
|
13380
13445
|
});
|
|
13381
13446
|
|
|
13382
13447
|
// src/commands/build-integrations/attach.ts
|
|
@@ -13419,15 +13484,15 @@ function registerBuildIntegrationsAttach(buildIntegrations) {
|
|
|
13419
13484
|
__name(registerBuildIntegrationsAttach, "registerBuildIntegrationsAttach");
|
|
13420
13485
|
|
|
13421
13486
|
// src/commands/build-integrations/case-queue-setup.ts
|
|
13422
|
-
import { z as
|
|
13423
|
-
var slotSchema =
|
|
13424
|
-
config_id:
|
|
13425
|
-
integration_type:
|
|
13426
|
-
linked_queue_count:
|
|
13487
|
+
import { z as z80 } from "zod";
|
|
13488
|
+
var slotSchema = z80.object({
|
|
13489
|
+
config_id: z80.string(),
|
|
13490
|
+
integration_type: z80.string(),
|
|
13491
|
+
linked_queue_count: z80.number()
|
|
13427
13492
|
});
|
|
13428
|
-
var responseSchema2 =
|
|
13429
|
-
configs:
|
|
13430
|
-
has_available_queues:
|
|
13493
|
+
var responseSchema2 = z80.object({
|
|
13494
|
+
configs: z80.array(slotSchema),
|
|
13495
|
+
has_available_queues: z80.boolean()
|
|
13431
13496
|
});
|
|
13432
13497
|
var TABLE_COLUMNS10 = [
|
|
13433
13498
|
{ header: "SLOT ID", cell: /* @__PURE__ */ __name((row) => row.config_id, "cell") },
|
|
@@ -13922,9 +13987,9 @@ function registerBuildsList(builds) {
|
|
|
13922
13987
|
__name(registerBuildsList, "registerBuildsList");
|
|
13923
13988
|
|
|
13924
13989
|
// src/commands/builds/promote.ts
|
|
13925
|
-
import { z as
|
|
13926
|
-
var promoteResponseSchema =
|
|
13927
|
-
success:
|
|
13990
|
+
import { z as z81 } from "zod";
|
|
13991
|
+
var promoteResponseSchema = z81.object({
|
|
13992
|
+
success: z81.boolean()
|
|
13928
13993
|
});
|
|
13929
13994
|
function registerBuildsPromote(builds) {
|
|
13930
13995
|
builds.command("promote <id>").description(
|
|
@@ -14935,7 +15000,7 @@ function parseSortOrder(raw) {
|
|
|
14935
15000
|
__name(parseSortOrder, "parseSortOrder");
|
|
14936
15001
|
|
|
14937
15002
|
// src/commands/cases/runs.ts
|
|
14938
|
-
import { z as
|
|
15003
|
+
import { z as z82 } from "zod";
|
|
14939
15004
|
var MIN_LIMIT4 = 1;
|
|
14940
15005
|
var MAX_LIMIT4 = 10;
|
|
14941
15006
|
var DEFAULT_LIMIT4 = 3;
|
|
@@ -14953,17 +15018,17 @@ var RUNS_TABLE_COLUMNS = [
|
|
|
14953
15018
|
cell: /* @__PURE__ */ __name((row) => row.has_pending_human_request ? row.pending_human_request_title ?? "(unknown)" : "", "cell")
|
|
14954
15019
|
}
|
|
14955
15020
|
];
|
|
14956
|
-
var recentMessageSchema =
|
|
14957
|
-
id:
|
|
14958
|
-
type:
|
|
14959
|
-
role:
|
|
14960
|
-
timestamp:
|
|
14961
|
-
text_content:
|
|
14962
|
-
tool_call:
|
|
14963
|
-
tool_result:
|
|
14964
|
-
});
|
|
14965
|
-
var recentMessagesResponseSchema =
|
|
14966
|
-
messages:
|
|
15021
|
+
var recentMessageSchema = z82.object({
|
|
15022
|
+
id: z82.string(),
|
|
15023
|
+
type: z82.string(),
|
|
15024
|
+
role: z82.string(),
|
|
15025
|
+
timestamp: z82.string(),
|
|
15026
|
+
text_content: z82.string().nullish(),
|
|
15027
|
+
tool_call: z82.object({ id: z82.string(), name: z82.string() }).passthrough().nullish(),
|
|
15028
|
+
tool_result: z82.object({ tool_call_id: z82.string() }).passthrough().nullish()
|
|
15029
|
+
});
|
|
15030
|
+
var recentMessagesResponseSchema = z82.object({
|
|
15031
|
+
messages: z82.array(recentMessageSchema)
|
|
14967
15032
|
});
|
|
14968
15033
|
var TEXT_PREVIEW_WIDTH = 60;
|
|
14969
15034
|
var MESSAGES_TABLE_COLUMNS = [
|
|
@@ -15092,55 +15157,55 @@ function registerCases(program) {
|
|
|
15092
15157
|
__name(registerCases, "registerCases");
|
|
15093
15158
|
|
|
15094
15159
|
// src/api/clarity-schemas.ts
|
|
15095
|
-
import { z as
|
|
15096
|
-
var clarityListProcessSchema =
|
|
15097
|
-
id:
|
|
15098
|
-
name:
|
|
15160
|
+
import { z as z83 } from "zod";
|
|
15161
|
+
var clarityListProcessSchema = z83.object({
|
|
15162
|
+
id: z83.guid(),
|
|
15163
|
+
name: z83.string(),
|
|
15099
15164
|
status: clarityProcessStatusSchema,
|
|
15100
15165
|
visibility: clarityProcessVisibilitySchema,
|
|
15101
|
-
version:
|
|
15102
|
-
capture_count:
|
|
15103
|
-
capture_counts:
|
|
15104
|
-
video:
|
|
15105
|
-
interview:
|
|
15106
|
-
document:
|
|
15166
|
+
version: z83.number().int(),
|
|
15167
|
+
capture_count: z83.number().int(),
|
|
15168
|
+
capture_counts: z83.object({
|
|
15169
|
+
video: z83.number().int(),
|
|
15170
|
+
interview: z83.number().int(),
|
|
15171
|
+
document: z83.number().int()
|
|
15107
15172
|
}).optional(),
|
|
15108
|
-
pending_invitation_count:
|
|
15109
|
-
contributors:
|
|
15110
|
-
|
|
15111
|
-
user_id:
|
|
15112
|
-
user_name:
|
|
15173
|
+
pending_invitation_count: z83.number().int(),
|
|
15174
|
+
contributors: z83.array(
|
|
15175
|
+
z83.object({
|
|
15176
|
+
user_id: z83.string(),
|
|
15177
|
+
user_name: z83.string()
|
|
15113
15178
|
})
|
|
15114
15179
|
),
|
|
15115
|
-
created_at:
|
|
15116
|
-
created_by_name:
|
|
15117
|
-
});
|
|
15118
|
-
var listClarityProcessesResponseSchema =
|
|
15119
|
-
processes:
|
|
15120
|
-
total:
|
|
15121
|
-
limit:
|
|
15122
|
-
offset:
|
|
15123
|
-
});
|
|
15124
|
-
var createClarityInviteLinkResponseSchema =
|
|
15125
|
-
invite_link:
|
|
15126
|
-
id:
|
|
15127
|
-
url:
|
|
15128
|
-
created_at:
|
|
15129
|
-
created_by:
|
|
15130
|
-
id:
|
|
15131
|
-
email:
|
|
15180
|
+
created_at: z83.string(),
|
|
15181
|
+
created_by_name: z83.string().nullable()
|
|
15182
|
+
});
|
|
15183
|
+
var listClarityProcessesResponseSchema = z83.object({
|
|
15184
|
+
processes: z83.array(clarityListProcessSchema),
|
|
15185
|
+
total: z83.number().int(),
|
|
15186
|
+
limit: z83.number().int(),
|
|
15187
|
+
offset: z83.number().int()
|
|
15188
|
+
});
|
|
15189
|
+
var createClarityInviteLinkResponseSchema = z83.object({
|
|
15190
|
+
invite_link: z83.object({
|
|
15191
|
+
id: z83.guid(),
|
|
15192
|
+
url: z83.url(),
|
|
15193
|
+
created_at: z83.string(),
|
|
15194
|
+
created_by: z83.object({
|
|
15195
|
+
id: z83.guid(),
|
|
15196
|
+
email: z83.email().nullable()
|
|
15132
15197
|
})
|
|
15133
15198
|
})
|
|
15134
15199
|
});
|
|
15135
|
-
var createArtifactImportUploadUrlResponseSchema =
|
|
15136
|
-
signed_url:
|
|
15137
|
-
capture_id:
|
|
15138
|
-
expires_at:
|
|
15200
|
+
var createArtifactImportUploadUrlResponseSchema = z83.object({
|
|
15201
|
+
signed_url: z83.url(),
|
|
15202
|
+
capture_id: z83.guid(),
|
|
15203
|
+
expires_at: z83.iso.datetime()
|
|
15139
15204
|
});
|
|
15140
|
-
var completeArtifactImportResponseSchema =
|
|
15205
|
+
var completeArtifactImportResponseSchema = z83.object({
|
|
15141
15206
|
capture: clarityCaptureSchema.extend({
|
|
15142
|
-
createdAt:
|
|
15143
|
-
updatedAt:
|
|
15207
|
+
createdAt: z83.iso.datetime(),
|
|
15208
|
+
updatedAt: z83.iso.datetime()
|
|
15144
15209
|
})
|
|
15145
15210
|
});
|
|
15146
15211
|
var legacyClarityProcessResponseSchema = legacyClarityProcessDetailSchema;
|
|
@@ -15579,8 +15644,8 @@ function renderCompletedImport(response) {
|
|
|
15579
15644
|
__name(renderCompletedImport, "renderCompletedImport");
|
|
15580
15645
|
|
|
15581
15646
|
// src/commands/clarity/assign-extra-capture-request.ts
|
|
15582
|
-
import { z as
|
|
15583
|
-
var responseSchema3 =
|
|
15647
|
+
import { z as z84 } from "zod";
|
|
15648
|
+
var responseSchema3 = z84.object({
|
|
15584
15649
|
request: clarityProposalExtraCaptureRequestSchema
|
|
15585
15650
|
});
|
|
15586
15651
|
function renderRequest(request) {
|
|
@@ -15627,11 +15692,11 @@ function registerClarityAssignExtraCaptureRequest(clarity) {
|
|
|
15627
15692
|
__name(registerClarityAssignExtraCaptureRequest, "registerClarityAssignExtraCaptureRequest");
|
|
15628
15693
|
|
|
15629
15694
|
// src/commands/clarity/build-automation.ts
|
|
15630
|
-
import { z as
|
|
15631
|
-
var responseSchema4 =
|
|
15632
|
-
automation_run:
|
|
15633
|
-
id:
|
|
15634
|
-
status:
|
|
15695
|
+
import { z as z85 } from "zod";
|
|
15696
|
+
var responseSchema4 = z85.object({
|
|
15697
|
+
automation_run: z85.object({
|
|
15698
|
+
id: z85.string(),
|
|
15699
|
+
status: z85.string()
|
|
15635
15700
|
})
|
|
15636
15701
|
});
|
|
15637
15702
|
function registerClarityBuildAutomation(clarity) {
|
|
@@ -15702,7 +15767,7 @@ function registerClarityCreateInviteLink(clarity) {
|
|
|
15702
15767
|
__name(registerClarityCreateInviteLink, "registerClarityCreateInviteLink");
|
|
15703
15768
|
|
|
15704
15769
|
// src/commands/clarity/doctor.ts
|
|
15705
|
-
import { z as
|
|
15770
|
+
import { z as z86 } from "zod";
|
|
15706
15771
|
|
|
15707
15772
|
// src/commands/clarity/render.ts
|
|
15708
15773
|
var DEFAULT_HUMAN_SUMMARY_LIMIT = 1200;
|
|
@@ -16934,6 +16999,19 @@ var CLARITY_READ_TOOLS = [
|
|
|
16934
16999
|
}
|
|
16935
17000
|
],
|
|
16936
17001
|
description: "Read messages for one artifact-chat conversation in a v2 process."
|
|
17002
|
+
},
|
|
17003
|
+
{
|
|
17004
|
+
name: "listClarityProcessLinks",
|
|
17005
|
+
scope: "v1+v2",
|
|
17006
|
+
read_only: true,
|
|
17007
|
+
commands: ["duvo clarity process-links list"],
|
|
17008
|
+
endpoints: [
|
|
17009
|
+
{
|
|
17010
|
+
method: "GET",
|
|
17011
|
+
path: "/v2/teams/:teamId/clarity/hierarchy/process-links"
|
|
17012
|
+
}
|
|
17013
|
+
],
|
|
17014
|
+
description: "List process-to-process links in the Clarity process landscape."
|
|
16937
17015
|
}
|
|
16938
17016
|
];
|
|
16939
17017
|
var CLARITY_WRITE_TOOLS = [
|
|
@@ -17131,6 +17209,45 @@ var CLARITY_WRITE_TOOLS = [
|
|
|
17131
17209
|
}
|
|
17132
17210
|
],
|
|
17133
17211
|
description: "Upload and complete a local Miro SVG, XML, PNG, or JPEG export."
|
|
17212
|
+
},
|
|
17213
|
+
{
|
|
17214
|
+
name: "createClarityProcessLink",
|
|
17215
|
+
scope: "v1+v2",
|
|
17216
|
+
read_only: false,
|
|
17217
|
+
commands: ["duvo clarity process-links create"],
|
|
17218
|
+
endpoints: [
|
|
17219
|
+
{
|
|
17220
|
+
method: "POST",
|
|
17221
|
+
path: "/v2/teams/:teamId/clarity/hierarchy/process-links"
|
|
17222
|
+
}
|
|
17223
|
+
],
|
|
17224
|
+
description: "Create a process-to-process link in the Clarity landscape."
|
|
17225
|
+
},
|
|
17226
|
+
{
|
|
17227
|
+
name: "updateClarityProcessLink",
|
|
17228
|
+
scope: "v1+v2",
|
|
17229
|
+
read_only: false,
|
|
17230
|
+
commands: ["duvo clarity process-links update"],
|
|
17231
|
+
endpoints: [
|
|
17232
|
+
{
|
|
17233
|
+
method: "PATCH",
|
|
17234
|
+
path: "/v2/teams/:teamId/clarity/hierarchy/process-links/:process_link_id"
|
|
17235
|
+
}
|
|
17236
|
+
],
|
|
17237
|
+
description: "Update a process-to-process link in the Clarity landscape."
|
|
17238
|
+
},
|
|
17239
|
+
{
|
|
17240
|
+
name: "deleteClarityProcessLink",
|
|
17241
|
+
scope: "v1+v2",
|
|
17242
|
+
read_only: false,
|
|
17243
|
+
commands: ["duvo clarity process-links delete"],
|
|
17244
|
+
endpoints: [
|
|
17245
|
+
{
|
|
17246
|
+
method: "DELETE",
|
|
17247
|
+
path: "/v2/teams/:teamId/clarity/hierarchy/process-links/:process_link_id"
|
|
17248
|
+
}
|
|
17249
|
+
],
|
|
17250
|
+
description: "Delete a process-to-process link from the Clarity landscape."
|
|
17134
17251
|
}
|
|
17135
17252
|
];
|
|
17136
17253
|
var CLARITY_TOOLS = [
|
|
@@ -17160,7 +17277,7 @@ function registerClarityTools(clarity) {
|
|
|
17160
17277
|
console.log(renderTable(CLARITY_TOOL_COLUMNS, CLARITY_TOOLS));
|
|
17161
17278
|
console.log("");
|
|
17162
17279
|
console.log(
|
|
17163
|
-
"Clarity tools include read-only GET calls and explicit write commands for generation, promotion, revert, assignment, postprocess, automation, artifact import, and
|
|
17280
|
+
"Clarity tools include read-only GET calls and explicit write commands for generation, promotion, revert, assignment, postprocess, automation, artifact import, invite links, and process links."
|
|
17164
17281
|
);
|
|
17165
17282
|
});
|
|
17166
17283
|
}
|
|
@@ -17303,8 +17420,8 @@ async function buildTeamContextCheck(config) {
|
|
|
17303
17420
|
}
|
|
17304
17421
|
}
|
|
17305
17422
|
__name(buildTeamContextCheck, "buildTeamContextCheck");
|
|
17306
|
-
var listMyTeamsResponseSchema2 =
|
|
17307
|
-
teams:
|
|
17423
|
+
var listMyTeamsResponseSchema2 = z86.object({
|
|
17424
|
+
teams: z86.array(z86.object({ id: z86.string() }))
|
|
17308
17425
|
});
|
|
17309
17426
|
async function buildClarityApiReachableCheck(command, config) {
|
|
17310
17427
|
let teamId;
|
|
@@ -17922,19 +18039,19 @@ function buildGenerateTransformationProposalBody(options) {
|
|
|
17922
18039
|
__name(buildGenerateTransformationProposalBody, "buildGenerateTransformationProposalBody");
|
|
17923
18040
|
|
|
17924
18041
|
// src/commands/clarity/get-current-process.ts
|
|
17925
|
-
import { z as
|
|
17926
|
-
var snapshotSchema =
|
|
17927
|
-
snapshot:
|
|
17928
|
-
id:
|
|
17929
|
-
kind:
|
|
17930
|
-
source_snapshot_id:
|
|
17931
|
-
parent_id:
|
|
17932
|
-
status:
|
|
17933
|
-
creator_type:
|
|
17934
|
-
user_id:
|
|
17935
|
-
sandbox_id:
|
|
17936
|
-
created_at:
|
|
17937
|
-
updated_at:
|
|
18042
|
+
import { z as z87 } from "zod";
|
|
18043
|
+
var snapshotSchema = z87.object({
|
|
18044
|
+
snapshot: z87.object({
|
|
18045
|
+
id: z87.string(),
|
|
18046
|
+
kind: z87.string(),
|
|
18047
|
+
source_snapshot_id: z87.string().nullable(),
|
|
18048
|
+
parent_id: z87.string().nullable(),
|
|
18049
|
+
status: z87.string(),
|
|
18050
|
+
creator_type: z87.string(),
|
|
18051
|
+
user_id: z87.string().nullable(),
|
|
18052
|
+
sandbox_id: z87.string().nullable(),
|
|
18053
|
+
created_at: z87.string(),
|
|
18054
|
+
updated_at: z87.string()
|
|
17938
18055
|
})
|
|
17939
18056
|
});
|
|
17940
18057
|
function registerClarityGetCurrentProcess(clarity) {
|
|
@@ -17978,19 +18095,19 @@ function registerClarityGetCurrentProcess(clarity) {
|
|
|
17978
18095
|
__name(registerClarityGetCurrentProcess, "registerClarityGetCurrentProcess");
|
|
17979
18096
|
|
|
17980
18097
|
// src/commands/clarity/get-transformation-proposal.ts
|
|
17981
|
-
import { z as
|
|
17982
|
-
var snapshotSchema2 =
|
|
17983
|
-
snapshot:
|
|
17984
|
-
id:
|
|
17985
|
-
kind:
|
|
17986
|
-
source_snapshot_id:
|
|
17987
|
-
parent_id:
|
|
17988
|
-
status:
|
|
17989
|
-
creator_type:
|
|
17990
|
-
user_id:
|
|
17991
|
-
sandbox_id:
|
|
17992
|
-
created_at:
|
|
17993
|
-
updated_at:
|
|
18098
|
+
import { z as z88 } from "zod";
|
|
18099
|
+
var snapshotSchema2 = z88.object({
|
|
18100
|
+
snapshot: z88.object({
|
|
18101
|
+
id: z88.string(),
|
|
18102
|
+
kind: z88.string(),
|
|
18103
|
+
source_snapshot_id: z88.string().nullable(),
|
|
18104
|
+
parent_id: z88.string().nullable(),
|
|
18105
|
+
status: z88.string(),
|
|
18106
|
+
creator_type: z88.string(),
|
|
18107
|
+
user_id: z88.string().nullable(),
|
|
18108
|
+
sandbox_id: z88.string().nullable(),
|
|
18109
|
+
created_at: z88.string(),
|
|
18110
|
+
updated_at: z88.string()
|
|
17994
18111
|
})
|
|
17995
18112
|
});
|
|
17996
18113
|
function registerClarityGetTransformationProposal(clarity) {
|
|
@@ -18187,39 +18304,267 @@ function registerClarityPostprocess(clarity) {
|
|
|
18187
18304
|
}
|
|
18188
18305
|
__name(registerClarityPostprocess, "registerClarityPostprocess");
|
|
18189
18306
|
|
|
18190
|
-
// src/commands/clarity/
|
|
18191
|
-
import { z as
|
|
18192
|
-
var
|
|
18193
|
-
|
|
18194
|
-
|
|
18195
|
-
|
|
18196
|
-
|
|
18197
|
-
|
|
18198
|
-
|
|
18199
|
-
|
|
18200
|
-
|
|
18201
|
-
|
|
18202
|
-
|
|
18203
|
-
|
|
18307
|
+
// src/commands/clarity/process-links.ts
|
|
18308
|
+
import { z as z89 } from "zod";
|
|
18309
|
+
var MIN_LIMIT6 = 1;
|
|
18310
|
+
var MAX_LIMIT6 = 500;
|
|
18311
|
+
var DEFAULT_LIMIT6 = 100;
|
|
18312
|
+
var PROCESS_LINKS_RESOURCE_PATH = "/clarity/hierarchy/process-links";
|
|
18313
|
+
var processLinkTypeSchema = z89.enum([
|
|
18314
|
+
"hands_off_to",
|
|
18315
|
+
"shares_step_with",
|
|
18316
|
+
"variant_of"
|
|
18317
|
+
]);
|
|
18318
|
+
var processLinkStateSchema = z89.enum(["suggested", "confirmed"]);
|
|
18319
|
+
var processLinkSchema = z89.object({
|
|
18320
|
+
id: z89.string(),
|
|
18321
|
+
source_node_id: z89.string(),
|
|
18322
|
+
target_node_id: z89.string(),
|
|
18323
|
+
type: processLinkTypeSchema,
|
|
18324
|
+
state: processLinkStateSchema,
|
|
18325
|
+
confidence: z89.number().nullable(),
|
|
18326
|
+
created_at: z89.string(),
|
|
18327
|
+
updated_at: z89.string()
|
|
18328
|
+
});
|
|
18329
|
+
var listProcessLinksResponseSchema = z89.object({
|
|
18330
|
+
process_links: z89.array(processLinkSchema),
|
|
18331
|
+
total: z89.number(),
|
|
18332
|
+
limit: z89.number(),
|
|
18333
|
+
offset: z89.number()
|
|
18334
|
+
});
|
|
18335
|
+
var processLinkMutationResponseSchema = z89.object({
|
|
18336
|
+
process_link: processLinkSchema,
|
|
18337
|
+
created: z89.boolean().optional()
|
|
18338
|
+
});
|
|
18339
|
+
var deleteProcessLinkResponseSchema = z89.object({
|
|
18340
|
+
deleted: z89.boolean()
|
|
18341
|
+
});
|
|
18342
|
+
var PROCESS_LINK_COLUMNS = [
|
|
18343
|
+
{ header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell"), maxWidth: 36 },
|
|
18344
|
+
{
|
|
18345
|
+
header: "SOURCE",
|
|
18346
|
+
cell: /* @__PURE__ */ __name((row) => row.source_node_id, "cell"),
|
|
18347
|
+
maxWidth: 36
|
|
18348
|
+
},
|
|
18349
|
+
{
|
|
18350
|
+
header: "TARGET",
|
|
18351
|
+
cell: /* @__PURE__ */ __name((row) => row.target_node_id, "cell"),
|
|
18352
|
+
maxWidth: 36
|
|
18353
|
+
},
|
|
18354
|
+
{ header: "TYPE", cell: /* @__PURE__ */ __name((row) => row.type, "cell") },
|
|
18355
|
+
{ header: "STATE", cell: /* @__PURE__ */ __name((row) => row.state, "cell") },
|
|
18356
|
+
{
|
|
18357
|
+
header: "CONF",
|
|
18358
|
+
cell: /* @__PURE__ */ __name((row) => row.confidence === null ? "-" : row.confidence.toFixed(2), "cell")
|
|
18359
|
+
}
|
|
18360
|
+
];
|
|
18361
|
+
function registerClarityProcessLinks(clarity) {
|
|
18362
|
+
const processLinks = clarity.command("process-links").description("Manage Clarity process links");
|
|
18363
|
+
processLinks.command("list", { isDefault: true }).description("List process links in the current team").option("--node <node-id>", "only show links touching this process node").option("--limit <n>", `page size (${MIN_LIMIT6}-${MAX_LIMIT6})`).option("--offset <n>", "number of links to skip").option("--json", "output JSON").action(/* @__PURE__ */ __name(async function listAction(options) {
|
|
18364
|
+
const config = await requireAuthenticatedConfig(this);
|
|
18365
|
+
const path = await resolveProcessLinksPath(this, config);
|
|
18366
|
+
const response = await listProcessLinks(config, path, options);
|
|
18367
|
+
if (options.json) {
|
|
18368
|
+
printJson(response);
|
|
18369
|
+
return;
|
|
18370
|
+
}
|
|
18371
|
+
renderProcessLinks(response);
|
|
18372
|
+
}, "listAction"));
|
|
18373
|
+
processLinks.command("create").description("Create a process link").requiredOption("--source-node <node-id>", "source process node id").requiredOption("--target-node <node-id>", "target process node id").requiredOption(
|
|
18374
|
+
"--type <type>",
|
|
18375
|
+
"hands_off_to, shares_step_with, or variant_of"
|
|
18376
|
+
).option("--state <state>", "suggested or confirmed").option("--confidence <number>", "confidence score from 0 to 1").option("--json", "output JSON").action(/* @__PURE__ */ __name(async function createAction(options) {
|
|
18377
|
+
const config = await requireAuthenticatedConfig(this);
|
|
18378
|
+
const path = await resolveProcessLinksPath(this, config);
|
|
18379
|
+
const body = buildCreateBody(options);
|
|
18204
18380
|
const raw = await httpRequest({
|
|
18205
18381
|
method: "POST",
|
|
18206
|
-
path
|
|
18207
|
-
apiKey,
|
|
18208
|
-
apiBaseUrl
|
|
18382
|
+
path,
|
|
18383
|
+
apiKey: config.apiKey,
|
|
18384
|
+
apiBaseUrl: config.apiBaseUrl,
|
|
18385
|
+
body
|
|
18209
18386
|
});
|
|
18387
|
+
const response = parseMutationResponse(raw);
|
|
18210
18388
|
if (options.json) {
|
|
18211
|
-
printJson(
|
|
18389
|
+
printJson(response);
|
|
18212
18390
|
return;
|
|
18213
18391
|
}
|
|
18214
|
-
const
|
|
18215
|
-
|
|
18216
|
-
|
|
18217
|
-
|
|
18218
|
-
|
|
18392
|
+
const action = response.created === false ? "Found" : "Created";
|
|
18393
|
+
console.log(`${action} process link: ${response.process_link.id}`);
|
|
18394
|
+
}, "createAction"));
|
|
18395
|
+
processLinks.command("update <link-id>").description("Update a process link").option("--source-node <node-id>", "replacement source process node id").option("--target-node <node-id>", "replacement target process node id").option("--type <type>", "hands_off_to, shares_step_with, or variant_of").option("--state <state>", "suggested or confirmed").option("--confidence <number>", "confidence score from 0 to 1").option("--clear-confidence", "clear the confidence score").option("--json", "output JSON").action(/* @__PURE__ */ __name(async function updateAction(linkId, options) {
|
|
18396
|
+
const config = await requireAuthenticatedConfig(this);
|
|
18397
|
+
const path = await resolveProcessLinksPath(this, config);
|
|
18398
|
+
const body = buildUpdateBody(options);
|
|
18399
|
+
const raw = await httpRequest({
|
|
18400
|
+
method: "PATCH",
|
|
18401
|
+
path: `${path}/${encodeURIComponent(linkId)}`,
|
|
18402
|
+
apiKey: config.apiKey,
|
|
18403
|
+
apiBaseUrl: config.apiBaseUrl,
|
|
18404
|
+
body
|
|
18405
|
+
});
|
|
18406
|
+
const response = parseMutationResponse(raw);
|
|
18407
|
+
if (options.json) {
|
|
18408
|
+
printJson(response);
|
|
18409
|
+
return;
|
|
18219
18410
|
}
|
|
18220
|
-
|
|
18221
|
-
|
|
18222
|
-
|
|
18411
|
+
console.log(`Updated process link: ${response.process_link.id}`);
|
|
18412
|
+
}, "updateAction"));
|
|
18413
|
+
processLinks.command("delete <link-id>").description("Delete a process link").option("--json", "output JSON").action(/* @__PURE__ */ __name(async function deleteAction(linkId, options) {
|
|
18414
|
+
const config = await requireAuthenticatedConfig(this);
|
|
18415
|
+
const path = await resolveProcessLinksPath(this, config);
|
|
18416
|
+
const raw = await httpRequest({
|
|
18417
|
+
method: "DELETE",
|
|
18418
|
+
path: `${path}/${encodeURIComponent(linkId)}`,
|
|
18419
|
+
apiKey: config.apiKey,
|
|
18420
|
+
apiBaseUrl: config.apiBaseUrl
|
|
18421
|
+
});
|
|
18422
|
+
const response = deleteProcessLinkResponseSchema.parse(raw);
|
|
18423
|
+
if (options.json) {
|
|
18424
|
+
printJson(response);
|
|
18425
|
+
return;
|
|
18426
|
+
}
|
|
18427
|
+
console.log(`Deleted process link: ${linkId}`);
|
|
18428
|
+
}, "deleteAction"));
|
|
18429
|
+
}
|
|
18430
|
+
__name(registerClarityProcessLinks, "registerClarityProcessLinks");
|
|
18431
|
+
async function listProcessLinks(config, path, options) {
|
|
18432
|
+
const limit = parseLimit(options.limit, {
|
|
18433
|
+
defaultValue: DEFAULT_LIMIT6,
|
|
18434
|
+
min: MIN_LIMIT6,
|
|
18435
|
+
max: MAX_LIMIT6
|
|
18436
|
+
});
|
|
18437
|
+
const offset = parseOffset(options.offset);
|
|
18438
|
+
const searchParams = new URLSearchParams({
|
|
18439
|
+
limit: String(limit),
|
|
18440
|
+
offset: String(offset)
|
|
18441
|
+
});
|
|
18442
|
+
if (options.node) {
|
|
18443
|
+
searchParams.set("node_id", options.node);
|
|
18444
|
+
}
|
|
18445
|
+
const raw = await httpRequest({
|
|
18446
|
+
method: "GET",
|
|
18447
|
+
path,
|
|
18448
|
+
apiKey: config.apiKey,
|
|
18449
|
+
apiBaseUrl: config.apiBaseUrl,
|
|
18450
|
+
searchParams
|
|
18451
|
+
});
|
|
18452
|
+
return listProcessLinksResponseSchema.parse(raw);
|
|
18453
|
+
}
|
|
18454
|
+
__name(listProcessLinks, "listProcessLinks");
|
|
18455
|
+
async function resolveProcessLinksPath(command, config) {
|
|
18456
|
+
const teamId = await resolveRequiredTeamId(config, {
|
|
18457
|
+
override: getTeamFlag(command)
|
|
18458
|
+
});
|
|
18459
|
+
return buildTeamPath(teamId, PROCESS_LINKS_RESOURCE_PATH);
|
|
18460
|
+
}
|
|
18461
|
+
__name(resolveProcessLinksPath, "resolveProcessLinksPath");
|
|
18462
|
+
function buildCreateBody(options) {
|
|
18463
|
+
return {
|
|
18464
|
+
source_node_id: options.sourceNode,
|
|
18465
|
+
target_node_id: options.targetNode,
|
|
18466
|
+
type: parseProcessLinkType(options.type),
|
|
18467
|
+
...options.state !== void 0 ? { state: parseProcessLinkState(options.state) } : {},
|
|
18468
|
+
...options.confidence !== void 0 ? { confidence: parseConfidence(options.confidence) } : {}
|
|
18469
|
+
};
|
|
18470
|
+
}
|
|
18471
|
+
__name(buildCreateBody, "buildCreateBody");
|
|
18472
|
+
function buildUpdateBody(options) {
|
|
18473
|
+
if (options.confidence !== void 0 && options.clearConfidence) {
|
|
18474
|
+
throw new CliError(
|
|
18475
|
+
"Use either --confidence or --clear-confidence, not both."
|
|
18476
|
+
);
|
|
18477
|
+
}
|
|
18478
|
+
const body = {
|
|
18479
|
+
...options.sourceNode !== void 0 ? { source_node_id: options.sourceNode } : {},
|
|
18480
|
+
...options.targetNode !== void 0 ? { target_node_id: options.targetNode } : {},
|
|
18481
|
+
...options.type !== void 0 ? { type: parseProcessLinkType(options.type) } : {},
|
|
18482
|
+
...options.state !== void 0 ? { state: parseProcessLinkState(options.state) } : {},
|
|
18483
|
+
...options.clearConfidence ? { confidence: null } : {},
|
|
18484
|
+
...options.confidence !== void 0 ? { confidence: parseConfidence(options.confidence) } : {}
|
|
18485
|
+
};
|
|
18486
|
+
if (Object.keys(body).length === 0) {
|
|
18487
|
+
throw new CliError("Pass at least one field to update.");
|
|
18488
|
+
}
|
|
18489
|
+
return body;
|
|
18490
|
+
}
|
|
18491
|
+
__name(buildUpdateBody, "buildUpdateBody");
|
|
18492
|
+
function parseProcessLinkType(value) {
|
|
18493
|
+
const parsed = processLinkTypeSchema.safeParse(value);
|
|
18494
|
+
if (!parsed.success) {
|
|
18495
|
+
throw new CliError(
|
|
18496
|
+
"Link type must be one of: hands_off_to, shares_step_with, variant_of."
|
|
18497
|
+
);
|
|
18498
|
+
}
|
|
18499
|
+
return parsed.data;
|
|
18500
|
+
}
|
|
18501
|
+
__name(parseProcessLinkType, "parseProcessLinkType");
|
|
18502
|
+
function parseProcessLinkState(value) {
|
|
18503
|
+
const parsed = processLinkStateSchema.safeParse(value);
|
|
18504
|
+
if (!parsed.success) {
|
|
18505
|
+
throw new CliError("Link state must be suggested or confirmed.");
|
|
18506
|
+
}
|
|
18507
|
+
return parsed.data;
|
|
18508
|
+
}
|
|
18509
|
+
__name(parseProcessLinkState, "parseProcessLinkState");
|
|
18510
|
+
function parseConfidence(value) {
|
|
18511
|
+
const parsed = Number(value);
|
|
18512
|
+
if (!Number.isFinite(parsed) || parsed < 0 || parsed > 1) {
|
|
18513
|
+
throw new CliError("Confidence must be a number from 0 to 1.");
|
|
18514
|
+
}
|
|
18515
|
+
return parsed;
|
|
18516
|
+
}
|
|
18517
|
+
__name(parseConfidence, "parseConfidence");
|
|
18518
|
+
function parseMutationResponse(raw) {
|
|
18519
|
+
return processLinkMutationResponseSchema.parse(raw);
|
|
18520
|
+
}
|
|
18521
|
+
__name(parseMutationResponse, "parseMutationResponse");
|
|
18522
|
+
function renderProcessLinks(response) {
|
|
18523
|
+
if (response.process_links.length === 0) {
|
|
18524
|
+
console.log("No process links found.");
|
|
18525
|
+
return;
|
|
18526
|
+
}
|
|
18527
|
+
console.log(renderTable(PROCESS_LINK_COLUMNS, response.process_links));
|
|
18528
|
+
console.log("");
|
|
18529
|
+
console.log(
|
|
18530
|
+
`Showing ${response.process_links.length} of ${response.total} \xB7 offset ${response.offset}`
|
|
18531
|
+
);
|
|
18532
|
+
}
|
|
18533
|
+
__name(renderProcessLinks, "renderProcessLinks");
|
|
18534
|
+
|
|
18535
|
+
// src/commands/clarity/promote-current-process.ts
|
|
18536
|
+
import { z as z90 } from "zod";
|
|
18537
|
+
var snapshotSchema3 = z90.object({
|
|
18538
|
+
snapshot: z90.object({
|
|
18539
|
+
id: z90.string(),
|
|
18540
|
+
status: z90.string(),
|
|
18541
|
+
creator_type: z90.string(),
|
|
18542
|
+
created_at: z90.string(),
|
|
18543
|
+
updated_at: z90.string()
|
|
18544
|
+
})
|
|
18545
|
+
});
|
|
18546
|
+
function registerClarityPromoteCurrentProcess(clarity) {
|
|
18547
|
+
clarity.command("promote-current-process <process-id> <snapshot-id>").description("Promote a current-process snapshot to live").option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function action(processId, snapshotId, options) {
|
|
18548
|
+
const { apiKey, apiBaseUrl } = await requireAuthenticatedConfig(this);
|
|
18549
|
+
const raw = await httpRequest({
|
|
18550
|
+
method: "POST",
|
|
18551
|
+
path: `/v2/clarity-v2/processes/${encodeURIComponent(processId)}/snapshots/current_process/${encodeURIComponent(snapshotId)}/promote`,
|
|
18552
|
+
apiKey,
|
|
18553
|
+
apiBaseUrl
|
|
18554
|
+
});
|
|
18555
|
+
if (options.json) {
|
|
18556
|
+
printJson(raw);
|
|
18557
|
+
return;
|
|
18558
|
+
}
|
|
18559
|
+
const parsed = snapshotSchema3.safeParse(raw);
|
|
18560
|
+
if (!parsed.success) {
|
|
18561
|
+
throw new CliError(
|
|
18562
|
+
`Unexpected response from the API: ${parsed.error.message}`
|
|
18563
|
+
);
|
|
18564
|
+
}
|
|
18565
|
+
const { snapshot } = parsed.data;
|
|
18566
|
+
console.log(
|
|
18567
|
+
renderKeyValue([
|
|
18223
18568
|
{ label: "ID", value: snapshot.id },
|
|
18224
18569
|
{ label: "Status", value: snapshot.status },
|
|
18225
18570
|
{ label: "Creator type", value: snapshot.creator_type },
|
|
@@ -18316,9 +18661,14 @@ __name(registerClarityRevertTransformationProposal, "registerClarityRevertTransf
|
|
|
18316
18661
|
// src/commands/clarity/save-snapshot.ts
|
|
18317
18662
|
import { readFile as readFile6 } from "node:fs/promises";
|
|
18318
18663
|
import { z as z92 } from "zod";
|
|
18319
|
-
var
|
|
18664
|
+
var snapshotFileSchema = z92.union([
|
|
18320
18665
|
saveClarityProcessSnapshotBodySchema.shape.steps,
|
|
18321
|
-
|
|
18666
|
+
saveClarityProcessSnapshotBodySchema.pick({
|
|
18667
|
+
steps: true,
|
|
18668
|
+
summary: true,
|
|
18669
|
+
swot: true,
|
|
18670
|
+
projectedImpact: true
|
|
18671
|
+
})
|
|
18322
18672
|
]);
|
|
18323
18673
|
function registerClaritySaveCurrentProcess(clarity) {
|
|
18324
18674
|
clarity.command("save-current-process <process-id>").description("Save edited current-process steps as the live snapshot").requiredOption(
|
|
@@ -18326,15 +18676,16 @@ function registerClaritySaveCurrentProcess(clarity) {
|
|
|
18326
18676
|
"current-process snapshot the edits are based on"
|
|
18327
18677
|
).requiredOption(
|
|
18328
18678
|
"--steps-file <path>",
|
|
18329
|
-
"JSON file containing an array of edited steps or an object with
|
|
18679
|
+
"JSON file containing an array of edited steps or an object with steps and narrative roots"
|
|
18330
18680
|
).option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function action(processId, options) {
|
|
18681
|
+
const snapshotFile = await readSnapshotFile(options.stepsFile);
|
|
18331
18682
|
await saveSnapshot({
|
|
18332
18683
|
command: this,
|
|
18333
18684
|
processId,
|
|
18334
18685
|
kind: "current_process",
|
|
18335
18686
|
body: {
|
|
18336
18687
|
baselineSnapshotId: options.baselineSnapshotId,
|
|
18337
|
-
|
|
18688
|
+
...snapshotFile
|
|
18338
18689
|
},
|
|
18339
18690
|
json: options.json === true
|
|
18340
18691
|
});
|
|
@@ -18349,11 +18700,12 @@ function registerClaritySaveTransformationProposal(clarity) {
|
|
|
18349
18700
|
"transformation-proposal snapshot the edits are based on"
|
|
18350
18701
|
).requiredOption(
|
|
18351
18702
|
"--steps-file <path>",
|
|
18352
|
-
"JSON file containing an array of edited steps or an object with
|
|
18703
|
+
"JSON file containing an array of edited steps or an object with steps and narrative roots"
|
|
18353
18704
|
).option(
|
|
18354
18705
|
"--current-process-id <id>",
|
|
18355
18706
|
"current-process snapshot anchor expected by the edited proposal"
|
|
18356
18707
|
).option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function action(processId, options) {
|
|
18708
|
+
const snapshotFile = await readSnapshotFile(options.stepsFile);
|
|
18357
18709
|
await saveSnapshot({
|
|
18358
18710
|
command: this,
|
|
18359
18711
|
processId,
|
|
@@ -18361,7 +18713,7 @@ function registerClaritySaveTransformationProposal(clarity) {
|
|
|
18361
18713
|
body: {
|
|
18362
18714
|
baselineSnapshotId: options.baselineSnapshotId,
|
|
18363
18715
|
clarityCurrentProcessId: options.currentProcessId,
|
|
18364
|
-
|
|
18716
|
+
...snapshotFile
|
|
18365
18717
|
},
|
|
18366
18718
|
json: options.json === true
|
|
18367
18719
|
});
|
|
@@ -18404,7 +18756,7 @@ async function saveSnapshot(args) {
|
|
|
18404
18756
|
);
|
|
18405
18757
|
}
|
|
18406
18758
|
__name(saveSnapshot, "saveSnapshot");
|
|
18407
|
-
async function
|
|
18759
|
+
async function readSnapshotFile(path) {
|
|
18408
18760
|
let raw;
|
|
18409
18761
|
try {
|
|
18410
18762
|
raw = await readFile6(path, "utf8");
|
|
@@ -18419,15 +18771,15 @@ async function readStepsFile(path) {
|
|
|
18419
18771
|
const message = error instanceof Error ? error.message : String(error);
|
|
18420
18772
|
throw new CliError(`Invalid JSON in "${path}": ${message}`);
|
|
18421
18773
|
}
|
|
18422
|
-
const parsed =
|
|
18774
|
+
const parsed = snapshotFileSchema.safeParse(json);
|
|
18423
18775
|
if (!parsed.success) {
|
|
18424
18776
|
throw new CliError(
|
|
18425
|
-
`Invalid steps file "${path}": expected a step array or an object with a steps array. ${parsed.error.message}`
|
|
18777
|
+
`Invalid steps file "${path}": expected a step array or an object with a steps array and optional narrative roots. ${parsed.error.message}`
|
|
18426
18778
|
);
|
|
18427
18779
|
}
|
|
18428
|
-
return Array.isArray(parsed.data) ? parsed.data : parsed.data
|
|
18780
|
+
return Array.isArray(parsed.data) ? { steps: parsed.data } : parsed.data;
|
|
18429
18781
|
}
|
|
18430
|
-
__name(
|
|
18782
|
+
__name(readSnapshotFile, "readSnapshotFile");
|
|
18431
18783
|
|
|
18432
18784
|
// src/commands/clarity/stop-current-process.ts
|
|
18433
18785
|
function registerClarityStopCurrentProcess(clarity) {
|
|
@@ -18468,9 +18820,9 @@ function registerClarityStopTransformationProposal(clarity) {
|
|
|
18468
18820
|
__name(registerClarityStopTransformationProposal, "registerClarityStopTransformationProposal");
|
|
18469
18821
|
|
|
18470
18822
|
// src/commands/clarity/index.ts
|
|
18471
|
-
var
|
|
18472
|
-
var
|
|
18473
|
-
var
|
|
18823
|
+
var DEFAULT_LIMIT7 = 50;
|
|
18824
|
+
var MIN_LIMIT7 = 1;
|
|
18825
|
+
var MAX_LIMIT7 = 100;
|
|
18474
18826
|
var CLARITY_V2_REQUIRED_MESSAGE = "This command requires Clarity v2. Use `duvo clarity overview <process-id>` to read legacy v1 context.";
|
|
18475
18827
|
function registerClarity(program) {
|
|
18476
18828
|
const clarity = program.command("clarity").description("Manage and read Clarity processes in the Duvo public API");
|
|
@@ -18509,6 +18861,7 @@ function registerClarity(program) {
|
|
|
18509
18861
|
registerClarityRevertTransformationProposal(clarity);
|
|
18510
18862
|
registerClarityAssignExtraCaptureRequest(clarity);
|
|
18511
18863
|
registerClarityPostprocess(clarity);
|
|
18864
|
+
registerClarityProcessLinks(clarity);
|
|
18512
18865
|
registerClarityBuildAutomation(clarity);
|
|
18513
18866
|
registerClarityStopCurrentProcess(clarity);
|
|
18514
18867
|
registerClarityStopTransformationProposal(clarity);
|
|
@@ -18517,7 +18870,7 @@ function registerClarity(program) {
|
|
|
18517
18870
|
}
|
|
18518
18871
|
__name(registerClarity, "registerClarity");
|
|
18519
18872
|
function registerList(clarity) {
|
|
18520
|
-
clarity.command("list", { isDefault: true }).description("List Clarity processes for the current team").option("--limit <n>", `page size (${
|
|
18873
|
+
clarity.command("list", { isDefault: true }).description("List Clarity processes for the current team").option("--limit <n>", `page size (${MIN_LIMIT7}-${MAX_LIMIT7})`).option("--offset <n>", "number of processes to skip").option("--search <query>", "case-insensitive search across process names").option("--status <status>", "filter by lifecycle status").option(
|
|
18521
18874
|
"--process-version <1|2>",
|
|
18522
18875
|
"filter by Clarity process schema version"
|
|
18523
18876
|
).option("--json", "output JSON").option("--csv", "output CSV").action(/* @__PURE__ */ __name(async function listAction(options) {
|
|
@@ -18527,7 +18880,7 @@ function registerList(clarity) {
|
|
|
18527
18880
|
}
|
|
18528
18881
|
__name(registerList, "registerList");
|
|
18529
18882
|
function registerSearch(clarity) {
|
|
18530
|
-
clarity.command("search <query>").description("Search Clarity processes by name").option("--limit <n>", `page size (${
|
|
18883
|
+
clarity.command("search <query>").description("Search Clarity processes by name").option("--limit <n>", `page size (${MIN_LIMIT7}-${MAX_LIMIT7})`).option("--offset <n>", "number of processes to skip").option("--status <status>", "filter by lifecycle status").option(
|
|
18531
18884
|
"--process-version <1|2>",
|
|
18532
18885
|
"filter by Clarity process schema version"
|
|
18533
18886
|
).option("--json", "output JSON").option("--csv", "output CSV").action(/* @__PURE__ */ __name(async function searchAction(query, options) {
|
|
@@ -18872,9 +19225,9 @@ function registerExport(clarity) {
|
|
|
18872
19225
|
__name(registerExport, "registerExport");
|
|
18873
19226
|
async function loadProcessList(command, options) {
|
|
18874
19227
|
const limit = parseLimit(options.limit, {
|
|
18875
|
-
defaultValue:
|
|
18876
|
-
min:
|
|
18877
|
-
max:
|
|
19228
|
+
defaultValue: DEFAULT_LIMIT7,
|
|
19229
|
+
min: MIN_LIMIT7,
|
|
19230
|
+
max: MAX_LIMIT7
|
|
18878
19231
|
});
|
|
18879
19232
|
const offset = parseOffset(options.offset);
|
|
18880
19233
|
const version2 = parseProcessVersion(options.processVersion);
|
|
@@ -21833,8 +22186,255 @@ function registerProfiles(program) {
|
|
|
21833
22186
|
}
|
|
21834
22187
|
__name(registerProfiles, "registerProfiles");
|
|
21835
22188
|
|
|
21836
|
-
// src/commands/
|
|
22189
|
+
// src/commands/pulse/create.ts
|
|
22190
|
+
function registerPulseCreate(pulse) {
|
|
22191
|
+
pulse.command("create").description(
|
|
22192
|
+
"Create a Pulse dashboard from a prompt (e.g. 'open cases by queue this week'). Generation runs asynchronously \u2014 poll `duvo pulse get <id>` until status is completed."
|
|
22193
|
+
).requiredOption(
|
|
22194
|
+
"--message <text>",
|
|
22195
|
+
"what you want the dashboard to show (max 10000 chars)"
|
|
22196
|
+
).option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function createAction(options) {
|
|
22197
|
+
const message = options.message?.trim();
|
|
22198
|
+
if (!message) {
|
|
22199
|
+
throw new CliError("--message is required.");
|
|
22200
|
+
}
|
|
22201
|
+
const { apiKey, apiBaseUrl } = await requireAuthenticatedConfig(this);
|
|
22202
|
+
const raw = await httpRequest({
|
|
22203
|
+
method: "POST",
|
|
22204
|
+
path: "/v1/artifacts",
|
|
22205
|
+
apiKey,
|
|
22206
|
+
apiBaseUrl,
|
|
22207
|
+
body: { message }
|
|
22208
|
+
});
|
|
22209
|
+
if (options.json) {
|
|
22210
|
+
printJson(raw);
|
|
22211
|
+
return;
|
|
22212
|
+
}
|
|
22213
|
+
const parsed = createArtifactResponseSchema.safeParse(raw);
|
|
22214
|
+
if (!parsed.success) {
|
|
22215
|
+
throw new CliError(
|
|
22216
|
+
`Unexpected response from the API: ${parsed.error.message}`
|
|
22217
|
+
);
|
|
22218
|
+
}
|
|
22219
|
+
const { artifact_id: artifactId } = parsed.data;
|
|
22220
|
+
console.log(green("Pulse dashboard created. The agent is building it\u2026"));
|
|
22221
|
+
console.log();
|
|
22222
|
+
console.log(renderKeyValue([{ label: "ID", value: artifactId }]));
|
|
22223
|
+
console.log();
|
|
22224
|
+
console.log(`Track progress with: duvo pulse get ${artifactId}`);
|
|
22225
|
+
}, "createAction"));
|
|
22226
|
+
}
|
|
22227
|
+
__name(registerPulseCreate, "registerPulseCreate");
|
|
22228
|
+
|
|
22229
|
+
// src/commands/pulse/delete.ts
|
|
22230
|
+
function registerPulseDelete(pulse) {
|
|
22231
|
+
pulse.command("delete <id>").description("Delete a Pulse dashboard (creator only)").option("-y, --yes", "skip the confirmation prompt").option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function deleteAction(id, options) {
|
|
22232
|
+
const pulseId = trimRequired(id, "<id>");
|
|
22233
|
+
const { apiKey, apiBaseUrl } = await requireAuthenticatedConfig(this);
|
|
22234
|
+
await confirmDestructive({
|
|
22235
|
+
message: `Delete Pulse dashboard "${pulseId}"?`,
|
|
22236
|
+
skip: options.yes ?? false
|
|
22237
|
+
});
|
|
22238
|
+
const raw = await httpRequest({
|
|
22239
|
+
method: "DELETE",
|
|
22240
|
+
path: `/v1/artifacts/${encodeURIComponent(pulseId)}`,
|
|
22241
|
+
apiKey,
|
|
22242
|
+
apiBaseUrl
|
|
22243
|
+
});
|
|
22244
|
+
if (options.json) {
|
|
22245
|
+
printJson(raw);
|
|
22246
|
+
return;
|
|
22247
|
+
}
|
|
22248
|
+
const parsed = deleteArtifactResponseSchema.safeParse(raw);
|
|
22249
|
+
if (!parsed.success) {
|
|
22250
|
+
throw new CliError(
|
|
22251
|
+
`Unexpected response from the API: ${parsed.error.message}`
|
|
22252
|
+
);
|
|
22253
|
+
}
|
|
22254
|
+
console.log(green(`Pulse dashboard "${pulseId}" deleted.`));
|
|
22255
|
+
}, "deleteAction"));
|
|
22256
|
+
}
|
|
22257
|
+
__name(registerPulseDelete, "registerPulseDelete");
|
|
22258
|
+
|
|
22259
|
+
// src/commands/pulse/get.ts
|
|
22260
|
+
function registerPulseGet(pulse) {
|
|
22261
|
+
pulse.command("get <id>").description("Get a Pulse dashboard's metadata and generation status").option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function getAction(id, options) {
|
|
22262
|
+
const pulseId = trimRequired(id, "<id>");
|
|
22263
|
+
const { apiKey, apiBaseUrl } = await requireAuthenticatedConfig(this);
|
|
22264
|
+
const raw = await httpRequest({
|
|
22265
|
+
method: "GET",
|
|
22266
|
+
path: `/v1/artifacts/${encodeURIComponent(pulseId)}`,
|
|
22267
|
+
apiKey,
|
|
22268
|
+
apiBaseUrl
|
|
22269
|
+
});
|
|
22270
|
+
if (options.json) {
|
|
22271
|
+
printJson(raw);
|
|
22272
|
+
return;
|
|
22273
|
+
}
|
|
22274
|
+
const parsed = artifactDetailResponseSchema.safeParse(raw);
|
|
22275
|
+
if (!parsed.success) {
|
|
22276
|
+
throw new CliError(
|
|
22277
|
+
`Unexpected response from the API: ${parsed.error.message}`
|
|
22278
|
+
);
|
|
22279
|
+
}
|
|
22280
|
+
const { artifact: dashboard } = parsed.data;
|
|
22281
|
+
console.log(
|
|
22282
|
+
renderKeyValue([
|
|
22283
|
+
{ label: "ID", value: dashboard.id },
|
|
22284
|
+
{ label: "Title", value: dashboard.title ?? "" },
|
|
22285
|
+
{ label: "Status", value: dashboard.status },
|
|
22286
|
+
{
|
|
22287
|
+
label: "Rendered",
|
|
22288
|
+
value: dashboard.html_code_present ? "yes" : "no"
|
|
22289
|
+
},
|
|
22290
|
+
{ label: "Created", value: dashboard.created_at },
|
|
22291
|
+
{ label: "Updated", value: dashboard.updated_at }
|
|
22292
|
+
])
|
|
22293
|
+
);
|
|
22294
|
+
if (dashboard.html_code_present) {
|
|
22295
|
+
console.log();
|
|
22296
|
+
console.log(
|
|
22297
|
+
`Read the rendered HTML with: duvo pulse html ${dashboard.id}`
|
|
22298
|
+
);
|
|
22299
|
+
}
|
|
22300
|
+
}, "getAction"));
|
|
22301
|
+
}
|
|
22302
|
+
__name(registerPulseGet, "registerPulseGet");
|
|
22303
|
+
|
|
22304
|
+
// src/commands/pulse/html.ts
|
|
22305
|
+
function registerPulseHtml(pulse) {
|
|
22306
|
+
pulse.command("html <id>").description(
|
|
22307
|
+
"Print a Pulse dashboard's rendered HTML document to stdout (pipe to a file or browser)"
|
|
22308
|
+
).action(/* @__PURE__ */ __name(async function htmlAction(id) {
|
|
22309
|
+
const pulseId = trimRequired(id, "<id>");
|
|
22310
|
+
const { apiKey, apiBaseUrl } = await requireAuthenticatedConfig(this);
|
|
22311
|
+
const raw = await httpRequest({
|
|
22312
|
+
method: "GET",
|
|
22313
|
+
path: `/v1/artifacts/${encodeURIComponent(pulseId)}/render`,
|
|
22314
|
+
apiKey,
|
|
22315
|
+
apiBaseUrl
|
|
22316
|
+
});
|
|
22317
|
+
if (typeof raw !== "string") {
|
|
22318
|
+
throw new CliError(
|
|
22319
|
+
"Unexpected response from the API: expected an HTML document."
|
|
22320
|
+
);
|
|
22321
|
+
}
|
|
22322
|
+
console.log(raw);
|
|
22323
|
+
}, "htmlAction"));
|
|
22324
|
+
}
|
|
22325
|
+
__name(registerPulseHtml, "registerPulseHtml");
|
|
22326
|
+
|
|
22327
|
+
// src/commands/pulse/list.ts
|
|
22328
|
+
var DEFAULT_LIMIT8 = 20;
|
|
22329
|
+
var MIN_LIMIT8 = 1;
|
|
22330
|
+
var MAX_LIMIT8 = 100;
|
|
21837
22331
|
var TABLE_COLUMNS27 = [
|
|
22332
|
+
{ header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
|
|
22333
|
+
{
|
|
22334
|
+
header: "TITLE",
|
|
22335
|
+
cell: /* @__PURE__ */ __name((row) => row.title ?? "", "cell"),
|
|
22336
|
+
maxWidth: 50
|
|
22337
|
+
},
|
|
22338
|
+
{ header: "STATUS", cell: /* @__PURE__ */ __name((row) => row.status, "cell") },
|
|
22339
|
+
{ header: "UPDATED", cell: /* @__PURE__ */ __name((row) => row.updated_at, "cell") }
|
|
22340
|
+
];
|
|
22341
|
+
function registerPulseList(pulse) {
|
|
22342
|
+
pulse.command("list", { isDefault: true }).description("List your Pulse dashboards").option(
|
|
22343
|
+
"--shared",
|
|
22344
|
+
"list dashboards shared with you (created by teammates) instead of your own"
|
|
22345
|
+
).option("--limit <n>", `page size (${MIN_LIMIT8}-${MAX_LIMIT8})`).option("--offset <n>", "number of dashboards to skip").option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function listAction(options) {
|
|
22346
|
+
const limit = parseLimit(options.limit, {
|
|
22347
|
+
defaultValue: DEFAULT_LIMIT8,
|
|
22348
|
+
min: MIN_LIMIT8,
|
|
22349
|
+
max: MAX_LIMIT8
|
|
22350
|
+
});
|
|
22351
|
+
const offset = parseOffset(options.offset);
|
|
22352
|
+
const { apiKey, apiBaseUrl } = await requireAuthenticatedConfig(this);
|
|
22353
|
+
const searchParams = new URLSearchParams();
|
|
22354
|
+
searchParams.append("scope", options.shared ? "shared" : "created");
|
|
22355
|
+
searchParams.append("limit", String(limit));
|
|
22356
|
+
searchParams.append("offset", String(offset));
|
|
22357
|
+
const raw = await httpRequest({
|
|
22358
|
+
method: "GET",
|
|
22359
|
+
path: "/v1/artifacts",
|
|
22360
|
+
apiKey,
|
|
22361
|
+
apiBaseUrl,
|
|
22362
|
+
searchParams
|
|
22363
|
+
});
|
|
22364
|
+
if (options.json) {
|
|
22365
|
+
printJson(raw);
|
|
22366
|
+
return;
|
|
22367
|
+
}
|
|
22368
|
+
const parsed = artifactListResponseSchema.safeParse(raw);
|
|
22369
|
+
if (!parsed.success) {
|
|
22370
|
+
throw new CliError(
|
|
22371
|
+
`Unexpected response from the API: ${parsed.error.message}`
|
|
22372
|
+
);
|
|
22373
|
+
}
|
|
22374
|
+
const response = parsed.data;
|
|
22375
|
+
if (response.artifacts.length === 0) {
|
|
22376
|
+
console.log("No Pulse dashboards found.");
|
|
22377
|
+
return;
|
|
22378
|
+
}
|
|
22379
|
+
console.log(renderTable(TABLE_COLUMNS27, response.artifacts));
|
|
22380
|
+
console.log(
|
|
22381
|
+
`Showing ${response.artifacts.length} of ${response.total} \xB7 offset ${response.offset}`
|
|
22382
|
+
);
|
|
22383
|
+
}, "listAction"));
|
|
22384
|
+
}
|
|
22385
|
+
__name(registerPulseList, "registerPulseList");
|
|
22386
|
+
|
|
22387
|
+
// src/commands/pulse/send-message.ts
|
|
22388
|
+
function registerPulseSendMessage(pulse) {
|
|
22389
|
+
pulse.command("send-message <id>").description(
|
|
22390
|
+
"Send an instruction to iterate on a dashboard (e.g. 'make it a bar chart'). Only the creator can iterate; the agent regenerates asynchronously."
|
|
22391
|
+
).requiredOption("--message <text>", "the instruction (max 10000 chars)").option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function sendMessageAction(id, options) {
|
|
22392
|
+
const pulseId = trimRequired(id, "<id>");
|
|
22393
|
+
const message = options.message?.trim();
|
|
22394
|
+
if (!message) {
|
|
22395
|
+
throw new CliError("--message is required.");
|
|
22396
|
+
}
|
|
22397
|
+
const { apiKey, apiBaseUrl } = await requireAuthenticatedConfig(this);
|
|
22398
|
+
const raw = await httpRequest({
|
|
22399
|
+
method: "POST",
|
|
22400
|
+
path: `/v1/artifacts/${encodeURIComponent(pulseId)}/messages`,
|
|
22401
|
+
apiKey,
|
|
22402
|
+
apiBaseUrl,
|
|
22403
|
+
body: { message }
|
|
22404
|
+
});
|
|
22405
|
+
if (options.json) {
|
|
22406
|
+
printJson(raw);
|
|
22407
|
+
return;
|
|
22408
|
+
}
|
|
22409
|
+
const parsed = sendArtifactMessageResponseSchema.safeParse(raw);
|
|
22410
|
+
if (!parsed.success) {
|
|
22411
|
+
throw new CliError(
|
|
22412
|
+
`Unexpected response from the API: ${parsed.error.message}`
|
|
22413
|
+
);
|
|
22414
|
+
}
|
|
22415
|
+
console.log(
|
|
22416
|
+
green("Instruction sent. The agent is updating the dashboard\u2026")
|
|
22417
|
+
);
|
|
22418
|
+
console.log();
|
|
22419
|
+
console.log(`Track progress with: duvo pulse get ${pulseId}`);
|
|
22420
|
+
}, "sendMessageAction"));
|
|
22421
|
+
}
|
|
22422
|
+
__name(registerPulseSendMessage, "registerPulseSendMessage");
|
|
22423
|
+
|
|
22424
|
+
// src/commands/pulse/index.ts
|
|
22425
|
+
function registerPulse(program) {
|
|
22426
|
+
const pulse = program.command("pulse").description("Manage Duvo Pulse dashboards in the public API");
|
|
22427
|
+
registerPulseList(pulse);
|
|
22428
|
+
registerPulseCreate(pulse);
|
|
22429
|
+
registerPulseGet(pulse);
|
|
22430
|
+
registerPulseHtml(pulse);
|
|
22431
|
+
registerPulseSendMessage(pulse);
|
|
22432
|
+
registerPulseDelete(pulse);
|
|
22433
|
+
}
|
|
22434
|
+
__name(registerPulse, "registerPulse");
|
|
22435
|
+
|
|
22436
|
+
// src/commands/queue-labels/index.ts
|
|
22437
|
+
var TABLE_COLUMNS28 = [
|
|
21838
22438
|
{ header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
|
|
21839
22439
|
{ header: "KEY", cell: /* @__PURE__ */ __name((row) => row.key, "cell") },
|
|
21840
22440
|
{ header: "VALUE", cell: /* @__PURE__ */ __name((row) => row.value, "cell") },
|
|
@@ -21888,7 +22488,7 @@ function registerList3(labels) {
|
|
|
21888
22488
|
console.log("No labels defined on this queue.");
|
|
21889
22489
|
return;
|
|
21890
22490
|
}
|
|
21891
|
-
console.log(renderTable(
|
|
22491
|
+
console.log(renderTable(TABLE_COLUMNS28, parsed.data.labels));
|
|
21892
22492
|
console.log(`Showing ${parsed.data.labels.length}`);
|
|
21893
22493
|
}, "listAction"));
|
|
21894
22494
|
}
|
|
@@ -22639,10 +23239,10 @@ function registerQueuesLinkAgent(queues) {
|
|
|
22639
23239
|
__name(registerQueuesLinkAgent, "registerQueuesLinkAgent");
|
|
22640
23240
|
|
|
22641
23241
|
// src/commands/queues/list.ts
|
|
22642
|
-
var
|
|
22643
|
-
var
|
|
22644
|
-
var
|
|
22645
|
-
var
|
|
23242
|
+
var DEFAULT_LIMIT9 = 20;
|
|
23243
|
+
var MIN_LIMIT9 = 1;
|
|
23244
|
+
var MAX_LIMIT9 = 100;
|
|
23245
|
+
var TABLE_COLUMNS29 = [
|
|
22646
23246
|
{ header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
|
|
22647
23247
|
{ header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
|
|
22648
23248
|
{
|
|
@@ -22653,11 +23253,11 @@ var TABLE_COLUMNS28 = [
|
|
|
22653
23253
|
{ header: "CREATED", cell: /* @__PURE__ */ __name((row) => row.created_at ?? "", "cell") }
|
|
22654
23254
|
];
|
|
22655
23255
|
function registerQueuesList(queues) {
|
|
22656
|
-
queues.command("list", { isDefault: true }).description("List queues for your team").option("--limit <n>", `page size (${
|
|
23256
|
+
queues.command("list", { isDefault: true }).description("List queues for your team").option("--limit <n>", `page size (${MIN_LIMIT9}-${MAX_LIMIT9})`).option("--offset <n>", "number of queues to skip").option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function listAction(options) {
|
|
22657
23257
|
const limit = parseLimit(options.limit, {
|
|
22658
|
-
defaultValue:
|
|
22659
|
-
min:
|
|
22660
|
-
max:
|
|
23258
|
+
defaultValue: DEFAULT_LIMIT9,
|
|
23259
|
+
min: MIN_LIMIT9,
|
|
23260
|
+
max: MAX_LIMIT9
|
|
22661
23261
|
});
|
|
22662
23262
|
const offset = parseOffset(options.offset);
|
|
22663
23263
|
const config = await requireAuthenticatedConfig(this);
|
|
@@ -22690,7 +23290,7 @@ function registerQueuesList(queues) {
|
|
|
22690
23290
|
console.log("No queues found.");
|
|
22691
23291
|
return;
|
|
22692
23292
|
}
|
|
22693
|
-
console.log(renderTable(
|
|
23293
|
+
console.log(renderTable(TABLE_COLUMNS29, response.queues));
|
|
22694
23294
|
const resolvedOffset = response.offset ?? offset;
|
|
22695
23295
|
const total = response.total ?? null;
|
|
22696
23296
|
const summary = total === null ? `Showing ${response.queues.length} \xB7 offset ${resolvedOffset}` : `Showing ${response.queues.length} of ${total} \xB7 offset ${resolvedOffset}`;
|
|
@@ -22948,7 +23548,7 @@ function registerRevisionLoginsDetach(revisionLogins) {
|
|
|
22948
23548
|
__name(registerRevisionLoginsDetach, "registerRevisionLoginsDetach");
|
|
22949
23549
|
|
|
22950
23550
|
// src/commands/revision-logins/list.ts
|
|
22951
|
-
var
|
|
23551
|
+
var TABLE_COLUMNS30 = [
|
|
22952
23552
|
{ header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
|
|
22953
23553
|
{ header: "DOMAIN", cell: /* @__PURE__ */ __name((row) => row.domain, "cell") },
|
|
22954
23554
|
{
|
|
@@ -22984,7 +23584,7 @@ function registerRevisionLoginsList(revisionLogins) {
|
|
|
22984
23584
|
console.log("No browser logins attached to this revision.");
|
|
22985
23585
|
return;
|
|
22986
23586
|
}
|
|
22987
|
-
console.log(renderTable(
|
|
23587
|
+
console.log(renderTable(TABLE_COLUMNS30, rows));
|
|
22988
23588
|
console.log(`Showing ${rows.length}`);
|
|
22989
23589
|
}, "listAction"));
|
|
22990
23590
|
}
|
|
@@ -23057,7 +23657,7 @@ function registerRevisionSecretsDetach(revisionSecrets) {
|
|
|
23057
23657
|
__name(registerRevisionSecretsDetach, "registerRevisionSecretsDetach");
|
|
23058
23658
|
|
|
23059
23659
|
// src/commands/revision-secrets/list.ts
|
|
23060
|
-
var
|
|
23660
|
+
var TABLE_COLUMNS31 = [
|
|
23061
23661
|
{ header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
|
|
23062
23662
|
{ header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
|
|
23063
23663
|
{
|
|
@@ -23095,7 +23695,7 @@ function registerRevisionSecretsList(revisionSecrets) {
|
|
|
23095
23695
|
console.log("No secrets attached to this revision.");
|
|
23096
23696
|
return;
|
|
23097
23697
|
}
|
|
23098
|
-
console.log(renderTable(
|
|
23698
|
+
console.log(renderTable(TABLE_COLUMNS31, rows));
|
|
23099
23699
|
console.log(`Showing ${rows.length}`);
|
|
23100
23700
|
}, "listAction"));
|
|
23101
23701
|
}
|
|
@@ -23340,13 +23940,13 @@ function registerRunsGet(runs) {
|
|
|
23340
23940
|
__name(registerRunsGet, "registerRunsGet");
|
|
23341
23941
|
|
|
23342
23942
|
// src/commands/runs/list.ts
|
|
23343
|
-
var
|
|
23344
|
-
var
|
|
23345
|
-
var
|
|
23943
|
+
var DEFAULT_LIMIT10 = 20;
|
|
23944
|
+
var MIN_LIMIT10 = 1;
|
|
23945
|
+
var MAX_LIMIT10 = 100;
|
|
23346
23946
|
var SORT_ORDERS2 = ["asc", "desc"];
|
|
23347
23947
|
var HAS_ISSUES_VALUES = ["true", "false"];
|
|
23348
23948
|
var TITLE_PREVIEW_WIDTH = 50;
|
|
23349
|
-
var
|
|
23949
|
+
var TABLE_COLUMNS32 = [
|
|
23350
23950
|
{ header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
|
|
23351
23951
|
{ header: "RUN#", cell: /* @__PURE__ */ __name((row) => String(row.run_number), "cell") },
|
|
23352
23952
|
{ header: "STATUS", cell: /* @__PURE__ */ __name((row) => row.status, "cell") },
|
|
@@ -23370,7 +23970,7 @@ function isHasIssuesValue(value) {
|
|
|
23370
23970
|
}
|
|
23371
23971
|
__name(isHasIssuesValue, "isHasIssuesValue");
|
|
23372
23972
|
function registerRunsList(runs) {
|
|
23373
|
-
runs.command("list").description("List agent runs for your team").option("--limit <n>", `page size (${
|
|
23973
|
+
runs.command("list").description("List agent runs for your team").option("--limit <n>", `page size (${MIN_LIMIT10}-${MAX_LIMIT10})`).option("--offset <n>", "number of runs to skip").option("--sort-order <order>", `sort direction (${SORT_ORDERS2.join("|")})`).option(
|
|
23374
23974
|
"--status <status>",
|
|
23375
23975
|
"filter by status (e.g. running, completed, failed, waiting, interrupted, stopped, needs_attention)"
|
|
23376
23976
|
).option("--agent <id>", "filter by agent ID").option("--user <id>", "filter by user ID").option("--case-queue <id>", "filter by queue ID").option("--source <source>", "filter by source").option("--search <query>", "free-text search across runs").option(
|
|
@@ -23378,9 +23978,9 @@ function registerRunsList(runs) {
|
|
|
23378
23978
|
`show only runs with (or without) issues (${HAS_ISSUES_VALUES.join("|")})`
|
|
23379
23979
|
).option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function listAction(options) {
|
|
23380
23980
|
const limit = parseLimit(options.limit, {
|
|
23381
|
-
defaultValue:
|
|
23382
|
-
min:
|
|
23383
|
-
max:
|
|
23981
|
+
defaultValue: DEFAULT_LIMIT10,
|
|
23982
|
+
min: MIN_LIMIT10,
|
|
23983
|
+
max: MAX_LIMIT10
|
|
23384
23984
|
});
|
|
23385
23985
|
const offset = parseOffset(options.offset);
|
|
23386
23986
|
if (options.sortOrder !== void 0 && !isSortOrder(options.sortOrder)) {
|
|
@@ -23447,7 +24047,7 @@ function registerRunsList(runs) {
|
|
|
23447
24047
|
console.log("No runs found.");
|
|
23448
24048
|
return;
|
|
23449
24049
|
}
|
|
23450
|
-
console.log(renderTable(
|
|
24050
|
+
console.log(renderTable(TABLE_COLUMNS32, response.data));
|
|
23451
24051
|
console.log(
|
|
23452
24052
|
`Showing ${response.data.length} of ${response.total} \xB7 offset ${offset}`
|
|
23453
24053
|
);
|
|
@@ -23553,11 +24153,11 @@ function getContent(msg) {
|
|
|
23553
24153
|
__name(getContent, "getContent");
|
|
23554
24154
|
|
|
23555
24155
|
// src/commands/runs/messages.ts
|
|
23556
|
-
var
|
|
23557
|
-
var
|
|
23558
|
-
var
|
|
24156
|
+
var DEFAULT_LIMIT11 = 20;
|
|
24157
|
+
var MIN_LIMIT11 = 1;
|
|
24158
|
+
var MAX_LIMIT11 = 50;
|
|
23559
24159
|
var TEXT_PREVIEW_WIDTH2 = 60;
|
|
23560
|
-
var
|
|
24160
|
+
var TABLE_COLUMNS33 = [
|
|
23561
24161
|
{ header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
|
|
23562
24162
|
{ header: "ROLE", cell: /* @__PURE__ */ __name((row) => row.role, "cell") },
|
|
23563
24163
|
{ header: "TYPE", cell: /* @__PURE__ */ __name((row) => row.type, "cell") },
|
|
@@ -23582,7 +24182,7 @@ function previewCell(row) {
|
|
|
23582
24182
|
}
|
|
23583
24183
|
__name(previewCell, "previewCell");
|
|
23584
24184
|
function registerRunsMessages(runs) {
|
|
23585
|
-
runs.command("messages <id>").description("List messages for an agent run").option("--limit <n>", `page size (${
|
|
24185
|
+
runs.command("messages <id>").description("List messages for an agent run").option("--limit <n>", `page size (${MIN_LIMIT11}-${MAX_LIMIT11})`).option("--offset <n>", "number of messages to skip").option("--follow", "poll for new messages until the job completes").option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function messagesAction(id, options) {
|
|
23586
24186
|
const offset = parseOffset(options.offset);
|
|
23587
24187
|
const { apiKey, apiBaseUrl } = await requireAuthenticatedConfig(this);
|
|
23588
24188
|
if (options.follow) {
|
|
@@ -23593,9 +24193,9 @@ function registerRunsMessages(runs) {
|
|
|
23593
24193
|
return;
|
|
23594
24194
|
}
|
|
23595
24195
|
const limit = parseLimit(options.limit, {
|
|
23596
|
-
defaultValue:
|
|
23597
|
-
min:
|
|
23598
|
-
max:
|
|
24196
|
+
defaultValue: DEFAULT_LIMIT11,
|
|
24197
|
+
min: MIN_LIMIT11,
|
|
24198
|
+
max: MAX_LIMIT11
|
|
23599
24199
|
});
|
|
23600
24200
|
const searchParams = new URLSearchParams();
|
|
23601
24201
|
searchParams.append("limit", String(limit));
|
|
@@ -23622,7 +24222,7 @@ function registerRunsMessages(runs) {
|
|
|
23622
24222
|
console.log("No messages found.");
|
|
23623
24223
|
return;
|
|
23624
24224
|
}
|
|
23625
|
-
console.log(renderTable(
|
|
24225
|
+
console.log(renderTable(TABLE_COLUMNS33, response.messages));
|
|
23626
24226
|
const resolvedOffset = response.offset ?? offset;
|
|
23627
24227
|
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}`;
|
|
23628
24228
|
console.log(summary);
|
|
@@ -23948,7 +24548,7 @@ function registerSandboxesCreate(sandboxes) {
|
|
|
23948
24548
|
__name(registerSandboxesCreate, "registerSandboxesCreate");
|
|
23949
24549
|
|
|
23950
24550
|
// src/commands/sandboxes/files.ts
|
|
23951
|
-
var
|
|
24551
|
+
var TABLE_COLUMNS34 = [
|
|
23952
24552
|
{ header: "TYPE", cell: /* @__PURE__ */ __name((row) => row.type, "cell") },
|
|
23953
24553
|
{ header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
|
|
23954
24554
|
{ header: "PATH", cell: /* @__PURE__ */ __name((row) => row.path, "cell") },
|
|
@@ -23986,7 +24586,7 @@ function registerSandboxesFiles(sandboxes) {
|
|
|
23986
24586
|
console.log("No files found.");
|
|
23987
24587
|
return;
|
|
23988
24588
|
}
|
|
23989
|
-
console.log(renderTable(
|
|
24589
|
+
console.log(renderTable(TABLE_COLUMNS34, files));
|
|
23990
24590
|
console.log(`Showing ${files.length}`);
|
|
23991
24591
|
}, "filesAction"));
|
|
23992
24592
|
}
|
|
@@ -24331,7 +24931,7 @@ function registerSecretsGet(secrets) {
|
|
|
24331
24931
|
__name(registerSecretsGet, "registerSecretsGet");
|
|
24332
24932
|
|
|
24333
24933
|
// src/commands/secrets/list.ts
|
|
24334
|
-
var
|
|
24934
|
+
var TABLE_COLUMNS35 = [
|
|
24335
24935
|
{ header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
|
|
24336
24936
|
{ header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
|
|
24337
24937
|
{
|
|
@@ -24375,7 +24975,7 @@ function registerSecretsList(secrets) {
|
|
|
24375
24975
|
console.log("No secrets found.");
|
|
24376
24976
|
return;
|
|
24377
24977
|
}
|
|
24378
|
-
console.log(renderTable(
|
|
24978
|
+
console.log(renderTable(TABLE_COLUMNS35, rows));
|
|
24379
24979
|
console.log(`Showing ${rows.length}`);
|
|
24380
24980
|
}, "listAction"));
|
|
24381
24981
|
}
|
|
@@ -24486,7 +25086,7 @@ function registerSecrets(program) {
|
|
|
24486
25086
|
__name(registerSecrets, "registerSecrets");
|
|
24487
25087
|
|
|
24488
25088
|
// src/commands/skills/assignments.ts
|
|
24489
|
-
var
|
|
25089
|
+
var TABLE_COLUMNS36 = [
|
|
24490
25090
|
{ header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
|
|
24491
25091
|
{ header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") }
|
|
24492
25092
|
];
|
|
@@ -24514,7 +25114,7 @@ function registerSkillsAssignments(skills) {
|
|
|
24514
25114
|
console.log("No agents use this skill.");
|
|
24515
25115
|
return;
|
|
24516
25116
|
}
|
|
24517
|
-
console.log(renderTable(
|
|
25117
|
+
console.log(renderTable(TABLE_COLUMNS36, assignments));
|
|
24518
25118
|
console.log(`Showing ${assignments.length} of ${total}`);
|
|
24519
25119
|
}, "assignmentsAction"));
|
|
24520
25120
|
}
|
|
@@ -24796,7 +25396,7 @@ function readContent2(options) {
|
|
|
24796
25396
|
__name(readContent2, "readContent");
|
|
24797
25397
|
|
|
24798
25398
|
// src/commands/skills/files.ts
|
|
24799
|
-
var
|
|
25399
|
+
var TABLE_COLUMNS37 = [
|
|
24800
25400
|
{ header: "PATH", cell: /* @__PURE__ */ __name((row) => row.path, "cell") },
|
|
24801
25401
|
{ header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name, "cell") },
|
|
24802
25402
|
{
|
|
@@ -24835,7 +25435,7 @@ function registerSkillsFiles(skills) {
|
|
|
24835
25435
|
console.log("No files found.");
|
|
24836
25436
|
return;
|
|
24837
25437
|
}
|
|
24838
|
-
console.log(renderTable(
|
|
25438
|
+
console.log(renderTable(TABLE_COLUMNS37, parsed.data.files));
|
|
24839
25439
|
console.log(`Showing ${parsed.data.files.length}`);
|
|
24840
25440
|
}, "filesAction"));
|
|
24841
25441
|
}
|
|
@@ -25213,12 +25813,12 @@ function registerSuggestionsConsume(suggestions) {
|
|
|
25213
25813
|
__name(registerSuggestionsConsume, "registerSuggestionsConsume");
|
|
25214
25814
|
|
|
25215
25815
|
// src/commands/suggestions/list.ts
|
|
25216
|
-
var
|
|
25217
|
-
var
|
|
25218
|
-
var
|
|
25816
|
+
var DEFAULT_LIMIT12 = 100;
|
|
25817
|
+
var MIN_LIMIT12 = 1;
|
|
25818
|
+
var MAX_LIMIT12 = 250;
|
|
25219
25819
|
var STATUS_FILTERS = ["pending", "history"];
|
|
25220
25820
|
var TITLE_PREVIEW_WIDTH2 = 50;
|
|
25221
|
-
var
|
|
25821
|
+
var TABLE_COLUMNS38 = [
|
|
25222
25822
|
{ header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
|
|
25223
25823
|
{ header: "TYPE", cell: /* @__PURE__ */ __name((row) => row.type, "cell") },
|
|
25224
25824
|
{ header: "STATUS", cell: /* @__PURE__ */ __name((row) => row.status, "cell") },
|
|
@@ -25239,11 +25839,11 @@ function registerSuggestionsList(suggestions) {
|
|
|
25239
25839
|
).option(
|
|
25240
25840
|
"--status <filter>",
|
|
25241
25841
|
`which inbox to show (${STATUS_FILTERS.join("|")}, default: pending)`
|
|
25242
|
-
).option("--limit <n>", `page size (${
|
|
25842
|
+
).option("--limit <n>", `page size (${MIN_LIMIT12}-${MAX_LIMIT12})`).option("--offset <n>", "number of suggestions to skip").option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function listAction(agentId, options) {
|
|
25243
25843
|
const limit = parseLimit(options.limit, {
|
|
25244
|
-
defaultValue:
|
|
25245
|
-
min:
|
|
25246
|
-
max:
|
|
25844
|
+
defaultValue: DEFAULT_LIMIT12,
|
|
25845
|
+
min: MIN_LIMIT12,
|
|
25846
|
+
max: MAX_LIMIT12
|
|
25247
25847
|
});
|
|
25248
25848
|
const offset = parseOffset(options.offset);
|
|
25249
25849
|
if (options.status !== void 0 && !isStatusFilter(options.status)) {
|
|
@@ -25281,7 +25881,7 @@ function registerSuggestionsList(suggestions) {
|
|
|
25281
25881
|
console.log(`Pending total: ${pendingCount}`);
|
|
25282
25882
|
return;
|
|
25283
25883
|
}
|
|
25284
|
-
console.log(renderTable(
|
|
25884
|
+
console.log(renderTable(TABLE_COLUMNS38, data));
|
|
25285
25885
|
console.log(
|
|
25286
25886
|
`Showing ${data.length} \xB7 offset ${offset} \xB7 pending total ${pendingCount}`
|
|
25287
25887
|
);
|
|
@@ -25405,10 +26005,10 @@ function registerTeamGet(team) {
|
|
|
25405
26005
|
__name(registerTeamGet, "registerTeamGet");
|
|
25406
26006
|
|
|
25407
26007
|
// src/commands/team/members.ts
|
|
25408
|
-
var
|
|
25409
|
-
var
|
|
25410
|
-
var
|
|
25411
|
-
var
|
|
26008
|
+
var DEFAULT_LIMIT13 = 50;
|
|
26009
|
+
var MIN_LIMIT13 = 1;
|
|
26010
|
+
var MAX_LIMIT13 = 100;
|
|
26011
|
+
var TABLE_COLUMNS39 = [
|
|
25412
26012
|
{ header: "ID", cell: /* @__PURE__ */ __name((row) => row.id, "cell") },
|
|
25413
26013
|
{ header: "NAME", cell: /* @__PURE__ */ __name((row) => row.name ?? "", "cell") },
|
|
25414
26014
|
{ header: "EMAIL", cell: /* @__PURE__ */ __name((row) => row.email, "cell") },
|
|
@@ -25422,11 +26022,11 @@ function registerTeamMembers(team) {
|
|
|
25422
26022
|
team.command("members").description("List members of a team").option(
|
|
25423
26023
|
"--team <id>",
|
|
25424
26024
|
"team ID (defaults to the team scoped to your credentials)"
|
|
25425
|
-
).option("--limit <n>", `page size (${
|
|
26025
|
+
).option("--limit <n>", `page size (${MIN_LIMIT13}-${MAX_LIMIT13})`).option("--offset <n>", "number of members to skip").option("--json", "output raw JSON from the API").action(/* @__PURE__ */ __name(async function membersAction(options) {
|
|
25426
26026
|
const limit = parseLimit(options.limit, {
|
|
25427
|
-
defaultValue:
|
|
25428
|
-
min:
|
|
25429
|
-
max:
|
|
26027
|
+
defaultValue: DEFAULT_LIMIT13,
|
|
26028
|
+
min: MIN_LIMIT13,
|
|
26029
|
+
max: MAX_LIMIT13
|
|
25430
26030
|
});
|
|
25431
26031
|
const offset = parseOffset(options.offset);
|
|
25432
26032
|
const config = await requireAuthenticatedConfig(this);
|
|
@@ -25459,7 +26059,7 @@ function registerTeamMembers(team) {
|
|
|
25459
26059
|
console.log("No members found.");
|
|
25460
26060
|
return;
|
|
25461
26061
|
}
|
|
25462
|
-
console.log(renderTable(
|
|
26062
|
+
console.log(renderTable(TABLE_COLUMNS39, response.members));
|
|
25463
26063
|
console.log(
|
|
25464
26064
|
`Showing ${response.members.length} of ${response.total} \xB7 offset ${response.offset}`
|
|
25465
26065
|
);
|
|
@@ -25657,7 +26257,7 @@ __name(resolveActiveTeamId, "resolveActiveTeamId");
|
|
|
25657
26257
|
var version = resolveVersion();
|
|
25658
26258
|
function resolveVersion() {
|
|
25659
26259
|
if (true) {
|
|
25660
|
-
return "1.
|
|
26260
|
+
return "1.8.0";
|
|
25661
26261
|
}
|
|
25662
26262
|
const packageJsonPath = join3(
|
|
25663
26263
|
dirname3(fileURLToPath2(import.meta.url)),
|
|
@@ -25717,6 +26317,7 @@ function createProgram() {
|
|
|
25717
26317
|
registerRevisionSecrets(program);
|
|
25718
26318
|
registerRevisionLogins(program);
|
|
25719
26319
|
registerClarity(program);
|
|
26320
|
+
registerPulse(program);
|
|
25720
26321
|
return program;
|
|
25721
26322
|
}
|
|
25722
26323
|
__name(createProgram, "createProgram");
|
|
@@ -25740,7 +26341,7 @@ function checkForUpdate() {
|
|
|
25740
26341
|
__name(checkForUpdate, "checkForUpdate");
|
|
25741
26342
|
function loadPackageMeta() {
|
|
25742
26343
|
if (true) {
|
|
25743
|
-
return { name: "@duvoai/cli", version: "1.
|
|
26344
|
+
return { name: "@duvoai/cli", version: "1.8.0" };
|
|
25744
26345
|
}
|
|
25745
26346
|
const require2 = createRequire(import.meta.url);
|
|
25746
26347
|
const raw = require2("../package.json");
|