@kortyx/agent 0.38.1 → 0.40.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 +49 -0
- package/README.md +28 -0
- package/dist/evals.d.ts +414 -7
- package/dist/evals.js +495 -330
- package/dist/evals.js.map +1 -1
- package/dist/index.d.ts +21 -3
- package/dist/index.js +1320 -3004
- package/dist/index.js.map +1 -1
- package/dist/{studio-judge-DCAw3v60.d.ts → studio-judge-caDvI8By.d.ts} +973 -43
- package/package.json +11 -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/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"]}
|
|
1
|
+
{"version":3,"sources":["../src/evals.ts","../src/evals/contracts.ts","../src/evals/evidence-policy.ts","../src/evals/settings.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/settings\";\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 { DiagnosticContentSchema } from \"@kortyx/telemetry-contracts\";\nimport { z } from \"zod\";\nimport { EvalEvidencePolicySchema } from \"./evidence-policy\";\nimport {\n EvalExecutionSettingsSchema,\n EvalSettingsSchema,\n ResolvedEvalSettingsSchema,\n} from \"./settings\";\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 exception: DiagnosticContentSchema.optional(),\n details: z\n .object({\n timeoutMs: z.number().positive().optional(),\n httpStatus: z.number().int().min(100).max(599).optional(),\n })\n .strict()\n .optional(),\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 execution: EvalExecutionSettingsSchema.optional(),\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 caseTimeoutMs: EvalSettingsSchema.shape.caseTimeoutMs,\n runTimeoutMs: EvalSettingsSchema.shape.runTimeoutMs,\n resolvedSettings: ResolvedEvalSettingsSchema.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\"]).optional(),\n repetitions: EvalSettingsSchema.shape.repetitions,\n concurrency: EvalSettingsSchema.shape.concurrency,\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 exception: DiagnosticContentSchema.optional(),\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 { z } from \"zod\";\n\nconst timeout = z.number().int().min(1).max(2_147_483_647);\nexport const EvalSettingsSchema = z\n .object({\n repetitions: z.number().int().min(1).max(20).optional(),\n concurrency: z.number().int().min(1).max(20).optional(),\n caseTimeoutMs: timeout.optional(),\n runTimeoutMs: timeout.optional(),\n judge: z.enum([\"studio\", \"app\"]).optional(),\n })\n .strict();\nexport type EvalSettings = z.infer<typeof EvalSettingsSchema>;\nexport const EvalExecutionSettingsSchema = z\n .object({\n defaults: EvalSettingsSchema.omit({ runTimeoutMs: true, judge: true }),\n limits: z\n .object({\n concurrency: z.number().int().positive().max(20).optional(),\n caseTimeoutMs: timeout.optional(),\n })\n .strict(),\n overrides: z.array(z.enum([\"repetitions\", \"concurrency\", \"caseTimeoutMs\"])),\n })\n .strict();\nexport const ResolvedEvalSettingsSchema = z\n .object({\n values: EvalSettingsSchema.required(),\n sources: z.record(\n z.enum([\n \"repetitions\",\n \"concurrency\",\n \"caseTimeoutMs\",\n \"runTimeoutMs\",\n \"judge\",\n ]),\n z.enum([\"run\", \"studio\", \"sdk\", \"sdk-default\", \"studio-default\"]),\n ),\n })\n .strict();\nexport type ResolvedEvalSettings = z.infer<typeof ResolvedEvalSettingsSchema>;\nexport const EvalSettingsResponseSchema = z.object({\n defaults: EvalSettingsSchema,\n installation: EvalSettingsSchema,\n maxRunTimeoutMs: timeout,\n canEdit: z.boolean(),\n});\nexport const EvalTerminationSchema = z\n .object({\n code: z.enum([\n \"EVAL_RUN_TIMEOUT\",\n \"EVAL_CANCELLED\",\n \"EVAL_LEASE_LOST\",\n \"EVAL_EXECUTION_UNKNOWN\",\n \"EVAL_EXECUTOR_FAILED\",\n ]),\n message: z.string(),\n timeoutMs: timeout.optional(),\n phase: z.string().optional(),\n cleanup: z.enum([\"signalled\", \"unknown\"]).optional(),\n diagnosticId: z.string().uuid().optional(),\n })\n .strict();\nexport type EvalTermination = z.infer<typeof EvalTerminationSchema>;\n\n/** Resolve only defined fields. Ceilings never participate in precedence. */\nexport function resolveEvalSettings(\n overrides: EvalSettings = {},\n studio: EvalSettings = {},\n execution?: z.infer<typeof EvalExecutionSettingsSchema>,\n installation: EvalSettings = {},\n maxRunTimeoutMs = 2_147_483_647,\n): ResolvedEvalSettings {\n const values: ResolvedEvalSettings[\"values\"] = {\n repetitions: 1,\n concurrency: 1,\n caseTimeoutMs: 60_000,\n runTimeoutMs: 30 * 60_000,\n judge: \"studio\",\n };\n const sources: ResolvedEvalSettings[\"sources\"] = {\n repetitions: \"sdk-default\",\n concurrency: \"sdk-default\",\n caseTimeoutMs: \"sdk-default\",\n runTimeoutMs: \"studio-default\",\n judge: \"studio-default\",\n };\n for (const [input, source] of [\n [execution?.defaults ?? {}, \"sdk\"],\n [installation, \"studio\"],\n [studio, \"studio\"],\n [overrides, \"run\"],\n ] as const) {\n const parsed = EvalSettingsSchema.parse(input);\n for (const key of Object.keys(parsed) as (keyof EvalSettings)[]) {\n if (parsed[key] !== undefined) {\n Object.assign(values, { [key]: parsed[key] });\n sources[key] = source;\n }\n }\n }\n if (values.runTimeoutMs > maxRunTimeoutMs)\n throw new Error(\n `Evaluation timeout exceeds the administrator maximum of ${maxRunTimeoutMs} ms.`,\n );\n for (const key of [\"concurrency\", \"caseTimeoutMs\"] as const) {\n const max = execution?.limits[key];\n if (max !== undefined && values[key] > max)\n throw new Error(`${key} exceeds the application maximum of ${max}.`);\n }\n // Old consumers reject unknown request fields. Their case deadline cannot be changed.\n if (\n !execution?.overrides.includes(\"caseTimeoutMs\") &&\n (overrides.caseTimeoutMs !== undefined ||\n studio.caseTimeoutMs !== undefined ||\n installation.caseTimeoutMs !== undefined)\n )\n throw new Error(\n \"Update the consumer SDK to support case timeout overrides.\",\n );\n return { values, sources };\n}\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 {\n captureDiagnosticContent,\n redactDiagnosticText,\n} from \"@kortyx/telemetry-contracts\";\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/** Authenticated eval evidence retains original exceptions with credential-only redaction. */\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 const exception =\n !control && error !== undefined ? captureDiagnosticContent(error) : null;\n const rawMessage =\n typeof error === \"string\" ? error : errorProperty(error, \"message\");\n const originalMessage =\n typeof rawMessage === \"string\"\n ? redactDiagnosticText(rawMessage)\n : undefined;\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 const candidate =\n errorProperty(error, \"statusCode\") ?? errorProperty(error, \"status\");\n const httpStatus =\n typeof candidate === \"number\" &&\n Number.isInteger(candidate) &&\n candidate >= 100 &&\n candidate <= 599\n ? candidate\n : undefined;\n return {\n ...(exception ? { exception } : {}),\n ...(httpStatus ? { details: { httpStatus } } : {}),\n phase,\n code: declared ? failure.code : (options.code ?? \"EVAL_HOOK_FAILED\"),\n message:\n originalMessage ??\n (declared\n ? failure.message\n : `${messages[phase]}${httpStatus ? ` HTTP ${httpStatus}.` : \"\"}`),\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 EvalSettingsSchema,\n EvalTerminationSchema,\n ResolvedEvalSettingsSchema,\n} from \"./settings\";\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 ...EvalSettingsSchema.shape,\n\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 termination: EvalTerminationSchema.nullable().optional(),\n resolvedSettings: ResolvedEvalSettingsSchema.optional(),\n interruptedSuites: z.number().int().nonnegative().optional(),\n failures: z\n .array(\n z.object({\n suiteRunId: z.uuid(),\n caseId: z.string().optional(),\n repetition: z.number().int().positive().optional(),\n phase: z.string(),\n code: z.string(),\n message: z.string(),\n diagnosticId: z.string().uuid().optional(),\n }),\n )\n .optional(),\n pendingAttempts: z\n .object({\n notStarted: z.number().int().nonnegative(),\n executing: z.number().int().nonnegative(),\n awaitingGrading: z.number().int().nonnegative(),\n })\n .optional(),\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 EvalIssueSchema,\n EvalJudgeIdentitySchema,\n EvalManifestSchema,\n EvalProgressSchema,\n EvalRunResultSchema,\n EvalSuiteSchema,\n} from \"./contracts\";\nimport {\n EvalSettingsResponseSchema,\n EvalTerminationSchema,\n ResolvedEvalSettingsSchema,\n} from \"./settings\";\nexport const StudioEvalTargetsResponseSchema = z.object({\n canRun: z.boolean(),\n settings: EvalSettingsResponseSchema.optional(),\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 issue: EvalIssueSchema.nullable().optional(),\n termination: EvalTerminationSchema.nullable().optional(),\n resolvedSettings: ResolvedEvalSettingsSchema.optional(),\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 caseTimeoutMs: z.number().optional(),\n runTimeoutMs: z.number().optional(),\n resolvedSettings: ResolvedEvalSettingsSchema.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 { redactDiagnosticText } from \"@kortyx/telemetry-contracts\";\nimport {\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.body) {\n throw new Error(\n `Studio judge returned HTTP ${response.status} with no response body.`,\n );\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 text += decoder.decode();\n if (!response.ok)\n throw Object.assign(\n new Error(\n `Studio judge returned HTTP ${response.status}: ${redactDiagnosticText(text)}`,\n ),\n {\n statusCode: response.status,\n responseBody: redactDiagnosticText(text),\n },\n );\n return JSON.parse(text);\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","import_zod","id","import_errors","import_telemetry_contracts","import_zod","import_zod","import_browser","import_zod","handler","filter","handler","import_telemetry_contracts","signal"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { aw as ChatLifecyclePhase, ax as ChatLifecycleHookError, ay as Agent, az as ChatResponseFinalized, w as EvalJson, C as CreateEvalsOptions, a3 as EvalSuite, T as EvalRunOptions, U as EvalRunResult, B as EvalJudgeOptions, x as EvalJudge, o as EvalExecutionSettingsSchema, z as EvalJudgeIdentity } from './studio-judge-caDvI8By.js';
|
|
2
|
+
export { aA as AgentProcessOptions, aB as AgentProjectTopologyOptions, aC as ChatResponseStatus, aD 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, p as EvalExecutionStatus, q as EvalExpectation, r as EvalGradeInput, s as EvalHandlerRef, t as EvalInterrupt, u as EvalIssue, v as EvalIssueSchema, y as EvalJudgeEvidence, A as EvalJudgeIdentitySchema, D as EvalJudgeUsage, F as EvalJudgeUsageSchema, G as EvalManifest, H as EvalManifestSchema, I as EvalObservation, K as EvalOutputExpectation, L as EvalOutputSelector, M as EvalPhase, N as EvalProgress, O as EvalProgressSchema, P as EvalRemoteRunRequest, Q as EvalRemoteRunRequestSchema, R as EvalResponder, V as EvalRunResultSchema, W as EvalRuntimeExecution, X as EvalSettings, Y as EvalSettingsResponseSchema, Z as EvalSettingsSchema, _ as EvalSetupContext, $ as EvalStatus, a0 as EvalStep, a1 as EvalStepResult, a4 as EvalSuiteSchema, a5 as EvalTermination, a6 as EvalTerminationSchema, a7 as EvalVerdict, a9 as EvalWireEvent, aa as EvalWireEventSchema, ab as EvaluationMetadataSchema, aE as ExecutableWorkflow, aF as ExecuteOptions, aG as ExecutionInfo, aH as ExecutionInterrupt, aI as ExecutionRequestError, aJ as ExecutionResult, aK as InterruptScope, aL as ListInterruptsOptions, aM as PendingInterrupt, ac as ResolvedEvalSettings, ad as ResolvedEvalSettingsSchema, aN as ResumableInterrupt, aO as ResumeHandle, aP as ResumeOptions, aQ as ResumeResponse, ae as StudioEvalJudgeOptions, af as StudioEvalJudgeRequestSchema, ag as StudioEvalJudgeResponseSchema, ah as StudioEvalStartRequestSchema, ai as StudioEvaluationDetail, aj as StudioEvaluationDetailSchema, ak as StudioEvaluationHistorySchema, al as StudioEvaluationResultsSchema, am as StudioEvaluationStartRequest, an as StudioEvaluationStartRequestSchema, ao as StudioEvaluationSummary, ap as StudioEvaluationSummarySchema, aR as createAgent, aq as createEvalIssue, ar as createStudioEvalJudge, as as defineSuite, at as getEvalGradeEvidence, au as parseEvalSuite, aS as projectWorkflowTopology, av as resolveEvalSettings } from './studio-judge-caDvI8By.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';
|
|
@@ -8,8 +8,10 @@ import { PendingRequestRecord, FrameworkAdapter, WorkflowRegistry, EvalExecution
|
|
|
8
8
|
import { StreamChunk } from '@kortyx/stream';
|
|
9
9
|
import { ExecutionBudget, GraphState, WorkflowDefinition, ExecutionLimits } from '@kortyx/core';
|
|
10
10
|
import * as _kortyx_hooks from '@kortyx/hooks';
|
|
11
|
+
import * as zod from 'zod';
|
|
11
12
|
import { z } from 'zod';
|
|
12
13
|
import { StreamEvent } from '@langchain/core/tracers/log_stream';
|
|
14
|
+
import '@kortyx/telemetry-contracts';
|
|
13
15
|
import '@kortyx/prompts';
|
|
14
16
|
import '@kortyx/core/errors';
|
|
15
17
|
import '@kortyx/stream/browser';
|
|
@@ -242,6 +244,18 @@ declare function createEvals<Params = EvalJson | undefined, Prepared = undefined
|
|
|
242
244
|
variablesSchema: Record<string, unknown>;
|
|
243
245
|
configSchema: Record<string, unknown>;
|
|
244
246
|
}[];
|
|
247
|
+
execution: {
|
|
248
|
+
defaults: {
|
|
249
|
+
caseTimeoutMs?: number;
|
|
250
|
+
concurrency?: number;
|
|
251
|
+
repetitions?: number;
|
|
252
|
+
};
|
|
253
|
+
limits: {
|
|
254
|
+
concurrency?: number;
|
|
255
|
+
caseTimeoutMs?: number;
|
|
256
|
+
};
|
|
257
|
+
overrides: ("repetitions" | "concurrency" | "caseTimeoutMs")[];
|
|
258
|
+
};
|
|
245
259
|
schemaVersion: 1;
|
|
246
260
|
studioJudging: true;
|
|
247
261
|
};
|
|
@@ -256,6 +270,7 @@ declare const getEvalSuiteRevision: (suite: EvalSuite) => string;
|
|
|
256
270
|
type EvalRunner = {
|
|
257
271
|
describe: () => {
|
|
258
272
|
schemaVersion: 1;
|
|
273
|
+
execution?: zod.infer<typeof EvalExecutionSettingsSchema>;
|
|
259
274
|
suites: readonly EvalSuite[];
|
|
260
275
|
studioJudging?: true;
|
|
261
276
|
promptContracts?: {
|
|
@@ -279,6 +294,9 @@ declare function createEvalRouteHandler({ evals, serviceKey, maxCases, maxActive
|
|
|
279
294
|
executionStore?: EvalExecutionStore;
|
|
280
295
|
onExecution?: (completion: Promise<void>) => void;
|
|
281
296
|
}): ((request: Request) => Promise<Response>) & {
|
|
297
|
+
/** Stop admissions and finish accepted jobs; keep HTTP/store alive for observers. */
|
|
298
|
+
drain: () => Promise<void>;
|
|
299
|
+
/** Explicitly abort local execution, then wait for cleanup. */
|
|
282
300
|
close: () => Promise<void>;
|
|
283
301
|
};
|
|
284
302
|
|
|
@@ -296,4 +314,4 @@ declare function transformGraphStreamForUI(stream: AsyncIterable<StreamEvent>, o
|
|
|
296
314
|
|
|
297
315
|
declare function extractLatestUserMessage(messages: ChatMessage[]): string;
|
|
298
316
|
|
|
299
|
-
export { Agent, type ApplyResumeSelection, type ChatLifecycleErrorEvent, ChatLifecycleHookError, ChatLifecyclePhase, ChatMessage, type ChatRequestBody, ChatResponseFinalized, type ChatRouteHandlerOptions, type CheckpointRequestBody, type CheckpointRouteHandlerOptions, type CompiledGraphLike, CreateEvalsOptions, EvalJson, EvalJudge, EvalJudgeIdentity, EvalJudgeOptions, EvalRunOptions, EvalRunResult, type EvalRunner, EvalSuite, type OrchestrateArgs, type ResumeMeta, type SaveMemoryFn, type SelectWorkflowFn, type StreamChatArgs, createChatRouteHandler, createCheckpointRouteHandler, createEvalJudge, createEvalRouteHandler, createEvals, createFailureResponse, extractLatestUserMessage, getEvalSuiteRevision, handleChatRequestBody, handleCheckpointRequestBody, orchestrateGraphStream, parseChatRequestBody, parseCheckpointRequestBody, parseResumeMeta, readRequestJson, streamChat, transformGraphStreamForUI, tryPrepareResumeStream };
|
|
317
|
+
export { Agent, type ApplyResumeSelection, type ChatLifecycleErrorEvent, ChatLifecycleHookError, ChatLifecyclePhase, ChatMessage, type ChatRequestBody, ChatResponseFinalized, type ChatRouteHandlerOptions, type CheckpointRequestBody, type CheckpointRouteHandlerOptions, type CompiledGraphLike, CreateEvalsOptions, EvalExecutionSettingsSchema, EvalJson, EvalJudge, EvalJudgeIdentity, EvalJudgeOptions, EvalRunOptions, EvalRunResult, type EvalRunner, EvalSuite, type OrchestrateArgs, type ResumeMeta, type SaveMemoryFn, type SelectWorkflowFn, type StreamChatArgs, createChatRouteHandler, createCheckpointRouteHandler, createEvalJudge, createEvalRouteHandler, createEvals, createFailureResponse, extractLatestUserMessage, getEvalSuiteRevision, handleChatRequestBody, handleCheckpointRequestBody, orchestrateGraphStream, parseChatRequestBody, parseCheckpointRequestBody, parseResumeMeta, readRequestJson, streamChat, transformGraphStreamForUI, tryPrepareResumeStream };
|