@kortyx/telemetry-contracts 0.17.2 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/scores.ts","../src/diagnostics.ts","../src/tools.ts","../src/prompts.ts","../src/studio-updates.ts","../src/workflow-calls.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { FeedbackSummarySchema, StudioScoreSchema } from \"./scores\";\n\nexport * from \"./diagnostics\";\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 \"output.emitted\",\n \"output.invalidated\",\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 \"evals\",\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 environment: z.string().min(1).optional(),\n resources: z.array(StudioChangeResourceSchema).min(1),\n })\n .strict();\n/** Known subtotals stay separate by currency; completeness never implies conversion. */\nexport const StudioCostSummarySchema = z\n .object({\n amounts: z.array(\n z\n .object({\n amount: z.number().nonnegative(),\n currency: z.string().nullable(),\n })\n .strip(),\n ),\n complete: z.boolean(),\n })\n .strip();\nexport type StudioCostSummary = z.infer<typeof StudioCostSummarySchema>;\n\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 averageCostSummary: StudioCostSummarySchema.optional(),\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 costSummary: StudioCostSummarySchema.optional(),\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 costSummary: StudioCostSummarySchema.optional(),\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 .nullable(),\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 \"./prompts\";\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 DIAGNOSTIC_LIMITS = {\n bytes: 8 * 1024 * 1024,\n partBytes: 64 * 1024,\n parts: 128,\n nodes: 10_000,\n depth: 128,\n properties: 1_000,\n} as const;\n\nexport const DiagnosticNoteSchema = z\n .object({\n path: z.string().max(4096),\n reason: z.string().max(128),\n originalBytes: z.number().int().nonnegative().optional(),\n originalCount: z.number().int().nonnegative().optional(),\n })\n .strict();\nexport const DiagnosticContentSchema = z\n .object({\n schemaVersion: z.literal(1),\n data: z.record(z.string(), z.unknown()),\n capture: z\n .object({\n status: z.enum([\"complete\", \"partial\", \"failed\"]),\n omissions: z.array(DiagnosticNoteSchema).max(10_000),\n redactions: z.array(DiagnosticNoteSchema).max(10_000),\n })\n .strict(),\n })\n .strict();\nexport type DiagnosticContent = z.infer<typeof DiagnosticContentSchema>;\nexport type DiagnosticNote = z.infer<typeof DiagnosticNoteSchema>;\n\nexport const DiagnosticCorrelationSchema = z\n .object({\n runId: z.string().optional(),\n workflowId: z.string().optional(),\n nodeId: z.string().optional(),\n sessionId: z.string().optional(),\n invocationId: z.string().optional(),\n parentInvocationId: z.string().optional(),\n branchId: z.string().optional(),\n toolCallId: z.string().optional(),\n attemptId: z.string().optional(),\n workflowRevisionId: z.string().optional(),\n traceId: z.string().optional(),\n spanId: z.string().optional(),\n parentSpanId: z.string().optional(),\n })\n .strict();\n\nexport const DiagnosticManifestSchema = z\n .object({\n schemaVersion: z.literal(1),\n diagnosticId: z.string().uuid(),\n occurrenceId: z.string().uuid(),\n occurredAt: z.string().datetime({ offset: true }),\n environment: z.string().min(1).max(256),\n service: z\n .object({\n name: z.string().min(1).max(256),\n deploymentRef: z.string().max(1024).optional(),\n })\n .strict(),\n correlation: DiagnosticCorrelationSchema,\n handled: z.boolean(),\n severity: z.enum([\"warning\", \"error\"]),\n mechanism: z.enum([\"span\", \"report\", \"tool\"]),\n summary: z\n .object({ type: z.string().max(256), message: z.string().max(8192) })\n .strict(),\n captureStatus: z.enum([\"complete\", \"partial\", \"failed\"]),\n checksum: z.string().regex(/^[a-f0-9]{64}$/),\n byteLength: z.number().int().min(1).max(DIAGNOSTIC_LIMITS.bytes),\n partCount: z.number().int().min(1).max(DIAGNOSTIC_LIMITS.parts),\n })\n .strict()\n .superRefine((value, ctx) => {\n if (\n value.partCount !==\n Math.ceil(value.byteLength / DIAGNOSTIC_LIMITS.partBytes)\n )\n ctx.addIssue({\n code: \"custom\",\n path: [\"partCount\"],\n message: \"Part count does not match byte length.\",\n });\n });\nexport type DiagnosticManifest = z.infer<typeof DiagnosticManifestSchema>;\nexport const DiagnosticPartSchema = z\n .object({\n index: z\n .number()\n .int()\n .min(0)\n .max(DIAGNOSTIC_LIMITS.parts - 1),\n data: z\n .string()\n .max(Math.ceil(DIAGNOSTIC_LIMITS.partBytes / 3) * 4)\n .regex(\n /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,\n ),\n })\n .strict();\nexport const DiagnosticResponseSchema = z\n .object({\n manifest: DiagnosticManifestSchema,\n state: z.enum([\"pending\", \"available\", \"incomplete\", \"expired\"]),\n receivedParts: z.number().int().nonnegative(),\n expiresAt: z.string().datetime({ offset: true }),\n content: DiagnosticContentSchema.nullable(),\n contentChecksum: z\n .string()\n .regex(/^[a-f0-9]{64}$/)\n .nullable(),\n contentByteLength: z.number().int().nonnegative().nullable(),\n })\n .strict();\nexport type DiagnosticResponse = z.infer<typeof DiagnosticResponseSchema>;\n\n/** Shared mandatory policy for diagnostic keys and embedded credential text. */\nexport const isPrivateDiagnosticField = (key: string) =>\n /^(?:password|passwd|secret|clientsecret|privatekey|credential|credentials|authorization|proxyauthorization|bearer|bearertoken|jwt|token|accesstoken|refreshtoken|authtoken|apikey|xapikey|apitoken|xauthtoken|xaccesstoken|awsaccesskeyid|awssecretaccesskey|awssessiontoken|xamzsecuritytoken|apisecret|cookie|setcookie|resumehandle|resumetoken)$/.test(\n key.toLowerCase().replace(/[^a-z0-9]/g, \"\"),\n );\n\nexport function redactDiagnosticText(value: string): string {\n return value\n .replace(/\\bBearer\\s+[A-Za-z0-9._~+/-]+=*/gi, \"Bearer [REDACTED]\")\n .replace(\n /\\b(?:ktyx_(?:test|live)_[^\\s\"'<>]+|sk-(?:proj-|ant-)?[A-Za-z0-9_-]{12,}|AIza[A-Za-z0-9_-]{20,}|eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+)/g,\n \"[REDACTED]\",\n )\n .replace(\n /([\"']?(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|passwd|secret|token|client[_-]?secret|authorization|cookie)[\"']?\\s*[:=]\\s*)([\"'])(.*?)\\2/gi,\n \"$1$2[REDACTED]$2\",\n )\n .replace(\n /(\\b(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|passwd|secret|token|client[_-]?secret)\\s*[:=]\\s*)(?![\"'[])[^\\s,;}&]+/gi,\n \"$1[REDACTED]\",\n )\n .replace(\n /(\\b(?:authorization|proxy-authorization)\\s*:\\s*Basic\\s+)[A-Za-z0-9+/=]+/gi,\n \"$1[REDACTED]\",\n )\n .replace(\n /([?&](?:api[_-]?key|token|access[_-]?token|password)=)[^&#\\s]+/gi,\n \"$1[REDACTED]\",\n )\n .replace(/(https?:\\/\\/)[^\\s/@:]+:[^\\s/@]+@/gi, \"$1[REDACTED]@\");\n}\n\n/** A summary intentionally omits custom fields; the diagnostic preserves them. */\nexport function summarizeDiagnostic(\n data: Record<string, unknown>,\n depth = 0,\n): { type: string; message: string; stack?: string; cause?: unknown } {\n return {\n type: typeof data.type === \"string\" ? data.type.slice(0, 256) : \"Error\",\n message:\n typeof data.message === \"string\"\n ? data.message.slice(0, 8192)\n : \"Execution reported a fault.\",\n ...(typeof data.stack === \"string\"\n ? { stack: data.stack.slice(0, 32768) }\n : {}),\n ...(depth < 4 &&\n data.cause &&\n typeof data.cause === \"object\" &&\n !Array.isArray(data.cause)\n ? {\n cause: summarizeDiagnostic(\n data.cause as Record<string, unknown>,\n depth + 1,\n ),\n }\n : {}),\n };\n}\n\n/** Defense in depth for JSON received directly by the diagnostic API. */\nexport function redactDiagnosticContent(\n content: DiagnosticContent,\n): DiagnosticContent {\n const redactions = [...content.capture.redactions];\n const omissions = [...content.capture.omissions];\n let nodes = 0;\n const visit = (value: unknown, path: string, depth = 0): unknown => {\n if (++nodes > DIAGNOSTIC_LIMITS.nodes || depth > DIAGNOSTIC_LIMITS.depth) {\n const reason =\n depth > DIAGNOSTIC_LIMITS.depth\n ? \"server_depth_limit\"\n : \"server_node_limit\";\n if (omissions.length < 10_000)\n omissions.push({ path: path.slice(0, 4096), reason });\n return { $omitted: reason };\n }\n if (typeof value === \"string\") {\n const clean = redactDiagnosticText(value);\n if (clean !== value && redactions.length < 10_000)\n redactions.push({\n path: path.slice(0, 4096),\n reason: \"server_credential_text\",\n });\n return clean;\n }\n if (Array.isArray(value)) {\n if (\n value.length > DIAGNOSTIC_LIMITS.properties &&\n omissions.length < 10_000\n )\n omissions.push({\n path: path.slice(0, 4096),\n reason: \"server_collection_limit\",\n originalCount: value.length,\n });\n return value\n .slice(0, DIAGNOSTIC_LIMITS.properties)\n .map((item, index) => visit(item, `${path}/${index}`, depth + 1));\n }\n if (value && typeof value === \"object\") {\n const keys = Object.keys(value);\n if (\n keys.length > DIAGNOSTIC_LIMITS.properties &&\n omissions.length < 10_000\n )\n omissions.push({\n path: path.slice(0, 4096),\n reason: \"server_property_limit\",\n originalCount: keys.length,\n });\n return Object.fromEntries(\n keys.slice(0, DIAGNOSTIC_LIMITS.properties).map((key) => {\n const nested = (value as Record<string, unknown>)[key];\n if (isPrivateDiagnosticField(key)) {\n if (redactions.length < 10_000 && nested !== \"[REDACTED]\")\n redactions.push({\n path: `${path}/${key}`.slice(0, 4096),\n reason: \"server_credential_field\",\n });\n return [key, \"[REDACTED]\"];\n }\n return [key, visit(nested, `${path}/${key}`, depth + 1)];\n }),\n );\n }\n return value;\n };\n return {\n ...content,\n data: visit(content.data, \"#/data\") as Record<string, unknown>,\n capture: {\n ...content.capture,\n status:\n content.capture.status === \"failed\"\n ? \"failed\"\n : omissions.length\n ? \"partial\"\n : \"complete\",\n omissions: omissions.map((note) => ({\n ...note,\n path: redactDiagnosticText(note.path),\n reason: redactDiagnosticText(note.reason),\n })),\n redactions: redactions.map((note) => ({\n ...note,\n path: redactDiagnosticText(note.path),\n reason: redactDiagnosticText(note.reason),\n })),\n },\n };\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 diagnosticId: z.string().uuid().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 {\n PromptContentSchema,\n PromptKeySchema,\n PromptTagSchema,\n PromptVersionSchema,\n} from \"@kortyx/prompts/browser\";\nimport { z } from \"zod\";\n\nconst name = z.string().trim().min(1).max(200);\nconst version = z.number().int().positive();\nconst revision = z.number().int().nonnegative();\nexport const PromptCategorySchema = z.object({\n id: z.uuid(),\n name,\n parentId: z.uuid().nullable(),\n revision,\n});\nexport const PromptGroupSchema = z.object({\n id: z.uuid(),\n name,\n revision,\n members: z\n .array(\n z.object({\n promptId: z.uuid(),\n version,\n key: PromptKeySchema.optional(),\n name: name.optional(),\n archived: z.boolean().optional(),\n }),\n )\n .max(100),\n updatedAt: z.string(),\n});\nexport const PromptAssignmentSchema = z.object({\n tag: PromptTagSchema,\n version,\n revision,\n updatedAt: z.string(),\n});\nexport const PromptAssetSchema = z.object({\n id: z.uuid(),\n key: PromptKeySchema,\n name,\n categoryId: z.uuid().nullable(),\n latestVersion: version,\n revision,\n archived: z.boolean(),\n updatedAt: z.string(),\n assignments: z.array(PromptAssignmentSchema),\n});\nexport const PromptLibrarySchema = z.object({\n schemaVersion: z.literal(1),\n assets: z.array(PromptAssetSchema),\n categories: z.array(PromptCategorySchema),\n groups: z.array(PromptGroupSchema),\n totalCount: z.number().int().nonnegative(),\n nextCursor: z.string().nullable(),\n permissions: z.object({\n edit: z.boolean(),\n promote: z.boolean(),\n review: z.boolean(),\n settings: z.boolean(),\n }),\n});\nexport const PromptStoredVersionSchema = PromptVersionSchema.extend({\n promptId: z.uuid(),\n note: z.string(),\n author: z.string(),\n createdAt: z.string(),\n origin: z\n .object({\n apiUrl: z.string(),\n projectId: z.string(),\n key: z.string(),\n version,\n hash: z.string(),\n })\n .nullable(),\n});\nexport const PromptPolicySchema = z.object({\n revision,\n requireTest: z.boolean(),\n requireChangeNote: z.boolean().default(false),\n requiredSuites: z.array(z.object({ targetId: name, suiteId: name })).max(100),\n requiredReviews: z.number().int().min(0).max(10),\n allowException: z.boolean(),\n});\nexport const PromptEvidenceSchema = z.object({\n environment: z.string(),\n runId: z.string(),\n evaluationId: z.string().nullable().optional(),\n targetId: z.string(),\n suiteId: z.string(),\n suiteRevision: z.string().optional(),\n status: z.string(),\n version,\n fullSuite: z.boolean(),\n usage: z.enum([\n \"verified\",\n \"pending\",\n \"not-used\",\n \"mismatch\",\n \"context-differs\",\n ]),\n groupName: z.string().nullable(),\n createdAt: z.string(),\n companions: z.array(z.object({ key: PromptKeySchema, version })),\n});\nexport const PromptUsageSchema = z.object({\n eventId: z.string(),\n runId: z.string(),\n sessionId: z.string().nullable(),\n nodeId: z.string().nullable(),\n version: z.number().int(),\n hash: z.string().nullable(),\n source: z.string().nullable(),\n model: z.string().nullable(),\n environment: z.string(),\n occurredAt: z.string(),\n captured: z.boolean(),\n});\nexport const PromptDetailSchema = z.object({\n asset: PromptAssetSchema,\n versions: z.array(PromptStoredVersionSchema),\n versionsNextCursor: z.string().nullable().optional(),\n draft: PromptContentSchema.nullable(),\n draftBase: z.number().int().nullable(),\n draftRevision: revision,\n evidence: z.array(PromptEvidenceSchema),\n usage: z.array(PromptUsageSchema),\n activity: z.array(\n z.object({\n id: z.string(),\n action: z.string(),\n actor: z.string(),\n details: z.record(z.string(), z.unknown()),\n createdAt: z.string(),\n }),\n ),\n policies: z.array(PromptPolicySchema),\n reviews: z\n .array(\n z.object({\n version,\n hash: z.string(),\n independent: z.boolean(),\n reviewer: z.string(),\n note: z.string(),\n createdAt: z.string(),\n }),\n )\n .optional(),\n});\nexport const PromptMutationSchema = z.discriminatedUnion(\"action\", [\n z\n .object({\n action: z.literal(\"tag-set\"),\n id: z.uuid(),\n tag: PromptTagSchema.refine(\n (tag) => tag !== \"live\",\n \"Use promotion to update live.\",\n ),\n version,\n expectedRevision: revision,\n })\n .strict(),\n z\n .object({\n action: z.literal(\"tag-remove\"),\n id: z.uuid(),\n tag: PromptTagSchema.refine(\n (tag) => tag !== \"live\",\n \"The live tag cannot be removed manually.\",\n ),\n expectedRevision: revision,\n })\n .strict(),\n\n z\n .object({\n action: z.literal(\"bulk-update\"),\n assets: z\n .array(z.object({ id: z.uuid(), expectedRevision: revision }))\n .min(1)\n .max(100),\n categoryId: z.uuid().nullable().optional(),\n archived: z.boolean().optional(),\n })\n .strict()\n .refine(\n (value) => value.categoryId !== undefined || value.archived !== undefined,\n \"Choose a category or archive state.\",\n ),\n z\n .object({\n action: z.literal(\"create\"),\n key: PromptKeySchema,\n name,\n categoryId: z.uuid().nullable().default(null),\n content: PromptContentSchema,\n note: z.string().trim().max(2000).default(\"\"),\n idempotencyKey: z.uuid().optional(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"draft\"),\n id: z.uuid(),\n content: PromptContentSchema,\n baseVersion: version,\n expectedRevision: revision,\n })\n .strict(),\n z\n .object({\n action: z.literal(\"discard-draft\"),\n id: z.uuid(),\n expectedRevision: revision,\n })\n .strict(),\n z\n .object({\n action: z.literal(\"save\"),\n id: z.uuid(),\n content: PromptContentSchema,\n baseVersion: version,\n expectedHash: z.string().regex(/^[a-f0-9]{64}$/),\n expectedDraftRevision: revision.optional(),\n note: z.string().trim().max(2000).default(\"\"),\n idempotencyKey: z.uuid(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"update\"),\n id: z.uuid(),\n expectedRevision: revision,\n name: name.optional(),\n categoryId: z.uuid().nullable().optional(),\n archived: z.boolean().optional(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"category-create\"),\n path: z.string().trim().min(1).max(1000),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"category-update\"),\n id: z.uuid(),\n expectedRevision: revision,\n name: name.optional(),\n parentId: z.uuid().nullable().optional(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"category-delete\"),\n id: z.uuid(),\n expectedRevision: revision,\n destinationId: z.uuid().nullable(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"group-create\"),\n name,\n members: z\n .array(z.object({ promptId: z.uuid(), version }))\n .max(100)\n .optional(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"group-update\"),\n id: z.uuid(),\n expectedRevision: revision,\n name: name.optional(),\n members: z\n .array(z.object({ promptId: z.uuid(), version }))\n .max(100)\n .optional(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"group-delete\"),\n id: z.uuid(),\n expectedRevision: revision,\n })\n .strict(),\n z\n .object({\n action: z.literal(\"promote\"),\n id: z.uuid(),\n version,\n expectedRevision: revision,\n exceptionReason: z.string().trim().min(1).max(2000).optional(),\n rollback: z.boolean().default(false),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"review\"),\n id: z.uuid(),\n version,\n note: z.string().trim().min(1).max(2000),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"policy\"),\n id: z.uuid(),\n policy: PromptPolicySchema,\n })\n .strict(),\n]);\nexport type PromptLibrary = z.infer<typeof PromptLibrarySchema>;\nexport type PromptDetail = z.infer<typeof PromptDetailSchema>;\nexport type PromptMutation = z.input<typeof PromptMutationSchema>;\nexport type PromptCategory = z.infer<typeof PromptCategorySchema>;\nexport type PromptGroup = z.infer<typeof PromptGroupSchema>;\nexport type PromptEvidence = z.infer<typeof PromptEvidenceSchema>;\n\nexport const PromptSelectionSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"live\") }).strict(),\n z\n .object({\n type: z.literal(\"single\"),\n id: z.string().min(1),\n version: z.number().int().positive(),\n })\n .strict(),\n z.object({ type: z.literal(\"group\"), groupId: z.uuid() }).strict(),\n]);\nexport type PromptSelection = z.infer<typeof PromptSelectionSchema>;\nexport const PromptBundleSchema = z\n .object({\n schemaVersion: z.literal(1),\n origin: z\n .object({\n apiUrl: z.url().refine((value) => {\n const url = new URL(value);\n return (\n /^https?:$/.test(url.protocol) &&\n !url.username &&\n !url.password &&\n !url.search\n );\n }),\n projectId: z.string().min(1),\n })\n .strict(),\n prompts: z\n .array(\n z\n .object({\n key: PromptKeySchema,\n name,\n categoryPath: z.string().optional(),\n versions: z\n .array(PromptVersionSchema.extend({ note: z.string().max(2000) }))\n .min(1)\n .max(200),\n })\n .strict(),\n )\n .min(1)\n .max(200),\n groups: z\n .array(\n z\n .object({\n name,\n members: z\n .array(z.object({ key: PromptKeySchema, version }))\n .max(100),\n })\n .strict(),\n )\n .max(100)\n .default([]),\n })\n .strict();\nexport const PromptTransferRequestSchema = z\n .object({\n bundle: PromptBundleSchema,\n conflicts: z.enum([\"error\", \"append\"]).default(\"error\"),\n rename: z.record(PromptKeySchema, PromptKeySchema).default({}),\n categories: z.boolean().default(true),\n groups: z.boolean().default(false),\n })\n .strict();\nexport type PromptBundle = z.infer<typeof PromptBundleSchema>;\nexport type PromptTransferRequest = z.infer<typeof PromptTransferRequestSchema>;\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","import_zod","import_zod"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/scores.ts","../src/diagnostics.ts","../src/tools.ts","../src/diagnostic-capture.ts","../src/prompts.ts","../src/studio-updates.ts","../src/table-filters.ts","../src/workflow-calls.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { FeedbackSummarySchema, StudioScoreSchema } from \"./scores\";\n\nexport * from \"./diagnostics\";\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 \"output.emitted\",\n \"output.invalidated\",\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 \"evals\",\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 environment: z.string().min(1).optional(),\n resources: z.array(StudioChangeResourceSchema).min(1),\n })\n .strict();\n/** Known subtotals stay separate by currency; completeness never implies conversion. */\nexport const StudioCostSummarySchema = z\n .object({\n amounts: z.array(\n z\n .object({\n amount: z.number().nonnegative(),\n currency: z.string().nullable(),\n })\n .strip(),\n ),\n complete: z.boolean(),\n })\n .strip();\nexport type StudioCostSummary = z.infer<typeof StudioCostSummarySchema>;\n\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 averageCostSummary: StudioCostSummarySchema.optional(),\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 costSummary: StudioCostSummarySchema.optional(),\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 costSummary: StudioCostSummarySchema.optional(),\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 .nullable(),\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 { captureDiagnosticContent } from \"./diagnostic-capture\";\nexport * from \"./prompts\";\nexport * from \"./studio-updates\";\nexport * from \"./table-filters\";\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 DIAGNOSTIC_LIMITS = {\n bytes: 8 * 1024 * 1024,\n partBytes: 64 * 1024,\n parts: 128,\n nodes: 10_000,\n depth: 128,\n properties: 1_000,\n} as const;\n\nexport const DiagnosticNoteSchema = z\n .object({\n path: z.string().max(4096),\n reason: z.string().max(128),\n originalBytes: z.number().int().nonnegative().optional(),\n originalCount: z.number().int().nonnegative().optional(),\n })\n .strict();\nexport const DiagnosticContentSchema = z\n .object({\n schemaVersion: z.literal(1),\n data: z.record(z.string(), z.unknown()),\n capture: z\n .object({\n status: z.enum([\"complete\", \"partial\", \"failed\"]),\n omissions: z.array(DiagnosticNoteSchema).max(10_000),\n redactions: z.array(DiagnosticNoteSchema).max(10_000),\n })\n .strict(),\n })\n .strict();\nexport type DiagnosticContent = z.infer<typeof DiagnosticContentSchema>;\nexport type DiagnosticNote = z.infer<typeof DiagnosticNoteSchema>;\n\nexport const DiagnosticCorrelationSchema = z\n .object({\n runId: z.string().optional(),\n evaluationId: z.string().optional(),\n suiteRunId: z.string().optional(),\n caseId: z.string().optional(),\n repetition: z.string().optional(),\n phase: z.string().optional(),\n workflowId: z.string().optional(),\n nodeId: z.string().optional(),\n sessionId: z.string().optional(),\n invocationId: z.string().optional(),\n parentInvocationId: z.string().optional(),\n branchId: z.string().optional(),\n toolCallId: z.string().optional(),\n attemptId: z.string().optional(),\n workflowRevisionId: z.string().optional(),\n traceId: z.string().optional(),\n spanId: z.string().optional(),\n parentSpanId: z.string().optional(),\n })\n .strict();\n\nexport const DiagnosticManifestSchema = z\n .object({\n schemaVersion: z.literal(1),\n diagnosticId: z.string().uuid(),\n occurrenceId: z.string().uuid(),\n occurredAt: z.string().datetime({ offset: true }),\n environment: z.string().min(1).max(256),\n service: z\n .object({\n name: z.string().min(1).max(256),\n deploymentRef: z.string().max(1024).optional(),\n })\n .strict(),\n correlation: DiagnosticCorrelationSchema,\n handled: z.boolean(),\n severity: z.enum([\"warning\", \"error\"]),\n mechanism: z.enum([\"span\", \"report\", \"tool\"]),\n summary: z\n .object({ type: z.string().max(256), message: z.string().max(8192) })\n .strict(),\n captureStatus: z.enum([\"complete\", \"partial\", \"failed\"]),\n checksum: z.string().regex(/^[a-f0-9]{64}$/),\n byteLength: z.number().int().min(1).max(DIAGNOSTIC_LIMITS.bytes),\n partCount: z.number().int().min(1).max(DIAGNOSTIC_LIMITS.parts),\n })\n .strict()\n .superRefine((value, ctx) => {\n if (\n value.partCount !==\n Math.ceil(value.byteLength / DIAGNOSTIC_LIMITS.partBytes)\n )\n ctx.addIssue({\n code: \"custom\",\n path: [\"partCount\"],\n message: \"Part count does not match byte length.\",\n });\n });\nexport type DiagnosticManifest = z.infer<typeof DiagnosticManifestSchema>;\nexport const DiagnosticPartSchema = z\n .object({\n index: z\n .number()\n .int()\n .min(0)\n .max(DIAGNOSTIC_LIMITS.parts - 1),\n data: z\n .string()\n .max(Math.ceil(DIAGNOSTIC_LIMITS.partBytes / 3) * 4)\n .regex(\n /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,\n ),\n })\n .strict();\nexport const DiagnosticResponseSchema = z\n .object({\n manifest: DiagnosticManifestSchema,\n state: z.enum([\"pending\", \"available\", \"incomplete\", \"expired\"]),\n receivedParts: z.number().int().nonnegative(),\n expiresAt: z.string().datetime({ offset: true }),\n content: DiagnosticContentSchema.nullable(),\n contentChecksum: z\n .string()\n .regex(/^[a-f0-9]{64}$/)\n .nullable(),\n contentByteLength: z.number().int().nonnegative().nullable(),\n })\n .strict();\nexport type DiagnosticResponse = z.infer<typeof DiagnosticResponseSchema>;\n\n/** Shared mandatory policy for diagnostic keys and embedded credential text. */\nexport const isPrivateDiagnosticField = (key: string) =>\n /^(?:password|passwd|secret|clientsecret|privatekey|credential|credentials|authorization|proxyauthorization|bearer|bearertoken|jwt|token|accesstoken|refreshtoken|authtoken|apikey|xapikey|apitoken|xauthtoken|xaccesstoken|awsaccesskeyid|awssecretaccesskey|awssessiontoken|xamzsecuritytoken|apisecret|cookie|setcookie|resumehandle|resumetoken)$/.test(\n key.toLowerCase().replace(/[^a-z0-9]/g, \"\"),\n );\n\nexport function redactDiagnosticText(value: string): string {\n return value\n .replace(/\\bBearer\\s+[A-Za-z0-9._~+/-]+=*/gi, \"Bearer [REDACTED]\")\n .replace(\n /\\b(?:ktyx_(?:test|live)_[^\\s\"'<>]+|sk-(?:proj-|ant-)?[A-Za-z0-9_-]{12,}|AIza[A-Za-z0-9_-]{20,}|eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+)/g,\n \"[REDACTED]\",\n )\n .replace(\n /([\"']?(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|passwd|secret|token|client[_-]?secret|authorization|cookie)[\"']?\\s*[:=]\\s*)([\"'])(.*?)\\2/gi,\n \"$1$2[REDACTED]$2\",\n )\n .replace(\n /(\\b(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|passwd|secret|token|client[_-]?secret)\\s*[:=]\\s*)(?![\"'[])[^\\s,;}&]+/gi,\n \"$1[REDACTED]\",\n )\n .replace(\n /(\\b(?:authorization|proxy-authorization)\\s*:\\s*Basic\\s+)[A-Za-z0-9+/=]+/gi,\n \"$1[REDACTED]\",\n )\n .replace(\n /([?&](?:api[_-]?key|token|access[_-]?token|password)=)[^&#\\s]+/gi,\n \"$1[REDACTED]\",\n )\n .replace(/(https?:\\/\\/)[^\\s/@:]+:[^\\s/@]+@/gi, \"$1[REDACTED]@\");\n}\n\n/** A summary intentionally omits custom fields; the diagnostic preserves them. */\nexport function summarizeDiagnostic(\n data: Record<string, unknown>,\n depth = 0,\n): { type: string; message: string; stack?: string; cause?: unknown } {\n return {\n type: typeof data.type === \"string\" ? data.type.slice(0, 256) : \"Error\",\n message:\n typeof data.message === \"string\"\n ? data.message.slice(0, 8192)\n : \"Execution reported a fault.\",\n ...(typeof data.stack === \"string\"\n ? { stack: data.stack.slice(0, 32768) }\n : {}),\n ...(depth < 4 &&\n data.cause &&\n typeof data.cause === \"object\" &&\n !Array.isArray(data.cause)\n ? {\n cause: summarizeDiagnostic(\n data.cause as Record<string, unknown>,\n depth + 1,\n ),\n }\n : {}),\n };\n}\n\n/** Defense in depth for JSON received directly by the diagnostic API. */\nexport function redactDiagnosticContent(\n content: DiagnosticContent,\n): DiagnosticContent {\n const redactions = [...content.capture.redactions];\n const omissions = [...content.capture.omissions];\n let nodes = 0;\n const visit = (value: unknown, path: string, depth = 0): unknown => {\n if (++nodes > DIAGNOSTIC_LIMITS.nodes || depth > DIAGNOSTIC_LIMITS.depth) {\n const reason =\n depth > DIAGNOSTIC_LIMITS.depth\n ? \"server_depth_limit\"\n : \"server_node_limit\";\n if (omissions.length < 10_000)\n omissions.push({ path: path.slice(0, 4096), reason });\n return { $omitted: reason };\n }\n if (typeof value === \"string\") {\n const clean = redactDiagnosticText(value);\n if (clean !== value && redactions.length < 10_000)\n redactions.push({\n path: path.slice(0, 4096),\n reason: \"server_credential_text\",\n });\n return clean;\n }\n if (Array.isArray(value)) {\n if (\n value.length > DIAGNOSTIC_LIMITS.properties &&\n omissions.length < 10_000\n )\n omissions.push({\n path: path.slice(0, 4096),\n reason: \"server_collection_limit\",\n originalCount: value.length,\n });\n return value\n .slice(0, DIAGNOSTIC_LIMITS.properties)\n .map((item, index) => visit(item, `${path}/${index}`, depth + 1));\n }\n if (value && typeof value === \"object\") {\n const keys = Object.keys(value);\n if (\n keys.length > DIAGNOSTIC_LIMITS.properties &&\n omissions.length < 10_000\n )\n omissions.push({\n path: path.slice(0, 4096),\n reason: \"server_property_limit\",\n originalCount: keys.length,\n });\n return Object.fromEntries(\n keys.slice(0, DIAGNOSTIC_LIMITS.properties).map((key) => {\n const nested = (value as Record<string, unknown>)[key];\n if (isPrivateDiagnosticField(key)) {\n if (redactions.length < 10_000 && nested !== \"[REDACTED]\")\n redactions.push({\n path: `${path}/${key}`.slice(0, 4096),\n reason: \"server_credential_field\",\n });\n return [key, \"[REDACTED]\"];\n }\n return [key, visit(nested, `${path}/${key}`, depth + 1)];\n }),\n );\n }\n return value;\n };\n return {\n ...content,\n data: visit(content.data, \"#/data\") as Record<string, unknown>,\n capture: {\n ...content.capture,\n status:\n content.capture.status === \"failed\"\n ? \"failed\"\n : omissions.length\n ? \"partial\"\n : \"complete\",\n omissions: omissions.map((note) => ({\n ...note,\n path: redactDiagnosticText(note.path),\n reason: redactDiagnosticText(note.reason),\n })),\n redactions: redactions.map((note) => ({\n ...note,\n path: redactDiagnosticText(note.path),\n reason: redactDiagnosticText(note.reason),\n })),\n },\n };\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 diagnosticId: z.string().uuid().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 { errorProperty } from \"@kortyx/core/errors\";\nimport {\n DIAGNOSTIC_LIMITS,\n type DiagnosticContent,\n type DiagnosticNote,\n isPrivateDiagnosticField,\n redactDiagnosticText,\n} from \"./diagnostics\";\n\nconst encoder = new TextEncoder();\n// Node 24 stores even assigned stacks behind a shared native lazy accessor.\nconst nativeStackGetter = Object.getOwnPropertyDescriptor(\n new Error(),\n \"stack\",\n)?.get;\nfunction nativeStack(\n object: object,\n getter: (() => unknown) | undefined,\n): unknown {\n if (!getter || getter !== nativeStackGetter)\n throw new Error(\"Custom stack accessor\");\n for (const key of [\"name\", \"message\"]) {\n let cursor: object | null = object;\n while (cursor) {\n const descriptor = Object.getOwnPropertyDescriptor(cursor, key);\n if (descriptor) {\n if (!(\"value\" in descriptor) || typeof descriptor.value !== \"string\")\n throw new Error(\"Custom error formatting\");\n break;\n }\n cursor = Object.getPrototypeOf(cursor);\n }\n }\n const formatter = Object.getOwnPropertyDescriptor(Error, \"prepareStackTrace\");\n if (formatter && (!(\"value\" in formatter) || !formatter.writable))\n throw new Error(\"Custom stack formatter\");\n // Synchronous formatting must not invoke an application's prepareStackTrace.\n Object.defineProperty(Error, \"prepareStackTrace\", {\n ...(formatter ?? { configurable: true, writable: true }),\n value: undefined,\n });\n try {\n return getter.call(object);\n } finally {\n if (formatter) Object.defineProperty(Error, \"prepareStackTrace\", formatter);\n else Reflect.deleteProperty(Error, \"prepareStackTrace\");\n }\n}\nconst pointer = (key: string) => key.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n\n/** Data-only graph capture. Getters and application toJSON methods are never invoked. */\nexport function captureDiagnosticContent(\n error: unknown,\n project?: (error: unknown) => Record<string, unknown> | null,\n): DiagnosticContent | null {\n const omissions: DiagnosticNote[] = [];\n const redactions: DiagnosticNote[] = [];\n const seen = new WeakMap<object, string>();\n let nodes = 0;\n let remaining = DIAGNOSTIC_LIMITS.bytes - 64 * 1024;\n const omit = (\n path: string,\n reason: string,\n extra: Partial<DiagnosticNote> = {},\n ) => {\n if (omissions.length < 1000)\n omissions.push({ path: path.slice(0, 4096), reason, ...extra });\n return { $omitted: reason };\n };\n const visit = (value: unknown, path: string, depth: number): unknown => {\n if (++nodes > DIAGNOSTIC_LIMITS.nodes) return omit(path, \"node_limit\");\n if (depth > DIAGNOSTIC_LIMITS.depth) return omit(path, \"depth_limit\");\n if (typeof value === \"string\") {\n const clean = redactDiagnosticText(value);\n if (clean !== value && redactions.length < 1000)\n redactions.push({\n path: path.slice(0, 4096),\n reason: \"credential_text\",\n });\n const bytes = encoder.encode(JSON.stringify(clean)).length;\n if (bytes > remaining)\n return omit(path, \"byte_limit\", {\n originalBytes: encoder.encode(value).length,\n });\n remaining -= bytes;\n return clean;\n }\n if (value === null || typeof value === \"boolean\") return value;\n if (typeof value === \"number\")\n return Number.isFinite(value)\n ? value\n : { $type: \"number\", value: String(value) };\n if (typeof value === \"bigint\")\n return { $type: \"bigint\", value: value.toString() };\n if (typeof value === \"undefined\") return { $type: \"undefined\" };\n if (typeof value === \"function\" || typeof value === \"symbol\")\n return omit(path, `unsupported_${typeof value}`);\n const object = value as object;\n const reference = seen.get(object);\n if (reference) return { $ref: reference };\n seen.set(object, path);\n remaining -= 32;\n if (remaining < 0) return omit(path, \"byte_limit\");\n try {\n if (value instanceof Date)\n return { $type: \"Date\", value: Date.prototype.toISOString.call(value) };\n if (value instanceof Map || value instanceof Set) {\n const isMap = value instanceof Map;\n const iterator = isMap\n ? Map.prototype.entries.call(value)\n : Set.prototype.values.call(value);\n const count = Object.getOwnPropertyDescriptor(\n isMap ? Map.prototype : Set.prototype,\n \"size\",\n )?.get?.call(value) as number;\n const entries: unknown[] = [];\n for (\n let index = 0;\n index < Math.min(count, DIAGNOSTIC_LIMITS.properties);\n index++\n )\n entries.push(iterator.next().value);\n if (count > entries.length)\n omissions.push({\n path,\n reason: \"collection_limit\",\n originalCount: count,\n });\n return isMap\n ? {\n $type: \"Map\",\n entries: visit(entries, `${path}/entries`, depth + 1),\n }\n : {\n $type: \"Set\",\n values: visit(entries, `${path}/values`, depth + 1),\n };\n }\n if (Array.isArray(value)) {\n const count = Math.min(value.length, DIAGNOSTIC_LIMITS.properties);\n const items = Array.from({ length: count }, (_, index) =>\n read(value, String(index), `${path}/${index}`, depth),\n );\n if (count < value.length)\n items.push(\n omit(path, \"collection_limit\", { originalCount: value.length }),\n );\n return items;\n }\n const keys = Object.getOwnPropertyNames(object);\n const result: Record<string, unknown> = Object.create(null);\n if (value instanceof Error) {\n const ownName = Object.getOwnPropertyDescriptor(object, \"name\");\n let type: unknown =\n ownName && \"value\" in ownName ? ownName.value : undefined;\n if (typeof type !== \"string\") {\n const name = Object.getOwnPropertyDescriptor(\n Object.getPrototypeOf(value),\n \"name\",\n );\n type = name && \"value\" in name ? name.value : \"Error\";\n }\n result.type = visit(\n typeof type === \"string\" ? type : \"Error\",\n `${path}/type`,\n depth + 1,\n );\n }\n for (const key of keys.slice(0, DIAGNOSTIC_LIMITS.properties)) {\n if ([\"__proto__\", \"constructor\", \"prototype\"].includes(key)) {\n result[key] = omit(`${path}/${pointer(key)}`, \"unsafe_key\");\n continue;\n }\n remaining -= encoder.encode(key).length + 4;\n result[key] = read(object, key, `${path}/${pointer(key)}`, depth);\n }\n if (keys.length > DIAGNOSTIC_LIMITS.properties)\n result.$omittedProperties = omit(path, \"property_limit\", {\n originalCount: keys.length,\n });\n return result;\n } catch {\n return omit(path, \"unreadable_object\");\n }\n };\n const read = (\n object: object,\n key: string,\n path: string,\n depth: number,\n ): unknown => {\n if (isPrivateDiagnosticField(key)) {\n if (redactions.length < 1000)\n redactions.push({\n path: path.slice(0, 4096),\n reason: \"credential_field\",\n });\n return \"[REDACTED]\";\n }\n try {\n const property = Object.getOwnPropertyDescriptor(object, key);\n if (property && \"value\" in property)\n return visit(property.value, path, depth + 1);\n if (\n key === \"stack\" &&\n object instanceof Error &&\n property?.get &&\n property.get === nativeStackGetter\n )\n return visit(nativeStack(object, property.get), path, depth + 1);\n return omit(\n path,\n property ? \"accessor_not_evaluated\" : \"unavailable_property\",\n );\n } catch {\n return omit(path, \"unreadable_property\");\n }\n };\n try {\n const original = project ? project(error) : error;\n if (project && original === null) return null;\n const captured = visit(original, \"#/data\", 0);\n const upstreamOmissions = errorProperty(original, \"diagnosticOmissions\");\n if (Array.isArray(upstreamOmissions))\n for (const note of upstreamOmissions.slice(0, 1000)) {\n const path = errorProperty(note, \"path\");\n const reason = errorProperty(note, \"reason\");\n if (typeof path === \"string\" && typeof reason === \"string\")\n omissions.push({\n path: redactDiagnosticText(path).slice(0, 4096),\n reason: redactDiagnosticText(reason).slice(0, 128),\n });\n }\n const data: Record<string, unknown> =\n captured && typeof captured === \"object\" && !Array.isArray(captured)\n ? (captured as Record<string, unknown>)\n : {\n type: \"Error\",\n message:\n typeof captured === \"string\"\n ? captured\n : \"Execution reported a fault.\",\n value: captured,\n };\n if (typeof data.message !== \"string\" && !(\"message\" in data))\n data.message = \"Execution reported a fault.\";\n if (!(\"type\" in data))\n data.type = typeof data.name === \"string\" ? data.name : \"Error\";\n const content: DiagnosticContent = {\n schemaVersion: 1,\n data,\n capture: {\n status: omissions.length ? \"partial\" : \"complete\",\n omissions,\n redactions,\n },\n };\n if (\n encoder.encode(JSON.stringify(content)).length > DIAGNOSTIC_LIMITS.bytes\n )\n return {\n schemaVersion: 1,\n data: {\n type: \"Error\",\n message: \"Diagnostic exceeded the capture budget.\",\n },\n capture: {\n status: \"partial\",\n redactions: [],\n omissions: [{ path: \"#/data\", reason: \"serialized_byte_limit\" }],\n },\n };\n return content;\n } catch {\n return {\n schemaVersion: 1,\n data: { type: \"Error\", message: \"Diagnostic capture failed.\" },\n capture: {\n status: \"failed\",\n redactions: [],\n omissions: [{ path: \"#/data\", reason: \"projection_or_capture_failed\" }],\n },\n };\n }\n}\n","import {\n PromptContentSchema,\n PromptKeySchema,\n PromptTagSchema,\n PromptVersionSchema,\n} from \"@kortyx/prompts/browser\";\nimport { z } from \"zod\";\n\nconst name = z.string().trim().min(1).max(200);\nconst version = z.number().int().positive();\nconst revision = z.number().int().nonnegative();\nexport const PromptCategorySchema = z.object({\n id: z.uuid(),\n name,\n parentId: z.uuid().nullable(),\n revision,\n});\nexport const PromptGroupSchema = z.object({\n id: z.uuid(),\n name,\n revision,\n members: z\n .array(\n z.object({\n promptId: z.uuid(),\n version,\n key: PromptKeySchema.optional(),\n name: name.optional(),\n archived: z.boolean().optional(),\n }),\n )\n .max(100),\n updatedAt: z.string(),\n});\nexport const PromptAssignmentSchema = z.object({\n tag: PromptTagSchema,\n version,\n revision,\n updatedAt: z.string(),\n});\nexport const PromptAssetSchema = z.object({\n id: z.uuid(),\n key: PromptKeySchema,\n name,\n categoryId: z.uuid().nullable(),\n latestVersion: version,\n revision,\n archived: z.boolean(),\n updatedAt: z.string(),\n assignments: z.array(PromptAssignmentSchema),\n});\nexport const PromptLibrarySchema = z.object({\n schemaVersion: z.literal(1),\n assets: z.array(PromptAssetSchema),\n categories: z.array(PromptCategorySchema),\n groups: z.array(PromptGroupSchema),\n totalCount: z.number().int().nonnegative(),\n nextCursor: z.string().nullable(),\n permissions: z.object({\n edit: z.boolean(),\n promote: z.boolean(),\n review: z.boolean(),\n settings: z.boolean(),\n }),\n});\nexport const PromptStoredVersionSchema = PromptVersionSchema.extend({\n promptId: z.uuid(),\n note: z.string(),\n author: z.string(),\n createdAt: z.string(),\n origin: z\n .object({\n apiUrl: z.string(),\n projectId: z.string(),\n key: z.string(),\n version,\n hash: z.string(),\n })\n .nullable(),\n});\nexport const PromptPolicySchema = z.object({\n revision,\n requireTest: z.boolean(),\n requireChangeNote: z.boolean().default(false),\n requiredSuites: z.array(z.object({ targetId: name, suiteId: name })).max(100),\n requiredReviews: z.number().int().min(0).max(10),\n allowException: z.boolean(),\n});\nexport const PromptEvidenceSchema = z.object({\n environment: z.string(),\n runId: z.string(),\n evaluationId: z.string().nullable().optional(),\n targetId: z.string(),\n suiteId: z.string(),\n suiteRevision: z.string().optional(),\n status: z.string(),\n version,\n fullSuite: z.boolean(),\n usage: z.enum([\n \"verified\",\n \"pending\",\n \"not-used\",\n \"mismatch\",\n \"context-differs\",\n ]),\n groupName: z.string().nullable(),\n createdAt: z.string(),\n companions: z.array(z.object({ key: PromptKeySchema, version })),\n});\nexport const PromptUsageSchema = z.object({\n eventId: z.string(),\n runId: z.string(),\n sessionId: z.string().nullable(),\n nodeId: z.string().nullable(),\n version: z.number().int(),\n hash: z.string().nullable(),\n source: z.string().nullable(),\n model: z.string().nullable(),\n environment: z.string(),\n occurredAt: z.string(),\n captured: z.boolean(),\n});\nexport const PromptDetailSchema = z.object({\n asset: PromptAssetSchema,\n versions: z.array(PromptStoredVersionSchema),\n versionsNextCursor: z.string().nullable().optional(),\n draft: PromptContentSchema.nullable(),\n draftBase: z.number().int().nullable(),\n draftRevision: revision,\n evidence: z.array(PromptEvidenceSchema),\n usage: z.array(PromptUsageSchema),\n activity: z.array(\n z.object({\n id: z.string(),\n action: z.string(),\n actor: z.string(),\n details: z.record(z.string(), z.unknown()),\n createdAt: z.string(),\n }),\n ),\n policies: z.array(PromptPolicySchema),\n reviews: z\n .array(\n z.object({\n version,\n hash: z.string(),\n independent: z.boolean(),\n reviewer: z.string(),\n note: z.string(),\n createdAt: z.string(),\n }),\n )\n .optional(),\n});\nexport const PromptMutationSchema = z.discriminatedUnion(\"action\", [\n z\n .object({\n action: z.literal(\"tag-set\"),\n id: z.uuid(),\n tag: PromptTagSchema.refine(\n (tag) => tag !== \"live\",\n \"Use promotion to update live.\",\n ),\n version,\n expectedRevision: revision,\n })\n .strict(),\n z\n .object({\n action: z.literal(\"tag-remove\"),\n id: z.uuid(),\n tag: PromptTagSchema.refine(\n (tag) => tag !== \"live\",\n \"The live tag cannot be removed manually.\",\n ),\n expectedRevision: revision,\n })\n .strict(),\n\n z\n .object({\n action: z.literal(\"bulk-update\"),\n assets: z\n .array(z.object({ id: z.uuid(), expectedRevision: revision }))\n .min(1)\n .max(100),\n categoryId: z.uuid().nullable().optional(),\n archived: z.boolean().optional(),\n })\n .strict()\n .refine(\n (value) => value.categoryId !== undefined || value.archived !== undefined,\n \"Choose a category or archive state.\",\n ),\n z\n .object({\n action: z.literal(\"create\"),\n key: PromptKeySchema,\n name,\n categoryId: z.uuid().nullable().default(null),\n content: PromptContentSchema,\n note: z.string().trim().max(2000).default(\"\"),\n idempotencyKey: z.uuid().optional(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"draft\"),\n id: z.uuid(),\n content: PromptContentSchema,\n baseVersion: version,\n expectedRevision: revision,\n })\n .strict(),\n z\n .object({\n action: z.literal(\"discard-draft\"),\n id: z.uuid(),\n expectedRevision: revision,\n })\n .strict(),\n z\n .object({\n action: z.literal(\"save\"),\n id: z.uuid(),\n content: PromptContentSchema,\n baseVersion: version,\n expectedHash: z.string().regex(/^[a-f0-9]{64}$/),\n expectedDraftRevision: revision.optional(),\n note: z.string().trim().max(2000).default(\"\"),\n idempotencyKey: z.uuid(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"update\"),\n id: z.uuid(),\n expectedRevision: revision,\n name: name.optional(),\n categoryId: z.uuid().nullable().optional(),\n archived: z.boolean().optional(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"category-create\"),\n path: z.string().trim().min(1).max(1000),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"category-update\"),\n id: z.uuid(),\n expectedRevision: revision,\n name: name.optional(),\n parentId: z.uuid().nullable().optional(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"category-delete\"),\n id: z.uuid(),\n expectedRevision: revision,\n destinationId: z.uuid().nullable(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"group-create\"),\n name,\n members: z\n .array(z.object({ promptId: z.uuid(), version }))\n .max(100)\n .optional(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"group-update\"),\n id: z.uuid(),\n expectedRevision: revision,\n name: name.optional(),\n members: z\n .array(z.object({ promptId: z.uuid(), version }))\n .max(100)\n .optional(),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"group-delete\"),\n id: z.uuid(),\n expectedRevision: revision,\n })\n .strict(),\n z\n .object({\n action: z.literal(\"promote\"),\n id: z.uuid(),\n version,\n expectedRevision: revision,\n exceptionReason: z.string().trim().min(1).max(2000).optional(),\n rollback: z.boolean().default(false),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"review\"),\n id: z.uuid(),\n version,\n note: z.string().trim().min(1).max(2000),\n })\n .strict(),\n z\n .object({\n action: z.literal(\"policy\"),\n id: z.uuid(),\n policy: PromptPolicySchema,\n })\n .strict(),\n]);\nexport type PromptLibrary = z.infer<typeof PromptLibrarySchema>;\nexport type PromptDetail = z.infer<typeof PromptDetailSchema>;\nexport type PromptMutation = z.input<typeof PromptMutationSchema>;\nexport type PromptCategory = z.infer<typeof PromptCategorySchema>;\nexport type PromptGroup = z.infer<typeof PromptGroupSchema>;\nexport type PromptEvidence = z.infer<typeof PromptEvidenceSchema>;\n\nexport const PromptSelectionSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"live\") }).strict(),\n z\n .object({\n type: z.literal(\"single\"),\n id: z.string().min(1),\n version: z.number().int().positive(),\n })\n .strict(),\n z.object({ type: z.literal(\"group\"), groupId: z.uuid() }).strict(),\n]);\nexport type PromptSelection = z.infer<typeof PromptSelectionSchema>;\nexport const PromptBundleSchema = z\n .object({\n schemaVersion: z.literal(1),\n origin: z\n .object({\n apiUrl: z.url().refine((value) => {\n const url = new URL(value);\n return (\n /^https?:$/.test(url.protocol) &&\n !url.username &&\n !url.password &&\n !url.search\n );\n }),\n projectId: z.string().min(1),\n })\n .strict(),\n prompts: z\n .array(\n z\n .object({\n key: PromptKeySchema,\n name,\n categoryPath: z.string().optional(),\n versions: z\n .array(PromptVersionSchema.extend({ note: z.string().max(2000) }))\n .min(1)\n .max(200),\n })\n .strict(),\n )\n .min(1)\n .max(200),\n groups: z\n .array(\n z\n .object({\n name,\n members: z\n .array(z.object({ key: PromptKeySchema, version }))\n .max(100),\n })\n .strict(),\n )\n .max(100)\n .default([]),\n })\n .strict();\nexport const PromptTransferRequestSchema = z\n .object({\n bundle: PromptBundleSchema,\n conflicts: z.enum([\"error\", \"append\"]).default(\"error\"),\n rename: z.record(PromptKeySchema, PromptKeySchema).default({}),\n categories: z.boolean().default(true),\n groups: z.boolean().default(false),\n })\n .strict();\nexport type PromptBundle = z.infer<typeof PromptBundleSchema>;\nexport type PromptTransferRequest = z.infer<typeof PromptTransferRequestSchema>;\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 { z } from \"zod\";\n\nexport const TableFilterRuleSchema = z\n .object({\n field: z.string().min(1).max(80),\n operator: z.enum([\n \"contains\",\n \"notContains\",\n \"is\",\n \"isNot\",\n \"gt\",\n \"gte\",\n \"lt\",\n \"lte\",\n \"between\",\n \"present\",\n \"missing\",\n ]),\n values: z\n .array(\n z.union([z.string().min(1).max(512), z.number().finite(), z.boolean()]),\n )\n .max(30),\n })\n .strict();\nexport const TableFiltersSchema = z\n .object({\n match: z.enum([\"all\", \"any\"]),\n rules: z.array(TableFilterRuleSchema).max(32),\n })\n .strict()\n .refine(\n (value) => JSON.stringify(value).length <= 32768,\n \"Filters must fit within 32 KiB.\",\n );\nexport type TableFilterRule = z.infer<typeof TableFilterRuleSchema>;\nexport type TableFilters = z.infer<typeof TableFiltersSchema>;\nexport type TableFilterKind = \"text\" | \"enum\" | \"number\" | \"date\" | \"boolean\";\nexport type TableFilterValue = string | number | boolean | null | undefined;\nexport type TableFilterDefinition = {\n key: string;\n label: string;\n kind: TableFilterKind;\n options?: readonly string[];\n unit?: string;\n};\nexport const EMPTY_TABLE_FILTERS: TableFilters = { match: \"all\", rules: [] };\nexport const filterOperators = (\n kind: TableFilterKind,\n): TableFilterRule[\"operator\"][] => [\n ...(kind === \"text\" ? ([\"contains\", \"notContains\"] as const) : []),\n \"is\",\n \"isNot\",\n ...(kind === \"number\" || kind === \"date\"\n ? ([\"gt\", \"gte\", \"lt\", \"lte\", \"between\"] as const)\n : []),\n \"present\",\n \"missing\",\n];\nexport function validateTableFilters(\n filters: TableFilters,\n fields: readonly TableFilterDefinition[],\n) {\n const parsed = TableFiltersSchema.safeParse(filters);\n if (!parsed.success) throw new Error(\"Enter valid values for every filter.\");\n for (const rule of filters.rules) {\n const field = fields.find((item) => item.key === rule.field);\n if (!field || !filterOperators(field.kind).includes(rule.operator))\n throw new Error(\"Unsupported filter field or operator.\");\n const noValue = rule.operator === \"present\" || rule.operator === \"missing\";\n if (\n noValue\n ? rule.values.length !== 0\n : rule.operator === \"between\"\n ? rule.values.length !== 2\n : !rule.values.length\n )\n throw new Error(\"Invalid number of filter values.\");\n for (const value of rule.values) {\n if (field.kind === \"number\" && typeof value !== \"number\")\n throw new Error(\"Numeric filters require numbers.\");\n if (field.kind === \"boolean\" && typeof value !== \"boolean\")\n throw new Error(\"Boolean filters require true or false.\");\n if (\n (field.kind === \"text\" ||\n field.kind === \"enum\" ||\n field.kind === \"date\") &&\n typeof value !== \"string\"\n )\n throw new Error(\"Text filters require strings.\");\n if (\n field.kind === \"date\" &&\n (typeof value !== \"string\" ||\n !Number.isFinite(Date.parse(value)) ||\n !/(Z|[+-]\\d{2}:\\d{2})$/.test(value))\n )\n throw new Error(\"Date filters require ISO timestamps with an offset.\");\n }\n if (\n rule.operator === \"between\" &&\n (field.kind === \"date\"\n ? Date.parse(String(rule.values[0])) >\n Date.parse(String(rule.values[1]))\n : Number(rule.values[0]) > Number(rule.values[1]))\n )\n throw new Error(\"Filter minimum must not exceed maximum.\");\n }\n return filters;\n}\nexport function matchesTableRule(\n value: TableFilterValue | readonly TableFilterValue[],\n rule: TableFilterRule,\n kind?: TableFilterKind,\n): boolean {\n const values = (Array.isArray(value) ? value : [value]).filter(\n (item) => item !== null && item !== undefined && item !== \"\",\n );\n if (rule.operator === \"present\") return values.length > 0;\n if (rule.operator === \"missing\") return values.length === 0;\n if (!values.length) return false;\n const equal = (a: TableFilterValue, b: TableFilterValue) =>\n typeof a === \"string\" && typeof b === \"string\"\n ? kind === \"date\"\n ? Date.parse(a) === Date.parse(b)\n : a.toLowerCase() === b.toLowerCase()\n : a === b;\n const contains = () =>\n values.some((a) =>\n rule.values.some((b) =>\n String(a).toLowerCase().includes(String(b).toLowerCase()),\n ),\n );\n if (rule.operator === \"contains\") return contains();\n if (rule.operator === \"notContains\") return !contains();\n if (rule.operator === \"is\")\n return values.some((a) => rule.values.some((b) => equal(a, b)));\n if (rule.operator === \"isNot\")\n return !values.some((a) => rule.values.some((b) => equal(a, b)));\n return values.some((a) => {\n const comparable =\n typeof a === \"string\" &&\n a.includes(\"T\") &&\n (a.endsWith(\"Z\") || /[+-]\\d{2}:\\d{2}$/.test(a))\n ? Date.parse(a)\n : Number(a);\n const bounds = rule.values.map((b) =>\n typeof b === \"string\" ? Date.parse(b) : Number(b),\n );\n switch (rule.operator) {\n case \"gt\":\n return comparable > bounds[0]!;\n case \"gte\":\n return comparable >= bounds[0]!;\n case \"lt\":\n return comparable < bounds[0]!;\n case \"lte\":\n return comparable <= bounds[0]!;\n case \"between\":\n return comparable >= bounds[0]! && comparable <= bounds[1]!;\n default:\n return false;\n }\n });\n}\nexport function matchesTableFilters(\n filters: TableFilters,\n read: (key: string) => TableFilterValue | readonly TableFilterValue[],\n fields?: readonly TableFilterDefinition[],\n) {\n if (!filters.rules.length) return true;\n const match = (rule: TableFilterRule) =>\n matchesTableRule(\n read(rule.field),\n rule,\n fields?.find((f) => f.key === rule.field)?.kind,\n );\n return filters.match === \"any\"\n ? filters.rules.some(match)\n : filters.rules.every(match);\n}\n\nconst field = (\n key: string,\n label: string,\n kind: TableFilterKind = \"text\",\n unit?: string,\n): TableFilterDefinition => ({ key, label, kind, ...(unit ? { unit } : {}) });\nconst identity = [field(\"userId\", \"User ID\"), field(\"tenantId\", \"Tenant ID\")];\nconst metrics = [\n field(\"durationMs\", \"Duration\", \"number\", \"ms\"),\n field(\"tokens\", \"Tokens\", \"number\"),\n field(\"cost\", \"Cost\", \"number\", \"currency units\"),\n field(\"currency\", \"Currency\", \"enum\"),\n];\nexport const STUDIO_TABLE_FIELDS = {\n runs: [\n field(\"id\", \"Run ID\"),\n field(\"execution\", \"Execution\", \"enum\"),\n field(\"parentRunId\", \"Parent run ID\"),\n field(\"callId\", \"Call ID\"),\n field(\"status\", \"Status\", \"enum\"),\n field(\"startedAt\", \"Started\", \"date\"),\n field(\"endedAt\", \"Ended\", \"date\"),\n ...identity,\n field(\"environment\", \"Environment\", \"enum\"),\n field(\"pricingStatus\", \"Pricing status\", \"enum\"),\n field(\"feedback\", \"Feedback\", \"enum\"),\n field(\"workflowIds\", \"Workflow\"),\n field(\"versions\", \"Version\"),\n field(\"path\", \"Path\"),\n field(\"sessionId\", \"Session ID\"),\n field(\"provider\", \"Provider\", \"enum\"),\n field(\"models\", \"Model\"),\n ...metrics,\n field(\"result\", \"Result\"),\n field(\"hasTool\", \"Has tool call\", \"boolean\"),\n field(\"toolName\", \"Tool name\"),\n field(\"toolOutcome\", \"Tool outcome\", \"enum\"),\n field(\"toolMode\", \"Called by\", \"enum\"),\n field(\"transitionIds\", \"Workflow transition\"),\n ],\n sessions: [\n field(\"id\", \"Session ID\"),\n field(\"status\", \"Status\", \"enum\"),\n field(\"lastActivityAt\", \"Last activity\", \"date\"),\n field(\"environment\", \"Environment\", \"enum\"),\n ...identity,\n field(\"workflowIds\", \"Workflow\"),\n field(\"activeVersion\", \"Version\"),\n field(\"runs\", \"Runs\", \"number\"),\n field(\"succeeded\", \"Successful runs\", \"number\"),\n field(\"failed\", \"Failed runs\", \"number\"),\n field(\"interrupted\", \"Interrupted runs\", \"number\"),\n field(\"checkpoints\", \"Checkpoints\", \"number\"),\n field(\"hasFork\", \"Has branch\", \"boolean\"),\n ...metrics,\n field(\"latestResult\", \"Latest result\"),\n field(\"latestError\", \"Latest error\"),\n field(\"pendingInterruptId\", \"Pending interrupt\"),\n field(\"hasError\", \"Has error\", \"boolean\"),\n field(\"hasInterrupt\", \"Has interrupt\", \"boolean\"),\n field(\"hasCheckpoint\", \"Has checkpoint\", \"boolean\"),\n field(\"providers\", \"Provider\", \"enum\"),\n field(\"models\", \"Model\"),\n field(\"tags\", \"Tags\"),\n ],\n interrupts: [\n field(\"id\", \"Interrupt ID\"),\n field(\"status\", \"Status\", \"enum\"),\n field(\"createdAt\", \"Created\", \"date\"),\n field(\"expiresAt\", \"Expires\", \"date\"),\n field(\"resolvedAt\", \"Resolved\", \"date\"),\n field(\"environment\", \"Environment\", \"enum\"),\n field(\"age\", \"Age\", \"number\", \"minutes\"),\n field(\"resolutionMs\", \"Resolution time\", \"number\", \"ms\"),\n field(\"type\", \"Type\", \"enum\"),\n field(\"question\", \"Request\"),\n field(\"contract\", \"Contract\"),\n field(\"schemaId\", \"Schema ID\"),\n field(\"workflowId\", \"Workflow\"),\n field(\"nodeId\", \"Node\"),\n field(\"sessionId\", \"Session ID\"),\n ...identity,\n field(\"response\", \"Response\"),\n field(\"resolvedBy\", \"Resolved by\"),\n field(\"resumeOutcome\", \"Resume outcome\", \"enum\"),\n field(\"resumeError\", \"Resume error\"),\n field(\"runId\", \"Run ID\"),\n ],\n} satisfies Record<string, TableFilterDefinition[]>;\nexport type StudioTableResource = keyof typeof STUDIO_TABLE_FIELDS;\n\n/** Existing links/views remain valid; new edits replace these aliases atomically. */\nexport const LEGACY_TABLE_FILTERS = {\n toolName: [\"toolName\", \"contains\"],\n toolOutcome: [\"toolOutcome\", \"is\"],\n toolMode: [\"toolMode\", \"is\"],\n error: [\"hasError\", \"is\"],\n interrupt: [\"hasInterrupt\", \"is\"],\n checkpoint: [\"hasCheckpoint\", \"is\"],\n fork: [\"hasFork\", \"is\"],\n transition: [\"transitionIds\", \"is\"],\n status: [\"status\", \"is\"],\n provider: [\"provider\", \"is\"],\n workflow: [\"workflowIds\", \"is\"],\n version: [\"versions\", \"is\"],\n path: [\"path\", \"is\"],\n session: [\"sessionId\", \"contains\"],\n model: [\"models\", \"contains\"],\n result: [\"result\", \"contains\"],\n feedback: [\"feedback\", \"is\"],\n tool: [\"hasTool\", \"is\"],\n user: [\"userId\", \"contains\"],\n tenant: [\"tenantId\", \"contains\"],\n tags: [\"tags\", \"contains\"],\n node: [\"nodeId\", \"contains\"],\n resolver: [\"resolvedBy\", \"contains\"],\n outcome: [\"resumeOutcome\", \"is\"],\n type: [\"type\", \"is\"],\n minCost: [\"cost\", \"gte\"],\n maxCost: [\"cost\", \"lte\"],\n minTokens: [\"tokens\", \"gte\"],\n maxTokens: [\"tokens\", \"lte\"],\n minDuration: [\"durationMs\", \"gte\"],\n maxDuration: [\"durationMs\", \"lte\"],\n minAge: [\"age\", \"gte\"],\n maxAge: [\"age\", \"lte\"],\n} as const;\nexport function readStudioTableFilters(\n query: Record<string, string | undefined>,\n resource: StudioTableResource,\n): TableFilters {\n const fields: readonly TableFilterDefinition[] =\n STUDIO_TABLE_FIELDS[resource];\n const filters = query.tableFilters\n ? TableFiltersSchema.parse(JSON.parse(query.tableFilters))\n : { match: \"all\" as const, rules: [] as TableFilterRule[] };\n const rules = [...filters.rules];\n for (const [alias, [original, operator]] of Object.entries(\n LEGACY_TABLE_FILTERS,\n )) {\n const raw = query[alias];\n if (!raw) continue;\n if (resource === \"interrupts\" && alias === \"error\") {\n if (raw === \"true\" || raw === \"1\")\n rules.push({ field: \"resumeError\", operator: \"present\", values: [] });\n continue;\n }\n const key =\n resource === \"sessions\" && alias === \"provider\"\n ? \"providers\"\n : resource === \"sessions\" && alias === \"version\"\n ? \"activeVersion\"\n : resource === \"interrupts\" && alias === \"workflow\"\n ? \"workflowId\"\n : original;\n const definition = fields.find((f) => f.key === key);\n if (!definition) continue;\n const values =\n definition.kind === \"number\"\n ? [Number(raw) * (alias.endsWith(\"Duration\") ? 1000 : 1)]\n : definition.kind === \"boolean\"\n ? [raw === \"true\" || raw === \"1\"]\n : operator === \"is\"\n ? raw.split(\",\").filter(Boolean)\n : [raw];\n rules.push({\n field: key,\n operator:\n resource === \"interrupts\" && alias === \"workflow\"\n ? \"contains\"\n : operator,\n values,\n });\n }\n return validateTableFilters(\n TableFiltersSchema.parse({ ...filters, rules }),\n fields,\n );\n}\n\nexport const PROMPT_TABLE_FILTER_FIELDS: TableFilterDefinition[] = [\n field(\"name\", \"Prompt\"),\n field(\"key\", \"Key\"),\n field(\"category\", \"Category\"),\n field(\"categoryId\", \"Category ID\"),\n field(\"live\", \"Is live\", \"boolean\"),\n field(\"liveVersion\", \"Live version\", \"number\"),\n field(\"latestVersion\", \"Newest version\", \"number\"),\n field(\"updatedAt\", \"Updated\", \"date\"),\n field(\"assignedTags\", \"Assigned tags\"),\n field(\"assignedVersions\", \"Assigned versions\"),\n field(\"versionsBehindLive\", \"Versions behind live\", \"number\"),\n];\nexport const EVALUATION_TABLE_FILTER_FIELDS: TableFilterDefinition[] = [\n field(\"name\", \"Evaluation run\"),\n field(\"id\", \"Evaluation ID\"),\n field(\"selection\", \"Suite selection\", \"enum\"),\n field(\"suiteCount\", \"Suites\", \"number\"),\n field(\"judge\", \"Judge\"),\n field(\"judgeVersion\", \"Judge version\"),\n field(\"passRate\", \"Pass rate (%)\", \"number\"),\n field(\"queueMs\", \"Queue time (ms)\", \"number\"),\n field(\"status\", \"Status\", \"enum\"),\n field(\"completedSuites\", \"Completed suites\", \"number\"),\n field(\"completedAttempts\", \"Graded attempts\", \"number\"),\n field(\"totalAttempts\", \"Total attempts\", \"number\"),\n field(\"passed\", \"Passed\", \"number\"),\n field(\"failed\", \"Failed\", \"number\"),\n field(\"error\", \"Errors\", \"number\"),\n field(\"cancelled\", \"Cancelled\", \"number\"),\n field(\"applicationId\", \"Application ID\"),\n field(\"application\", \"Application\"),\n field(\"environment\", \"Environment\", \"enum\"),\n field(\"trigger\", \"Trigger\", \"enum\"),\n field(\"commit\", \"Commit\"),\n field(\"createdAt\", \"Created\", \"date\"),\n field(\"cost\", \"Cost\", \"number\"),\n field(\"duration\", \"Duration (ms)\", \"number\"),\n];\n\n/** Completed attempt outcomes; cancelled and unrun attempts are excluded. */\nexport function tablePassRate(\n counts: { passed: number; failed: number; error: number } | null | undefined,\n) {\n const total = counts ? counts.passed + counts.failed + counts.error : 0;\n return counts && total > 0 ? (counts.passed / total) * 100 : undefined;\n}\nexport function tableQueueMs(\n createdAt: string,\n startedAt: string | null | undefined,\n) {\n if (!startedAt) return undefined;\n const value = Date.parse(startedAt) - Date.parse(createdAt);\n return Number.isFinite(value) && value >= 0 ? value : undefined;\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","name","import_zod","import_zod","import_zod","field"]}