@kortyx/telemetry-contracts 0.11.0 → 0.11.1

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,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.11.1](https://github.com/kortyx-io/kortyx/compare/telemetry-contracts-v0.11.0...telemetry-contracts-v0.11.1) (2026-09-21)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * preserve interrupt control flow and Studio compatibility ([#226](https://github.com/kortyx-io/kortyx/issues/226)) ([72ba7c2](https://github.com/kortyx-io/kortyx/commit/72ba7c2b9a467db0e54b5a4ab5844c8d7f895135))
9
+
3
10
  ## [0.11.0](https://github.com/kortyx-io/kortyx/compare/telemetry-contracts-v0.10.0...telemetry-contracts-v0.11.0) (2026-09-21)
4
11
 
5
12
 
package/dist/index.d.ts CHANGED
@@ -459,7 +459,10 @@ type StudioWorkflowCall = {
459
459
  /** Logical calls are ordered by persisted sequence, independently within each branch. */
460
460
  declare function projectWorkflowCalls(events: StudioDetailEvent[]): StudioWorkflowCall[];
461
461
 
462
- declare const TELEMETRY_EVENT_TYPES: readonly ["span.started", "span.ended", "span.failed", "error.reported", "generation.completed", "tool.started", "tool.completed", "tool.failed", "tool.denied", "tool.cancelled", "tool.reused", "tool.waiting", "tool.suspended", "response.completed", "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"];
462
+ /** Studio read API compatibility changes only when the wire protocol breaks. */
463
+ declare const STUDIO_API_PROTOCOL_VERSION = "1";
464
+
465
+ declare const TELEMETRY_EVENT_TYPES: readonly ["span.started", "span.ended", "span.failed", "error.reported", "generation.completed", "tool.started", "tool.completed", "tool.failed", "tool.denied", "tool.cancelled", "tool.reused", "tool.waiting", "tool.suspended", "response.completed", "interrupt.created", "interrupt.resolved", "interrupt.expired", "interrupt.cancelled", "run.cancelled", "run.limit_reached", "workflow.suspended", "workflow.resumed", "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"];
463
466
  declare const TelemetryServiceSchema: z.ZodObject<{
464
467
  name: z.ZodString;
465
468
  deploymentRef: z.ZodOptional<z.ZodString>;
@@ -608,6 +611,8 @@ declare const TelemetryEventTypeSchema: z.ZodEnum<{
608
611
  "interrupt.cancelled": "interrupt.cancelled";
609
612
  "run.cancelled": "run.cancelled";
610
613
  "run.limit_reached": "run.limit_reached";
614
+ "workflow.suspended": "workflow.suspended";
615
+ "workflow.resumed": "workflow.resumed";
611
616
  "workflow.transitioned": "workflow.transitioned";
612
617
  "workflow.call.started": "workflow.call.started";
613
618
  "workflow.call.suspended": "workflow.call.suspended";
@@ -670,6 +675,8 @@ declare const TelemetryEventSchema: z.ZodObject<{
670
675
  "interrupt.cancelled": "interrupt.cancelled";
671
676
  "run.cancelled": "run.cancelled";
672
677
  "run.limit_reached": "run.limit_reached";
678
+ "workflow.suspended": "workflow.suspended";
679
+ "workflow.resumed": "workflow.resumed";
673
680
  "workflow.transitioned": "workflow.transitioned";
674
681
  "workflow.call.started": "workflow.call.started";
675
682
  "workflow.call.suspended": "workflow.call.suspended";
@@ -735,6 +742,8 @@ declare const TelemetryEventBatchSchema: z.ZodObject<{
735
742
  "interrupt.cancelled": "interrupt.cancelled";
736
743
  "run.cancelled": "run.cancelled";
737
744
  "run.limit_reached": "run.limit_reached";
745
+ "workflow.suspended": "workflow.suspended";
746
+ "workflow.resumed": "workflow.resumed";
738
747
  "workflow.transitioned": "workflow.transitioned";
739
748
  "workflow.call.started": "workflow.call.started";
740
749
  "workflow.call.suspended": "workflow.call.suspended";
@@ -1112,7 +1121,7 @@ declare const StudioInterruptOptionSchema: z.ZodObject<{
1112
1121
  id: z.ZodString;
1113
1122
  label: z.ZodString;
1114
1123
  description: z.ZodNullable<z.ZodString>;
1115
- }, z.core.$strict>;
1124
+ }, z.core.$strip>;
1116
1125
  declare const StudioInterruptValueSchema: z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodArray<z.ZodUnknown>, z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1117
1126
  declare const StudioResumeOutcomeSchema: z.ZodEnum<{
1118
1127
  cancelled: "cancelled";
@@ -1169,7 +1178,7 @@ declare const StudioMetricSchema: z.ZodObject<{
1169
1178
  averageTokens: z.ZodNullable<z.ZodNumber>;
1170
1179
  averageCost: z.ZodNullable<z.ZodNumber>;
1171
1180
  currency: z.ZodNullable<z.ZodString>;
1172
- }, z.core.$strict>;
1181
+ }, z.core.$strip>;
1173
1182
  declare const StudioRunSchema: z.ZodObject<{
1174
1183
  id: z.ZodString;
1175
1184
  feedback: z.ZodOptional<z.ZodObject<{
@@ -1198,7 +1207,7 @@ declare const StudioRunSchema: z.ZodObject<{
1198
1207
  workflowId: z.ZodString;
1199
1208
  workflowRevisionId: z.ZodNullable<z.ZodString>;
1200
1209
  declaredVersion: z.ZodNullable<z.ZodString>;
1201
- }, z.core.$strict>>;
1210
+ }, z.core.$strip>>;
1202
1211
  workflowRevisionId: z.ZodNullable<z.ZodString>;
1203
1212
  declaredVersion: z.ZodNullable<z.ZodString>;
1204
1213
  transitionIds: z.ZodArray<z.ZodString>;
@@ -1239,7 +1248,7 @@ declare const StudioRunSchema: z.ZodObject<{
1239
1248
  expired: "expired";
1240
1249
  }>>>;
1241
1250
  interruptExpiresAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1242
- }, z.core.$strict>;
1251
+ }, z.core.$strip>;
1243
1252
  declare const StudioSessionSchema: z.ZodObject<{
1244
1253
  id: z.ZodString;
1245
1254
  status: z.ZodEnum<{
@@ -1294,7 +1303,7 @@ declare const StudioSessionSchema: z.ZodObject<{
1294
1303
  models: z.ZodArray<z.ZodString>;
1295
1304
  tags: z.ZodArray<z.ZodString>;
1296
1305
  environment: z.ZodString;
1297
- }, z.core.$strict>;
1306
+ }, z.core.$strip>;
1298
1307
  declare const StudioInterruptSchema: z.ZodObject<{
1299
1308
  afterResponseCompleted: z.ZodOptional<z.ZodBoolean>;
1300
1309
  id: z.ZodString;
@@ -1333,7 +1342,7 @@ declare const StudioInterruptSchema: z.ZodObject<{
1333
1342
  id: z.ZodString;
1334
1343
  label: z.ZodString;
1335
1344
  description: z.ZodNullable<z.ZodString>;
1336
- }, z.core.$strict>>>;
1345
+ }, z.core.$strip>>>;
1337
1346
  workflowId: z.ZodString;
1338
1347
  nodeId: z.ZodNullable<z.ZodString>;
1339
1348
  sessionId: z.ZodNullable<z.ZodString>;
@@ -1353,42 +1362,10 @@ declare const StudioInterruptSchema: z.ZodObject<{
1353
1362
  resumeToken: z.ZodNullable<z.ZodString>;
1354
1363
  resolvedBy: z.ZodNullable<z.ZodString>;
1355
1364
  environment: z.ZodString;
1356
- }, z.core.$strict>;
1365
+ }, z.core.$strip>;
1357
1366
  declare const StudioDetailEventSchema: z.ZodObject<{
1358
1367
  id: z.ZodString;
1359
- type: z.ZodEnum<{
1360
- "span.started": "span.started";
1361
- "span.ended": "span.ended";
1362
- "span.failed": "span.failed";
1363
- "error.reported": "error.reported";
1364
- "generation.completed": "generation.completed";
1365
- "tool.started": "tool.started";
1366
- "tool.completed": "tool.completed";
1367
- "tool.failed": "tool.failed";
1368
- "tool.denied": "tool.denied";
1369
- "tool.cancelled": "tool.cancelled";
1370
- "tool.reused": "tool.reused";
1371
- "tool.waiting": "tool.waiting";
1372
- "tool.suspended": "tool.suspended";
1373
- "response.completed": "response.completed";
1374
- "interrupt.created": "interrupt.created";
1375
- "interrupt.resolved": "interrupt.resolved";
1376
- "interrupt.expired": "interrupt.expired";
1377
- "interrupt.cancelled": "interrupt.cancelled";
1378
- "run.cancelled": "run.cancelled";
1379
- "run.limit_reached": "run.limit_reached";
1380
- "workflow.transitioned": "workflow.transitioned";
1381
- "workflow.call.started": "workflow.call.started";
1382
- "workflow.call.suspended": "workflow.call.suspended";
1383
- "workflow.call.resumed": "workflow.call.resumed";
1384
- "workflow.call.completed": "workflow.call.completed";
1385
- "workflow.call.failed": "workflow.call.failed";
1386
- "workflow.call.reused": "workflow.call.reused";
1387
- "workflow.call.restored": "workflow.call.restored";
1388
- "session.checkpointed": "session.checkpointed";
1389
- "session.forked": "session.forked";
1390
- "session.rolled_back": "session.rolled_back";
1391
- }>;
1368
+ type: z.ZodString;
1392
1369
  occurredAt: z.ZodString;
1393
1370
  receivedAt: z.ZodString;
1394
1371
  environment: z.ZodString;
@@ -1407,7 +1384,7 @@ declare const StudioDetailEventSchema: z.ZodObject<{
1407
1384
  tags: z.ZodArray<z.ZodString>;
1408
1385
  metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1409
1386
  payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1410
- }, z.core.$strict>;
1387
+ }, z.core.$strip>;
1411
1388
  declare const StudioWorkflowNodeSchema: z.ZodObject<{
1412
1389
  tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
1413
1390
  name: z.ZodString;
@@ -1466,14 +1443,14 @@ declare const StudioWorkflowNodeSchema: z.ZodObject<{
1466
1443
  averageTokens: z.ZodNullable<z.ZodNumber>;
1467
1444
  averageCost: z.ZodNullable<z.ZodNumber>;
1468
1445
  currency: z.ZodNullable<z.ZodString>;
1469
- }, z.core.$strict>;
1470
- }, z.core.$strict>;
1446
+ }, z.core.$strip>;
1447
+ }, z.core.$strip>;
1471
1448
  declare const StudioWorkflowInternalEdgeSchema: z.ZodObject<{
1472
1449
  id: z.ZodString;
1473
1450
  source: z.ZodString;
1474
1451
  target: z.ZodString;
1475
1452
  condition: z.ZodNullable<z.ZodString>;
1476
- }, z.core.$strict>;
1453
+ }, z.core.$strip>;
1477
1454
  declare const StudioWorkflowTransitionSchema: z.ZodObject<{
1478
1455
  kind: z.ZodOptional<z.ZodEnum<{
1479
1456
  call: "call";
@@ -1488,7 +1465,7 @@ declare const StudioWorkflowTransitionSchema: z.ZodObject<{
1488
1465
  successRate: z.ZodNullable<z.ZodNumber>;
1489
1466
  medianDurationMs: z.ZodNullable<z.ZodNumber>;
1490
1467
  errorRate: z.ZodNullable<z.ZodNumber>;
1491
- }, z.core.$strict>;
1468
+ }, z.core.$strip>;
1492
1469
  declare const StudioWorkflowSchema: z.ZodObject<{
1493
1470
  id: z.ZodString;
1494
1471
  name: z.ZodString;
@@ -1516,7 +1493,7 @@ declare const StudioWorkflowSchema: z.ZodObject<{
1516
1493
  averageTokens: z.ZodNullable<z.ZodNumber>;
1517
1494
  averageCost: z.ZodNullable<z.ZodNumber>;
1518
1495
  currency: z.ZodNullable<z.ZodString>;
1519
- }, z.core.$strict>;
1496
+ }, z.core.$strip>;
1520
1497
  nodes: z.ZodArray<z.ZodObject<{
1521
1498
  tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
1522
1499
  name: z.ZodString;
@@ -1575,15 +1552,15 @@ declare const StudioWorkflowSchema: z.ZodObject<{
1575
1552
  averageTokens: z.ZodNullable<z.ZodNumber>;
1576
1553
  averageCost: z.ZodNullable<z.ZodNumber>;
1577
1554
  currency: z.ZodNullable<z.ZodString>;
1578
- }, z.core.$strict>;
1579
- }, z.core.$strict>>;
1555
+ }, z.core.$strip>;
1556
+ }, z.core.$strip>>;
1580
1557
  internalEdges: z.ZodArray<z.ZodObject<{
1581
1558
  id: z.ZodString;
1582
1559
  source: z.ZodString;
1583
1560
  target: z.ZodString;
1584
1561
  condition: z.ZodNullable<z.ZodString>;
1585
- }, z.core.$strict>>;
1586
- }, z.core.$strict>;
1562
+ }, z.core.$strip>>;
1563
+ }, z.core.$strip>;
1587
1564
  declare const StudioRunsResponseSchema: z.ZodObject<{
1588
1565
  runs: z.ZodArray<z.ZodObject<{
1589
1566
  id: z.ZodString;
@@ -1613,7 +1590,7 @@ declare const StudioRunsResponseSchema: z.ZodObject<{
1613
1590
  workflowId: z.ZodString;
1614
1591
  workflowRevisionId: z.ZodNullable<z.ZodString>;
1615
1592
  declaredVersion: z.ZodNullable<z.ZodString>;
1616
- }, z.core.$strict>>;
1593
+ }, z.core.$strip>>;
1617
1594
  workflowRevisionId: z.ZodNullable<z.ZodString>;
1618
1595
  declaredVersion: z.ZodNullable<z.ZodString>;
1619
1596
  transitionIds: z.ZodArray<z.ZodString>;
@@ -1654,9 +1631,9 @@ declare const StudioRunsResponseSchema: z.ZodObject<{
1654
1631
  expired: "expired";
1655
1632
  }>>>;
1656
1633
  interruptExpiresAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1657
- }, z.core.$strict>>;
1634
+ }, z.core.$strip>>;
1658
1635
  totalCount: z.ZodNumber;
1659
- }, z.core.$strict>;
1636
+ }, z.core.$strip>;
1660
1637
  declare const StudioSessionsResponseSchema: z.ZodObject<{
1661
1638
  sessions: z.ZodArray<z.ZodObject<{
1662
1639
  id: z.ZodString;
@@ -1712,9 +1689,9 @@ declare const StudioSessionsResponseSchema: z.ZodObject<{
1712
1689
  models: z.ZodArray<z.ZodString>;
1713
1690
  tags: z.ZodArray<z.ZodString>;
1714
1691
  environment: z.ZodString;
1715
- }, z.core.$strict>>;
1692
+ }, z.core.$strip>>;
1716
1693
  totalCount: z.ZodNumber;
1717
- }, z.core.$strict>;
1694
+ }, z.core.$strip>;
1718
1695
  declare const StudioInterruptsResponseSchema: z.ZodObject<{
1719
1696
  interrupts: z.ZodArray<z.ZodObject<{
1720
1697
  afterResponseCompleted: z.ZodOptional<z.ZodBoolean>;
@@ -1754,7 +1731,7 @@ declare const StudioInterruptsResponseSchema: z.ZodObject<{
1754
1731
  id: z.ZodString;
1755
1732
  label: z.ZodString;
1756
1733
  description: z.ZodNullable<z.ZodString>;
1757
- }, z.core.$strict>>>;
1734
+ }, z.core.$strip>>>;
1758
1735
  workflowId: z.ZodString;
1759
1736
  nodeId: z.ZodNullable<z.ZodString>;
1760
1737
  sessionId: z.ZodNullable<z.ZodString>;
@@ -1774,9 +1751,9 @@ declare const StudioInterruptsResponseSchema: z.ZodObject<{
1774
1751
  resumeToken: z.ZodNullable<z.ZodString>;
1775
1752
  resolvedBy: z.ZodNullable<z.ZodString>;
1776
1753
  environment: z.ZodString;
1777
- }, z.core.$strict>>;
1754
+ }, z.core.$strip>>;
1778
1755
  totalCount: z.ZodNumber;
1779
- }, z.core.$strict>;
1756
+ }, z.core.$strip>;
1780
1757
  declare const StudioRunDetailResponseSchema: z.ZodObject<{
1781
1758
  run: z.ZodObject<{
1782
1759
  id: z.ZodString;
@@ -1806,7 +1783,7 @@ declare const StudioRunDetailResponseSchema: z.ZodObject<{
1806
1783
  workflowId: z.ZodString;
1807
1784
  workflowRevisionId: z.ZodNullable<z.ZodString>;
1808
1785
  declaredVersion: z.ZodNullable<z.ZodString>;
1809
- }, z.core.$strict>>;
1786
+ }, z.core.$strip>>;
1810
1787
  workflowRevisionId: z.ZodNullable<z.ZodString>;
1811
1788
  declaredVersion: z.ZodNullable<z.ZodString>;
1812
1789
  transitionIds: z.ZodArray<z.ZodString>;
@@ -1847,7 +1824,7 @@ declare const StudioRunDetailResponseSchema: z.ZodObject<{
1847
1824
  expired: "expired";
1848
1825
  }>>>;
1849
1826
  interruptExpiresAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1850
- }, z.core.$strict>;
1827
+ }, z.core.$strip>;
1851
1828
  scores: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1852
1829
  id: z.ZodString;
1853
1830
  target: z.ZodObject<{
@@ -1931,39 +1908,7 @@ declare const StudioRunDetailResponseSchema: z.ZodObject<{
1931
1908
  reviewActorId: z.ZodOptional<z.ZodString>;
1932
1909
  events: z.ZodArray<z.ZodObject<{
1933
1910
  id: z.ZodString;
1934
- type: z.ZodEnum<{
1935
- "span.started": "span.started";
1936
- "span.ended": "span.ended";
1937
- "span.failed": "span.failed";
1938
- "error.reported": "error.reported";
1939
- "generation.completed": "generation.completed";
1940
- "tool.started": "tool.started";
1941
- "tool.completed": "tool.completed";
1942
- "tool.failed": "tool.failed";
1943
- "tool.denied": "tool.denied";
1944
- "tool.cancelled": "tool.cancelled";
1945
- "tool.reused": "tool.reused";
1946
- "tool.waiting": "tool.waiting";
1947
- "tool.suspended": "tool.suspended";
1948
- "response.completed": "response.completed";
1949
- "interrupt.created": "interrupt.created";
1950
- "interrupt.resolved": "interrupt.resolved";
1951
- "interrupt.expired": "interrupt.expired";
1952
- "interrupt.cancelled": "interrupt.cancelled";
1953
- "run.cancelled": "run.cancelled";
1954
- "run.limit_reached": "run.limit_reached";
1955
- "workflow.transitioned": "workflow.transitioned";
1956
- "workflow.call.started": "workflow.call.started";
1957
- "workflow.call.suspended": "workflow.call.suspended";
1958
- "workflow.call.resumed": "workflow.call.resumed";
1959
- "workflow.call.completed": "workflow.call.completed";
1960
- "workflow.call.failed": "workflow.call.failed";
1961
- "workflow.call.reused": "workflow.call.reused";
1962
- "workflow.call.restored": "workflow.call.restored";
1963
- "session.checkpointed": "session.checkpointed";
1964
- "session.forked": "session.forked";
1965
- "session.rolled_back": "session.rolled_back";
1966
- }>;
1911
+ type: z.ZodString;
1967
1912
  occurredAt: z.ZodString;
1968
1913
  receivedAt: z.ZodString;
1969
1914
  environment: z.ZodString;
@@ -1982,7 +1927,7 @@ declare const StudioRunDetailResponseSchema: z.ZodObject<{
1982
1927
  tags: z.ZodArray<z.ZodString>;
1983
1928
  metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1984
1929
  payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1985
- }, z.core.$strict>>;
1930
+ }, z.core.$strip>>;
1986
1931
  session: z.ZodNullable<z.ZodObject<{
1987
1932
  id: z.ZodString;
1988
1933
  status: z.ZodEnum<{
@@ -2037,7 +1982,7 @@ declare const StudioRunDetailResponseSchema: z.ZodObject<{
2037
1982
  models: z.ZodArray<z.ZodString>;
2038
1983
  tags: z.ZodArray<z.ZodString>;
2039
1984
  environment: z.ZodString;
2040
- }, z.core.$strict>>;
1985
+ }, z.core.$strip>>;
2041
1986
  interrupts: z.ZodArray<z.ZodObject<{
2042
1987
  afterResponseCompleted: z.ZodOptional<z.ZodBoolean>;
2043
1988
  id: z.ZodString;
@@ -2076,7 +2021,7 @@ declare const StudioRunDetailResponseSchema: z.ZodObject<{
2076
2021
  id: z.ZodString;
2077
2022
  label: z.ZodString;
2078
2023
  description: z.ZodNullable<z.ZodString>;
2079
- }, z.core.$strict>>>;
2024
+ }, z.core.$strip>>>;
2080
2025
  workflowId: z.ZodString;
2081
2026
  nodeId: z.ZodNullable<z.ZodString>;
2082
2027
  sessionId: z.ZodNullable<z.ZodString>;
@@ -2096,9 +2041,9 @@ declare const StudioRunDetailResponseSchema: z.ZodObject<{
2096
2041
  resumeToken: z.ZodNullable<z.ZodString>;
2097
2042
  resolvedBy: z.ZodNullable<z.ZodString>;
2098
2043
  environment: z.ZodString;
2099
- }, z.core.$strict>>;
2044
+ }, z.core.$strip>>;
2100
2045
  updatedAt: z.ZodString;
2101
- }, z.core.$strict>;
2046
+ }, z.core.$strip>;
2102
2047
  declare const StudioSessionDetailResponseSchema: z.ZodObject<{
2103
2048
  session: z.ZodObject<{
2104
2049
  id: z.ZodString;
@@ -2154,7 +2099,7 @@ declare const StudioSessionDetailResponseSchema: z.ZodObject<{
2154
2099
  models: z.ZodArray<z.ZodString>;
2155
2100
  tags: z.ZodArray<z.ZodString>;
2156
2101
  environment: z.ZodString;
2157
- }, z.core.$strict>;
2102
+ }, z.core.$strip>;
2158
2103
  runs: z.ZodArray<z.ZodObject<{
2159
2104
  id: z.ZodString;
2160
2105
  feedback: z.ZodOptional<z.ZodObject<{
@@ -2183,7 +2128,7 @@ declare const StudioSessionDetailResponseSchema: z.ZodObject<{
2183
2128
  workflowId: z.ZodString;
2184
2129
  workflowRevisionId: z.ZodNullable<z.ZodString>;
2185
2130
  declaredVersion: z.ZodNullable<z.ZodString>;
2186
- }, z.core.$strict>>;
2131
+ }, z.core.$strip>>;
2187
2132
  workflowRevisionId: z.ZodNullable<z.ZodString>;
2188
2133
  declaredVersion: z.ZodNullable<z.ZodString>;
2189
2134
  transitionIds: z.ZodArray<z.ZodString>;
@@ -2224,42 +2169,10 @@ declare const StudioSessionDetailResponseSchema: z.ZodObject<{
2224
2169
  expired: "expired";
2225
2170
  }>>>;
2226
2171
  interruptExpiresAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2227
- }, z.core.$strict>>;
2172
+ }, z.core.$strip>>;
2228
2173
  events: z.ZodArray<z.ZodObject<{
2229
2174
  id: z.ZodString;
2230
- type: z.ZodEnum<{
2231
- "span.started": "span.started";
2232
- "span.ended": "span.ended";
2233
- "span.failed": "span.failed";
2234
- "error.reported": "error.reported";
2235
- "generation.completed": "generation.completed";
2236
- "tool.started": "tool.started";
2237
- "tool.completed": "tool.completed";
2238
- "tool.failed": "tool.failed";
2239
- "tool.denied": "tool.denied";
2240
- "tool.cancelled": "tool.cancelled";
2241
- "tool.reused": "tool.reused";
2242
- "tool.waiting": "tool.waiting";
2243
- "tool.suspended": "tool.suspended";
2244
- "response.completed": "response.completed";
2245
- "interrupt.created": "interrupt.created";
2246
- "interrupt.resolved": "interrupt.resolved";
2247
- "interrupt.expired": "interrupt.expired";
2248
- "interrupt.cancelled": "interrupt.cancelled";
2249
- "run.cancelled": "run.cancelled";
2250
- "run.limit_reached": "run.limit_reached";
2251
- "workflow.transitioned": "workflow.transitioned";
2252
- "workflow.call.started": "workflow.call.started";
2253
- "workflow.call.suspended": "workflow.call.suspended";
2254
- "workflow.call.resumed": "workflow.call.resumed";
2255
- "workflow.call.completed": "workflow.call.completed";
2256
- "workflow.call.failed": "workflow.call.failed";
2257
- "workflow.call.reused": "workflow.call.reused";
2258
- "workflow.call.restored": "workflow.call.restored";
2259
- "session.checkpointed": "session.checkpointed";
2260
- "session.forked": "session.forked";
2261
- "session.rolled_back": "session.rolled_back";
2262
- }>;
2175
+ type: z.ZodString;
2263
2176
  occurredAt: z.ZodString;
2264
2177
  receivedAt: z.ZodString;
2265
2178
  environment: z.ZodString;
@@ -2278,7 +2191,7 @@ declare const StudioSessionDetailResponseSchema: z.ZodObject<{
2278
2191
  tags: z.ZodArray<z.ZodString>;
2279
2192
  metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2280
2193
  payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
2281
- }, z.core.$strict>>;
2194
+ }, z.core.$strip>>;
2282
2195
  interrupts: z.ZodArray<z.ZodObject<{
2283
2196
  afterResponseCompleted: z.ZodOptional<z.ZodBoolean>;
2284
2197
  id: z.ZodString;
@@ -2317,7 +2230,7 @@ declare const StudioSessionDetailResponseSchema: z.ZodObject<{
2317
2230
  id: z.ZodString;
2318
2231
  label: z.ZodString;
2319
2232
  description: z.ZodNullable<z.ZodString>;
2320
- }, z.core.$strict>>>;
2233
+ }, z.core.$strip>>>;
2321
2234
  workflowId: z.ZodString;
2322
2235
  nodeId: z.ZodNullable<z.ZodString>;
2323
2236
  sessionId: z.ZodNullable<z.ZodString>;
@@ -2337,9 +2250,9 @@ declare const StudioSessionDetailResponseSchema: z.ZodObject<{
2337
2250
  resumeToken: z.ZodNullable<z.ZodString>;
2338
2251
  resolvedBy: z.ZodNullable<z.ZodString>;
2339
2252
  environment: z.ZodString;
2340
- }, z.core.$strict>>;
2253
+ }, z.core.$strip>>;
2341
2254
  updatedAt: z.ZodString;
2342
- }, z.core.$strict>;
2255
+ }, z.core.$strip>;
2343
2256
  declare const StudioInterruptDetailResponseSchema: z.ZodObject<{
2344
2257
  interrupt: z.ZodObject<{
2345
2258
  afterResponseCompleted: z.ZodOptional<z.ZodBoolean>;
@@ -2379,7 +2292,7 @@ declare const StudioInterruptDetailResponseSchema: z.ZodObject<{
2379
2292
  id: z.ZodString;
2380
2293
  label: z.ZodString;
2381
2294
  description: z.ZodNullable<z.ZodString>;
2382
- }, z.core.$strict>>>;
2295
+ }, z.core.$strip>>>;
2383
2296
  workflowId: z.ZodString;
2384
2297
  nodeId: z.ZodNullable<z.ZodString>;
2385
2298
  sessionId: z.ZodNullable<z.ZodString>;
@@ -2399,42 +2312,10 @@ declare const StudioInterruptDetailResponseSchema: z.ZodObject<{
2399
2312
  resumeToken: z.ZodNullable<z.ZodString>;
2400
2313
  resolvedBy: z.ZodNullable<z.ZodString>;
2401
2314
  environment: z.ZodString;
2402
- }, z.core.$strict>;
2315
+ }, z.core.$strip>;
2403
2316
  events: z.ZodArray<z.ZodObject<{
2404
2317
  id: z.ZodString;
2405
- type: z.ZodEnum<{
2406
- "span.started": "span.started";
2407
- "span.ended": "span.ended";
2408
- "span.failed": "span.failed";
2409
- "error.reported": "error.reported";
2410
- "generation.completed": "generation.completed";
2411
- "tool.started": "tool.started";
2412
- "tool.completed": "tool.completed";
2413
- "tool.failed": "tool.failed";
2414
- "tool.denied": "tool.denied";
2415
- "tool.cancelled": "tool.cancelled";
2416
- "tool.reused": "tool.reused";
2417
- "tool.waiting": "tool.waiting";
2418
- "tool.suspended": "tool.suspended";
2419
- "response.completed": "response.completed";
2420
- "interrupt.created": "interrupt.created";
2421
- "interrupt.resolved": "interrupt.resolved";
2422
- "interrupt.expired": "interrupt.expired";
2423
- "interrupt.cancelled": "interrupt.cancelled";
2424
- "run.cancelled": "run.cancelled";
2425
- "run.limit_reached": "run.limit_reached";
2426
- "workflow.transitioned": "workflow.transitioned";
2427
- "workflow.call.started": "workflow.call.started";
2428
- "workflow.call.suspended": "workflow.call.suspended";
2429
- "workflow.call.resumed": "workflow.call.resumed";
2430
- "workflow.call.completed": "workflow.call.completed";
2431
- "workflow.call.failed": "workflow.call.failed";
2432
- "workflow.call.reused": "workflow.call.reused";
2433
- "workflow.call.restored": "workflow.call.restored";
2434
- "session.checkpointed": "session.checkpointed";
2435
- "session.forked": "session.forked";
2436
- "session.rolled_back": "session.rolled_back";
2437
- }>;
2318
+ type: z.ZodString;
2438
2319
  occurredAt: z.ZodString;
2439
2320
  receivedAt: z.ZodString;
2440
2321
  environment: z.ZodString;
@@ -2453,7 +2334,7 @@ declare const StudioInterruptDetailResponseSchema: z.ZodObject<{
2453
2334
  tags: z.ZodArray<z.ZodString>;
2454
2335
  metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2455
2336
  payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
2456
- }, z.core.$strict>>;
2337
+ }, z.core.$strip>>;
2457
2338
  run: z.ZodNullable<z.ZodObject<{
2458
2339
  id: z.ZodString;
2459
2340
  feedback: z.ZodOptional<z.ZodObject<{
@@ -2482,7 +2363,7 @@ declare const StudioInterruptDetailResponseSchema: z.ZodObject<{
2482
2363
  workflowId: z.ZodString;
2483
2364
  workflowRevisionId: z.ZodNullable<z.ZodString>;
2484
2365
  declaredVersion: z.ZodNullable<z.ZodString>;
2485
- }, z.core.$strict>>;
2366
+ }, z.core.$strip>>;
2486
2367
  workflowRevisionId: z.ZodNullable<z.ZodString>;
2487
2368
  declaredVersion: z.ZodNullable<z.ZodString>;
2488
2369
  transitionIds: z.ZodArray<z.ZodString>;
@@ -2523,7 +2404,7 @@ declare const StudioInterruptDetailResponseSchema: z.ZodObject<{
2523
2404
  expired: "expired";
2524
2405
  }>>>;
2525
2406
  interruptExpiresAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2526
- }, z.core.$strict>>;
2407
+ }, z.core.$strip>>;
2527
2408
  session: z.ZodNullable<z.ZodObject<{
2528
2409
  id: z.ZodString;
2529
2410
  status: z.ZodEnum<{
@@ -2578,9 +2459,9 @@ declare const StudioInterruptDetailResponseSchema: z.ZodObject<{
2578
2459
  models: z.ZodArray<z.ZodString>;
2579
2460
  tags: z.ZodArray<z.ZodString>;
2580
2461
  environment: z.ZodString;
2581
- }, z.core.$strict>>;
2462
+ }, z.core.$strip>>;
2582
2463
  updatedAt: z.ZodString;
2583
- }, z.core.$strict>;
2464
+ }, z.core.$strip>;
2584
2465
  declare const StudioWorkflowsResponseSchema: z.ZodObject<{
2585
2466
  workflows: z.ZodArray<z.ZodObject<{
2586
2467
  id: z.ZodString;
@@ -2609,7 +2490,7 @@ declare const StudioWorkflowsResponseSchema: z.ZodObject<{
2609
2490
  averageTokens: z.ZodNullable<z.ZodNumber>;
2610
2491
  averageCost: z.ZodNullable<z.ZodNumber>;
2611
2492
  currency: z.ZodNullable<z.ZodString>;
2612
- }, z.core.$strict>;
2493
+ }, z.core.$strip>;
2613
2494
  nodes: z.ZodArray<z.ZodObject<{
2614
2495
  tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
2615
2496
  name: z.ZodString;
@@ -2668,15 +2549,15 @@ declare const StudioWorkflowsResponseSchema: z.ZodObject<{
2668
2549
  averageTokens: z.ZodNullable<z.ZodNumber>;
2669
2550
  averageCost: z.ZodNullable<z.ZodNumber>;
2670
2551
  currency: z.ZodNullable<z.ZodString>;
2671
- }, z.core.$strict>;
2672
- }, z.core.$strict>>;
2552
+ }, z.core.$strip>;
2553
+ }, z.core.$strip>>;
2673
2554
  internalEdges: z.ZodArray<z.ZodObject<{
2674
2555
  id: z.ZodString;
2675
2556
  source: z.ZodString;
2676
2557
  target: z.ZodString;
2677
2558
  condition: z.ZodNullable<z.ZodString>;
2678
- }, z.core.$strict>>;
2679
- }, z.core.$strict>>;
2559
+ }, z.core.$strip>>;
2560
+ }, z.core.$strip>>;
2680
2561
  observedCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
2681
2562
  kind: z.ZodOptional<z.ZodEnum<{
2682
2563
  call: "call";
@@ -2694,7 +2575,7 @@ declare const StudioWorkflowsResponseSchema: z.ZodObject<{
2694
2575
  runId: z.ZodString;
2695
2576
  invocationId: z.ZodString;
2696
2577
  branchId: z.ZodString;
2697
- }, z.core.$strict>>>;
2578
+ }, z.core.$strip>>>;
2698
2579
  transitions: z.ZodArray<z.ZodObject<{
2699
2580
  kind: z.ZodOptional<z.ZodEnum<{
2700
2581
  call: "call";
@@ -2709,7 +2590,7 @@ declare const StudioWorkflowsResponseSchema: z.ZodObject<{
2709
2590
  successRate: z.ZodNullable<z.ZodNumber>;
2710
2591
  medianDurationMs: z.ZodNullable<z.ZodNumber>;
2711
2592
  errorRate: z.ZodNullable<z.ZodNumber>;
2712
- }, z.core.$strict>>;
2593
+ }, z.core.$strip>>;
2713
2594
  cohort: z.ZodObject<{
2714
2595
  range: z.ZodEnum<{
2715
2596
  "Last hour": "Last hour";
@@ -2723,22 +2604,22 @@ declare const StudioWorkflowsResponseSchema: z.ZodObject<{
2723
2604
  startedBefore: z.ZodNullable<z.ZodString>;
2724
2605
  workflowId: z.ZodNullable<z.ZodString>;
2725
2606
  version: z.ZodNullable<z.ZodString>;
2726
- }, z.core.$strict>;
2727
- }, z.core.$strict>;
2607
+ }, z.core.$strip>;
2608
+ }, z.core.$strip>;
2728
2609
  declare const StudioCatalogsResponseSchema: z.ZodObject<{
2729
2610
  environments: z.ZodArray<z.ZodString>;
2730
2611
  providers: z.ZodArray<z.ZodString>;
2731
2612
  models: z.ZodArray<z.ZodString>;
2732
2613
  workflows: z.ZodArray<z.ZodString>;
2733
2614
  tags: z.ZodArray<z.ZodString>;
2734
- }, z.core.$strict>;
2615
+ }, z.core.$strip>;
2735
2616
  declare const StudioContextResponseSchema: z.ZodObject<{
2736
2617
  organization: z.ZodObject<{
2737
2618
  name: z.ZodString;
2738
- }, z.core.$strict>;
2619
+ }, z.core.$strip>;
2739
2620
  project: z.ZodObject<{
2740
2621
  name: z.ZodString;
2741
- }, z.core.$strict>;
2622
+ }, z.core.$strip>;
2742
2623
  environments: z.ZodArray<z.ZodString>;
2743
2624
  apiKey: z.ZodObject<{
2744
2625
  mode: z.ZodEnum<{
@@ -2746,13 +2627,13 @@ declare const StudioContextResponseSchema: z.ZodObject<{
2746
2627
  live: "live";
2747
2628
  }>;
2748
2629
  scopes: z.ZodArray<z.ZodString>;
2749
- }, z.core.$strict>;
2630
+ }, z.core.$strip>;
2750
2631
  api: z.ZodObject<{
2751
2632
  status: z.ZodLiteral<"ok">;
2752
2633
  service: z.ZodLiteral<"kortyx-api">;
2753
2634
  version: z.ZodString;
2754
- }, z.core.$strict>;
2755
- }, z.core.$strict>;
2635
+ }, z.core.$strip>;
2636
+ }, z.core.$strip>;
2756
2637
  type StudioRunStatus = z.infer<typeof StudioRunStatusSchema>;
2757
2638
  type StudioTimeRange = z.infer<typeof StudioTimeRangeSchema>;
2758
2639
  type StudioTimeRangeContext = z.infer<typeof StudioTimeRangeContextSchema>;
@@ -2785,4 +2666,4 @@ type StudioWorkflowsResponse = z.infer<typeof StudioWorkflowsResponseSchema>;
2785
2666
  type StudioCatalogsResponse = z.infer<typeof StudioCatalogsResponseSchema>;
2786
2667
  type StudioContextResponse = z.infer<typeof StudioContextResponseSchema>;
2787
2668
 
2788
- export { ClearScoreResponseSchema, ClearUserFeedbackRequestSchema, type EnsureWorkflowTopologyRequest, EnsureWorkflowTopologyRequestSchema, type EnsureWorkflowTopologyResponse, EnsureWorkflowTopologyResponseSchema, FEEDBACK_FILTERS, FeedbackReasonSchema, type FeedbackSummary, FeedbackSummarySchema, type KortyxTelemetryEvent, type KortyxTelemetryEventType, type KortyxTelemetryService, type KortyxWorkflowTopologyEdge, type KortyxWorkflowTopologyNode, type KortyxWorkflowTopologyTransition, ReviewVerdictSchema, 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, StudioInterruptValueSchema, type StudioInterruptsResponse, StudioInterruptsResponseSchema, type StudioMetric, StudioMetricSchema, type StudioPricingSource, StudioPricingSourceSchema, type StudioPricingStatus, StudioPricingStatusSchema, type StudioRelease, StudioReleaseDeploymentSchema, StudioReleaseSchema, StudioReleaseVersionSchema, type StudioResumeOutcome, StudioResumeOutcomeSchema, type StudioReviewRequest, StudioReviewRequestSchema, type StudioRun, type StudioRunDetailResponse, StudioRunDetailResponseSchema, StudioRunSchema, type StudioRunStatus, StudioRunStatusSchema, type StudioRunsResponse, StudioRunsResponseSchema, type StudioScore, StudioScoreResponseSchema, StudioScoreSchema, type StudioSession, type StudioSessionDetailResponse, StudioSessionDetailResponseSchema, StudioSessionSchema, type StudioSessionsResponse, StudioSessionsResponseSchema, type StudioTimeRange, type StudioTimeRangeContext, StudioTimeRangeContextSchema, StudioTimeRangeQuerySchema, type StudioTimeRangeResolution, StudioTimeRangeSchema, type StudioTool, StudioToolSchema, type StudioUpdateOperation, StudioUpdateOperationSchema, type StudioUpdateSettings, StudioUpdateSettingsSchema, type StudioUpdateStatus, StudioUpdateStatusSchema, 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, ToolDiscoverySchema, ToolObservationSchema, ToolOutcomeSchema, type UserFeedbackRequest, UserFeedbackRequestSchema, type WorkflowTool, WorkflowToolSchema, WorkflowTopologyCallSchema, WorkflowTopologyEdgeSchema, WorkflowTopologyNodeSchema, WorkflowTopologyTransitionSchema, newerStudioVersion, projectWorkflowCalls, resolveStudioInterruptStatus, resolveStudioTimeRange, studioUpdateRunning, summarizeUserFeedback };
2669
+ export { ClearScoreResponseSchema, ClearUserFeedbackRequestSchema, type EnsureWorkflowTopologyRequest, EnsureWorkflowTopologyRequestSchema, type EnsureWorkflowTopologyResponse, EnsureWorkflowTopologyResponseSchema, FEEDBACK_FILTERS, FeedbackReasonSchema, type FeedbackSummary, FeedbackSummarySchema, type KortyxTelemetryEvent, type KortyxTelemetryEventType, type KortyxTelemetryService, type KortyxWorkflowTopologyEdge, type KortyxWorkflowTopologyNode, type KortyxWorkflowTopologyTransition, ReviewVerdictSchema, STUDIO_API_PROTOCOL_VERSION, 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, StudioInterruptValueSchema, type StudioInterruptsResponse, StudioInterruptsResponseSchema, type StudioMetric, StudioMetricSchema, type StudioPricingSource, StudioPricingSourceSchema, type StudioPricingStatus, StudioPricingStatusSchema, type StudioRelease, StudioReleaseDeploymentSchema, StudioReleaseSchema, StudioReleaseVersionSchema, type StudioResumeOutcome, StudioResumeOutcomeSchema, type StudioReviewRequest, StudioReviewRequestSchema, type StudioRun, type StudioRunDetailResponse, StudioRunDetailResponseSchema, StudioRunSchema, type StudioRunStatus, StudioRunStatusSchema, type StudioRunsResponse, StudioRunsResponseSchema, type StudioScore, StudioScoreResponseSchema, StudioScoreSchema, type StudioSession, type StudioSessionDetailResponse, StudioSessionDetailResponseSchema, StudioSessionSchema, type StudioSessionsResponse, StudioSessionsResponseSchema, type StudioTimeRange, type StudioTimeRangeContext, StudioTimeRangeContextSchema, StudioTimeRangeQuerySchema, type StudioTimeRangeResolution, StudioTimeRangeSchema, type StudioTool, StudioToolSchema, type StudioUpdateOperation, StudioUpdateOperationSchema, type StudioUpdateSettings, StudioUpdateSettingsSchema, type StudioUpdateStatus, StudioUpdateStatusSchema, 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, ToolDiscoverySchema, ToolObservationSchema, ToolOutcomeSchema, type UserFeedbackRequest, UserFeedbackRequestSchema, type WorkflowTool, WorkflowToolSchema, WorkflowTopologyCallSchema, WorkflowTopologyEdgeSchema, WorkflowTopologyNodeSchema, WorkflowTopologyTransitionSchema, newerStudioVersion, projectWorkflowCalls, resolveStudioInterruptStatus, resolveStudioTimeRange, studioUpdateRunning, summarizeUserFeedback };
package/dist/index.js CHANGED
@@ -27,6 +27,7 @@ __export(index_exports, {
27
27
  FeedbackReasonSchema: () => FeedbackReasonSchema,
28
28
  FeedbackSummarySchema: () => FeedbackSummarySchema,
29
29
  ReviewVerdictSchema: () => ReviewVerdictSchema,
30
+ STUDIO_API_PROTOCOL_VERSION: () => STUDIO_API_PROTOCOL_VERSION,
30
31
  STUDIO_TIME_RANGES: () => STUDIO_TIME_RANGES,
31
32
  StudioCatalogsResponseSchema: () => StudioCatalogsResponseSchema,
32
33
  StudioChangeResourceSchema: () => StudioChangeResourceSchema,
@@ -398,6 +399,7 @@ function projectWorkflowCalls(events) {
398
399
  }
399
400
 
400
401
  // src/index.ts
402
+ var STUDIO_API_PROTOCOL_VERSION = "1";
401
403
  var TELEMETRY_EVENT_TYPES = [
402
404
  "span.started",
403
405
  "span.ended",
@@ -419,6 +421,8 @@ var TELEMETRY_EVENT_TYPES = [
419
421
  "interrupt.cancelled",
420
422
  "run.cancelled",
421
423
  "run.limit_reached",
424
+ "workflow.suspended",
425
+ "workflow.resumed",
422
426
  "workflow.transitioned",
423
427
  "workflow.call.started",
424
428
  "workflow.call.suspended",
@@ -755,7 +759,7 @@ var StudioInterruptOptionSchema = import_zod4.z.object({
755
759
  id: import_zod4.z.string().min(1),
756
760
  label: import_zod4.z.string().min(1),
757
761
  description: import_zod4.z.string().nullable()
758
- }).strict();
762
+ }).strip();
759
763
  var StudioInterruptValueSchema = import_zod4.z.union([
760
764
  import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown()),
761
765
  import_zod4.z.array(import_zod4.z.unknown()),
@@ -807,7 +811,7 @@ var StudioMetricSchema = import_zod4.z.object({
807
811
  averageTokens: import_zod4.z.number().nonnegative().nullable(),
808
812
  averageCost: import_zod4.z.number().nonnegative().nullable(),
809
813
  currency: import_zod4.z.string().nullable()
810
- }).strict();
814
+ }).strip();
811
815
  var StudioRunSchema = import_zod4.z.object({
812
816
  id: import_zod4.z.string().min(1),
813
817
  feedback: FeedbackSummarySchema.optional(),
@@ -827,7 +831,7 @@ var StudioRunSchema = import_zod4.z.object({
827
831
  workflowId: import_zod4.z.string().min(1),
828
832
  workflowRevisionId: import_zod4.z.string().nullable(),
829
833
  declaredVersion: import_zod4.z.string().nullable()
830
- }).strict()
834
+ }).strip()
831
835
  ),
832
836
  workflowRevisionId: import_zod4.z.string().nullable(),
833
837
  declaredVersion: import_zod4.z.string().nullable(),
@@ -853,7 +857,7 @@ var StudioRunSchema = import_zod4.z.object({
853
857
  interruptId: import_zod4.z.string().nullable().optional(),
854
858
  interruptStatus: StudioInterruptStatusSchema.nullable().optional(),
855
859
  interruptExpiresAt: import_zod4.z.string().datetime({ offset: true }).nullable().optional()
856
- }).strict();
860
+ }).strip();
857
861
  var StudioSessionSchema = import_zod4.z.object({
858
862
  id: import_zod4.z.string().min(1),
859
863
  status: StudioRunStatusSchema,
@@ -885,7 +889,7 @@ var StudioSessionSchema = import_zod4.z.object({
885
889
  models: import_zod4.z.array(import_zod4.z.string()),
886
890
  tags: import_zod4.z.array(import_zod4.z.string()),
887
891
  environment: import_zod4.z.string().min(1)
888
- }).strict();
892
+ }).strip();
889
893
  var StudioInterruptSchema = import_zod4.z.object({
890
894
  afterResponseCompleted: import_zod4.z.boolean().optional(),
891
895
  id: import_zod4.z.string().min(1),
@@ -918,10 +922,11 @@ var StudioInterruptSchema = import_zod4.z.object({
918
922
  resumeToken: import_zod4.z.string().nullable(),
919
923
  resolvedBy: import_zod4.z.string().nullable(),
920
924
  environment: import_zod4.z.string().min(1)
921
- }).strict();
925
+ }).strip();
922
926
  var StudioDetailEventSchema = import_zod4.z.object({
923
927
  id: import_zod4.z.string().min(1),
924
- type: TelemetryEventTypeSchema,
928
+ // Studio readers must preserve future event kinds within the same API major.
929
+ type: import_zod4.z.string().min(1),
925
930
  occurredAt: import_zod4.z.string().datetime({ offset: true }),
926
931
  receivedAt: import_zod4.z.string().datetime({ offset: true }),
927
932
  environment: import_zod4.z.string().min(1),
@@ -940,7 +945,7 @@ var StudioDetailEventSchema = import_zod4.z.object({
940
945
  tags: import_zod4.z.array(import_zod4.z.string()),
941
946
  metadata: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown()).nullable(),
942
947
  payload: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown())
943
- }).strict();
948
+ }).strip();
944
949
  var StudioWorkflowNodeSchema = import_zod4.z.object({
945
950
  tools: import_zod4.z.array(StudioToolSchema).optional(),
946
951
  toolDiscovery: ToolDiscoverySchema.optional(),
@@ -951,13 +956,13 @@ var StudioWorkflowNodeSchema = import_zod4.z.object({
951
956
  provider: import_zod4.z.string().nullable(),
952
957
  model: import_zod4.z.string().nullable(),
953
958
  metrics: StudioMetricSchema
954
- }).strict();
959
+ }).strip();
955
960
  var StudioWorkflowInternalEdgeSchema = import_zod4.z.object({
956
961
  id: import_zod4.z.string().min(1),
957
962
  source: import_zod4.z.string().min(1),
958
963
  target: import_zod4.z.string().min(1),
959
964
  condition: import_zod4.z.string().nullable()
960
- }).strict();
965
+ }).strip();
961
966
  var StudioWorkflowTransitionSchema = import_zod4.z.object({
962
967
  kind: import_zod4.z.enum(["call", "handoff"]).optional(),
963
968
  id: import_zod4.z.string().min(1),
@@ -969,7 +974,7 @@ var StudioWorkflowTransitionSchema = import_zod4.z.object({
969
974
  successRate: import_zod4.z.number().min(0).max(100).nullable(),
970
975
  medianDurationMs: import_zod4.z.number().nonnegative().nullable(),
971
976
  errorRate: import_zod4.z.number().min(0).max(100).nullable()
972
- }).strict();
977
+ }).strip();
973
978
  var StudioWorkflowSchema = import_zod4.z.object({
974
979
  id: import_zod4.z.string().min(1),
975
980
  name: import_zod4.z.string().min(1),
@@ -983,19 +988,19 @@ var StudioWorkflowSchema = import_zod4.z.object({
983
988
  metrics: StudioMetricSchema,
984
989
  nodes: import_zod4.z.array(StudioWorkflowNodeSchema),
985
990
  internalEdges: import_zod4.z.array(StudioWorkflowInternalEdgeSchema)
986
- }).strict();
991
+ }).strip();
987
992
  var StudioRunsResponseSchema = import_zod4.z.object({
988
993
  runs: import_zod4.z.array(StudioRunSchema),
989
994
  totalCount: import_zod4.z.number().int().nonnegative()
990
- }).strict();
995
+ }).strip();
991
996
  var StudioSessionsResponseSchema = import_zod4.z.object({
992
997
  sessions: import_zod4.z.array(StudioSessionSchema),
993
998
  totalCount: import_zod4.z.number().int().nonnegative()
994
- }).strict();
999
+ }).strip();
995
1000
  var StudioInterruptsResponseSchema = import_zod4.z.object({
996
1001
  interrupts: import_zod4.z.array(StudioInterruptSchema),
997
1002
  totalCount: import_zod4.z.number().int().nonnegative()
998
- }).strict();
1003
+ }).strip();
999
1004
  var StudioRunDetailResponseSchema = import_zod4.z.object({
1000
1005
  run: StudioRunSchema,
1001
1006
  scores: import_zod4.z.array(StudioScoreSchema).optional(),
@@ -1005,21 +1010,21 @@ var StudioRunDetailResponseSchema = import_zod4.z.object({
1005
1010
  session: StudioSessionSchema.nullable(),
1006
1011
  interrupts: import_zod4.z.array(StudioInterruptSchema),
1007
1012
  updatedAt: import_zod4.z.string().datetime({ offset: true })
1008
- }).strict();
1013
+ }).strip();
1009
1014
  var StudioSessionDetailResponseSchema = import_zod4.z.object({
1010
1015
  session: StudioSessionSchema,
1011
1016
  runs: import_zod4.z.array(StudioRunSchema),
1012
1017
  events: import_zod4.z.array(StudioDetailEventSchema),
1013
1018
  interrupts: import_zod4.z.array(StudioInterruptSchema),
1014
1019
  updatedAt: import_zod4.z.string().datetime({ offset: true })
1015
- }).strict();
1020
+ }).strip();
1016
1021
  var StudioInterruptDetailResponseSchema = import_zod4.z.object({
1017
1022
  interrupt: StudioInterruptSchema,
1018
1023
  events: import_zod4.z.array(StudioDetailEventSchema),
1019
1024
  run: StudioRunSchema.nullable(),
1020
1025
  session: StudioSessionSchema.nullable(),
1021
1026
  updatedAt: import_zod4.z.string().datetime({ offset: true })
1022
- }).strict();
1027
+ }).strip();
1023
1028
  var StudioWorkflowsResponseSchema = import_zod4.z.object({
1024
1029
  workflows: import_zod4.z.array(StudioWorkflowSchema),
1025
1030
  observedCalls: import_zod4.z.array(
@@ -1033,33 +1038,33 @@ var StudioWorkflowsResponseSchema = import_zod4.z.object({
1033
1038
  cohort: StudioTimeRangeContextSchema.extend({
1034
1039
  workflowId: import_zod4.z.string().nullable(),
1035
1040
  version: import_zod4.z.string().nullable()
1036
- }).strict()
1037
- }).strict();
1041
+ }).strip()
1042
+ }).strip();
1038
1043
  var StudioCatalogsResponseSchema = import_zod4.z.object({
1039
1044
  environments: import_zod4.z.array(import_zod4.z.string()),
1040
1045
  providers: import_zod4.z.array(import_zod4.z.string()),
1041
1046
  models: import_zod4.z.array(import_zod4.z.string()),
1042
1047
  workflows: import_zod4.z.array(import_zod4.z.string()),
1043
1048
  tags: import_zod4.z.array(import_zod4.z.string())
1044
- }).strict();
1049
+ }).strip();
1045
1050
  var StudioContextResponseSchema = import_zod4.z.object({
1046
1051
  organization: import_zod4.z.object({
1047
1052
  name: import_zod4.z.string().min(1)
1048
- }).strict(),
1053
+ }).strip(),
1049
1054
  project: import_zod4.z.object({
1050
1055
  name: import_zod4.z.string().min(1)
1051
- }).strict(),
1056
+ }).strip(),
1052
1057
  environments: import_zod4.z.array(import_zod4.z.string()),
1053
1058
  apiKey: import_zod4.z.object({
1054
1059
  mode: import_zod4.z.enum(["test", "live"]),
1055
1060
  scopes: import_zod4.z.array(import_zod4.z.string())
1056
- }).strict(),
1061
+ }).strip(),
1057
1062
  api: import_zod4.z.object({
1058
1063
  status: import_zod4.z.literal("ok"),
1059
1064
  service: import_zod4.z.literal("kortyx-api"),
1060
1065
  version: import_zod4.z.string().min(1)
1061
- }).strict()
1062
- }).strict();
1066
+ }).strip()
1067
+ }).strip();
1063
1068
  // Annotate the CommonJS export names for ESM import in node:
1064
1069
  0 && (module.exports = {
1065
1070
  ClearScoreResponseSchema,
@@ -1070,6 +1075,7 @@ var StudioContextResponseSchema = import_zod4.z.object({
1070
1075
  FeedbackReasonSchema,
1071
1076
  FeedbackSummarySchema,
1072
1077
  ReviewVerdictSchema,
1078
+ STUDIO_API_PROTOCOL_VERSION,
1073
1079
  STUDIO_TIME_RANGES,
1074
1080
  StudioCatalogsResponseSchema,
1075
1081
  StudioChangeResourceSchema,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/scores.ts","../src/tools.ts","../src/studio-updates.ts","../src/workflow-calls.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { FeedbackSummarySchema, StudioScoreSchema } from \"./scores\";\n\nexport * from \"./scores\";\n\nimport {\n StudioToolSchema,\n ToolDiscoverySchema,\n ToolObservationSchema,\n WorkflowToolSchema,\n} from \"./tools\";\n\nexport type { StudioTool, WorkflowTool } from \"./tools\";\nexport {\n StudioToolSchema,\n ToolDiscoverySchema,\n ToolObservationSchema,\n ToolOutcomeSchema,\n WorkflowToolSchema,\n} from \"./tools\";\nexport const TELEMETRY_EVENT_TYPES = [\n \"span.started\",\n \"span.ended\",\n \"span.failed\",\n \"error.reported\",\n \"generation.completed\",\n \"tool.started\",\n \"tool.completed\",\n \"tool.failed\",\n \"tool.denied\",\n \"tool.cancelled\",\n \"tool.reused\",\n \"tool.waiting\",\n \"tool.suspended\",\n \"response.completed\",\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 tools: z.array(WorkflowToolSchema).optional(),\n toolDiscovery: ToolDiscoverySchema.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()\n .superRefine((event, ctx) => {\n if (!event.type.startsWith(\"tool.\")) return;\n const canonical =\n event.payload.version === 1 ||\n [\n \"tool.denied\",\n \"tool.cancelled\",\n \"tool.reused\",\n \"tool.waiting\",\n \"tool.suspended\",\n ].includes(event.type);\n if (!canonical) return; // Previous SDK event envelopes remain readable.\n const parsed = ToolObservationSchema.strict().safeParse(event.payload);\n if (!parsed.success)\n for (const issue of parsed.error.issues)\n ctx.addIssue({ ...issue, path: [\"payload\", ...issue.path] });\n else {\n if (\n (parsed.data.errorType !== undefined ||\n parsed.data.errorMessage !== undefined) &&\n parsed.data.outcome !== \"fault\"\n )\n ctx.addIssue({\n code: \"custom\",\n path: [\"payload\"],\n message: \"Error diagnostics require a fault outcome.\",\n });\n const terminalOutcomes: Record<string, string> = {\n \"tool.completed\": \"success\",\n \"tool.failed\": \"fault\",\n \"tool.denied\": \"denied\",\n \"tool.cancelled\": \"cancelled\",\n };\n const expected = terminalOutcomes[event.type];\n if (expected && parsed.data.outcome !== expected)\n ctx.addIssue({\n code: \"custom\",\n path: [\"payload\", \"outcome\"],\n message: \"Outcome must match the tool event type.\",\n });\n if (\n event.type === \"tool.reused\" &&\n (parsed.data.executed || !parsed.data.source)\n )\n ctx.addIssue({\n code: \"custom\",\n path: [\"payload\"],\n message: \"Reuse must be unexecuted and reference its source.\",\n });\n }\n });\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 \"structured\",\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 StudioInterruptValueSchema = z.union([\n z.record(z.string(), z.unknown()),\n z.array(z.unknown()),\n z.string(),\n z.number(),\n z.boolean(),\n]);\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 \"workflows\",\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 feedback: FeedbackSummarySchema.optional(),\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 afterResponseCompleted: z.boolean().optional(),\n id: z.string().min(1),\n status: StudioInterruptStatusSchema,\n type: StudioInterruptTypeSchema,\n interactionMode: StudioInterruptInteractionModeSchema,\n contract: z.string().nullable().default(null),\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 request: z.record(z.string(), z.unknown()).nullable().default(null),\n requestCaptured: z.boolean().default(false),\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 responseValue: StudioInterruptValueSchema.nullable().default(null),\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 tools: z.array(StudioToolSchema).optional(),\n toolDiscovery: ToolDiscoverySchema.optional(),\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 scores: z.array(StudioScoreSchema).optional(),\n canReview: z.boolean().optional(),\n reviewActorId: z.string().optional(),\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 * from \"./studio-updates\";\nexport {\n projectWorkflowCalls,\n type StudioWorkflowCall,\n} from \"./workflow-calls\";\n","import { z } from \"zod\";\n\nexport const FEEDBACK_FILTERS = [\"positive\", \"negative\", \"unrated\"] as const;\nexport const FeedbackSummarySchema = z\n .object({\n positive: z.number().int().nonnegative(),\n negative: z.number().int().nonnegative(),\n })\n .strict();\n\nexport const FeedbackReasonSchema = z.enum([\n \"incorrect\",\n \"irrelevant\",\n \"incomplete\",\n \"unsafe\",\n \"other\",\n]);\nexport const ReviewVerdictSchema = z.enum([\n \"correct\",\n \"partially-correct\",\n \"incorrect\",\n]);\nconst runId = z.string().trim().min(1).max(512);\nconst actorId = z.string().trim().min(1).max(256);\nconst comment = z.string().trim().max(4000).nullable().optional();\n\n// This request is server-to-server. The application derives actorId from its\n// authenticated user and verifies that the user may rate the requested run.\nexport const UserFeedbackRequestSchema = z\n .object({\n runId,\n actorId,\n value: z.union([z.literal(0), z.literal(1)]),\n reasons: z.array(FeedbackReasonSchema).max(5).optional(),\n comment,\n })\n .strict();\nexport const ClearUserFeedbackRequestSchema = UserFeedbackRequestSchema.pick({\n runId: true,\n actorId: true,\n});\nexport const StudioReviewRequestSchema = z\n .object({ value: ReviewVerdictSchema, comment })\n .strict();\n\nconst BaseScoreSchema = z\n .object({\n id: z.string().uuid(),\n target: z.object({ type: z.literal(\"run\"), runId }).strict(),\n environment: z.string().min(1),\n name: z.string().min(1),\n source: z.enum([\"end-user\", \"human-review\", \"evaluator\"]),\n actorId,\n reasons: z.array(FeedbackReasonSchema),\n comment: z.string().nullable(),\n createdAt: z.string().datetime({ offset: true }),\n updatedAt: z.string().datetime({ offset: true }),\n })\n .strict();\nexport const StudioScoreSchema = z.discriminatedUnion(\"dataType\", [\n BaseScoreSchema.extend({\n dataType: z.literal(\"BOOLEAN\"),\n value: z.union([z.literal(0), z.literal(1)]),\n }),\n BaseScoreSchema.extend({\n dataType: z.literal(\"CATEGORICAL\"),\n value: z.string(),\n }),\n BaseScoreSchema.extend({\n dataType: z.literal(\"NUMERIC\"),\n value: z.number().finite(),\n }),\n]);\nexport const StudioScoreResponseSchema = z\n .object({ score: StudioScoreSchema })\n .strict();\nexport const ClearScoreResponseSchema = z\n .object({ ok: z.literal(true) })\n .strict();\n\nexport type FeedbackSummary = z.infer<typeof FeedbackSummarySchema>;\nexport type StudioScore = z.infer<typeof StudioScoreSchema>;\nexport type UserFeedbackRequest = z.infer<typeof UserFeedbackRequestSchema>;\nexport type StudioReviewRequest = z.infer<typeof StudioReviewRequestSchema>;\n\nexport function summarizeUserFeedback(\n scores: readonly StudioScore[],\n): FeedbackSummary {\n const feedback = { positive: 0, negative: 0 };\n for (const score of scores) {\n if (\n score.source !== \"end-user\" ||\n score.name !== \"user-feedback\" ||\n score.dataType !== \"BOOLEAN\"\n )\n continue;\n if (score.value === 1) feedback.positive += 1;\n if (score.value === 0) feedback.negative += 1;\n }\n return feedback;\n}\n","import { z } from \"zod\";\n\nexport const ToolOutcomeSchema = z.enum([\n \"success\",\n \"denied\",\n \"fault\",\n \"cancelled\",\n]);\nexport const ToolObservationSchema = z.object({\n version: z.literal(1),\n name: z.string().min(1).max(256),\n toolCallId: z.string().min(1),\n attemptId: z.string().min(1),\n callingMode: z.enum([\"direct\", \"model\"]),\n executed: z.boolean(),\n outcome: ToolOutcomeSchema.optional(),\n denialCode: z\n .string()\n .regex(/^[A-Z][A-Z0-9_]{0,63}$/)\n .optional(),\n errorType: z.string().max(256).optional(),\n errorMessage: z.string().max(8192).optional(),\n durationMs: z.number().finite().nonnegative().optional(),\n workflowId: z.string().optional(),\n nodeId: z.string().optional(),\n workflowRevisionId: z.string().optional(),\n runId: z.string().optional(),\n invocationId: z.string().optional(),\n parentInvocationId: z.string().optional(),\n branchId: z.string().optional(),\n observationKind: z.enum([\"reused\", \"waiting\"]).optional(),\n suspended: z.boolean().optional(),\n source: z\n .object({\n runId: z.string().optional(),\n invocationId: z.string().optional(),\n branchId: z.string().optional(),\n toolCallId: z.string(),\n attemptId: z.string(),\n })\n .strict()\n .optional(),\n});\nexport type ToolObservation = z.infer<typeof ToolObservationSchema>;\n\n/** Topology contains safe capability descriptions, never executable factories. */\nexport const WorkflowToolSchema = z\n .object({\n name: z.string().min(1).max(256),\n description: z.string().max(4096).optional(),\n callingMode: z.enum([\"direct\", \"model\"]),\n provenance: z.enum([\"source\", \"observed\"]),\n inputFields: z\n .array(\n z\n .object({ name: z.string(), type: z.string(), required: z.boolean() })\n .strict(),\n )\n .optional(),\n })\n .strict();\nexport const ToolDiscoverySchema = z\n .object({\n status: z.enum([\"complete\", \"unresolved\"]),\n publishedAt: z.string().datetime().optional(),\n warnings: z.array(z.string()).optional(),\n })\n .strict();\n\nexport const StudioToolSchema = WorkflowToolSchema.extend({\n callingMode: z.enum([\"direct\", \"model\", \"unknown\"]),\n calls: z.number().nonnegative(),\n replays: z.number().nonnegative(),\n successes: z.number().nonnegative(),\n denials: z.number().nonnegative(),\n faults: z.number().nonnegative(),\n cancellations: z.number().nonnegative(),\n p50DurationMs: z.number().nonnegative().nullable(),\n p95DurationMs: z.number().nonnegative().nullable(),\n}).strict();\nexport type WorkflowTool = z.infer<typeof WorkflowToolSchema>;\nexport type StudioTool = z.infer<typeof StudioToolSchema>;\n","import { z } from \"zod\";\n\nexport const StudioReleaseVersionSchema = z\n .string()\n .regex(/^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$/);\n\nexport const StudioReleaseDeploymentSchema = z.object({\n strategy: z.enum([\"rolling\", \"recreate\"]),\n});\n\nexport const StudioReleaseSchema = z.object({\n format: z.literal(1),\n installer: z.literal(1),\n version: StudioReleaseVersionSchema,\n api: z\n .string()\n .regex(/^ghcr\\.io\\/kortyx-io\\/kortyx-api@sha256:[a-f0-9]{64}$/),\n studio: z\n .string()\n .regex(/^ghcr\\.io\\/kortyx-io\\/kortyx-studio@sha256:[a-f0-9]{64}$/),\n deployment: StudioReleaseDeploymentSchema.default({\n strategy: \"recreate\",\n }),\n});\nexport type StudioRelease = z.infer<typeof StudioReleaseSchema>;\n\nexport const StudioUpdateSettingsSchema = z.object({\n automatic: z.boolean(),\n hourUtc: z.number().int().min(0).max(23),\n});\nexport type StudioUpdateSettings = z.infer<typeof StudioUpdateSettingsSchema>;\n\nexport const StudioUpdateOperationSchema = z.object({\n id: z.uuid(),\n from: z.string(),\n release: StudioReleaseSchema,\n phase: z.enum([\n \"starting\",\n \"pulling\",\n \"backup\",\n \"installing\",\n \"verifying\",\n \"succeeded\",\n \"failed\",\n ]),\n startedAt: z.iso.datetime(),\n updatedAt: z.iso.datetime(),\n backup: z.string().nullable(),\n messages: z.array(z.string()).max(100),\n});\nexport type StudioUpdateOperation = z.infer<typeof StudioUpdateOperationSchema>;\n\nexport const StudioUpdateStatusSchema = z.object({\n current: z.string().nullable(),\n available: StudioReleaseSchema.nullable(),\n checkedAt: z.iso.datetime().nullable(),\n checkError: z.string().nullable(),\n settings: StudioUpdateSettingsSchema,\n operation: StudioUpdateOperationSchema.nullable(),\n});\nexport type StudioUpdateStatus = z.infer<typeof StudioUpdateStatusSchema>;\n\nexport function newerStudioVersion(\n candidate: string,\n current: string,\n): boolean {\n const next = StudioReleaseVersionSchema.parse(candidate)\n .split(\".\")\n .map(BigInt);\n const previous = StudioReleaseVersionSchema.parse(current)\n .split(\".\")\n .map(BigInt);\n for (let i = 0; i < 3; i++) {\n if (next[i] !== previous[i]) return (next[i] ?? 0n) > (previous[i] ?? 0n);\n }\n return false;\n}\n\nexport function studioUpdateRunning(\n operation: StudioUpdateOperation | null,\n): boolean {\n return (\n !!operation &&\n operation.phase !== \"succeeded\" &&\n operation.phase !== \"failed\"\n );\n}\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":["import_zod","import_zod","import_zod"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/scores.ts","../src/tools.ts","../src/studio-updates.ts","../src/workflow-calls.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { FeedbackSummarySchema, StudioScoreSchema } from \"./scores\";\n\nexport * from \"./scores\";\n\n/** Studio read API compatibility changes only when the wire protocol breaks. */\nexport const STUDIO_API_PROTOCOL_VERSION = \"1\";\n\nimport {\n StudioToolSchema,\n ToolDiscoverySchema,\n ToolObservationSchema,\n WorkflowToolSchema,\n} from \"./tools\";\n\nexport type { StudioTool, WorkflowTool } from \"./tools\";\nexport {\n StudioToolSchema,\n ToolDiscoverySchema,\n ToolObservationSchema,\n ToolOutcomeSchema,\n WorkflowToolSchema,\n} from \"./tools\";\nexport const TELEMETRY_EVENT_TYPES = [\n \"span.started\",\n \"span.ended\",\n \"span.failed\",\n \"error.reported\",\n \"generation.completed\",\n \"tool.started\",\n \"tool.completed\",\n \"tool.failed\",\n \"tool.denied\",\n \"tool.cancelled\",\n \"tool.reused\",\n \"tool.waiting\",\n \"tool.suspended\",\n \"response.completed\",\n \"interrupt.created\",\n \"interrupt.resolved\",\n \"interrupt.expired\",\n \"interrupt.cancelled\",\n \"run.cancelled\",\n \"run.limit_reached\",\n \"workflow.suspended\",\n \"workflow.resumed\",\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 tools: z.array(WorkflowToolSchema).optional(),\n toolDiscovery: ToolDiscoverySchema.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()\n .superRefine((event, ctx) => {\n if (!event.type.startsWith(\"tool.\")) return;\n const canonical =\n event.payload.version === 1 ||\n [\n \"tool.denied\",\n \"tool.cancelled\",\n \"tool.reused\",\n \"tool.waiting\",\n \"tool.suspended\",\n ].includes(event.type);\n if (!canonical) return; // Previous SDK event envelopes remain readable.\n const parsed = ToolObservationSchema.strict().safeParse(event.payload);\n if (!parsed.success)\n for (const issue of parsed.error.issues)\n ctx.addIssue({ ...issue, path: [\"payload\", ...issue.path] });\n else {\n if (\n (parsed.data.errorType !== undefined ||\n parsed.data.errorMessage !== undefined) &&\n parsed.data.outcome !== \"fault\"\n )\n ctx.addIssue({\n code: \"custom\",\n path: [\"payload\"],\n message: \"Error diagnostics require a fault outcome.\",\n });\n const terminalOutcomes: Record<string, string> = {\n \"tool.completed\": \"success\",\n \"tool.failed\": \"fault\",\n \"tool.denied\": \"denied\",\n \"tool.cancelled\": \"cancelled\",\n };\n const expected = terminalOutcomes[event.type];\n if (expected && parsed.data.outcome !== expected)\n ctx.addIssue({\n code: \"custom\",\n path: [\"payload\", \"outcome\"],\n message: \"Outcome must match the tool event type.\",\n });\n if (\n event.type === \"tool.reused\" &&\n (parsed.data.executed || !parsed.data.source)\n )\n ctx.addIssue({\n code: \"custom\",\n path: [\"payload\"],\n message: \"Reuse must be unexecuted and reference its source.\",\n });\n }\n });\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 \"structured\",\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 .strip();\nexport const StudioInterruptValueSchema = z.union([\n z.record(z.string(), z.unknown()),\n z.array(z.unknown()),\n z.string(),\n z.number(),\n z.boolean(),\n]);\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 \"workflows\",\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 .strip();\nexport const StudioRunSchema = z\n .object({\n id: z.string().min(1),\n feedback: FeedbackSummarySchema.optional(),\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 .strip(),\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 .strip();\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 .strip();\nexport const StudioInterruptSchema = z\n .object({\n afterResponseCompleted: z.boolean().optional(),\n id: z.string().min(1),\n status: StudioInterruptStatusSchema,\n type: StudioInterruptTypeSchema,\n interactionMode: StudioInterruptInteractionModeSchema,\n contract: z.string().nullable().default(null),\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 request: z.record(z.string(), z.unknown()).nullable().default(null),\n requestCaptured: z.boolean().default(false),\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 responseValue: StudioInterruptValueSchema.nullable().default(null),\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 .strip();\nexport const StudioDetailEventSchema = z\n .object({\n id: z.string().min(1),\n // Studio readers must preserve future event kinds within the same API major.\n type: z.string().min(1),\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 .strip();\nexport const StudioWorkflowNodeSchema = z\n .object({\n tools: z.array(StudioToolSchema).optional(),\n toolDiscovery: ToolDiscoverySchema.optional(),\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 .strip();\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 .strip();\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 .strip();\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 .strip();\nexport const StudioRunsResponseSchema = z\n .object({\n runs: z.array(StudioRunSchema),\n totalCount: z.number().int().nonnegative(),\n })\n .strip();\nexport const StudioSessionsResponseSchema = z\n .object({\n sessions: z.array(StudioSessionSchema),\n totalCount: z.number().int().nonnegative(),\n })\n .strip();\nexport const StudioInterruptsResponseSchema = z\n .object({\n interrupts: z.array(StudioInterruptSchema),\n totalCount: z.number().int().nonnegative(),\n })\n .strip();\nexport const StudioRunDetailResponseSchema = z\n .object({\n run: StudioRunSchema,\n scores: z.array(StudioScoreSchema).optional(),\n canReview: z.boolean().optional(),\n reviewActorId: z.string().optional(),\n events: z.array(StudioDetailEventSchema),\n session: StudioSessionSchema.nullable(),\n interrupts: z.array(StudioInterruptSchema),\n updatedAt: z.string().datetime({ offset: true }),\n })\n .strip();\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 .strip();\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 .strip();\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 }).strip(),\n })\n .strip();\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 .strip();\nexport const StudioContextResponseSchema = z\n .object({\n organization: z\n .object({\n name: z.string().min(1),\n })\n .strip(),\n project: z\n .object({\n name: z.string().min(1),\n })\n .strip(),\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 .strip(),\n api: z\n .object({\n status: z.literal(\"ok\"),\n service: z.literal(\"kortyx-api\"),\n version: z.string().min(1),\n })\n .strip(),\n })\n .strip();\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 * from \"./studio-updates\";\nexport {\n projectWorkflowCalls,\n type StudioWorkflowCall,\n} from \"./workflow-calls\";\n","import { z } from \"zod\";\n\nexport const FEEDBACK_FILTERS = [\"positive\", \"negative\", \"unrated\"] as const;\nexport const FeedbackSummarySchema = z\n .object({\n positive: z.number().int().nonnegative(),\n negative: z.number().int().nonnegative(),\n })\n .strict();\n\nexport const FeedbackReasonSchema = z.enum([\n \"incorrect\",\n \"irrelevant\",\n \"incomplete\",\n \"unsafe\",\n \"other\",\n]);\nexport const ReviewVerdictSchema = z.enum([\n \"correct\",\n \"partially-correct\",\n \"incorrect\",\n]);\nconst runId = z.string().trim().min(1).max(512);\nconst actorId = z.string().trim().min(1).max(256);\nconst comment = z.string().trim().max(4000).nullable().optional();\n\n// This request is server-to-server. The application derives actorId from its\n// authenticated user and verifies that the user may rate the requested run.\nexport const UserFeedbackRequestSchema = z\n .object({\n runId,\n actorId,\n value: z.union([z.literal(0), z.literal(1)]),\n reasons: z.array(FeedbackReasonSchema).max(5).optional(),\n comment,\n })\n .strict();\nexport const ClearUserFeedbackRequestSchema = UserFeedbackRequestSchema.pick({\n runId: true,\n actorId: true,\n});\nexport const StudioReviewRequestSchema = z\n .object({ value: ReviewVerdictSchema, comment })\n .strict();\n\nconst BaseScoreSchema = z\n .object({\n id: z.string().uuid(),\n target: z.object({ type: z.literal(\"run\"), runId }).strict(),\n environment: z.string().min(1),\n name: z.string().min(1),\n source: z.enum([\"end-user\", \"human-review\", \"evaluator\"]),\n actorId,\n reasons: z.array(FeedbackReasonSchema),\n comment: z.string().nullable(),\n createdAt: z.string().datetime({ offset: true }),\n updatedAt: z.string().datetime({ offset: true }),\n })\n .strict();\nexport const StudioScoreSchema = z.discriminatedUnion(\"dataType\", [\n BaseScoreSchema.extend({\n dataType: z.literal(\"BOOLEAN\"),\n value: z.union([z.literal(0), z.literal(1)]),\n }),\n BaseScoreSchema.extend({\n dataType: z.literal(\"CATEGORICAL\"),\n value: z.string(),\n }),\n BaseScoreSchema.extend({\n dataType: z.literal(\"NUMERIC\"),\n value: z.number().finite(),\n }),\n]);\nexport const StudioScoreResponseSchema = z\n .object({ score: StudioScoreSchema })\n .strict();\nexport const ClearScoreResponseSchema = z\n .object({ ok: z.literal(true) })\n .strict();\n\nexport type FeedbackSummary = z.infer<typeof FeedbackSummarySchema>;\nexport type StudioScore = z.infer<typeof StudioScoreSchema>;\nexport type UserFeedbackRequest = z.infer<typeof UserFeedbackRequestSchema>;\nexport type StudioReviewRequest = z.infer<typeof StudioReviewRequestSchema>;\n\nexport function summarizeUserFeedback(\n scores: readonly StudioScore[],\n): FeedbackSummary {\n const feedback = { positive: 0, negative: 0 };\n for (const score of scores) {\n if (\n score.source !== \"end-user\" ||\n score.name !== \"user-feedback\" ||\n score.dataType !== \"BOOLEAN\"\n )\n continue;\n if (score.value === 1) feedback.positive += 1;\n if (score.value === 0) feedback.negative += 1;\n }\n return feedback;\n}\n","import { z } from \"zod\";\n\nexport const ToolOutcomeSchema = z.enum([\n \"success\",\n \"denied\",\n \"fault\",\n \"cancelled\",\n]);\nexport const ToolObservationSchema = z.object({\n version: z.literal(1),\n name: z.string().min(1).max(256),\n toolCallId: z.string().min(1),\n attemptId: z.string().min(1),\n callingMode: z.enum([\"direct\", \"model\"]),\n executed: z.boolean(),\n outcome: ToolOutcomeSchema.optional(),\n denialCode: z\n .string()\n .regex(/^[A-Z][A-Z0-9_]{0,63}$/)\n .optional(),\n errorType: z.string().max(256).optional(),\n errorMessage: z.string().max(8192).optional(),\n durationMs: z.number().finite().nonnegative().optional(),\n workflowId: z.string().optional(),\n nodeId: z.string().optional(),\n workflowRevisionId: z.string().optional(),\n runId: z.string().optional(),\n invocationId: z.string().optional(),\n parentInvocationId: z.string().optional(),\n branchId: z.string().optional(),\n observationKind: z.enum([\"reused\", \"waiting\"]).optional(),\n suspended: z.boolean().optional(),\n source: z\n .object({\n runId: z.string().optional(),\n invocationId: z.string().optional(),\n branchId: z.string().optional(),\n toolCallId: z.string(),\n attemptId: z.string(),\n })\n .strict()\n .optional(),\n});\nexport type ToolObservation = z.infer<typeof ToolObservationSchema>;\n\n/** Topology contains safe capability descriptions, never executable factories. */\nexport const WorkflowToolSchema = z\n .object({\n name: z.string().min(1).max(256),\n description: z.string().max(4096).optional(),\n callingMode: z.enum([\"direct\", \"model\"]),\n provenance: z.enum([\"source\", \"observed\"]),\n inputFields: z\n .array(\n z\n .object({ name: z.string(), type: z.string(), required: z.boolean() })\n .strict(),\n )\n .optional(),\n })\n .strict();\nexport const ToolDiscoverySchema = z\n .object({\n status: z.enum([\"complete\", \"unresolved\"]),\n publishedAt: z.string().datetime().optional(),\n warnings: z.array(z.string()).optional(),\n })\n .strict();\n\nexport const StudioToolSchema = WorkflowToolSchema.extend({\n callingMode: z.enum([\"direct\", \"model\", \"unknown\"]),\n calls: z.number().nonnegative(),\n replays: z.number().nonnegative(),\n successes: z.number().nonnegative(),\n denials: z.number().nonnegative(),\n faults: z.number().nonnegative(),\n cancellations: z.number().nonnegative(),\n p50DurationMs: z.number().nonnegative().nullable(),\n p95DurationMs: z.number().nonnegative().nullable(),\n}).strict();\nexport type WorkflowTool = z.infer<typeof WorkflowToolSchema>;\nexport type StudioTool = z.infer<typeof StudioToolSchema>;\n","import { z } from \"zod\";\n\nexport const StudioReleaseVersionSchema = z\n .string()\n .regex(/^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$/);\n\nexport const StudioReleaseDeploymentSchema = z.object({\n strategy: z.enum([\"rolling\", \"recreate\"]),\n});\n\nexport const StudioReleaseSchema = z.object({\n format: z.literal(1),\n installer: z.literal(1),\n version: StudioReleaseVersionSchema,\n api: z\n .string()\n .regex(/^ghcr\\.io\\/kortyx-io\\/kortyx-api@sha256:[a-f0-9]{64}$/),\n studio: z\n .string()\n .regex(/^ghcr\\.io\\/kortyx-io\\/kortyx-studio@sha256:[a-f0-9]{64}$/),\n deployment: StudioReleaseDeploymentSchema.default({\n strategy: \"recreate\",\n }),\n});\nexport type StudioRelease = z.infer<typeof StudioReleaseSchema>;\n\nexport const StudioUpdateSettingsSchema = z.object({\n automatic: z.boolean(),\n hourUtc: z.number().int().min(0).max(23),\n});\nexport type StudioUpdateSettings = z.infer<typeof StudioUpdateSettingsSchema>;\n\nexport const StudioUpdateOperationSchema = z.object({\n id: z.uuid(),\n from: z.string(),\n release: StudioReleaseSchema,\n phase: z.enum([\n \"starting\",\n \"pulling\",\n \"backup\",\n \"installing\",\n \"verifying\",\n \"succeeded\",\n \"failed\",\n ]),\n startedAt: z.iso.datetime(),\n updatedAt: z.iso.datetime(),\n backup: z.string().nullable(),\n messages: z.array(z.string()).max(100),\n});\nexport type StudioUpdateOperation = z.infer<typeof StudioUpdateOperationSchema>;\n\nexport const StudioUpdateStatusSchema = z.object({\n current: z.string().nullable(),\n available: StudioReleaseSchema.nullable(),\n checkedAt: z.iso.datetime().nullable(),\n checkError: z.string().nullable(),\n settings: StudioUpdateSettingsSchema,\n operation: StudioUpdateOperationSchema.nullable(),\n});\nexport type StudioUpdateStatus = z.infer<typeof StudioUpdateStatusSchema>;\n\nexport function newerStudioVersion(\n candidate: string,\n current: string,\n): boolean {\n const next = StudioReleaseVersionSchema.parse(candidate)\n .split(\".\")\n .map(BigInt);\n const previous = StudioReleaseVersionSchema.parse(current)\n .split(\".\")\n .map(BigInt);\n for (let i = 0; i < 3; i++) {\n if (next[i] !== previous[i]) return (next[i] ?? 0n) > (previous[i] ?? 0n);\n }\n return false;\n}\n\nexport function studioUpdateRunning(\n operation: StudioUpdateOperation | null,\n): boolean {\n return (\n !!operation &&\n operation.phase !== \"succeeded\" &&\n operation.phase !== \"failed\"\n );\n}\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":["import_zod","import_zod","import_zod"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kortyx/telemetry-contracts",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "private": false,
5
5
  "description": "Shared wire contracts for Kortyx telemetry ingestion and Studio reads.",
6
6
  "license": "Apache-2.0",