@kortyx/telemetry-contracts 0.14.0 → 0.17.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/index.js CHANGED
@@ -3,8 +3,8 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
5
  var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
6
+ for (var name2 in all)
7
+ __defProp(target, name2, { get: all[name2], enumerable: true });
8
8
  };
9
9
  var __copyProps = (to, from, except, desc) => {
10
10
  if (from && typeof from === "object" || typeof from === "function") {
@@ -21,11 +21,32 @@ var index_exports = {};
21
21
  __export(index_exports, {
22
22
  ClearScoreResponseSchema: () => ClearScoreResponseSchema,
23
23
  ClearUserFeedbackRequestSchema: () => ClearUserFeedbackRequestSchema,
24
+ DIAGNOSTIC_LIMITS: () => DIAGNOSTIC_LIMITS,
25
+ DiagnosticContentSchema: () => DiagnosticContentSchema,
26
+ DiagnosticCorrelationSchema: () => DiagnosticCorrelationSchema,
27
+ DiagnosticManifestSchema: () => DiagnosticManifestSchema,
28
+ DiagnosticNoteSchema: () => DiagnosticNoteSchema,
29
+ DiagnosticPartSchema: () => DiagnosticPartSchema,
30
+ DiagnosticResponseSchema: () => DiagnosticResponseSchema,
24
31
  EnsureWorkflowTopologyRequestSchema: () => EnsureWorkflowTopologyRequestSchema,
25
32
  EnsureWorkflowTopologyResponseSchema: () => EnsureWorkflowTopologyResponseSchema,
26
33
  FEEDBACK_FILTERS: () => FEEDBACK_FILTERS,
27
34
  FeedbackReasonSchema: () => FeedbackReasonSchema,
28
35
  FeedbackSummarySchema: () => FeedbackSummarySchema,
36
+ PromptAssetSchema: () => PromptAssetSchema,
37
+ PromptAssignmentSchema: () => PromptAssignmentSchema,
38
+ PromptBundleSchema: () => PromptBundleSchema,
39
+ PromptCategorySchema: () => PromptCategorySchema,
40
+ PromptDetailSchema: () => PromptDetailSchema,
41
+ PromptEvidenceSchema: () => PromptEvidenceSchema,
42
+ PromptGroupSchema: () => PromptGroupSchema,
43
+ PromptLibrarySchema: () => PromptLibrarySchema,
44
+ PromptMutationSchema: () => PromptMutationSchema,
45
+ PromptPolicySchema: () => PromptPolicySchema,
46
+ PromptSelectionSchema: () => PromptSelectionSchema,
47
+ PromptStoredVersionSchema: () => PromptStoredVersionSchema,
48
+ PromptTransferRequestSchema: () => PromptTransferRequestSchema,
49
+ PromptUsageSchema: () => PromptUsageSchema,
29
50
  ReviewVerdictSchema: () => ReviewVerdictSchema,
30
51
  STUDIO_API_PROTOCOL_VERSION: () => STUDIO_API_PROTOCOL_VERSION,
31
52
  STUDIO_TIME_RANGES: () => STUDIO_TIME_RANGES,
@@ -94,15 +115,19 @@ __export(index_exports, {
94
115
  WorkflowTopologyEdgeSchema: () => WorkflowTopologyEdgeSchema,
95
116
  WorkflowTopologyNodeSchema: () => WorkflowTopologyNodeSchema,
96
117
  WorkflowTopologyTransitionSchema: () => WorkflowTopologyTransitionSchema,
118
+ isPrivateDiagnosticField: () => isPrivateDiagnosticField,
97
119
  newerStudioVersion: () => newerStudioVersion,
98
120
  projectWorkflowCalls: () => projectWorkflowCalls,
121
+ redactDiagnosticContent: () => redactDiagnosticContent,
122
+ redactDiagnosticText: () => redactDiagnosticText,
99
123
  resolveStudioInterruptStatus: () => resolveStudioInterruptStatus,
100
124
  resolveStudioTimeRange: () => resolveStudioTimeRange,
101
125
  studioUpdateRunning: () => studioUpdateRunning,
126
+ summarizeDiagnostic: () => summarizeDiagnostic,
102
127
  summarizeUserFeedback: () => summarizeUserFeedback
103
128
  });
104
129
  module.exports = __toCommonJS(index_exports);
105
- var import_zod4 = require("zod");
130
+ var import_zod6 = require("zod");
106
131
 
107
132
  // src/scores.ts
108
133
  var import_zod = require("zod");
@@ -177,94 +202,591 @@ function summarizeUserFeedback(scores) {
177
202
  return feedback;
178
203
  }
179
204
 
180
- // src/tools.ts
205
+ // src/diagnostics.ts
181
206
  var import_zod2 = require("zod");
182
- var ToolOutcomeSchema = import_zod2.z.enum([
207
+ var DIAGNOSTIC_LIMITS = {
208
+ bytes: 8 * 1024 * 1024,
209
+ partBytes: 64 * 1024,
210
+ parts: 128,
211
+ nodes: 1e4,
212
+ depth: 128,
213
+ properties: 1e3
214
+ };
215
+ var DiagnosticNoteSchema = import_zod2.z.object({
216
+ path: import_zod2.z.string().max(4096),
217
+ reason: import_zod2.z.string().max(128),
218
+ originalBytes: import_zod2.z.number().int().nonnegative().optional(),
219
+ originalCount: import_zod2.z.number().int().nonnegative().optional()
220
+ }).strict();
221
+ var DiagnosticContentSchema = import_zod2.z.object({
222
+ schemaVersion: import_zod2.z.literal(1),
223
+ data: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown()),
224
+ capture: import_zod2.z.object({
225
+ status: import_zod2.z.enum(["complete", "partial", "failed"]),
226
+ omissions: import_zod2.z.array(DiagnosticNoteSchema).max(1e4),
227
+ redactions: import_zod2.z.array(DiagnosticNoteSchema).max(1e4)
228
+ }).strict()
229
+ }).strict();
230
+ var DiagnosticCorrelationSchema = import_zod2.z.object({
231
+ runId: import_zod2.z.string().optional(),
232
+ workflowId: import_zod2.z.string().optional(),
233
+ nodeId: import_zod2.z.string().optional(),
234
+ sessionId: import_zod2.z.string().optional(),
235
+ invocationId: import_zod2.z.string().optional(),
236
+ parentInvocationId: import_zod2.z.string().optional(),
237
+ branchId: import_zod2.z.string().optional(),
238
+ toolCallId: import_zod2.z.string().optional(),
239
+ attemptId: import_zod2.z.string().optional(),
240
+ workflowRevisionId: import_zod2.z.string().optional(),
241
+ traceId: import_zod2.z.string().optional(),
242
+ spanId: import_zod2.z.string().optional(),
243
+ parentSpanId: import_zod2.z.string().optional()
244
+ }).strict();
245
+ var DiagnosticManifestSchema = import_zod2.z.object({
246
+ schemaVersion: import_zod2.z.literal(1),
247
+ diagnosticId: import_zod2.z.string().uuid(),
248
+ occurrenceId: import_zod2.z.string().uuid(),
249
+ occurredAt: import_zod2.z.string().datetime({ offset: true }),
250
+ environment: import_zod2.z.string().min(1).max(256),
251
+ service: import_zod2.z.object({
252
+ name: import_zod2.z.string().min(1).max(256),
253
+ deploymentRef: import_zod2.z.string().max(1024).optional()
254
+ }).strict(),
255
+ correlation: DiagnosticCorrelationSchema,
256
+ handled: import_zod2.z.boolean(),
257
+ severity: import_zod2.z.enum(["warning", "error"]),
258
+ mechanism: import_zod2.z.enum(["span", "report", "tool"]),
259
+ summary: import_zod2.z.object({ type: import_zod2.z.string().max(256), message: import_zod2.z.string().max(8192) }).strict(),
260
+ captureStatus: import_zod2.z.enum(["complete", "partial", "failed"]),
261
+ checksum: import_zod2.z.string().regex(/^[a-f0-9]{64}$/),
262
+ byteLength: import_zod2.z.number().int().min(1).max(DIAGNOSTIC_LIMITS.bytes),
263
+ partCount: import_zod2.z.number().int().min(1).max(DIAGNOSTIC_LIMITS.parts)
264
+ }).strict().superRefine((value, ctx) => {
265
+ if (value.partCount !== Math.ceil(value.byteLength / DIAGNOSTIC_LIMITS.partBytes))
266
+ ctx.addIssue({
267
+ code: "custom",
268
+ path: ["partCount"],
269
+ message: "Part count does not match byte length."
270
+ });
271
+ });
272
+ var DiagnosticPartSchema = import_zod2.z.object({
273
+ index: import_zod2.z.number().int().min(0).max(DIAGNOSTIC_LIMITS.parts - 1),
274
+ data: import_zod2.z.string().max(Math.ceil(DIAGNOSTIC_LIMITS.partBytes / 3) * 4).regex(
275
+ /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/
276
+ )
277
+ }).strict();
278
+ var DiagnosticResponseSchema = import_zod2.z.object({
279
+ manifest: DiagnosticManifestSchema,
280
+ state: import_zod2.z.enum(["pending", "available", "incomplete", "expired"]),
281
+ receivedParts: import_zod2.z.number().int().nonnegative(),
282
+ expiresAt: import_zod2.z.string().datetime({ offset: true }),
283
+ content: DiagnosticContentSchema.nullable(),
284
+ contentChecksum: import_zod2.z.string().regex(/^[a-f0-9]{64}$/).nullable(),
285
+ contentByteLength: import_zod2.z.number().int().nonnegative().nullable()
286
+ }).strict();
287
+ var isPrivateDiagnosticField = (key) => /^(?:password|passwd|secret|clientsecret|privatekey|credential|credentials|authorization|proxyauthorization|bearer|bearertoken|jwt|token|accesstoken|refreshtoken|authtoken|apikey|xapikey|apitoken|xauthtoken|xaccesstoken|awsaccesskeyid|awssecretaccesskey|awssessiontoken|xamzsecuritytoken|apisecret|cookie|setcookie|resumehandle|resumetoken)$/.test(
288
+ key.toLowerCase().replace(/[^a-z0-9]/g, "")
289
+ );
290
+ function redactDiagnosticText(value) {
291
+ return value.replace(/\bBearer\s+[A-Za-z0-9._~+/-]+=*/gi, "Bearer [REDACTED]").replace(
292
+ /\b(?:ktyx_(?:test|live)_[^\s"'<>]+|sk-(?:proj-|ant-)?[A-Za-z0-9_-]{12,}|AIza[A-Za-z0-9_-]{20,}|eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+)/g,
293
+ "[REDACTED]"
294
+ ).replace(
295
+ /(["']?(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|passwd|secret|token|client[_-]?secret|authorization|cookie)["']?\s*[:=]\s*)(["'])(.*?)\2/gi,
296
+ "$1$2[REDACTED]$2"
297
+ ).replace(
298
+ /(\b(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|passwd|secret|token|client[_-]?secret)\s*[:=]\s*)(?!["'[])[^\s,;}&]+/gi,
299
+ "$1[REDACTED]"
300
+ ).replace(
301
+ /(\b(?:authorization|proxy-authorization)\s*:\s*Basic\s+)[A-Za-z0-9+/=]+/gi,
302
+ "$1[REDACTED]"
303
+ ).replace(
304
+ /([?&](?:api[_-]?key|token|access[_-]?token|password)=)[^&#\s]+/gi,
305
+ "$1[REDACTED]"
306
+ ).replace(/(https?:\/\/)[^\s/@:]+:[^\s/@]+@/gi, "$1[REDACTED]@");
307
+ }
308
+ function summarizeDiagnostic(data, depth = 0) {
309
+ return {
310
+ type: typeof data.type === "string" ? data.type.slice(0, 256) : "Error",
311
+ message: typeof data.message === "string" ? data.message.slice(0, 8192) : "Execution reported a fault.",
312
+ ...typeof data.stack === "string" ? { stack: data.stack.slice(0, 32768) } : {},
313
+ ...depth < 4 && data.cause && typeof data.cause === "object" && !Array.isArray(data.cause) ? {
314
+ cause: summarizeDiagnostic(
315
+ data.cause,
316
+ depth + 1
317
+ )
318
+ } : {}
319
+ };
320
+ }
321
+ function redactDiagnosticContent(content) {
322
+ const redactions = [...content.capture.redactions];
323
+ const omissions = [...content.capture.omissions];
324
+ let nodes = 0;
325
+ const visit = (value, path, depth = 0) => {
326
+ if (++nodes > DIAGNOSTIC_LIMITS.nodes || depth > DIAGNOSTIC_LIMITS.depth) {
327
+ const reason = depth > DIAGNOSTIC_LIMITS.depth ? "server_depth_limit" : "server_node_limit";
328
+ if (omissions.length < 1e4)
329
+ omissions.push({ path: path.slice(0, 4096), reason });
330
+ return { $omitted: reason };
331
+ }
332
+ if (typeof value === "string") {
333
+ const clean = redactDiagnosticText(value);
334
+ if (clean !== value && redactions.length < 1e4)
335
+ redactions.push({
336
+ path: path.slice(0, 4096),
337
+ reason: "server_credential_text"
338
+ });
339
+ return clean;
340
+ }
341
+ if (Array.isArray(value)) {
342
+ if (value.length > DIAGNOSTIC_LIMITS.properties && omissions.length < 1e4)
343
+ omissions.push({
344
+ path: path.slice(0, 4096),
345
+ reason: "server_collection_limit",
346
+ originalCount: value.length
347
+ });
348
+ return value.slice(0, DIAGNOSTIC_LIMITS.properties).map((item, index) => visit(item, `${path}/${index}`, depth + 1));
349
+ }
350
+ if (value && typeof value === "object") {
351
+ const keys = Object.keys(value);
352
+ if (keys.length > DIAGNOSTIC_LIMITS.properties && omissions.length < 1e4)
353
+ omissions.push({
354
+ path: path.slice(0, 4096),
355
+ reason: "server_property_limit",
356
+ originalCount: keys.length
357
+ });
358
+ return Object.fromEntries(
359
+ keys.slice(0, DIAGNOSTIC_LIMITS.properties).map((key) => {
360
+ const nested = value[key];
361
+ if (isPrivateDiagnosticField(key)) {
362
+ if (redactions.length < 1e4 && nested !== "[REDACTED]")
363
+ redactions.push({
364
+ path: `${path}/${key}`.slice(0, 4096),
365
+ reason: "server_credential_field"
366
+ });
367
+ return [key, "[REDACTED]"];
368
+ }
369
+ return [key, visit(nested, `${path}/${key}`, depth + 1)];
370
+ })
371
+ );
372
+ }
373
+ return value;
374
+ };
375
+ return {
376
+ ...content,
377
+ data: visit(content.data, "#/data"),
378
+ capture: {
379
+ ...content.capture,
380
+ status: content.capture.status === "failed" ? "failed" : omissions.length ? "partial" : "complete",
381
+ omissions: omissions.map((note) => ({
382
+ ...note,
383
+ path: redactDiagnosticText(note.path),
384
+ reason: redactDiagnosticText(note.reason)
385
+ })),
386
+ redactions: redactions.map((note) => ({
387
+ ...note,
388
+ path: redactDiagnosticText(note.path),
389
+ reason: redactDiagnosticText(note.reason)
390
+ }))
391
+ }
392
+ };
393
+ }
394
+
395
+ // src/tools.ts
396
+ var import_zod3 = require("zod");
397
+ var ToolOutcomeSchema = import_zod3.z.enum([
183
398
  "success",
184
399
  "denied",
185
400
  "fault",
186
401
  "cancelled"
187
402
  ]);
188
- var ToolObservationSchema = import_zod2.z.object({
189
- version: import_zod2.z.literal(1),
190
- name: import_zod2.z.string().min(1).max(256),
191
- toolCallId: import_zod2.z.string().min(1),
192
- attemptId: import_zod2.z.string().min(1),
193
- callingMode: import_zod2.z.enum(["direct", "model"]),
194
- executed: import_zod2.z.boolean(),
403
+ var ToolObservationSchema = import_zod3.z.object({
404
+ version: import_zod3.z.literal(1),
405
+ name: import_zod3.z.string().min(1).max(256),
406
+ toolCallId: import_zod3.z.string().min(1),
407
+ attemptId: import_zod3.z.string().min(1),
408
+ callingMode: import_zod3.z.enum(["direct", "model"]),
409
+ executed: import_zod3.z.boolean(),
195
410
  outcome: ToolOutcomeSchema.optional(),
196
- denialCode: import_zod2.z.string().regex(/^[A-Z][A-Z0-9_]{0,63}$/).optional(),
197
- errorType: import_zod2.z.string().max(256).optional(),
198
- errorMessage: import_zod2.z.string().max(8192).optional(),
199
- durationMs: import_zod2.z.number().finite().nonnegative().optional(),
200
- workflowId: import_zod2.z.string().optional(),
201
- nodeId: import_zod2.z.string().optional(),
202
- workflowRevisionId: import_zod2.z.string().optional(),
203
- runId: import_zod2.z.string().optional(),
204
- invocationId: import_zod2.z.string().optional(),
205
- parentInvocationId: import_zod2.z.string().optional(),
206
- branchId: import_zod2.z.string().optional(),
207
- observationKind: import_zod2.z.enum(["reused", "waiting"]).optional(),
208
- suspended: import_zod2.z.boolean().optional(),
209
- source: import_zod2.z.object({
210
- runId: import_zod2.z.string().optional(),
211
- invocationId: import_zod2.z.string().optional(),
212
- branchId: import_zod2.z.string().optional(),
213
- toolCallId: import_zod2.z.string(),
214
- attemptId: import_zod2.z.string()
411
+ denialCode: import_zod3.z.string().regex(/^[A-Z][A-Z0-9_]{0,63}$/).optional(),
412
+ errorType: import_zod3.z.string().max(256).optional(),
413
+ errorMessage: import_zod3.z.string().max(8192).optional(),
414
+ diagnosticId: import_zod3.z.string().uuid().optional(),
415
+ durationMs: import_zod3.z.number().finite().nonnegative().optional(),
416
+ workflowId: import_zod3.z.string().optional(),
417
+ nodeId: import_zod3.z.string().optional(),
418
+ workflowRevisionId: import_zod3.z.string().optional(),
419
+ runId: import_zod3.z.string().optional(),
420
+ invocationId: import_zod3.z.string().optional(),
421
+ parentInvocationId: import_zod3.z.string().optional(),
422
+ branchId: import_zod3.z.string().optional(),
423
+ observationKind: import_zod3.z.enum(["reused", "waiting"]).optional(),
424
+ suspended: import_zod3.z.boolean().optional(),
425
+ source: import_zod3.z.object({
426
+ runId: import_zod3.z.string().optional(),
427
+ invocationId: import_zod3.z.string().optional(),
428
+ branchId: import_zod3.z.string().optional(),
429
+ toolCallId: import_zod3.z.string(),
430
+ attemptId: import_zod3.z.string()
215
431
  }).strict().optional()
216
432
  });
217
- var WorkflowToolSchema = import_zod2.z.object({
218
- name: import_zod2.z.string().min(1).max(256),
219
- description: import_zod2.z.string().max(4096).optional(),
220
- callingMode: import_zod2.z.enum(["direct", "model"]),
221
- provenance: import_zod2.z.enum(["source", "observed"]),
222
- inputFields: import_zod2.z.array(
223
- import_zod2.z.object({ name: import_zod2.z.string(), type: import_zod2.z.string(), required: import_zod2.z.boolean() }).strict()
433
+ var WorkflowToolSchema = import_zod3.z.object({
434
+ name: import_zod3.z.string().min(1).max(256),
435
+ description: import_zod3.z.string().max(4096).optional(),
436
+ callingMode: import_zod3.z.enum(["direct", "model"]),
437
+ provenance: import_zod3.z.enum(["source", "observed"]),
438
+ inputFields: import_zod3.z.array(
439
+ import_zod3.z.object({ name: import_zod3.z.string(), type: import_zod3.z.string(), required: import_zod3.z.boolean() }).strict()
224
440
  ).optional()
225
441
  }).strict();
226
- var ToolDiscoverySchema = import_zod2.z.object({
227
- status: import_zod2.z.enum(["complete", "unresolved"]),
228
- publishedAt: import_zod2.z.string().datetime().optional(),
229
- warnings: import_zod2.z.array(import_zod2.z.string()).optional()
442
+ var ToolDiscoverySchema = import_zod3.z.object({
443
+ status: import_zod3.z.enum(["complete", "unresolved"]),
444
+ publishedAt: import_zod3.z.string().datetime().optional(),
445
+ warnings: import_zod3.z.array(import_zod3.z.string()).optional()
230
446
  }).strict();
231
447
  var StudioToolSchema = WorkflowToolSchema.extend({
232
- callingMode: import_zod2.z.enum(["direct", "model", "unknown"]),
233
- calls: import_zod2.z.number().nonnegative(),
234
- replays: import_zod2.z.number().nonnegative(),
235
- successes: import_zod2.z.number().nonnegative(),
236
- denials: import_zod2.z.number().nonnegative(),
237
- faults: import_zod2.z.number().nonnegative(),
238
- cancellations: import_zod2.z.number().nonnegative(),
239
- p50DurationMs: import_zod2.z.number().nonnegative().nullable(),
240
- p95DurationMs: import_zod2.z.number().nonnegative().nullable()
448
+ callingMode: import_zod3.z.enum(["direct", "model", "unknown"]),
449
+ calls: import_zod3.z.number().nonnegative(),
450
+ replays: import_zod3.z.number().nonnegative(),
451
+ successes: import_zod3.z.number().nonnegative(),
452
+ denials: import_zod3.z.number().nonnegative(),
453
+ faults: import_zod3.z.number().nonnegative(),
454
+ cancellations: import_zod3.z.number().nonnegative(),
455
+ p50DurationMs: import_zod3.z.number().nonnegative().nullable(),
456
+ p95DurationMs: import_zod3.z.number().nonnegative().nullable()
457
+ }).strict();
458
+
459
+ // src/prompts.ts
460
+ var import_browser = require("@kortyx/prompts/browser");
461
+ var import_zod4 = require("zod");
462
+ var name = import_zod4.z.string().trim().min(1).max(200);
463
+ var version = import_zod4.z.number().int().positive();
464
+ var revision = import_zod4.z.number().int().nonnegative();
465
+ var PromptCategorySchema = import_zod4.z.object({
466
+ id: import_zod4.z.uuid(),
467
+ name,
468
+ parentId: import_zod4.z.uuid().nullable(),
469
+ revision
470
+ });
471
+ var PromptGroupSchema = import_zod4.z.object({
472
+ id: import_zod4.z.uuid(),
473
+ name,
474
+ revision,
475
+ members: import_zod4.z.array(
476
+ import_zod4.z.object({
477
+ promptId: import_zod4.z.uuid(),
478
+ version,
479
+ key: import_browser.PromptKeySchema.optional(),
480
+ name: name.optional(),
481
+ archived: import_zod4.z.boolean().optional()
482
+ })
483
+ ).max(100),
484
+ updatedAt: import_zod4.z.string()
485
+ });
486
+ var PromptAssignmentSchema = import_zod4.z.object({
487
+ tag: import_browser.PromptTagSchema,
488
+ version,
489
+ revision,
490
+ updatedAt: import_zod4.z.string()
491
+ });
492
+ var PromptAssetSchema = import_zod4.z.object({
493
+ id: import_zod4.z.uuid(),
494
+ key: import_browser.PromptKeySchema,
495
+ name,
496
+ categoryId: import_zod4.z.uuid().nullable(),
497
+ latestVersion: version,
498
+ revision,
499
+ archived: import_zod4.z.boolean(),
500
+ updatedAt: import_zod4.z.string(),
501
+ assignments: import_zod4.z.array(PromptAssignmentSchema)
502
+ });
503
+ var PromptLibrarySchema = import_zod4.z.object({
504
+ schemaVersion: import_zod4.z.literal(1),
505
+ assets: import_zod4.z.array(PromptAssetSchema),
506
+ categories: import_zod4.z.array(PromptCategorySchema),
507
+ groups: import_zod4.z.array(PromptGroupSchema),
508
+ totalCount: import_zod4.z.number().int().nonnegative(),
509
+ nextCursor: import_zod4.z.string().nullable(),
510
+ permissions: import_zod4.z.object({
511
+ edit: import_zod4.z.boolean(),
512
+ promote: import_zod4.z.boolean(),
513
+ review: import_zod4.z.boolean(),
514
+ settings: import_zod4.z.boolean()
515
+ })
516
+ });
517
+ var PromptStoredVersionSchema = import_browser.PromptVersionSchema.extend({
518
+ promptId: import_zod4.z.uuid(),
519
+ note: import_zod4.z.string(),
520
+ author: import_zod4.z.string(),
521
+ createdAt: import_zod4.z.string(),
522
+ origin: import_zod4.z.object({
523
+ apiUrl: import_zod4.z.string(),
524
+ projectId: import_zod4.z.string(),
525
+ key: import_zod4.z.string(),
526
+ version,
527
+ hash: import_zod4.z.string()
528
+ }).nullable()
529
+ });
530
+ var PromptPolicySchema = import_zod4.z.object({
531
+ revision,
532
+ requireTest: import_zod4.z.boolean(),
533
+ requireChangeNote: import_zod4.z.boolean().default(false),
534
+ requiredSuites: import_zod4.z.array(import_zod4.z.object({ targetId: name, suiteId: name })).max(100),
535
+ requiredReviews: import_zod4.z.number().int().min(0).max(10),
536
+ allowException: import_zod4.z.boolean()
537
+ });
538
+ var PromptEvidenceSchema = import_zod4.z.object({
539
+ environment: import_zod4.z.string(),
540
+ runId: import_zod4.z.string(),
541
+ evaluationId: import_zod4.z.string().nullable().optional(),
542
+ targetId: import_zod4.z.string(),
543
+ suiteId: import_zod4.z.string(),
544
+ suiteRevision: import_zod4.z.string().optional(),
545
+ status: import_zod4.z.string(),
546
+ version,
547
+ fullSuite: import_zod4.z.boolean(),
548
+ usage: import_zod4.z.enum([
549
+ "verified",
550
+ "pending",
551
+ "not-used",
552
+ "mismatch",
553
+ "context-differs"
554
+ ]),
555
+ groupName: import_zod4.z.string().nullable(),
556
+ createdAt: import_zod4.z.string(),
557
+ companions: import_zod4.z.array(import_zod4.z.object({ key: import_browser.PromptKeySchema, version }))
558
+ });
559
+ var PromptUsageSchema = import_zod4.z.object({
560
+ eventId: import_zod4.z.string(),
561
+ runId: import_zod4.z.string(),
562
+ sessionId: import_zod4.z.string().nullable(),
563
+ nodeId: import_zod4.z.string().nullable(),
564
+ version: import_zod4.z.number().int(),
565
+ hash: import_zod4.z.string().nullable(),
566
+ source: import_zod4.z.string().nullable(),
567
+ model: import_zod4.z.string().nullable(),
568
+ environment: import_zod4.z.string(),
569
+ occurredAt: import_zod4.z.string(),
570
+ captured: import_zod4.z.boolean()
571
+ });
572
+ var PromptDetailSchema = import_zod4.z.object({
573
+ asset: PromptAssetSchema,
574
+ versions: import_zod4.z.array(PromptStoredVersionSchema),
575
+ versionsNextCursor: import_zod4.z.string().nullable().optional(),
576
+ draft: import_browser.PromptContentSchema.nullable(),
577
+ draftBase: import_zod4.z.number().int().nullable(),
578
+ draftRevision: revision,
579
+ evidence: import_zod4.z.array(PromptEvidenceSchema),
580
+ usage: import_zod4.z.array(PromptUsageSchema),
581
+ activity: import_zod4.z.array(
582
+ import_zod4.z.object({
583
+ id: import_zod4.z.string(),
584
+ action: import_zod4.z.string(),
585
+ actor: import_zod4.z.string(),
586
+ details: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown()),
587
+ createdAt: import_zod4.z.string()
588
+ })
589
+ ),
590
+ policies: import_zod4.z.array(PromptPolicySchema),
591
+ reviews: import_zod4.z.array(
592
+ import_zod4.z.object({
593
+ version,
594
+ hash: import_zod4.z.string(),
595
+ independent: import_zod4.z.boolean(),
596
+ reviewer: import_zod4.z.string(),
597
+ note: import_zod4.z.string(),
598
+ createdAt: import_zod4.z.string()
599
+ })
600
+ ).optional()
601
+ });
602
+ var PromptMutationSchema = import_zod4.z.discriminatedUnion("action", [
603
+ import_zod4.z.object({
604
+ action: import_zod4.z.literal("tag-set"),
605
+ id: import_zod4.z.uuid(),
606
+ tag: import_browser.PromptTagSchema.refine(
607
+ (tag) => tag !== "live",
608
+ "Use promotion to update live."
609
+ ),
610
+ version,
611
+ expectedRevision: revision
612
+ }).strict(),
613
+ import_zod4.z.object({
614
+ action: import_zod4.z.literal("tag-remove"),
615
+ id: import_zod4.z.uuid(),
616
+ tag: import_browser.PromptTagSchema.refine(
617
+ (tag) => tag !== "live",
618
+ "The live tag cannot be removed manually."
619
+ ),
620
+ expectedRevision: revision
621
+ }).strict(),
622
+ import_zod4.z.object({
623
+ action: import_zod4.z.literal("bulk-update"),
624
+ assets: import_zod4.z.array(import_zod4.z.object({ id: import_zod4.z.uuid(), expectedRevision: revision })).min(1).max(100),
625
+ categoryId: import_zod4.z.uuid().nullable().optional(),
626
+ archived: import_zod4.z.boolean().optional()
627
+ }).strict().refine(
628
+ (value) => value.categoryId !== void 0 || value.archived !== void 0,
629
+ "Choose a category or archive state."
630
+ ),
631
+ import_zod4.z.object({
632
+ action: import_zod4.z.literal("create"),
633
+ key: import_browser.PromptKeySchema,
634
+ name,
635
+ categoryId: import_zod4.z.uuid().nullable().default(null),
636
+ content: import_browser.PromptContentSchema,
637
+ note: import_zod4.z.string().trim().max(2e3).default(""),
638
+ idempotencyKey: import_zod4.z.uuid().optional()
639
+ }).strict(),
640
+ import_zod4.z.object({
641
+ action: import_zod4.z.literal("draft"),
642
+ id: import_zod4.z.uuid(),
643
+ content: import_browser.PromptContentSchema,
644
+ baseVersion: version,
645
+ expectedRevision: revision
646
+ }).strict(),
647
+ import_zod4.z.object({
648
+ action: import_zod4.z.literal("discard-draft"),
649
+ id: import_zod4.z.uuid(),
650
+ expectedRevision: revision
651
+ }).strict(),
652
+ import_zod4.z.object({
653
+ action: import_zod4.z.literal("save"),
654
+ id: import_zod4.z.uuid(),
655
+ content: import_browser.PromptContentSchema,
656
+ baseVersion: version,
657
+ expectedHash: import_zod4.z.string().regex(/^[a-f0-9]{64}$/),
658
+ expectedDraftRevision: revision.optional(),
659
+ note: import_zod4.z.string().trim().max(2e3).default(""),
660
+ idempotencyKey: import_zod4.z.uuid()
661
+ }).strict(),
662
+ import_zod4.z.object({
663
+ action: import_zod4.z.literal("update"),
664
+ id: import_zod4.z.uuid(),
665
+ expectedRevision: revision,
666
+ name: name.optional(),
667
+ categoryId: import_zod4.z.uuid().nullable().optional(),
668
+ archived: import_zod4.z.boolean().optional()
669
+ }).strict(),
670
+ import_zod4.z.object({
671
+ action: import_zod4.z.literal("category-create"),
672
+ path: import_zod4.z.string().trim().min(1).max(1e3)
673
+ }).strict(),
674
+ import_zod4.z.object({
675
+ action: import_zod4.z.literal("category-update"),
676
+ id: import_zod4.z.uuid(),
677
+ expectedRevision: revision,
678
+ name: name.optional(),
679
+ parentId: import_zod4.z.uuid().nullable().optional()
680
+ }).strict(),
681
+ import_zod4.z.object({
682
+ action: import_zod4.z.literal("category-delete"),
683
+ id: import_zod4.z.uuid(),
684
+ expectedRevision: revision,
685
+ destinationId: import_zod4.z.uuid().nullable()
686
+ }).strict(),
687
+ import_zod4.z.object({
688
+ action: import_zod4.z.literal("group-create"),
689
+ name,
690
+ members: import_zod4.z.array(import_zod4.z.object({ promptId: import_zod4.z.uuid(), version })).max(100).optional()
691
+ }).strict(),
692
+ import_zod4.z.object({
693
+ action: import_zod4.z.literal("group-update"),
694
+ id: import_zod4.z.uuid(),
695
+ expectedRevision: revision,
696
+ name: name.optional(),
697
+ members: import_zod4.z.array(import_zod4.z.object({ promptId: import_zod4.z.uuid(), version })).max(100).optional()
698
+ }).strict(),
699
+ import_zod4.z.object({
700
+ action: import_zod4.z.literal("group-delete"),
701
+ id: import_zod4.z.uuid(),
702
+ expectedRevision: revision
703
+ }).strict(),
704
+ import_zod4.z.object({
705
+ action: import_zod4.z.literal("promote"),
706
+ id: import_zod4.z.uuid(),
707
+ version,
708
+ expectedRevision: revision,
709
+ exceptionReason: import_zod4.z.string().trim().min(1).max(2e3).optional(),
710
+ rollback: import_zod4.z.boolean().default(false)
711
+ }).strict(),
712
+ import_zod4.z.object({
713
+ action: import_zod4.z.literal("review"),
714
+ id: import_zod4.z.uuid(),
715
+ version,
716
+ note: import_zod4.z.string().trim().min(1).max(2e3)
717
+ }).strict(),
718
+ import_zod4.z.object({
719
+ action: import_zod4.z.literal("policy"),
720
+ id: import_zod4.z.uuid(),
721
+ policy: PromptPolicySchema
722
+ }).strict()
723
+ ]);
724
+ var PromptSelectionSchema = import_zod4.z.discriminatedUnion("type", [
725
+ import_zod4.z.object({ type: import_zod4.z.literal("live") }).strict(),
726
+ import_zod4.z.object({
727
+ type: import_zod4.z.literal("single"),
728
+ id: import_zod4.z.string().min(1),
729
+ version: import_zod4.z.number().int().positive()
730
+ }).strict(),
731
+ import_zod4.z.object({ type: import_zod4.z.literal("group"), groupId: import_zod4.z.uuid() }).strict()
732
+ ]);
733
+ var PromptBundleSchema = import_zod4.z.object({
734
+ schemaVersion: import_zod4.z.literal(1),
735
+ origin: import_zod4.z.object({
736
+ apiUrl: import_zod4.z.url().refine((value) => {
737
+ const url = new URL(value);
738
+ return /^https?:$/.test(url.protocol) && !url.username && !url.password && !url.search;
739
+ }),
740
+ projectId: import_zod4.z.string().min(1)
741
+ }).strict(),
742
+ prompts: import_zod4.z.array(
743
+ import_zod4.z.object({
744
+ key: import_browser.PromptKeySchema,
745
+ name,
746
+ categoryPath: import_zod4.z.string().optional(),
747
+ versions: import_zod4.z.array(import_browser.PromptVersionSchema.extend({ note: import_zod4.z.string().max(2e3) })).min(1).max(200)
748
+ }).strict()
749
+ ).min(1).max(200),
750
+ groups: import_zod4.z.array(
751
+ import_zod4.z.object({
752
+ name,
753
+ members: import_zod4.z.array(import_zod4.z.object({ key: import_browser.PromptKeySchema, version })).max(100)
754
+ }).strict()
755
+ ).max(100).default([])
756
+ }).strict();
757
+ var PromptTransferRequestSchema = import_zod4.z.object({
758
+ bundle: PromptBundleSchema,
759
+ conflicts: import_zod4.z.enum(["error", "append"]).default("error"),
760
+ rename: import_zod4.z.record(import_browser.PromptKeySchema, import_browser.PromptKeySchema).default({}),
761
+ categories: import_zod4.z.boolean().default(true),
762
+ groups: import_zod4.z.boolean().default(false)
241
763
  }).strict();
242
764
 
243
765
  // src/studio-updates.ts
244
- var import_zod3 = require("zod");
245
- var StudioReleaseVersionSchema = import_zod3.z.string().regex(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/);
246
- var StudioReleaseDeploymentSchema = import_zod3.z.object({
247
- strategy: import_zod3.z.enum(["rolling", "recreate"])
766
+ var import_zod5 = require("zod");
767
+ var StudioReleaseVersionSchema = import_zod5.z.string().regex(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/);
768
+ var StudioReleaseDeploymentSchema = import_zod5.z.object({
769
+ strategy: import_zod5.z.enum(["rolling", "recreate"])
248
770
  });
249
- var StudioReleaseSchema = import_zod3.z.object({
250
- format: import_zod3.z.literal(1),
251
- installer: import_zod3.z.literal(1),
771
+ var StudioReleaseSchema = import_zod5.z.object({
772
+ format: import_zod5.z.literal(1),
773
+ installer: import_zod5.z.literal(1),
252
774
  version: StudioReleaseVersionSchema,
253
- api: import_zod3.z.string().regex(/^ghcr\.io\/kortyx-io\/kortyx-api@sha256:[a-f0-9]{64}$/),
254
- studio: import_zod3.z.string().regex(/^ghcr\.io\/kortyx-io\/kortyx-studio@sha256:[a-f0-9]{64}$/),
775
+ api: import_zod5.z.string().regex(/^ghcr\.io\/kortyx-io\/kortyx-api@sha256:[a-f0-9]{64}$/),
776
+ studio: import_zod5.z.string().regex(/^ghcr\.io\/kortyx-io\/kortyx-studio@sha256:[a-f0-9]{64}$/),
255
777
  deployment: StudioReleaseDeploymentSchema.default({
256
778
  strategy: "recreate"
257
779
  })
258
780
  });
259
- var StudioUpdateSettingsSchema = import_zod3.z.object({
260
- automatic: import_zod3.z.boolean(),
261
- hourUtc: import_zod3.z.number().int().min(0).max(23)
781
+ var StudioUpdateSettingsSchema = import_zod5.z.object({
782
+ automatic: import_zod5.z.boolean(),
783
+ hourUtc: import_zod5.z.number().int().min(0).max(23)
262
784
  });
263
- var StudioUpdateOperationSchema = import_zod3.z.object({
264
- id: import_zod3.z.uuid(),
265
- from: import_zod3.z.string(),
785
+ var StudioUpdateOperationSchema = import_zod5.z.object({
786
+ id: import_zod5.z.uuid(),
787
+ from: import_zod5.z.string(),
266
788
  release: StudioReleaseSchema,
267
- phase: import_zod3.z.enum([
789
+ phase: import_zod5.z.enum([
268
790
  "starting",
269
791
  "pulling",
270
792
  "backup",
@@ -273,16 +795,16 @@ var StudioUpdateOperationSchema = import_zod3.z.object({
273
795
  "succeeded",
274
796
  "failed"
275
797
  ]),
276
- startedAt: import_zod3.z.iso.datetime(),
277
- updatedAt: import_zod3.z.iso.datetime(),
278
- backup: import_zod3.z.string().nullable(),
279
- messages: import_zod3.z.array(import_zod3.z.string()).max(100)
798
+ startedAt: import_zod5.z.iso.datetime(),
799
+ updatedAt: import_zod5.z.iso.datetime(),
800
+ backup: import_zod5.z.string().nullable(),
801
+ messages: import_zod5.z.array(import_zod5.z.string()).max(100)
280
802
  });
281
- var StudioUpdateStatusSchema = import_zod3.z.object({
282
- current: import_zod3.z.string().nullable(),
803
+ var StudioUpdateStatusSchema = import_zod5.z.object({
804
+ current: import_zod5.z.string().nullable(),
283
805
  available: StudioReleaseSchema.nullable(),
284
- checkedAt: import_zod3.z.iso.datetime().nullable(),
285
- checkError: import_zod3.z.string().nullable(),
806
+ checkedAt: import_zod5.z.iso.datetime().nullable(),
807
+ checkError: import_zod5.z.string().nullable(),
286
808
  settings: StudioUpdateSettingsSchema,
287
809
  operation: StudioUpdateOperationSchema.nullable()
288
810
  });
@@ -437,82 +959,82 @@ var TELEMETRY_EVENT_TYPES = [
437
959
  "session.forked",
438
960
  "session.rolled_back"
439
961
  ];
440
- var TelemetryServiceSchema = import_zod4.z.object({
441
- name: import_zod4.z.string().min(1),
442
- deploymentRef: import_zod4.z.string().min(1).optional()
962
+ var TelemetryServiceSchema = import_zod6.z.object({
963
+ name: import_zod6.z.string().min(1),
964
+ deploymentRef: import_zod6.z.string().min(1).optional()
443
965
  }).strict();
444
- var WorkflowTopologyNodeSchema = import_zod4.z.object({
445
- id: import_zod4.z.string().min(1),
446
- label: import_zod4.z.string().optional(),
447
- type: import_zod4.z.string().optional(),
448
- provider: import_zod4.z.string().optional(),
449
- model: import_zod4.z.string().optional(),
450
- metadata: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown()).optional(),
451
- tools: import_zod4.z.array(WorkflowToolSchema).optional(),
966
+ var WorkflowTopologyNodeSchema = import_zod6.z.object({
967
+ id: import_zod6.z.string().min(1),
968
+ label: import_zod6.z.string().optional(),
969
+ type: import_zod6.z.string().optional(),
970
+ provider: import_zod6.z.string().optional(),
971
+ model: import_zod6.z.string().optional(),
972
+ metadata: import_zod6.z.record(import_zod6.z.string(), import_zod6.z.unknown()).optional(),
973
+ tools: import_zod6.z.array(WorkflowToolSchema).optional(),
452
974
  toolDiscovery: ToolDiscoverySchema.optional()
453
975
  }).strict();
454
- var WorkflowTopologyEdgeSchema = import_zod4.z.object({
455
- sourceNodeId: import_zod4.z.string().min(1),
456
- targetNodeId: import_zod4.z.string().min(1),
457
- condition: import_zod4.z.string().optional()
976
+ var WorkflowTopologyEdgeSchema = import_zod6.z.object({
977
+ sourceNodeId: import_zod6.z.string().min(1),
978
+ targetNodeId: import_zod6.z.string().min(1),
979
+ condition: import_zod6.z.string().optional()
458
980
  }).strict();
459
- var WorkflowTopologyCallSchema = import_zod4.z.object({
460
- sourceNodeId: import_zod4.z.string().min(1),
461
- targetWorkflowId: import_zod4.z.string().min(1)
981
+ var WorkflowTopologyCallSchema = import_zod6.z.object({
982
+ sourceNodeId: import_zod6.z.string().min(1),
983
+ targetWorkflowId: import_zod6.z.string().min(1)
462
984
  }).strict();
463
- var WorkflowTopologyTransitionSchema = import_zod4.z.object({
464
- sourceNodeId: import_zod4.z.string().min(1).optional(),
465
- targetWorkflowId: import_zod4.z.string().min(1),
466
- condition: import_zod4.z.string().optional(),
467
- intent: import_zod4.z.string().optional(),
468
- kind: import_zod4.z.enum(["call", "handoff"]).optional()
985
+ var WorkflowTopologyTransitionSchema = import_zod6.z.object({
986
+ sourceNodeId: import_zod6.z.string().min(1).optional(),
987
+ targetWorkflowId: import_zod6.z.string().min(1),
988
+ condition: import_zod6.z.string().optional(),
989
+ intent: import_zod6.z.string().optional(),
990
+ kind: import_zod6.z.enum(["call", "handoff"]).optional()
469
991
  }).strict();
470
- var EnsureWorkflowTopologyRequestSchema = import_zod4.z.object({
471
- schemaVersion: import_zod4.z.literal(1),
472
- environment: import_zod4.z.string().min(1),
992
+ var EnsureWorkflowTopologyRequestSchema = import_zod6.z.object({
993
+ schemaVersion: import_zod6.z.literal(1),
994
+ environment: import_zod6.z.string().min(1),
473
995
  service: TelemetryServiceSchema,
474
- workflow: import_zod4.z.object({
475
- id: import_zod4.z.string().min(1),
476
- declaredVersion: import_zod4.z.string().min(1),
477
- description: import_zod4.z.string().optional(),
478
- tags: import_zod4.z.array(import_zod4.z.string()).optional(),
479
- topologyHash: import_zod4.z.string().regex(/^[a-f0-9]{64}$/),
480
- nodes: import_zod4.z.array(WorkflowTopologyNodeSchema),
481
- edges: import_zod4.z.array(WorkflowTopologyEdgeSchema),
482
- transitions: import_zod4.z.array(WorkflowTopologyTransitionSchema).optional(),
483
- calls: import_zod4.z.array(WorkflowTopologyCallSchema).optional()
996
+ workflow: import_zod6.z.object({
997
+ id: import_zod6.z.string().min(1),
998
+ declaredVersion: import_zod6.z.string().min(1),
999
+ description: import_zod6.z.string().optional(),
1000
+ tags: import_zod6.z.array(import_zod6.z.string()).optional(),
1001
+ topologyHash: import_zod6.z.string().regex(/^[a-f0-9]{64}$/),
1002
+ nodes: import_zod6.z.array(WorkflowTopologyNodeSchema),
1003
+ edges: import_zod6.z.array(WorkflowTopologyEdgeSchema),
1004
+ transitions: import_zod6.z.array(WorkflowTopologyTransitionSchema).optional(),
1005
+ calls: import_zod6.z.array(WorkflowTopologyCallSchema).optional()
484
1006
  }).strict()
485
1007
  }).strict();
486
- var EnsureWorkflowTopologyResponseSchema = import_zod4.z.object({ workflowRevisionId: import_zod4.z.string().min(1), created: import_zod4.z.boolean() }).strict();
487
- var TelemetryEventTypeSchema = import_zod4.z.enum(TELEMETRY_EVENT_TYPES);
488
- var TelemetryEventSchema = import_zod4.z.object({
489
- schemaVersion: import_zod4.z.literal(1),
490
- eventId: import_zod4.z.string().min(1),
491
- occurredAt: import_zod4.z.string().datetime({ offset: true }),
492
- environment: import_zod4.z.string().min(1),
1008
+ var EnsureWorkflowTopologyResponseSchema = import_zod6.z.object({ workflowRevisionId: import_zod6.z.string().min(1), created: import_zod6.z.boolean() }).strict();
1009
+ var TelemetryEventTypeSchema = import_zod6.z.enum(TELEMETRY_EVENT_TYPES);
1010
+ var TelemetryEventSchema = import_zod6.z.object({
1011
+ schemaVersion: import_zod6.z.literal(1),
1012
+ eventId: import_zod6.z.string().min(1),
1013
+ occurredAt: import_zod6.z.string().datetime({ offset: true }),
1014
+ environment: import_zod6.z.string().min(1),
493
1015
  service: TelemetryServiceSchema,
494
- correlation: import_zod4.z.object({
495
- invocationId: import_zod4.z.string().optional(),
496
- parentInvocationId: import_zod4.z.string().optional(),
497
- branchId: import_zod4.z.string().optional(),
498
- traceId: import_zod4.z.string().optional(),
499
- spanId: import_zod4.z.string().optional(),
500
- parentSpanId: import_zod4.z.string().optional(),
501
- runId: import_zod4.z.string().min(1),
502
- sessionId: import_zod4.z.string().optional(),
503
- workflowId: import_zod4.z.string().min(1),
504
- workflowRevisionId: import_zod4.z.string().optional(),
505
- topologyHash: import_zod4.z.string().regex(/^[a-f0-9]{64}$/).optional(),
506
- nodeId: import_zod4.z.string().optional()
1016
+ correlation: import_zod6.z.object({
1017
+ invocationId: import_zod6.z.string().optional(),
1018
+ parentInvocationId: import_zod6.z.string().optional(),
1019
+ branchId: import_zod6.z.string().optional(),
1020
+ traceId: import_zod6.z.string().optional(),
1021
+ spanId: import_zod6.z.string().optional(),
1022
+ parentSpanId: import_zod6.z.string().optional(),
1023
+ runId: import_zod6.z.string().min(1),
1024
+ sessionId: import_zod6.z.string().optional(),
1025
+ workflowId: import_zod6.z.string().min(1),
1026
+ workflowRevisionId: import_zod6.z.string().optional(),
1027
+ topologyHash: import_zod6.z.string().regex(/^[a-f0-9]{64}$/).optional(),
1028
+ nodeId: import_zod6.z.string().optional()
507
1029
  }).strict(),
508
- context: import_zod4.z.object({
509
- userId: import_zod4.z.string().optional(),
510
- tenantId: import_zod4.z.string().optional(),
511
- tags: import_zod4.z.array(import_zod4.z.string()).optional(),
512
- metadata: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown()).optional()
1030
+ context: import_zod6.z.object({
1031
+ userId: import_zod6.z.string().optional(),
1032
+ tenantId: import_zod6.z.string().optional(),
1033
+ tags: import_zod6.z.array(import_zod6.z.string()).optional(),
1034
+ metadata: import_zod6.z.record(import_zod6.z.string(), import_zod6.z.unknown()).optional()
513
1035
  }).strict().optional(),
514
1036
  type: TelemetryEventTypeSchema,
515
- payload: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown())
1037
+ payload: import_zod6.z.record(import_zod6.z.string(), import_zod6.z.unknown())
516
1038
  }).strict().superRefine((event, ctx) => {
517
1039
  if (!event.type.startsWith("tool.")) return;
518
1040
  const canonical = event.payload.version === 1 || [
@@ -555,20 +1077,20 @@ var TelemetryEventSchema = import_zod4.z.object({
555
1077
  });
556
1078
  }
557
1079
  });
558
- var TelemetryEventBatchSchema = import_zod4.z.object({ events: import_zod4.z.array(TelemetryEventSchema).min(1) }).strict();
559
- var TelemetryEventBatchResponseSchema = import_zod4.z.object({
560
- accepted: import_zod4.z.number().int().nonnegative(),
561
- inserted: import_zod4.z.number().int().nonnegative(),
562
- duplicates: import_zod4.z.number().int().nonnegative()
1080
+ var TelemetryEventBatchSchema = import_zod6.z.object({ events: import_zod6.z.array(TelemetryEventSchema).min(1) }).strict();
1081
+ var TelemetryEventBatchResponseSchema = import_zod6.z.object({
1082
+ accepted: import_zod6.z.number().int().nonnegative(),
1083
+ inserted: import_zod6.z.number().int().nonnegative(),
1084
+ duplicates: import_zod6.z.number().int().nonnegative()
563
1085
  }).strict();
564
- var TelemetryPricingSourceSchema = import_zod4.z.enum([
1086
+ var TelemetryPricingSourceSchema = import_zod6.z.enum([
565
1087
  "sdk",
566
1088
  "provider",
567
1089
  "custom",
568
1090
  "project-rate-card",
569
1091
  "default-rate-card"
570
1092
  ]);
571
- var TelemetryPricingUnitSchema = import_zod4.z.enum([
1093
+ var TelemetryPricingUnitSchema = import_zod6.z.enum([
572
1094
  "token",
573
1095
  "character",
574
1096
  "request",
@@ -581,7 +1103,7 @@ var TelemetryPricingUnitSchema = import_zod4.z.enum([
581
1103
  "minute",
582
1104
  "custom"
583
1105
  ]);
584
- var TelemetryPricingUsageTypeSchema = import_zod4.z.enum([
1106
+ var TelemetryPricingUsageTypeSchema = import_zod6.z.enum([
585
1107
  "input",
586
1108
  "output",
587
1109
  "reasoning",
@@ -597,42 +1119,42 @@ var TelemetryPricingUsageTypeSchema = import_zod4.z.enum([
597
1119
  "request",
598
1120
  "custom"
599
1121
  ]);
600
- var TelemetryUsageItemSchema = import_zod4.z.object({
1122
+ var TelemetryUsageItemSchema = import_zod6.z.object({
601
1123
  usageType: TelemetryPricingUsageTypeSchema,
602
- quantity: import_zod4.z.number().nonnegative(),
1124
+ quantity: import_zod6.z.number().nonnegative(),
603
1125
  unit: TelemetryPricingUnitSchema,
604
- label: import_zod4.z.string().optional()
1126
+ label: import_zod6.z.string().optional()
605
1127
  }).strict();
606
- var TelemetryUnitPriceSchema = import_zod4.z.object({
1128
+ var TelemetryUnitPriceSchema = import_zod6.z.object({
607
1129
  usageType: TelemetryPricingUsageTypeSchema,
608
1130
  unit: TelemetryPricingUnitSchema,
609
- unitQuantity: import_zod4.z.number().positive().default(1),
610
- priceMicros: import_zod4.z.number().int().nonnegative(),
611
- label: import_zod4.z.string().optional()
1131
+ unitQuantity: import_zod6.z.number().positive().default(1),
1132
+ priceMicros: import_zod6.z.number().int().nonnegative(),
1133
+ label: import_zod6.z.string().optional()
612
1134
  }).strict();
613
- var TelemetryPricingLineItemSchema = import_zod4.z.object({
1135
+ var TelemetryPricingLineItemSchema = import_zod6.z.object({
614
1136
  usageType: TelemetryPricingUsageTypeSchema,
615
- quantity: import_zod4.z.number().nonnegative(),
1137
+ quantity: import_zod6.z.number().nonnegative(),
616
1138
  unit: TelemetryPricingUnitSchema,
617
- unitQuantity: import_zod4.z.number().positive().default(1),
618
- unitPriceMicros: import_zod4.z.number().int().nonnegative().optional(),
619
- totalCostMicros: import_zod4.z.number().int().nonnegative().optional(),
620
- label: import_zod4.z.string().optional()
1139
+ unitQuantity: import_zod6.z.number().positive().default(1),
1140
+ unitPriceMicros: import_zod6.z.number().int().nonnegative().optional(),
1141
+ totalCostMicros: import_zod6.z.number().int().nonnegative().optional(),
1142
+ label: import_zod6.z.string().optional()
621
1143
  }).strict().refine(
622
1144
  (value) => value.totalCostMicros !== void 0 || value.unitPriceMicros !== void 0,
623
1145
  "line item requires totalCostMicros or unitPriceMicros"
624
1146
  );
625
- var TelemetryPricingHintSchema = import_zod4.z.object({
1147
+ var TelemetryPricingHintSchema = import_zod6.z.object({
626
1148
  source: TelemetryPricingSourceSchema.extract(["sdk", "provider", "custom"]),
627
- currency: import_zod4.z.string().min(3).max(12).default("USD"),
628
- actualCostMicros: import_zod4.z.number().int().nonnegative().optional(),
629
- lineItems: import_zod4.z.array(TelemetryPricingLineItemSchema).optional(),
630
- unitPrices: import_zod4.z.array(TelemetryUnitPriceSchema).optional(),
631
- usageItems: import_zod4.z.array(TelemetryUsageItemSchema).optional(),
632
- pricingRef: import_zod4.z.string().min(1).optional(),
633
- metadata: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown()).optional()
1149
+ currency: import_zod6.z.string().min(3).max(12).default("USD"),
1150
+ actualCostMicros: import_zod6.z.number().int().nonnegative().optional(),
1151
+ lineItems: import_zod6.z.array(TelemetryPricingLineItemSchema).optional(),
1152
+ unitPrices: import_zod6.z.array(TelemetryUnitPriceSchema).optional(),
1153
+ usageItems: import_zod6.z.array(TelemetryUsageItemSchema).optional(),
1154
+ pricingRef: import_zod6.z.string().min(1).optional(),
1155
+ metadata: import_zod6.z.record(import_zod6.z.string(), import_zod6.z.unknown()).optional()
634
1156
  }).strict();
635
- var StudioRunStatusSchema = import_zod4.z.enum([
1157
+ var StudioRunStatusSchema = import_zod6.z.enum([
636
1158
  "running",
637
1159
  "completed",
638
1160
  "interrupted",
@@ -648,16 +1170,16 @@ var STUDIO_TIME_RANGES = [
648
1170
  "All time",
649
1171
  "Custom range"
650
1172
  ];
651
- var StudioTimeRangeSchema = import_zod4.z.enum(STUDIO_TIME_RANGES);
652
- var StudioTimeRangeQuerySchema = import_zod4.z.object({
1173
+ var StudioTimeRangeSchema = import_zod6.z.enum(STUDIO_TIME_RANGES);
1174
+ var StudioTimeRangeQuerySchema = import_zod6.z.object({
653
1175
  range: StudioTimeRangeSchema.optional(),
654
- startedAfter: import_zod4.z.string().optional(),
655
- startedBefore: import_zod4.z.string().optional()
1176
+ startedAfter: import_zod6.z.string().optional(),
1177
+ startedBefore: import_zod6.z.string().optional()
656
1178
  }).strict();
657
- var StudioTimeRangeContextSchema = import_zod4.z.object({
1179
+ var StudioTimeRangeContextSchema = import_zod6.z.object({
658
1180
  range: StudioTimeRangeSchema,
659
- startedAfter: import_zod4.z.string().datetime({ offset: true }).nullable(),
660
- startedBefore: import_zod4.z.string().datetime({ offset: true }).nullable()
1181
+ startedAfter: import_zod6.z.string().datetime({ offset: true }).nullable(),
1182
+ startedBefore: import_zod6.z.string().datetime({ offset: true }).nullable()
661
1183
  }).strict();
662
1184
  var STUDIO_TIME_RANGE_MILLISECONDS = {
663
1185
  "Last hour": 60 * 60 * 1e3,
@@ -731,7 +1253,7 @@ var resolveStudioTimeRange = (input, now = /* @__PURE__ */ new Date()) => {
731
1253
  }
732
1254
  };
733
1255
  };
734
- var StudioInterruptStatusSchema = import_zod4.z.enum([
1256
+ var StudioInterruptStatusSchema = import_zod6.z.enum([
735
1257
  "pending",
736
1258
  "resolved",
737
1259
  "expired",
@@ -744,340 +1266,361 @@ var resolveStudioInterruptStatus = (input, now = Date.now()) => {
744
1266
  const nowMs = typeof now === "number" ? now : now.getTime();
745
1267
  return Number.isFinite(expiresAt) && Number.isFinite(nowMs) && expiresAt <= nowMs ? "expired" : input.status;
746
1268
  };
747
- var StudioInterruptTypeSchema = import_zod4.z.enum([
1269
+ var StudioInterruptTypeSchema = import_zod6.z.enum([
748
1270
  "choice",
749
1271
  "multi-choice",
750
1272
  "text",
751
1273
  "structured",
752
1274
  "unknown"
753
1275
  ]);
754
- var StudioInterruptInteractionModeSchema = import_zod4.z.enum([
1276
+ var StudioInterruptInteractionModeSchema = import_zod6.z.enum([
755
1277
  "static-options",
756
1278
  "dynamic-picker",
757
1279
  "freeform",
758
1280
  "unknown"
759
1281
  ]);
760
- var StudioInterruptOptionSchema = import_zod4.z.object({
761
- id: import_zod4.z.string().min(1),
762
- label: import_zod4.z.string().min(1),
763
- description: import_zod4.z.string().nullable()
1282
+ var StudioInterruptOptionSchema = import_zod6.z.object({
1283
+ id: import_zod6.z.string().min(1),
1284
+ label: import_zod6.z.string().min(1),
1285
+ description: import_zod6.z.string().nullable()
764
1286
  }).strip();
765
- var StudioInterruptValueSchema = import_zod4.z.union([
766
- import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown()),
767
- import_zod4.z.array(import_zod4.z.unknown()),
768
- import_zod4.z.string(),
769
- import_zod4.z.number(),
770
- import_zod4.z.boolean()
1287
+ var StudioInterruptValueSchema = import_zod6.z.union([
1288
+ import_zod6.z.record(import_zod6.z.string(), import_zod6.z.unknown()),
1289
+ import_zod6.z.array(import_zod6.z.unknown()),
1290
+ import_zod6.z.string(),
1291
+ import_zod6.z.number(),
1292
+ import_zod6.z.boolean()
771
1293
  ]);
772
- var StudioResumeOutcomeSchema = import_zod4.z.enum([
1294
+ var StudioResumeOutcomeSchema = import_zod6.z.enum([
773
1295
  "resumed",
774
1296
  "resume failed",
775
1297
  "expired before resume",
776
1298
  "cancelled"
777
1299
  ]);
778
- var StudioWorkflowHealthSchema = import_zod4.z.enum([
1300
+ var StudioWorkflowHealthSchema = import_zod6.z.enum([
779
1301
  "unknown",
780
1302
  "healthy",
781
1303
  "degraded",
782
1304
  "failing",
783
1305
  "idle"
784
1306
  ]);
785
- var StudioPricingStatusSchema = import_zod4.z.enum([
1307
+ var StudioPricingStatusSchema = import_zod6.z.enum([
786
1308
  "priced",
787
1309
  "unpriced",
788
1310
  "unknown"
789
1311
  ]);
790
1312
  var StudioPricingSourceSchema = TelemetryPricingSourceSchema.nullable();
791
- var StudioChangeResourceSchema = import_zod4.z.enum([
1313
+ var StudioChangeResourceSchema = import_zod6.z.enum([
792
1314
  "evals",
793
1315
  "workflows",
794
1316
  "runs",
795
1317
  "sessions",
796
1318
  "interrupts"
797
1319
  ]);
798
- var StudioChangeSchema = import_zod4.z.object({
799
- schemaVersion: import_zod4.z.literal(1),
800
- changeId: import_zod4.z.string().min(1),
801
- emittedAt: import_zod4.z.string().datetime({ offset: true }),
802
- organizationId: import_zod4.z.string().min(1),
803
- projectId: import_zod4.z.string().min(1),
804
- environment: import_zod4.z.string().min(1).optional(),
805
- resources: import_zod4.z.array(StudioChangeResourceSchema).min(1)
1320
+ var StudioChangeSchema = import_zod6.z.object({
1321
+ schemaVersion: import_zod6.z.literal(1),
1322
+ changeId: import_zod6.z.string().min(1),
1323
+ emittedAt: import_zod6.z.string().datetime({ offset: true }),
1324
+ organizationId: import_zod6.z.string().min(1),
1325
+ projectId: import_zod6.z.string().min(1),
1326
+ environment: import_zod6.z.string().min(1).optional(),
1327
+ resources: import_zod6.z.array(StudioChangeResourceSchema).min(1)
806
1328
  }).strict();
807
- var StudioMetricSchema = import_zod4.z.object({
808
- runCount: import_zod4.z.number().int().nonnegative(),
809
- successRate: import_zod4.z.number().min(0).max(100).nullable(),
810
- errorRate: import_zod4.z.number().min(0).max(100).nullable(),
811
- retryCount: import_zod4.z.number().int().nonnegative().nullable(),
812
- interruptRate: import_zod4.z.number().min(0).max(100).nullable(),
813
- p50DurationMs: import_zod4.z.number().nonnegative().nullable(),
814
- p95DurationMs: import_zod4.z.number().nonnegative().nullable(),
815
- averageTokens: import_zod4.z.number().nonnegative().nullable(),
816
- averageCost: import_zod4.z.number().nonnegative().nullable(),
817
- currency: import_zod4.z.string().nullable()
1329
+ var StudioMetricSchema = import_zod6.z.object({
1330
+ runCount: import_zod6.z.number().int().nonnegative(),
1331
+ successRate: import_zod6.z.number().min(0).max(100).nullable(),
1332
+ errorRate: import_zod6.z.number().min(0).max(100).nullable(),
1333
+ retryCount: import_zod6.z.number().int().nonnegative().nullable(),
1334
+ interruptRate: import_zod6.z.number().min(0).max(100).nullable(),
1335
+ p50DurationMs: import_zod6.z.number().nonnegative().nullable(),
1336
+ p95DurationMs: import_zod6.z.number().nonnegative().nullable(),
1337
+ averageTokens: import_zod6.z.number().nonnegative().nullable(),
1338
+ averageCost: import_zod6.z.number().nonnegative().nullable(),
1339
+ currency: import_zod6.z.string().nullable()
818
1340
  }).strip();
819
- var StudioRunSchema = import_zod4.z.object({
820
- id: import_zod4.z.string().min(1),
1341
+ var StudioRunSchema = import_zod6.z.object({
1342
+ id: import_zod6.z.string().min(1),
821
1343
  feedback: FeedbackSummarySchema.optional(),
822
- callerNodeId: import_zod4.z.string().optional(),
823
- parentRunId: import_zod4.z.string().optional(),
824
- parentWorkflowId: import_zod4.z.string().optional(),
825
- invocationId: import_zod4.z.string().optional(),
826
- branchId: import_zod4.z.string().optional(),
827
- callId: import_zod4.z.string().optional(),
1344
+ callerNodeId: import_zod6.z.string().optional(),
1345
+ parentRunId: import_zod6.z.string().optional(),
1346
+ parentWorkflowId: import_zod6.z.string().optional(),
1347
+ invocationId: import_zod6.z.string().optional(),
1348
+ branchId: import_zod6.z.string().optional(),
1349
+ callId: import_zod6.z.string().optional(),
828
1350
  status: StudioRunStatusSchema,
829
- startedAt: import_zod4.z.string().datetime({ offset: true }),
830
- endedAt: import_zod4.z.string().datetime({ offset: true }).nullable(),
831
- workflowId: import_zod4.z.string().min(1),
832
- workflowIds: import_zod4.z.array(import_zod4.z.string().min(1)),
833
- workflowRefs: import_zod4.z.array(
834
- import_zod4.z.object({
835
- workflowId: import_zod4.z.string().min(1),
836
- workflowRevisionId: import_zod4.z.string().nullable(),
837
- declaredVersion: import_zod4.z.string().nullable()
1351
+ startedAt: import_zod6.z.string().datetime({ offset: true }),
1352
+ endedAt: import_zod6.z.string().datetime({ offset: true }).nullable(),
1353
+ workflowId: import_zod6.z.string().min(1),
1354
+ workflowIds: import_zod6.z.array(import_zod6.z.string().min(1)),
1355
+ workflowRefs: import_zod6.z.array(
1356
+ import_zod6.z.object({
1357
+ workflowId: import_zod6.z.string().min(1),
1358
+ workflowRevisionId: import_zod6.z.string().nullable(),
1359
+ declaredVersion: import_zod6.z.string().nullable()
838
1360
  }).strip()
839
1361
  ),
840
- workflowRevisionId: import_zod4.z.string().nullable(),
841
- declaredVersion: import_zod4.z.string().nullable(),
842
- transitionIds: import_zod4.z.array(import_zod4.z.string().min(1)),
843
- path: import_zod4.z.array(import_zod4.z.string()),
844
- sessionId: import_zod4.z.string().nullable(),
845
- provider: import_zod4.z.string().nullable(),
846
- model: import_zod4.z.string().nullable(),
847
- models: import_zod4.z.array(import_zod4.z.string()),
848
- durationMs: import_zod4.z.number().nonnegative().nullable(),
849
- tokens: import_zod4.z.number().int().nonnegative().nullable(),
850
- cost: import_zod4.z.number().nonnegative().nullable(),
1362
+ workflowRevisionId: import_zod6.z.string().nullable(),
1363
+ declaredVersion: import_zod6.z.string().nullable(),
1364
+ transitionIds: import_zod6.z.array(import_zod6.z.string().min(1)),
1365
+ path: import_zod6.z.array(import_zod6.z.string()),
1366
+ sessionId: import_zod6.z.string().nullable(),
1367
+ provider: import_zod6.z.string().nullable(),
1368
+ model: import_zod6.z.string().nullable(),
1369
+ models: import_zod6.z.array(import_zod6.z.string()),
1370
+ durationMs: import_zod6.z.number().nonnegative().nullable(),
1371
+ tokens: import_zod6.z.number().int().nonnegative().nullable(),
1372
+ cost: import_zod6.z.number().nonnegative().nullable(),
851
1373
  pricingStatus: StudioPricingStatusSchema,
852
1374
  pricingSource: StudioPricingSourceSchema,
853
- currency: import_zod4.z.string().nullable(),
854
- result: import_zod4.z.string().nullable(),
855
- environment: import_zod4.z.string().min(1),
856
- userId: import_zod4.z.string().nullable(),
857
- tenantId: import_zod4.z.string().nullable(),
858
- hasTool: import_zod4.z.boolean(),
859
- hasRetry: import_zod4.z.boolean(),
860
- interruptNodeId: import_zod4.z.string().nullable(),
861
- interruptId: import_zod4.z.string().nullable().optional(),
1375
+ currency: import_zod6.z.string().nullable(),
1376
+ result: import_zod6.z.string().nullable(),
1377
+ environment: import_zod6.z.string().min(1),
1378
+ userId: import_zod6.z.string().nullable(),
1379
+ tenantId: import_zod6.z.string().nullable(),
1380
+ hasTool: import_zod6.z.boolean(),
1381
+ hasRetry: import_zod6.z.boolean(),
1382
+ interruptNodeId: import_zod6.z.string().nullable(),
1383
+ interruptId: import_zod6.z.string().nullable().optional(),
862
1384
  interruptStatus: StudioInterruptStatusSchema.nullable().optional(),
863
- interruptExpiresAt: import_zod4.z.string().datetime({ offset: true }).nullable().optional()
1385
+ interruptExpiresAt: import_zod6.z.string().datetime({ offset: true }).nullable().optional()
864
1386
  }).strip();
865
- var StudioSessionSchema = import_zod4.z.object({
866
- id: import_zod4.z.string().min(1),
1387
+ var StudioSessionSchema = import_zod6.z.object({
1388
+ id: import_zod6.z.string().min(1),
867
1389
  status: StudioRunStatusSchema,
868
- lastActivityAt: import_zod4.z.string().datetime({ offset: true }),
869
- workflowIds: import_zod4.z.array(import_zod4.z.string()),
870
- workflowCount: import_zod4.z.number().int().nonnegative(),
871
- activeWorkflowId: import_zod4.z.string().nullable(),
872
- activeVersion: import_zod4.z.string().nullable(),
873
- userId: import_zod4.z.string().nullable(),
874
- tenantId: import_zod4.z.string().nullable(),
875
- runs: import_zod4.z.number().int().nonnegative(),
876
- succeeded: import_zod4.z.number().int().nonnegative(),
877
- failed: import_zod4.z.number().int().nonnegative(),
878
- interrupted: import_zod4.z.number().int().nonnegative(),
879
- checkpoints: import_zod4.z.number().int().nonnegative(),
880
- hasFork: import_zod4.z.boolean(),
881
- durationMs: import_zod4.z.number().nonnegative().nullable(),
882
- tokens: import_zod4.z.number().int().nonnegative().nullable(),
883
- cost: import_zod4.z.number().nonnegative().nullable(),
1390
+ lastActivityAt: import_zod6.z.string().datetime({ offset: true }),
1391
+ workflowIds: import_zod6.z.array(import_zod6.z.string()),
1392
+ workflowCount: import_zod6.z.number().int().nonnegative(),
1393
+ activeWorkflowId: import_zod6.z.string().nullable(),
1394
+ activeVersion: import_zod6.z.string().nullable(),
1395
+ userId: import_zod6.z.string().nullable(),
1396
+ tenantId: import_zod6.z.string().nullable(),
1397
+ runs: import_zod6.z.number().int().nonnegative(),
1398
+ succeeded: import_zod6.z.number().int().nonnegative(),
1399
+ failed: import_zod6.z.number().int().nonnegative(),
1400
+ interrupted: import_zod6.z.number().int().nonnegative(),
1401
+ checkpoints: import_zod6.z.number().int().nonnegative(),
1402
+ hasFork: import_zod6.z.boolean(),
1403
+ durationMs: import_zod6.z.number().nonnegative().nullable(),
1404
+ tokens: import_zod6.z.number().int().nonnegative().nullable(),
1405
+ cost: import_zod6.z.number().nonnegative().nullable(),
884
1406
  pricingStatus: StudioPricingStatusSchema,
885
1407
  pricingSource: StudioPricingSourceSchema,
886
- currency: import_zod4.z.string().nullable(),
887
- latestResult: import_zod4.z.string().nullable(),
888
- latestError: import_zod4.z.string().nullable(),
889
- pendingInterruptId: import_zod4.z.string().nullable(),
1408
+ currency: import_zod6.z.string().nullable(),
1409
+ latestResult: import_zod6.z.string().nullable(),
1410
+ latestError: import_zod6.z.string().nullable(),
1411
+ pendingInterruptId: import_zod6.z.string().nullable(),
890
1412
  interruptStatus: StudioInterruptStatusSchema.nullable().optional(),
891
- interruptExpiresAt: import_zod4.z.string().datetime({ offset: true }).nullable().optional(),
892
- providers: import_zod4.z.array(import_zod4.z.string()),
893
- models: import_zod4.z.array(import_zod4.z.string()),
894
- tags: import_zod4.z.array(import_zod4.z.string()),
895
- environment: import_zod4.z.string().min(1)
1413
+ interruptExpiresAt: import_zod6.z.string().datetime({ offset: true }).nullable().optional(),
1414
+ providers: import_zod6.z.array(import_zod6.z.string()),
1415
+ models: import_zod6.z.array(import_zod6.z.string()),
1416
+ tags: import_zod6.z.array(import_zod6.z.string()),
1417
+ environment: import_zod6.z.string().min(1)
896
1418
  }).strip();
897
- var StudioInterruptSchema = import_zod4.z.object({
898
- afterResponseCompleted: import_zod4.z.boolean().optional(),
899
- id: import_zod4.z.string().min(1),
1419
+ var StudioInterruptSchema = import_zod6.z.object({
1420
+ afterResponseCompleted: import_zod6.z.boolean().optional(),
1421
+ id: import_zod6.z.string().min(1),
900
1422
  status: StudioInterruptStatusSchema,
901
1423
  type: StudioInterruptTypeSchema,
902
1424
  interactionMode: StudioInterruptInteractionModeSchema,
903
- contract: import_zod4.z.string().nullable().default(null),
904
- schemaId: import_zod4.z.string().nullable(),
905
- schemaVersion: import_zod4.z.string().nullable(),
906
- createdAt: import_zod4.z.string().datetime({ offset: true }),
907
- resolvedAt: import_zod4.z.string().datetime({ offset: true }).nullable(),
908
- expiresAt: import_zod4.z.string().datetime({ offset: true }).nullable(),
909
- question: import_zod4.z.string().nullable(),
910
- contentCaptured: import_zod4.z.boolean(),
911
- request: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown()).nullable().default(null),
912
- requestCaptured: import_zod4.z.boolean().default(false),
913
- optionCount: import_zod4.z.number().int().nonnegative().nullable(),
914
- options: import_zod4.z.array(StudioInterruptOptionSchema).nullable(),
915
- workflowId: import_zod4.z.string().min(1),
916
- nodeId: import_zod4.z.string().nullable(),
917
- sessionId: import_zod4.z.string().nullable(),
918
- userId: import_zod4.z.string().nullable(),
919
- tenantId: import_zod4.z.string().nullable(),
920
- response: import_zod4.z.string().nullable(),
1425
+ contract: import_zod6.z.string().nullable().default(null),
1426
+ schemaId: import_zod6.z.string().nullable(),
1427
+ schemaVersion: import_zod6.z.string().nullable(),
1428
+ createdAt: import_zod6.z.string().datetime({ offset: true }),
1429
+ resolvedAt: import_zod6.z.string().datetime({ offset: true }).nullable(),
1430
+ expiresAt: import_zod6.z.string().datetime({ offset: true }).nullable(),
1431
+ question: import_zod6.z.string().nullable(),
1432
+ contentCaptured: import_zod6.z.boolean(),
1433
+ request: import_zod6.z.record(import_zod6.z.string(), import_zod6.z.unknown()).nullable().default(null),
1434
+ requestCaptured: import_zod6.z.boolean().default(false),
1435
+ optionCount: import_zod6.z.number().int().nonnegative().nullable(),
1436
+ options: import_zod6.z.array(StudioInterruptOptionSchema).nullable(),
1437
+ workflowId: import_zod6.z.string().min(1),
1438
+ nodeId: import_zod6.z.string().nullable(),
1439
+ sessionId: import_zod6.z.string().nullable(),
1440
+ userId: import_zod6.z.string().nullable(),
1441
+ tenantId: import_zod6.z.string().nullable(),
1442
+ response: import_zod6.z.string().nullable(),
921
1443
  responseValue: StudioInterruptValueSchema.nullable().default(null),
922
- responseCaptured: import_zod4.z.boolean(),
1444
+ responseCaptured: import_zod6.z.boolean(),
923
1445
  resumeOutcome: StudioResumeOutcomeSchema.nullable(),
924
- resumeError: import_zod4.z.string().nullable(),
925
- runId: import_zod4.z.string().min(1),
926
- resumeToken: import_zod4.z.string().nullable(),
927
- resolvedBy: import_zod4.z.string().nullable(),
928
- environment: import_zod4.z.string().min(1)
1446
+ resumeError: import_zod6.z.string().nullable(),
1447
+ runId: import_zod6.z.string().min(1),
1448
+ resumeToken: import_zod6.z.string().nullable(),
1449
+ resolvedBy: import_zod6.z.string().nullable(),
1450
+ environment: import_zod6.z.string().min(1)
929
1451
  }).strip();
930
- var StudioDetailEventSchema = import_zod4.z.object({
931
- id: import_zod4.z.string().min(1),
1452
+ var StudioDetailEventSchema = import_zod6.z.object({
1453
+ id: import_zod6.z.string().min(1),
932
1454
  // Studio readers must preserve future event kinds within the same API major.
933
- type: import_zod4.z.string().min(1),
934
- occurredAt: import_zod4.z.string().datetime({ offset: true }),
935
- receivedAt: import_zod4.z.string().datetime({ offset: true }),
936
- environment: import_zod4.z.string().min(1),
937
- serviceName: import_zod4.z.string().min(1),
938
- deploymentRef: import_zod4.z.string().nullable(),
939
- traceId: import_zod4.z.string().nullable(),
940
- spanId: import_zod4.z.string().nullable(),
941
- parentSpanId: import_zod4.z.string().nullable(),
942
- runId: import_zod4.z.string().min(1),
943
- sessionId: import_zod4.z.string().nullable(),
944
- workflowId: import_zod4.z.string().min(1),
945
- workflowRevisionId: import_zod4.z.string().nullable(),
946
- nodeId: import_zod4.z.string().nullable(),
947
- userId: import_zod4.z.string().nullable(),
948
- tenantId: import_zod4.z.string().nullable(),
949
- tags: import_zod4.z.array(import_zod4.z.string()),
950
- metadata: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown()).nullable(),
951
- payload: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown())
1455
+ type: import_zod6.z.string().min(1),
1456
+ occurredAt: import_zod6.z.string().datetime({ offset: true }),
1457
+ receivedAt: import_zod6.z.string().datetime({ offset: true }),
1458
+ environment: import_zod6.z.string().min(1),
1459
+ serviceName: import_zod6.z.string().min(1),
1460
+ deploymentRef: import_zod6.z.string().nullable(),
1461
+ traceId: import_zod6.z.string().nullable(),
1462
+ spanId: import_zod6.z.string().nullable(),
1463
+ parentSpanId: import_zod6.z.string().nullable(),
1464
+ runId: import_zod6.z.string().min(1),
1465
+ sessionId: import_zod6.z.string().nullable(),
1466
+ workflowId: import_zod6.z.string().min(1),
1467
+ workflowRevisionId: import_zod6.z.string().nullable(),
1468
+ nodeId: import_zod6.z.string().nullable(),
1469
+ userId: import_zod6.z.string().nullable(),
1470
+ tenantId: import_zod6.z.string().nullable(),
1471
+ tags: import_zod6.z.array(import_zod6.z.string()),
1472
+ metadata: import_zod6.z.record(import_zod6.z.string(), import_zod6.z.unknown()).nullable(),
1473
+ payload: import_zod6.z.record(import_zod6.z.string(), import_zod6.z.unknown())
952
1474
  }).strip();
953
- var StudioWorkflowNodeSchema = import_zod4.z.object({
954
- tools: import_zod4.z.array(StudioToolSchema).optional(),
1475
+ var StudioWorkflowNodeSchema = import_zod6.z.object({
1476
+ tools: import_zod6.z.array(StudioToolSchema).optional(),
955
1477
  toolDiscovery: ToolDiscoverySchema.optional(),
956
- id: import_zod4.z.string().min(1),
957
- label: import_zod4.z.string(),
958
- type: import_zod4.z.string().nullable(),
959
- state: import_zod4.z.enum(["healthy", "warning", "failed", "interrupted", "retried"]).nullable(),
960
- provider: import_zod4.z.string().nullable(),
961
- model: import_zod4.z.string().nullable(),
1478
+ id: import_zod6.z.string().min(1),
1479
+ label: import_zod6.z.string(),
1480
+ type: import_zod6.z.string().nullable(),
1481
+ state: import_zod6.z.enum(["healthy", "warning", "failed", "interrupted", "retried"]).nullable(),
1482
+ provider: import_zod6.z.string().nullable(),
1483
+ model: import_zod6.z.string().nullable(),
962
1484
  metrics: StudioMetricSchema
963
1485
  }).strip();
964
- var StudioWorkflowInternalEdgeSchema = import_zod4.z.object({
965
- id: import_zod4.z.string().min(1),
966
- source: import_zod4.z.string().min(1),
967
- target: import_zod4.z.string().min(1),
968
- condition: import_zod4.z.string().nullable()
1486
+ var StudioWorkflowInternalEdgeSchema = import_zod6.z.object({
1487
+ id: import_zod6.z.string().min(1),
1488
+ source: import_zod6.z.string().min(1),
1489
+ target: import_zod6.z.string().min(1),
1490
+ condition: import_zod6.z.string().nullable()
969
1491
  }).strip();
970
- var StudioWorkflowTransitionSchema = import_zod4.z.object({
971
- kind: import_zod4.z.enum(["call", "handoff"]).optional(),
972
- id: import_zod4.z.string().min(1),
973
- sourceWorkflowId: import_zod4.z.string().min(1),
974
- sourceNodeId: import_zod4.z.string().nullable(),
975
- targetWorkflowId: import_zod4.z.string().min(1),
976
- condition: import_zod4.z.string().nullable(),
977
- volume: import_zod4.z.number().int().nonnegative(),
978
- successRate: import_zod4.z.number().min(0).max(100).nullable(),
979
- medianDurationMs: import_zod4.z.number().nonnegative().nullable(),
980
- errorRate: import_zod4.z.number().min(0).max(100).nullable()
1492
+ var StudioWorkflowTransitionSchema = import_zod6.z.object({
1493
+ kind: import_zod6.z.enum(["call", "handoff"]).optional(),
1494
+ id: import_zod6.z.string().min(1),
1495
+ sourceWorkflowId: import_zod6.z.string().min(1),
1496
+ sourceNodeId: import_zod6.z.string().nullable(),
1497
+ targetWorkflowId: import_zod6.z.string().min(1),
1498
+ condition: import_zod6.z.string().nullable(),
1499
+ volume: import_zod6.z.number().int().nonnegative(),
1500
+ successRate: import_zod6.z.number().min(0).max(100).nullable(),
1501
+ medianDurationMs: import_zod6.z.number().nonnegative().nullable(),
1502
+ errorRate: import_zod6.z.number().min(0).max(100).nullable()
981
1503
  }).strip();
982
- var StudioWorkflowSchema = import_zod4.z.object({
983
- id: import_zod4.z.string().min(1),
984
- name: import_zod4.z.string().min(1),
985
- description: import_zod4.z.string().nullable(),
986
- versions: import_zod4.z.array(import_zod4.z.string()),
987
- activeVersion: import_zod4.z.string().nullable(),
988
- activeRevisionId: import_zod4.z.string().nullable(),
1504
+ var StudioWorkflowSchema = import_zod6.z.object({
1505
+ id: import_zod6.z.string().min(1),
1506
+ name: import_zod6.z.string().min(1),
1507
+ description: import_zod6.z.string().nullable(),
1508
+ versions: import_zod6.z.array(import_zod6.z.string()),
1509
+ activeVersion: import_zod6.z.string().nullable(),
1510
+ activeRevisionId: import_zod6.z.string().nullable(),
989
1511
  health: StudioWorkflowHealthSchema,
990
- tags: import_zod4.z.array(import_zod4.z.string()),
991
- lastActivityAt: import_zod4.z.string().datetime({ offset: true }).nullable(),
1512
+ tags: import_zod6.z.array(import_zod6.z.string()),
1513
+ lastActivityAt: import_zod6.z.string().datetime({ offset: true }).nullable(),
992
1514
  metrics: StudioMetricSchema,
993
- nodes: import_zod4.z.array(StudioWorkflowNodeSchema),
994
- internalEdges: import_zod4.z.array(StudioWorkflowInternalEdgeSchema)
1515
+ nodes: import_zod6.z.array(StudioWorkflowNodeSchema),
1516
+ internalEdges: import_zod6.z.array(StudioWorkflowInternalEdgeSchema)
995
1517
  }).strip();
996
- var StudioRunsResponseSchema = import_zod4.z.object({
997
- runs: import_zod4.z.array(StudioRunSchema),
998
- totalCount: import_zod4.z.number().int().nonnegative()
1518
+ var StudioRunsResponseSchema = import_zod6.z.object({
1519
+ runs: import_zod6.z.array(StudioRunSchema),
1520
+ totalCount: import_zod6.z.number().int().nonnegative()
999
1521
  }).strip();
1000
- var StudioSessionsResponseSchema = import_zod4.z.object({
1001
- sessions: import_zod4.z.array(StudioSessionSchema),
1002
- totalCount: import_zod4.z.number().int().nonnegative()
1522
+ var StudioSessionsResponseSchema = import_zod6.z.object({
1523
+ sessions: import_zod6.z.array(StudioSessionSchema),
1524
+ totalCount: import_zod6.z.number().int().nonnegative()
1003
1525
  }).strip();
1004
- var StudioInterruptsResponseSchema = import_zod4.z.object({
1005
- interrupts: import_zod4.z.array(StudioInterruptSchema),
1006
- totalCount: import_zod4.z.number().int().nonnegative()
1526
+ var StudioInterruptsResponseSchema = import_zod6.z.object({
1527
+ interrupts: import_zod6.z.array(StudioInterruptSchema),
1528
+ totalCount: import_zod6.z.number().int().nonnegative()
1007
1529
  }).strip();
1008
- var StudioRunDetailResponseSchema = import_zod4.z.object({
1530
+ var StudioRunDetailResponseSchema = import_zod6.z.object({
1009
1531
  run: StudioRunSchema,
1010
- scores: import_zod4.z.array(StudioScoreSchema).optional(),
1011
- canReview: import_zod4.z.boolean().optional(),
1012
- reviewActorId: import_zod4.z.string().optional(),
1013
- events: import_zod4.z.array(StudioDetailEventSchema),
1532
+ scores: import_zod6.z.array(StudioScoreSchema).optional(),
1533
+ canReview: import_zod6.z.boolean().optional(),
1534
+ reviewActorId: import_zod6.z.string().optional(),
1535
+ events: import_zod6.z.array(StudioDetailEventSchema),
1014
1536
  session: StudioSessionSchema.nullable(),
1015
- interrupts: import_zod4.z.array(StudioInterruptSchema),
1016
- updatedAt: import_zod4.z.string().datetime({ offset: true })
1537
+ interrupts: import_zod6.z.array(StudioInterruptSchema),
1538
+ updatedAt: import_zod6.z.string().datetime({ offset: true })
1017
1539
  }).strip();
1018
- var StudioSessionDetailResponseSchema = import_zod4.z.object({
1540
+ var StudioSessionDetailResponseSchema = import_zod6.z.object({
1019
1541
  session: StudioSessionSchema,
1020
- runs: import_zod4.z.array(StudioRunSchema),
1021
- events: import_zod4.z.array(StudioDetailEventSchema),
1022
- interrupts: import_zod4.z.array(StudioInterruptSchema),
1023
- updatedAt: import_zod4.z.string().datetime({ offset: true })
1542
+ runs: import_zod6.z.array(StudioRunSchema),
1543
+ events: import_zod6.z.array(StudioDetailEventSchema),
1544
+ interrupts: import_zod6.z.array(StudioInterruptSchema),
1545
+ updatedAt: import_zod6.z.string().datetime({ offset: true })
1024
1546
  }).strip();
1025
- var StudioInterruptDetailResponseSchema = import_zod4.z.object({
1547
+ var StudioInterruptDetailResponseSchema = import_zod6.z.object({
1026
1548
  interrupt: StudioInterruptSchema,
1027
- events: import_zod4.z.array(StudioDetailEventSchema),
1549
+ events: import_zod6.z.array(StudioDetailEventSchema),
1028
1550
  run: StudioRunSchema.nullable(),
1029
1551
  session: StudioSessionSchema.nullable(),
1030
- updatedAt: import_zod4.z.string().datetime({ offset: true })
1552
+ updatedAt: import_zod6.z.string().datetime({ offset: true })
1031
1553
  }).strip();
1032
- var StudioWorkflowsResponseSchema = import_zod4.z.object({
1033
- workflows: import_zod4.z.array(StudioWorkflowSchema),
1034
- observedCalls: import_zod4.z.array(
1554
+ var StudioWorkflowsResponseSchema = import_zod6.z.object({
1555
+ workflows: import_zod6.z.array(StudioWorkflowSchema),
1556
+ observedCalls: import_zod6.z.array(
1035
1557
  StudioWorkflowTransitionSchema.extend({
1036
- runId: import_zod4.z.string(),
1037
- invocationId: import_zod4.z.string(),
1038
- branchId: import_zod4.z.string()
1558
+ runId: import_zod6.z.string(),
1559
+ invocationId: import_zod6.z.string(),
1560
+ branchId: import_zod6.z.string()
1039
1561
  })
1040
1562
  ).optional(),
1041
- transitions: import_zod4.z.array(StudioWorkflowTransitionSchema),
1563
+ transitions: import_zod6.z.array(StudioWorkflowTransitionSchema),
1042
1564
  cohort: StudioTimeRangeContextSchema.extend({
1043
- workflowId: import_zod4.z.string().nullable(),
1044
- version: import_zod4.z.string().nullable()
1565
+ workflowId: import_zod6.z.string().nullable(),
1566
+ version: import_zod6.z.string().nullable()
1045
1567
  }).strip()
1046
1568
  }).strip();
1047
- var StudioCatalogsResponseSchema = import_zod4.z.object({
1048
- environments: import_zod4.z.array(import_zod4.z.string()),
1049
- providers: import_zod4.z.array(import_zod4.z.string()),
1050
- models: import_zod4.z.array(import_zod4.z.string()),
1051
- workflows: import_zod4.z.array(import_zod4.z.string()),
1052
- tags: import_zod4.z.array(import_zod4.z.string())
1569
+ var StudioCatalogsResponseSchema = import_zod6.z.object({
1570
+ environments: import_zod6.z.array(import_zod6.z.string()),
1571
+ providers: import_zod6.z.array(import_zod6.z.string()),
1572
+ models: import_zod6.z.array(import_zod6.z.string()),
1573
+ workflows: import_zod6.z.array(import_zod6.z.string()),
1574
+ tags: import_zod6.z.array(import_zod6.z.string())
1053
1575
  }).strip();
1054
- var StudioContextResponseSchema = import_zod4.z.object({
1055
- organization: import_zod4.z.object({
1056
- name: import_zod4.z.string().min(1)
1576
+ var StudioContextResponseSchema = import_zod6.z.object({
1577
+ organization: import_zod6.z.object({
1578
+ name: import_zod6.z.string().min(1)
1057
1579
  }).strip(),
1058
- project: import_zod4.z.object({
1059
- name: import_zod4.z.string().min(1)
1580
+ project: import_zod6.z.object({
1581
+ name: import_zod6.z.string().min(1)
1060
1582
  }).strip(),
1061
- environments: import_zod4.z.array(import_zod4.z.string()),
1062
- apiKey: import_zod4.z.object({
1063
- mode: import_zod4.z.enum(["test", "live"]),
1064
- scopes: import_zod4.z.array(import_zod4.z.string())
1583
+ environments: import_zod6.z.array(import_zod6.z.string()),
1584
+ apiKey: import_zod6.z.object({
1585
+ mode: import_zod6.z.enum(["test", "live"]),
1586
+ scopes: import_zod6.z.array(import_zod6.z.string())
1065
1587
  }).strip().nullable(),
1066
- api: import_zod4.z.object({
1067
- status: import_zod4.z.literal("ok"),
1068
- service: import_zod4.z.literal("kortyx-api"),
1069
- version: import_zod4.z.string().min(1)
1588
+ api: import_zod6.z.object({
1589
+ status: import_zod6.z.literal("ok"),
1590
+ service: import_zod6.z.literal("kortyx-api"),
1591
+ version: import_zod6.z.string().min(1)
1070
1592
  }).strip()
1071
1593
  }).strip();
1072
1594
  // Annotate the CommonJS export names for ESM import in node:
1073
1595
  0 && (module.exports = {
1074
1596
  ClearScoreResponseSchema,
1075
1597
  ClearUserFeedbackRequestSchema,
1598
+ DIAGNOSTIC_LIMITS,
1599
+ DiagnosticContentSchema,
1600
+ DiagnosticCorrelationSchema,
1601
+ DiagnosticManifestSchema,
1602
+ DiagnosticNoteSchema,
1603
+ DiagnosticPartSchema,
1604
+ DiagnosticResponseSchema,
1076
1605
  EnsureWorkflowTopologyRequestSchema,
1077
1606
  EnsureWorkflowTopologyResponseSchema,
1078
1607
  FEEDBACK_FILTERS,
1079
1608
  FeedbackReasonSchema,
1080
1609
  FeedbackSummarySchema,
1610
+ PromptAssetSchema,
1611
+ PromptAssignmentSchema,
1612
+ PromptBundleSchema,
1613
+ PromptCategorySchema,
1614
+ PromptDetailSchema,
1615
+ PromptEvidenceSchema,
1616
+ PromptGroupSchema,
1617
+ PromptLibrarySchema,
1618
+ PromptMutationSchema,
1619
+ PromptPolicySchema,
1620
+ PromptSelectionSchema,
1621
+ PromptStoredVersionSchema,
1622
+ PromptTransferRequestSchema,
1623
+ PromptUsageSchema,
1081
1624
  ReviewVerdictSchema,
1082
1625
  STUDIO_API_PROTOCOL_VERSION,
1083
1626
  STUDIO_TIME_RANGES,
@@ -1146,11 +1689,15 @@ var StudioContextResponseSchema = import_zod4.z.object({
1146
1689
  WorkflowTopologyEdgeSchema,
1147
1690
  WorkflowTopologyNodeSchema,
1148
1691
  WorkflowTopologyTransitionSchema,
1692
+ isPrivateDiagnosticField,
1149
1693
  newerStudioVersion,
1150
1694
  projectWorkflowCalls,
1695
+ redactDiagnosticContent,
1696
+ redactDiagnosticText,
1151
1697
  resolveStudioInterruptStatus,
1152
1698
  resolveStudioTimeRange,
1153
1699
  studioUpdateRunning,
1700
+ summarizeDiagnostic,
1154
1701
  summarizeUserFeedback
1155
1702
  });
1156
1703
  //# sourceMappingURL=index.js.map