@kortyx/agent 0.33.0 → 0.35.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 CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.35.0](https://github.com/kortyx-io/kortyx/compare/agent-v0.34.0...agent-v0.35.0) (2026-10-09)
4
+
5
+
6
+ ### Features
7
+
8
+ * **evals:** share concurrency and attribute multi-session costs ([#304](https://github.com/kortyx-io/kortyx/issues/304)) ([dd5e242](https://github.com/kortyx-io/kortyx/commit/dd5e242ae08affbb015201bb57c4714709756cf2))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @kortyx/core bumped to 0.13.0
16
+ * @kortyx/providers bumped to 0.9.1
17
+ * @kortyx/runtime bumped to 0.22.1
18
+ * @kortyx/stream bumped to 0.15.3
19
+ * @kortyx/utils bumped to 0.3.5
20
+ * devDependencies
21
+ * @kortyx/hooks bumped to 0.32.1
22
+ * @kortyx/openai bumped to 0.5.7
23
+
24
+ ## [0.34.0](https://github.com/kortyx-io/kortyx/compare/agent-v0.33.0...agent-v0.34.0) (2026-10-09)
25
+
26
+
27
+ ### Features
28
+
29
+ * **evals:** raise concurrency limit to 20 ([#300](https://github.com/kortyx-io/kortyx/issues/300)) ([0ed3151](https://github.com/kortyx-io/kortyx/commit/0ed3151e2984551d84113091594a0b8f9267289a))
30
+
3
31
  ## [0.33.0](https://github.com/kortyx-io/kortyx/compare/agent-v0.32.0...agent-v0.33.0) (2026-10-08)
4
32
 
5
33
 
package/dist/evals.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { C as CreateEvalsOptions, E as EvalCase, a as EvalCaseResult, b as EvalCaseResultSchema, 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 EvalJson, v as EvalJudge, w as EvalJudgeEvidence, x as EvalJudgeIdentity, y as EvalJudgeIdentitySchema, z as EvalJudgeOptions, A as EvalJudgeUsage, B as EvalJudgeUsageSchema, D as EvalManifest, F as EvalManifestSchema, G as EvalObservation, H as EvalObservationSchema, I as EvalOutputExpectation, J as EvalOutputSelector, K as EvalPhase, L as EvalProgress, M as EvalProgressSchema, N as EvalRemoteRunRequest, O as EvalRemoteRunRequestSchema, P as EvalResponder, Q as EvalResumeResponseSchema, R as EvalRunOptions, S as EvalRunResult, T as EvalRunResultSchema, U as EvalSetupContext, V as EvalStatus, W as EvalStep, X as EvalStepResult, Y as EvalStepResultSchema, Z as EvalSuite, _ as EvalSuiteSchema, $ as EvalVerdict, a0 as EvalVerdictSchema, a1 as EvalWireEvent, a2 as EvalWireEventSchema, a3 as EvaluationMetadataSchema, a4 as StudioEvalJudgeOptions, a5 as StudioEvalJudgeRequestSchema, a6 as StudioEvalJudgeResponseSchema, a7 as StudioEvalStartRequestSchema, a8 as StudioEvaluationDetail, a9 as StudioEvaluationDetailSchema, aa as StudioEvaluationHistorySchema, ab as StudioEvaluationResultsSchema, ac as StudioEvaluationStartRequest, ad as StudioEvaluationStartRequestSchema, ae as StudioEvaluationSummary, af as StudioEvaluationSummarySchema, ag as createStudioEvalJudge, ah as defineSuite, ai as getEvalGradeEvidence, aj as parseEvalSuite } from './studio-judge-DpRLvf8j.js';
1
+ export { C as CreateEvalsOptions, E as EvalCase, a as EvalCaseResult, b as EvalCaseResultSchema, 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 EvalJson, v as EvalJudge, w as EvalJudgeEvidence, x as EvalJudgeIdentity, y as EvalJudgeIdentitySchema, z as EvalJudgeOptions, A as EvalJudgeUsage, B as EvalJudgeUsageSchema, D as EvalManifest, F as EvalManifestSchema, G as EvalObservation, H as EvalObservationSchema, I as EvalOutputExpectation, J as EvalOutputSelector, K as EvalPhase, L as EvalProgress, M as EvalProgressSchema, N as EvalRemoteRunRequest, O as EvalRemoteRunRequestSchema, P as EvalResponder, Q as EvalResumeResponseSchema, R as EvalRunOptions, S as EvalRunResult, T as EvalRunResultSchema, U as EvalRuntimeExecution, V as EvalSetupContext, W as EvalStatus, X as EvalStep, Y as EvalStepResult, Z as EvalStepResultSchema, _ as EvalSuite, $ as EvalSuiteSchema, a0 as EvalVerdict, a1 as EvalVerdictSchema, a2 as EvalWireEvent, a3 as EvalWireEventSchema, a4 as EvaluationMetadataSchema, a5 as StudioEvalJudgeOptions, a6 as StudioEvalJudgeRequestSchema, a7 as StudioEvalJudgeResponseSchema, a8 as StudioEvalStartRequestSchema, a9 as StudioEvaluationDetail, aa as StudioEvaluationDetailSchema, ab as StudioEvaluationHistorySchema, ac as StudioEvaluationResultsSchema, ad as StudioEvaluationStartRequest, ae as StudioEvaluationStartRequestSchema, af as StudioEvaluationSummary, ag as StudioEvaluationSummarySchema, ah as createStudioEvalJudge, ai as defineSuite, aj as getEvalGradeEvidence, ak as parseEvalSuite } from './studio-judge-0yb-Cf2q.js';
2
2
  import { z } from 'zod';
3
3
  import '@kortyx/providers';
4
4
  import '@kortyx/core/errors';
@@ -38,6 +38,7 @@ declare const StudioEvalTargetsResponseSchema: z.ZodObject<{
38
38
  manifest: z.ZodNullable<z.ZodObject<{
39
39
  schemaVersion: z.ZodLiteral<1>;
40
40
  studioJudging: z.ZodOptional<z.ZodLiteral<true>>;
41
+ attemptScheduling: z.ZodOptional<z.ZodLiteral<true>>;
41
42
  suites: z.ZodArray<z.ZodObject<{
42
43
  evidence: z.ZodOptional<z.ZodObject<{
43
44
  history: z.ZodOptional<z.ZodBoolean>;
@@ -674,6 +675,11 @@ declare const StudioEvalDetailSchema: z.ZodObject<{
674
675
  cases: z.ZodArray<z.ZodObject<{
675
676
  caseId: z.ZodString;
676
677
  repetition: z.ZodNumber;
678
+ attemptId: z.ZodOptional<z.ZodUUID>;
679
+ runtimeExecutions: z.ZodOptional<z.ZodArray<z.ZodObject<{
680
+ sessionId: z.ZodString;
681
+ runId: z.ZodString;
682
+ }, z.core.$strict>>>;
677
683
  sessionId: z.ZodString;
678
684
  status: z.ZodEnum<{
679
685
  error: "error";
@@ -862,6 +868,15 @@ declare const StudioEvalDetailSchema: z.ZodObject<{
862
868
  events: z.ZodArray<z.ZodObject<{
863
869
  id: z.ZodNumber;
864
870
  event: z.ZodDiscriminatedUnion<[z.ZodObject<{
871
+ type: z.ZodLiteral<"case-runtime-associated">;
872
+ caseId: z.ZodString;
873
+ repetition: z.ZodNumber;
874
+ attemptId: z.ZodUUID;
875
+ execution: z.ZodObject<{
876
+ sessionId: z.ZodString;
877
+ runId: z.ZodString;
878
+ }, z.core.$strict>;
879
+ }, z.core.$strict>, z.ZodObject<{
865
880
  type: z.ZodLiteral<"run-started">;
866
881
  caseIds: z.ZodArray<z.ZodString>;
867
882
  repetitions: z.ZodNumber;
@@ -883,6 +898,7 @@ declare const StudioEvalDetailSchema: z.ZodObject<{
883
898
  stepIndex: z.ZodOptional<z.ZodNumber>;
884
899
  }, z.core.$strict>, z.ZodObject<{
885
900
  type: z.ZodLiteral<"case-started">;
901
+ attemptId: z.ZodOptional<z.ZodUUID>;
886
902
  caseId: z.ZodString;
887
903
  repetition: z.ZodNumber;
888
904
  sessionId: z.ZodString;
@@ -1041,6 +1057,11 @@ declare const StudioEvalDetailSchema: z.ZodObject<{
1041
1057
  result: z.ZodObject<{
1042
1058
  caseId: z.ZodString;
1043
1059
  repetition: z.ZodNumber;
1060
+ attemptId: z.ZodOptional<z.ZodUUID>;
1061
+ runtimeExecutions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1062
+ sessionId: z.ZodString;
1063
+ runId: z.ZodString;
1064
+ }, z.core.$strict>>>;
1044
1065
  sessionId: z.ZodString;
1045
1066
  status: z.ZodEnum<{
1046
1067
  error: "error";
package/dist/evals.js CHANGED
@@ -253,9 +253,12 @@ var EvalStepResultSchema = import_zod2.z.object({
253
253
  EvalVerdictSchema.extend({ id: import_zod2.z.string(), text: import_zod2.z.string() })
254
254
  )
255
255
  }).strict();
256
+ var runtimeExecution = import_zod2.z.object({ sessionId: import_zod2.z.string().min(1), runId: import_zod2.z.string().min(1) }).strict();
256
257
  var EvalCaseResultSchema = import_zod2.z.object({
257
258
  caseId: id2,
258
259
  repetition: import_zod2.z.number().int().positive(),
260
+ attemptId: import_zod2.z.uuid().optional(),
261
+ runtimeExecutions: import_zod2.z.array(runtimeExecution).optional(),
259
262
  sessionId: import_zod2.z.string(),
260
263
  status,
261
264
  durationMs: import_zod2.z.number().nonnegative(),
@@ -304,6 +307,7 @@ var EvalRunResultSchema = import_zod2.z.object({
304
307
  var EvalManifestSchema = import_zod2.z.object({
305
308
  schemaVersion: import_zod2.z.literal(1),
306
309
  studioJudging: import_zod2.z.literal(true).optional(),
310
+ attemptScheduling: import_zod2.z.literal(true).optional(),
307
311
  suites: import_zod2.z.array(EvalSuiteSchema),
308
312
  responders: import_zod2.z.array(
309
313
  import_zod2.z.object({
@@ -317,6 +321,13 @@ var EvalManifestSchema = import_zod2.z.object({
317
321
  judge: judge.optional()
318
322
  }).strict();
319
323
  var EvalProgressSchema = import_zod2.z.discriminatedUnion("type", [
324
+ import_zod2.z.object({
325
+ type: import_zod2.z.literal("case-runtime-associated"),
326
+ caseId: id2,
327
+ repetition: import_zod2.z.number().int().positive(),
328
+ attemptId: import_zod2.z.uuid(),
329
+ execution: runtimeExecution
330
+ }).strict(),
320
331
  import_zod2.z.object({
321
332
  type: import_zod2.z.literal("run-started"),
322
333
  caseIds: import_zod2.z.array(id2).min(1),
@@ -332,6 +343,7 @@ var EvalProgressSchema = import_zod2.z.discriminatedUnion("type", [
332
343
  }).strict(),
333
344
  import_zod2.z.object({
334
345
  type: import_zod2.z.literal("case-started"),
346
+ attemptId: import_zod2.z.uuid().optional(),
335
347
  caseId: id2,
336
348
  repetition: import_zod2.z.number().int().positive(),
337
349
  sessionId: import_zod2.z.string()
@@ -351,11 +363,17 @@ var EvalRemoteRunRequestSchema = import_zod2.z.object({
351
363
  judge: EvalJudgeIdentitySchema.optional(),
352
364
  caseIds: import_zod2.z.array(id2).min(1).max(100).optional(),
353
365
  repetitions: import_zod2.z.number().int().min(1).max(20).default(1),
354
- concurrency: import_zod2.z.number().int().min(1).max(4).default(1)
366
+ concurrency: import_zod2.z.number().int().min(1).max(20).default(1),
367
+ attempt: import_zod2.z.object({
368
+ caseId: id2,
369
+ repetition: import_zod2.z.number().int().min(1).max(20),
370
+ evaluationId: import_zod2.z.uuid()
371
+ }).strict().optional()
355
372
  }).strict();
356
373
  var StudioEvalStartRequestSchema = EvalRemoteRunRequestSchema.omit({
357
374
  grading: true,
358
- judge: true
375
+ judge: true,
376
+ attempt: true
359
377
  }).extend({
360
378
  targetId: import_zod2.z.string().min(1).max(128),
361
379
  judge: import_zod2.z.enum(["studio", "app"]).default("studio")
@@ -518,7 +536,7 @@ var StudioEvaluationStartRequestSchema = import_zod4.z.object({
518
536
  ).min(1).max(100),
519
537
  judge: import_zod4.z.enum(["studio", "app"]).default("studio"),
520
538
  repetitions: import_zod4.z.number().int().min(1).max(20).default(1),
521
- concurrency: import_zod4.z.number().int().min(1).max(4).default(1),
539
+ concurrency: import_zod4.z.number().int().min(1).max(20).default(1),
522
540
  metadata: EvaluationMetadataSchema.default({ source: "manual" }),
523
541
  idempotencyKey: import_zod4.z.string().trim().min(1).max(200).optional()
524
542
  }).strict();
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 { 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 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();\nexport const EvalCaseResultSchema = z\n .object({\n caseId: id,\n repetition: z.number().int().positive(),\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 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(\"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 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 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(4).default(1),\n })\n .strict();\nexport const StudioEvalStartRequestSchema = EvalRemoteRunRequestSchema.omit({\n grading: true,\n judge: true,\n}).extend({\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 { EvalJudgeIdentitySchema } 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 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(4).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 { 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 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 })\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_zod","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/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 { 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 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 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 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 attempt: true,\n}).extend({\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 { EvalJudgeIdentitySchema } 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 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 { 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 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 })\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_zod","import_zod","handler","filter","handler","signal"]}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { ak as ChatLifecyclePhase, al as ChatLifecycleHookError, am as Agent, an as ChatResponseFinalized, u as EvalJson, C as CreateEvalsOptions, Z as EvalSuite, R as EvalRunOptions, S as EvalRunResult, z as EvalJudgeOptions, v as EvalJudge, x as EvalJudgeIdentity } from './studio-judge-DpRLvf8j.js';
2
- export { ao as AgentProcessOptions, ap as AgentProjectTopologyOptions, aq as ChatResponseStatus, ar 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, w as EvalJudgeEvidence, y as EvalJudgeIdentitySchema, A as EvalJudgeUsage, B as EvalJudgeUsageSchema, D as EvalManifest, F as EvalManifestSchema, G as EvalObservation, I as EvalOutputExpectation, J as EvalOutputSelector, K as EvalPhase, L as EvalProgress, M as EvalProgressSchema, N as EvalRemoteRunRequest, O as EvalRemoteRunRequestSchema, P as EvalResponder, T as EvalRunResultSchema, U as EvalSetupContext, V as EvalStatus, W as EvalStep, X as EvalStepResult, _ as EvalSuiteSchema, $ as EvalVerdict, a1 as EvalWireEvent, a2 as EvalWireEventSchema, a3 as EvaluationMetadataSchema, as as ExecutableWorkflow, at as ExecuteOptions, au as ExecutionInfo, av as ExecutionInterrupt, aw as ExecutionRequestError, ax as ExecutionResult, ay as InterruptScope, az as ListInterruptsOptions, aA as PendingInterrupt, aB as ResumableInterrupt, aC as ResumeHandle, aD as ResumeOptions, aE as ResumeResponse, a4 as StudioEvalJudgeOptions, a5 as StudioEvalJudgeRequestSchema, a6 as StudioEvalJudgeResponseSchema, a7 as StudioEvalStartRequestSchema, a8 as StudioEvaluationDetail, a9 as StudioEvaluationDetailSchema, aa as StudioEvaluationHistorySchema, ab as StudioEvaluationResultsSchema, ac as StudioEvaluationStartRequest, ad as StudioEvaluationStartRequestSchema, ae as StudioEvaluationSummary, af as StudioEvaluationSummarySchema, aF as createAgent, ag as createStudioEvalJudge, ah as defineSuite, ai as getEvalGradeEvidence, aj as parseEvalSuite, aG as projectWorkflowTopology } from './studio-judge-DpRLvf8j.js';
1
+ import { al as ChatLifecyclePhase, am as ChatLifecycleHookError, an as Agent, ao as ChatResponseFinalized, u as EvalJson, C as CreateEvalsOptions, _ as EvalSuite, R as EvalRunOptions, S as EvalRunResult, z as EvalJudgeOptions, v as EvalJudge, x as EvalJudgeIdentity } from './studio-judge-0yb-Cf2q.js';
2
+ export { ap as AgentProcessOptions, aq as AgentProjectTopologyOptions, ar as ChatResponseStatus, as 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, w as EvalJudgeEvidence, y as EvalJudgeIdentitySchema, A as EvalJudgeUsage, B as EvalJudgeUsageSchema, D as EvalManifest, F as EvalManifestSchema, G as EvalObservation, I as EvalOutputExpectation, J as EvalOutputSelector, K as EvalPhase, L as EvalProgress, M as EvalProgressSchema, N as EvalRemoteRunRequest, O as EvalRemoteRunRequestSchema, P as EvalResponder, T as EvalRunResultSchema, U as EvalRuntimeExecution, V as EvalSetupContext, W as EvalStatus, X as EvalStep, Y as EvalStepResult, $ as EvalSuiteSchema, a0 as EvalVerdict, a2 as EvalWireEvent, a3 as EvalWireEventSchema, a4 as EvaluationMetadataSchema, at as ExecutableWorkflow, au as ExecuteOptions, av as ExecutionInfo, aw as ExecutionInterrupt, ax as ExecutionRequestError, ay as ExecutionResult, az as InterruptScope, aA as ListInterruptsOptions, aB as PendingInterrupt, aC as ResumableInterrupt, aD as ResumeHandle, aE as ResumeOptions, aF as ResumeResponse, a5 as StudioEvalJudgeOptions, a6 as StudioEvalJudgeRequestSchema, a7 as StudioEvalJudgeResponseSchema, a8 as StudioEvalStartRequestSchema, a9 as StudioEvaluationDetail, aa as StudioEvaluationDetailSchema, ab as StudioEvaluationHistorySchema, ac as StudioEvaluationResultsSchema, ad as StudioEvaluationStartRequest, ae as StudioEvaluationStartRequestSchema, af as StudioEvaluationSummary, ag as StudioEvaluationSummarySchema, aG as createAgent, ah as createStudioEvalJudge, ai as defineSuite, aj as getEvalGradeEvidence, ak as parseEvalSuite, aH as projectWorkflowTopology } from './studio-judge-0yb-Cf2q.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';
@@ -227,6 +227,7 @@ declare function createEvals<Params = EvalJson | undefined, Prepared = undefined
227
227
  paramsSchema?: z.core.ZodStandardJSONSchemaPayload<z.ZodType<Params, unknown, z.core.$ZodTypeInternals<Params, unknown>>>;
228
228
  schemaVersion: 1;
229
229
  studioJudging: true;
230
+ attemptScheduling: true;
230
231
  suites: EvalSuite[];
231
232
  responders: {
232
233
  schemaVersion?: string;
@@ -248,6 +249,7 @@ type EvalRunner = {
248
249
  schemaVersion: 1;
249
250
  suites: readonly EvalSuite[];
250
251
  studioJudging?: true;
252
+ attemptScheduling?: true;
251
253
  judge?: EvalJudgeIdentity;
252
254
  };
253
255
  run: (args: EvalRunOptions) => Promise<EvalRunResult>;