@kortyx/telemetry-contracts 0.10.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/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,
@@ -39,6 +40,7 @@ __export(index_exports, {
39
40
  StudioInterruptSchema: () => StudioInterruptSchema,
40
41
  StudioInterruptStatusSchema: () => StudioInterruptStatusSchema,
41
42
  StudioInterruptTypeSchema: () => StudioInterruptTypeSchema,
43
+ StudioInterruptValueSchema: () => StudioInterruptValueSchema,
42
44
  StudioInterruptsResponseSchema: () => StudioInterruptsResponseSchema,
43
45
  StudioMetricSchema: () => StudioMetricSchema,
44
46
  StudioPricingSourceSchema: () => StudioPricingSourceSchema,
@@ -397,6 +399,7 @@ function projectWorkflowCalls(events) {
397
399
  }
398
400
 
399
401
  // src/index.ts
402
+ var STUDIO_API_PROTOCOL_VERSION = "1";
400
403
  var TELEMETRY_EVENT_TYPES = [
401
404
  "span.started",
402
405
  "span.ended",
@@ -418,6 +421,8 @@ var TELEMETRY_EVENT_TYPES = [
418
421
  "interrupt.cancelled",
419
422
  "run.cancelled",
420
423
  "run.limit_reached",
424
+ "workflow.suspended",
425
+ "workflow.resumed",
421
426
  "workflow.transitioned",
422
427
  "workflow.call.started",
423
428
  "workflow.call.suspended",
@@ -741,6 +746,7 @@ var StudioInterruptTypeSchema = import_zod4.z.enum([
741
746
  "choice",
742
747
  "multi-choice",
743
748
  "text",
749
+ "structured",
744
750
  "unknown"
745
751
  ]);
746
752
  var StudioInterruptInteractionModeSchema = import_zod4.z.enum([
@@ -753,7 +759,14 @@ var StudioInterruptOptionSchema = import_zod4.z.object({
753
759
  id: import_zod4.z.string().min(1),
754
760
  label: import_zod4.z.string().min(1),
755
761
  description: import_zod4.z.string().nullable()
756
- }).strict();
762
+ }).strip();
763
+ var StudioInterruptValueSchema = import_zod4.z.union([
764
+ import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown()),
765
+ import_zod4.z.array(import_zod4.z.unknown()),
766
+ import_zod4.z.string(),
767
+ import_zod4.z.number(),
768
+ import_zod4.z.boolean()
769
+ ]);
757
770
  var StudioResumeOutcomeSchema = import_zod4.z.enum([
758
771
  "resumed",
759
772
  "resume failed",
@@ -798,7 +811,7 @@ var StudioMetricSchema = import_zod4.z.object({
798
811
  averageTokens: import_zod4.z.number().nonnegative().nullable(),
799
812
  averageCost: import_zod4.z.number().nonnegative().nullable(),
800
813
  currency: import_zod4.z.string().nullable()
801
- }).strict();
814
+ }).strip();
802
815
  var StudioRunSchema = import_zod4.z.object({
803
816
  id: import_zod4.z.string().min(1),
804
817
  feedback: FeedbackSummarySchema.optional(),
@@ -818,7 +831,7 @@ var StudioRunSchema = import_zod4.z.object({
818
831
  workflowId: import_zod4.z.string().min(1),
819
832
  workflowRevisionId: import_zod4.z.string().nullable(),
820
833
  declaredVersion: import_zod4.z.string().nullable()
821
- }).strict()
834
+ }).strip()
822
835
  ),
823
836
  workflowRevisionId: import_zod4.z.string().nullable(),
824
837
  declaredVersion: import_zod4.z.string().nullable(),
@@ -844,7 +857,7 @@ var StudioRunSchema = import_zod4.z.object({
844
857
  interruptId: import_zod4.z.string().nullable().optional(),
845
858
  interruptStatus: StudioInterruptStatusSchema.nullable().optional(),
846
859
  interruptExpiresAt: import_zod4.z.string().datetime({ offset: true }).nullable().optional()
847
- }).strict();
860
+ }).strip();
848
861
  var StudioSessionSchema = import_zod4.z.object({
849
862
  id: import_zod4.z.string().min(1),
850
863
  status: StudioRunStatusSchema,
@@ -876,13 +889,14 @@ var StudioSessionSchema = import_zod4.z.object({
876
889
  models: import_zod4.z.array(import_zod4.z.string()),
877
890
  tags: import_zod4.z.array(import_zod4.z.string()),
878
891
  environment: import_zod4.z.string().min(1)
879
- }).strict();
892
+ }).strip();
880
893
  var StudioInterruptSchema = import_zod4.z.object({
881
894
  afterResponseCompleted: import_zod4.z.boolean().optional(),
882
895
  id: import_zod4.z.string().min(1),
883
896
  status: StudioInterruptStatusSchema,
884
897
  type: StudioInterruptTypeSchema,
885
898
  interactionMode: StudioInterruptInteractionModeSchema,
899
+ contract: import_zod4.z.string().nullable().default(null),
886
900
  schemaId: import_zod4.z.string().nullable(),
887
901
  schemaVersion: import_zod4.z.string().nullable(),
888
902
  createdAt: import_zod4.z.string().datetime({ offset: true }),
@@ -890,6 +904,8 @@ var StudioInterruptSchema = import_zod4.z.object({
890
904
  expiresAt: import_zod4.z.string().datetime({ offset: true }).nullable(),
891
905
  question: import_zod4.z.string().nullable(),
892
906
  contentCaptured: import_zod4.z.boolean(),
907
+ request: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown()).nullable().default(null),
908
+ requestCaptured: import_zod4.z.boolean().default(false),
893
909
  optionCount: import_zod4.z.number().int().nonnegative().nullable(),
894
910
  options: import_zod4.z.array(StudioInterruptOptionSchema).nullable(),
895
911
  workflowId: import_zod4.z.string().min(1),
@@ -898,6 +914,7 @@ var StudioInterruptSchema = import_zod4.z.object({
898
914
  userId: import_zod4.z.string().nullable(),
899
915
  tenantId: import_zod4.z.string().nullable(),
900
916
  response: import_zod4.z.string().nullable(),
917
+ responseValue: StudioInterruptValueSchema.nullable().default(null),
901
918
  responseCaptured: import_zod4.z.boolean(),
902
919
  resumeOutcome: StudioResumeOutcomeSchema.nullable(),
903
920
  resumeError: import_zod4.z.string().nullable(),
@@ -905,10 +922,11 @@ var StudioInterruptSchema = import_zod4.z.object({
905
922
  resumeToken: import_zod4.z.string().nullable(),
906
923
  resolvedBy: import_zod4.z.string().nullable(),
907
924
  environment: import_zod4.z.string().min(1)
908
- }).strict();
925
+ }).strip();
909
926
  var StudioDetailEventSchema = import_zod4.z.object({
910
927
  id: import_zod4.z.string().min(1),
911
- type: TelemetryEventTypeSchema,
928
+ // Studio readers must preserve future event kinds within the same API major.
929
+ type: import_zod4.z.string().min(1),
912
930
  occurredAt: import_zod4.z.string().datetime({ offset: true }),
913
931
  receivedAt: import_zod4.z.string().datetime({ offset: true }),
914
932
  environment: import_zod4.z.string().min(1),
@@ -927,7 +945,7 @@ var StudioDetailEventSchema = import_zod4.z.object({
927
945
  tags: import_zod4.z.array(import_zod4.z.string()),
928
946
  metadata: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown()).nullable(),
929
947
  payload: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown())
930
- }).strict();
948
+ }).strip();
931
949
  var StudioWorkflowNodeSchema = import_zod4.z.object({
932
950
  tools: import_zod4.z.array(StudioToolSchema).optional(),
933
951
  toolDiscovery: ToolDiscoverySchema.optional(),
@@ -938,13 +956,13 @@ var StudioWorkflowNodeSchema = import_zod4.z.object({
938
956
  provider: import_zod4.z.string().nullable(),
939
957
  model: import_zod4.z.string().nullable(),
940
958
  metrics: StudioMetricSchema
941
- }).strict();
959
+ }).strip();
942
960
  var StudioWorkflowInternalEdgeSchema = import_zod4.z.object({
943
961
  id: import_zod4.z.string().min(1),
944
962
  source: import_zod4.z.string().min(1),
945
963
  target: import_zod4.z.string().min(1),
946
964
  condition: import_zod4.z.string().nullable()
947
- }).strict();
965
+ }).strip();
948
966
  var StudioWorkflowTransitionSchema = import_zod4.z.object({
949
967
  kind: import_zod4.z.enum(["call", "handoff"]).optional(),
950
968
  id: import_zod4.z.string().min(1),
@@ -956,7 +974,7 @@ var StudioWorkflowTransitionSchema = import_zod4.z.object({
956
974
  successRate: import_zod4.z.number().min(0).max(100).nullable(),
957
975
  medianDurationMs: import_zod4.z.number().nonnegative().nullable(),
958
976
  errorRate: import_zod4.z.number().min(0).max(100).nullable()
959
- }).strict();
977
+ }).strip();
960
978
  var StudioWorkflowSchema = import_zod4.z.object({
961
979
  id: import_zod4.z.string().min(1),
962
980
  name: import_zod4.z.string().min(1),
@@ -970,19 +988,19 @@ var StudioWorkflowSchema = import_zod4.z.object({
970
988
  metrics: StudioMetricSchema,
971
989
  nodes: import_zod4.z.array(StudioWorkflowNodeSchema),
972
990
  internalEdges: import_zod4.z.array(StudioWorkflowInternalEdgeSchema)
973
- }).strict();
991
+ }).strip();
974
992
  var StudioRunsResponseSchema = import_zod4.z.object({
975
993
  runs: import_zod4.z.array(StudioRunSchema),
976
994
  totalCount: import_zod4.z.number().int().nonnegative()
977
- }).strict();
995
+ }).strip();
978
996
  var StudioSessionsResponseSchema = import_zod4.z.object({
979
997
  sessions: import_zod4.z.array(StudioSessionSchema),
980
998
  totalCount: import_zod4.z.number().int().nonnegative()
981
- }).strict();
999
+ }).strip();
982
1000
  var StudioInterruptsResponseSchema = import_zod4.z.object({
983
1001
  interrupts: import_zod4.z.array(StudioInterruptSchema),
984
1002
  totalCount: import_zod4.z.number().int().nonnegative()
985
- }).strict();
1003
+ }).strip();
986
1004
  var StudioRunDetailResponseSchema = import_zod4.z.object({
987
1005
  run: StudioRunSchema,
988
1006
  scores: import_zod4.z.array(StudioScoreSchema).optional(),
@@ -992,21 +1010,21 @@ var StudioRunDetailResponseSchema = import_zod4.z.object({
992
1010
  session: StudioSessionSchema.nullable(),
993
1011
  interrupts: import_zod4.z.array(StudioInterruptSchema),
994
1012
  updatedAt: import_zod4.z.string().datetime({ offset: true })
995
- }).strict();
1013
+ }).strip();
996
1014
  var StudioSessionDetailResponseSchema = import_zod4.z.object({
997
1015
  session: StudioSessionSchema,
998
1016
  runs: import_zod4.z.array(StudioRunSchema),
999
1017
  events: import_zod4.z.array(StudioDetailEventSchema),
1000
1018
  interrupts: import_zod4.z.array(StudioInterruptSchema),
1001
1019
  updatedAt: import_zod4.z.string().datetime({ offset: true })
1002
- }).strict();
1020
+ }).strip();
1003
1021
  var StudioInterruptDetailResponseSchema = import_zod4.z.object({
1004
1022
  interrupt: StudioInterruptSchema,
1005
1023
  events: import_zod4.z.array(StudioDetailEventSchema),
1006
1024
  run: StudioRunSchema.nullable(),
1007
1025
  session: StudioSessionSchema.nullable(),
1008
1026
  updatedAt: import_zod4.z.string().datetime({ offset: true })
1009
- }).strict();
1027
+ }).strip();
1010
1028
  var StudioWorkflowsResponseSchema = import_zod4.z.object({
1011
1029
  workflows: import_zod4.z.array(StudioWorkflowSchema),
1012
1030
  observedCalls: import_zod4.z.array(
@@ -1020,33 +1038,33 @@ var StudioWorkflowsResponseSchema = import_zod4.z.object({
1020
1038
  cohort: StudioTimeRangeContextSchema.extend({
1021
1039
  workflowId: import_zod4.z.string().nullable(),
1022
1040
  version: import_zod4.z.string().nullable()
1023
- }).strict()
1024
- }).strict();
1041
+ }).strip()
1042
+ }).strip();
1025
1043
  var StudioCatalogsResponseSchema = import_zod4.z.object({
1026
1044
  environments: import_zod4.z.array(import_zod4.z.string()),
1027
1045
  providers: import_zod4.z.array(import_zod4.z.string()),
1028
1046
  models: import_zod4.z.array(import_zod4.z.string()),
1029
1047
  workflows: import_zod4.z.array(import_zod4.z.string()),
1030
1048
  tags: import_zod4.z.array(import_zod4.z.string())
1031
- }).strict();
1049
+ }).strip();
1032
1050
  var StudioContextResponseSchema = import_zod4.z.object({
1033
1051
  organization: import_zod4.z.object({
1034
1052
  name: import_zod4.z.string().min(1)
1035
- }).strict(),
1053
+ }).strip(),
1036
1054
  project: import_zod4.z.object({
1037
1055
  name: import_zod4.z.string().min(1)
1038
- }).strict(),
1056
+ }).strip(),
1039
1057
  environments: import_zod4.z.array(import_zod4.z.string()),
1040
1058
  apiKey: import_zod4.z.object({
1041
1059
  mode: import_zod4.z.enum(["test", "live"]),
1042
1060
  scopes: import_zod4.z.array(import_zod4.z.string())
1043
- }).strict(),
1061
+ }).strip(),
1044
1062
  api: import_zod4.z.object({
1045
1063
  status: import_zod4.z.literal("ok"),
1046
1064
  service: import_zod4.z.literal("kortyx-api"),
1047
1065
  version: import_zod4.z.string().min(1)
1048
- }).strict()
1049
- }).strict();
1066
+ }).strip()
1067
+ }).strip();
1050
1068
  // Annotate the CommonJS export names for ESM import in node:
1051
1069
  0 && (module.exports = {
1052
1070
  ClearScoreResponseSchema,
@@ -1057,6 +1075,7 @@ var StudioContextResponseSchema = import_zod4.z.object({
1057
1075
  FeedbackReasonSchema,
1058
1076
  FeedbackSummarySchema,
1059
1077
  ReviewVerdictSchema,
1078
+ STUDIO_API_PROTOCOL_VERSION,
1060
1079
  STUDIO_TIME_RANGES,
1061
1080
  StudioCatalogsResponseSchema,
1062
1081
  StudioChangeResourceSchema,
@@ -1069,6 +1088,7 @@ var StudioContextResponseSchema = import_zod4.z.object({
1069
1088
  StudioInterruptSchema,
1070
1089
  StudioInterruptStatusSchema,
1071
1090
  StudioInterruptTypeSchema,
1091
+ StudioInterruptValueSchema,
1072
1092
  StudioInterruptsResponseSchema,
1073
1093
  StudioMetricSchema,
1074
1094
  StudioPricingSourceSchema,
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 \"unknown\",\n]);\nexport const StudioInterruptInteractionModeSchema = z.enum([\n \"static-options\",\n \"dynamic-picker\",\n \"freeform\",\n \"unknown\",\n]);\nexport const StudioInterruptOptionSchema = z\n .object({\n id: z.string().min(1),\n label: z.string().min(1),\n description: z.string().nullable(),\n })\n .strict();\nexport const StudioResumeOutcomeSchema = z.enum([\n \"resumed\",\n \"resume failed\",\n \"expired before resume\",\n \"cancelled\",\n]);\nexport const StudioWorkflowHealthSchema = z.enum([\n \"unknown\",\n \"healthy\",\n \"degraded\",\n \"failing\",\n \"idle\",\n]);\nexport const StudioPricingStatusSchema = z.enum([\n \"priced\",\n \"unpriced\",\n \"unknown\",\n]);\nexport const StudioPricingSourceSchema =\n TelemetryPricingSourceSchema.nullable();\nexport const StudioChangeResourceSchema = z.enum([\n \"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 schemaId: z.string().nullable(),\n schemaVersion: z.string().nullable(),\n createdAt: z.string().datetime({ offset: true }),\n resolvedAt: z.string().datetime({ offset: true }).nullable(),\n expiresAt: z.string().datetime({ offset: true }).nullable(),\n question: z.string().nullable(),\n contentCaptured: z.boolean(),\n optionCount: z.number().int().nonnegative().nullable(),\n options: z.array(StudioInterruptOptionSchema).nullable(),\n workflowId: z.string().min(1),\n nodeId: z.string().nullable(),\n sessionId: z.string().nullable(),\n userId: z.string().nullable(),\n tenantId: z.string().nullable(),\n response: z.string().nullable(),\n responseCaptured: z.boolean(),\n resumeOutcome: StudioResumeOutcomeSchema.nullable(),\n resumeError: z.string().nullable(),\n runId: z.string().min(1),\n resumeToken: z.string().nullable(),\n resolvedBy: z.string().nullable(),\n environment: z.string().min(1),\n })\n .strict();\nexport const StudioDetailEventSchema = z\n .object({\n id: z.string().min(1),\n type: TelemetryEventTypeSchema,\n occurredAt: z.string().datetime({ offset: true }),\n receivedAt: z.string().datetime({ offset: true }),\n environment: z.string().min(1),\n serviceName: z.string().min(1),\n deploymentRef: z.string().nullable(),\n traceId: z.string().nullable(),\n spanId: z.string().nullable(),\n parentSpanId: z.string().nullable(),\n runId: z.string().min(1),\n sessionId: z.string().nullable(),\n workflowId: z.string().min(1),\n workflowRevisionId: z.string().nullable(),\n nodeId: z.string().nullable(),\n userId: z.string().nullable(),\n tenantId: z.string().nullable(),\n tags: z.array(z.string()),\n metadata: z.record(z.string(), z.unknown()).nullable(),\n payload: z.record(z.string(), z.unknown()),\n })\n .strict();\nexport const StudioWorkflowNodeSchema = z\n .object({\n 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.10.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",