@kortyx/telemetry-contracts 0.7.0 → 0.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/index.js CHANGED
@@ -19,8 +19,14 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  // src/index.ts
20
20
  var index_exports = {};
21
21
  __export(index_exports, {
22
+ ClearScoreResponseSchema: () => ClearScoreResponseSchema,
23
+ ClearUserFeedbackRequestSchema: () => ClearUserFeedbackRequestSchema,
22
24
  EnsureWorkflowTopologyRequestSchema: () => EnsureWorkflowTopologyRequestSchema,
23
25
  EnsureWorkflowTopologyResponseSchema: () => EnsureWorkflowTopologyResponseSchema,
26
+ FEEDBACK_FILTERS: () => FEEDBACK_FILTERS,
27
+ FeedbackReasonSchema: () => FeedbackReasonSchema,
28
+ FeedbackSummarySchema: () => FeedbackSummarySchema,
29
+ ReviewVerdictSchema: () => ReviewVerdictSchema,
24
30
  STUDIO_TIME_RANGES: () => STUDIO_TIME_RANGES,
25
31
  StudioCatalogsResponseSchema: () => StudioCatalogsResponseSchema,
26
32
  StudioChangeResourceSchema: () => StudioChangeResourceSchema,
@@ -41,10 +47,13 @@ __export(index_exports, {
41
47
  StudioReleaseSchema: () => StudioReleaseSchema,
42
48
  StudioReleaseVersionSchema: () => StudioReleaseVersionSchema,
43
49
  StudioResumeOutcomeSchema: () => StudioResumeOutcomeSchema,
50
+ StudioReviewRequestSchema: () => StudioReviewRequestSchema,
44
51
  StudioRunDetailResponseSchema: () => StudioRunDetailResponseSchema,
45
52
  StudioRunSchema: () => StudioRunSchema,
46
53
  StudioRunStatusSchema: () => StudioRunStatusSchema,
47
54
  StudioRunsResponseSchema: () => StudioRunsResponseSchema,
55
+ StudioScoreResponseSchema: () => StudioScoreResponseSchema,
56
+ StudioScoreSchema: () => StudioScoreSchema,
48
57
  StudioSessionDetailResponseSchema: () => StudioSessionDetailResponseSchema,
49
58
  StudioSessionSchema: () => StudioSessionSchema,
50
59
  StudioSessionsResponseSchema: () => StudioSessionsResponseSchema,
@@ -73,6 +82,7 @@ __export(index_exports, {
73
82
  TelemetryServiceSchema: () => TelemetryServiceSchema,
74
83
  TelemetryUnitPriceSchema: () => TelemetryUnitPriceSchema,
75
84
  TelemetryUsageItemSchema: () => TelemetryUsageItemSchema,
85
+ UserFeedbackRequestSchema: () => UserFeedbackRequestSchema,
76
86
  WorkflowTopologyCallSchema: () => WorkflowTopologyCallSchema,
77
87
  WorkflowTopologyEdgeSchema: () => WorkflowTopologyEdgeSchema,
78
88
  WorkflowTopologyNodeSchema: () => WorkflowTopologyNodeSchema,
@@ -81,36 +91,110 @@ __export(index_exports, {
81
91
  projectWorkflowCalls: () => projectWorkflowCalls,
82
92
  resolveStudioInterruptStatus: () => resolveStudioInterruptStatus,
83
93
  resolveStudioTimeRange: () => resolveStudioTimeRange,
84
- studioUpdateRunning: () => studioUpdateRunning
94
+ studioUpdateRunning: () => studioUpdateRunning,
95
+ summarizeUserFeedback: () => summarizeUserFeedback
85
96
  });
86
97
  module.exports = __toCommonJS(index_exports);
87
- var import_zod2 = require("zod");
98
+ var import_zod3 = require("zod");
88
99
 
89
- // src/studio-updates.ts
100
+ // src/scores.ts
90
101
  var import_zod = require("zod");
91
- var StudioReleaseVersionSchema = import_zod.z.string().regex(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/);
92
- var StudioReleaseDeploymentSchema = import_zod.z.object({
93
- strategy: import_zod.z.enum(["rolling", "recreate"])
102
+ var FEEDBACK_FILTERS = ["positive", "negative", "unrated"];
103
+ var FeedbackSummarySchema = import_zod.z.object({
104
+ positive: import_zod.z.number().int().nonnegative(),
105
+ negative: import_zod.z.number().int().nonnegative()
106
+ }).strict();
107
+ var FeedbackReasonSchema = import_zod.z.enum([
108
+ "incorrect",
109
+ "irrelevant",
110
+ "incomplete",
111
+ "unsafe",
112
+ "other"
113
+ ]);
114
+ var ReviewVerdictSchema = import_zod.z.enum([
115
+ "correct",
116
+ "partially-correct",
117
+ "incorrect"
118
+ ]);
119
+ var runId = import_zod.z.string().trim().min(1).max(512);
120
+ var actorId = import_zod.z.string().trim().min(1).max(256);
121
+ var comment = import_zod.z.string().trim().max(4e3).nullable().optional();
122
+ var UserFeedbackRequestSchema = import_zod.z.object({
123
+ runId,
124
+ actorId,
125
+ value: import_zod.z.union([import_zod.z.literal(0), import_zod.z.literal(1)]),
126
+ reasons: import_zod.z.array(FeedbackReasonSchema).max(5).optional(),
127
+ comment
128
+ }).strict();
129
+ var ClearUserFeedbackRequestSchema = UserFeedbackRequestSchema.pick({
130
+ runId: true,
131
+ actorId: true
132
+ });
133
+ var StudioReviewRequestSchema = import_zod.z.object({ value: ReviewVerdictSchema, comment }).strict();
134
+ var BaseScoreSchema = import_zod.z.object({
135
+ id: import_zod.z.string().uuid(),
136
+ target: import_zod.z.object({ type: import_zod.z.literal("run"), runId }).strict(),
137
+ environment: import_zod.z.string().min(1),
138
+ name: import_zod.z.string().min(1),
139
+ source: import_zod.z.enum(["end-user", "human-review", "evaluator"]),
140
+ actorId,
141
+ reasons: import_zod.z.array(FeedbackReasonSchema),
142
+ comment: import_zod.z.string().nullable(),
143
+ createdAt: import_zod.z.string().datetime({ offset: true }),
144
+ updatedAt: import_zod.z.string().datetime({ offset: true })
145
+ }).strict();
146
+ var StudioScoreSchema = import_zod.z.discriminatedUnion("dataType", [
147
+ BaseScoreSchema.extend({
148
+ dataType: import_zod.z.literal("BOOLEAN"),
149
+ value: import_zod.z.union([import_zod.z.literal(0), import_zod.z.literal(1)])
150
+ }),
151
+ BaseScoreSchema.extend({
152
+ dataType: import_zod.z.literal("CATEGORICAL"),
153
+ value: import_zod.z.string()
154
+ }),
155
+ BaseScoreSchema.extend({
156
+ dataType: import_zod.z.literal("NUMERIC"),
157
+ value: import_zod.z.number().finite()
158
+ })
159
+ ]);
160
+ var StudioScoreResponseSchema = import_zod.z.object({ score: StudioScoreSchema }).strict();
161
+ var ClearScoreResponseSchema = import_zod.z.object({ ok: import_zod.z.literal(true) }).strict();
162
+ function summarizeUserFeedback(scores) {
163
+ const feedback = { positive: 0, negative: 0 };
164
+ for (const score of scores) {
165
+ if (score.source !== "end-user" || score.name !== "user-feedback" || score.dataType !== "BOOLEAN")
166
+ continue;
167
+ if (score.value === 1) feedback.positive += 1;
168
+ if (score.value === 0) feedback.negative += 1;
169
+ }
170
+ return feedback;
171
+ }
172
+
173
+ // src/studio-updates.ts
174
+ var import_zod2 = require("zod");
175
+ var StudioReleaseVersionSchema = import_zod2.z.string().regex(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/);
176
+ var StudioReleaseDeploymentSchema = import_zod2.z.object({
177
+ strategy: import_zod2.z.enum(["rolling", "recreate"])
94
178
  });
95
- var StudioReleaseSchema = import_zod.z.object({
96
- format: import_zod.z.literal(1),
97
- installer: import_zod.z.literal(1),
179
+ var StudioReleaseSchema = import_zod2.z.object({
180
+ format: import_zod2.z.literal(1),
181
+ installer: import_zod2.z.literal(1),
98
182
  version: StudioReleaseVersionSchema,
99
- api: import_zod.z.string().regex(/^ghcr\.io\/kortyx-io\/kortyx-api@sha256:[a-f0-9]{64}$/),
100
- studio: import_zod.z.string().regex(/^ghcr\.io\/kortyx-io\/kortyx-studio@sha256:[a-f0-9]{64}$/),
183
+ api: import_zod2.z.string().regex(/^ghcr\.io\/kortyx-io\/kortyx-api@sha256:[a-f0-9]{64}$/),
184
+ studio: import_zod2.z.string().regex(/^ghcr\.io\/kortyx-io\/kortyx-studio@sha256:[a-f0-9]{64}$/),
101
185
  deployment: StudioReleaseDeploymentSchema.default({
102
186
  strategy: "recreate"
103
187
  })
104
188
  });
105
- var StudioUpdateSettingsSchema = import_zod.z.object({
106
- automatic: import_zod.z.boolean(),
107
- hourUtc: import_zod.z.number().int().min(0).max(23)
189
+ var StudioUpdateSettingsSchema = import_zod2.z.object({
190
+ automatic: import_zod2.z.boolean(),
191
+ hourUtc: import_zod2.z.number().int().min(0).max(23)
108
192
  });
109
- var StudioUpdateOperationSchema = import_zod.z.object({
110
- id: import_zod.z.uuid(),
111
- from: import_zod.z.string(),
193
+ var StudioUpdateOperationSchema = import_zod2.z.object({
194
+ id: import_zod2.z.uuid(),
195
+ from: import_zod2.z.string(),
112
196
  release: StudioReleaseSchema,
113
- phase: import_zod.z.enum([
197
+ phase: import_zod2.z.enum([
114
198
  "starting",
115
199
  "pulling",
116
200
  "backup",
@@ -119,16 +203,16 @@ var StudioUpdateOperationSchema = import_zod.z.object({
119
203
  "succeeded",
120
204
  "failed"
121
205
  ]),
122
- startedAt: import_zod.z.iso.datetime(),
123
- updatedAt: import_zod.z.iso.datetime(),
124
- backup: import_zod.z.string().nullable(),
125
- messages: import_zod.z.array(import_zod.z.string()).max(100)
206
+ startedAt: import_zod2.z.iso.datetime(),
207
+ updatedAt: import_zod2.z.iso.datetime(),
208
+ backup: import_zod2.z.string().nullable(),
209
+ messages: import_zod2.z.array(import_zod2.z.string()).max(100)
126
210
  });
127
- var StudioUpdateStatusSchema = import_zod.z.object({
128
- current: import_zod.z.string().nullable(),
211
+ var StudioUpdateStatusSchema = import_zod2.z.object({
212
+ current: import_zod2.z.string().nullable(),
129
213
  available: StudioReleaseSchema.nullable(),
130
- checkedAt: import_zod.z.iso.datetime().nullable(),
131
- checkError: import_zod.z.string().nullable(),
214
+ checkedAt: import_zod2.z.iso.datetime().nullable(),
215
+ checkError: import_zod2.z.string().nullable(),
132
216
  settings: StudioUpdateSettingsSchema,
133
217
  operation: StudioUpdateOperationSchema.nullable()
134
218
  });
@@ -272,95 +356,95 @@ var TELEMETRY_EVENT_TYPES = [
272
356
  "session.forked",
273
357
  "session.rolled_back"
274
358
  ];
275
- var TelemetryServiceSchema = import_zod2.z.object({
276
- name: import_zod2.z.string().min(1),
277
- deploymentRef: import_zod2.z.string().min(1).optional()
278
- }).strict();
279
- var WorkflowTopologyNodeSchema = import_zod2.z.object({
280
- id: import_zod2.z.string().min(1),
281
- label: import_zod2.z.string().optional(),
282
- type: import_zod2.z.string().optional(),
283
- provider: import_zod2.z.string().optional(),
284
- model: import_zod2.z.string().optional(),
285
- metadata: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown()).optional()
286
- }).strict();
287
- var WorkflowTopologyEdgeSchema = import_zod2.z.object({
288
- sourceNodeId: import_zod2.z.string().min(1),
289
- targetNodeId: import_zod2.z.string().min(1),
290
- condition: import_zod2.z.string().optional()
291
- }).strict();
292
- var WorkflowTopologyCallSchema = import_zod2.z.object({
293
- sourceNodeId: import_zod2.z.string().min(1),
294
- targetWorkflowId: import_zod2.z.string().min(1)
295
- }).strict();
296
- var WorkflowTopologyTransitionSchema = import_zod2.z.object({
297
- sourceNodeId: import_zod2.z.string().min(1).optional(),
298
- targetWorkflowId: import_zod2.z.string().min(1),
299
- condition: import_zod2.z.string().optional(),
300
- intent: import_zod2.z.string().optional(),
301
- kind: import_zod2.z.enum(["call", "handoff"]).optional()
302
- }).strict();
303
- var EnsureWorkflowTopologyRequestSchema = import_zod2.z.object({
304
- schemaVersion: import_zod2.z.literal(1),
305
- environment: import_zod2.z.string().min(1),
359
+ var TelemetryServiceSchema = import_zod3.z.object({
360
+ name: import_zod3.z.string().min(1),
361
+ deploymentRef: import_zod3.z.string().min(1).optional()
362
+ }).strict();
363
+ var WorkflowTopologyNodeSchema = import_zod3.z.object({
364
+ id: import_zod3.z.string().min(1),
365
+ label: import_zod3.z.string().optional(),
366
+ type: import_zod3.z.string().optional(),
367
+ provider: import_zod3.z.string().optional(),
368
+ model: import_zod3.z.string().optional(),
369
+ metadata: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown()).optional()
370
+ }).strict();
371
+ var WorkflowTopologyEdgeSchema = import_zod3.z.object({
372
+ sourceNodeId: import_zod3.z.string().min(1),
373
+ targetNodeId: import_zod3.z.string().min(1),
374
+ condition: import_zod3.z.string().optional()
375
+ }).strict();
376
+ var WorkflowTopologyCallSchema = import_zod3.z.object({
377
+ sourceNodeId: import_zod3.z.string().min(1),
378
+ targetWorkflowId: import_zod3.z.string().min(1)
379
+ }).strict();
380
+ var WorkflowTopologyTransitionSchema = import_zod3.z.object({
381
+ sourceNodeId: import_zod3.z.string().min(1).optional(),
382
+ targetWorkflowId: import_zod3.z.string().min(1),
383
+ condition: import_zod3.z.string().optional(),
384
+ intent: import_zod3.z.string().optional(),
385
+ kind: import_zod3.z.enum(["call", "handoff"]).optional()
386
+ }).strict();
387
+ var EnsureWorkflowTopologyRequestSchema = import_zod3.z.object({
388
+ schemaVersion: import_zod3.z.literal(1),
389
+ environment: import_zod3.z.string().min(1),
306
390
  service: TelemetryServiceSchema,
307
- workflow: import_zod2.z.object({
308
- id: import_zod2.z.string().min(1),
309
- declaredVersion: import_zod2.z.string().min(1),
310
- description: import_zod2.z.string().optional(),
311
- tags: import_zod2.z.array(import_zod2.z.string()).optional(),
312
- topologyHash: import_zod2.z.string().regex(/^[a-f0-9]{64}$/),
313
- nodes: import_zod2.z.array(WorkflowTopologyNodeSchema),
314
- edges: import_zod2.z.array(WorkflowTopologyEdgeSchema),
315
- transitions: import_zod2.z.array(WorkflowTopologyTransitionSchema).optional(),
316
- calls: import_zod2.z.array(WorkflowTopologyCallSchema).optional()
391
+ workflow: import_zod3.z.object({
392
+ id: import_zod3.z.string().min(1),
393
+ declaredVersion: import_zod3.z.string().min(1),
394
+ description: import_zod3.z.string().optional(),
395
+ tags: import_zod3.z.array(import_zod3.z.string()).optional(),
396
+ topologyHash: import_zod3.z.string().regex(/^[a-f0-9]{64}$/),
397
+ nodes: import_zod3.z.array(WorkflowTopologyNodeSchema),
398
+ edges: import_zod3.z.array(WorkflowTopologyEdgeSchema),
399
+ transitions: import_zod3.z.array(WorkflowTopologyTransitionSchema).optional(),
400
+ calls: import_zod3.z.array(WorkflowTopologyCallSchema).optional()
317
401
  }).strict()
318
402
  }).strict();
319
- var EnsureWorkflowTopologyResponseSchema = import_zod2.z.object({ workflowRevisionId: import_zod2.z.string().min(1), created: import_zod2.z.boolean() }).strict();
320
- var TelemetryEventTypeSchema = import_zod2.z.enum(TELEMETRY_EVENT_TYPES);
321
- var TelemetryEventSchema = import_zod2.z.object({
322
- schemaVersion: import_zod2.z.literal(1),
323
- eventId: import_zod2.z.string().min(1),
324
- occurredAt: import_zod2.z.string().datetime({ offset: true }),
325
- environment: import_zod2.z.string().min(1),
403
+ var EnsureWorkflowTopologyResponseSchema = import_zod3.z.object({ workflowRevisionId: import_zod3.z.string().min(1), created: import_zod3.z.boolean() }).strict();
404
+ var TelemetryEventTypeSchema = import_zod3.z.enum(TELEMETRY_EVENT_TYPES);
405
+ var TelemetryEventSchema = import_zod3.z.object({
406
+ schemaVersion: import_zod3.z.literal(1),
407
+ eventId: import_zod3.z.string().min(1),
408
+ occurredAt: import_zod3.z.string().datetime({ offset: true }),
409
+ environment: import_zod3.z.string().min(1),
326
410
  service: TelemetryServiceSchema,
327
- correlation: import_zod2.z.object({
328
- invocationId: import_zod2.z.string().optional(),
329
- parentInvocationId: import_zod2.z.string().optional(),
330
- branchId: import_zod2.z.string().optional(),
331
- traceId: import_zod2.z.string().optional(),
332
- spanId: import_zod2.z.string().optional(),
333
- parentSpanId: import_zod2.z.string().optional(),
334
- runId: import_zod2.z.string().min(1),
335
- sessionId: import_zod2.z.string().optional(),
336
- workflowId: import_zod2.z.string().min(1),
337
- workflowRevisionId: import_zod2.z.string().optional(),
338
- topologyHash: import_zod2.z.string().regex(/^[a-f0-9]{64}$/).optional(),
339
- nodeId: import_zod2.z.string().optional()
411
+ correlation: import_zod3.z.object({
412
+ invocationId: import_zod3.z.string().optional(),
413
+ parentInvocationId: import_zod3.z.string().optional(),
414
+ branchId: import_zod3.z.string().optional(),
415
+ traceId: import_zod3.z.string().optional(),
416
+ spanId: import_zod3.z.string().optional(),
417
+ parentSpanId: import_zod3.z.string().optional(),
418
+ runId: import_zod3.z.string().min(1),
419
+ sessionId: import_zod3.z.string().optional(),
420
+ workflowId: import_zod3.z.string().min(1),
421
+ workflowRevisionId: import_zod3.z.string().optional(),
422
+ topologyHash: import_zod3.z.string().regex(/^[a-f0-9]{64}$/).optional(),
423
+ nodeId: import_zod3.z.string().optional()
340
424
  }).strict(),
341
- context: import_zod2.z.object({
342
- userId: import_zod2.z.string().optional(),
343
- tenantId: import_zod2.z.string().optional(),
344
- tags: import_zod2.z.array(import_zod2.z.string()).optional(),
345
- metadata: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown()).optional()
425
+ context: import_zod3.z.object({
426
+ userId: import_zod3.z.string().optional(),
427
+ tenantId: import_zod3.z.string().optional(),
428
+ tags: import_zod3.z.array(import_zod3.z.string()).optional(),
429
+ metadata: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown()).optional()
346
430
  }).strict().optional(),
347
431
  type: TelemetryEventTypeSchema,
348
- payload: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown())
432
+ payload: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown())
349
433
  }).strict();
350
- var TelemetryEventBatchSchema = import_zod2.z.object({ events: import_zod2.z.array(TelemetryEventSchema).min(1) }).strict();
351
- var TelemetryEventBatchResponseSchema = import_zod2.z.object({
352
- accepted: import_zod2.z.number().int().nonnegative(),
353
- inserted: import_zod2.z.number().int().nonnegative(),
354
- duplicates: import_zod2.z.number().int().nonnegative()
434
+ var TelemetryEventBatchSchema = import_zod3.z.object({ events: import_zod3.z.array(TelemetryEventSchema).min(1) }).strict();
435
+ var TelemetryEventBatchResponseSchema = import_zod3.z.object({
436
+ accepted: import_zod3.z.number().int().nonnegative(),
437
+ inserted: import_zod3.z.number().int().nonnegative(),
438
+ duplicates: import_zod3.z.number().int().nonnegative()
355
439
  }).strict();
356
- var TelemetryPricingSourceSchema = import_zod2.z.enum([
440
+ var TelemetryPricingSourceSchema = import_zod3.z.enum([
357
441
  "sdk",
358
442
  "provider",
359
443
  "custom",
360
444
  "project-rate-card",
361
445
  "default-rate-card"
362
446
  ]);
363
- var TelemetryPricingUnitSchema = import_zod2.z.enum([
447
+ var TelemetryPricingUnitSchema = import_zod3.z.enum([
364
448
  "token",
365
449
  "character",
366
450
  "request",
@@ -373,7 +457,7 @@ var TelemetryPricingUnitSchema = import_zod2.z.enum([
373
457
  "minute",
374
458
  "custom"
375
459
  ]);
376
- var TelemetryPricingUsageTypeSchema = import_zod2.z.enum([
460
+ var TelemetryPricingUsageTypeSchema = import_zod3.z.enum([
377
461
  "input",
378
462
  "output",
379
463
  "reasoning",
@@ -389,42 +473,42 @@ var TelemetryPricingUsageTypeSchema = import_zod2.z.enum([
389
473
  "request",
390
474
  "custom"
391
475
  ]);
392
- var TelemetryUsageItemSchema = import_zod2.z.object({
476
+ var TelemetryUsageItemSchema = import_zod3.z.object({
393
477
  usageType: TelemetryPricingUsageTypeSchema,
394
- quantity: import_zod2.z.number().nonnegative(),
478
+ quantity: import_zod3.z.number().nonnegative(),
395
479
  unit: TelemetryPricingUnitSchema,
396
- label: import_zod2.z.string().optional()
480
+ label: import_zod3.z.string().optional()
397
481
  }).strict();
398
- var TelemetryUnitPriceSchema = import_zod2.z.object({
482
+ var TelemetryUnitPriceSchema = import_zod3.z.object({
399
483
  usageType: TelemetryPricingUsageTypeSchema,
400
484
  unit: TelemetryPricingUnitSchema,
401
- unitQuantity: import_zod2.z.number().positive().default(1),
402
- priceMicros: import_zod2.z.number().int().nonnegative(),
403
- label: import_zod2.z.string().optional()
485
+ unitQuantity: import_zod3.z.number().positive().default(1),
486
+ priceMicros: import_zod3.z.number().int().nonnegative(),
487
+ label: import_zod3.z.string().optional()
404
488
  }).strict();
405
- var TelemetryPricingLineItemSchema = import_zod2.z.object({
489
+ var TelemetryPricingLineItemSchema = import_zod3.z.object({
406
490
  usageType: TelemetryPricingUsageTypeSchema,
407
- quantity: import_zod2.z.number().nonnegative(),
491
+ quantity: import_zod3.z.number().nonnegative(),
408
492
  unit: TelemetryPricingUnitSchema,
409
- unitQuantity: import_zod2.z.number().positive().default(1),
410
- unitPriceMicros: import_zod2.z.number().int().nonnegative().optional(),
411
- totalCostMicros: import_zod2.z.number().int().nonnegative().optional(),
412
- label: import_zod2.z.string().optional()
493
+ unitQuantity: import_zod3.z.number().positive().default(1),
494
+ unitPriceMicros: import_zod3.z.number().int().nonnegative().optional(),
495
+ totalCostMicros: import_zod3.z.number().int().nonnegative().optional(),
496
+ label: import_zod3.z.string().optional()
413
497
  }).strict().refine(
414
498
  (value) => value.totalCostMicros !== void 0 || value.unitPriceMicros !== void 0,
415
499
  "line item requires totalCostMicros or unitPriceMicros"
416
500
  );
417
- var TelemetryPricingHintSchema = import_zod2.z.object({
501
+ var TelemetryPricingHintSchema = import_zod3.z.object({
418
502
  source: TelemetryPricingSourceSchema.extract(["sdk", "provider", "custom"]),
419
- currency: import_zod2.z.string().min(3).max(12).default("USD"),
420
- actualCostMicros: import_zod2.z.number().int().nonnegative().optional(),
421
- lineItems: import_zod2.z.array(TelemetryPricingLineItemSchema).optional(),
422
- unitPrices: import_zod2.z.array(TelemetryUnitPriceSchema).optional(),
423
- usageItems: import_zod2.z.array(TelemetryUsageItemSchema).optional(),
424
- pricingRef: import_zod2.z.string().min(1).optional(),
425
- metadata: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown()).optional()
426
- }).strict();
427
- var StudioRunStatusSchema = import_zod2.z.enum([
503
+ currency: import_zod3.z.string().min(3).max(12).default("USD"),
504
+ actualCostMicros: import_zod3.z.number().int().nonnegative().optional(),
505
+ lineItems: import_zod3.z.array(TelemetryPricingLineItemSchema).optional(),
506
+ unitPrices: import_zod3.z.array(TelemetryUnitPriceSchema).optional(),
507
+ usageItems: import_zod3.z.array(TelemetryUsageItemSchema).optional(),
508
+ pricingRef: import_zod3.z.string().min(1).optional(),
509
+ metadata: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown()).optional()
510
+ }).strict();
511
+ var StudioRunStatusSchema = import_zod3.z.enum([
428
512
  "running",
429
513
  "completed",
430
514
  "interrupted",
@@ -440,16 +524,16 @@ var STUDIO_TIME_RANGES = [
440
524
  "All time",
441
525
  "Custom range"
442
526
  ];
443
- var StudioTimeRangeSchema = import_zod2.z.enum(STUDIO_TIME_RANGES);
444
- var StudioTimeRangeQuerySchema = import_zod2.z.object({
527
+ var StudioTimeRangeSchema = import_zod3.z.enum(STUDIO_TIME_RANGES);
528
+ var StudioTimeRangeQuerySchema = import_zod3.z.object({
445
529
  range: StudioTimeRangeSchema.optional(),
446
- startedAfter: import_zod2.z.string().optional(),
447
- startedBefore: import_zod2.z.string().optional()
530
+ startedAfter: import_zod3.z.string().optional(),
531
+ startedBefore: import_zod3.z.string().optional()
448
532
  }).strict();
449
- var StudioTimeRangeContextSchema = import_zod2.z.object({
533
+ var StudioTimeRangeContextSchema = import_zod3.z.object({
450
534
  range: StudioTimeRangeSchema,
451
- startedAfter: import_zod2.z.string().datetime({ offset: true }).nullable(),
452
- startedBefore: import_zod2.z.string().datetime({ offset: true }).nullable()
535
+ startedAfter: import_zod3.z.string().datetime({ offset: true }).nullable(),
536
+ startedBefore: import_zod3.z.string().datetime({ offset: true }).nullable()
453
537
  }).strict();
454
538
  var STUDIO_TIME_RANGE_MILLISECONDS = {
455
539
  "Last hour": 60 * 60 * 1e3,
@@ -523,7 +607,7 @@ var resolveStudioTimeRange = (input, now = /* @__PURE__ */ new Date()) => {
523
607
  }
524
608
  };
525
609
  };
526
- var StudioInterruptStatusSchema = import_zod2.z.enum([
610
+ var StudioInterruptStatusSchema = import_zod3.z.enum([
527
611
  "pending",
528
612
  "resolved",
529
613
  "expired",
@@ -536,313 +620,323 @@ var resolveStudioInterruptStatus = (input, now = Date.now()) => {
536
620
  const nowMs = typeof now === "number" ? now : now.getTime();
537
621
  return Number.isFinite(expiresAt) && Number.isFinite(nowMs) && expiresAt <= nowMs ? "expired" : input.status;
538
622
  };
539
- var StudioInterruptTypeSchema = import_zod2.z.enum([
623
+ var StudioInterruptTypeSchema = import_zod3.z.enum([
540
624
  "choice",
541
625
  "multi-choice",
542
626
  "text",
543
627
  "unknown"
544
628
  ]);
545
- var StudioInterruptInteractionModeSchema = import_zod2.z.enum([
629
+ var StudioInterruptInteractionModeSchema = import_zod3.z.enum([
546
630
  "static-options",
547
631
  "dynamic-picker",
548
632
  "freeform",
549
633
  "unknown"
550
634
  ]);
551
- var StudioInterruptOptionSchema = import_zod2.z.object({
552
- id: import_zod2.z.string().min(1),
553
- label: import_zod2.z.string().min(1),
554
- description: import_zod2.z.string().nullable()
635
+ var StudioInterruptOptionSchema = import_zod3.z.object({
636
+ id: import_zod3.z.string().min(1),
637
+ label: import_zod3.z.string().min(1),
638
+ description: import_zod3.z.string().nullable()
555
639
  }).strict();
556
- var StudioResumeOutcomeSchema = import_zod2.z.enum([
640
+ var StudioResumeOutcomeSchema = import_zod3.z.enum([
557
641
  "resumed",
558
642
  "resume failed",
559
643
  "expired before resume",
560
644
  "cancelled"
561
645
  ]);
562
- var StudioWorkflowHealthSchema = import_zod2.z.enum([
646
+ var StudioWorkflowHealthSchema = import_zod3.z.enum([
563
647
  "unknown",
564
648
  "healthy",
565
649
  "degraded",
566
650
  "failing",
567
651
  "idle"
568
652
  ]);
569
- var StudioPricingStatusSchema = import_zod2.z.enum([
653
+ var StudioPricingStatusSchema = import_zod3.z.enum([
570
654
  "priced",
571
655
  "unpriced",
572
656
  "unknown"
573
657
  ]);
574
658
  var StudioPricingSourceSchema = TelemetryPricingSourceSchema.nullable();
575
- var StudioChangeResourceSchema = import_zod2.z.enum([
659
+ var StudioChangeResourceSchema = import_zod3.z.enum([
576
660
  "runs",
577
661
  "sessions",
578
662
  "interrupts"
579
663
  ]);
580
- var StudioChangeSchema = import_zod2.z.object({
581
- schemaVersion: import_zod2.z.literal(1),
582
- changeId: import_zod2.z.string().min(1),
583
- emittedAt: import_zod2.z.string().datetime({ offset: true }),
584
- organizationId: import_zod2.z.string().min(1),
585
- projectId: import_zod2.z.string().min(1),
586
- resources: import_zod2.z.array(StudioChangeResourceSchema).min(1)
587
- }).strict();
588
- var StudioMetricSchema = import_zod2.z.object({
589
- runCount: import_zod2.z.number().int().nonnegative(),
590
- successRate: import_zod2.z.number().min(0).max(100).nullable(),
591
- errorRate: import_zod2.z.number().min(0).max(100).nullable(),
592
- retryCount: import_zod2.z.number().int().nonnegative().nullable(),
593
- interruptRate: import_zod2.z.number().min(0).max(100).nullable(),
594
- p50DurationMs: import_zod2.z.number().nonnegative().nullable(),
595
- p95DurationMs: import_zod2.z.number().nonnegative().nullable(),
596
- averageTokens: import_zod2.z.number().nonnegative().nullable(),
597
- averageCost: import_zod2.z.number().nonnegative().nullable(),
598
- currency: import_zod2.z.string().nullable()
599
- }).strict();
600
- var StudioRunSchema = import_zod2.z.object({
601
- id: import_zod2.z.string().min(1),
602
- callerNodeId: import_zod2.z.string().optional(),
603
- parentRunId: import_zod2.z.string().optional(),
604
- parentWorkflowId: import_zod2.z.string().optional(),
605
- invocationId: import_zod2.z.string().optional(),
606
- branchId: import_zod2.z.string().optional(),
607
- callId: import_zod2.z.string().optional(),
664
+ var StudioChangeSchema = import_zod3.z.object({
665
+ schemaVersion: import_zod3.z.literal(1),
666
+ changeId: import_zod3.z.string().min(1),
667
+ emittedAt: import_zod3.z.string().datetime({ offset: true }),
668
+ organizationId: import_zod3.z.string().min(1),
669
+ projectId: import_zod3.z.string().min(1),
670
+ resources: import_zod3.z.array(StudioChangeResourceSchema).min(1)
671
+ }).strict();
672
+ var StudioMetricSchema = import_zod3.z.object({
673
+ runCount: import_zod3.z.number().int().nonnegative(),
674
+ successRate: import_zod3.z.number().min(0).max(100).nullable(),
675
+ errorRate: import_zod3.z.number().min(0).max(100).nullable(),
676
+ retryCount: import_zod3.z.number().int().nonnegative().nullable(),
677
+ interruptRate: import_zod3.z.number().min(0).max(100).nullable(),
678
+ p50DurationMs: import_zod3.z.number().nonnegative().nullable(),
679
+ p95DurationMs: import_zod3.z.number().nonnegative().nullable(),
680
+ averageTokens: import_zod3.z.number().nonnegative().nullable(),
681
+ averageCost: import_zod3.z.number().nonnegative().nullable(),
682
+ currency: import_zod3.z.string().nullable()
683
+ }).strict();
684
+ var StudioRunSchema = import_zod3.z.object({
685
+ id: import_zod3.z.string().min(1),
686
+ feedback: FeedbackSummarySchema.optional(),
687
+ callerNodeId: import_zod3.z.string().optional(),
688
+ parentRunId: import_zod3.z.string().optional(),
689
+ parentWorkflowId: import_zod3.z.string().optional(),
690
+ invocationId: import_zod3.z.string().optional(),
691
+ branchId: import_zod3.z.string().optional(),
692
+ callId: import_zod3.z.string().optional(),
608
693
  status: StudioRunStatusSchema,
609
- startedAt: import_zod2.z.string().datetime({ offset: true }),
610
- endedAt: import_zod2.z.string().datetime({ offset: true }).nullable(),
611
- workflowId: import_zod2.z.string().min(1),
612
- workflowIds: import_zod2.z.array(import_zod2.z.string().min(1)),
613
- workflowRefs: import_zod2.z.array(
614
- import_zod2.z.object({
615
- workflowId: import_zod2.z.string().min(1),
616
- workflowRevisionId: import_zod2.z.string().nullable(),
617
- declaredVersion: import_zod2.z.string().nullable()
694
+ startedAt: import_zod3.z.string().datetime({ offset: true }),
695
+ endedAt: import_zod3.z.string().datetime({ offset: true }).nullable(),
696
+ workflowId: import_zod3.z.string().min(1),
697
+ workflowIds: import_zod3.z.array(import_zod3.z.string().min(1)),
698
+ workflowRefs: import_zod3.z.array(
699
+ import_zod3.z.object({
700
+ workflowId: import_zod3.z.string().min(1),
701
+ workflowRevisionId: import_zod3.z.string().nullable(),
702
+ declaredVersion: import_zod3.z.string().nullable()
618
703
  }).strict()
619
704
  ),
620
- workflowRevisionId: import_zod2.z.string().nullable(),
621
- declaredVersion: import_zod2.z.string().nullable(),
622
- transitionIds: import_zod2.z.array(import_zod2.z.string().min(1)),
623
- path: import_zod2.z.array(import_zod2.z.string()),
624
- sessionId: import_zod2.z.string().nullable(),
625
- provider: import_zod2.z.string().nullable(),
626
- model: import_zod2.z.string().nullable(),
627
- models: import_zod2.z.array(import_zod2.z.string()),
628
- durationMs: import_zod2.z.number().nonnegative().nullable(),
629
- tokens: import_zod2.z.number().int().nonnegative().nullable(),
630
- cost: import_zod2.z.number().nonnegative().nullable(),
705
+ workflowRevisionId: import_zod3.z.string().nullable(),
706
+ declaredVersion: import_zod3.z.string().nullable(),
707
+ transitionIds: import_zod3.z.array(import_zod3.z.string().min(1)),
708
+ path: import_zod3.z.array(import_zod3.z.string()),
709
+ sessionId: import_zod3.z.string().nullable(),
710
+ provider: import_zod3.z.string().nullable(),
711
+ model: import_zod3.z.string().nullable(),
712
+ models: import_zod3.z.array(import_zod3.z.string()),
713
+ durationMs: import_zod3.z.number().nonnegative().nullable(),
714
+ tokens: import_zod3.z.number().int().nonnegative().nullable(),
715
+ cost: import_zod3.z.number().nonnegative().nullable(),
631
716
  pricingStatus: StudioPricingStatusSchema,
632
717
  pricingSource: StudioPricingSourceSchema,
633
- currency: import_zod2.z.string().nullable(),
634
- result: import_zod2.z.string().nullable(),
635
- environment: import_zod2.z.string().min(1),
636
- userId: import_zod2.z.string().nullable(),
637
- tenantId: import_zod2.z.string().nullable(),
638
- hasTool: import_zod2.z.boolean(),
639
- hasRetry: import_zod2.z.boolean(),
640
- interruptNodeId: import_zod2.z.string().nullable(),
641
- interruptId: import_zod2.z.string().nullable().optional(),
718
+ currency: import_zod3.z.string().nullable(),
719
+ result: import_zod3.z.string().nullable(),
720
+ environment: import_zod3.z.string().min(1),
721
+ userId: import_zod3.z.string().nullable(),
722
+ tenantId: import_zod3.z.string().nullable(),
723
+ hasTool: import_zod3.z.boolean(),
724
+ hasRetry: import_zod3.z.boolean(),
725
+ interruptNodeId: import_zod3.z.string().nullable(),
726
+ interruptId: import_zod3.z.string().nullable().optional(),
642
727
  interruptStatus: StudioInterruptStatusSchema.nullable().optional(),
643
- interruptExpiresAt: import_zod2.z.string().datetime({ offset: true }).nullable().optional()
728
+ interruptExpiresAt: import_zod3.z.string().datetime({ offset: true }).nullable().optional()
644
729
  }).strict();
645
- var StudioSessionSchema = import_zod2.z.object({
646
- id: import_zod2.z.string().min(1),
730
+ var StudioSessionSchema = import_zod3.z.object({
731
+ id: import_zod3.z.string().min(1),
647
732
  status: StudioRunStatusSchema,
648
- lastActivityAt: import_zod2.z.string().datetime({ offset: true }),
649
- workflowIds: import_zod2.z.array(import_zod2.z.string()),
650
- workflowCount: import_zod2.z.number().int().nonnegative(),
651
- activeWorkflowId: import_zod2.z.string().nullable(),
652
- activeVersion: import_zod2.z.string().nullable(),
653
- userId: import_zod2.z.string().nullable(),
654
- tenantId: import_zod2.z.string().nullable(),
655
- runs: import_zod2.z.number().int().nonnegative(),
656
- succeeded: import_zod2.z.number().int().nonnegative(),
657
- failed: import_zod2.z.number().int().nonnegative(),
658
- interrupted: import_zod2.z.number().int().nonnegative(),
659
- checkpoints: import_zod2.z.number().int().nonnegative(),
660
- hasFork: import_zod2.z.boolean(),
661
- durationMs: import_zod2.z.number().nonnegative().nullable(),
662
- tokens: import_zod2.z.number().int().nonnegative().nullable(),
663
- cost: import_zod2.z.number().nonnegative().nullable(),
733
+ lastActivityAt: import_zod3.z.string().datetime({ offset: true }),
734
+ workflowIds: import_zod3.z.array(import_zod3.z.string()),
735
+ workflowCount: import_zod3.z.number().int().nonnegative(),
736
+ activeWorkflowId: import_zod3.z.string().nullable(),
737
+ activeVersion: import_zod3.z.string().nullable(),
738
+ userId: import_zod3.z.string().nullable(),
739
+ tenantId: import_zod3.z.string().nullable(),
740
+ runs: import_zod3.z.number().int().nonnegative(),
741
+ succeeded: import_zod3.z.number().int().nonnegative(),
742
+ failed: import_zod3.z.number().int().nonnegative(),
743
+ interrupted: import_zod3.z.number().int().nonnegative(),
744
+ checkpoints: import_zod3.z.number().int().nonnegative(),
745
+ hasFork: import_zod3.z.boolean(),
746
+ durationMs: import_zod3.z.number().nonnegative().nullable(),
747
+ tokens: import_zod3.z.number().int().nonnegative().nullable(),
748
+ cost: import_zod3.z.number().nonnegative().nullable(),
664
749
  pricingStatus: StudioPricingStatusSchema,
665
750
  pricingSource: StudioPricingSourceSchema,
666
- currency: import_zod2.z.string().nullable(),
667
- latestResult: import_zod2.z.string().nullable(),
668
- latestError: import_zod2.z.string().nullable(),
669
- pendingInterruptId: import_zod2.z.string().nullable(),
751
+ currency: import_zod3.z.string().nullable(),
752
+ latestResult: import_zod3.z.string().nullable(),
753
+ latestError: import_zod3.z.string().nullable(),
754
+ pendingInterruptId: import_zod3.z.string().nullable(),
670
755
  interruptStatus: StudioInterruptStatusSchema.nullable().optional(),
671
- interruptExpiresAt: import_zod2.z.string().datetime({ offset: true }).nullable().optional(),
672
- providers: import_zod2.z.array(import_zod2.z.string()),
673
- models: import_zod2.z.array(import_zod2.z.string()),
674
- tags: import_zod2.z.array(import_zod2.z.string()),
675
- environment: import_zod2.z.string().min(1)
676
- }).strict();
677
- var StudioInterruptSchema = import_zod2.z.object({
678
- afterResponseCompleted: import_zod2.z.boolean().optional(),
679
- id: import_zod2.z.string().min(1),
756
+ interruptExpiresAt: import_zod3.z.string().datetime({ offset: true }).nullable().optional(),
757
+ providers: import_zod3.z.array(import_zod3.z.string()),
758
+ models: import_zod3.z.array(import_zod3.z.string()),
759
+ tags: import_zod3.z.array(import_zod3.z.string()),
760
+ environment: import_zod3.z.string().min(1)
761
+ }).strict();
762
+ var StudioInterruptSchema = import_zod3.z.object({
763
+ afterResponseCompleted: import_zod3.z.boolean().optional(),
764
+ id: import_zod3.z.string().min(1),
680
765
  status: StudioInterruptStatusSchema,
681
766
  type: StudioInterruptTypeSchema,
682
767
  interactionMode: StudioInterruptInteractionModeSchema,
683
- schemaId: import_zod2.z.string().nullable(),
684
- schemaVersion: import_zod2.z.string().nullable(),
685
- createdAt: import_zod2.z.string().datetime({ offset: true }),
686
- resolvedAt: import_zod2.z.string().datetime({ offset: true }).nullable(),
687
- expiresAt: import_zod2.z.string().datetime({ offset: true }).nullable(),
688
- question: import_zod2.z.string().nullable(),
689
- contentCaptured: import_zod2.z.boolean(),
690
- optionCount: import_zod2.z.number().int().nonnegative().nullable(),
691
- options: import_zod2.z.array(StudioInterruptOptionSchema).nullable(),
692
- workflowId: import_zod2.z.string().min(1),
693
- nodeId: import_zod2.z.string().nullable(),
694
- sessionId: import_zod2.z.string().nullable(),
695
- userId: import_zod2.z.string().nullable(),
696
- tenantId: import_zod2.z.string().nullable(),
697
- response: import_zod2.z.string().nullable(),
698
- responseCaptured: import_zod2.z.boolean(),
768
+ schemaId: import_zod3.z.string().nullable(),
769
+ schemaVersion: import_zod3.z.string().nullable(),
770
+ createdAt: import_zod3.z.string().datetime({ offset: true }),
771
+ resolvedAt: import_zod3.z.string().datetime({ offset: true }).nullable(),
772
+ expiresAt: import_zod3.z.string().datetime({ offset: true }).nullable(),
773
+ question: import_zod3.z.string().nullable(),
774
+ contentCaptured: import_zod3.z.boolean(),
775
+ optionCount: import_zod3.z.number().int().nonnegative().nullable(),
776
+ options: import_zod3.z.array(StudioInterruptOptionSchema).nullable(),
777
+ workflowId: import_zod3.z.string().min(1),
778
+ nodeId: import_zod3.z.string().nullable(),
779
+ sessionId: import_zod3.z.string().nullable(),
780
+ userId: import_zod3.z.string().nullable(),
781
+ tenantId: import_zod3.z.string().nullable(),
782
+ response: import_zod3.z.string().nullable(),
783
+ responseCaptured: import_zod3.z.boolean(),
699
784
  resumeOutcome: StudioResumeOutcomeSchema.nullable(),
700
- resumeError: import_zod2.z.string().nullable(),
701
- runId: import_zod2.z.string().min(1),
702
- resumeToken: import_zod2.z.string().nullable(),
703
- resolvedBy: import_zod2.z.string().nullable(),
704
- environment: import_zod2.z.string().min(1)
705
- }).strict();
706
- var StudioDetailEventSchema = import_zod2.z.object({
707
- id: import_zod2.z.string().min(1),
785
+ resumeError: import_zod3.z.string().nullable(),
786
+ runId: import_zod3.z.string().min(1),
787
+ resumeToken: import_zod3.z.string().nullable(),
788
+ resolvedBy: import_zod3.z.string().nullable(),
789
+ environment: import_zod3.z.string().min(1)
790
+ }).strict();
791
+ var StudioDetailEventSchema = import_zod3.z.object({
792
+ id: import_zod3.z.string().min(1),
708
793
  type: TelemetryEventTypeSchema,
709
- occurredAt: import_zod2.z.string().datetime({ offset: true }),
710
- receivedAt: import_zod2.z.string().datetime({ offset: true }),
711
- environment: import_zod2.z.string().min(1),
712
- serviceName: import_zod2.z.string().min(1),
713
- deploymentRef: import_zod2.z.string().nullable(),
714
- traceId: import_zod2.z.string().nullable(),
715
- spanId: import_zod2.z.string().nullable(),
716
- parentSpanId: import_zod2.z.string().nullable(),
717
- runId: import_zod2.z.string().min(1),
718
- sessionId: import_zod2.z.string().nullable(),
719
- workflowId: import_zod2.z.string().min(1),
720
- workflowRevisionId: import_zod2.z.string().nullable(),
721
- nodeId: import_zod2.z.string().nullable(),
722
- userId: import_zod2.z.string().nullable(),
723
- tenantId: import_zod2.z.string().nullable(),
724
- tags: import_zod2.z.array(import_zod2.z.string()),
725
- metadata: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown()).nullable(),
726
- payload: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown())
727
- }).strict();
728
- var StudioWorkflowNodeSchema = import_zod2.z.object({
729
- id: import_zod2.z.string().min(1),
730
- label: import_zod2.z.string(),
731
- type: import_zod2.z.string().nullable(),
732
- state: import_zod2.z.enum(["healthy", "warning", "failed", "interrupted", "retried"]).nullable(),
733
- provider: import_zod2.z.string().nullable(),
734
- model: import_zod2.z.string().nullable(),
794
+ occurredAt: import_zod3.z.string().datetime({ offset: true }),
795
+ receivedAt: import_zod3.z.string().datetime({ offset: true }),
796
+ environment: import_zod3.z.string().min(1),
797
+ serviceName: import_zod3.z.string().min(1),
798
+ deploymentRef: import_zod3.z.string().nullable(),
799
+ traceId: import_zod3.z.string().nullable(),
800
+ spanId: import_zod3.z.string().nullable(),
801
+ parentSpanId: import_zod3.z.string().nullable(),
802
+ runId: import_zod3.z.string().min(1),
803
+ sessionId: import_zod3.z.string().nullable(),
804
+ workflowId: import_zod3.z.string().min(1),
805
+ workflowRevisionId: import_zod3.z.string().nullable(),
806
+ nodeId: import_zod3.z.string().nullable(),
807
+ userId: import_zod3.z.string().nullable(),
808
+ tenantId: import_zod3.z.string().nullable(),
809
+ tags: import_zod3.z.array(import_zod3.z.string()),
810
+ metadata: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown()).nullable(),
811
+ payload: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown())
812
+ }).strict();
813
+ var StudioWorkflowNodeSchema = import_zod3.z.object({
814
+ id: import_zod3.z.string().min(1),
815
+ label: import_zod3.z.string(),
816
+ type: import_zod3.z.string().nullable(),
817
+ state: import_zod3.z.enum(["healthy", "warning", "failed", "interrupted", "retried"]).nullable(),
818
+ provider: import_zod3.z.string().nullable(),
819
+ model: import_zod3.z.string().nullable(),
735
820
  metrics: StudioMetricSchema
736
821
  }).strict();
737
- var StudioWorkflowInternalEdgeSchema = import_zod2.z.object({
738
- id: import_zod2.z.string().min(1),
739
- source: import_zod2.z.string().min(1),
740
- target: import_zod2.z.string().min(1),
741
- condition: import_zod2.z.string().nullable()
742
- }).strict();
743
- var StudioWorkflowTransitionSchema = import_zod2.z.object({
744
- kind: import_zod2.z.enum(["call", "handoff"]).optional(),
745
- id: import_zod2.z.string().min(1),
746
- sourceWorkflowId: import_zod2.z.string().min(1),
747
- sourceNodeId: import_zod2.z.string().nullable(),
748
- targetWorkflowId: import_zod2.z.string().min(1),
749
- condition: import_zod2.z.string().nullable(),
750
- volume: import_zod2.z.number().int().nonnegative(),
751
- successRate: import_zod2.z.number().min(0).max(100).nullable(),
752
- medianDurationMs: import_zod2.z.number().nonnegative().nullable(),
753
- errorRate: import_zod2.z.number().min(0).max(100).nullable()
754
- }).strict();
755
- var StudioWorkflowSchema = import_zod2.z.object({
756
- id: import_zod2.z.string().min(1),
757
- name: import_zod2.z.string().min(1),
758
- description: import_zod2.z.string().nullable(),
759
- versions: import_zod2.z.array(import_zod2.z.string()),
760
- activeVersion: import_zod2.z.string().nullable(),
761
- activeRevisionId: import_zod2.z.string().nullable(),
822
+ var StudioWorkflowInternalEdgeSchema = import_zod3.z.object({
823
+ id: import_zod3.z.string().min(1),
824
+ source: import_zod3.z.string().min(1),
825
+ target: import_zod3.z.string().min(1),
826
+ condition: import_zod3.z.string().nullable()
827
+ }).strict();
828
+ var StudioWorkflowTransitionSchema = import_zod3.z.object({
829
+ kind: import_zod3.z.enum(["call", "handoff"]).optional(),
830
+ id: import_zod3.z.string().min(1),
831
+ sourceWorkflowId: import_zod3.z.string().min(1),
832
+ sourceNodeId: import_zod3.z.string().nullable(),
833
+ targetWorkflowId: import_zod3.z.string().min(1),
834
+ condition: import_zod3.z.string().nullable(),
835
+ volume: import_zod3.z.number().int().nonnegative(),
836
+ successRate: import_zod3.z.number().min(0).max(100).nullable(),
837
+ medianDurationMs: import_zod3.z.number().nonnegative().nullable(),
838
+ errorRate: import_zod3.z.number().min(0).max(100).nullable()
839
+ }).strict();
840
+ var StudioWorkflowSchema = import_zod3.z.object({
841
+ id: import_zod3.z.string().min(1),
842
+ name: import_zod3.z.string().min(1),
843
+ description: import_zod3.z.string().nullable(),
844
+ versions: import_zod3.z.array(import_zod3.z.string()),
845
+ activeVersion: import_zod3.z.string().nullable(),
846
+ activeRevisionId: import_zod3.z.string().nullable(),
762
847
  health: StudioWorkflowHealthSchema,
763
- tags: import_zod2.z.array(import_zod2.z.string()),
764
- lastActivityAt: import_zod2.z.string().datetime({ offset: true }).nullable(),
848
+ tags: import_zod3.z.array(import_zod3.z.string()),
849
+ lastActivityAt: import_zod3.z.string().datetime({ offset: true }).nullable(),
765
850
  metrics: StudioMetricSchema,
766
- nodes: import_zod2.z.array(StudioWorkflowNodeSchema),
767
- internalEdges: import_zod2.z.array(StudioWorkflowInternalEdgeSchema)
851
+ nodes: import_zod3.z.array(StudioWorkflowNodeSchema),
852
+ internalEdges: import_zod3.z.array(StudioWorkflowInternalEdgeSchema)
768
853
  }).strict();
769
- var StudioRunsResponseSchema = import_zod2.z.object({
770
- runs: import_zod2.z.array(StudioRunSchema),
771
- totalCount: import_zod2.z.number().int().nonnegative()
854
+ var StudioRunsResponseSchema = import_zod3.z.object({
855
+ runs: import_zod3.z.array(StudioRunSchema),
856
+ totalCount: import_zod3.z.number().int().nonnegative()
772
857
  }).strict();
773
- var StudioSessionsResponseSchema = import_zod2.z.object({
774
- sessions: import_zod2.z.array(StudioSessionSchema),
775
- totalCount: import_zod2.z.number().int().nonnegative()
858
+ var StudioSessionsResponseSchema = import_zod3.z.object({
859
+ sessions: import_zod3.z.array(StudioSessionSchema),
860
+ totalCount: import_zod3.z.number().int().nonnegative()
776
861
  }).strict();
777
- var StudioInterruptsResponseSchema = import_zod2.z.object({
778
- interrupts: import_zod2.z.array(StudioInterruptSchema),
779
- totalCount: import_zod2.z.number().int().nonnegative()
862
+ var StudioInterruptsResponseSchema = import_zod3.z.object({
863
+ interrupts: import_zod3.z.array(StudioInterruptSchema),
864
+ totalCount: import_zod3.z.number().int().nonnegative()
780
865
  }).strict();
781
- var StudioRunDetailResponseSchema = import_zod2.z.object({
866
+ var StudioRunDetailResponseSchema = import_zod3.z.object({
782
867
  run: StudioRunSchema,
783
- events: import_zod2.z.array(StudioDetailEventSchema),
868
+ scores: import_zod3.z.array(StudioScoreSchema).optional(),
869
+ canReview: import_zod3.z.boolean().optional(),
870
+ reviewActorId: import_zod3.z.string().optional(),
871
+ events: import_zod3.z.array(StudioDetailEventSchema),
784
872
  session: StudioSessionSchema.nullable(),
785
- interrupts: import_zod2.z.array(StudioInterruptSchema),
786
- updatedAt: import_zod2.z.string().datetime({ offset: true })
873
+ interrupts: import_zod3.z.array(StudioInterruptSchema),
874
+ updatedAt: import_zod3.z.string().datetime({ offset: true })
787
875
  }).strict();
788
- var StudioSessionDetailResponseSchema = import_zod2.z.object({
876
+ var StudioSessionDetailResponseSchema = import_zod3.z.object({
789
877
  session: StudioSessionSchema,
790
- runs: import_zod2.z.array(StudioRunSchema),
791
- events: import_zod2.z.array(StudioDetailEventSchema),
792
- interrupts: import_zod2.z.array(StudioInterruptSchema),
793
- updatedAt: import_zod2.z.string().datetime({ offset: true })
878
+ runs: import_zod3.z.array(StudioRunSchema),
879
+ events: import_zod3.z.array(StudioDetailEventSchema),
880
+ interrupts: import_zod3.z.array(StudioInterruptSchema),
881
+ updatedAt: import_zod3.z.string().datetime({ offset: true })
794
882
  }).strict();
795
- var StudioInterruptDetailResponseSchema = import_zod2.z.object({
883
+ var StudioInterruptDetailResponseSchema = import_zod3.z.object({
796
884
  interrupt: StudioInterruptSchema,
797
- events: import_zod2.z.array(StudioDetailEventSchema),
885
+ events: import_zod3.z.array(StudioDetailEventSchema),
798
886
  run: StudioRunSchema.nullable(),
799
887
  session: StudioSessionSchema.nullable(),
800
- updatedAt: import_zod2.z.string().datetime({ offset: true })
888
+ updatedAt: import_zod3.z.string().datetime({ offset: true })
801
889
  }).strict();
802
- var StudioWorkflowsResponseSchema = import_zod2.z.object({
803
- workflows: import_zod2.z.array(StudioWorkflowSchema),
804
- observedCalls: import_zod2.z.array(
890
+ var StudioWorkflowsResponseSchema = import_zod3.z.object({
891
+ workflows: import_zod3.z.array(StudioWorkflowSchema),
892
+ observedCalls: import_zod3.z.array(
805
893
  StudioWorkflowTransitionSchema.extend({
806
- runId: import_zod2.z.string(),
807
- invocationId: import_zod2.z.string(),
808
- branchId: import_zod2.z.string()
894
+ runId: import_zod3.z.string(),
895
+ invocationId: import_zod3.z.string(),
896
+ branchId: import_zod3.z.string()
809
897
  })
810
898
  ).optional(),
811
- transitions: import_zod2.z.array(StudioWorkflowTransitionSchema),
899
+ transitions: import_zod3.z.array(StudioWorkflowTransitionSchema),
812
900
  cohort: StudioTimeRangeContextSchema.extend({
813
- workflowId: import_zod2.z.string().nullable(),
814
- version: import_zod2.z.string().nullable()
901
+ workflowId: import_zod3.z.string().nullable(),
902
+ version: import_zod3.z.string().nullable()
815
903
  }).strict()
816
904
  }).strict();
817
- var StudioCatalogsResponseSchema = import_zod2.z.object({
818
- environments: import_zod2.z.array(import_zod2.z.string()),
819
- providers: import_zod2.z.array(import_zod2.z.string()),
820
- models: import_zod2.z.array(import_zod2.z.string()),
821
- workflows: import_zod2.z.array(import_zod2.z.string()),
822
- tags: import_zod2.z.array(import_zod2.z.string())
905
+ var StudioCatalogsResponseSchema = import_zod3.z.object({
906
+ environments: import_zod3.z.array(import_zod3.z.string()),
907
+ providers: import_zod3.z.array(import_zod3.z.string()),
908
+ models: import_zod3.z.array(import_zod3.z.string()),
909
+ workflows: import_zod3.z.array(import_zod3.z.string()),
910
+ tags: import_zod3.z.array(import_zod3.z.string())
823
911
  }).strict();
824
- var StudioContextResponseSchema = import_zod2.z.object({
825
- organization: import_zod2.z.object({
826
- name: import_zod2.z.string().min(1)
912
+ var StudioContextResponseSchema = import_zod3.z.object({
913
+ organization: import_zod3.z.object({
914
+ name: import_zod3.z.string().min(1)
827
915
  }).strict(),
828
- project: import_zod2.z.object({
829
- name: import_zod2.z.string().min(1)
916
+ project: import_zod3.z.object({
917
+ name: import_zod3.z.string().min(1)
830
918
  }).strict(),
831
- environments: import_zod2.z.array(import_zod2.z.string()),
832
- apiKey: import_zod2.z.object({
833
- mode: import_zod2.z.enum(["test", "live"]),
834
- scopes: import_zod2.z.array(import_zod2.z.string())
919
+ environments: import_zod3.z.array(import_zod3.z.string()),
920
+ apiKey: import_zod3.z.object({
921
+ mode: import_zod3.z.enum(["test", "live"]),
922
+ scopes: import_zod3.z.array(import_zod3.z.string())
835
923
  }).strict(),
836
- api: import_zod2.z.object({
837
- status: import_zod2.z.literal("ok"),
838
- service: import_zod2.z.literal("kortyx-api"),
839
- version: import_zod2.z.string().min(1)
924
+ api: import_zod3.z.object({
925
+ status: import_zod3.z.literal("ok"),
926
+ service: import_zod3.z.literal("kortyx-api"),
927
+ version: import_zod3.z.string().min(1)
840
928
  }).strict()
841
929
  }).strict();
842
930
  // Annotate the CommonJS export names for ESM import in node:
843
931
  0 && (module.exports = {
932
+ ClearScoreResponseSchema,
933
+ ClearUserFeedbackRequestSchema,
844
934
  EnsureWorkflowTopologyRequestSchema,
845
935
  EnsureWorkflowTopologyResponseSchema,
936
+ FEEDBACK_FILTERS,
937
+ FeedbackReasonSchema,
938
+ FeedbackSummarySchema,
939
+ ReviewVerdictSchema,
846
940
  STUDIO_TIME_RANGES,
847
941
  StudioCatalogsResponseSchema,
848
942
  StudioChangeResourceSchema,
@@ -863,10 +957,13 @@ var StudioContextResponseSchema = import_zod2.z.object({
863
957
  StudioReleaseSchema,
864
958
  StudioReleaseVersionSchema,
865
959
  StudioResumeOutcomeSchema,
960
+ StudioReviewRequestSchema,
866
961
  StudioRunDetailResponseSchema,
867
962
  StudioRunSchema,
868
963
  StudioRunStatusSchema,
869
964
  StudioRunsResponseSchema,
965
+ StudioScoreResponseSchema,
966
+ StudioScoreSchema,
870
967
  StudioSessionDetailResponseSchema,
871
968
  StudioSessionSchema,
872
969
  StudioSessionsResponseSchema,
@@ -895,6 +992,7 @@ var StudioContextResponseSchema = import_zod2.z.object({
895
992
  TelemetryServiceSchema,
896
993
  TelemetryUnitPriceSchema,
897
994
  TelemetryUsageItemSchema,
995
+ UserFeedbackRequestSchema,
898
996
  WorkflowTopologyCallSchema,
899
997
  WorkflowTopologyEdgeSchema,
900
998
  WorkflowTopologyNodeSchema,
@@ -903,6 +1001,7 @@ var StudioContextResponseSchema = import_zod2.z.object({
903
1001
  projectWorkflowCalls,
904
1002
  resolveStudioInterruptStatus,
905
1003
  resolveStudioTimeRange,
906
- studioUpdateRunning
1004
+ studioUpdateRunning,
1005
+ summarizeUserFeedback
907
1006
  });
908
1007
  //# sourceMappingURL=index.js.map