@kortyx/telemetry-contracts 0.2.0 → 0.4.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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.4.0](https://github.com/kortyx-io/kortyx/compare/telemetry-contracts-v0.3.0...telemetry-contracts-v0.4.0) (2026-09-10)
4
+
5
+
6
+ ### Features
7
+
8
+ * **runtime:** add shared execution limits and checkpoint continuation ([#163](https://github.com/kortyx-io/kortyx/issues/163)) ([e22232c](https://github.com/kortyx-io/kortyx/commit/e22232c059fae4f7df1bd36423902bd365887942))
9
+
10
+ ## [0.3.0](https://github.com/kortyx-io/kortyx/compare/telemetry-contracts-v0.2.0...telemetry-contracts-v0.3.0) (2026-09-09)
11
+
12
+
13
+ ### Features
14
+
15
+ * add resumable child workflows and Studio inspection ([#157](https://github.com/kortyx-io/kortyx/issues/157)) ([542ba29](https://github.com/kortyx-io/kortyx/commit/542ba29b3b57217e6e5d98c1b409bbec5ce3261f))
16
+
3
17
  ## [0.2.0](https://github.com/kortyx-io/kortyx/compare/telemetry-contracts-v0.1.0...telemetry-contracts-v0.2.0) (2026-08-02)
4
18
 
5
19
 
package/dist/index.d.ts CHANGED
@@ -1,6 +1,40 @@
1
1
  import { z } from 'zod';
2
2
 
3
- declare const TELEMETRY_EVENT_TYPES: readonly ["span.started", "span.ended", "span.failed", "generation.completed", "tool.started", "tool.completed", "tool.failed", "interrupt.created", "interrupt.resolved", "interrupt.expired", "interrupt.cancelled", "run.cancelled", "workflow.transitioned", "session.checkpointed", "session.forked", "session.rolled_back"];
3
+ type StudioWorkflowCall = {
4
+ id: string;
5
+ invocationId: string;
6
+ branchId: string;
7
+ parentInvocationId: string | null;
8
+ callId: string;
9
+ callerNodeId: string;
10
+ callerNodeExecutionId: string;
11
+ sourceWorkflowId: string;
12
+ targetWorkflowId: string;
13
+ targetVersion: string | null;
14
+ status: "running" | "interrupted" | "completed" | "failed" | "incomplete" | "cancelled";
15
+ startedAt: string;
16
+ endedAt: string | null;
17
+ activeMs: number;
18
+ waitMs: number;
19
+ attempts: number;
20
+ reused: number;
21
+ inherited: boolean;
22
+ sourceRunId: string | null;
23
+ input?: unknown;
24
+ output?: unknown;
25
+ inputOmitted?: unknown;
26
+ outputOmitted?: unknown;
27
+ leaf: {
28
+ workflowId?: string;
29
+ nodeId?: string;
30
+ invocationId?: string;
31
+ } | null;
32
+ events: StudioDetailEvent[];
33
+ };
34
+ /** Logical calls are ordered by persisted sequence, independently within each branch. */
35
+ declare function projectWorkflowCalls(events: StudioDetailEvent[]): StudioWorkflowCall[];
36
+
37
+ declare const TELEMETRY_EVENT_TYPES: readonly ["span.started", "span.ended", "span.failed", "generation.completed", "tool.started", "tool.completed", "tool.failed", "interrupt.created", "interrupt.resolved", "interrupt.expired", "interrupt.cancelled", "run.cancelled", "run.limit_reached", "workflow.transitioned", "workflow.call.started", "workflow.call.suspended", "workflow.call.resumed", "workflow.call.completed", "workflow.call.failed", "workflow.call.reused", "workflow.call.restored", "session.checkpointed", "session.forked", "session.rolled_back"];
4
38
  declare const TelemetryServiceSchema: z.ZodObject<{
5
39
  name: z.ZodString;
6
40
  deploymentRef: z.ZodOptional<z.ZodString>;
@@ -18,11 +52,19 @@ declare const WorkflowTopologyEdgeSchema: z.ZodObject<{
18
52
  targetNodeId: z.ZodString;
19
53
  condition: z.ZodOptional<z.ZodString>;
20
54
  }, z.core.$strict>;
55
+ declare const WorkflowTopologyCallSchema: z.ZodObject<{
56
+ sourceNodeId: z.ZodString;
57
+ targetWorkflowId: z.ZodString;
58
+ }, z.core.$strict>;
21
59
  declare const WorkflowTopologyTransitionSchema: z.ZodObject<{
22
60
  sourceNodeId: z.ZodOptional<z.ZodString>;
23
61
  targetWorkflowId: z.ZodString;
24
62
  condition: z.ZodOptional<z.ZodString>;
25
63
  intent: z.ZodOptional<z.ZodString>;
64
+ kind: z.ZodOptional<z.ZodEnum<{
65
+ call: "call";
66
+ handoff: "handoff";
67
+ }>>;
26
68
  }, z.core.$strict>;
27
69
  declare const EnsureWorkflowTopologyRequestSchema: z.ZodObject<{
28
70
  schemaVersion: z.ZodLiteral<1>;
@@ -55,6 +97,14 @@ declare const EnsureWorkflowTopologyRequestSchema: z.ZodObject<{
55
97
  targetWorkflowId: z.ZodString;
56
98
  condition: z.ZodOptional<z.ZodString>;
57
99
  intent: z.ZodOptional<z.ZodString>;
100
+ kind: z.ZodOptional<z.ZodEnum<{
101
+ call: "call";
102
+ handoff: "handoff";
103
+ }>>;
104
+ }, z.core.$strict>>>;
105
+ calls: z.ZodOptional<z.ZodArray<z.ZodObject<{
106
+ sourceNodeId: z.ZodString;
107
+ targetWorkflowId: z.ZodString;
58
108
  }, z.core.$strict>>>;
59
109
  }, z.core.$strict>;
60
110
  }, z.core.$strict>;
@@ -75,7 +125,15 @@ declare const TelemetryEventTypeSchema: z.ZodEnum<{
75
125
  "interrupt.expired": "interrupt.expired";
76
126
  "interrupt.cancelled": "interrupt.cancelled";
77
127
  "run.cancelled": "run.cancelled";
128
+ "run.limit_reached": "run.limit_reached";
78
129
  "workflow.transitioned": "workflow.transitioned";
130
+ "workflow.call.started": "workflow.call.started";
131
+ "workflow.call.suspended": "workflow.call.suspended";
132
+ "workflow.call.resumed": "workflow.call.resumed";
133
+ "workflow.call.completed": "workflow.call.completed";
134
+ "workflow.call.failed": "workflow.call.failed";
135
+ "workflow.call.reused": "workflow.call.reused";
136
+ "workflow.call.restored": "workflow.call.restored";
79
137
  "session.checkpointed": "session.checkpointed";
80
138
  "session.forked": "session.forked";
81
139
  "session.rolled_back": "session.rolled_back";
@@ -90,6 +148,9 @@ declare const TelemetryEventSchema: z.ZodObject<{
90
148
  deploymentRef: z.ZodOptional<z.ZodString>;
91
149
  }, z.core.$strict>;
92
150
  correlation: z.ZodObject<{
151
+ invocationId: z.ZodOptional<z.ZodString>;
152
+ parentInvocationId: z.ZodOptional<z.ZodString>;
153
+ branchId: z.ZodOptional<z.ZodString>;
93
154
  traceId: z.ZodOptional<z.ZodString>;
94
155
  spanId: z.ZodOptional<z.ZodString>;
95
156
  parentSpanId: z.ZodOptional<z.ZodString>;
@@ -119,7 +180,15 @@ declare const TelemetryEventSchema: z.ZodObject<{
119
180
  "interrupt.expired": "interrupt.expired";
120
181
  "interrupt.cancelled": "interrupt.cancelled";
121
182
  "run.cancelled": "run.cancelled";
183
+ "run.limit_reached": "run.limit_reached";
122
184
  "workflow.transitioned": "workflow.transitioned";
185
+ "workflow.call.started": "workflow.call.started";
186
+ "workflow.call.suspended": "workflow.call.suspended";
187
+ "workflow.call.resumed": "workflow.call.resumed";
188
+ "workflow.call.completed": "workflow.call.completed";
189
+ "workflow.call.failed": "workflow.call.failed";
190
+ "workflow.call.reused": "workflow.call.reused";
191
+ "workflow.call.restored": "workflow.call.restored";
123
192
  "session.checkpointed": "session.checkpointed";
124
193
  "session.forked": "session.forked";
125
194
  "session.rolled_back": "session.rolled_back";
@@ -137,6 +206,9 @@ declare const TelemetryEventBatchSchema: z.ZodObject<{
137
206
  deploymentRef: z.ZodOptional<z.ZodString>;
138
207
  }, z.core.$strict>;
139
208
  correlation: z.ZodObject<{
209
+ invocationId: z.ZodOptional<z.ZodString>;
210
+ parentInvocationId: z.ZodOptional<z.ZodString>;
211
+ branchId: z.ZodOptional<z.ZodString>;
140
212
  traceId: z.ZodOptional<z.ZodString>;
141
213
  spanId: z.ZodOptional<z.ZodString>;
142
214
  parentSpanId: z.ZodOptional<z.ZodString>;
@@ -166,7 +238,15 @@ declare const TelemetryEventBatchSchema: z.ZodObject<{
166
238
  "interrupt.expired": "interrupt.expired";
167
239
  "interrupt.cancelled": "interrupt.cancelled";
168
240
  "run.cancelled": "run.cancelled";
241
+ "run.limit_reached": "run.limit_reached";
169
242
  "workflow.transitioned": "workflow.transitioned";
243
+ "workflow.call.started": "workflow.call.started";
244
+ "workflow.call.suspended": "workflow.call.suspended";
245
+ "workflow.call.resumed": "workflow.call.resumed";
246
+ "workflow.call.completed": "workflow.call.completed";
247
+ "workflow.call.failed": "workflow.call.failed";
248
+ "workflow.call.reused": "workflow.call.reused";
249
+ "workflow.call.restored": "workflow.call.restored";
170
250
  "session.checkpointed": "session.checkpointed";
171
251
  "session.forked": "session.forked";
172
252
  "session.rolled_back": "session.rolled_back";
@@ -592,6 +672,12 @@ declare const StudioMetricSchema: z.ZodObject<{
592
672
  }, z.core.$strict>;
593
673
  declare const StudioRunSchema: z.ZodObject<{
594
674
  id: z.ZodString;
675
+ callerNodeId: z.ZodOptional<z.ZodString>;
676
+ parentRunId: z.ZodOptional<z.ZodString>;
677
+ parentWorkflowId: z.ZodOptional<z.ZodString>;
678
+ invocationId: z.ZodOptional<z.ZodString>;
679
+ branchId: z.ZodOptional<z.ZodString>;
680
+ callId: z.ZodOptional<z.ZodString>;
595
681
  status: z.ZodEnum<{
596
682
  running: "running";
597
683
  completed: "completed";
@@ -773,7 +859,15 @@ declare const StudioDetailEventSchema: z.ZodObject<{
773
859
  "interrupt.expired": "interrupt.expired";
774
860
  "interrupt.cancelled": "interrupt.cancelled";
775
861
  "run.cancelled": "run.cancelled";
862
+ "run.limit_reached": "run.limit_reached";
776
863
  "workflow.transitioned": "workflow.transitioned";
864
+ "workflow.call.started": "workflow.call.started";
865
+ "workflow.call.suspended": "workflow.call.suspended";
866
+ "workflow.call.resumed": "workflow.call.resumed";
867
+ "workflow.call.completed": "workflow.call.completed";
868
+ "workflow.call.failed": "workflow.call.failed";
869
+ "workflow.call.reused": "workflow.call.reused";
870
+ "workflow.call.restored": "workflow.call.restored";
777
871
  "session.checkpointed": "session.checkpointed";
778
872
  "session.forked": "session.forked";
779
873
  "session.rolled_back": "session.rolled_back";
@@ -830,6 +924,10 @@ declare const StudioWorkflowInternalEdgeSchema: z.ZodObject<{
830
924
  condition: z.ZodNullable<z.ZodString>;
831
925
  }, z.core.$strict>;
832
926
  declare const StudioWorkflowTransitionSchema: z.ZodObject<{
927
+ kind: z.ZodOptional<z.ZodEnum<{
928
+ call: "call";
929
+ handoff: "handoff";
930
+ }>>;
833
931
  id: z.ZodString;
834
932
  sourceWorkflowId: z.ZodString;
835
933
  sourceNodeId: z.ZodNullable<z.ZodString>;
@@ -904,6 +1002,12 @@ declare const StudioWorkflowSchema: z.ZodObject<{
904
1002
  declare const StudioRunsResponseSchema: z.ZodObject<{
905
1003
  runs: z.ZodArray<z.ZodObject<{
906
1004
  id: z.ZodString;
1005
+ callerNodeId: z.ZodOptional<z.ZodString>;
1006
+ parentRunId: z.ZodOptional<z.ZodString>;
1007
+ parentWorkflowId: z.ZodOptional<z.ZodString>;
1008
+ invocationId: z.ZodOptional<z.ZodString>;
1009
+ branchId: z.ZodOptional<z.ZodString>;
1010
+ callId: z.ZodOptional<z.ZodString>;
907
1011
  status: z.ZodEnum<{
908
1012
  running: "running";
909
1013
  completed: "completed";
@@ -1081,6 +1185,12 @@ declare const StudioInterruptsResponseSchema: z.ZodObject<{
1081
1185
  declare const StudioRunDetailResponseSchema: z.ZodObject<{
1082
1186
  run: z.ZodObject<{
1083
1187
  id: z.ZodString;
1188
+ callerNodeId: z.ZodOptional<z.ZodString>;
1189
+ parentRunId: z.ZodOptional<z.ZodString>;
1190
+ parentWorkflowId: z.ZodOptional<z.ZodString>;
1191
+ invocationId: z.ZodOptional<z.ZodString>;
1192
+ branchId: z.ZodOptional<z.ZodString>;
1193
+ callId: z.ZodOptional<z.ZodString>;
1084
1194
  status: z.ZodEnum<{
1085
1195
  running: "running";
1086
1196
  completed: "completed";
@@ -1154,7 +1264,15 @@ declare const StudioRunDetailResponseSchema: z.ZodObject<{
1154
1264
  "interrupt.expired": "interrupt.expired";
1155
1265
  "interrupt.cancelled": "interrupt.cancelled";
1156
1266
  "run.cancelled": "run.cancelled";
1267
+ "run.limit_reached": "run.limit_reached";
1157
1268
  "workflow.transitioned": "workflow.transitioned";
1269
+ "workflow.call.started": "workflow.call.started";
1270
+ "workflow.call.suspended": "workflow.call.suspended";
1271
+ "workflow.call.resumed": "workflow.call.resumed";
1272
+ "workflow.call.completed": "workflow.call.completed";
1273
+ "workflow.call.failed": "workflow.call.failed";
1274
+ "workflow.call.reused": "workflow.call.reused";
1275
+ "workflow.call.restored": "workflow.call.restored";
1158
1276
  "session.checkpointed": "session.checkpointed";
1159
1277
  "session.forked": "session.forked";
1160
1278
  "session.rolled_back": "session.rolled_back";
@@ -1346,6 +1464,12 @@ declare const StudioSessionDetailResponseSchema: z.ZodObject<{
1346
1464
  }, z.core.$strict>;
1347
1465
  runs: z.ZodArray<z.ZodObject<{
1348
1466
  id: z.ZodString;
1467
+ callerNodeId: z.ZodOptional<z.ZodString>;
1468
+ parentRunId: z.ZodOptional<z.ZodString>;
1469
+ parentWorkflowId: z.ZodOptional<z.ZodString>;
1470
+ invocationId: z.ZodOptional<z.ZodString>;
1471
+ branchId: z.ZodOptional<z.ZodString>;
1472
+ callId: z.ZodOptional<z.ZodString>;
1349
1473
  status: z.ZodEnum<{
1350
1474
  running: "running";
1351
1475
  completed: "completed";
@@ -1419,7 +1543,15 @@ declare const StudioSessionDetailResponseSchema: z.ZodObject<{
1419
1543
  "interrupt.expired": "interrupt.expired";
1420
1544
  "interrupt.cancelled": "interrupt.cancelled";
1421
1545
  "run.cancelled": "run.cancelled";
1546
+ "run.limit_reached": "run.limit_reached";
1422
1547
  "workflow.transitioned": "workflow.transitioned";
1548
+ "workflow.call.started": "workflow.call.started";
1549
+ "workflow.call.suspended": "workflow.call.suspended";
1550
+ "workflow.call.resumed": "workflow.call.resumed";
1551
+ "workflow.call.completed": "workflow.call.completed";
1552
+ "workflow.call.failed": "workflow.call.failed";
1553
+ "workflow.call.reused": "workflow.call.reused";
1554
+ "workflow.call.restored": "workflow.call.restored";
1423
1555
  "session.checkpointed": "session.checkpointed";
1424
1556
  "session.forked": "session.forked";
1425
1557
  "session.rolled_back": "session.rolled_back";
@@ -1567,7 +1699,15 @@ declare const StudioInterruptDetailResponseSchema: z.ZodObject<{
1567
1699
  "interrupt.expired": "interrupt.expired";
1568
1700
  "interrupt.cancelled": "interrupt.cancelled";
1569
1701
  "run.cancelled": "run.cancelled";
1702
+ "run.limit_reached": "run.limit_reached";
1570
1703
  "workflow.transitioned": "workflow.transitioned";
1704
+ "workflow.call.started": "workflow.call.started";
1705
+ "workflow.call.suspended": "workflow.call.suspended";
1706
+ "workflow.call.resumed": "workflow.call.resumed";
1707
+ "workflow.call.completed": "workflow.call.completed";
1708
+ "workflow.call.failed": "workflow.call.failed";
1709
+ "workflow.call.reused": "workflow.call.reused";
1710
+ "workflow.call.restored": "workflow.call.restored";
1571
1711
  "session.checkpointed": "session.checkpointed";
1572
1712
  "session.forked": "session.forked";
1573
1713
  "session.rolled_back": "session.rolled_back";
@@ -1593,6 +1733,12 @@ declare const StudioInterruptDetailResponseSchema: z.ZodObject<{
1593
1733
  }, z.core.$strict>>;
1594
1734
  run: z.ZodNullable<z.ZodObject<{
1595
1735
  id: z.ZodString;
1736
+ callerNodeId: z.ZodOptional<z.ZodString>;
1737
+ parentRunId: z.ZodOptional<z.ZodString>;
1738
+ parentWorkflowId: z.ZodOptional<z.ZodString>;
1739
+ invocationId: z.ZodOptional<z.ZodString>;
1740
+ branchId: z.ZodOptional<z.ZodString>;
1741
+ callId: z.ZodOptional<z.ZodString>;
1596
1742
  status: z.ZodEnum<{
1597
1743
  running: "running";
1598
1744
  completed: "completed";
@@ -1770,7 +1916,29 @@ declare const StudioWorkflowsResponseSchema: z.ZodObject<{
1770
1916
  condition: z.ZodNullable<z.ZodString>;
1771
1917
  }, z.core.$strict>>;
1772
1918
  }, z.core.$strict>>;
1919
+ observedCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
1920
+ kind: z.ZodOptional<z.ZodEnum<{
1921
+ call: "call";
1922
+ handoff: "handoff";
1923
+ }>>;
1924
+ id: z.ZodString;
1925
+ sourceWorkflowId: z.ZodString;
1926
+ sourceNodeId: z.ZodNullable<z.ZodString>;
1927
+ targetWorkflowId: z.ZodString;
1928
+ condition: z.ZodNullable<z.ZodString>;
1929
+ volume: z.ZodNumber;
1930
+ successRate: z.ZodNullable<z.ZodNumber>;
1931
+ medianDurationMs: z.ZodNullable<z.ZodNumber>;
1932
+ errorRate: z.ZodNullable<z.ZodNumber>;
1933
+ runId: z.ZodString;
1934
+ invocationId: z.ZodString;
1935
+ branchId: z.ZodString;
1936
+ }, z.core.$strict>>>;
1773
1937
  transitions: z.ZodArray<z.ZodObject<{
1938
+ kind: z.ZodOptional<z.ZodEnum<{
1939
+ call: "call";
1940
+ handoff: "handoff";
1941
+ }>>;
1774
1942
  id: z.ZodString;
1775
1943
  sourceWorkflowId: z.ZodString;
1776
1944
  sourceNodeId: z.ZodNullable<z.ZodString>;
@@ -1856,4 +2024,4 @@ type StudioWorkflowsResponse = z.infer<typeof StudioWorkflowsResponseSchema>;
1856
2024
  type StudioCatalogsResponse = z.infer<typeof StudioCatalogsResponseSchema>;
1857
2025
  type StudioContextResponse = z.infer<typeof StudioContextResponseSchema>;
1858
2026
 
1859
- export { type EnsureWorkflowTopologyRequest, EnsureWorkflowTopologyRequestSchema, type EnsureWorkflowTopologyResponse, EnsureWorkflowTopologyResponseSchema, type KortyxTelemetryEvent, type KortyxTelemetryEventType, type KortyxTelemetryService, type KortyxWorkflowTopologyEdge, type KortyxWorkflowTopologyNode, type KortyxWorkflowTopologyTransition, STUDIO_TIME_RANGES, type StudioCatalogsResponse, StudioCatalogsResponseSchema, type StudioChange, type StudioChangeResource, StudioChangeResourceSchema, StudioChangeSchema, type StudioContextResponse, StudioContextResponseSchema, type StudioDetailEvent, StudioDetailEventSchema, type StudioInterrupt, type StudioInterruptDetailResponse, StudioInterruptDetailResponseSchema, type StudioInterruptInteractionMode, StudioInterruptInteractionModeSchema, type StudioInterruptOption, StudioInterruptOptionSchema, StudioInterruptSchema, type StudioInterruptStatus, StudioInterruptStatusSchema, type StudioInterruptType, StudioInterruptTypeSchema, type StudioInterruptsResponse, StudioInterruptsResponseSchema, type StudioMetric, StudioMetricSchema, type StudioPricingSource, StudioPricingSourceSchema, type StudioPricingStatus, StudioPricingStatusSchema, type StudioResumeOutcome, StudioResumeOutcomeSchema, type StudioRun, type StudioRunDetailResponse, StudioRunDetailResponseSchema, StudioRunSchema, type StudioRunStatus, StudioRunStatusSchema, type StudioRunsResponse, StudioRunsResponseSchema, type StudioSession, type StudioSessionDetailResponse, StudioSessionDetailResponseSchema, StudioSessionSchema, type StudioSessionsResponse, StudioSessionsResponseSchema, type StudioTimeRange, type StudioTimeRangeContext, StudioTimeRangeContextSchema, StudioTimeRangeQuerySchema, type StudioTimeRangeResolution, StudioTimeRangeSchema, type StudioWorkflow, type StudioWorkflowHealth, StudioWorkflowHealthSchema, type StudioWorkflowInternalEdge, StudioWorkflowInternalEdgeSchema, type StudioWorkflowNode, StudioWorkflowNodeSchema, StudioWorkflowSchema, type StudioWorkflowTransition, StudioWorkflowTransitionSchema, type StudioWorkflowsResponse, StudioWorkflowsResponseSchema, TELEMETRY_EVENT_TYPES, type TelemetryEventBatch, type TelemetryEventBatchResponse, TelemetryEventBatchResponseSchema, TelemetryEventBatchSchema, TelemetryEventSchema, TelemetryEventTypeSchema, type TelemetryPricingHint, TelemetryPricingHintSchema, type TelemetryPricingLineItem, TelemetryPricingLineItemSchema, type TelemetryPricingSource, TelemetryPricingSourceSchema, type TelemetryPricingUnit, TelemetryPricingUnitSchema, type TelemetryPricingUsageType, TelemetryPricingUsageTypeSchema, TelemetryServiceSchema, type TelemetryUnitPrice, TelemetryUnitPriceSchema, type TelemetryUsageItem, TelemetryUsageItemSchema, WorkflowTopologyEdgeSchema, WorkflowTopologyNodeSchema, WorkflowTopologyTransitionSchema, resolveStudioInterruptStatus, resolveStudioTimeRange };
2027
+ export { type EnsureWorkflowTopologyRequest, EnsureWorkflowTopologyRequestSchema, type EnsureWorkflowTopologyResponse, EnsureWorkflowTopologyResponseSchema, type KortyxTelemetryEvent, type KortyxTelemetryEventType, type KortyxTelemetryService, type KortyxWorkflowTopologyEdge, type KortyxWorkflowTopologyNode, type KortyxWorkflowTopologyTransition, STUDIO_TIME_RANGES, type StudioCatalogsResponse, StudioCatalogsResponseSchema, type StudioChange, type StudioChangeResource, StudioChangeResourceSchema, StudioChangeSchema, type StudioContextResponse, StudioContextResponseSchema, type StudioDetailEvent, StudioDetailEventSchema, type StudioInterrupt, type StudioInterruptDetailResponse, StudioInterruptDetailResponseSchema, type StudioInterruptInteractionMode, StudioInterruptInteractionModeSchema, type StudioInterruptOption, StudioInterruptOptionSchema, StudioInterruptSchema, type StudioInterruptStatus, StudioInterruptStatusSchema, type StudioInterruptType, StudioInterruptTypeSchema, type StudioInterruptsResponse, StudioInterruptsResponseSchema, type StudioMetric, StudioMetricSchema, type StudioPricingSource, StudioPricingSourceSchema, type StudioPricingStatus, StudioPricingStatusSchema, type StudioResumeOutcome, StudioResumeOutcomeSchema, type StudioRun, type StudioRunDetailResponse, StudioRunDetailResponseSchema, StudioRunSchema, type StudioRunStatus, StudioRunStatusSchema, type StudioRunsResponse, StudioRunsResponseSchema, type StudioSession, type StudioSessionDetailResponse, StudioSessionDetailResponseSchema, StudioSessionSchema, type StudioSessionsResponse, StudioSessionsResponseSchema, type StudioTimeRange, type StudioTimeRangeContext, StudioTimeRangeContextSchema, StudioTimeRangeQuerySchema, type StudioTimeRangeResolution, StudioTimeRangeSchema, type StudioWorkflow, type StudioWorkflowCall, type StudioWorkflowHealth, StudioWorkflowHealthSchema, type StudioWorkflowInternalEdge, StudioWorkflowInternalEdgeSchema, type StudioWorkflowNode, StudioWorkflowNodeSchema, StudioWorkflowSchema, type StudioWorkflowTransition, StudioWorkflowTransitionSchema, type StudioWorkflowsResponse, StudioWorkflowsResponseSchema, TELEMETRY_EVENT_TYPES, type TelemetryEventBatch, type TelemetryEventBatchResponse, TelemetryEventBatchResponseSchema, TelemetryEventBatchSchema, TelemetryEventSchema, TelemetryEventTypeSchema, type TelemetryPricingHint, TelemetryPricingHintSchema, type TelemetryPricingLineItem, TelemetryPricingLineItemSchema, type TelemetryPricingSource, TelemetryPricingSourceSchema, type TelemetryPricingUnit, TelemetryPricingUnitSchema, type TelemetryPricingUsageType, TelemetryPricingUsageTypeSchema, TelemetryServiceSchema, type TelemetryUnitPrice, TelemetryUnitPriceSchema, type TelemetryUsageItem, TelemetryUsageItemSchema, WorkflowTopologyCallSchema, WorkflowTopologyEdgeSchema, WorkflowTopologyNodeSchema, WorkflowTopologyTransitionSchema, projectWorkflowCalls, resolveStudioInterruptStatus, resolveStudioTimeRange };
package/dist/index.js CHANGED
@@ -67,14 +67,118 @@ __export(index_exports, {
67
67
  TelemetryServiceSchema: () => TelemetryServiceSchema,
68
68
  TelemetryUnitPriceSchema: () => TelemetryUnitPriceSchema,
69
69
  TelemetryUsageItemSchema: () => TelemetryUsageItemSchema,
70
+ WorkflowTopologyCallSchema: () => WorkflowTopologyCallSchema,
70
71
  WorkflowTopologyEdgeSchema: () => WorkflowTopologyEdgeSchema,
71
72
  WorkflowTopologyNodeSchema: () => WorkflowTopologyNodeSchema,
72
73
  WorkflowTopologyTransitionSchema: () => WorkflowTopologyTransitionSchema,
74
+ projectWorkflowCalls: () => projectWorkflowCalls,
73
75
  resolveStudioInterruptStatus: () => resolveStudioInterruptStatus,
74
76
  resolveStudioTimeRange: () => resolveStudioTimeRange
75
77
  });
76
78
  module.exports = __toCommonJS(index_exports);
77
79
  var import_zod = require("zod");
80
+
81
+ // src/workflow-calls.ts
82
+ var str = (v, fallback = "") => typeof v === "string" ? v : fallback;
83
+ function projectWorkflowCalls(events) {
84
+ const groups = /* @__PURE__ */ new Map();
85
+ for (const event of events) {
86
+ if (!event.type.startsWith("workflow.call.") || !str(event.payload.invocationId) || !str(event.payload.targetWorkflowId))
87
+ continue;
88
+ const key = `${event.runId}:${str(event.payload.branchId, event.runId)}:${event.payload.invocationId}`;
89
+ const group = groups.get(key) ?? [];
90
+ if (!group.some((existing) => existing.id === event.id)) group.push(event);
91
+ groups.set(key, group);
92
+ }
93
+ return [...groups.entries()].map(([id, group]) => {
94
+ group.sort(
95
+ (a, b) => Number(a.payload.sequence ?? 0) - Number(b.payload.sequence ?? 0) || a.occurredAt.localeCompare(b.occurredAt) || a.id.localeCompare(b.id)
96
+ );
97
+ const first = group[0];
98
+ const p = first.payload;
99
+ const call = {
100
+ id,
101
+ invocationId: str(p.invocationId),
102
+ branchId: str(p.branchId, first.runId),
103
+ parentInvocationId: str(p.parentInvocationId) || null,
104
+ callId: str(p.callId),
105
+ callerNodeId: str(p.callerNodeId),
106
+ callerNodeExecutionId: str(p.callerNodeExecutionId),
107
+ sourceWorkflowId: str(p.sourceWorkflowId, first.workflowId),
108
+ targetWorkflowId: str(p.targetWorkflowId),
109
+ targetVersion: str(p.targetVersion) || null,
110
+ status: "incomplete",
111
+ startedAt: first.occurredAt,
112
+ endedAt: null,
113
+ activeMs: 0,
114
+ waitMs: 0,
115
+ attempts: 0,
116
+ reused: 0,
117
+ inherited: false,
118
+ sourceRunId: null,
119
+ leaf: null,
120
+ events: group
121
+ };
122
+ let active = null;
123
+ let waiting = null;
124
+ for (const event of group) {
125
+ const at = Date.parse(event.occurredAt);
126
+ const status = event.type.slice("workflow.call.".length);
127
+ for (const side of [
128
+ "input",
129
+ "output",
130
+ "inputOmitted",
131
+ "outputOmitted"
132
+ ])
133
+ if (side in event.payload) call[side] = event.payload[side];
134
+ if (status === "restored") {
135
+ call.inherited = true;
136
+ call.sourceRunId = str(event.payload.sourceRunId) || null;
137
+ call.status = event.payload.status === "completed" ? "completed" : event.payload.status === "failed" ? "failed" : "interrupted";
138
+ if (call.status === "interrupted") waiting = at;
139
+ } else if (status === "started" || status === "resumed") {
140
+ if (waiting !== null) call.waitMs += Math.max(0, at - waiting);
141
+ waiting = null;
142
+ active = at;
143
+ call.attempts++;
144
+ call.status = "running";
145
+ call.endedAt = null;
146
+ } else if (status === "reused") {
147
+ call.reused++;
148
+ call.status = "completed";
149
+ } else if (status === "suspended" || status === "completed" || status === "failed") {
150
+ if (active !== null) call.activeMs += Math.max(0, at - active);
151
+ active = null;
152
+ call.status = status === "suspended" ? "interrupted" : status;
153
+ if (status === "suspended") {
154
+ waiting = at;
155
+ const leaf = event.payload.leaf;
156
+ if (leaf && typeof leaf === "object") {
157
+ const value = leaf;
158
+ call.leaf = {
159
+ workflowId: str(value.workflowId),
160
+ nodeId: str(value.nodeId),
161
+ invocationId: str(value.invocationId)
162
+ };
163
+ }
164
+ } else {
165
+ call.endedAt = event.occurredAt;
166
+ call.leaf = null;
167
+ }
168
+ }
169
+ }
170
+ const cancellation = events.find(
171
+ (event) => event.type === "run.cancelled" && event.runId === first.runId && (event.payload.branchId ?? event.runId) === call.branchId && event.occurredAt >= (group.at(-1)?.occurredAt ?? first.occurredAt)
172
+ );
173
+ if (cancellation && (call.status === "interrupted" || call.status === "running")) {
174
+ call.status = "cancelled";
175
+ call.endedAt = cancellation.occurredAt;
176
+ }
177
+ return call;
178
+ }).sort((a, b) => a.startedAt.localeCompare(b.startedAt));
179
+ }
180
+
181
+ // src/index.ts
78
182
  var TELEMETRY_EVENT_TYPES = [
79
183
  "span.started",
80
184
  "span.ended",
@@ -88,7 +192,15 @@ var TELEMETRY_EVENT_TYPES = [
88
192
  "interrupt.expired",
89
193
  "interrupt.cancelled",
90
194
  "run.cancelled",
195
+ "run.limit_reached",
91
196
  "workflow.transitioned",
197
+ "workflow.call.started",
198
+ "workflow.call.suspended",
199
+ "workflow.call.resumed",
200
+ "workflow.call.completed",
201
+ "workflow.call.failed",
202
+ "workflow.call.reused",
203
+ "workflow.call.restored",
92
204
  "session.checkpointed",
93
205
  "session.forked",
94
206
  "session.rolled_back"
@@ -110,11 +222,16 @@ var WorkflowTopologyEdgeSchema = import_zod.z.object({
110
222
  targetNodeId: import_zod.z.string().min(1),
111
223
  condition: import_zod.z.string().optional()
112
224
  }).strict();
225
+ var WorkflowTopologyCallSchema = import_zod.z.object({
226
+ sourceNodeId: import_zod.z.string().min(1),
227
+ targetWorkflowId: import_zod.z.string().min(1)
228
+ }).strict();
113
229
  var WorkflowTopologyTransitionSchema = import_zod.z.object({
114
230
  sourceNodeId: import_zod.z.string().min(1).optional(),
115
231
  targetWorkflowId: import_zod.z.string().min(1),
116
232
  condition: import_zod.z.string().optional(),
117
- intent: import_zod.z.string().optional()
233
+ intent: import_zod.z.string().optional(),
234
+ kind: import_zod.z.enum(["call", "handoff"]).optional()
118
235
  }).strict();
119
236
  var EnsureWorkflowTopologyRequestSchema = import_zod.z.object({
120
237
  schemaVersion: import_zod.z.literal(1),
@@ -128,7 +245,8 @@ var EnsureWorkflowTopologyRequestSchema = import_zod.z.object({
128
245
  topologyHash: import_zod.z.string().regex(/^[a-f0-9]{64}$/),
129
246
  nodes: import_zod.z.array(WorkflowTopologyNodeSchema),
130
247
  edges: import_zod.z.array(WorkflowTopologyEdgeSchema),
131
- transitions: import_zod.z.array(WorkflowTopologyTransitionSchema).optional()
248
+ transitions: import_zod.z.array(WorkflowTopologyTransitionSchema).optional(),
249
+ calls: import_zod.z.array(WorkflowTopologyCallSchema).optional()
132
250
  }).strict()
133
251
  }).strict();
134
252
  var EnsureWorkflowTopologyResponseSchema = import_zod.z.object({ workflowRevisionId: import_zod.z.string().min(1), created: import_zod.z.boolean() }).strict();
@@ -140,6 +258,9 @@ var TelemetryEventSchema = import_zod.z.object({
140
258
  environment: import_zod.z.string().min(1),
141
259
  service: TelemetryServiceSchema,
142
260
  correlation: import_zod.z.object({
261
+ invocationId: import_zod.z.string().optional(),
262
+ parentInvocationId: import_zod.z.string().optional(),
263
+ branchId: import_zod.z.string().optional(),
143
264
  traceId: import_zod.z.string().optional(),
144
265
  spanId: import_zod.z.string().optional(),
145
266
  parentSpanId: import_zod.z.string().optional(),
@@ -411,6 +532,12 @@ var StudioMetricSchema = import_zod.z.object({
411
532
  }).strict();
412
533
  var StudioRunSchema = import_zod.z.object({
413
534
  id: import_zod.z.string().min(1),
535
+ callerNodeId: import_zod.z.string().optional(),
536
+ parentRunId: import_zod.z.string().optional(),
537
+ parentWorkflowId: import_zod.z.string().optional(),
538
+ invocationId: import_zod.z.string().optional(),
539
+ branchId: import_zod.z.string().optional(),
540
+ callId: import_zod.z.string().optional(),
414
541
  status: StudioRunStatusSchema,
415
542
  startedAt: import_zod.z.string().datetime({ offset: true }),
416
543
  endedAt: import_zod.z.string().datetime({ offset: true }).nullable(),
@@ -546,6 +673,7 @@ var StudioWorkflowInternalEdgeSchema = import_zod.z.object({
546
673
  condition: import_zod.z.string().nullable()
547
674
  }).strict();
548
675
  var StudioWorkflowTransitionSchema = import_zod.z.object({
676
+ kind: import_zod.z.enum(["call", "handoff"]).optional(),
549
677
  id: import_zod.z.string().min(1),
550
678
  sourceWorkflowId: import_zod.z.string().min(1),
551
679
  sourceNodeId: import_zod.z.string().nullable(),
@@ -605,6 +733,13 @@ var StudioInterruptDetailResponseSchema = import_zod.z.object({
605
733
  }).strict();
606
734
  var StudioWorkflowsResponseSchema = import_zod.z.object({
607
735
  workflows: import_zod.z.array(StudioWorkflowSchema),
736
+ observedCalls: import_zod.z.array(
737
+ StudioWorkflowTransitionSchema.extend({
738
+ runId: import_zod.z.string(),
739
+ invocationId: import_zod.z.string(),
740
+ branchId: import_zod.z.string()
741
+ })
742
+ ).optional(),
608
743
  transitions: import_zod.z.array(StudioWorkflowTransitionSchema),
609
744
  cohort: StudioTimeRangeContextSchema.extend({
610
745
  workflowId: import_zod.z.string().nullable(),
@@ -686,9 +821,11 @@ var StudioContextResponseSchema = import_zod.z.object({
686
821
  TelemetryServiceSchema,
687
822
  TelemetryUnitPriceSchema,
688
823
  TelemetryUsageItemSchema,
824
+ WorkflowTopologyCallSchema,
689
825
  WorkflowTopologyEdgeSchema,
690
826
  WorkflowTopologyNodeSchema,
691
827
  WorkflowTopologyTransitionSchema,
828
+ projectWorkflowCalls,
692
829
  resolveStudioInterruptStatus,
693
830
  resolveStudioTimeRange
694
831
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { z } from \"zod\";\nexport const TELEMETRY_EVENT_TYPES = [\n \"span.started\",\n \"span.ended\",\n \"span.failed\",\n \"generation.completed\",\n \"tool.started\",\n \"tool.completed\",\n \"tool.failed\",\n \"interrupt.created\",\n \"interrupt.resolved\",\n \"interrupt.expired\",\n \"interrupt.cancelled\",\n \"run.cancelled\",\n \"workflow.transitioned\",\n \"session.checkpointed\",\n \"session.forked\",\n \"session.rolled_back\",\n] as const;\nexport const TelemetryServiceSchema = z\n .object({\n name: z.string().min(1),\n deploymentRef: z.string().min(1).optional(),\n })\n .strict();\nexport const WorkflowTopologyNodeSchema = z\n .object({\n id: z.string().min(1),\n label: z.string().optional(),\n type: z.string().optional(),\n provider: z.string().optional(),\n model: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .strict();\nexport const WorkflowTopologyEdgeSchema = z\n .object({\n sourceNodeId: z.string().min(1),\n targetNodeId: z.string().min(1),\n condition: z.string().optional(),\n })\n .strict();\nexport const WorkflowTopologyTransitionSchema = z\n .object({\n sourceNodeId: z.string().min(1).optional(),\n targetWorkflowId: z.string().min(1),\n condition: z.string().optional(),\n intent: z.string().optional(),\n })\n .strict();\nexport const EnsureWorkflowTopologyRequestSchema = z\n .object({\n schemaVersion: z.literal(1),\n environment: z.string().min(1),\n service: TelemetryServiceSchema,\n workflow: z\n .object({\n id: z.string().min(1),\n declaredVersion: z.string().min(1),\n description: z.string().optional(),\n tags: z.array(z.string()).optional(),\n topologyHash: z.string().regex(/^[a-f0-9]{64}$/),\n nodes: z.array(WorkflowTopologyNodeSchema),\n edges: z.array(WorkflowTopologyEdgeSchema),\n transitions: z.array(WorkflowTopologyTransitionSchema).optional(),\n })\n .strict(),\n })\n .strict();\nexport const EnsureWorkflowTopologyResponseSchema = z\n .object({ workflowRevisionId: z.string().min(1), created: z.boolean() })\n .strict();\nexport const TelemetryEventTypeSchema = z.enum(TELEMETRY_EVENT_TYPES);\nexport const TelemetryEventSchema = z\n .object({\n schemaVersion: z.literal(1),\n eventId: z.string().min(1),\n occurredAt: z.string().datetime({ offset: true }),\n environment: z.string().min(1),\n service: TelemetryServiceSchema,\n correlation: z\n .object({\n traceId: z.string().optional(),\n spanId: z.string().optional(),\n parentSpanId: z.string().optional(),\n runId: z.string().min(1),\n sessionId: z.string().optional(),\n workflowId: z.string().min(1),\n workflowRevisionId: z.string().optional(),\n topologyHash: z\n .string()\n .regex(/^[a-f0-9]{64}$/)\n .optional(),\n nodeId: z.string().optional(),\n })\n .strict(),\n context: z\n .object({\n userId: z.string().optional(),\n tenantId: z.string().optional(),\n tags: z.array(z.string()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .strict()\n .optional(),\n type: TelemetryEventTypeSchema,\n payload: z.record(z.string(), z.unknown()),\n })\n .strict();\nexport const TelemetryEventBatchSchema = z\n .object({ events: z.array(TelemetryEventSchema).min(1) })\n .strict();\nexport const TelemetryEventBatchResponseSchema = z\n .object({\n accepted: z.number().int().nonnegative(),\n inserted: z.number().int().nonnegative(),\n duplicates: z.number().int().nonnegative(),\n })\n .strict();\nexport const TelemetryPricingSourceSchema = z.enum([\n \"sdk\",\n \"provider\",\n \"custom\",\n \"project-rate-card\",\n \"default-rate-card\",\n]);\nexport const TelemetryPricingUnitSchema = z.enum([\n \"token\",\n \"character\",\n \"request\",\n \"image\",\n \"audio_second\",\n \"audio_minute\",\n \"video_second\",\n \"video_minute\",\n \"second\",\n \"minute\",\n \"custom\",\n]);\nexport const TelemetryPricingUsageTypeSchema = z.enum([\n \"input\",\n \"output\",\n \"reasoning\",\n \"cache_read\",\n \"cache_write\",\n \"embedding\",\n \"image_input\",\n \"image_output\",\n \"audio_input\",\n \"audio_output\",\n \"video_input\",\n \"video_output\",\n \"request\",\n \"custom\",\n]);\nexport const TelemetryUsageItemSchema = z\n .object({\n usageType: TelemetryPricingUsageTypeSchema,\n quantity: z.number().nonnegative(),\n unit: TelemetryPricingUnitSchema,\n label: z.string().optional(),\n })\n .strict();\nexport const TelemetryUnitPriceSchema = z\n .object({\n usageType: TelemetryPricingUsageTypeSchema,\n unit: TelemetryPricingUnitSchema,\n unitQuantity: z.number().positive().default(1),\n priceMicros: z.number().int().nonnegative(),\n label: z.string().optional(),\n })\n .strict();\nexport const TelemetryPricingLineItemSchema = z\n .object({\n usageType: TelemetryPricingUsageTypeSchema,\n quantity: z.number().nonnegative(),\n unit: TelemetryPricingUnitSchema,\n unitQuantity: z.number().positive().default(1),\n unitPriceMicros: z.number().int().nonnegative().optional(),\n totalCostMicros: z.number().int().nonnegative().optional(),\n label: z.string().optional(),\n })\n .strict()\n .refine(\n (value) =>\n value.totalCostMicros !== undefined ||\n value.unitPriceMicros !== undefined,\n \"line item requires totalCostMicros or unitPriceMicros\",\n );\nexport const TelemetryPricingHintSchema = z\n .object({\n source: TelemetryPricingSourceSchema.extract([\"sdk\", \"provider\", \"custom\"]),\n currency: z.string().min(3).max(12).default(\"USD\"),\n actualCostMicros: z.number().int().nonnegative().optional(),\n lineItems: z.array(TelemetryPricingLineItemSchema).optional(),\n unitPrices: z.array(TelemetryUnitPriceSchema).optional(),\n usageItems: z.array(TelemetryUsageItemSchema).optional(),\n pricingRef: z.string().min(1).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .strict();\nexport type KortyxTelemetryService = z.infer<typeof TelemetryServiceSchema>;\nexport type KortyxWorkflowTopologyNode = z.infer<\n typeof WorkflowTopologyNodeSchema\n>;\nexport type KortyxWorkflowTopologyEdge = z.infer<\n typeof WorkflowTopologyEdgeSchema\n>;\nexport type KortyxWorkflowTopologyTransition = z.infer<\n typeof WorkflowTopologyTransitionSchema\n>;\nexport type EnsureWorkflowTopologyRequest = z.infer<\n typeof EnsureWorkflowTopologyRequestSchema\n>;\nexport type EnsureWorkflowTopologyResponse = z.infer<\n typeof EnsureWorkflowTopologyResponseSchema\n>;\nexport type KortyxTelemetryEventType = z.infer<typeof TelemetryEventTypeSchema>;\nexport type KortyxTelemetryEvent = z.infer<typeof TelemetryEventSchema>;\nexport type TelemetryEventBatch = z.infer<typeof TelemetryEventBatchSchema>;\nexport type TelemetryEventBatchResponse = z.infer<\n typeof TelemetryEventBatchResponseSchema\n>;\nexport type TelemetryPricingSource = z.infer<\n typeof TelemetryPricingSourceSchema\n>;\nexport type TelemetryPricingUnit = z.infer<typeof TelemetryPricingUnitSchema>;\nexport type TelemetryPricingUsageType = z.infer<\n typeof TelemetryPricingUsageTypeSchema\n>;\nexport type TelemetryUsageItem = z.infer<typeof TelemetryUsageItemSchema>;\nexport type TelemetryUnitPrice = z.infer<typeof TelemetryUnitPriceSchema>;\nexport type TelemetryPricingLineItem = z.infer<\n typeof TelemetryPricingLineItemSchema\n>;\nexport type TelemetryPricingHint = z.infer<typeof TelemetryPricingHintSchema>;\n\nexport const StudioRunStatusSchema = z.enum([\n \"running\",\n \"completed\",\n \"interrupted\",\n \"incomplete\",\n \"failed\",\n \"cancelled\",\n]);\nexport const STUDIO_TIME_RANGES = [\n \"Last hour\",\n \"24 hours\",\n \"7 days\",\n \"30 days\",\n \"All time\",\n \"Custom range\",\n] as const;\nexport const StudioTimeRangeSchema = z.enum(STUDIO_TIME_RANGES);\nexport const StudioTimeRangeQuerySchema = z\n .object({\n range: StudioTimeRangeSchema.optional(),\n startedAfter: z.string().optional(),\n startedBefore: z.string().optional(),\n })\n .strict();\nexport const StudioTimeRangeContextSchema = z\n .object({\n range: StudioTimeRangeSchema,\n startedAfter: z.string().datetime({ offset: true }).nullable(),\n startedBefore: z.string().datetime({ offset: true }).nullable(),\n })\n .strict();\n\nexport type StudioTimeRangeResolution =\n | {\n ok: true;\n value: z.infer<typeof StudioTimeRangeContextSchema>;\n }\n | {\n ok: false;\n error: string;\n };\n\nconst STUDIO_TIME_RANGE_MILLISECONDS: Partial<\n Record<z.infer<typeof StudioTimeRangeSchema>, number>\n> = {\n \"Last hour\": 60 * 60 * 1_000,\n \"24 hours\": 24 * 60 * 60 * 1_000,\n \"7 days\": 7 * 24 * 60 * 60 * 1_000,\n \"30 days\": 30 * 24 * 60 * 60 * 1_000,\n};\n\nconst parseIsoBoundary = (\n value: string | undefined,\n label: string,\n): { ok: true; date: Date } | { ok: false; error: string } => {\n if (!value) {\n return { ok: false, error: `${label} is required for a custom range.` };\n }\n if (!/(?:Z|[+-]\\d{2}:\\d{2})$/.test(value)) {\n return {\n ok: false,\n error: `${label} must include an explicit UTC offset.`,\n };\n }\n const date = new Date(value);\n return Number.isFinite(date.getTime())\n ? { ok: true, date }\n : { ok: false, error: `${label} must be a valid ISO date and time.` };\n};\n\n/**\n * Resolves Studio time filters into absolute UTC boundaries.\n *\n * Relative presets are evaluated against `now`. Custom boundaries must be\n * complete ISO timestamps with an explicit offset and are normalized to UTC.\n */\nexport const resolveStudioTimeRange = (\n input: {\n range?: string | undefined;\n startedAfter?: string | undefined;\n startedBefore?: string | undefined;\n },\n now = new Date(),\n): StudioTimeRangeResolution => {\n const parsedRange = StudioTimeRangeSchema.safeParse(\n input.range || \"24 hours\",\n );\n if (!parsedRange.success) {\n return {\n ok: false,\n error: `Unknown time range \"${input.range}\".`,\n };\n }\n if (!Number.isFinite(now.getTime())) {\n return { ok: false, error: \"The time range reference date is invalid.\" };\n }\n const range = parsedRange.data;\n if (range === \"All time\") {\n return {\n ok: true,\n value: { range, startedAfter: null, startedBefore: null },\n };\n }\n if (range === \"Custom range\") {\n const after = parseIsoBoundary(input.startedAfter, \"Start time\");\n if (\"error\" in after) return { ok: false, error: after.error };\n const before = parseIsoBoundary(input.startedBefore, \"End time\");\n if (\"error\" in before) return { ok: false, error: before.error };\n if (after.date.getTime() >= before.date.getTime()) {\n return {\n ok: false,\n error: \"Start time must be before end time.\",\n };\n }\n return {\n ok: true,\n value: {\n range,\n startedAfter: after.date.toISOString(),\n startedBefore: before.date.toISOString(),\n },\n };\n }\n const duration = STUDIO_TIME_RANGE_MILLISECONDS[range];\n if (!duration) {\n return { ok: false, error: `Unknown time range \"${range}\".` };\n }\n return {\n ok: true,\n value: {\n range,\n startedAfter: new Date(now.getTime() - duration).toISOString(),\n startedBefore: now.toISOString(),\n },\n };\n};\nexport const StudioInterruptStatusSchema = z.enum([\n \"pending\",\n \"resolved\",\n \"expired\",\n \"failed\",\n \"cancelled\",\n]);\nexport const resolveStudioInterruptStatus = (\n input: {\n status: z.infer<typeof StudioInterruptStatusSchema>;\n expiresAt?: string | null | undefined;\n },\n now: Date | number = Date.now(),\n): z.infer<typeof StudioInterruptStatusSchema> => {\n if (input.status !== \"pending\" || !input.expiresAt) return input.status;\n const expiresAt = Date.parse(input.expiresAt);\n const nowMs = typeof now === \"number\" ? now : now.getTime();\n return Number.isFinite(expiresAt) &&\n Number.isFinite(nowMs) &&\n expiresAt <= nowMs\n ? \"expired\"\n : input.status;\n};\nexport const StudioInterruptTypeSchema = z.enum([\n \"choice\",\n \"multi-choice\",\n \"text\",\n \"unknown\",\n]);\nexport const StudioInterruptInteractionModeSchema = z.enum([\n \"static-options\",\n \"dynamic-picker\",\n \"freeform\",\n \"unknown\",\n]);\nexport const StudioInterruptOptionSchema = z\n .object({\n id: z.string().min(1),\n label: z.string().min(1),\n description: z.string().nullable(),\n })\n .strict();\nexport const StudioResumeOutcomeSchema = z.enum([\n \"resumed\",\n \"resume failed\",\n \"expired before resume\",\n \"cancelled\",\n]);\nexport const StudioWorkflowHealthSchema = z.enum([\n \"unknown\",\n \"healthy\",\n \"degraded\",\n \"failing\",\n \"idle\",\n]);\nexport const StudioPricingStatusSchema = z.enum([\n \"priced\",\n \"unpriced\",\n \"unknown\",\n]);\nexport const StudioPricingSourceSchema =\n TelemetryPricingSourceSchema.nullable();\nexport const StudioChangeResourceSchema = z.enum([\n \"runs\",\n \"sessions\",\n \"interrupts\",\n]);\nexport const StudioChangeSchema = z\n .object({\n schemaVersion: z.literal(1),\n changeId: z.string().min(1),\n emittedAt: z.string().datetime({ offset: true }),\n organizationId: z.string().min(1),\n projectId: z.string().min(1),\n resources: z.array(StudioChangeResourceSchema).min(1),\n })\n .strict();\nexport const StudioMetricSchema = z\n .object({\n runCount: z.number().int().nonnegative(),\n successRate: z.number().min(0).max(100).nullable(),\n errorRate: z.number().min(0).max(100).nullable(),\n retryCount: z.number().int().nonnegative().nullable(),\n interruptRate: z.number().min(0).max(100).nullable(),\n p50DurationMs: z.number().nonnegative().nullable(),\n p95DurationMs: z.number().nonnegative().nullable(),\n averageTokens: z.number().nonnegative().nullable(),\n averageCost: z.number().nonnegative().nullable(),\n currency: z.string().nullable(),\n })\n .strict();\nexport const StudioRunSchema = z\n .object({\n id: z.string().min(1),\n status: StudioRunStatusSchema,\n startedAt: z.string().datetime({ offset: true }),\n endedAt: z.string().datetime({ offset: true }).nullable(),\n workflowId: z.string().min(1),\n workflowIds: z.array(z.string().min(1)),\n workflowRefs: z.array(\n z\n .object({\n workflowId: z.string().min(1),\n workflowRevisionId: z.string().nullable(),\n declaredVersion: z.string().nullable(),\n })\n .strict(),\n ),\n workflowRevisionId: z.string().nullable(),\n declaredVersion: z.string().nullable(),\n transitionIds: z.array(z.string().min(1)),\n path: z.array(z.string()),\n sessionId: z.string().nullable(),\n provider: z.string().nullable(),\n model: z.string().nullable(),\n models: z.array(z.string()),\n durationMs: z.number().nonnegative().nullable(),\n tokens: z.number().int().nonnegative().nullable(),\n cost: z.number().nonnegative().nullable(),\n pricingStatus: StudioPricingStatusSchema,\n pricingSource: StudioPricingSourceSchema,\n currency: z.string().nullable(),\n result: z.string().nullable(),\n environment: z.string().min(1),\n userId: z.string().nullable(),\n tenantId: z.string().nullable(),\n hasTool: z.boolean(),\n hasRetry: z.boolean(),\n interruptNodeId: z.string().nullable(),\n interruptId: z.string().nullable().optional(),\n interruptStatus: StudioInterruptStatusSchema.nullable().optional(),\n interruptExpiresAt: z\n .string()\n .datetime({ offset: true })\n .nullable()\n .optional(),\n })\n .strict();\nexport const StudioSessionSchema = z\n .object({\n id: z.string().min(1),\n status: StudioRunStatusSchema,\n lastActivityAt: z.string().datetime({ offset: true }),\n workflowIds: z.array(z.string()),\n workflowCount: z.number().int().nonnegative(),\n activeWorkflowId: z.string().nullable(),\n activeVersion: z.string().nullable(),\n userId: z.string().nullable(),\n tenantId: z.string().nullable(),\n runs: z.number().int().nonnegative(),\n succeeded: z.number().int().nonnegative(),\n failed: z.number().int().nonnegative(),\n interrupted: z.number().int().nonnegative(),\n checkpoints: z.number().int().nonnegative(),\n hasFork: z.boolean(),\n durationMs: z.number().nonnegative().nullable(),\n tokens: z.number().int().nonnegative().nullable(),\n cost: z.number().nonnegative().nullable(),\n pricingStatus: StudioPricingStatusSchema,\n pricingSource: StudioPricingSourceSchema,\n currency: z.string().nullable(),\n latestResult: z.string().nullable(),\n latestError: z.string().nullable(),\n pendingInterruptId: z.string().nullable(),\n interruptStatus: StudioInterruptStatusSchema.nullable().optional(),\n interruptExpiresAt: z\n .string()\n .datetime({ offset: true })\n .nullable()\n .optional(),\n providers: z.array(z.string()),\n models: z.array(z.string()),\n tags: z.array(z.string()),\n environment: z.string().min(1),\n })\n .strict();\nexport const StudioInterruptSchema = z\n .object({\n id: z.string().min(1),\n status: StudioInterruptStatusSchema,\n type: StudioInterruptTypeSchema,\n interactionMode: StudioInterruptInteractionModeSchema,\n schemaId: z.string().nullable(),\n schemaVersion: z.string().nullable(),\n createdAt: z.string().datetime({ offset: true }),\n resolvedAt: z.string().datetime({ offset: true }).nullable(),\n expiresAt: z.string().datetime({ offset: true }).nullable(),\n question: z.string().nullable(),\n contentCaptured: z.boolean(),\n optionCount: z.number().int().nonnegative().nullable(),\n options: z.array(StudioInterruptOptionSchema).nullable(),\n workflowId: z.string().min(1),\n nodeId: z.string().nullable(),\n sessionId: z.string().nullable(),\n userId: z.string().nullable(),\n tenantId: z.string().nullable(),\n response: z.string().nullable(),\n responseCaptured: z.boolean(),\n resumeOutcome: StudioResumeOutcomeSchema.nullable(),\n resumeError: z.string().nullable(),\n runId: z.string().min(1),\n resumeToken: z.string().nullable(),\n resolvedBy: z.string().nullable(),\n environment: z.string().min(1),\n })\n .strict();\nexport const StudioDetailEventSchema = z\n .object({\n id: z.string().min(1),\n type: TelemetryEventTypeSchema,\n occurredAt: z.string().datetime({ offset: true }),\n receivedAt: z.string().datetime({ offset: true }),\n environment: z.string().min(1),\n serviceName: z.string().min(1),\n deploymentRef: z.string().nullable(),\n traceId: z.string().nullable(),\n spanId: z.string().nullable(),\n parentSpanId: z.string().nullable(),\n runId: z.string().min(1),\n sessionId: z.string().nullable(),\n workflowId: z.string().min(1),\n workflowRevisionId: z.string().nullable(),\n nodeId: z.string().nullable(),\n userId: z.string().nullable(),\n tenantId: z.string().nullable(),\n tags: z.array(z.string()),\n metadata: z.record(z.string(), z.unknown()).nullable(),\n payload: z.record(z.string(), z.unknown()),\n })\n .strict();\nexport const StudioWorkflowNodeSchema = z\n .object({\n id: z.string().min(1),\n label: z.string(),\n type: z.string().nullable(),\n state: z\n .enum([\"healthy\", \"warning\", \"failed\", \"interrupted\", \"retried\"])\n .nullable(),\n provider: z.string().nullable(),\n model: z.string().nullable(),\n metrics: StudioMetricSchema,\n })\n .strict();\nexport const StudioWorkflowInternalEdgeSchema = z\n .object({\n id: z.string().min(1),\n source: z.string().min(1),\n target: z.string().min(1),\n condition: z.string().nullable(),\n })\n .strict();\nexport const StudioWorkflowTransitionSchema = z\n .object({\n id: z.string().min(1),\n sourceWorkflowId: z.string().min(1),\n sourceNodeId: z.string().nullable(),\n targetWorkflowId: z.string().min(1),\n condition: z.string().nullable(),\n volume: z.number().int().nonnegative(),\n successRate: z.number().min(0).max(100).nullable(),\n medianDurationMs: z.number().nonnegative().nullable(),\n errorRate: z.number().min(0).max(100).nullable(),\n })\n .strict();\nexport const StudioWorkflowSchema = z\n .object({\n id: z.string().min(1),\n name: z.string().min(1),\n description: z.string().nullable(),\n versions: z.array(z.string()),\n activeVersion: z.string().nullable(),\n activeRevisionId: z.string().nullable(),\n health: StudioWorkflowHealthSchema,\n tags: z.array(z.string()),\n lastActivityAt: z.string().datetime({ offset: true }).nullable(),\n metrics: StudioMetricSchema,\n nodes: z.array(StudioWorkflowNodeSchema),\n internalEdges: z.array(StudioWorkflowInternalEdgeSchema),\n })\n .strict();\nexport const StudioRunsResponseSchema = z\n .object({\n runs: z.array(StudioRunSchema),\n totalCount: z.number().int().nonnegative(),\n })\n .strict();\nexport const StudioSessionsResponseSchema = z\n .object({\n sessions: z.array(StudioSessionSchema),\n totalCount: z.number().int().nonnegative(),\n })\n .strict();\nexport const StudioInterruptsResponseSchema = z\n .object({\n interrupts: z.array(StudioInterruptSchema),\n totalCount: z.number().int().nonnegative(),\n })\n .strict();\nexport const StudioRunDetailResponseSchema = z\n .object({\n run: StudioRunSchema,\n events: z.array(StudioDetailEventSchema),\n session: StudioSessionSchema.nullable(),\n interrupts: z.array(StudioInterruptSchema),\n updatedAt: z.string().datetime({ offset: true }),\n })\n .strict();\nexport const StudioSessionDetailResponseSchema = z\n .object({\n session: StudioSessionSchema,\n runs: z.array(StudioRunSchema),\n events: z.array(StudioDetailEventSchema),\n interrupts: z.array(StudioInterruptSchema),\n updatedAt: z.string().datetime({ offset: true }),\n })\n .strict();\nexport const StudioInterruptDetailResponseSchema = z\n .object({\n interrupt: StudioInterruptSchema,\n events: z.array(StudioDetailEventSchema),\n run: StudioRunSchema.nullable(),\n session: StudioSessionSchema.nullable(),\n updatedAt: z.string().datetime({ offset: true }),\n })\n .strict();\nexport const StudioWorkflowsResponseSchema = z\n .object({\n workflows: z.array(StudioWorkflowSchema),\n transitions: z.array(StudioWorkflowTransitionSchema),\n cohort: StudioTimeRangeContextSchema.extend({\n workflowId: z.string().nullable(),\n version: z.string().nullable(),\n }).strict(),\n })\n .strict();\nexport const StudioCatalogsResponseSchema = z\n .object({\n environments: z.array(z.string()),\n providers: z.array(z.string()),\n models: z.array(z.string()),\n workflows: z.array(z.string()),\n tags: z.array(z.string()),\n })\n .strict();\nexport const StudioContextResponseSchema = z\n .object({\n organization: z\n .object({\n name: z.string().min(1),\n })\n .strict(),\n project: z\n .object({\n name: z.string().min(1),\n })\n .strict(),\n environments: z.array(z.string()),\n apiKey: z\n .object({\n mode: z.enum([\"test\", \"live\"]),\n scopes: z.array(z.string()),\n })\n .strict(),\n api: z\n .object({\n status: z.literal(\"ok\"),\n service: z.literal(\"kortyx-api\"),\n version: z.string().min(1),\n })\n .strict(),\n })\n .strict();\nexport type StudioRunStatus = z.infer<typeof StudioRunStatusSchema>;\nexport type StudioTimeRange = z.infer<typeof StudioTimeRangeSchema>;\nexport type StudioTimeRangeContext = z.infer<\n typeof StudioTimeRangeContextSchema\n>;\nexport type StudioInterruptStatus = z.infer<typeof StudioInterruptStatusSchema>;\nexport type StudioInterruptType = z.infer<typeof StudioInterruptTypeSchema>;\nexport type StudioInterruptInteractionMode = z.infer<\n typeof StudioInterruptInteractionModeSchema\n>;\nexport type StudioInterruptOption = z.infer<typeof StudioInterruptOptionSchema>;\nexport type StudioResumeOutcome = z.infer<typeof StudioResumeOutcomeSchema>;\nexport type StudioWorkflowHealth = z.infer<typeof StudioWorkflowHealthSchema>;\nexport type StudioPricingStatus = z.infer<typeof StudioPricingStatusSchema>;\nexport type StudioPricingSource = z.infer<typeof StudioPricingSourceSchema>;\nexport type StudioChangeResource = z.infer<typeof StudioChangeResourceSchema>;\nexport type StudioChange = z.infer<typeof StudioChangeSchema>;\nexport type StudioMetric = z.infer<typeof StudioMetricSchema>;\nexport type StudioRun = z.infer<typeof StudioRunSchema>;\nexport type StudioSession = z.infer<typeof StudioSessionSchema>;\nexport type StudioInterrupt = z.infer<typeof StudioInterruptSchema>;\nexport type StudioWorkflowNode = z.infer<typeof StudioWorkflowNodeSchema>;\nexport type StudioWorkflowInternalEdge = z.infer<\n typeof StudioWorkflowInternalEdgeSchema\n>;\nexport type StudioWorkflowTransition = z.infer<\n typeof StudioWorkflowTransitionSchema\n>;\nexport type StudioWorkflow = z.infer<typeof StudioWorkflowSchema>;\nexport type StudioRunsResponse = z.infer<typeof StudioRunsResponseSchema>;\nexport type StudioSessionsResponse = z.infer<\n typeof StudioSessionsResponseSchema\n>;\nexport type StudioInterruptsResponse = z.infer<\n typeof StudioInterruptsResponseSchema\n>;\nexport type StudioDetailEvent = z.infer<typeof StudioDetailEventSchema>;\nexport type StudioRunDetailResponse = z.infer<\n typeof StudioRunDetailResponseSchema\n>;\nexport type StudioSessionDetailResponse = z.infer<\n typeof StudioSessionDetailResponseSchema\n>;\nexport type StudioInterruptDetailResponse = z.infer<\n typeof StudioInterruptDetailResponseSchema\n>;\nexport type StudioWorkflowsResponse = z.infer<\n typeof StudioWorkflowsResponseSchema\n>;\nexport type StudioCatalogsResponse = z.infer<\n typeof StudioCatalogsResponseSchema\n>;\nexport type StudioContextResponse = z.infer<typeof StudioContextResponseSchema>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AACX,IAAM,wBAAwB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACO,IAAM,yBAAyB,aACnC,OAAO;AAAA,EACN,MAAM,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtB,eAAe,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAC5C,CAAC,EACA,OAAO;AACH,IAAM,6BAA6B,aACvC,OAAO;AAAA,EACN,IAAI,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,OAAO,aAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,MAAM,aAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,OAAO,aAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,UAAU,aAAE,OAAO,aAAE,OAAO,GAAG,aAAE,QAAQ,CAAC,EAAE,SAAS;AACvD,CAAC,EACA,OAAO;AACH,IAAM,6BAA6B,aACvC,OAAO;AAAA,EACN,cAAc,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC9B,cAAc,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC9B,WAAW,aAAE,OAAO,EAAE,SAAS;AACjC,CAAC,EACA,OAAO;AACH,IAAM,mCAAmC,aAC7C,OAAO;AAAA,EACN,cAAc,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACzC,kBAAkB,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAClC,WAAW,aAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,QAAQ,aAAE,OAAO,EAAE,SAAS;AAC9B,CAAC,EACA,OAAO;AACH,IAAM,sCAAsC,aAChD,OAAO;AAAA,EACN,eAAe,aAAE,QAAQ,CAAC;AAAA,EAC1B,aAAa,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC7B,SAAS;AAAA,EACT,UAAU,aACP,OAAO;AAAA,IACN,IAAI,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IACpB,iBAAiB,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IACjC,aAAa,aAAE,OAAO,EAAE,SAAS;AAAA,IACjC,MAAM,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IACnC,cAAc,aAAE,OAAO,EAAE,MAAM,gBAAgB;AAAA,IAC/C,OAAO,aAAE,MAAM,0BAA0B;AAAA,IACzC,OAAO,aAAE,MAAM,0BAA0B;AAAA,IACzC,aAAa,aAAE,MAAM,gCAAgC,EAAE,SAAS;AAAA,EAClE,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO;AACH,IAAM,uCAAuC,aACjD,OAAO,EAAE,oBAAoB,aAAE,OAAO,EAAE,IAAI,CAAC,GAAG,SAAS,aAAE,QAAQ,EAAE,CAAC,EACtE,OAAO;AACH,IAAM,2BAA2B,aAAE,KAAK,qBAAqB;AAC7D,IAAM,uBAAuB,aACjC,OAAO;AAAA,EACN,eAAe,aAAE,QAAQ,CAAC;AAAA,EAC1B,SAAS,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,YAAY,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AAAA,EAChD,aAAa,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC7B,SAAS;AAAA,EACT,aAAa,aACV,OAAO;AAAA,IACN,SAAS,aAAE,OAAO,EAAE,SAAS;AAAA,IAC7B,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,cAAc,aAAE,OAAO,EAAE,SAAS;AAAA,IAClC,OAAO,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IACvB,WAAW,aAAE,OAAO,EAAE,SAAS;AAAA,IAC/B,YAAY,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IAC5B,oBAAoB,aAAE,OAAO,EAAE,SAAS;AAAA,IACxC,cAAc,aACX,OAAO,EACP,MAAM,gBAAgB,EACtB,SAAS;AAAA,IACZ,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,CAAC,EACA,OAAO;AAAA,EACV,SAAS,aACN,OAAO;AAAA,IACN,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,MAAM,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IACnC,UAAU,aAAE,OAAO,aAAE,OAAO,GAAG,aAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,EACvD,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,MAAM;AAAA,EACN,SAAS,aAAE,OAAO,aAAE,OAAO,GAAG,aAAE,QAAQ,CAAC;AAC3C,CAAC,EACA,OAAO;AACH,IAAM,4BAA4B,aACtC,OAAO,EAAE,QAAQ,aAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAAC,EACvD,OAAO;AACH,IAAM,oCAAoC,aAC9C,OAAO;AAAA,EACN,UAAU,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACvC,UAAU,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACvC,YAAY,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAC3C,CAAC,EACA,OAAO;AACH,IAAM,+BAA+B,aAAE,KAAK;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,6BAA6B,aAAE,KAAK;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,kCAAkC,aAAE,KAAK;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,2BAA2B,aACrC,OAAO;AAAA,EACN,WAAW;AAAA,EACX,UAAU,aAAE,OAAO,EAAE,YAAY;AAAA,EACjC,MAAM;AAAA,EACN,OAAO,aAAE,OAAO,EAAE,SAAS;AAC7B,CAAC,EACA,OAAO;AACH,IAAM,2BAA2B,aACrC,OAAO;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AAAA,EACN,cAAc,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;AAAA,EAC7C,aAAa,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAC1C,OAAO,aAAE,OAAO,EAAE,SAAS;AAC7B,CAAC,EACA,OAAO;AACH,IAAM,iCAAiC,aAC3C,OAAO;AAAA,EACN,WAAW;AAAA,EACX,UAAU,aAAE,OAAO,EAAE,YAAY;AAAA,EACjC,MAAM;AAAA,EACN,cAAc,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;AAAA,EAC7C,iBAAiB,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACzD,iBAAiB,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACzD,OAAO,aAAE,OAAO,EAAE,SAAS;AAC7B,CAAC,EACA,OAAO,EACP;AAAA,EACC,CAAC,UACC,MAAM,oBAAoB,UAC1B,MAAM,oBAAoB;AAAA,EAC5B;AACF;AACK,IAAM,6BAA6B,aACvC,OAAO;AAAA,EACN,QAAQ,6BAA6B,QAAQ,CAAC,OAAO,YAAY,QAAQ,CAAC;AAAA,EAC1E,UAAU,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,KAAK;AAAA,EACjD,kBAAkB,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAC1D,WAAW,aAAE,MAAM,8BAA8B,EAAE,SAAS;AAAA,EAC5D,YAAY,aAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,EACvD,YAAY,aAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,EACvD,YAAY,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACvC,UAAU,aAAE,OAAO,aAAE,OAAO,GAAG,aAAE,QAAQ,CAAC,EAAE,SAAS;AACvD,CAAC,EACA,OAAO;AAqCH,IAAM,wBAAwB,aAAE,KAAK;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,qBAAqB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACO,IAAM,wBAAwB,aAAE,KAAK,kBAAkB;AACvD,IAAM,6BAA6B,aACvC,OAAO;AAAA,EACN,OAAO,sBAAsB,SAAS;AAAA,EACtC,cAAc,aAAE,OAAO,EAAE,SAAS;AAAA,EAClC,eAAe,aAAE,OAAO,EAAE,SAAS;AACrC,CAAC,EACA,OAAO;AACH,IAAM,+BAA+B,aACzC,OAAO;AAAA,EACN,OAAO;AAAA,EACP,cAAc,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC,EAAE,SAAS;AAAA,EAC7D,eAAe,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC,EAAE,SAAS;AAChE,CAAC,EACA,OAAO;AAYV,IAAM,iCAEF;AAAA,EACF,aAAa,KAAK,KAAK;AAAA,EACvB,YAAY,KAAK,KAAK,KAAK;AAAA,EAC3B,UAAU,IAAI,KAAK,KAAK,KAAK;AAAA,EAC7B,WAAW,KAAK,KAAK,KAAK,KAAK;AACjC;AAEA,IAAM,mBAAmB,CACvB,OACA,UAC4D;AAC5D,MAAI,CAAC,OAAO;AACV,WAAO,EAAE,IAAI,OAAO,OAAO,GAAG,KAAK,mCAAmC;AAAA,EACxE;AACA,MAAI,CAAC,yBAAyB,KAAK,KAAK,GAAG;AACzC,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,OAAO,GAAG,KAAK;AAAA,IACjB;AAAA,EACF;AACA,QAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,SAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,IACjC,EAAE,IAAI,MAAM,KAAK,IACjB,EAAE,IAAI,OAAO,OAAO,GAAG,KAAK,sCAAsC;AACxE;AAQO,IAAM,yBAAyB,CACpC,OAKA,MAAM,oBAAI,KAAK,MACe;AAC9B,QAAM,cAAc,sBAAsB;AAAA,IACxC,MAAM,SAAS;AAAA,EACjB;AACA,MAAI,CAAC,YAAY,SAAS;AACxB,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,OAAO,uBAAuB,MAAM,KAAK;AAAA,IAC3C;AAAA,EACF;AACA,MAAI,CAAC,OAAO,SAAS,IAAI,QAAQ,CAAC,GAAG;AACnC,WAAO,EAAE,IAAI,OAAO,OAAO,4CAA4C;AAAA,EACzE;AACA,QAAM,QAAQ,YAAY;AAC1B,MAAI,UAAU,YAAY;AACxB,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,OAAO,EAAE,OAAO,cAAc,MAAM,eAAe,KAAK;AAAA,IAC1D;AAAA,EACF;AACA,MAAI,UAAU,gBAAgB;AAC5B,UAAM,QAAQ,iBAAiB,MAAM,cAAc,YAAY;AAC/D,QAAI,WAAW,MAAO,QAAO,EAAE,IAAI,OAAO,OAAO,MAAM,MAAM;AAC7D,UAAM,SAAS,iBAAiB,MAAM,eAAe,UAAU;AAC/D,QAAI,WAAW,OAAQ,QAAO,EAAE,IAAI,OAAO,OAAO,OAAO,MAAM;AAC/D,QAAI,MAAM,KAAK,QAAQ,KAAK,OAAO,KAAK,QAAQ,GAAG;AACjD,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,OAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,OAAO;AAAA,QACL;AAAA,QACA,cAAc,MAAM,KAAK,YAAY;AAAA,QACrC,eAAe,OAAO,KAAK,YAAY;AAAA,MACzC;AAAA,IACF;AAAA,EACF;AACA,QAAM,WAAW,+BAA+B,KAAK;AACrD,MAAI,CAAC,UAAU;AACb,WAAO,EAAE,IAAI,OAAO,OAAO,uBAAuB,KAAK,KAAK;AAAA,EAC9D;AACA,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA,cAAc,IAAI,KAAK,IAAI,QAAQ,IAAI,QAAQ,EAAE,YAAY;AAAA,MAC7D,eAAe,IAAI,YAAY;AAAA,IACjC;AAAA,EACF;AACF;AACO,IAAM,8BAA8B,aAAE,KAAK;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,+BAA+B,CAC1C,OAIA,MAAqB,KAAK,IAAI,MACkB;AAChD,MAAI,MAAM,WAAW,aAAa,CAAC,MAAM,UAAW,QAAO,MAAM;AACjE,QAAM,YAAY,KAAK,MAAM,MAAM,SAAS;AAC5C,QAAM,QAAQ,OAAO,QAAQ,WAAW,MAAM,IAAI,QAAQ;AAC1D,SAAO,OAAO,SAAS,SAAS,KAC9B,OAAO,SAAS,KAAK,KACrB,aAAa,QACX,YACA,MAAM;AACZ;AACO,IAAM,4BAA4B,aAAE,KAAK;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,uCAAuC,aAAE,KAAK;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,8BAA8B,aACxC,OAAO;AAAA,EACN,IAAI,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,OAAO,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,aAAa,aAAE,OAAO,EAAE,SAAS;AACnC,CAAC,EACA,OAAO;AACH,IAAM,4BAA4B,aAAE,KAAK;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,6BAA6B,aAAE,KAAK;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,4BAA4B,aAAE,KAAK;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,4BACX,6BAA6B,SAAS;AACjC,IAAM,6BAA6B,aAAE,KAAK;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,qBAAqB,aAC/B,OAAO;AAAA,EACN,eAAe,aAAE,QAAQ,CAAC;AAAA,EAC1B,UAAU,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC1B,WAAW,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AAAA,EAC/C,gBAAgB,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAChC,WAAW,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC3B,WAAW,aAAE,MAAM,0BAA0B,EAAE,IAAI,CAAC;AACtD,CAAC,EACA,OAAO;AACH,IAAM,qBAAqB,aAC/B,OAAO;AAAA,EACN,UAAU,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACvC,aAAa,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACjD,WAAW,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EAC/C,YAAY,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACpD,eAAe,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACnD,eAAe,aAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EACjD,eAAe,aAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EACjD,eAAe,aAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EACjD,aAAa,aAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EAC/C,UAAU,aAAE,OAAO,EAAE,SAAS;AAChC,CAAC,EACA,OAAO;AACH,IAAM,kBAAkB,aAC5B,OAAO;AAAA,EACN,IAAI,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,QAAQ;AAAA,EACR,WAAW,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AAAA,EAC/C,SAAS,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC,EAAE,SAAS;AAAA,EACxD,YAAY,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,aAAa,aAAE,MAAM,aAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAAA,EACtC,cAAc,aAAE;AAAA,IACd,aACG,OAAO;AAAA,MACN,YAAY,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,MAC5B,oBAAoB,aAAE,OAAO,EAAE,SAAS;AAAA,MACxC,iBAAiB,aAAE,OAAO,EAAE,SAAS;AAAA,IACvC,CAAC,EACA,OAAO;AAAA,EACZ;AAAA,EACA,oBAAoB,aAAE,OAAO,EAAE,SAAS;AAAA,EACxC,iBAAiB,aAAE,OAAO,EAAE,SAAS;AAAA,EACrC,eAAe,aAAE,MAAM,aAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAAA,EACxC,MAAM,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EACxB,WAAW,aAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,OAAO,aAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,QAAQ,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EAC1B,YAAY,aAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EAC9C,QAAQ,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAChD,MAAM,aAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EACxC,eAAe;AAAA,EACf,eAAe;AAAA,EACf,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,aAAa,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC7B,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,SAAS,aAAE,QAAQ;AAAA,EACnB,UAAU,aAAE,QAAQ;AAAA,EACpB,iBAAiB,aAAE,OAAO,EAAE,SAAS;AAAA,EACrC,aAAa,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC5C,iBAAiB,4BAA4B,SAAS,EAAE,SAAS;AAAA,EACjE,oBAAoB,aACjB,OAAO,EACP,SAAS,EAAE,QAAQ,KAAK,CAAC,EACzB,SAAS,EACT,SAAS;AACd,CAAC,EACA,OAAO;AACH,IAAM,sBAAsB,aAChC,OAAO;AAAA,EACN,IAAI,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,QAAQ;AAAA,EACR,gBAAgB,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AAAA,EACpD,aAAa,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EAC/B,eAAe,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAC5C,kBAAkB,aAAE,OAAO,EAAE,SAAS;AAAA,EACtC,eAAe,aAAE,OAAO,EAAE,SAAS;AAAA,EACnC,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,MAAM,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACnC,WAAW,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACxC,QAAQ,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACrC,aAAa,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAC1C,aAAa,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAC1C,SAAS,aAAE,QAAQ;AAAA,EACnB,YAAY,aAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EAC9C,QAAQ,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAChD,MAAM,aAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EACxC,eAAe;AAAA,EACf,eAAe;AAAA,EACf,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,cAAc,aAAE,OAAO,EAAE,SAAS;AAAA,EAClC,aAAa,aAAE,OAAO,EAAE,SAAS;AAAA,EACjC,oBAAoB,aAAE,OAAO,EAAE,SAAS;AAAA,EACxC,iBAAiB,4BAA4B,SAAS,EAAE,SAAS;AAAA,EACjE,oBAAoB,aACjB,OAAO,EACP,SAAS,EAAE,QAAQ,KAAK,CAAC,EACzB,SAAS,EACT,SAAS;AAAA,EACZ,WAAW,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EAC7B,QAAQ,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EAC1B,MAAM,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EACxB,aAAa,aAAE,OAAO,EAAE,IAAI,CAAC;AAC/B,CAAC,EACA,OAAO;AACH,IAAM,wBAAwB,aAClC,OAAO;AAAA,EACN,IAAI,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,eAAe,aAAE,OAAO,EAAE,SAAS;AAAA,EACnC,WAAW,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AAAA,EAC/C,YAAY,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC,EAAE,SAAS;AAAA,EAC3D,WAAW,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC,EAAE,SAAS;AAAA,EAC1D,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,iBAAiB,aAAE,QAAQ;AAAA,EAC3B,aAAa,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACrD,SAAS,aAAE,MAAM,2BAA2B,EAAE,SAAS;AAAA,EACvD,YAAY,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,WAAW,aAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,kBAAkB,aAAE,QAAQ;AAAA,EAC5B,eAAe,0BAA0B,SAAS;AAAA,EAClD,aAAa,aAAE,OAAO,EAAE,SAAS;AAAA,EACjC,OAAO,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,aAAa,aAAE,OAAO,EAAE,SAAS;AAAA,EACjC,YAAY,aAAE,OAAO,EAAE,SAAS;AAAA,EAChC,aAAa,aAAE,OAAO,EAAE,IAAI,CAAC;AAC/B,CAAC,EACA,OAAO;AACH,IAAM,0BAA0B,aACpC,OAAO;AAAA,EACN,IAAI,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,MAAM;AAAA,EACN,YAAY,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AAAA,EAChD,YAAY,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AAAA,EAChD,aAAa,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC7B,aAAa,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC7B,eAAe,aAAE,OAAO,EAAE,SAAS;AAAA,EACnC,SAAS,aAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,cAAc,aAAE,OAAO,EAAE,SAAS;AAAA,EAClC,OAAO,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,WAAW,aAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,YAAY,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,oBAAoB,aAAE,OAAO,EAAE,SAAS;AAAA,EACxC,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,MAAM,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EACxB,UAAU,aAAE,OAAO,aAAE,OAAO,GAAG,aAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,EACrD,SAAS,aAAE,OAAO,aAAE,OAAO,GAAG,aAAE,QAAQ,CAAC;AAC3C,CAAC,EACA,OAAO;AACH,IAAM,2BAA2B,aACrC,OAAO;AAAA,EACN,IAAI,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,OAAO,aAAE,OAAO;AAAA,EAChB,MAAM,aAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAO,aACJ,KAAK,CAAC,WAAW,WAAW,UAAU,eAAe,SAAS,CAAC,EAC/D,SAAS;AAAA,EACZ,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,OAAO,aAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,SAAS;AACX,CAAC,EACA,OAAO;AACH,IAAM,mCAAmC,aAC7C,OAAO;AAAA,EACN,IAAI,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,QAAQ,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACxB,QAAQ,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACxB,WAAW,aAAE,OAAO,EAAE,SAAS;AACjC,CAAC,EACA,OAAO;AACH,IAAM,iCAAiC,aAC3C,OAAO;AAAA,EACN,IAAI,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,kBAAkB,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAClC,cAAc,aAAE,OAAO,EAAE,SAAS;AAAA,EAClC,kBAAkB,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAClC,WAAW,aAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,QAAQ,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACrC,aAAa,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACjD,kBAAkB,aAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EACpD,WAAW,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AACjD,CAAC,EACA,OAAO;AACH,IAAM,uBAAuB,aACjC,OAAO;AAAA,EACN,IAAI,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,MAAM,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtB,aAAa,aAAE,OAAO,EAAE,SAAS;AAAA,EACjC,UAAU,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EAC5B,eAAe,aAAE,OAAO,EAAE,SAAS;AAAA,EACnC,kBAAkB,aAAE,OAAO,EAAE,SAAS;AAAA,EACtC,QAAQ;AAAA,EACR,MAAM,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EACxB,gBAAgB,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC,EAAE,SAAS;AAAA,EAC/D,SAAS;AAAA,EACT,OAAO,aAAE,MAAM,wBAAwB;AAAA,EACvC,eAAe,aAAE,MAAM,gCAAgC;AACzD,CAAC,EACA,OAAO;AACH,IAAM,2BAA2B,aACrC,OAAO;AAAA,EACN,MAAM,aAAE,MAAM,eAAe;AAAA,EAC7B,YAAY,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAC3C,CAAC,EACA,OAAO;AACH,IAAM,+BAA+B,aACzC,OAAO;AAAA,EACN,UAAU,aAAE,MAAM,mBAAmB;AAAA,EACrC,YAAY,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAC3C,CAAC,EACA,OAAO;AACH,IAAM,iCAAiC,aAC3C,OAAO;AAAA,EACN,YAAY,aAAE,MAAM,qBAAqB;AAAA,EACzC,YAAY,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAC3C,CAAC,EACA,OAAO;AACH,IAAM,gCAAgC,aAC1C,OAAO;AAAA,EACN,KAAK;AAAA,EACL,QAAQ,aAAE,MAAM,uBAAuB;AAAA,EACvC,SAAS,oBAAoB,SAAS;AAAA,EACtC,YAAY,aAAE,MAAM,qBAAqB;AAAA,EACzC,WAAW,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AACjD,CAAC,EACA,OAAO;AACH,IAAM,oCAAoC,aAC9C,OAAO;AAAA,EACN,SAAS;AAAA,EACT,MAAM,aAAE,MAAM,eAAe;AAAA,EAC7B,QAAQ,aAAE,MAAM,uBAAuB;AAAA,EACvC,YAAY,aAAE,MAAM,qBAAqB;AAAA,EACzC,WAAW,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AACjD,CAAC,EACA,OAAO;AACH,IAAM,sCAAsC,aAChD,OAAO;AAAA,EACN,WAAW;AAAA,EACX,QAAQ,aAAE,MAAM,uBAAuB;AAAA,EACvC,KAAK,gBAAgB,SAAS;AAAA,EAC9B,SAAS,oBAAoB,SAAS;AAAA,EACtC,WAAW,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AACjD,CAAC,EACA,OAAO;AACH,IAAM,gCAAgC,aAC1C,OAAO;AAAA,EACN,WAAW,aAAE,MAAM,oBAAoB;AAAA,EACvC,aAAa,aAAE,MAAM,8BAA8B;AAAA,EACnD,QAAQ,6BAA6B,OAAO;AAAA,IAC1C,YAAY,aAAE,OAAO,EAAE,SAAS;AAAA,IAChC,SAAS,aAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,CAAC,EAAE,OAAO;AACZ,CAAC,EACA,OAAO;AACH,IAAM,+BAA+B,aACzC,OAAO;AAAA,EACN,cAAc,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EAChC,WAAW,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EAC7B,QAAQ,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EAC1B,WAAW,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EAC7B,MAAM,aAAE,MAAM,aAAE,OAAO,CAAC;AAC1B,CAAC,EACA,OAAO;AACH,IAAM,8BAA8B,aACxC,OAAO;AAAA,EACN,cAAc,aACX,OAAO;AAAA,IACN,MAAM,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACxB,CAAC,EACA,OAAO;AAAA,EACV,SAAS,aACN,OAAO;AAAA,IACN,MAAM,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACxB,CAAC,EACA,OAAO;AAAA,EACV,cAAc,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EAChC,QAAQ,aACL,OAAO;AAAA,IACN,MAAM,aAAE,KAAK,CAAC,QAAQ,MAAM,CAAC;AAAA,IAC7B,QAAQ,aAAE,MAAM,aAAE,OAAO,CAAC;AAAA,EAC5B,CAAC,EACA,OAAO;AAAA,EACV,KAAK,aACF,OAAO;AAAA,IACN,QAAQ,aAAE,QAAQ,IAAI;AAAA,IACtB,SAAS,aAAE,QAAQ,YAAY;AAAA,IAC/B,SAAS,aAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC3B,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/workflow-calls.ts"],"sourcesContent":["import { z } from \"zod\";\nexport const TELEMETRY_EVENT_TYPES = [\n \"span.started\",\n \"span.ended\",\n \"span.failed\",\n \"generation.completed\",\n \"tool.started\",\n \"tool.completed\",\n \"tool.failed\",\n \"interrupt.created\",\n \"interrupt.resolved\",\n \"interrupt.expired\",\n \"interrupt.cancelled\",\n \"run.cancelled\",\n \"run.limit_reached\",\n \"workflow.transitioned\",\n \"workflow.call.started\",\n \"workflow.call.suspended\",\n \"workflow.call.resumed\",\n \"workflow.call.completed\",\n \"workflow.call.failed\",\n \"workflow.call.reused\",\n \"workflow.call.restored\",\n\n \"session.checkpointed\",\n \"session.forked\",\n \"session.rolled_back\",\n] as const;\nexport const TelemetryServiceSchema = z\n .object({\n name: z.string().min(1),\n deploymentRef: z.string().min(1).optional(),\n })\n .strict();\nexport const WorkflowTopologyNodeSchema = z\n .object({\n id: z.string().min(1),\n label: z.string().optional(),\n type: z.string().optional(),\n provider: z.string().optional(),\n model: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .strict();\nexport const WorkflowTopologyEdgeSchema = z\n .object({\n sourceNodeId: z.string().min(1),\n targetNodeId: z.string().min(1),\n condition: z.string().optional(),\n })\n .strict();\nexport const WorkflowTopologyCallSchema = z\n .object({\n sourceNodeId: z.string().min(1),\n targetWorkflowId: z.string().min(1),\n })\n .strict();\nexport const WorkflowTopologyTransitionSchema = z\n .object({\n sourceNodeId: z.string().min(1).optional(),\n targetWorkflowId: z.string().min(1),\n condition: z.string().optional(),\n intent: z.string().optional(),\n kind: z.enum([\"call\", \"handoff\"]).optional(),\n })\n .strict();\nexport const EnsureWorkflowTopologyRequestSchema = z\n .object({\n schemaVersion: z.literal(1),\n environment: z.string().min(1),\n service: TelemetryServiceSchema,\n workflow: z\n .object({\n id: z.string().min(1),\n declaredVersion: z.string().min(1),\n description: z.string().optional(),\n tags: z.array(z.string()).optional(),\n topologyHash: z.string().regex(/^[a-f0-9]{64}$/),\n nodes: z.array(WorkflowTopologyNodeSchema),\n edges: z.array(WorkflowTopologyEdgeSchema),\n transitions: z.array(WorkflowTopologyTransitionSchema).optional(),\n calls: z.array(WorkflowTopologyCallSchema).optional(),\n })\n .strict(),\n })\n .strict();\nexport const EnsureWorkflowTopologyResponseSchema = z\n .object({ workflowRevisionId: z.string().min(1), created: z.boolean() })\n .strict();\nexport const TelemetryEventTypeSchema = z.enum(TELEMETRY_EVENT_TYPES);\nexport const TelemetryEventSchema = z\n .object({\n schemaVersion: z.literal(1),\n eventId: z.string().min(1),\n occurredAt: z.string().datetime({ offset: true }),\n environment: z.string().min(1),\n service: TelemetryServiceSchema,\n correlation: z\n .object({\n invocationId: z.string().optional(),\n parentInvocationId: z.string().optional(),\n branchId: z.string().optional(),\n traceId: z.string().optional(),\n spanId: z.string().optional(),\n parentSpanId: z.string().optional(),\n runId: z.string().min(1),\n sessionId: z.string().optional(),\n workflowId: z.string().min(1),\n workflowRevisionId: z.string().optional(),\n topologyHash: z\n .string()\n .regex(/^[a-f0-9]{64}$/)\n .optional(),\n nodeId: z.string().optional(),\n })\n .strict(),\n context: z\n .object({\n userId: z.string().optional(),\n tenantId: z.string().optional(),\n tags: z.array(z.string()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .strict()\n .optional(),\n type: TelemetryEventTypeSchema,\n payload: z.record(z.string(), z.unknown()),\n })\n .strict();\nexport const TelemetryEventBatchSchema = z\n .object({ events: z.array(TelemetryEventSchema).min(1) })\n .strict();\nexport const TelemetryEventBatchResponseSchema = z\n .object({\n accepted: z.number().int().nonnegative(),\n inserted: z.number().int().nonnegative(),\n duplicates: z.number().int().nonnegative(),\n })\n .strict();\nexport const TelemetryPricingSourceSchema = z.enum([\n \"sdk\",\n \"provider\",\n \"custom\",\n \"project-rate-card\",\n \"default-rate-card\",\n]);\nexport const TelemetryPricingUnitSchema = z.enum([\n \"token\",\n \"character\",\n \"request\",\n \"image\",\n \"audio_second\",\n \"audio_minute\",\n \"video_second\",\n \"video_minute\",\n \"second\",\n \"minute\",\n \"custom\",\n]);\nexport const TelemetryPricingUsageTypeSchema = z.enum([\n \"input\",\n \"output\",\n \"reasoning\",\n \"cache_read\",\n \"cache_write\",\n \"embedding\",\n \"image_input\",\n \"image_output\",\n \"audio_input\",\n \"audio_output\",\n \"video_input\",\n \"video_output\",\n \"request\",\n \"custom\",\n]);\nexport const TelemetryUsageItemSchema = z\n .object({\n usageType: TelemetryPricingUsageTypeSchema,\n quantity: z.number().nonnegative(),\n unit: TelemetryPricingUnitSchema,\n label: z.string().optional(),\n })\n .strict();\nexport const TelemetryUnitPriceSchema = z\n .object({\n usageType: TelemetryPricingUsageTypeSchema,\n unit: TelemetryPricingUnitSchema,\n unitQuantity: z.number().positive().default(1),\n priceMicros: z.number().int().nonnegative(),\n label: z.string().optional(),\n })\n .strict();\nexport const TelemetryPricingLineItemSchema = z\n .object({\n usageType: TelemetryPricingUsageTypeSchema,\n quantity: z.number().nonnegative(),\n unit: TelemetryPricingUnitSchema,\n unitQuantity: z.number().positive().default(1),\n unitPriceMicros: z.number().int().nonnegative().optional(),\n totalCostMicros: z.number().int().nonnegative().optional(),\n label: z.string().optional(),\n })\n .strict()\n .refine(\n (value) =>\n value.totalCostMicros !== undefined ||\n value.unitPriceMicros !== undefined,\n \"line item requires totalCostMicros or unitPriceMicros\",\n );\nexport const TelemetryPricingHintSchema = z\n .object({\n source: TelemetryPricingSourceSchema.extract([\"sdk\", \"provider\", \"custom\"]),\n currency: z.string().min(3).max(12).default(\"USD\"),\n actualCostMicros: z.number().int().nonnegative().optional(),\n lineItems: z.array(TelemetryPricingLineItemSchema).optional(),\n unitPrices: z.array(TelemetryUnitPriceSchema).optional(),\n usageItems: z.array(TelemetryUsageItemSchema).optional(),\n pricingRef: z.string().min(1).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .strict();\nexport type KortyxTelemetryService = z.infer<typeof TelemetryServiceSchema>;\nexport type KortyxWorkflowTopologyNode = z.infer<\n typeof WorkflowTopologyNodeSchema\n>;\nexport type KortyxWorkflowTopologyEdge = z.infer<\n typeof WorkflowTopologyEdgeSchema\n>;\nexport type KortyxWorkflowTopologyTransition = z.infer<\n typeof WorkflowTopologyTransitionSchema\n>;\nexport type EnsureWorkflowTopologyRequest = z.infer<\n typeof EnsureWorkflowTopologyRequestSchema\n>;\nexport type EnsureWorkflowTopologyResponse = z.infer<\n typeof EnsureWorkflowTopologyResponseSchema\n>;\nexport type KortyxTelemetryEventType = z.infer<typeof TelemetryEventTypeSchema>;\nexport type KortyxTelemetryEvent = z.infer<typeof TelemetryEventSchema>;\nexport type TelemetryEventBatch = z.infer<typeof TelemetryEventBatchSchema>;\nexport type TelemetryEventBatchResponse = z.infer<\n typeof TelemetryEventBatchResponseSchema\n>;\nexport type TelemetryPricingSource = z.infer<\n typeof TelemetryPricingSourceSchema\n>;\nexport type TelemetryPricingUnit = z.infer<typeof TelemetryPricingUnitSchema>;\nexport type TelemetryPricingUsageType = z.infer<\n typeof TelemetryPricingUsageTypeSchema\n>;\nexport type TelemetryUsageItem = z.infer<typeof TelemetryUsageItemSchema>;\nexport type TelemetryUnitPrice = z.infer<typeof TelemetryUnitPriceSchema>;\nexport type TelemetryPricingLineItem = z.infer<\n typeof TelemetryPricingLineItemSchema\n>;\nexport type TelemetryPricingHint = z.infer<typeof TelemetryPricingHintSchema>;\n\nexport const StudioRunStatusSchema = z.enum([\n \"running\",\n \"completed\",\n \"interrupted\",\n \"incomplete\",\n \"failed\",\n \"cancelled\",\n]);\nexport const STUDIO_TIME_RANGES = [\n \"Last hour\",\n \"24 hours\",\n \"7 days\",\n \"30 days\",\n \"All time\",\n \"Custom range\",\n] as const;\nexport const StudioTimeRangeSchema = z.enum(STUDIO_TIME_RANGES);\nexport const StudioTimeRangeQuerySchema = z\n .object({\n range: StudioTimeRangeSchema.optional(),\n startedAfter: z.string().optional(),\n startedBefore: z.string().optional(),\n })\n .strict();\nexport const StudioTimeRangeContextSchema = z\n .object({\n range: StudioTimeRangeSchema,\n startedAfter: z.string().datetime({ offset: true }).nullable(),\n startedBefore: z.string().datetime({ offset: true }).nullable(),\n })\n .strict();\n\nexport type StudioTimeRangeResolution =\n | {\n ok: true;\n value: z.infer<typeof StudioTimeRangeContextSchema>;\n }\n | {\n ok: false;\n error: string;\n };\n\nconst STUDIO_TIME_RANGE_MILLISECONDS: Partial<\n Record<z.infer<typeof StudioTimeRangeSchema>, number>\n> = {\n \"Last hour\": 60 * 60 * 1_000,\n \"24 hours\": 24 * 60 * 60 * 1_000,\n \"7 days\": 7 * 24 * 60 * 60 * 1_000,\n \"30 days\": 30 * 24 * 60 * 60 * 1_000,\n};\n\nconst parseIsoBoundary = (\n value: string | undefined,\n label: string,\n): { ok: true; date: Date } | { ok: false; error: string } => {\n if (!value) {\n return { ok: false, error: `${label} is required for a custom range.` };\n }\n if (!/(?:Z|[+-]\\d{2}:\\d{2})$/.test(value)) {\n return {\n ok: false,\n error: `${label} must include an explicit UTC offset.`,\n };\n }\n const date = new Date(value);\n return Number.isFinite(date.getTime())\n ? { ok: true, date }\n : { ok: false, error: `${label} must be a valid ISO date and time.` };\n};\n\n/**\n * Resolves Studio time filters into absolute UTC boundaries.\n *\n * Relative presets are evaluated against `now`. Custom boundaries must be\n * complete ISO timestamps with an explicit offset and are normalized to UTC.\n */\nexport const resolveStudioTimeRange = (\n input: {\n range?: string | undefined;\n startedAfter?: string | undefined;\n startedBefore?: string | undefined;\n },\n now = new Date(),\n): StudioTimeRangeResolution => {\n const parsedRange = StudioTimeRangeSchema.safeParse(\n input.range || \"24 hours\",\n );\n if (!parsedRange.success) {\n return {\n ok: false,\n error: `Unknown time range \"${input.range}\".`,\n };\n }\n if (!Number.isFinite(now.getTime())) {\n return { ok: false, error: \"The time range reference date is invalid.\" };\n }\n const range = parsedRange.data;\n if (range === \"All time\") {\n return {\n ok: true,\n value: { range, startedAfter: null, startedBefore: null },\n };\n }\n if (range === \"Custom range\") {\n const after = parseIsoBoundary(input.startedAfter, \"Start time\");\n if (\"error\" in after) return { ok: false, error: after.error };\n const before = parseIsoBoundary(input.startedBefore, \"End time\");\n if (\"error\" in before) return { ok: false, error: before.error };\n if (after.date.getTime() >= before.date.getTime()) {\n return {\n ok: false,\n error: \"Start time must be before end time.\",\n };\n }\n return {\n ok: true,\n value: {\n range,\n startedAfter: after.date.toISOString(),\n startedBefore: before.date.toISOString(),\n },\n };\n }\n const duration = STUDIO_TIME_RANGE_MILLISECONDS[range];\n if (!duration) {\n return { ok: false, error: `Unknown time range \"${range}\".` };\n }\n return {\n ok: true,\n value: {\n range,\n startedAfter: new Date(now.getTime() - duration).toISOString(),\n startedBefore: now.toISOString(),\n },\n };\n};\nexport const StudioInterruptStatusSchema = z.enum([\n \"pending\",\n \"resolved\",\n \"expired\",\n \"failed\",\n \"cancelled\",\n]);\nexport const resolveStudioInterruptStatus = (\n input: {\n status: z.infer<typeof StudioInterruptStatusSchema>;\n expiresAt?: string | null | undefined;\n },\n now: Date | number = Date.now(),\n): z.infer<typeof StudioInterruptStatusSchema> => {\n if (input.status !== \"pending\" || !input.expiresAt) return input.status;\n const expiresAt = Date.parse(input.expiresAt);\n const nowMs = typeof now === \"number\" ? now : now.getTime();\n return Number.isFinite(expiresAt) &&\n Number.isFinite(nowMs) &&\n expiresAt <= nowMs\n ? \"expired\"\n : input.status;\n};\nexport const StudioInterruptTypeSchema = z.enum([\n \"choice\",\n \"multi-choice\",\n \"text\",\n \"unknown\",\n]);\nexport const StudioInterruptInteractionModeSchema = z.enum([\n \"static-options\",\n \"dynamic-picker\",\n \"freeform\",\n \"unknown\",\n]);\nexport const StudioInterruptOptionSchema = z\n .object({\n id: z.string().min(1),\n label: z.string().min(1),\n description: z.string().nullable(),\n })\n .strict();\nexport const StudioResumeOutcomeSchema = z.enum([\n \"resumed\",\n \"resume failed\",\n \"expired before resume\",\n \"cancelled\",\n]);\nexport const StudioWorkflowHealthSchema = z.enum([\n \"unknown\",\n \"healthy\",\n \"degraded\",\n \"failing\",\n \"idle\",\n]);\nexport const StudioPricingStatusSchema = z.enum([\n \"priced\",\n \"unpriced\",\n \"unknown\",\n]);\nexport const StudioPricingSourceSchema =\n TelemetryPricingSourceSchema.nullable();\nexport const StudioChangeResourceSchema = z.enum([\n \"runs\",\n \"sessions\",\n \"interrupts\",\n]);\nexport const StudioChangeSchema = z\n .object({\n schemaVersion: z.literal(1),\n changeId: z.string().min(1),\n emittedAt: z.string().datetime({ offset: true }),\n organizationId: z.string().min(1),\n projectId: z.string().min(1),\n resources: z.array(StudioChangeResourceSchema).min(1),\n })\n .strict();\nexport const StudioMetricSchema = z\n .object({\n runCount: z.number().int().nonnegative(),\n successRate: z.number().min(0).max(100).nullable(),\n errorRate: z.number().min(0).max(100).nullable(),\n retryCount: z.number().int().nonnegative().nullable(),\n interruptRate: z.number().min(0).max(100).nullable(),\n p50DurationMs: z.number().nonnegative().nullable(),\n p95DurationMs: z.number().nonnegative().nullable(),\n averageTokens: z.number().nonnegative().nullable(),\n averageCost: z.number().nonnegative().nullable(),\n currency: z.string().nullable(),\n })\n .strict();\nexport const StudioRunSchema = z\n .object({\n id: z.string().min(1),\n callerNodeId: z.string().optional(),\n parentRunId: z.string().optional(),\n parentWorkflowId: z.string().optional(),\n invocationId: z.string().optional(),\n branchId: z.string().optional(),\n callId: z.string().optional(),\n status: StudioRunStatusSchema,\n startedAt: z.string().datetime({ offset: true }),\n endedAt: z.string().datetime({ offset: true }).nullable(),\n workflowId: z.string().min(1),\n workflowIds: z.array(z.string().min(1)),\n workflowRefs: z.array(\n z\n .object({\n workflowId: z.string().min(1),\n workflowRevisionId: z.string().nullable(),\n declaredVersion: z.string().nullable(),\n })\n .strict(),\n ),\n workflowRevisionId: z.string().nullable(),\n declaredVersion: z.string().nullable(),\n transitionIds: z.array(z.string().min(1)),\n path: z.array(z.string()),\n sessionId: z.string().nullable(),\n provider: z.string().nullable(),\n model: z.string().nullable(),\n models: z.array(z.string()),\n durationMs: z.number().nonnegative().nullable(),\n tokens: z.number().int().nonnegative().nullable(),\n cost: z.number().nonnegative().nullable(),\n pricingStatus: StudioPricingStatusSchema,\n pricingSource: StudioPricingSourceSchema,\n currency: z.string().nullable(),\n result: z.string().nullable(),\n environment: z.string().min(1),\n userId: z.string().nullable(),\n tenantId: z.string().nullable(),\n hasTool: z.boolean(),\n hasRetry: z.boolean(),\n interruptNodeId: z.string().nullable(),\n interruptId: z.string().nullable().optional(),\n interruptStatus: StudioInterruptStatusSchema.nullable().optional(),\n interruptExpiresAt: z\n .string()\n .datetime({ offset: true })\n .nullable()\n .optional(),\n })\n .strict();\nexport const StudioSessionSchema = z\n .object({\n id: z.string().min(1),\n status: StudioRunStatusSchema,\n lastActivityAt: z.string().datetime({ offset: true }),\n workflowIds: z.array(z.string()),\n workflowCount: z.number().int().nonnegative(),\n activeWorkflowId: z.string().nullable(),\n activeVersion: z.string().nullable(),\n userId: z.string().nullable(),\n tenantId: z.string().nullable(),\n runs: z.number().int().nonnegative(),\n succeeded: z.number().int().nonnegative(),\n failed: z.number().int().nonnegative(),\n interrupted: z.number().int().nonnegative(),\n checkpoints: z.number().int().nonnegative(),\n hasFork: z.boolean(),\n durationMs: z.number().nonnegative().nullable(),\n tokens: z.number().int().nonnegative().nullable(),\n cost: z.number().nonnegative().nullable(),\n pricingStatus: StudioPricingStatusSchema,\n pricingSource: StudioPricingSourceSchema,\n currency: z.string().nullable(),\n latestResult: z.string().nullable(),\n latestError: z.string().nullable(),\n pendingInterruptId: z.string().nullable(),\n interruptStatus: StudioInterruptStatusSchema.nullable().optional(),\n interruptExpiresAt: z\n .string()\n .datetime({ offset: true })\n .nullable()\n .optional(),\n providers: z.array(z.string()),\n models: z.array(z.string()),\n tags: z.array(z.string()),\n environment: z.string().min(1),\n })\n .strict();\nexport const StudioInterruptSchema = z\n .object({\n id: z.string().min(1),\n status: StudioInterruptStatusSchema,\n type: StudioInterruptTypeSchema,\n interactionMode: StudioInterruptInteractionModeSchema,\n schemaId: z.string().nullable(),\n schemaVersion: z.string().nullable(),\n createdAt: z.string().datetime({ offset: true }),\n resolvedAt: z.string().datetime({ offset: true }).nullable(),\n expiresAt: z.string().datetime({ offset: true }).nullable(),\n question: z.string().nullable(),\n contentCaptured: z.boolean(),\n optionCount: z.number().int().nonnegative().nullable(),\n options: z.array(StudioInterruptOptionSchema).nullable(),\n workflowId: z.string().min(1),\n nodeId: z.string().nullable(),\n sessionId: z.string().nullable(),\n userId: z.string().nullable(),\n tenantId: z.string().nullable(),\n response: z.string().nullable(),\n responseCaptured: z.boolean(),\n resumeOutcome: StudioResumeOutcomeSchema.nullable(),\n resumeError: z.string().nullable(),\n runId: z.string().min(1),\n resumeToken: z.string().nullable(),\n resolvedBy: z.string().nullable(),\n environment: z.string().min(1),\n })\n .strict();\nexport const StudioDetailEventSchema = z\n .object({\n id: z.string().min(1),\n type: TelemetryEventTypeSchema,\n occurredAt: z.string().datetime({ offset: true }),\n receivedAt: z.string().datetime({ offset: true }),\n environment: z.string().min(1),\n serviceName: z.string().min(1),\n deploymentRef: z.string().nullable(),\n traceId: z.string().nullable(),\n spanId: z.string().nullable(),\n parentSpanId: z.string().nullable(),\n runId: z.string().min(1),\n sessionId: z.string().nullable(),\n workflowId: z.string().min(1),\n workflowRevisionId: z.string().nullable(),\n nodeId: z.string().nullable(),\n userId: z.string().nullable(),\n tenantId: z.string().nullable(),\n tags: z.array(z.string()),\n metadata: z.record(z.string(), z.unknown()).nullable(),\n payload: z.record(z.string(), z.unknown()),\n })\n .strict();\nexport const StudioWorkflowNodeSchema = z\n .object({\n id: z.string().min(1),\n label: z.string(),\n type: z.string().nullable(),\n state: z\n .enum([\"healthy\", \"warning\", \"failed\", \"interrupted\", \"retried\"])\n .nullable(),\n provider: z.string().nullable(),\n model: z.string().nullable(),\n metrics: StudioMetricSchema,\n })\n .strict();\nexport const StudioWorkflowInternalEdgeSchema = z\n .object({\n id: z.string().min(1),\n source: z.string().min(1),\n target: z.string().min(1),\n condition: z.string().nullable(),\n })\n .strict();\nexport const StudioWorkflowTransitionSchema = z\n .object({\n kind: z.enum([\"call\", \"handoff\"]).optional(),\n id: z.string().min(1),\n sourceWorkflowId: z.string().min(1),\n sourceNodeId: z.string().nullable(),\n targetWorkflowId: z.string().min(1),\n condition: z.string().nullable(),\n volume: z.number().int().nonnegative(),\n successRate: z.number().min(0).max(100).nullable(),\n medianDurationMs: z.number().nonnegative().nullable(),\n errorRate: z.number().min(0).max(100).nullable(),\n })\n .strict();\nexport const StudioWorkflowSchema = z\n .object({\n id: z.string().min(1),\n name: z.string().min(1),\n description: z.string().nullable(),\n versions: z.array(z.string()),\n activeVersion: z.string().nullable(),\n activeRevisionId: z.string().nullable(),\n health: StudioWorkflowHealthSchema,\n tags: z.array(z.string()),\n lastActivityAt: z.string().datetime({ offset: true }).nullable(),\n metrics: StudioMetricSchema,\n nodes: z.array(StudioWorkflowNodeSchema),\n internalEdges: z.array(StudioWorkflowInternalEdgeSchema),\n })\n .strict();\nexport const StudioRunsResponseSchema = z\n .object({\n runs: z.array(StudioRunSchema),\n totalCount: z.number().int().nonnegative(),\n })\n .strict();\nexport const StudioSessionsResponseSchema = z\n .object({\n sessions: z.array(StudioSessionSchema),\n totalCount: z.number().int().nonnegative(),\n })\n .strict();\nexport const StudioInterruptsResponseSchema = z\n .object({\n interrupts: z.array(StudioInterruptSchema),\n totalCount: z.number().int().nonnegative(),\n })\n .strict();\nexport const StudioRunDetailResponseSchema = z\n .object({\n run: StudioRunSchema,\n events: z.array(StudioDetailEventSchema),\n session: StudioSessionSchema.nullable(),\n interrupts: z.array(StudioInterruptSchema),\n updatedAt: z.string().datetime({ offset: true }),\n })\n .strict();\nexport const StudioSessionDetailResponseSchema = z\n .object({\n session: StudioSessionSchema,\n runs: z.array(StudioRunSchema),\n events: z.array(StudioDetailEventSchema),\n interrupts: z.array(StudioInterruptSchema),\n updatedAt: z.string().datetime({ offset: true }),\n })\n .strict();\nexport const StudioInterruptDetailResponseSchema = z\n .object({\n interrupt: StudioInterruptSchema,\n events: z.array(StudioDetailEventSchema),\n run: StudioRunSchema.nullable(),\n session: StudioSessionSchema.nullable(),\n updatedAt: z.string().datetime({ offset: true }),\n })\n .strict();\nexport const StudioWorkflowsResponseSchema = z\n .object({\n workflows: z.array(StudioWorkflowSchema),\n observedCalls: z\n .array(\n StudioWorkflowTransitionSchema.extend({\n runId: z.string(),\n invocationId: z.string(),\n branchId: z.string(),\n }),\n )\n .optional(),\n transitions: z.array(StudioWorkflowTransitionSchema),\n cohort: StudioTimeRangeContextSchema.extend({\n workflowId: z.string().nullable(),\n version: z.string().nullable(),\n }).strict(),\n })\n .strict();\nexport const StudioCatalogsResponseSchema = z\n .object({\n environments: z.array(z.string()),\n providers: z.array(z.string()),\n models: z.array(z.string()),\n workflows: z.array(z.string()),\n tags: z.array(z.string()),\n })\n .strict();\nexport const StudioContextResponseSchema = z\n .object({\n organization: z\n .object({\n name: z.string().min(1),\n })\n .strict(),\n project: z\n .object({\n name: z.string().min(1),\n })\n .strict(),\n environments: z.array(z.string()),\n apiKey: z\n .object({\n mode: z.enum([\"test\", \"live\"]),\n scopes: z.array(z.string()),\n })\n .strict(),\n api: z\n .object({\n status: z.literal(\"ok\"),\n service: z.literal(\"kortyx-api\"),\n version: z.string().min(1),\n })\n .strict(),\n })\n .strict();\nexport type StudioRunStatus = z.infer<typeof StudioRunStatusSchema>;\nexport type StudioTimeRange = z.infer<typeof StudioTimeRangeSchema>;\nexport type StudioTimeRangeContext = z.infer<\n typeof StudioTimeRangeContextSchema\n>;\nexport type StudioInterruptStatus = z.infer<typeof StudioInterruptStatusSchema>;\nexport type StudioInterruptType = z.infer<typeof StudioInterruptTypeSchema>;\nexport type StudioInterruptInteractionMode = z.infer<\n typeof StudioInterruptInteractionModeSchema\n>;\nexport type StudioInterruptOption = z.infer<typeof StudioInterruptOptionSchema>;\nexport type StudioResumeOutcome = z.infer<typeof StudioResumeOutcomeSchema>;\nexport type StudioWorkflowHealth = z.infer<typeof StudioWorkflowHealthSchema>;\nexport type StudioPricingStatus = z.infer<typeof StudioPricingStatusSchema>;\nexport type StudioPricingSource = z.infer<typeof StudioPricingSourceSchema>;\nexport type StudioChangeResource = z.infer<typeof StudioChangeResourceSchema>;\nexport type StudioChange = z.infer<typeof StudioChangeSchema>;\nexport type StudioMetric = z.infer<typeof StudioMetricSchema>;\nexport type StudioRun = z.infer<typeof StudioRunSchema>;\nexport type StudioSession = z.infer<typeof StudioSessionSchema>;\nexport type StudioInterrupt = z.infer<typeof StudioInterruptSchema>;\nexport type StudioWorkflowNode = z.infer<typeof StudioWorkflowNodeSchema>;\nexport type StudioWorkflowInternalEdge = z.infer<\n typeof StudioWorkflowInternalEdgeSchema\n>;\nexport type StudioWorkflowTransition = z.infer<\n typeof StudioWorkflowTransitionSchema\n>;\nexport type StudioWorkflow = z.infer<typeof StudioWorkflowSchema>;\nexport type StudioRunsResponse = z.infer<typeof StudioRunsResponseSchema>;\nexport type StudioSessionsResponse = z.infer<\n typeof StudioSessionsResponseSchema\n>;\nexport type StudioInterruptsResponse = z.infer<\n typeof StudioInterruptsResponseSchema\n>;\nexport type StudioDetailEvent = z.infer<typeof StudioDetailEventSchema>;\nexport type StudioRunDetailResponse = z.infer<\n typeof StudioRunDetailResponseSchema\n>;\nexport type StudioSessionDetailResponse = z.infer<\n typeof StudioSessionDetailResponseSchema\n>;\nexport type StudioInterruptDetailResponse = z.infer<\n typeof StudioInterruptDetailResponseSchema\n>;\nexport type StudioWorkflowsResponse = z.infer<\n typeof StudioWorkflowsResponseSchema\n>;\nexport type StudioCatalogsResponse = z.infer<\n typeof StudioCatalogsResponseSchema\n>;\nexport type StudioContextResponse = z.infer<typeof StudioContextResponseSchema>;\n\nexport {\n projectWorkflowCalls,\n type StudioWorkflowCall,\n} from \"./workflow-calls\";\n","import type { StudioDetailEvent } from \"./index\";\n\nexport type StudioWorkflowCall = {\n id: string;\n invocationId: string;\n branchId: string;\n parentInvocationId: string | null;\n callId: string;\n callerNodeId: string;\n callerNodeExecutionId: string;\n sourceWorkflowId: string;\n targetWorkflowId: string;\n targetVersion: string | null;\n status:\n | \"running\"\n | \"interrupted\"\n | \"completed\"\n | \"failed\"\n | \"incomplete\"\n | \"cancelled\";\n startedAt: string;\n endedAt: string | null;\n activeMs: number;\n waitMs: number;\n attempts: number;\n reused: number;\n inherited: boolean;\n sourceRunId: string | null;\n input?: unknown;\n output?: unknown;\n inputOmitted?: unknown;\n outputOmitted?: unknown;\n leaf: { workflowId?: string; nodeId?: string; invocationId?: string } | null;\n events: StudioDetailEvent[];\n};\nconst str = (v: unknown, fallback = \"\") =>\n typeof v === \"string\" ? v : fallback;\n/** Logical calls are ordered by persisted sequence, independently within each branch. */\nexport function projectWorkflowCalls(\n events: StudioDetailEvent[],\n): StudioWorkflowCall[] {\n const groups = new Map<string, StudioDetailEvent[]>();\n for (const event of events) {\n if (\n !event.type.startsWith(\"workflow.call.\") ||\n !str(event.payload.invocationId) ||\n !str(event.payload.targetWorkflowId)\n )\n continue;\n const key = `${event.runId}:${str(event.payload.branchId, event.runId)}:${event.payload.invocationId}`;\n const group = groups.get(key) ?? [];\n if (!group.some((existing) => existing.id === event.id)) group.push(event);\n groups.set(key, group);\n }\n return [...groups.entries()]\n .map(([id, group]) => {\n group.sort(\n (a, b) =>\n Number(a.payload.sequence ?? 0) - Number(b.payload.sequence ?? 0) ||\n a.occurredAt.localeCompare(b.occurredAt) ||\n a.id.localeCompare(b.id),\n );\n const first = group[0]!;\n const p = first.payload;\n const call: StudioWorkflowCall = {\n id,\n invocationId: str(p.invocationId),\n branchId: str(p.branchId, first.runId),\n parentInvocationId: str(p.parentInvocationId) || null,\n callId: str(p.callId),\n callerNodeId: str(p.callerNodeId),\n callerNodeExecutionId: str(p.callerNodeExecutionId),\n sourceWorkflowId: str(p.sourceWorkflowId, first.workflowId),\n targetWorkflowId: str(p.targetWorkflowId),\n targetVersion: str(p.targetVersion) || null,\n status: \"incomplete\",\n startedAt: first.occurredAt,\n endedAt: null,\n activeMs: 0,\n waitMs: 0,\n attempts: 0,\n reused: 0,\n inherited: false,\n sourceRunId: null,\n leaf: null,\n events: group,\n };\n let active: number | null = null;\n let waiting: number | null = null;\n for (const event of group) {\n const at = Date.parse(event.occurredAt);\n const status = event.type.slice(\"workflow.call.\".length);\n for (const side of [\n \"input\",\n \"output\",\n \"inputOmitted\",\n \"outputOmitted\",\n ] as const)\n if (side in event.payload) call[side] = event.payload[side];\n if (status === \"restored\") {\n call.inherited = true;\n call.sourceRunId = str(event.payload.sourceRunId) || null;\n call.status =\n event.payload.status === \"completed\"\n ? \"completed\"\n : event.payload.status === \"failed\"\n ? \"failed\"\n : \"interrupted\";\n if (call.status === \"interrupted\") waiting = at;\n } else if (status === \"started\" || status === \"resumed\") {\n if (waiting !== null) call.waitMs += Math.max(0, at - waiting);\n waiting = null;\n active = at;\n call.attempts++;\n call.status = \"running\";\n call.endedAt = null;\n } else if (status === \"reused\") {\n call.reused++;\n call.status = \"completed\";\n } else if (\n status === \"suspended\" ||\n status === \"completed\" ||\n status === \"failed\"\n ) {\n if (active !== null) call.activeMs += Math.max(0, at - active);\n active = null;\n call.status = status === \"suspended\" ? \"interrupted\" : status;\n if (status === \"suspended\") {\n waiting = at;\n const leaf = event.payload.leaf;\n if (leaf && typeof leaf === \"object\") {\n const value = leaf as Record<string, unknown>;\n call.leaf = {\n workflowId: str(value.workflowId),\n nodeId: str(value.nodeId),\n invocationId: str(value.invocationId),\n };\n }\n } else {\n call.endedAt = event.occurredAt;\n call.leaf = null;\n }\n }\n }\n const cancellation = events.find(\n (event) =>\n event.type === \"run.cancelled\" &&\n event.runId === first.runId &&\n (event.payload.branchId ?? event.runId) === call.branchId &&\n event.occurredAt >= (group.at(-1)?.occurredAt ?? first.occurredAt),\n );\n if (\n cancellation &&\n (call.status === \"interrupted\" || call.status === \"running\")\n ) {\n call.status = \"cancelled\";\n call.endedAt = cancellation.occurredAt;\n }\n return call;\n })\n .sort((a, b) => a.startedAt.localeCompare(b.startedAt));\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kortyx/telemetry-contracts",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "private": false,
5
5
  "description": "Shared wire contracts for Kortyx telemetry ingestion and Studio reads.",
6
6
  "license": "Apache-2.0",