@kortyx/agent 0.30.0 → 0.31.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,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.31.0](https://github.com/kortyx-io/kortyx/compare/agent-v0.30.0...agent-v0.31.0) (2026-10-07)
4
+
5
+
6
+ ### Features
7
+
8
+ * **evals:** group suite runs and expose CLI results ([#284](https://github.com/kortyx-io/kortyx/issues/284)) ([146fd71](https://github.com/kortyx-io/kortyx/commit/146fd71a88587e5591dd0511a4c0cb57969f9d07))
9
+
3
10
  ## [0.30.0](https://github.com/kortyx-io/kortyx/compare/agent-v0.29.0...agent-v0.30.0) (2026-10-07)
4
11
 
5
12
 
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 EvalExecution, j as EvalExecutionStatus, k as EvalExpectation, l as EvalGradeInput, m as EvalHandlerRef, n as EvalInterrupt, o as EvalIssue, p as EvalJson, q as EvalJudge, r as EvalJudgeIdentity, s as EvalJudgeIdentitySchema, t as EvalJudgeOptions, u as EvalJudgeUsage, v as EvalJudgeUsageSchema, w as EvalManifest, x as EvalManifestSchema, y as EvalObservation, z as EvalObservationSchema, A as EvalOutputExpectation, B as EvalPhase, D as EvalProgress, F as EvalProgressSchema, G as EvalRemoteRunRequest, H as EvalRemoteRunRequestSchema, I as EvalResponder, J as EvalResumeResponseSchema, K as EvalRunOptions, L as EvalRunResult, M as EvalRunResultSchema, N as EvalSetupContext, O as EvalStatus, P as EvalStep, Q as EvalStepResult, R as EvalStepResultSchema, S as EvalSuite, T as EvalSuiteSchema, U as EvalVerdict, V as EvalVerdictSchema, W as EvalWireEvent, X as EvalWireEventSchema, Y as StudioEvalJudgeOptions, Z as StudioEvalJudgeRequestSchema, _ as StudioEvalJudgeResponseSchema, $ as StudioEvalStartRequestSchema, a0 as createStudioEvalJudge, a1 as defineSuite, a2 as parseEvalSuite } from './studio-judge-BFF0TsT2.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 EvalExecution, j as EvalExecutionStatus, k as EvalExpectation, l as EvalGradeInput, m as EvalHandlerRef, n as EvalInterrupt, o as EvalIssue, p as EvalJson, q as EvalJudge, r as EvalJudgeIdentity, s as EvalJudgeIdentitySchema, t as EvalJudgeOptions, u as EvalJudgeUsage, v as EvalJudgeUsageSchema, w as EvalManifest, x as EvalManifestSchema, y as EvalObservation, z as EvalObservationSchema, A as EvalOutputExpectation, B as EvalPhase, D as EvalProgress, F as EvalProgressSchema, G as EvalRemoteRunRequest, H as EvalRemoteRunRequestSchema, I as EvalResponder, J as EvalResumeResponseSchema, K as EvalRunOptions, L as EvalRunResult, M as EvalRunResultSchema, N as EvalSetupContext, O as EvalStatus, P as EvalStep, Q as EvalStepResult, R as EvalStepResultSchema, S as EvalSuite, T as EvalSuiteSchema, U as EvalVerdict, V as EvalVerdictSchema, W as EvalWireEvent, X as EvalWireEventSchema, Y as EvaluationMetadataSchema, Z as StudioEvalJudgeOptions, _ as StudioEvalJudgeRequestSchema, $ as StudioEvalJudgeResponseSchema, a0 as StudioEvalStartRequestSchema, a1 as StudioEvaluationDetail, a2 as StudioEvaluationDetailSchema, a3 as StudioEvaluationHistorySchema, a4 as StudioEvaluationResultsSchema, a5 as StudioEvaluationStartRequest, a6 as StudioEvaluationStartRequestSchema, a7 as StudioEvaluationSummary, a8 as StudioEvaluationSummarySchema, a9 as createStudioEvalJudge, aa as defineSuite, ab as parseEvalSuite } from './studio-judge-CG86eozt.js';
2
2
  import { z } from 'zod';
3
3
  import '@kortyx/providers';
4
4
  import '@kortyx/core/errors';
@@ -174,6 +174,7 @@ type EvalCosts = z.infer<typeof EvalCostsSchema>;
174
174
  type EvalCostAmount = z.infer<typeof EvalCostAmountSchema>;
175
175
  declare const StudioEvalRunSummarySchema: z.ZodObject<{
176
176
  id: z.ZodUUID;
177
+ evaluationId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
177
178
  targetId: z.ZodString;
178
179
  targetName: z.ZodString;
179
180
  environment: z.ZodString;
@@ -237,10 +238,14 @@ declare const StudioEvalRunSummarySchema: z.ZodObject<{
237
238
  cancelled: z.ZodNumber;
238
239
  }, z.core.$strip>>>;
239
240
  suiteName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
241
+ totalAttempts: z.ZodOptional<z.ZodNumber>;
242
+ completedAttempts: z.ZodOptional<z.ZodNumber>;
243
+ phase: z.ZodOptional<z.ZodString>;
240
244
  }, z.core.$strip>;
241
245
  declare const StudioEvalHistorySchema: z.ZodObject<{
242
246
  runs: z.ZodArray<z.ZodObject<{
243
247
  id: z.ZodUUID;
248
+ evaluationId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
244
249
  targetId: z.ZodString;
245
250
  targetName: z.ZodString;
246
251
  environment: z.ZodString;
@@ -304,11 +309,15 @@ declare const StudioEvalHistorySchema: z.ZodObject<{
304
309
  cancelled: z.ZodNumber;
305
310
  }, z.core.$strip>>>;
306
311
  suiteName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
312
+ totalAttempts: z.ZodOptional<z.ZodNumber>;
313
+ completedAttempts: z.ZodOptional<z.ZodNumber>;
314
+ phase: z.ZodOptional<z.ZodString>;
307
315
  }, z.core.$strip>>;
308
316
  }, z.core.$strip>;
309
317
  declare const StudioEvalDetailSchema: z.ZodObject<{
310
318
  run: z.ZodObject<{
311
319
  id: z.ZodUUID;
320
+ evaluationId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
312
321
  targetId: z.ZodString;
313
322
  targetName: z.ZodString;
314
323
  environment: z.ZodString;
@@ -372,6 +381,9 @@ declare const StudioEvalDetailSchema: z.ZodObject<{
372
381
  cancelled: z.ZodNumber;
373
382
  }, z.core.$strip>>>;
374
383
  suiteName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
384
+ totalAttempts: z.ZodOptional<z.ZodNumber>;
385
+ completedAttempts: z.ZodOptional<z.ZodNumber>;
386
+ phase: z.ZodOptional<z.ZodString>;
375
387
  caseCosts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
376
388
  workflow: z.ZodObject<{
377
389
  amount: z.ZodNullable<z.ZodNumber>;
package/dist/evals.js CHANGED
@@ -35,6 +35,7 @@ __export(evals_exports, {
35
35
  EvalSuiteSchema: () => EvalSuiteSchema,
36
36
  EvalVerdictSchema: () => EvalVerdictSchema,
37
37
  EvalWireEventSchema: () => EvalWireEventSchema,
38
+ EvaluationMetadataSchema: () => EvaluationMetadataSchema,
38
39
  StudioEvalDetailSchema: () => StudioEvalDetailSchema,
39
40
  StudioEvalHistorySchema: () => StudioEvalHistorySchema,
40
41
  StudioEvalJudgeRequestSchema: () => StudioEvalJudgeRequestSchema,
@@ -42,6 +43,11 @@ __export(evals_exports, {
42
43
  StudioEvalRunSummarySchema: () => StudioEvalRunSummarySchema,
43
44
  StudioEvalStartRequestSchema: () => StudioEvalStartRequestSchema,
44
45
  StudioEvalTargetsResponseSchema: () => StudioEvalTargetsResponseSchema,
46
+ StudioEvaluationDetailSchema: () => StudioEvaluationDetailSchema,
47
+ StudioEvaluationHistorySchema: () => StudioEvaluationHistorySchema,
48
+ StudioEvaluationResultsSchema: () => StudioEvaluationResultsSchema,
49
+ StudioEvaluationStartRequestSchema: () => StudioEvaluationStartRequestSchema,
50
+ StudioEvaluationSummarySchema: () => StudioEvaluationSummarySchema,
45
51
  createStudioEvalJudge: () => createStudioEvalJudge,
46
52
  defineSuite: () => defineSuite,
47
53
  parseEvalSuite: () => parseEvalSuite
@@ -341,6 +347,9 @@ function defineSuite(suite) {
341
347
  return suite;
342
348
  }
343
349
 
350
+ // src/evals/evaluation-contracts.ts
351
+ var import_zod3 = require("zod");
352
+
344
353
  // src/evals/studio-contracts.ts
345
354
  var import_zod2 = require("zod");
346
355
  var StudioEvalTargetsResponseSchema = import_zod2.z.object({
@@ -385,6 +394,7 @@ var EvalCostsSchema = import_zod2.z.object({
385
394
  });
386
395
  var StudioEvalRunSummarySchema = import_zod2.z.object({
387
396
  id: import_zod2.z.uuid(),
397
+ evaluationId: import_zod2.z.uuid().nullable().optional(),
388
398
  targetId: import_zod2.z.string(),
389
399
  targetName: import_zod2.z.string(),
390
400
  environment: import_zod2.z.string(),
@@ -410,7 +420,10 @@ var StudioEvalRunSummarySchema = import_zod2.z.object({
410
420
  error: import_zod2.z.number(),
411
421
  cancelled: import_zod2.z.number()
412
422
  }).nullable().optional(),
413
- suiteName: import_zod2.z.string().nullable().optional()
423
+ suiteName: import_zod2.z.string().nullable().optional(),
424
+ totalAttempts: import_zod2.z.number().int().nonnegative().optional(),
425
+ completedAttempts: import_zod2.z.number().int().nonnegative().optional(),
426
+ phase: import_zod2.z.string().optional()
414
427
  });
415
428
  var StudioEvalHistorySchema = import_zod2.z.object({
416
429
  runs: import_zod2.z.array(StudioEvalRunSummarySchema)
@@ -431,6 +444,77 @@ var StudioEvalDetailSchema = import_zod2.z.object({
431
444
  })
432
445
  });
433
446
 
447
+ // src/evals/evaluation-contracts.ts
448
+ var EvaluationMetadataSchema = import_zod3.z.object({
449
+ source: import_zod3.z.enum(["manual", "deployment", "schedule", "ci"]).default("manual"),
450
+ commit: import_zod3.z.string().trim().min(1).max(100).optional(),
451
+ deploymentUrl: import_zod3.z.url().refine((value) => {
452
+ try {
453
+ const url = new URL(value);
454
+ return ["https:", "http:"].includes(url.protocol) && !url.username && !url.password;
455
+ } catch {
456
+ return false;
457
+ }
458
+ }, "Expected an HTTP(S) URL without credentials").optional()
459
+ }).strict();
460
+ var StudioEvaluationStartRequestSchema = import_zod3.z.object({
461
+ targetId: import_zod3.z.string().trim().min(1),
462
+ name: import_zod3.z.string().trim().min(1).max(200).optional(),
463
+ selection: import_zod3.z.enum(["all", "selected"]),
464
+ suites: import_zod3.z.array(
465
+ import_zod3.z.object({
466
+ suiteId: import_zod3.z.string().min(1),
467
+ suiteRevision: import_zod3.z.string().regex(/^[a-f0-9]{64}$/),
468
+ caseIds: import_zod3.z.array(import_zod3.z.string().min(1)).min(1).max(100).optional()
469
+ }).strict()
470
+ ).min(1).max(100),
471
+ judge: import_zod3.z.enum(["studio", "app"]).default("studio"),
472
+ repetitions: import_zod3.z.number().int().min(1).max(20).default(1),
473
+ concurrency: import_zod3.z.number().int().min(1).max(4).default(1),
474
+ metadata: EvaluationMetadataSchema.default({ source: "manual" }),
475
+ idempotencyKey: import_zod3.z.string().trim().min(1).max(200).optional()
476
+ }).strict();
477
+ var StudioEvaluationSummarySchema = import_zod3.z.object({
478
+ id: import_zod3.z.uuid(),
479
+ name: import_zod3.z.string(),
480
+ targetId: import_zod3.z.string(),
481
+ targetName: import_zod3.z.string(),
482
+ environment: import_zod3.z.string(),
483
+ selection: import_zod3.z.enum(["all", "selected"]),
484
+ metadata: EvaluationMetadataSchema,
485
+ judge: EvalJudgeIdentitySchema.optional(),
486
+ status: StudioEvalRunSummarySchema.shape.status,
487
+ createdAt: import_zod3.z.string(),
488
+ startedAt: import_zod3.z.string().nullable(),
489
+ endedAt: import_zod3.z.string().nullable(),
490
+ cancelRequestedAt: import_zod3.z.string().nullable(),
491
+ suiteCount: import_zod3.z.number().int().nonnegative(),
492
+ completedSuites: import_zod3.z.number().int().nonnegative(),
493
+ totalAttempts: import_zod3.z.number().int().nonnegative(),
494
+ completedAttempts: import_zod3.z.number().int().nonnegative(),
495
+ counts: import_zod3.z.object({
496
+ passed: import_zod3.z.number(),
497
+ failed: import_zod3.z.number(),
498
+ error: import_zod3.z.number(),
499
+ cancelled: import_zod3.z.number()
500
+ }),
501
+ costs: EvalCostsSchema.optional(),
502
+ legacy: import_zod3.z.boolean().optional()
503
+ });
504
+ var StudioEvaluationHistorySchema = import_zod3.z.object({
505
+ runs: import_zod3.z.array(StudioEvaluationSummarySchema)
506
+ });
507
+ var StudioEvaluationDetailSchema = import_zod3.z.object({
508
+ run: StudioEvaluationSummarySchema.extend({
509
+ suites: import_zod3.z.array(StudioEvalRunSummarySchema)
510
+ })
511
+ });
512
+ var StudioEvaluationResultsSchema = import_zod3.z.object({
513
+ run: StudioEvaluationSummarySchema.extend({
514
+ suites: import_zod3.z.array(StudioEvalDetailSchema.shape.run)
515
+ })
516
+ });
517
+
434
518
  // src/evals/studio-judge.ts
435
519
  async function readJson(response, signal) {
436
520
  if (!response.ok || !response.body) {
@@ -550,6 +634,7 @@ async function createStudioEvalJudge(options) {
550
634
  EvalSuiteSchema,
551
635
  EvalVerdictSchema,
552
636
  EvalWireEventSchema,
637
+ EvaluationMetadataSchema,
553
638
  StudioEvalDetailSchema,
554
639
  StudioEvalHistorySchema,
555
640
  StudioEvalJudgeRequestSchema,
@@ -557,6 +642,11 @@ async function createStudioEvalJudge(options) {
557
642
  StudioEvalRunSummarySchema,
558
643
  StudioEvalStartRequestSchema,
559
644
  StudioEvalTargetsResponseSchema,
645
+ StudioEvaluationDetailSchema,
646
+ StudioEvaluationHistorySchema,
647
+ StudioEvaluationResultsSchema,
648
+ StudioEvaluationStartRequestSchema,
649
+ StudioEvaluationSummarySchema,
560
650
  createStudioEvalJudge,
561
651
  defineSuite,
562
652
  parseEvalSuite
package/dist/evals.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/evals.ts","../src/evals/contracts.ts","../src/evals/define-suite.ts","../src/evals/studio-contracts.ts","../src/evals/studio-judge.ts"],"sourcesContent":["export * from \"./evals/contracts\";\nexport { defineSuite } from \"./evals/define-suite\";\nexport * from \"./evals/studio-contracts\";\nexport { createStudioEvalJudge } from \"./evals/studio-judge\";\nexport type * from \"./evals/types\";\n","import { z } from \"zod\";\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 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 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 type { EvalCase, EvalJson, EvalSuite } from \"./types\";\n\ntype DefinedSuite<Params> = Omit<EvalSuite<Params>, \"cases\"> & {\n cases: readonly (Omit<EvalCase<Params>, \"params\"> &\n (undefined extends Params\n ? { params?: Exclude<Params, undefined> }\n : { params: Params }))[];\n};\n\n/** Author a suite with typed case parameters. Runtime validation belongs to createEvals. */\nexport function defineSuite<Params = EvalJson | undefined>(\n suite: DefinedSuite<Params>,\n): DefinedSuite<Params> {\n return suite;\n}\n","import { z } from \"zod\";\nimport {\n EvalJudgeIdentitySchema,\n 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 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});\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 {\n EvalConfigurationError,\n EvalJudgeIdentitySchema,\n StudioEvalJudgeRequestSchema,\n StudioEvalJudgeResponseSchema,\n} from \"./contracts\";\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: input.observation,\n reference: input.reference,\n conversation: input.conversation,\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","signal"]}
1
+ {"version":3,"sources":["../src/evals.ts","../src/evals/contracts.ts","../src/evals/define-suite.ts","../src/evals/evaluation-contracts.ts","../src/evals/studio-contracts.ts","../src/evals/studio-judge.ts"],"sourcesContent":["export * from \"./evals/contracts\";\nexport { defineSuite } from \"./evals/define-suite\";\nexport * from \"./evals/evaluation-contracts\";\nexport * from \"./evals/studio-contracts\";\nexport { createStudioEvalJudge } from \"./evals/studio-judge\";\nexport type * from \"./evals/types\";\n","import { z } from \"zod\";\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 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 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 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 {\n EvalConfigurationError,\n EvalJudgeIdentitySchema,\n StudioEvalJudgeRequestSchema,\n StudioEvalJudgeResponseSchema,\n} from \"./contracts\";\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: input.observation,\n reference: input.reference,\n conversation: input.conversation,\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","signal"]}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { a3 as ChatLifecyclePhase, a4 as ChatLifecycleHookError, a5 as Agent, a6 as ChatResponseFinalized, p as EvalJson, C as CreateEvalsOptions, S as EvalSuite, K as EvalRunOptions, L as EvalRunResult, t as EvalJudgeOptions, q as EvalJudge, r as EvalJudgeIdentity } from './studio-judge-BFF0TsT2.js';
2
- export { a7 as AgentProcessOptions, a8 as AgentProjectTopologyOptions, a9 as ChatResponseStatus, aa 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 EvalExecution, j as EvalExecutionStatus, k as EvalExpectation, l as EvalGradeInput, m as EvalHandlerRef, n as EvalInterrupt, o as EvalIssue, s as EvalJudgeIdentitySchema, u as EvalJudgeUsage, v as EvalJudgeUsageSchema, w as EvalManifest, x as EvalManifestSchema, y as EvalObservation, A as EvalOutputExpectation, B as EvalPhase, D as EvalProgress, F as EvalProgressSchema, G as EvalRemoteRunRequest, H as EvalRemoteRunRequestSchema, I as EvalResponder, M as EvalRunResultSchema, N as EvalSetupContext, O as EvalStatus, P as EvalStep, Q as EvalStepResult, T as EvalSuiteSchema, U as EvalVerdict, W as EvalWireEvent, X as EvalWireEventSchema, ab as ExecutableWorkflow, ac as ExecuteOptions, ad as ExecutionInfo, ae as ExecutionInterrupt, af as ExecutionRequestError, ag as ExecutionResult, ah as InterruptScope, ai as ListInterruptsOptions, aj as PendingInterrupt, ak as ResumableInterrupt, al as ResumeHandle, am as ResumeOptions, an as ResumeResponse, Y as StudioEvalJudgeOptions, Z as StudioEvalJudgeRequestSchema, _ as StudioEvalJudgeResponseSchema, $ as StudioEvalStartRequestSchema, ao as createAgent, a0 as createStudioEvalJudge, a1 as defineSuite, a2 as parseEvalSuite, ap as projectWorkflowTopology } from './studio-judge-BFF0TsT2.js';
1
+ import { ac as ChatLifecyclePhase, ad as ChatLifecycleHookError, ae as Agent, af as ChatResponseFinalized, p as EvalJson, C as CreateEvalsOptions, S as EvalSuite, K as EvalRunOptions, L as EvalRunResult, t as EvalJudgeOptions, q as EvalJudge, r as EvalJudgeIdentity } from './studio-judge-CG86eozt.js';
2
+ export { ag as AgentProcessOptions, ah as AgentProjectTopologyOptions, ai as ChatResponseStatus, aj 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 EvalExecution, j as EvalExecutionStatus, k as EvalExpectation, l as EvalGradeInput, m as EvalHandlerRef, n as EvalInterrupt, o as EvalIssue, s as EvalJudgeIdentitySchema, u as EvalJudgeUsage, v as EvalJudgeUsageSchema, w as EvalManifest, x as EvalManifestSchema, y as EvalObservation, A as EvalOutputExpectation, B as EvalPhase, D as EvalProgress, F as EvalProgressSchema, G as EvalRemoteRunRequest, H as EvalRemoteRunRequestSchema, I as EvalResponder, M as EvalRunResultSchema, N as EvalSetupContext, O as EvalStatus, P as EvalStep, Q as EvalStepResult, T as EvalSuiteSchema, U as EvalVerdict, W as EvalWireEvent, X as EvalWireEventSchema, Y as EvaluationMetadataSchema, ak as ExecutableWorkflow, al as ExecuteOptions, am as ExecutionInfo, an as ExecutionInterrupt, ao as ExecutionRequestError, ap as ExecutionResult, aq as InterruptScope, ar as ListInterruptsOptions, as as PendingInterrupt, at as ResumableInterrupt, au as ResumeHandle, av as ResumeOptions, aw as ResumeResponse, Z as StudioEvalJudgeOptions, _ as StudioEvalJudgeRequestSchema, $ as StudioEvalJudgeResponseSchema, a0 as StudioEvalStartRequestSchema, a1 as StudioEvaluationDetail, a2 as StudioEvaluationDetailSchema, a3 as StudioEvaluationHistorySchema, a4 as StudioEvaluationResultsSchema, a5 as StudioEvaluationStartRequest, a6 as StudioEvaluationStartRequestSchema, a7 as StudioEvaluationSummary, a8 as StudioEvaluationSummarySchema, ax as createAgent, a9 as createStudioEvalJudge, aa as defineSuite, ab as parseEvalSuite, ay as projectWorkflowTopology } from './studio-judge-CG86eozt.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';