@kortyx/agent 0.37.1 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/README.md +16 -0
- package/dist/evals.d.ts +70 -3
- package/dist/evals.js +188 -110
- package/dist/evals.js.map +1 -1
- package/dist/index.d.ts +11 -5
- package/dist/index.js +1219 -647
- package/dist/index.js.map +1 -1
- package/dist/{studio-judge-Dsz6KDY2.d.ts → studio-judge-DCAw3v60.d.ts} +310 -6
- package/package.json +10 -10
package/dist/evals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/evals.ts","../src/evals/contracts.ts","../src/evals/evidence-policy.ts","../src/evals/define-suite.ts","../src/evals/evaluation-contracts.ts","../src/evals/studio-contracts.ts","../src/evals/evidence.ts","../src/evals/studio-judge.ts"],"sourcesContent":["export * from \"./evals/contracts\";\nexport { defineSuite } from \"./evals/define-suite\";\nexport * from \"./evals/evaluation-contracts\";\nexport { getEvalGradeEvidence } from \"./evals/evidence\";\nexport { EvalEvidencePolicySchema } from \"./evals/evidence-policy\";\nexport * from \"./evals/studio-contracts\";\nexport { createStudioEvalJudge } from \"./evals/studio-judge\";\nexport type * from \"./evals/types\";\n","import { PromptSnapshotSchema } from \"@kortyx/prompts/browser\";\nimport { z } from \"zod\";\nimport { EvalEvidencePolicySchema } from \"./evidence-policy\";\nimport type { EvalSuite } from \"./types\";\n\nconst id = z.string().trim().min(1).max(256);\nconst handler = z.object({ using: id, params: z.json().optional() }).strict();\nexport const EvalResumeResponseSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"text\"), text: z.string() }).strict(),\n z.object({ type: z.literal(\"select\"), ids: z.array(z.string()) }).strict(),\n z.object({ type: z.literal(\"value\"), value: z.json() }).strict(),\n z.object({ type: z.literal(\"cancel\") }).strict(),\n]);\nconst expectation = z\n .object({\n type: z.enum([\"answer\", \"interrupt\"]),\n schemaId: id.optional(),\n schemaVersion: id.optional(),\n outputs: z\n .array(z.object({ schemaId: id, schemaVersion: id.optional() }).strict())\n .optional(),\n criteria: z\n .array(\n z.union([\n z.string().trim().min(1),\n z.object({ id, text: z.string().trim().min(1) }).strict(),\n ]),\n )\n .optional(),\n reference: z.json().optional(),\n })\n .strict()\n .superRefine((value, ctx) => {\n if (value.type === \"answer\" && (value.schemaId || value.schemaVersion))\n ctx.addIssue({\n code: \"custom\",\n message: \"Interrupt schemas require an interrupt expectation.\",\n });\n const ids =\n value.criteria?.map((item, index) =>\n typeof item === \"string\" ? String(index) : item.id,\n ) ?? [];\n if (new Set(ids).size !== ids.length)\n ctx.addIssue({\n code: \"custom\",\n message: \"Criterion IDs must be unique within a step.\",\n });\n });\nexport const EvalSuiteSchema = z\n .object({\n evidence: EvalEvidencePolicySchema.optional(),\n id,\n name: z.string().optional(),\n cases: z\n .array(\n z\n .object({\n id,\n name: z.string().optional(),\n params: z.json().optional(),\n workflowId: id.optional(),\n steps: z\n .array(\n z.union([\n z\n .object({ message: z.string().min(1), expect: expectation })\n .strict(),\n z\n .object({\n resume: z.union([EvalResumeResponseSchema, handler]),\n expect: expectation,\n })\n .strict(),\n ]),\n )\n .min(1),\n })\n .strict(),\n )\n .min(1),\n })\n .strict();\nexport const EvalVerdictSchema = z\n .object({\n passed: z.boolean(),\n reason: z.string().trim().min(1),\n evidence: z.array(z.string().min(1)),\n })\n .strict();\nexport const EvalObservationSchema = z\n .object({\n promptUsage: z\n .array(\n z\n .object({\n id: z.string(),\n version: z.number().int().positive(),\n hash: z.string().regex(/^[a-f0-9]{64}$/),\n environment: z.string(),\n snapshotRevision: z.string(),\n model: z.string().optional(),\n })\n .strict(),\n )\n .optional(),\n type: z.enum([\"answer\", \"interrupt\", \"error\", \"cancelled\"]),\n text: z.string(),\n structured: z.array(z.json()),\n events: z.array(z.json()).optional(),\n runId: z.string().optional(),\n checkpointId: z.string().optional(),\n interrupt: z\n .object({\n requestId: z.string(),\n kind: z.enum([\"text\", \"choice\", \"multi-choice\", \"custom\"]),\n question: z.string().optional(),\n schemaId: z.string().optional(),\n schemaVersion: z.string().optional(),\n options: z.array(\n z\n .object({\n id: z.string(),\n label: z.string(),\n description: z.string().optional(),\n })\n .strict(),\n ),\n request: z.json().optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n .superRefine((value, ctx) => {\n if ((value.type === \"interrupt\") !== Boolean(value.interrupt))\n ctx.addIssue({\n code: \"custom\",\n message: \"Interrupt observations require exactly one interrupt.\",\n });\n });\n\nconst status = z.enum([\"passed\", \"failed\", \"error\", \"cancelled\", \"ungraded\"]);\nconst issue = z\n .object({\n phase: z.enum([\n \"params\",\n \"setup\",\n \"execute\",\n \"responder\",\n \"reference\",\n \"grading\",\n \"cleanup\",\n \"reporting\",\n ]),\n code: z.string(),\n message: z.string(),\n })\n .strict();\n/** Billing evidence only: no prompts, provider raw responses, or credentials. */\nexport const EvalJudgeUsageSchema = z\n .object({\n provider: z.string().min(1),\n model: z.string().min(1),\n occurredAt: z.iso.datetime(),\n usage: z\n .object({\n input: z.number().finite().nonnegative().optional(),\n output: z.number().finite().nonnegative().optional(),\n total: z.number().finite().nonnegative().optional(),\n reasoning: z.number().finite().nonnegative().optional(),\n cacheRead: z.number().finite().nonnegative().optional(),\n cacheWrite: z.number().finite().nonnegative().optional(),\n cacheWrite1h: z.number().finite().nonnegative().optional(),\n outputIncludesReasoning: z.boolean().optional(),\n inputIncludesCacheRead: z.boolean().optional(),\n inputIncludesCacheWrite: z.boolean().optional(),\n })\n .strict()\n .optional(),\n pricingContext: z\n .object({\n serviceTier: z.string().min(1).max(100).optional(),\n inferenceGeo: z.string().min(1).max(100).optional(),\n speed: z.string().min(1).max(100).optional(),\n })\n .strict()\n .optional(),\n pricing: z\n .object({\n source: z.literal(\"provider\"),\n currency: z.literal(\"USD\"),\n actualCostMicros: z.number().int().nonnegative().safe(),\n })\n .strict()\n .optional(),\n })\n .strict();\nexport const EvalStepResultSchema = z\n .object({\n evidence: z\n .object({\n version: z.literal(\"compact-v1\"),\n history: z.boolean(),\n observation: EvalObservationSchema,\n })\n .strict()\n .optional(),\n index: z.number().int().nonnegative(),\n input: z.union([\n z.object({ message: z.string() }).strict(),\n z.object({ resume: EvalResumeResponseSchema }).strict(),\n ]),\n expectation,\n observation: EvalObservationSchema,\n reference: z.json().optional(),\n status,\n reason: z.string().optional(),\n judgeCalls: z.number().int().nonnegative().optional(),\n judgeUsage: z.array(EvalJudgeUsageSchema).optional(),\n criteria: z.array(\n EvalVerdictSchema.extend({ id: z.string(), text: z.string() }),\n ),\n })\n .strict();\nconst runtimeExecution = z\n .object({ sessionId: z.string().min(1), runId: z.string().min(1) })\n .strict();\nexport const EvalCaseResultSchema = z\n .object({\n caseId: id,\n repetition: z.number().int().positive(),\n attemptId: z.uuid().optional(),\n runtimeExecutions: z.array(runtimeExecution).optional(),\n sessionId: z.string(),\n status,\n durationMs: z.number().nonnegative(),\n steps: z.array(EvalStepResultSchema),\n errors: z.array(issue),\n })\n .strict();\nexport const EvalJudgeIdentitySchema = z\n .object({\n id,\n version: id,\n location: z.enum([\"app\", \"studio\"]).optional(),\n })\n .strict();\nconst judge = EvalJudgeIdentitySchema;\nexport const StudioEvalJudgeRequestSchema = z\n .object({\n environment: id,\n judge: EvalJudgeIdentitySchema,\n criterion: z\n .object({ id, text: z.string().trim().min(1).max(16_384) })\n .strict(),\n input: EvalStepResultSchema.shape.input,\n observation: EvalObservationSchema,\n reference: z.json().optional(),\n conversation: z.array(EvalStepResultSchema).max(100),\n })\n .strict();\nexport const StudioEvalJudgeResponseSchema = z\n .object({\n judge: EvalJudgeIdentitySchema,\n verdict: EvalVerdictSchema,\n usage: z.array(EvalJudgeUsageSchema).optional(),\n })\n .strict();\nexport const EvalRunResultSchema = z\n .object({\n id: z.uuid(),\n suiteId: id,\n suiteRevision: z.string().regex(/^[a-f0-9]{64}$/),\n suite: EvalSuiteSchema,\n judge: judge.optional(),\n startedAt: z.iso.datetime(),\n durationMs: z.number().nonnegative(),\n status,\n counts: z\n .object({\n passed: z.number().int().nonnegative(),\n failed: z.number().int().nonnegative(),\n error: z.number().int().nonnegative(),\n cancelled: z.number().int().nonnegative(),\n ungraded: z.number().int().nonnegative().optional(),\n })\n .strict(),\n cases: z.array(EvalCaseResultSchema),\n errors: z.array(issue),\n })\n .strict();\nexport const EvalManifestSchema = z\n .object({\n schemaVersion: z.literal(1),\n studioJudging: z.literal(true).optional(),\n promptContracts: z\n .array(\n z\n .object({\n id: z.string(),\n format: z.enum([\"system-user\", \"chat\"]),\n variablesSchema: z.record(z.string(), z.unknown()),\n configSchema: z.record(z.string(), z.unknown()),\n })\n .strict(),\n )\n .optional(),\n attemptScheduling: z.literal(true).optional(),\n suites: z.array(EvalSuiteSchema),\n responders: z.array(\n z\n .object({\n name: id,\n schemaId: id.optional(),\n schemaVersion: id.optional(),\n })\n .strict(),\n ),\n references: z.array(id),\n paramsSchema: z.record(z.string(), z.unknown()).optional(),\n judge: judge.optional(),\n })\n .strict();\nexport const EvalProgressSchema = z.discriminatedUnion(\"type\", [\n z\n .object({\n type: z.literal(\"case-runtime-associated\"),\n caseId: id,\n repetition: z.number().int().positive(),\n attemptId: z.uuid(),\n execution: runtimeExecution,\n })\n .strict(),\n z\n .object({\n type: z.literal(\"run-started\"),\n caseIds: z.array(id).min(1),\n repetitions: z.number().int().positive(),\n concurrency: z.number().int().positive(),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"case-progress\"),\n caseId: id,\n repetition: z.number().int().positive(),\n phase: issue.shape.phase,\n stepIndex: z.number().int().nonnegative().optional(),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"case-started\"),\n attemptId: z.uuid().optional(),\n caseId: id,\n repetition: z.number().int().positive(),\n sessionId: z.string(),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"step-completed\"),\n caseId: id,\n repetition: z.number().int().positive(),\n step: EvalStepResultSchema,\n })\n .strict(),\n z\n .object({ type: z.literal(\"case-completed\"), result: EvalCaseResultSchema })\n .strict(),\n]);\nexport const EvalRemoteRunRequestSchema = z\n .object({\n promptSnapshot: PromptSnapshotSchema.optional(),\n promptGroupName: z.string().optional(),\n suiteId: id,\n suiteRevision: z.string().regex(/^[a-f0-9]{64}$/),\n grading: z.enum([\"app\", \"studio\"]).optional(),\n judge: EvalJudgeIdentitySchema.optional(),\n caseIds: z.array(id).min(1).max(100).optional(),\n repetitions: z.number().int().min(1).max(20).default(1),\n concurrency: z.number().int().min(1).max(20).default(1),\n attempt: z\n .object({\n caseId: id,\n repetition: z.number().int().min(1).max(20),\n evaluationId: z.uuid(),\n })\n .strict()\n .optional(),\n })\n .strict();\nexport const StudioEvalStartRequestSchema = EvalRemoteRunRequestSchema.omit({\n grading: true,\n judge: true,\n promptSnapshot: true,\n promptGroupName: true,\n attempt: true,\n}).extend({\n promptSelection: z\n .discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"live\") }).strict(),\n z\n .object({\n type: z.literal(\"single\"),\n id: z.string(),\n version: z.number().int().positive(),\n })\n .strict(),\n z.object({ type: z.literal(\"group\"), groupId: z.uuid() }).strict(),\n ])\n .optional(),\n targetId: z.string().min(1).max(128),\n judge: z.enum([\"studio\", \"app\"]).default(\"studio\"),\n});\nexport const EvalWireEventSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"progress\"), event: EvalProgressSchema }).strict(),\n z.object({ type: z.literal(\"result\"), result: EvalRunResultSchema }).strict(),\n z.object({ type: z.literal(\"error\"), message: z.string() }).strict(),\n]);\nexport type EvalManifest = z.infer<typeof EvalManifestSchema>;\nexport type EvalRemoteRunRequest = z.infer<typeof EvalRemoteRunRequestSchema>;\nexport type EvalWireEvent = z.infer<typeof EvalWireEventSchema>;\n\nexport class EvalConfigurationError extends Error {\n override name = \"EvalConfigurationError\";\n}\n\nexport function parseEvalSuite(value: unknown): EvalSuite {\n const result = EvalSuiteSchema.safeParse(value);\n if (!result.success)\n throw new EvalConfigurationError(\n \"Invalid suite. Expected serializable cases, conversation steps, and expectations.\",\n );\n const ids = result.data.cases.map((item) => item.id);\n if (new Set(ids).size !== ids.length)\n throw new EvalConfigurationError(\"Case IDs must be unique within a suite.\");\n for (const item of result.data.cases) {\n let waiting = false;\n for (const step of item.steps) {\n if (\"resume\" in step !== waiting)\n throw new EvalConfigurationError(\n \"A resume step must follow an expected interrupt; a message must follow an answer.\",\n );\n waiting = step.expect.type === \"interrupt\";\n }\n }\n return result.data as EvalSuite;\n}\n","import { z } from \"zod\";\n\n/** Public events retained after streaming noise has been removed. */\nexport const EVAL_EVIDENCE_EVENT_TYPES = [\n \"tool-call-start\",\n \"tool-call-result\",\n \"tool-call-error\",\n \"tool-result\",\n \"structured-data\",\n \"structured-data-invalidated\",\n \"interrupt\",\n \"error\",\n \"cancelled\",\n \"limit-reached\",\n] as const;\n\nconst id = z.string().trim().min(1).max(256);\nconst filter = z.object({ using: id, params: z.json().optional() }).strict();\nexport const EvalEvidencePolicySchema = z\n .object({\n history: z.boolean().optional(),\n events: z\n .union([\n z.literal(false),\n z.array(z.enum(EVAL_EVIDENCE_EVENT_TYPES)),\n filter,\n ])\n .optional(),\n outputs: z\n .union([\n z.literal(false),\n z.array(\n z\n .object({\n dataType: id.optional(),\n schemaId: id.optional(),\n schemaVersion: id.optional(),\n })\n .strict()\n .refine((value) => Boolean(value.dataType || value.schemaId), {\n message: \"Select an output by dataType or schemaId.\",\n }),\n ),\n filter,\n ])\n .optional(),\n })\n .strict();\n","import type { EvalCase, EvalJson, EvalSuite } from \"./types\";\n\ntype DefinedSuite<Params> = Omit<EvalSuite<Params>, \"cases\"> & {\n cases: readonly (Omit<EvalCase<Params>, \"params\"> &\n (undefined extends Params\n ? { params?: Exclude<Params, undefined> }\n : { params: Params }))[];\n};\n\n/** Author a suite with typed case parameters. Runtime validation belongs to createEvals. */\nexport function defineSuite<Params = EvalJson | undefined>(\n suite: DefinedSuite<Params>,\n): DefinedSuite<Params> {\n return suite;\n}\n","import { z } from \"zod\";\nimport {\n EvalJudgeIdentitySchema,\n StudioEvalStartRequestSchema,\n} from \"./contracts\";\nimport {\n EvalCostsSchema,\n StudioEvalDetailSchema,\n StudioEvalRunSummarySchema,\n} from \"./studio-contracts\";\n\nexport const EvaluationMetadataSchema = z\n .object({\n source: z\n .enum([\"manual\", \"deployment\", \"schedule\", \"ci\"])\n .default(\"manual\"),\n commit: z.string().trim().min(1).max(100).optional(),\n deploymentUrl: z\n .url()\n .refine((value) => {\n try {\n const url = new URL(value);\n return (\n [\"https:\", \"http:\"].includes(url.protocol) &&\n !url.username &&\n !url.password\n );\n } catch {\n return false;\n }\n }, \"Expected an HTTP(S) URL without credentials\")\n .optional(),\n })\n .strict();\nexport const StudioEvaluationStartRequestSchema = z\n .object({\n targetId: z.string().trim().min(1),\n name: z.string().trim().min(1).max(200).optional(),\n promptSelection: StudioEvalStartRequestSchema.shape.promptSelection,\n selection: z.enum([\"all\", \"selected\"]),\n suites: z\n .array(\n z\n .object({\n suiteId: z.string().min(1),\n suiteRevision: z.string().regex(/^[a-f0-9]{64}$/),\n caseIds: z.array(z.string().min(1)).min(1).max(100).optional(),\n })\n .strict(),\n )\n .min(1)\n .max(100),\n judge: z.enum([\"studio\", \"app\"]).default(\"studio\"),\n repetitions: z.number().int().min(1).max(20).default(1),\n concurrency: z.number().int().min(1).max(20).default(1),\n metadata: EvaluationMetadataSchema.default({ source: \"manual\" }),\n idempotencyKey: z.string().trim().min(1).max(200).optional(),\n })\n .strict();\nexport type StudioEvaluationStartRequest = z.input<\n typeof StudioEvaluationStartRequestSchema\n>;\nexport const StudioEvaluationSummarySchema = z.object({\n id: z.uuid(),\n name: z.string(),\n targetId: z.string(),\n targetName: z.string(),\n environment: z.string(),\n selection: z.enum([\"all\", \"selected\"]),\n metadata: EvaluationMetadataSchema,\n judge: EvalJudgeIdentitySchema.optional(),\n status: StudioEvalRunSummarySchema.shape.status,\n createdAt: z.string(),\n startedAt: z.string().nullable(),\n endedAt: z.string().nullable(),\n cancelRequestedAt: z.string().nullable(),\n suiteCount: z.number().int().nonnegative(),\n completedSuites: z.number().int().nonnegative(),\n totalAttempts: z.number().int().nonnegative(),\n completedAttempts: z.number().int().nonnegative(),\n counts: z.object({\n passed: z.number(),\n failed: z.number(),\n error: z.number(),\n cancelled: z.number(),\n }),\n costs: EvalCostsSchema.optional(),\n legacy: z.boolean().optional(),\n});\nexport const StudioEvaluationHistorySchema = z.object({\n runs: z.array(StudioEvaluationSummarySchema),\n});\nexport const StudioEvaluationDetailSchema = z.object({\n run: StudioEvaluationSummarySchema.extend({\n suites: z.array(StudioEvalRunSummarySchema),\n }),\n});\nexport const StudioEvaluationResultsSchema = z.object({\n run: StudioEvaluationSummarySchema.extend({\n suites: z.array(StudioEvalDetailSchema.shape.run),\n }),\n});\nexport type StudioEvaluationSummary = z.infer<\n typeof StudioEvaluationSummarySchema\n>;\nexport type StudioEvaluationDetail = z.infer<\n typeof StudioEvaluationDetailSchema\n>[\"run\"];\n","import { PromptSnapshotSchema } from \"@kortyx/prompts/browser\";\nimport { z } from \"zod\";\nimport {\n EvalJudgeIdentitySchema,\n EvalManifestSchema,\n EvalProgressSchema,\n EvalRunResultSchema,\n EvalSuiteSchema,\n} from \"./contracts\";\nexport const StudioEvalTargetsResponseSchema = z.object({\n canRun: z.boolean(),\n studioJudge: EvalJudgeIdentitySchema.nullable().optional(),\n targets: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n environment: z.string(),\n error: z.string().nullable(),\n // Safe discovery diagnostics; optional for compatibility with older APIs.\n diagnostic: z\n .object({\n code: z.enum([\n \"environment_forbidden\",\n \"environment_unavailable\",\n \"endpoint_not_found\",\n \"endpoint_unauthorized\",\n \"endpoint_http_error\",\n \"endpoint_unreachable\",\n \"manifest_invalid\",\n ]),\n httpStatus: z.number().int().min(100).max(599).optional(),\n })\n .nullable()\n .optional(),\n manifest: EvalManifestSchema.nullable(),\n revisions: z.record(z.string(), z.string()),\n }),\n ),\n});\nexport const EvalCostAmountSchema = z.object({\n costSummary: z\n .object({\n amounts: z.array(\n z.object({\n amount: z.number().finite().nonnegative(),\n currency: z.string().nullable(),\n }),\n ),\n complete: z.boolean(),\n })\n .optional(),\n amount: z.number().finite().nonnegative().nullable(),\n currency: z.string().nullable(),\n status: z.enum([\"complete\", \"partial\", \"unavailable\"]),\n calls: z.number().int().nonnegative(),\n unpricedCalls: z.number().int().nonnegative(),\n estimated: z.boolean(),\n});\nexport const EvalCostsSchema = z.object({\n workflow: EvalCostAmountSchema,\n judge: EvalCostAmountSchema,\n total: EvalCostAmountSchema,\n});\nexport type EvalCosts = z.infer<typeof EvalCostsSchema>;\nexport type EvalCostAmount = z.infer<typeof EvalCostAmountSchema>;\nexport const StudioEvalRunSummarySchema = z.object({\n id: z.uuid(),\n evaluationId: z.uuid().nullable().optional(),\n targetId: z.string(),\n targetName: z.string(),\n environment: z.string(),\n suiteId: z.string(),\n suiteRevision: z.string(),\n status: z.enum([\n \"queued\",\n \"running\",\n \"passed\",\n \"failed\",\n \"error\",\n \"cancelled\",\n ]),\n createdAt: z.string(),\n startedAt: z.string().nullable(),\n endedAt: z.string().nullable(),\n error: z.string().nullable(),\n cancelRequestedAt: z.string().nullable(),\n costs: EvalCostsSchema.optional(),\n counts: z\n .object({\n passed: z.number(),\n failed: z.number(),\n error: z.number(),\n cancelled: z.number(),\n })\n .nullable()\n .optional(),\n suiteName: z.string().nullable().optional(),\n totalAttempts: z.number().int().nonnegative().optional(),\n completedAttempts: z.number().int().nonnegative().optional(),\n phase: z.string().optional(),\n});\nexport const StudioEvalHistorySchema = z.object({\n runs: z.array(StudioEvalRunSummarySchema),\n});\nexport const StudioEvalDetailSchema = z.object({\n run: StudioEvalRunSummarySchema.extend({\n caseCosts: z.record(z.string(), EvalCostsSchema).optional(),\n request: z\n .object({\n caseIds: z.array(z.string()).optional(),\n grading: z.enum([\"app\", \"studio\"]).optional(),\n judge: EvalJudgeIdentitySchema.optional(),\n repetitions: z.number().int().positive(),\n concurrency: z.number().optional(),\n promptSnapshot: PromptSnapshotSchema.optional(),\n promptGroupName: z.string().optional(),\n })\n .optional(),\n suite: EvalSuiteSchema,\n result: EvalRunResultSchema.nullable(),\n events: z.array(z.object({ id: z.number(), event: EvalProgressSchema })),\n }),\n});\nexport type StudioEvalTargets = z.infer<typeof StudioEvalTargetsResponseSchema>;\nexport type StudioEvalHistory = z.infer<typeof StudioEvalHistorySchema>;\nexport type StudioEvalDetail = z.infer<typeof StudioEvalDetailSchema>[\"run\"];\n\nexport type StudioEvalRunSummary = z.infer<typeof StudioEvalRunSummarySchema>;\n","import { EvalConfigurationError } from \"./contracts\";\nimport { EVAL_EVIDENCE_EVENT_TYPES } from \"./evidence-policy\";\nimport type {\n EvalEvidenceEvent,\n EvalEvidenceFilters,\n EvalEvidencePolicy,\n EvalHandlerRef,\n EvalJson,\n EvalJudgeEvidence,\n EvalObservation,\n EvalStepResult,\n} from \"./types\";\n\nconst object = (\n value: EvalJson,\n): value is { readonly [key: string]: EvalJson } =>\n value !== null && typeof value === \"object\" && !Array.isArray(value);\nconst handler = (value: unknown): value is EvalHandlerRef =>\n value !== null && typeof value === \"object\" && \"using\" in value;\n\nexport function validateEvidenceFilters(\n policy: EvalEvidencePolicy,\n filters: EvalEvidenceFilters,\n): void {\n for (const key of [\"events\", \"outputs\"] as const) {\n const selection = policy[key];\n if (\n handler(selection) &&\n (!Object.hasOwn(filters[key] ?? {}, selection.using) ||\n typeof filters[key]?.[selection.using] !== \"function\")\n )\n throw new EvalConfigurationError(\n `Unknown ${key} evidence filter: ${selection.using}`,\n );\n }\n}\n\nfunction predicate<T>(\n filter: ((value: T, params?: EvalJson) => boolean) | undefined,\n value: T,\n params?: EvalJson,\n): boolean {\n if (!filter)\n throw new EvalConfigurationError(\"Evidence filter is not registered.\");\n const selected = filter(\n structuredClone(value),\n params === undefined ? undefined : structuredClone(params),\n );\n if (typeof selected !== \"boolean\")\n throw new Error(\"Evidence filters must return a boolean synchronously.\");\n return selected;\n}\n\n/** Never infer presentation, summarize facts, or truncate tool results. */\nexport function compactEvalObservation(\n observation: EvalObservation,\n policy: EvalEvidencePolicy = {},\n filters: EvalEvidenceFilters = {},\n): EvalObservation {\n const outputs = policy.outputs;\n const includeOutput = (output: EvalJson): boolean => {\n if (outputs === false) return false;\n if (handler(outputs))\n return predicate(\n filters.outputs?.[outputs.using],\n output,\n outputs.params,\n );\n if (!outputs) return true;\n return (\n object(output) &&\n outputs.some((selector) =>\n Object.entries(selector).every(([key, value]) => output[key] === value),\n )\n );\n };\n const selectedOutputs = observation.structured.map((output) => ({\n output,\n included: includeOutput(output),\n }));\n const structured = selectedOutputs\n .filter((item) => item.included)\n .map((item) => item.output);\n const events = observation.events\n ?.filter((value): value is EvalEvidenceEvent => {\n if (\n !object(value) ||\n !EVAL_EVIDENCE_EVENT_TYPES.some((type) => type === value.type)\n )\n return false;\n if (value.type === \"structured-data\") {\n if (value.kind !== \"final\") return false;\n // Reuse the decision for the canonical envelope, even when its event copy\n // carries different source metadata. A rejected output must not leak back in.\n const current = selectedOutputs.find(\n ({ output: item }) =>\n object(item) &&\n typeof value.streamId === \"string\" &&\n item.streamId === value.streamId &&\n item.status === \"done\" &&\n item.dataType === value.dataType &&\n item.schemaId === value.schemaId &&\n item.schemaVersion === value.schemaVersion &&\n JSON.stringify(item.data) === JSON.stringify(value.data),\n );\n if (current) {\n if (!current.included) return false;\n // Keep finals around invalidation boundaries in their original order.\n if (\n !observation.events?.some(\n (event) =>\n object(event) &&\n event.type === \"structured-data-invalidated\" &&\n event.streamId === value.streamId,\n )\n )\n return false;\n } else {\n const { type: _type, kind: _kind, ...fields } = value;\n if (!includeOutput({ ...fields, status: \"done\" })) return false;\n }\n }\n return true;\n })\n .filter((event) => {\n const selection = policy.events;\n if (selection === false) return false;\n if (handler(selection))\n return predicate(\n filters.events?.[selection.using],\n event,\n selection.params,\n );\n return !selection || selection.includes(event.type);\n });\n return structuredClone({\n ...observation,\n structured,\n ...(events ? { events } : {}),\n });\n}\n\nexport function createEvalJudgeEvidence(\n observation: EvalObservation,\n policy: EvalEvidencePolicy = {},\n filters: EvalEvidenceFilters = {},\n): EvalJudgeEvidence {\n return {\n version: \"compact-v1\",\n history: policy.history ?? true,\n observation: compactEvalObservation(observation, policy, filters),\n };\n}\n\n/** Shared by local grading and Studio replay. Never expose the original evidence via history. */\nexport function getEvalGradeEvidence(\n step: EvalStepResult,\n previous: readonly EvalStepResult[],\n): {\n observation: EvalObservation;\n conversation: EvalStepResult[];\n} {\n const evidence = step.evidence ?? createEvalJudgeEvidence(step.observation);\n return {\n observation: structuredClone(evidence.observation),\n conversation: evidence.history\n ? previous.map((prior) => {\n const { evidence: selected, ...result } = prior;\n return structuredClone({\n ...result,\n observation:\n selected?.observation ??\n compactEvalObservation(prior.observation),\n });\n })\n : [],\n };\n}\n","import {\n EvalConfigurationError,\n EvalJudgeIdentitySchema,\n StudioEvalJudgeRequestSchema,\n StudioEvalJudgeResponseSchema,\n} from \"./contracts\";\nimport { compactEvalObservation } from \"./evidence\";\nimport type { EvalJudge, StudioEvalJudgeOptions } from \"./types\";\n\nasync function readJson(\n response: Response,\n signal: AbortSignal,\n): Promise<unknown> {\n if (!response.ok || !response.body) {\n await response.body?.cancel().catch(() => {});\n throw new Error(\"Studio judge is unavailable or rejected the request.\");\n }\n const reader = response.body.getReader();\n const abort = () => {\n void reader.cancel().catch(() => {});\n };\n signal.addEventListener(\"abort\", abort, { once: true });\n const decoder = new TextDecoder();\n let text = \"\";\n let bytes = 0;\n try {\n for (;;) {\n signal.throwIfAborted();\n const part = await reader.read();\n if (part.done) break;\n bytes += part.value.byteLength;\n if (bytes > 1_000_000)\n throw new Error(\"Studio judge response is too large.\");\n text += decoder.decode(part.value, { stream: true });\n }\n signal.throwIfAborted();\n return JSON.parse(text + decoder.decode());\n } finally {\n signal.removeEventListener(\"abort\", abort);\n await reader.cancel().catch(() => {});\n reader.releaseLock();\n }\n}\n\n/** Discover and pin the Studio backend's judge; grading never runs in the browser. */\nexport async function createStudioEvalJudge(\n options: StudioEvalJudgeOptions,\n): Promise<EvalJudge> {\n const base = new URL(options.url);\n if (\n base.username ||\n base.password ||\n base.search ||\n base.hash ||\n (base.pathname !== \"/\" && base.pathname !== \"\") ||\n (base.protocol !== \"https:\" &&\n !(options.allowInsecureHttp && base.protocol === \"http:\")) ||\n !options.apiKey.trim() ||\n !options.environment.trim()\n )\n throw new EvalConfigurationError(\n \"Studio judging requires an API origin, key and environment, with HTTPS or explicit local HTTP opt-in.\",\n );\n const endpoint = new URL(\"/v1/studio/evals/judge\", base);\n const discovery = new URL(endpoint);\n discovery.searchParams.set(\"environment\", options.environment);\n const signal = options.signal\n ? AbortSignal.any([options.signal, AbortSignal.timeout(15_000)])\n : AbortSignal.timeout(15_000);\n const identity = EvalJudgeIdentitySchema.parse(\n await readJson(\n await fetch(discovery, {\n headers: { authorization: `Bearer ${options.apiKey}` },\n redirect: \"error\",\n signal,\n }),\n signal,\n ),\n );\n if (identity.location !== \"studio\")\n throw new EvalConfigurationError(\n \"Endpoint did not provide a Studio judge.\",\n );\n return {\n ...identity,\n location: \"studio\",\n async grade(input) {\n const request = StudioEvalJudgeRequestSchema.parse({\n environment: options.environment,\n judge: identity,\n criterion: input.criterion,\n input: input.input,\n observation: compactEvalObservation(input.observation),\n reference: input.reference,\n conversation: input.conversation.map(\n ({ evidence: _evidence, ...step }) => ({\n ...step,\n observation: compactEvalObservation(step.observation),\n }),\n ),\n });\n const signal = AbortSignal.any([\n input.signal,\n AbortSignal.timeout(60_000),\n ]);\n signal.throwIfAborted();\n const response = StudioEvalJudgeResponseSchema.parse(\n await readJson(\n await fetch(endpoint, {\n method: \"POST\",\n headers: {\n authorization: `Bearer ${options.apiKey}`,\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(request),\n redirect: \"error\",\n signal,\n }),\n signal,\n ),\n );\n if (\n response.judge.id !== identity.id ||\n response.judge.version !== identity.version ||\n response.judge.location !== \"studio\"\n )\n throw new Error(\n \"Studio judge identity changed. Refresh before running.\",\n );\n for (const usage of response.usage ?? []) input.onUsage?.(usage);\n return response.verdict;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,qBAAqC;AACrC,IAAAA,cAAkB;;;ACDlB,iBAAkB;AAGX,IAAM,4BAA4B;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,KAAK,aAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAC3C,IAAM,SAAS,aAAE,OAAO,EAAE,OAAO,IAAI,QAAQ,aAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO;AACpE,IAAM,2BAA2B,aACrC,OAAO;AAAA,EACN,SAAS,aAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,QAAQ,aACL,MAAM;AAAA,IACL,aAAE,QAAQ,KAAK;AAAA,IACf,aAAE,MAAM,aAAE,KAAK,yBAAyB,CAAC;AAAA,IACzC;AAAA,EACF,CAAC,EACA,SAAS;AAAA,EACZ,SAAS,aACN,MAAM;AAAA,IACL,aAAE,QAAQ,KAAK;AAAA,IACf,aAAE;AAAA,MACA,aACG,OAAO;AAAA,QACN,UAAU,GAAG,SAAS;AAAA,QACtB,UAAU,GAAG,SAAS;AAAA,QACtB,eAAe,GAAG,SAAS;AAAA,MAC7B,CAAC,EACA,OAAO,EACP,OAAO,CAAC,UAAU,QAAQ,MAAM,YAAY,MAAM,QAAQ,GAAG;AAAA,QAC5D,SAAS;AAAA,MACX,CAAC;AAAA,IACL;AAAA,IACA;AAAA,EACF,CAAC,EACA,SAAS;AACd,CAAC,EACA,OAAO;;;AD1CV,IAAMC,MAAK,cAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAC3C,IAAM,UAAU,cAAE,OAAO,EAAE,OAAOA,KAAI,QAAQ,cAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO;AACrE,IAAM,2BAA2B,cAAE,mBAAmB,QAAQ;AAAA,EACnE,cAAE,OAAO,EAAE,MAAM,cAAE,QAAQ,MAAM,GAAG,MAAM,cAAE,OAAO,EAAE,CAAC,EAAE,OAAO;AAAA,EAC/D,cAAE,OAAO,EAAE,MAAM,cAAE,QAAQ,QAAQ,GAAG,KAAK,cAAE,MAAM,cAAE,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,EACzE,cAAE,OAAO,EAAE,MAAM,cAAE,QAAQ,OAAO,GAAG,OAAO,cAAE,KAAK,EAAE,CAAC,EAAE,OAAO;AAAA,EAC/D,cAAE,OAAO,EAAE,MAAM,cAAE,QAAQ,QAAQ,EAAE,CAAC,EAAE,OAAO;AACjD,CAAC;AACD,IAAM,cAAc,cACjB,OAAO;AAAA,EACN,MAAM,cAAE,KAAK,CAAC,UAAU,WAAW,CAAC;AAAA,EACpC,UAAUA,IAAG,SAAS;AAAA,EACtB,eAAeA,IAAG,SAAS;AAAA,EAC3B,SAAS,cACN,MAAM,cAAE,OAAO,EAAE,UAAUA,KAAI,eAAeA,IAAG,SAAS,EAAE,CAAC,EAAE,OAAO,CAAC,EACvE,SAAS;AAAA,EACZ,UAAU,cACP;AAAA,IACC,cAAE,MAAM;AAAA,MACN,cAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,MACvB,cAAE,OAAO,EAAE,IAAAA,KAAI,MAAM,cAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,IAC1D,CAAC;AAAA,EACH,EACC,SAAS;AAAA,EACZ,WAAW,cAAE,KAAK,EAAE,SAAS;AAC/B,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,QAAQ;AAC3B,MAAI,MAAM,SAAS,aAAa,MAAM,YAAY,MAAM;AACtD,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX,CAAC;AACH,QAAM,MACJ,MAAM,UAAU;AAAA,IAAI,CAAC,MAAM,UACzB,OAAO,SAAS,WAAW,OAAO,KAAK,IAAI,KAAK;AAAA,EAClD,KAAK,CAAC;AACR,MAAI,IAAI,IAAI,GAAG,EAAE,SAAS,IAAI;AAC5B,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AACI,IAAM,kBAAkB,cAC5B,OAAO;AAAA,EACN,UAAU,yBAAyB,SAAS;AAAA,EAC5C,IAAAA;AAAA,EACA,MAAM,cAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAO,cACJ;AAAA,IACC,cACG,OAAO;AAAA,MACN,IAAAA;AAAA,MACA,MAAM,cAAE,OAAO,EAAE,SAAS;AAAA,MAC1B,QAAQ,cAAE,KAAK,EAAE,SAAS;AAAA,MAC1B,YAAYA,IAAG,SAAS;AAAA,MACxB,OAAO,cACJ;AAAA,QACC,cAAE,MAAM;AAAA,UACN,cACG,OAAO,EAAE,SAAS,cAAE,OAAO,EAAE,IAAI,CAAC,GAAG,QAAQ,YAAY,CAAC,EAC1D,OAAO;AAAA,UACV,cACG,OAAO;AAAA,YACN,QAAQ,cAAE,MAAM,CAAC,0BAA0B,OAAO,CAAC;AAAA,YACnD,QAAQ;AAAA,UACV,CAAC,EACA,OAAO;AAAA,QACZ,CAAC;AAAA,MACH,EACC,IAAI,CAAC;AAAA,IACV,CAAC,EACA,OAAO;AAAA,EACZ,EACC,IAAI,CAAC;AACV,CAAC,EACA,OAAO;AACH,IAAM,oBAAoB,cAC9B,OAAO;AAAA,EACN,QAAQ,cAAE,QAAQ;AAAA,EAClB,QAAQ,cAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAC/B,UAAU,cAAE,MAAM,cAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC,EACA,OAAO;AACH,IAAM,wBAAwB,cAClC,OAAO;AAAA,EACN,aAAa,cACV;AAAA,IACC,cACG,OAAO;AAAA,MACN,IAAI,cAAE,OAAO;AAAA,MACb,SAAS,cAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,MACnC,MAAM,cAAE,OAAO,EAAE,MAAM,gBAAgB;AAAA,MACvC,aAAa,cAAE,OAAO;AAAA,MACtB,kBAAkB,cAAE,OAAO;AAAA,MAC3B,OAAO,cAAE,OAAO,EAAE,SAAS;AAAA,IAC7B,CAAC,EACA,OAAO;AAAA,EACZ,EACC,SAAS;AAAA,EACZ,MAAM,cAAE,KAAK,CAAC,UAAU,aAAa,SAAS,WAAW,CAAC;AAAA,EAC1D,MAAM,cAAE,OAAO;AAAA,EACf,YAAY,cAAE,MAAM,cAAE,KAAK,CAAC;AAAA,EAC5B,QAAQ,cAAE,MAAM,cAAE,KAAK,CAAC,EAAE,SAAS;AAAA,EACnC,OAAO,cAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,cAAc,cAAE,OAAO,EAAE,SAAS;AAAA,EAClC,WAAW,cACR,OAAO;AAAA,IACN,WAAW,cAAE,OAAO;AAAA,IACpB,MAAM,cAAE,KAAK,CAAC,QAAQ,UAAU,gBAAgB,QAAQ,CAAC;AAAA,IACzD,UAAU,cAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,UAAU,cAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,eAAe,cAAE,OAAO,EAAE,SAAS;AAAA,IACnC,SAAS,cAAE;AAAA,MACT,cACG,OAAO;AAAA,QACN,IAAI,cAAE,OAAO;AAAA,QACb,OAAO,cAAE,OAAO;AAAA,QAChB,aAAa,cAAE,OAAO,EAAE,SAAS;AAAA,MACnC,CAAC,EACA,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,cAAE,KAAK,EAAE,SAAS;AAAA,EAC7B,CAAC,EACA,OAAO,EACP,SAAS;AACd,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,QAAQ;AAC3B,MAAK,MAAM,SAAS,gBAAiB,QAAQ,MAAM,SAAS;AAC1D,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AAEH,IAAM,SAAS,cAAE,KAAK,CAAC,UAAU,UAAU,SAAS,aAAa,UAAU,CAAC;AAC5E,IAAM,QAAQ,cACX,OAAO;AAAA,EACN,OAAO,cAAE,KAAK;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,MAAM,cAAE,OAAO;AAAA,EACf,SAAS,cAAE,OAAO;AACpB,CAAC,EACA,OAAO;AAEH,IAAM,uBAAuB,cACjC,OAAO;AAAA,EACN,UAAU,cAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC1B,OAAO,cAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,YAAY,cAAE,IAAI,SAAS;AAAA,EAC3B,OAAO,cACJ,OAAO;AAAA,IACN,OAAO,cAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,IAClD,QAAQ,cAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,IACnD,OAAO,cAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,IAClD,WAAW,cAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,IACtD,WAAW,cAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,IACtD,YAAY,cAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,IACvD,cAAc,cAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,IACzD,yBAAyB,cAAE,QAAQ,EAAE,SAAS;AAAA,IAC9C,wBAAwB,cAAE,QAAQ,EAAE,SAAS;AAAA,IAC7C,yBAAyB,cAAE,QAAQ,EAAE,SAAS;AAAA,EAChD,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,gBAAgB,cACb,OAAO;AAAA,IACN,aAAa,cAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,IACjD,cAAc,cAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,IAClD,OAAO,cAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EAC7C,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,SAAS,cACN,OAAO;AAAA,IACN,QAAQ,cAAE,QAAQ,UAAU;AAAA,IAC5B,UAAU,cAAE,QAAQ,KAAK;AAAA,IACzB,kBAAkB,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK;AAAA,EACxD,CAAC,EACA,OAAO,EACP,SAAS;AACd,CAAC,EACA,OAAO;AACH,IAAM,uBAAuB,cACjC,OAAO;AAAA,EACN,UAAU,cACP,OAAO;AAAA,IACN,SAAS,cAAE,QAAQ,YAAY;AAAA,IAC/B,SAAS,cAAE,QAAQ;AAAA,IACnB,aAAa;AAAA,EACf,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,OAAO,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACpC,OAAO,cAAE,MAAM;AAAA,IACb,cAAE,OAAO,EAAE,SAAS,cAAE,OAAO,EAAE,CAAC,EAAE,OAAO;AAAA,IACzC,cAAE,OAAO,EAAE,QAAQ,yBAAyB,CAAC,EAAE,OAAO;AAAA,EACxD,CAAC;AAAA,EACD;AAAA,EACA,aAAa;AAAA,EACb,WAAW,cAAE,KAAK,EAAE,SAAS;AAAA,EAC7B;AAAA,EACA,QAAQ,cAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,YAAY,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACpD,YAAY,cAAE,MAAM,oBAAoB,EAAE,SAAS;AAAA,EACnD,UAAU,cAAE;AAAA,IACV,kBAAkB,OAAO,EAAE,IAAI,cAAE,OAAO,GAAG,MAAM,cAAE,OAAO,EAAE,CAAC;AAAA,EAC/D;AACF,CAAC,EACA,OAAO;AACV,IAAM,mBAAmB,cACtB,OAAO,EAAE,WAAW,cAAE,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,cAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,EACjE,OAAO;AACH,IAAM,uBAAuB,cACjC,OAAO;AAAA,EACN,QAAQA;AAAA,EACR,YAAY,cAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACtC,WAAW,cAAE,KAAK,EAAE,SAAS;AAAA,EAC7B,mBAAmB,cAAE,MAAM,gBAAgB,EAAE,SAAS;AAAA,EACtD,WAAW,cAAE,OAAO;AAAA,EACpB;AAAA,EACA,YAAY,cAAE,OAAO,EAAE,YAAY;AAAA,EACnC,OAAO,cAAE,MAAM,oBAAoB;AAAA,EACnC,QAAQ,cAAE,MAAM,KAAK;AACvB,CAAC,EACA,OAAO;AACH,IAAM,0BAA0B,cACpC,OAAO;AAAA,EACN,IAAAA;AAAA,EACA,SAASA;AAAA,EACT,UAAU,cAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,EAAE,SAAS;AAC/C,CAAC,EACA,OAAO;AACV,IAAM,QAAQ;AACP,IAAM,+BAA+B,cACzC,OAAO;AAAA,EACN,aAAaA;AAAA,EACb,OAAO;AAAA,EACP,WAAW,cACR,OAAO,EAAE,IAAAA,KAAI,MAAM,cAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,KAAM,EAAE,CAAC,EACzD,OAAO;AAAA,EACV,OAAO,qBAAqB,MAAM;AAAA,EAClC,aAAa;AAAA,EACb,WAAW,cAAE,KAAK,EAAE,SAAS;AAAA,EAC7B,cAAc,cAAE,MAAM,oBAAoB,EAAE,IAAI,GAAG;AACrD,CAAC,EACA,OAAO;AACH,IAAM,gCAAgC,cAC1C,OAAO;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO,cAAE,MAAM,oBAAoB,EAAE,SAAS;AAChD,CAAC,EACA,OAAO;AACH,IAAM,sBAAsB,cAChC,OAAO;AAAA,EACN,IAAI,cAAE,KAAK;AAAA,EACX,SAASA;AAAA,EACT,eAAe,cAAE,OAAO,EAAE,MAAM,gBAAgB;AAAA,EAChD,OAAO;AAAA,EACP,OAAO,MAAM,SAAS;AAAA,EACtB,WAAW,cAAE,IAAI,SAAS;AAAA,EAC1B,YAAY,cAAE,OAAO,EAAE,YAAY;AAAA,EACnC;AAAA,EACA,QAAQ,cACL,OAAO;AAAA,IACN,QAAQ,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IACrC,QAAQ,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IACrC,OAAO,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IACpC,WAAW,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IACxC,UAAU,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACpD,CAAC,EACA,OAAO;AAAA,EACV,OAAO,cAAE,MAAM,oBAAoB;AAAA,EACnC,QAAQ,cAAE,MAAM,KAAK;AACvB,CAAC,EACA,OAAO;AACH,IAAM,qBAAqB,cAC/B,OAAO;AAAA,EACN,eAAe,cAAE,QAAQ,CAAC;AAAA,EAC1B,eAAe,cAAE,QAAQ,IAAI,EAAE,SAAS;AAAA,EACxC,iBAAiB,cACd;AAAA,IACC,cACG,OAAO;AAAA,MACN,IAAI,cAAE,OAAO;AAAA,MACb,QAAQ,cAAE,KAAK,CAAC,eAAe,MAAM,CAAC;AAAA,MACtC,iBAAiB,cAAE,OAAO,cAAE,OAAO,GAAG,cAAE,QAAQ,CAAC;AAAA,MACjD,cAAc,cAAE,OAAO,cAAE,OAAO,GAAG,cAAE,QAAQ,CAAC;AAAA,IAChD,CAAC,EACA,OAAO;AAAA,EACZ,EACC,SAAS;AAAA,EACZ,mBAAmB,cAAE,QAAQ,IAAI,EAAE,SAAS;AAAA,EAC5C,QAAQ,cAAE,MAAM,eAAe;AAAA,EAC/B,YAAY,cAAE;AAAA,IACZ,cACG,OAAO;AAAA,MACN,MAAMA;AAAA,MACN,UAAUA,IAAG,SAAS;AAAA,MACtB,eAAeA,IAAG,SAAS;AAAA,IAC7B,CAAC,EACA,OAAO;AAAA,EACZ;AAAA,EACA,YAAY,cAAE,MAAMA,GAAE;AAAA,EACtB,cAAc,cAAE,OAAO,cAAE,OAAO,GAAG,cAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,EACzD,OAAO,MAAM,SAAS;AACxB,CAAC,EACA,OAAO;AACH,IAAM,qBAAqB,cAAE,mBAAmB,QAAQ;AAAA,EAC7D,cACG,OAAO;AAAA,IACN,MAAM,cAAE,QAAQ,yBAAyB;AAAA,IACzC,QAAQA;AAAA,IACR,YAAY,cAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IACtC,WAAW,cAAE,KAAK;AAAA,IAClB,WAAW;AAAA,EACb,CAAC,EACA,OAAO;AAAA,EACV,cACG,OAAO;AAAA,IACN,MAAM,cAAE,QAAQ,aAAa;AAAA,IAC7B,SAAS,cAAE,MAAMA,GAAE,EAAE,IAAI,CAAC;AAAA,IAC1B,aAAa,cAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IACvC,aAAa,cAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACzC,CAAC,EACA,OAAO;AAAA,EACV,cACG,OAAO;AAAA,IACN,MAAM,cAAE,QAAQ,eAAe;AAAA,IAC/B,QAAQA;AAAA,IACR,YAAY,cAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IACtC,OAAO,MAAM,MAAM;AAAA,IACnB,WAAW,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACrD,CAAC,EACA,OAAO;AAAA,EACV,cACG,OAAO;AAAA,IACN,MAAM,cAAE,QAAQ,cAAc;AAAA,IAC9B,WAAW,cAAE,KAAK,EAAE,SAAS;AAAA,IAC7B,QAAQA;AAAA,IACR,YAAY,cAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IACtC,WAAW,cAAE,OAAO;AAAA,EACtB,CAAC,EACA,OAAO;AAAA,EACV,cACG,OAAO;AAAA,IACN,MAAM,cAAE,QAAQ,gBAAgB;AAAA,IAChC,QAAQA;AAAA,IACR,YAAY,cAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IACtC,MAAM;AAAA,EACR,CAAC,EACA,OAAO;AAAA,EACV,cACG,OAAO,EAAE,MAAM,cAAE,QAAQ,gBAAgB,GAAG,QAAQ,qBAAqB,CAAC,EAC1E,OAAO;AACZ,CAAC;AACM,IAAM,6BAA6B,cACvC,OAAO;AAAA,EACN,gBAAgB,oCAAqB,SAAS;AAAA,EAC9C,iBAAiB,cAAE,OAAO,EAAE,SAAS;AAAA,EACrC,SAASA;AAAA,EACT,eAAe,cAAE,OAAO,EAAE,MAAM,gBAAgB;AAAA,EAChD,SAAS,cAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,EAAE,SAAS;AAAA,EAC5C,OAAO,wBAAwB,SAAS;AAAA,EACxC,SAAS,cAAE,MAAMA,GAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EAC9C,aAAa,cAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;AAAA,EACtD,aAAa,cAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;AAAA,EACtD,SAAS,cACN,OAAO;AAAA,IACN,QAAQA;AAAA,IACR,YAAY,cAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,IAC1C,cAAc,cAAE,KAAK;AAAA,EACvB,CAAC,EACA,OAAO,EACP,SAAS;AACd,CAAC,EACA,OAAO;AACH,IAAM,+BAA+B,2BAA2B,KAAK;AAAA,EAC1E,SAAS;AAAA,EACT,OAAO;AAAA,EACP,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,SAAS;AACX,CAAC,EAAE,OAAO;AAAA,EACR,iBAAiB,cACd,mBAAmB,QAAQ;AAAA,IAC1B,cAAE,OAAO,EAAE,MAAM,cAAE,QAAQ,MAAM,EAAE,CAAC,EAAE,OAAO;AAAA,IAC7C,cACG,OAAO;AAAA,MACN,MAAM,cAAE,QAAQ,QAAQ;AAAA,MACxB,IAAI,cAAE,OAAO;AAAA,MACb,SAAS,cAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IACrC,CAAC,EACA,OAAO;AAAA,IACV,cAAE,OAAO,EAAE,MAAM,cAAE,QAAQ,OAAO,GAAG,SAAS,cAAE,KAAK,EAAE,CAAC,EAAE,OAAO;AAAA,EACnE,CAAC,EACA,SAAS;AAAA,EACZ,UAAU,cAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACnC,OAAO,cAAE,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,QAAQ,QAAQ;AACnD,CAAC;AACM,IAAM,sBAAsB,cAAE,mBAAmB,QAAQ;AAAA,EAC9D,cAAE,OAAO,EAAE,MAAM,cAAE,QAAQ,UAAU,GAAG,OAAO,mBAAmB,CAAC,EAAE,OAAO;AAAA,EAC5E,cAAE,OAAO,EAAE,MAAM,cAAE,QAAQ,QAAQ,GAAG,QAAQ,oBAAoB,CAAC,EAAE,OAAO;AAAA,EAC5E,cAAE,OAAO,EAAE,MAAM,cAAE,QAAQ,OAAO,GAAG,SAAS,cAAE,OAAO,EAAE,CAAC,EAAE,OAAO;AACrE,CAAC;AAKM,IAAM,yBAAN,cAAqC,MAAM;AAAA,EACvC,OAAO;AAClB;AAEO,SAAS,eAAe,OAA2B;AACxD,QAAM,SAAS,gBAAgB,UAAU,KAAK;AAC9C,MAAI,CAAC,OAAO;AACV,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,QAAM,MAAM,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,KAAK,EAAE;AACnD,MAAI,IAAI,IAAI,GAAG,EAAE,SAAS,IAAI;AAC5B,UAAM,IAAI,uBAAuB,yCAAyC;AAC5E,aAAW,QAAQ,OAAO,KAAK,OAAO;AACpC,QAAI,UAAU;AACd,eAAW,QAAQ,KAAK,OAAO;AAC7B,UAAI,YAAY,SAAS;AACvB,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AACF,gBAAU,KAAK,OAAO,SAAS;AAAA,IACjC;AAAA,EACF;AACA,SAAO,OAAO;AAChB;;;AEtbO,SAAS,YACd,OACsB;AACtB,SAAO;AACT;;;ACdA,IAAAC,cAAkB;;;ACAlB,IAAAC,kBAAqC;AACrC,IAAAC,cAAkB;AAQX,IAAM,kCAAkC,cAAE,OAAO;AAAA,EACtD,QAAQ,cAAE,QAAQ;AAAA,EAClB,aAAa,wBAAwB,SAAS,EAAE,SAAS;AAAA,EACzD,SAAS,cAAE;AAAA,IACT,cAAE,OAAO;AAAA,MACP,IAAI,cAAE,OAAO;AAAA,MACb,MAAM,cAAE,OAAO;AAAA,MACf,aAAa,cAAE,OAAO;AAAA,MACtB,OAAO,cAAE,OAAO,EAAE,SAAS;AAAA;AAAA,MAE3B,YAAY,cACT,OAAO;AAAA,QACN,MAAM,cAAE,KAAK;AAAA,UACX;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,QACD,YAAY,cAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,MAC1D,CAAC,EACA,SAAS,EACT,SAAS;AAAA,MACZ,UAAU,mBAAmB,SAAS;AAAA,MACtC,WAAW,cAAE,OAAO,cAAE,OAAO,GAAG,cAAE,OAAO,CAAC;AAAA,IAC5C,CAAC;AAAA,EACH;AACF,CAAC;AACM,IAAM,uBAAuB,cAAE,OAAO;AAAA,EAC3C,aAAa,cACV,OAAO;AAAA,IACN,SAAS,cAAE;AAAA,MACT,cAAE,OAAO;AAAA,QACP,QAAQ,cAAE,OAAO,EAAE,OAAO,EAAE,YAAY;AAAA,QACxC,UAAU,cAAE,OAAO,EAAE,SAAS;AAAA,MAChC,CAAC;AAAA,IACH;AAAA,IACA,UAAU,cAAE,QAAQ;AAAA,EACtB,CAAC,EACA,SAAS;AAAA,EACZ,QAAQ,cAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EACnD,UAAU,cAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,QAAQ,cAAE,KAAK,CAAC,YAAY,WAAW,aAAa,CAAC;AAAA,EACrD,OAAO,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACpC,eAAe,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAC5C,WAAW,cAAE,QAAQ;AACvB,CAAC;AACM,IAAM,kBAAkB,cAAE,OAAO;AAAA,EACtC,UAAU;AAAA,EACV,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AAGM,IAAM,6BAA6B,cAAE,OAAO;AAAA,EACjD,IAAI,cAAE,KAAK;AAAA,EACX,cAAc,cAAE,KAAK,EAAE,SAAS,EAAE,SAAS;AAAA,EAC3C,UAAU,cAAE,OAAO;AAAA,EACnB,YAAY,cAAE,OAAO;AAAA,EACrB,aAAa,cAAE,OAAO;AAAA,EACtB,SAAS,cAAE,OAAO;AAAA,EAClB,eAAe,cAAE,OAAO;AAAA,EACxB,QAAQ,cAAE,KAAK;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,WAAW,cAAE,OAAO;AAAA,EACpB,WAAW,cAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,SAAS,cAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,OAAO,cAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,mBAAmB,cAAE,OAAO,EAAE,SAAS;AAAA,EACvC,OAAO,gBAAgB,SAAS;AAAA,EAChC,QAAQ,cACL,OAAO;AAAA,IACN,QAAQ,cAAE,OAAO;AAAA,IACjB,QAAQ,cAAE,OAAO;AAAA,IACjB,OAAO,cAAE,OAAO;AAAA,IAChB,WAAW,cAAE,OAAO;AAAA,EACtB,CAAC,EACA,SAAS,EACT,SAAS;AAAA,EACZ,WAAW,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC1C,eAAe,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACvD,mBAAmB,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAC3D,OAAO,cAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AACM,IAAM,0BAA0B,cAAE,OAAO;AAAA,EAC9C,MAAM,cAAE,MAAM,0BAA0B;AAC1C,CAAC;AACM,IAAM,yBAAyB,cAAE,OAAO;AAAA,EAC7C,KAAK,2BAA2B,OAAO;AAAA,IACrC,WAAW,cAAE,OAAO,cAAE,OAAO,GAAG,eAAe,EAAE,SAAS;AAAA,IAC1D,SAAS,cACN,OAAO;AAAA,MACN,SAAS,cAAE,MAAM,cAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MACtC,SAAS,cAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,EAAE,SAAS;AAAA,MAC5C,OAAO,wBAAwB,SAAS;AAAA,MACxC,aAAa,cAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,MACvC,aAAa,cAAE,OAAO,EAAE,SAAS;AAAA,MACjC,gBAAgB,qCAAqB,SAAS;AAAA,MAC9C,iBAAiB,cAAE,OAAO,EAAE,SAAS;AAAA,IACvC,CAAC,EACA,SAAS;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ,oBAAoB,SAAS;AAAA,IACrC,QAAQ,cAAE,MAAM,cAAE,OAAO,EAAE,IAAI,cAAE,OAAO,GAAG,OAAO,mBAAmB,CAAC,CAAC;AAAA,EACzE,CAAC;AACH,CAAC;;;AD/GM,IAAM,2BAA2B,cACrC,OAAO;AAAA,EACN,QAAQ,cACL,KAAK,CAAC,UAAU,cAAc,YAAY,IAAI,CAAC,EAC/C,QAAQ,QAAQ;AAAA,EACnB,QAAQ,cAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACnD,eAAe,cACZ,IAAI,EACJ,OAAO,CAAC,UAAU;AACjB,QAAI;AACF,YAAM,MAAM,IAAI,IAAI,KAAK;AACzB,aACE,CAAC,UAAU,OAAO,EAAE,SAAS,IAAI,QAAQ,KACzC,CAAC,IAAI,YACL,CAAC,IAAI;AAAA,IAET,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF,GAAG,6CAA6C,EAC/C,SAAS;AACd,CAAC,EACA,OAAO;AACH,IAAM,qCAAqC,cAC/C,OAAO;AAAA,EACN,UAAU,cAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EACjC,MAAM,cAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACjD,iBAAiB,6BAA6B,MAAM;AAAA,EACpD,WAAW,cAAE,KAAK,CAAC,OAAO,UAAU,CAAC;AAAA,EACrC,QAAQ,cACL;AAAA,IACC,cACG,OAAO;AAAA,MACN,SAAS,cAAE,OAAO,EAAE,IAAI,CAAC;AAAA,MACzB,eAAe,cAAE,OAAO,EAAE,MAAM,gBAAgB;AAAA,MAChD,SAAS,cAAE,MAAM,cAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,IAC/D,CAAC,EACA,OAAO;AAAA,EACZ,EACC,IAAI,CAAC,EACL,IAAI,GAAG;AAAA,EACV,OAAO,cAAE,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,QAAQ,QAAQ;AAAA,EACjD,aAAa,cAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;AAAA,EACtD,aAAa,cAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;AAAA,EACtD,UAAU,yBAAyB,QAAQ,EAAE,QAAQ,SAAS,CAAC;AAAA,EAC/D,gBAAgB,cAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAC7D,CAAC,EACA,OAAO;AAIH,IAAM,gCAAgC,cAAE,OAAO;AAAA,EACpD,IAAI,cAAE,KAAK;AAAA,EACX,MAAM,cAAE,OAAO;AAAA,EACf,UAAU,cAAE,OAAO;AAAA,EACnB,YAAY,cAAE,OAAO;AAAA,EACrB,aAAa,cAAE,OAAO;AAAA,EACtB,WAAW,cAAE,KAAK,CAAC,OAAO,UAAU,CAAC;AAAA,EACrC,UAAU;AAAA,EACV,OAAO,wBAAwB,SAAS;AAAA,EACxC,QAAQ,2BAA2B,MAAM;AAAA,EACzC,WAAW,cAAE,OAAO;AAAA,EACpB,WAAW,cAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,SAAS,cAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,mBAAmB,cAAE,OAAO,EAAE,SAAS;AAAA,EACvC,YAAY,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACzC,iBAAiB,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAC9C,eAAe,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAC5C,mBAAmB,cAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAChD,QAAQ,cAAE,OAAO;AAAA,IACf,QAAQ,cAAE,OAAO;AAAA,IACjB,QAAQ,cAAE,OAAO;AAAA,IACjB,OAAO,cAAE,OAAO;AAAA,IAChB,WAAW,cAAE,OAAO;AAAA,EACtB,CAAC;AAAA,EACD,OAAO,gBAAgB,SAAS;AAAA,EAChC,QAAQ,cAAE,QAAQ,EAAE,SAAS;AAC/B,CAAC;AACM,IAAM,gCAAgC,cAAE,OAAO;AAAA,EACpD,MAAM,cAAE,MAAM,6BAA6B;AAC7C,CAAC;AACM,IAAM,+BAA+B,cAAE,OAAO;AAAA,EACnD,KAAK,8BAA8B,OAAO;AAAA,IACxC,QAAQ,cAAE,MAAM,0BAA0B;AAAA,EAC5C,CAAC;AACH,CAAC;AACM,IAAM,gCAAgC,cAAE,OAAO;AAAA,EACpD,KAAK,8BAA8B,OAAO;AAAA,IACxC,QAAQ,cAAE,MAAM,uBAAuB,MAAM,GAAG;AAAA,EAClD,CAAC;AACH,CAAC;;;AExFD,IAAM,SAAS,CACb,UAEA,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AACrE,IAAMC,WAAU,CAAC,UACf,UAAU,QAAQ,OAAO,UAAU,YAAY,WAAW;AAmB5D,SAAS,UACPC,SACA,OACA,QACS;AACT,MAAI,CAACA;AACH,UAAM,IAAI,uBAAuB,oCAAoC;AACvE,QAAM,WAAWA;AAAA,IACf,gBAAgB,KAAK;AAAA,IACrB,WAAW,SAAY,SAAY,gBAAgB,MAAM;AAAA,EAC3D;AACA,MAAI,OAAO,aAAa;AACtB,UAAM,IAAI,MAAM,uDAAuD;AACzE,SAAO;AACT;AAGO,SAAS,uBACd,aACA,SAA6B,CAAC,GAC9B,UAA+B,CAAC,GACf;AACjB,QAAM,UAAU,OAAO;AACvB,QAAM,gBAAgB,CAAC,WAA8B;AACnD,QAAI,YAAY,MAAO,QAAO;AAC9B,QAAIC,SAAQ,OAAO;AACjB,aAAO;AAAA,QACL,QAAQ,UAAU,QAAQ,KAAK;AAAA,QAC/B;AAAA,QACA,QAAQ;AAAA,MACV;AACF,QAAI,CAAC,QAAS,QAAO;AACrB,WACE,OAAO,MAAM,KACb,QAAQ;AAAA,MAAK,CAAC,aACZ,OAAO,QAAQ,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,OAAO,GAAG,MAAM,KAAK;AAAA,IACxE;AAAA,EAEJ;AACA,QAAM,kBAAkB,YAAY,WAAW,IAAI,CAAC,YAAY;AAAA,IAC9D;AAAA,IACA,UAAU,cAAc,MAAM;AAAA,EAChC,EAAE;AACF,QAAM,aAAa,gBAChB,OAAO,CAAC,SAAS,KAAK,QAAQ,EAC9B,IAAI,CAAC,SAAS,KAAK,MAAM;AAC5B,QAAM,SAAS,YAAY,QACvB,OAAO,CAAC,UAAsC;AAC9C,QACE,CAAC,OAAO,KAAK,KACb,CAAC,0BAA0B,KAAK,CAAC,SAAS,SAAS,MAAM,IAAI;AAE7D,aAAO;AACT,QAAI,MAAM,SAAS,mBAAmB;AACpC,UAAI,MAAM,SAAS,QAAS,QAAO;AAGnC,YAAM,UAAU,gBAAgB;AAAA,QAC9B,CAAC,EAAE,QAAQ,KAAK,MACd,OAAO,IAAI,KACX,OAAO,MAAM,aAAa,YAC1B,KAAK,aAAa,MAAM,YACxB,KAAK,WAAW,UAChB,KAAK,aAAa,MAAM,YACxB,KAAK,aAAa,MAAM,YACxB,KAAK,kBAAkB,MAAM,iBAC7B,KAAK,UAAU,KAAK,IAAI,MAAM,KAAK,UAAU,MAAM,IAAI;AAAA,MAC3D;AACA,UAAI,SAAS;AACX,YAAI,CAAC,QAAQ,SAAU,QAAO;AAE9B,YACE,CAAC,YAAY,QAAQ;AAAA,UACnB,CAAC,UACC,OAAO,KAAK,KACZ,MAAM,SAAS,iCACf,MAAM,aAAa,MAAM;AAAA,QAC7B;AAEA,iBAAO;AAAA,MACX,OAAO;AACL,cAAM,EAAE,MAAM,OAAO,MAAM,OAAO,GAAG,OAAO,IAAI;AAChD,YAAI,CAAC,cAAc,EAAE,GAAG,QAAQ,QAAQ,OAAO,CAAC,EAAG,QAAO;AAAA,MAC5D;AAAA,IACF;AACA,WAAO;AAAA,EACT,CAAC,EACA,OAAO,CAAC,UAAU;AACjB,UAAM,YAAY,OAAO;AACzB,QAAI,cAAc,MAAO,QAAO;AAChC,QAAIA,SAAQ,SAAS;AACnB,aAAO;AAAA,QACL,QAAQ,SAAS,UAAU,KAAK;AAAA,QAChC;AAAA,QACA,UAAU;AAAA,MACZ;AACF,WAAO,CAAC,aAAa,UAAU,SAAS,MAAM,IAAI;AAAA,EACpD,CAAC;AACH,SAAO,gBAAgB;AAAA,IACrB,GAAG;AAAA,IACH;AAAA,IACA,GAAI,SAAS,EAAE,OAAO,IAAI,CAAC;AAAA,EAC7B,CAAC;AACH;AAEO,SAAS,wBACd,aACA,SAA6B,CAAC,GAC9B,UAA+B,CAAC,GACb;AACnB,SAAO;AAAA,IACL,SAAS;AAAA,IACT,SAAS,OAAO,WAAW;AAAA,IAC3B,aAAa,uBAAuB,aAAa,QAAQ,OAAO;AAAA,EAClE;AACF;AAGO,SAAS,qBACd,MACA,UAIA;AACA,QAAM,WAAW,KAAK,YAAY,wBAAwB,KAAK,WAAW;AAC1E,SAAO;AAAA,IACL,aAAa,gBAAgB,SAAS,WAAW;AAAA,IACjD,cAAc,SAAS,UACnB,SAAS,IAAI,CAAC,UAAU;AACtB,YAAM,EAAE,UAAU,UAAU,GAAG,OAAO,IAAI;AAC1C,aAAO,gBAAgB;AAAA,QACrB,GAAG;AAAA,QACH,aACE,UAAU,eACV,uBAAuB,MAAM,WAAW;AAAA,MAC5C,CAAC;AAAA,IACH,CAAC,IACD,CAAC;AAAA,EACP;AACF;;;ACxKA,eAAe,SACb,UACA,QACkB;AAClB,MAAI,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM;AAClC,UAAM,SAAS,MAAM,OAAO,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC;AAC5C,UAAM,IAAI,MAAM,sDAAsD;AAAA,EACxE;AACA,QAAM,SAAS,SAAS,KAAK,UAAU;AACvC,QAAM,QAAQ,MAAM;AAClB,SAAK,OAAO,OAAO,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC;AAAA,EACrC;AACA,SAAO,iBAAiB,SAAS,OAAO,EAAE,MAAM,KAAK,CAAC;AACtD,QAAM,UAAU,IAAI,YAAY;AAChC,MAAI,OAAO;AACX,MAAI,QAAQ;AACZ,MAAI;AACF,eAAS;AACP,aAAO,eAAe;AACtB,YAAM,OAAO,MAAM,OAAO,KAAK;AAC/B,UAAI,KAAK,KAAM;AACf,eAAS,KAAK,MAAM;AACpB,UAAI,QAAQ;AACV,cAAM,IAAI,MAAM,qCAAqC;AACvD,cAAQ,QAAQ,OAAO,KAAK,OAAO,EAAE,QAAQ,KAAK,CAAC;AAAA,IACrD;AACA,WAAO,eAAe;AACtB,WAAO,KAAK,MAAM,OAAO,QAAQ,OAAO,CAAC;AAAA,EAC3C,UAAE;AACA,WAAO,oBAAoB,SAAS,KAAK;AACzC,UAAM,OAAO,OAAO,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC;AACpC,WAAO,YAAY;AAAA,EACrB;AACF;AAGA,eAAsB,sBACpB,SACoB;AACpB,QAAM,OAAO,IAAI,IAAI,QAAQ,GAAG;AAChC,MACE,KAAK,YACL,KAAK,YACL,KAAK,UACL,KAAK,QACJ,KAAK,aAAa,OAAO,KAAK,aAAa,MAC3C,KAAK,aAAa,YACjB,EAAE,QAAQ,qBAAqB,KAAK,aAAa,YACnD,CAAC,QAAQ,OAAO,KAAK,KACrB,CAAC,QAAQ,YAAY,KAAK;AAE1B,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,QAAM,WAAW,IAAI,IAAI,0BAA0B,IAAI;AACvD,QAAM,YAAY,IAAI,IAAI,QAAQ;AAClC,YAAU,aAAa,IAAI,eAAe,QAAQ,WAAW;AAC7D,QAAM,SAAS,QAAQ,SACnB,YAAY,IAAI,CAAC,QAAQ,QAAQ,YAAY,QAAQ,IAAM,CAAC,CAAC,IAC7D,YAAY,QAAQ,IAAM;AAC9B,QAAM,WAAW,wBAAwB;AAAA,IACvC,MAAM;AAAA,MACJ,MAAM,MAAM,WAAW;AAAA,QACrB,SAAS,EAAE,eAAe,UAAU,QAAQ,MAAM,GAAG;AAAA,QACrD,UAAU;AAAA,QACV;AAAA,MACF,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AACA,MAAI,SAAS,aAAa;AACxB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,SAAO;AAAA,IACL,GAAG;AAAA,IACH,UAAU;AAAA,IACV,MAAM,MAAM,OAAO;AACjB,YAAM,UAAU,6BAA6B,MAAM;AAAA,QACjD,aAAa,QAAQ;AAAA,QACrB,OAAO;AAAA,QACP,WAAW,MAAM;AAAA,QACjB,OAAO,MAAM;AAAA,QACb,aAAa,uBAAuB,MAAM,WAAW;AAAA,QACrD,WAAW,MAAM;AAAA,QACjB,cAAc,MAAM,aAAa;AAAA,UAC/B,CAAC,EAAE,UAAU,WAAW,GAAG,KAAK,OAAO;AAAA,YACrC,GAAG;AAAA,YACH,aAAa,uBAAuB,KAAK,WAAW;AAAA,UACtD;AAAA,QACF;AAAA,MACF,CAAC;AACD,YAAMC,UAAS,YAAY,IAAI;AAAA,QAC7B,MAAM;AAAA,QACN,YAAY,QAAQ,GAAM;AAAA,MAC5B,CAAC;AACD,MAAAA,QAAO,eAAe;AACtB,YAAM,WAAW,8BAA8B;AAAA,QAC7C,MAAM;AAAA,UACJ,MAAM,MAAM,UAAU;AAAA,YACpB,QAAQ;AAAA,YACR,SAAS;AAAA,cACP,eAAe,UAAU,QAAQ,MAAM;AAAA,cACvC,gBAAgB;AAAA,YAClB;AAAA,YACA,MAAM,KAAK,UAAU,OAAO;AAAA,YAC5B,UAAU;AAAA,YACV,QAAAA;AAAA,UACF,CAAC;AAAA,UACDA;AAAA,QACF;AAAA,MACF;AACA,UACE,SAAS,MAAM,OAAO,SAAS,MAC/B,SAAS,MAAM,YAAY,SAAS,WACpC,SAAS,MAAM,aAAa;AAE5B,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AACF,iBAAW,SAAS,SAAS,SAAS,CAAC,EAAG,OAAM,UAAU,KAAK;AAC/D,aAAO,SAAS;AAAA,IAClB;AAAA,EACF;AACF;","names":["import_zod","id","import_zod","import_browser","import_zod","handler","filter","handler","signal"]}
|
|
1
|
+
{"version":3,"sources":["../src/evals.ts","../src/evals/contracts.ts","../src/evals/evidence-policy.ts","../src/evals/define-suite.ts","../src/evals/errors.ts","../src/evals/evaluation-contracts.ts","../src/evals/studio-contracts.ts","../src/evals/evidence.ts","../src/evals/studio-judge.ts"],"sourcesContent":["export * from \"./evals/contracts\";\nexport { defineSuite } from \"./evals/define-suite\";\nexport { createEvalIssue } from \"./evals/errors\";\nexport * from \"./evals/evaluation-contracts\";\nexport { getEvalGradeEvidence } from \"./evals/evidence\";\nexport { EvalEvidencePolicySchema } from \"./evals/evidence-policy\";\nexport * from \"./evals/studio-contracts\";\nexport { createStudioEvalJudge } from \"./evals/studio-judge\";\nexport type * from \"./evals/types\";\n","import { isFailureDescriptor, serializeFailure } from \"@kortyx/core/errors\";\nimport { PromptSnapshotSchema } from \"@kortyx/prompts/browser\";\nimport { z } from \"zod\";\nimport { EvalEvidencePolicySchema } from \"./evidence-policy\";\nimport type { EvalSuite } from \"./types\";\n\nconst id = z.string().trim().min(1).max(256);\nconst failureDescriptor = z\n .custom<import(\"@kortyx/core/errors\").FailureDescriptor>(isFailureDescriptor)\n .transform(\n (value): import(\"@kortyx/core/errors\").SerializedFailureDescriptor =>\n JSON.parse(JSON.stringify(serializeFailure(value))),\n );\nconst handler = z.object({ using: id, params: z.json().optional() }).strict();\nexport const EvalResumeResponseSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"text\"), text: z.string() }).strict(),\n z.object({ type: z.literal(\"select\"), ids: z.array(z.string()) }).strict(),\n z.object({ type: z.literal(\"value\"), value: z.json() }).strict(),\n z.object({ type: z.literal(\"cancel\") }).strict(),\n]);\nconst expectation = z\n .object({\n type: z.enum([\"answer\", \"interrupt\"]),\n schemaId: id.optional(),\n schemaVersion: id.optional(),\n outputs: z\n .array(z.object({ schemaId: id, schemaVersion: id.optional() }).strict())\n .optional(),\n criteria: z\n .array(\n z.union([\n z.string().trim().min(1),\n z.object({ id, text: z.string().trim().min(1) }).strict(),\n ]),\n )\n .optional(),\n reference: z.json().optional(),\n })\n .strict()\n .superRefine((value, ctx) => {\n if (value.type === \"answer\" && (value.schemaId || value.schemaVersion))\n ctx.addIssue({\n code: \"custom\",\n message: \"Interrupt schemas require an interrupt expectation.\",\n });\n const ids =\n value.criteria?.map((item, index) =>\n typeof item === \"string\" ? String(index) : item.id,\n ) ?? [];\n if (new Set(ids).size !== ids.length)\n ctx.addIssue({\n code: \"custom\",\n message: \"Criterion IDs must be unique within a step.\",\n });\n });\nexport const EvalSuiteSchema = z\n .object({\n evidence: EvalEvidencePolicySchema.optional(),\n id,\n name: z.string().optional(),\n cases: z\n .array(\n z\n .object({\n id,\n name: z.string().optional(),\n params: z.json().optional(),\n workflowId: id.optional(),\n steps: z\n .array(\n z.union([\n z\n .object({ message: z.string().min(1), expect: expectation })\n .strict(),\n z\n .object({\n resume: z.union([EvalResumeResponseSchema, handler]),\n expect: expectation,\n })\n .strict(),\n ]),\n )\n .min(1),\n })\n .strict(),\n )\n .min(1),\n })\n .strict();\nexport const EvalVerdictSchema = z\n .object({\n passed: z.boolean(),\n reason: z.string().trim().min(1),\n evidence: z.array(z.string().min(1)),\n })\n .strict();\nexport const EvalObservationSchema = z\n .object({\n failure: failureDescriptor.optional(),\n diagnosticId: z.uuid().optional(),\n promptUsage: z\n .array(\n z\n .object({\n id: z.string(),\n version: z.number().int().positive(),\n hash: z.string().regex(/^[a-f0-9]{64}$/),\n environment: z.string(),\n snapshotRevision: z.string(),\n model: z.string().optional(),\n })\n .strict(),\n )\n .optional(),\n type: z.enum([\"answer\", \"interrupt\", \"error\", \"cancelled\"]),\n text: z.string(),\n structured: z.array(z.json()),\n events: z.array(z.json()).optional(),\n runId: z.string().optional(),\n checkpointId: z.string().optional(),\n interrupt: z\n .object({\n requestId: z.string(),\n kind: z.enum([\"text\", \"choice\", \"multi-choice\", \"custom\"]),\n question: z.string().optional(),\n schemaId: z.string().optional(),\n schemaVersion: z.string().optional(),\n options: z.array(\n z\n .object({\n id: z.string(),\n label: z.string(),\n description: z.string().optional(),\n })\n .strict(),\n ),\n request: z.json().optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n .superRefine((value, ctx) => {\n if ((value.type === \"interrupt\") !== Boolean(value.interrupt))\n ctx.addIssue({\n code: \"custom\",\n message: \"Interrupt observations require exactly one interrupt.\",\n });\n });\n\nconst status = z.enum([\"passed\", \"failed\", \"error\", \"cancelled\", \"ungraded\"]);\nexport const EvalIssueSchema = z\n .object({\n failure: failureDescriptor.optional(),\n diagnosticId: z.uuid().optional(),\n phase: z.enum([\n \"params\",\n \"setup\",\n \"execute\",\n \"responder\",\n \"reference\",\n \"grading\",\n \"verification\",\n \"cleanup\",\n \"reporting\",\n ]),\n code: z.string(),\n message: z.string(),\n })\n .strict();\nconst issue = EvalIssueSchema;\n/** Billing evidence only: no prompts, provider raw responses, or credentials. */\nexport const EvalJudgeUsageSchema = z\n .object({\n provider: z.string().min(1),\n model: z.string().min(1),\n occurredAt: z.iso.datetime(),\n usage: z\n .object({\n input: z.number().finite().nonnegative().optional(),\n output: z.number().finite().nonnegative().optional(),\n total: z.number().finite().nonnegative().optional(),\n reasoning: z.number().finite().nonnegative().optional(),\n cacheRead: z.number().finite().nonnegative().optional(),\n cacheWrite: z.number().finite().nonnegative().optional(),\n cacheWrite1h: z.number().finite().nonnegative().optional(),\n outputIncludesReasoning: z.boolean().optional(),\n inputIncludesCacheRead: z.boolean().optional(),\n inputIncludesCacheWrite: z.boolean().optional(),\n })\n .strict()\n .optional(),\n pricingContext: z\n .object({\n serviceTier: z.string().min(1).max(100).optional(),\n inferenceGeo: z.string().min(1).max(100).optional(),\n speed: z.string().min(1).max(100).optional(),\n })\n .strict()\n .optional(),\n pricing: z\n .object({\n source: z.literal(\"provider\"),\n currency: z.literal(\"USD\"),\n actualCostMicros: z.number().int().nonnegative().safe(),\n })\n .strict()\n .optional(),\n })\n .strict();\nexport const EvalStepResultSchema = z\n .object({\n evidence: z\n .object({\n version: z.literal(\"compact-v1\"),\n history: z.boolean(),\n observation: EvalObservationSchema,\n })\n .strict()\n .optional(),\n index: z.number().int().nonnegative(),\n input: z.union([\n z.object({ message: z.string() }).strict(),\n z.object({ resume: EvalResumeResponseSchema }).strict(),\n ]),\n expectation,\n observation: EvalObservationSchema,\n reference: z.json().optional(),\n status,\n reason: z.string().optional(),\n judgeCalls: z.number().int().nonnegative().optional(),\n judgeUsage: z.array(EvalJudgeUsageSchema).optional(),\n criteria: z.array(\n EvalVerdictSchema.extend({ id: z.string(), text: z.string() }),\n ),\n })\n .strict();\nconst runtimeExecution = z\n .object({ sessionId: z.string().min(1), runId: z.string().min(1) })\n .strict();\nexport const EvalCaseResultSchema = z\n .object({\n verification: EvalVerdictSchema.optional(),\n phaseDurationsMs: z\n .partialRecord(issue.shape.phase, z.number().finite().nonnegative())\n .optional(),\n caseId: id,\n repetition: z.number().int().positive(),\n attemptId: z.uuid().optional(),\n runtimeExecutions: z.array(runtimeExecution).optional(),\n sessionId: z.string(),\n status,\n durationMs: z.number().nonnegative(),\n steps: z.array(EvalStepResultSchema),\n errors: z.array(issue),\n })\n .strict();\nexport const EvalJudgeIdentitySchema = z\n .object({\n id,\n version: id,\n location: z.enum([\"app\", \"studio\"]).optional(),\n })\n .strict();\nconst judge = EvalJudgeIdentitySchema;\nexport const StudioEvalJudgeRequestSchema = z\n .object({\n environment: id,\n judge: EvalJudgeIdentitySchema,\n criterion: z\n .object({ id, text: z.string().trim().min(1).max(16_384) })\n .strict(),\n input: EvalStepResultSchema.shape.input,\n observation: EvalObservationSchema,\n reference: z.json().optional(),\n conversation: z.array(EvalStepResultSchema).max(100),\n })\n .strict();\nexport const StudioEvalJudgeResponseSchema = z\n .object({\n judge: EvalJudgeIdentitySchema,\n verdict: EvalVerdictSchema,\n usage: z.array(EvalJudgeUsageSchema).optional(),\n })\n .strict();\nexport const EvalRunResultSchema = z\n .object({\n id: z.uuid(),\n suiteId: id,\n suiteRevision: z.string().regex(/^[a-f0-9]{64}$/),\n suite: EvalSuiteSchema,\n judge: judge.optional(),\n startedAt: z.iso.datetime(),\n durationMs: z.number().nonnegative(),\n status,\n counts: z\n .object({\n passed: z.number().int().nonnegative(),\n failed: z.number().int().nonnegative(),\n error: z.number().int().nonnegative(),\n cancelled: z.number().int().nonnegative(),\n ungraded: z.number().int().nonnegative().optional(),\n })\n .strict(),\n cases: z.array(EvalCaseResultSchema),\n errors: z.array(issue),\n })\n .strict();\nexport const EvalManifestSchema = z\n .object({\n schemaVersion: z.literal(1),\n studioJudging: z.literal(true).optional(),\n promptContracts: z\n .array(\n z\n .object({\n id: z.string(),\n format: z.enum([\"system-user\", \"chat\"]),\n variablesSchema: z.record(z.string(), z.unknown()),\n configSchema: z.record(z.string(), z.unknown()),\n })\n .strict(),\n )\n .optional(),\n attemptScheduling: z.literal(true).optional(),\n suites: z.array(EvalSuiteSchema),\n responders: z.array(\n z\n .object({\n name: id,\n schemaId: id.optional(),\n schemaVersion: id.optional(),\n })\n .strict(),\n ),\n references: z.array(id),\n paramsSchema: z.record(z.string(), z.unknown()).optional(),\n judge: judge.optional(),\n })\n .strict();\nexport const EvalProgressSchema = z.discriminatedUnion(\"type\", [\n z\n .object({\n type: z.literal(\"case-dispatch\"),\n caseId: id,\n repetition: z.number().int().positive(),\n status: z.enum([\"queued\", \"retrying\", \"reconnecting\"]),\n retryAt: z.iso.datetime().optional(),\n httpStatus: z.number().int().min(100).max(599).optional(),\n executionId: z.uuid().optional(),\n generation: z.uuid().optional(),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"case-runtime-associated\"),\n caseId: id,\n repetition: z.number().int().positive(),\n attemptId: z.uuid(),\n execution: runtimeExecution,\n })\n .strict(),\n z\n .object({\n type: z.literal(\"run-started\"),\n caseIds: z.array(id).min(1),\n repetitions: z.number().int().positive(),\n concurrency: z.number().int().positive(),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"case-progress\"),\n caseId: id,\n repetition: z.number().int().positive(),\n phase: issue.shape.phase,\n stepIndex: z.number().int().nonnegative().optional(),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"case-started\"),\n attemptId: z.uuid().optional(),\n caseId: id,\n repetition: z.number().int().positive(),\n sessionId: z.string(),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"step-completed\"),\n caseId: id,\n repetition: z.number().int().positive(),\n step: EvalStepResultSchema,\n })\n .strict(),\n z\n .object({ type: z.literal(\"case-completed\"), result: EvalCaseResultSchema })\n .strict(),\n]);\nexport const EvalRemoteRunRequestSchema = z\n .object({\n promptSnapshot: PromptSnapshotSchema.optional(),\n promptGroupName: z.string().optional(),\n suiteId: id,\n suiteRevision: z.string().regex(/^[a-f0-9]{64}$/),\n grading: z.enum([\"app\", \"studio\"]).optional(),\n judge: EvalJudgeIdentitySchema.optional(),\n caseIds: z.array(id).min(1).max(100).optional(),\n repetitions: z.number().int().min(1).max(20).default(1),\n concurrency: z.number().int().min(1).max(20).default(1),\n attempt: z\n .object({\n caseId: id,\n repetition: z.number().int().min(1).max(20),\n evaluationId: z.uuid(),\n })\n .strict()\n .optional(),\n })\n .strict();\nexport const StudioEvalStartRequestSchema = EvalRemoteRunRequestSchema.omit({\n grading: true,\n judge: true,\n promptSnapshot: true,\n promptGroupName: true,\n attempt: true,\n}).extend({\n promptSelection: z\n .discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"live\") }).strict(),\n z\n .object({\n type: z.literal(\"single\"),\n id: z.string(),\n version: z.number().int().positive(),\n })\n .strict(),\n z.object({ type: z.literal(\"group\"), groupId: z.uuid() }).strict(),\n ])\n .optional(),\n targetId: z.string().min(1).max(128),\n judge: z.enum([\"studio\", \"app\"]).default(\"studio\"),\n});\nexport const EvalWireEventSchema = z.discriminatedUnion(\"type\", [\n z\n .object({\n type: z.literal(\"execution-status\"),\n state: z.enum([\"queued\", \"running\", \"completed\", \"cancelled\", \"unknown\"]),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"progress\"),\n event: EvalProgressSchema,\n sequence: z.number().int().positive().optional(),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"result\"),\n result: EvalRunResultSchema,\n sequence: z.number().int().positive().optional(),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"error\"),\n message: z.string(),\n failure: failureDescriptor.optional(),\n diagnosticId: z.uuid().optional(),\n sequence: z.number().int().positive().optional(),\n })\n .strict(),\n]);\nexport type EvalManifest = z.infer<typeof EvalManifestSchema>;\nexport type EvalRemoteRunRequest = z.infer<typeof EvalRemoteRunRequestSchema>;\nexport type EvalWireEvent = z.infer<typeof EvalWireEventSchema>;\n\nexport class EvalConfigurationError extends Error {\n override name = \"EvalConfigurationError\";\n}\n\nexport function parseEvalSuite(value: unknown): EvalSuite {\n const result = EvalSuiteSchema.safeParse(value);\n if (!result.success)\n throw new EvalConfigurationError(\n \"Invalid suite. Expected serializable cases, conversation steps, and expectations.\",\n );\n const ids = result.data.cases.map((item) => item.id);\n if (new Set(ids).size !== ids.length)\n throw new EvalConfigurationError(\"Case IDs must be unique within a suite.\");\n for (const item of result.data.cases) {\n let waiting = false;\n for (const step of item.steps) {\n if (\"resume\" in step !== waiting)\n throw new EvalConfigurationError(\n \"A resume step must follow an expected interrupt; a message must follow an answer.\",\n );\n waiting = step.expect.type === \"interrupt\";\n }\n }\n return result.data as EvalSuite;\n}\n","import { z } from \"zod\";\n\n/** Public events retained after streaming noise has been removed. */\nexport const EVAL_EVIDENCE_EVENT_TYPES = [\n \"tool-call-start\",\n \"tool-call-result\",\n \"tool-call-error\",\n \"tool-result\",\n \"structured-data\",\n \"structured-data-invalidated\",\n \"interrupt\",\n \"error\",\n \"cancelled\",\n \"limit-reached\",\n] as const;\n\nconst id = z.string().trim().min(1).max(256);\nconst filter = z.object({ using: id, params: z.json().optional() }).strict();\nexport const EvalEvidencePolicySchema = z\n .object({\n history: z.boolean().optional(),\n events: z\n .union([\n z.literal(false),\n z.array(z.enum(EVAL_EVIDENCE_EVENT_TYPES)),\n filter,\n ])\n .optional(),\n outputs: z\n .union([\n z.literal(false),\n z.array(\n z\n .object({\n dataType: id.optional(),\n schemaId: id.optional(),\n schemaVersion: id.optional(),\n })\n .strict()\n .refine((value) => Boolean(value.dataType || value.schemaId), {\n message: \"Select an output by dataType or schemaId.\",\n }),\n ),\n filter,\n ])\n .optional(),\n })\n .strict();\n","import type { EvalCase, EvalJson, EvalSuite } from \"./types\";\n\ntype DefinedSuite<Params> = Omit<EvalSuite<Params>, \"cases\"> & {\n cases: readonly (Omit<EvalCase<Params>, \"params\"> &\n (undefined extends Params\n ? { params?: Exclude<Params, undefined> }\n : { params: Params }))[];\n};\n\n/** Author a suite with typed case parameters. Runtime validation belongs to createEvals. */\nexport function defineSuite<Params = EvalJson | undefined>(\n suite: DefinedSuite<Params>,\n): DefinedSuite<Params> {\n return suite;\n}\n","import {\n errorProperty,\n isControlFlowError,\n isFailureDescriptor,\n serializeFailure,\n} from \"@kortyx/core/errors\";\nimport { z } from \"zod\";\nimport type { Agent } from \"../chat/create-agent\";\nimport type { EvalIssue, EvalPhase } from \"./types\";\n\nconst messages: Record<EvalPhase, string> = {\n params: \"Case parameters failed validation.\",\n setup: \"Case setup failed.\",\n execute: \"Agent execution failed or returned an invalid observation.\",\n responder:\n \"Interrupt response failed or was incompatible with the waiting contract.\",\n reference: \"Reference resolution failed or returned non-JSON data.\",\n grading: \"Grading failed or returned an invalid verdict.\",\n verification: \"Case verification failed or returned an invalid verdict.\",\n cleanup: \"Case cleanup failed.\",\n reporting: \"Progress reporting failed.\",\n};\n\n/** Public eval evidence contains bounded safe descriptors and opaque references only. */\nexport function createEvalIssue(\n phase: EvalPhase,\n error: unknown,\n options: {\n code?: string;\n diagnosticId?: string;\n reportError?: Agent[\"reportError\"];\n correlation?: Parameters<NonNullable<Agent[\"reportError\"]>>[1];\n } = {},\n): EvalIssue {\n const control = isControlFlowError(error);\n const declared =\n !control &&\n (isFailureDescriptor(error) ||\n isFailureDescriptor(errorProperty(error, \"failure\")));\n const failure = serializeFailure(control ? undefined : error);\n let diagnosticId: unknown =\n options.diagnosticId ?? errorProperty(error, \"diagnosticId\");\n if (!control && !diagnosticId && options.reportError) {\n try {\n diagnosticId = options.reportError(error, options.correlation);\n } catch {\n // Optional observability must preserve the eval outcome.\n }\n }\n return {\n phase,\n code: declared ? failure.code : (options.code ?? \"EVAL_HOOK_FAILED\"),\n message: declared ? failure.message : messages[phase],\n failure,\n ...(typeof diagnosticId === \"string\" &&\n z.uuid().safeParse(diagnosticId).success\n ? { diagnosticId }\n : {}),\n };\n}\n","import { z } from \"zod\";\nimport {\n EvalJudgeIdentitySchema,\n StudioEvalStartRequestSchema,\n} from \"./contracts\";\nimport {\n EvalCostsSchema,\n StudioEvalDetailSchema,\n StudioEvalRunSummarySchema,\n} from \"./studio-contracts\";\n\nexport const EvaluationMetadataSchema = z\n .object({\n source: z\n .enum([\"manual\", \"deployment\", \"schedule\", \"ci\"])\n .default(\"manual\"),\n commit: z.string().trim().min(1).max(100).optional(),\n deploymentUrl: z\n .url()\n .refine((value) => {\n try {\n const url = new URL(value);\n return (\n [\"https:\", \"http:\"].includes(url.protocol) &&\n !url.username &&\n !url.password\n );\n } catch {\n return false;\n }\n }, \"Expected an HTTP(S) URL without credentials\")\n .optional(),\n })\n .strict();\nexport const StudioEvaluationStartRequestSchema = z\n .object({\n targetId: z.string().trim().min(1),\n name: z.string().trim().min(1).max(200).optional(),\n promptSelection: StudioEvalStartRequestSchema.shape.promptSelection,\n selection: z.enum([\"all\", \"selected\"]),\n suites: z\n .array(\n z\n .object({\n suiteId: z.string().min(1),\n suiteRevision: z.string().regex(/^[a-f0-9]{64}$/),\n caseIds: z.array(z.string().min(1)).min(1).max(100).optional(),\n })\n .strict(),\n )\n .min(1)\n .max(100),\n judge: z.enum([\"studio\", \"app\"]).default(\"studio\"),\n repetitions: z.number().int().min(1).max(20).default(1),\n concurrency: z.number().int().min(1).max(20).default(1),\n metadata: EvaluationMetadataSchema.default({ source: \"manual\" }),\n idempotencyKey: z.string().trim().min(1).max(200).optional(),\n })\n .strict();\nexport type StudioEvaluationStartRequest = z.input<\n typeof StudioEvaluationStartRequestSchema\n>;\nexport const StudioEvaluationSummarySchema = z.object({\n id: z.uuid(),\n name: z.string(),\n targetId: z.string(),\n targetName: z.string(),\n environment: z.string(),\n selection: z.enum([\"all\", \"selected\"]),\n metadata: EvaluationMetadataSchema,\n judge: EvalJudgeIdentitySchema.optional(),\n status: StudioEvalRunSummarySchema.shape.status,\n createdAt: z.string(),\n startedAt: z.string().nullable(),\n endedAt: z.string().nullable(),\n cancelRequestedAt: z.string().nullable(),\n suiteCount: z.number().int().nonnegative(),\n completedSuites: z.number().int().nonnegative(),\n totalAttempts: z.number().int().nonnegative(),\n completedAttempts: z.number().int().nonnegative(),\n counts: z.object({\n passed: z.number(),\n failed: z.number(),\n error: z.number(),\n cancelled: z.number(),\n }),\n costs: EvalCostsSchema.optional(),\n legacy: z.boolean().optional(),\n});\nexport const StudioEvaluationHistorySchema = z.object({\n runs: z.array(StudioEvaluationSummarySchema),\n});\nexport const StudioEvaluationDetailSchema = z.object({\n run: StudioEvaluationSummarySchema.extend({\n suites: z.array(StudioEvalRunSummarySchema),\n }),\n});\nexport const StudioEvaluationResultsSchema = z.object({\n run: StudioEvaluationSummarySchema.extend({\n suites: z.array(StudioEvalDetailSchema.shape.run),\n }),\n});\nexport type StudioEvaluationSummary = z.infer<\n typeof StudioEvaluationSummarySchema\n>;\nexport type StudioEvaluationDetail = z.infer<\n typeof StudioEvaluationDetailSchema\n>[\"run\"];\n","import { PromptSnapshotSchema } from \"@kortyx/prompts/browser\";\nimport { z } from \"zod\";\nimport {\n EvalJudgeIdentitySchema,\n EvalManifestSchema,\n EvalProgressSchema,\n EvalRunResultSchema,\n EvalSuiteSchema,\n} from \"./contracts\";\nexport const StudioEvalTargetsResponseSchema = z.object({\n canRun: z.boolean(),\n studioJudge: EvalJudgeIdentitySchema.nullable().optional(),\n targets: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n environment: z.string(),\n error: z.string().nullable(),\n // Safe discovery diagnostics; optional for compatibility with older APIs.\n diagnostic: z\n .object({\n code: z.enum([\n \"environment_forbidden\",\n \"environment_unavailable\",\n \"endpoint_not_found\",\n \"endpoint_unauthorized\",\n \"endpoint_http_error\",\n \"endpoint_unreachable\",\n \"manifest_invalid\",\n ]),\n httpStatus: z.number().int().min(100).max(599).optional(),\n })\n .nullable()\n .optional(),\n manifest: EvalManifestSchema.nullable(),\n revisions: z.record(z.string(), z.string()),\n }),\n ),\n});\nexport const EvalCostAmountSchema = z.object({\n costSummary: z\n .object({\n amounts: z.array(\n z.object({\n amount: z.number().finite().nonnegative(),\n currency: z.string().nullable(),\n }),\n ),\n complete: z.boolean(),\n })\n .optional(),\n amount: z.number().finite().nonnegative().nullable(),\n currency: z.string().nullable(),\n status: z.enum([\"complete\", \"partial\", \"unavailable\"]),\n calls: z.number().int().nonnegative(),\n unpricedCalls: z.number().int().nonnegative(),\n estimated: z.boolean(),\n});\nexport const EvalCostsSchema = z.object({\n workflow: EvalCostAmountSchema,\n judge: EvalCostAmountSchema,\n total: EvalCostAmountSchema,\n});\nexport type EvalCosts = z.infer<typeof EvalCostsSchema>;\nexport type EvalCostAmount = z.infer<typeof EvalCostAmountSchema>;\nexport const StudioEvalRunSummarySchema = z.object({\n id: z.uuid(),\n evaluationId: z.uuid().nullable().optional(),\n targetId: z.string(),\n targetName: z.string(),\n environment: z.string(),\n suiteId: z.string(),\n suiteRevision: z.string(),\n status: z.enum([\n \"queued\",\n \"running\",\n \"passed\",\n \"failed\",\n \"error\",\n \"cancelled\",\n ]),\n createdAt: z.string(),\n startedAt: z.string().nullable(),\n endedAt: z.string().nullable(),\n error: z.string().nullable(),\n cancelRequestedAt: z.string().nullable(),\n costs: EvalCostsSchema.optional(),\n counts: z\n .object({\n passed: z.number(),\n failed: z.number(),\n error: z.number(),\n cancelled: z.number(),\n })\n .nullable()\n .optional(),\n suiteName: z.string().nullable().optional(),\n totalAttempts: z.number().int().nonnegative().optional(),\n completedAttempts: z.number().int().nonnegative().optional(),\n phase: z.string().optional(),\n});\nexport const StudioEvalHistorySchema = z.object({\n runs: z.array(StudioEvalRunSummarySchema),\n});\nexport const StudioEvalDetailSchema = z.object({\n run: StudioEvalRunSummarySchema.extend({\n caseCosts: z.record(z.string(), EvalCostsSchema).optional(),\n request: z\n .object({\n caseIds: z.array(z.string()).optional(),\n grading: z.enum([\"app\", \"studio\"]).optional(),\n judge: EvalJudgeIdentitySchema.optional(),\n repetitions: z.number().int().positive(),\n concurrency: z.number().optional(),\n promptSnapshot: PromptSnapshotSchema.optional(),\n promptGroupName: z.string().optional(),\n })\n .optional(),\n suite: EvalSuiteSchema,\n result: EvalRunResultSchema.nullable(),\n events: z.array(z.object({ id: z.number(), event: EvalProgressSchema })),\n }),\n});\nexport type StudioEvalTargets = z.infer<typeof StudioEvalTargetsResponseSchema>;\nexport type StudioEvalHistory = z.infer<typeof StudioEvalHistorySchema>;\nexport type StudioEvalDetail = z.infer<typeof StudioEvalDetailSchema>[\"run\"];\n\nexport type StudioEvalRunSummary = z.infer<typeof StudioEvalRunSummarySchema>;\n","import { EvalConfigurationError } from \"./contracts\";\nimport { EVAL_EVIDENCE_EVENT_TYPES } from \"./evidence-policy\";\nimport type {\n EvalEvidenceEvent,\n EvalEvidenceFilters,\n EvalEvidencePolicy,\n EvalHandlerRef,\n EvalJson,\n EvalJudgeEvidence,\n EvalObservation,\n EvalStepResult,\n} from \"./types\";\n\nconst object = (\n value: EvalJson,\n): value is { readonly [key: string]: EvalJson } =>\n value !== null && typeof value === \"object\" && !Array.isArray(value);\nconst handler = (value: unknown): value is EvalHandlerRef =>\n value !== null && typeof value === \"object\" && \"using\" in value;\n\nexport function validateEvidenceFilters(\n policy: EvalEvidencePolicy,\n filters: EvalEvidenceFilters,\n): void {\n for (const key of [\"events\", \"outputs\"] as const) {\n const selection = policy[key];\n if (\n handler(selection) &&\n (!Object.hasOwn(filters[key] ?? {}, selection.using) ||\n typeof filters[key]?.[selection.using] !== \"function\")\n )\n throw new EvalConfigurationError(\n `Unknown ${key} evidence filter: ${selection.using}`,\n );\n }\n}\n\nfunction predicate<T>(\n filter: ((value: T, params?: EvalJson) => boolean) | undefined,\n value: T,\n params?: EvalJson,\n): boolean {\n if (!filter)\n throw new EvalConfigurationError(\"Evidence filter is not registered.\");\n const selected = filter(\n structuredClone(value),\n params === undefined ? undefined : structuredClone(params),\n );\n if (typeof selected !== \"boolean\")\n throw new Error(\"Evidence filters must return a boolean synchronously.\");\n return selected;\n}\n\n/** Never infer presentation, summarize facts, or truncate tool results. */\nexport function compactEvalObservation(\n observation: EvalObservation,\n policy: EvalEvidencePolicy = {},\n filters: EvalEvidenceFilters = {},\n): EvalObservation {\n const outputs = policy.outputs;\n const includeOutput = (output: EvalJson): boolean => {\n if (outputs === false) return false;\n if (handler(outputs))\n return predicate(\n filters.outputs?.[outputs.using],\n output,\n outputs.params,\n );\n if (!outputs) return true;\n return (\n object(output) &&\n outputs.some((selector) =>\n Object.entries(selector).every(([key, value]) => output[key] === value),\n )\n );\n };\n const selectedOutputs = observation.structured.map((output) => ({\n output,\n included: includeOutput(output),\n }));\n const structured = selectedOutputs\n .filter((item) => item.included)\n .map((item) => item.output);\n const events = observation.events\n ?.filter((value): value is EvalEvidenceEvent => {\n if (\n !object(value) ||\n !EVAL_EVIDENCE_EVENT_TYPES.some((type) => type === value.type)\n )\n return false;\n if (value.type === \"structured-data\") {\n if (value.kind !== \"final\") return false;\n // Reuse the decision for the canonical envelope, even when its event copy\n // carries different source metadata. A rejected output must not leak back in.\n const current = selectedOutputs.find(\n ({ output: item }) =>\n object(item) &&\n typeof value.streamId === \"string\" &&\n item.streamId === value.streamId &&\n item.status === \"done\" &&\n item.dataType === value.dataType &&\n item.schemaId === value.schemaId &&\n item.schemaVersion === value.schemaVersion &&\n JSON.stringify(item.data) === JSON.stringify(value.data),\n );\n if (current) {\n if (!current.included) return false;\n // Keep finals around invalidation boundaries in their original order.\n if (\n !observation.events?.some(\n (event) =>\n object(event) &&\n event.type === \"structured-data-invalidated\" &&\n event.streamId === value.streamId,\n )\n )\n return false;\n } else {\n const { type: _type, kind: _kind, ...fields } = value;\n if (!includeOutput({ ...fields, status: \"done\" })) return false;\n }\n }\n return true;\n })\n .filter((event) => {\n const selection = policy.events;\n if (selection === false) return false;\n if (handler(selection))\n return predicate(\n filters.events?.[selection.using],\n event,\n selection.params,\n );\n return !selection || selection.includes(event.type);\n });\n return structuredClone({\n ...observation,\n structured,\n ...(events ? { events } : {}),\n });\n}\n\nexport function createEvalJudgeEvidence(\n observation: EvalObservation,\n policy: EvalEvidencePolicy = {},\n filters: EvalEvidenceFilters = {},\n): EvalJudgeEvidence {\n return {\n version: \"compact-v1\",\n history: policy.history ?? true,\n observation: compactEvalObservation(observation, policy, filters),\n };\n}\n\n/** Shared by local grading and Studio replay. Never expose the original evidence via history. */\nexport function getEvalGradeEvidence(\n step: EvalStepResult,\n previous: readonly EvalStepResult[],\n): {\n observation: EvalObservation;\n conversation: EvalStepResult[];\n} {\n const evidence = step.evidence ?? createEvalJudgeEvidence(step.observation);\n return {\n observation: structuredClone(evidence.observation),\n conversation: evidence.history\n ? previous.map((prior) => {\n const { evidence: selected, ...result } = prior;\n return structuredClone({\n ...result,\n observation:\n selected?.observation ??\n compactEvalObservation(prior.observation),\n });\n })\n : [],\n };\n}\n","import {\n EvalConfigurationError,\n EvalJudgeIdentitySchema,\n StudioEvalJudgeRequestSchema,\n StudioEvalJudgeResponseSchema,\n} from \"./contracts\";\nimport { compactEvalObservation } from \"./evidence\";\nimport type { EvalJudge, StudioEvalJudgeOptions } from \"./types\";\n\nasync function readJson(\n response: Response,\n signal: AbortSignal,\n): Promise<unknown> {\n if (!response.ok || !response.body) {\n await response.body?.cancel().catch(() => {});\n throw new Error(\"Studio judge is unavailable or rejected the request.\");\n }\n const reader = response.body.getReader();\n const abort = () => {\n void reader.cancel().catch(() => {});\n };\n signal.addEventListener(\"abort\", abort, { once: true });\n const decoder = new TextDecoder();\n let text = \"\";\n let bytes = 0;\n try {\n for (;;) {\n signal.throwIfAborted();\n const part = await reader.read();\n if (part.done) break;\n bytes += part.value.byteLength;\n if (bytes > 1_000_000)\n throw new Error(\"Studio judge response is too large.\");\n text += decoder.decode(part.value, { stream: true });\n }\n signal.throwIfAborted();\n return JSON.parse(text + decoder.decode());\n } finally {\n signal.removeEventListener(\"abort\", abort);\n await reader.cancel().catch(() => {});\n reader.releaseLock();\n }\n}\n\n/** Discover and pin the Studio backend's judge; grading never runs in the browser. */\nexport async function createStudioEvalJudge(\n options: StudioEvalJudgeOptions,\n): Promise<EvalJudge> {\n const base = new URL(options.url);\n if (\n base.username ||\n base.password ||\n base.search ||\n base.hash ||\n (base.pathname !== \"/\" && base.pathname !== \"\") ||\n (base.protocol !== \"https:\" &&\n !(options.allowInsecureHttp && base.protocol === \"http:\")) ||\n !options.apiKey.trim() ||\n !options.environment.trim()\n )\n throw new EvalConfigurationError(\n \"Studio judging requires an API origin, key and environment, with HTTPS or explicit local HTTP opt-in.\",\n );\n const endpoint = new URL(\"/v1/studio/evals/judge\", base);\n const discovery = new URL(endpoint);\n discovery.searchParams.set(\"environment\", options.environment);\n const signal = options.signal\n ? AbortSignal.any([options.signal, AbortSignal.timeout(15_000)])\n : AbortSignal.timeout(15_000);\n const identity = EvalJudgeIdentitySchema.parse(\n await readJson(\n await fetch(discovery, {\n headers: { authorization: `Bearer ${options.apiKey}` },\n redirect: \"error\",\n signal,\n }),\n signal,\n ),\n );\n if (identity.location !== \"studio\")\n throw new EvalConfigurationError(\n \"Endpoint did not provide a Studio judge.\",\n );\n return {\n ...identity,\n location: \"studio\",\n async grade(input) {\n const request = StudioEvalJudgeRequestSchema.parse({\n environment: options.environment,\n judge: identity,\n criterion: input.criterion,\n input: input.input,\n observation: compactEvalObservation(input.observation),\n reference: input.reference,\n conversation: input.conversation.map(\n ({ evidence: _evidence, ...step }) => ({\n ...step,\n observation: compactEvalObservation(step.observation),\n }),\n ),\n });\n const signal = AbortSignal.any([\n input.signal,\n AbortSignal.timeout(60_000),\n ]);\n signal.throwIfAborted();\n const response = StudioEvalJudgeResponseSchema.parse(\n await readJson(\n await fetch(endpoint, {\n method: \"POST\",\n headers: {\n authorization: `Bearer ${options.apiKey}`,\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(request),\n redirect: \"error\",\n signal,\n }),\n signal,\n ),\n );\n if (\n response.judge.id !== identity.id ||\n response.judge.version !== identity.version ||\n response.judge.location !== \"studio\"\n )\n throw new Error(\n \"Studio judge identity changed. Refresh before running.\",\n );\n for (const usage of response.usage ?? []) input.onUsage?.(usage);\n return response.verdict;\n },\n };\n}\n"],"mappings":"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","names":["import_zod","id","import_errors","import_zod","import_zod","import_browser","import_zod","handler","filter","handler","signal"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { an as ChatLifecyclePhase, ao as ChatLifecycleHookError, ap as Agent, aq as ChatResponseFinalized, v as EvalJson, C as CreateEvalsOptions, $ as EvalSuite, S as EvalRunOptions, T as EvalRunResult, A as EvalJudgeOptions, w as EvalJudge, y as EvalJudgeIdentity } from './studio-judge-DCAw3v60.js';
|
|
2
|
+
export { ar as AgentProcessOptions, as as AgentProjectTopologyOptions, at as ChatResponseStatus, au as CreateAgentArgs, E as EvalCase, a as EvalCaseResult, c as EvalCommand, d as EvalConfigurationError, e as EvalContext, f as EvalCriterion, g as EvalCriterionResult, h as EvalDefaults, i as EvalEvidenceEvent, j as EvalEvidenceEventType, k as EvalEvidenceFilters, l as EvalEvidencePolicy, m as EvalEvidencePolicySchema, n as EvalExecution, o as EvalExecutionStatus, p as EvalExpectation, q as EvalGradeInput, r as EvalHandlerRef, s as EvalInterrupt, t as EvalIssue, u as EvalIssueSchema, x as EvalJudgeEvidence, z as EvalJudgeIdentitySchema, B as EvalJudgeUsage, D as EvalJudgeUsageSchema, F as EvalManifest, G as EvalManifestSchema, H as EvalObservation, J as EvalOutputExpectation, K as EvalOutputSelector, L as EvalPhase, M as EvalProgress, N as EvalProgressSchema, O as EvalRemoteRunRequest, P as EvalRemoteRunRequestSchema, Q as EvalResponder, U as EvalRunResultSchema, V as EvalRuntimeExecution, W as EvalSetupContext, X as EvalStatus, Y as EvalStep, Z as EvalStepResult, a0 as EvalSuiteSchema, a1 as EvalVerdict, a3 as EvalWireEvent, a4 as EvalWireEventSchema, a5 as EvaluationMetadataSchema, av as ExecutableWorkflow, aw as ExecuteOptions, ax as ExecutionInfo, ay as ExecutionInterrupt, az as ExecutionRequestError, aA as ExecutionResult, aB as InterruptScope, aC as ListInterruptsOptions, aD as PendingInterrupt, aE as ResumableInterrupt, aF as ResumeHandle, aG as ResumeOptions, aH as ResumeResponse, a6 as StudioEvalJudgeOptions, a7 as StudioEvalJudgeRequestSchema, a8 as StudioEvalJudgeResponseSchema, a9 as StudioEvalStartRequestSchema, aa as StudioEvaluationDetail, ab as StudioEvaluationDetailSchema, ac as StudioEvaluationHistorySchema, ad as StudioEvaluationResultsSchema, ae as StudioEvaluationStartRequest, af as StudioEvaluationStartRequestSchema, ag as StudioEvaluationSummary, ah as StudioEvaluationSummarySchema, aI as createAgent, ai as createEvalIssue, aj as createStudioEvalJudge, ak as defineSuite, al as getEvalGradeEvidence, am as parseEvalSuite, aJ as projectWorkflowTopology } from './studio-judge-DCAw3v60.js';
|
|
3
3
|
import { C as ChatMessage } from './chat-message-D4EsFcr1.js';
|
|
4
4
|
export { StreamChatFromRouteArgs, streamChatFromRoute } from './browser.js';
|
|
5
5
|
import { GetProviderFn } from '@kortyx/providers';
|
|
6
|
-
import { PendingRequestRecord, FrameworkAdapter, WorkflowRegistry } from '@kortyx/runtime';
|
|
6
|
+
import { PendingRequestRecord, FrameworkAdapter, WorkflowRegistry, EvalExecutionStore } from '@kortyx/runtime';
|
|
7
7
|
import { StreamChunk } from '@kortyx/stream';
|
|
8
8
|
import { ExecutionBudget, GraphState, WorkflowDefinition, ExecutionLimits } from '@kortyx/core';
|
|
9
9
|
import * as _kortyx_hooks from '@kortyx/hooks';
|
|
@@ -267,12 +267,18 @@ type EvalRunner = {
|
|
|
267
267
|
run: (args: EvalRunOptions) => Promise<EvalRunResult>;
|
|
268
268
|
};
|
|
269
269
|
/** Mount this Web Request handler in the consumer app. Keys never enter cases. */
|
|
270
|
-
declare function createEvalRouteHandler({ evals, serviceKey, maxCases, maxActiveRuns, }: {
|
|
270
|
+
declare function createEvalRouteHandler({ evals, serviceKey, maxCases, maxActiveRuns, maxActiveAttempts, maxQueuedExecutions, executionStore, onExecution, }: {
|
|
271
271
|
evals: EvalRunner;
|
|
272
272
|
serviceKey: string;
|
|
273
273
|
maxCases?: number;
|
|
274
274
|
maxActiveRuns?: number;
|
|
275
|
-
|
|
275
|
+
maxActiveAttempts?: number;
|
|
276
|
+
maxQueuedExecutions?: number;
|
|
277
|
+
executionStore?: EvalExecutionStore;
|
|
278
|
+
onExecution?: (completion: Promise<void>) => void;
|
|
279
|
+
}): ((request: Request) => Promise<Response>) & {
|
|
280
|
+
close: () => Promise<void>;
|
|
281
|
+
};
|
|
276
282
|
|
|
277
283
|
interface TransformOptions {
|
|
278
284
|
debug?: boolean;
|