@runtypelabs/sdk 5.7.0 → 5.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -708,6 +708,8 @@ interface paths {
708
708
  profileTemplate?: string;
709
709
  };
710
710
  model?: string;
711
+ /** @enum {string} */
712
+ piiRedaction?: "default" | "off" | "redact";
711
713
  presencePenalty?: number;
712
714
  reasoning?: boolean | {
713
715
  budgetTokens?: number;
@@ -732,7 +734,6 @@ interface paths {
732
734
  persistence?: "ephemeral" | "conversation" | "named";
733
735
  /** @enum {string} */
734
736
  provider?: "runtype-sandbox" | "daytona";
735
- requireApprovalForBash?: boolean;
736
737
  /** @enum {string} */
737
738
  sleepAfter?: "5m" | "15m" | "30m" | "1h";
738
739
  /** @enum {string} */
@@ -1110,6 +1111,8 @@ interface paths {
1110
1111
  profileTemplate?: string;
1111
1112
  };
1112
1113
  model?: string;
1114
+ /** @enum {string} */
1115
+ piiRedaction?: "default" | "off" | "redact";
1113
1116
  presencePenalty?: number;
1114
1117
  reasoning?: boolean | {
1115
1118
  budgetTokens?: number;
@@ -1134,7 +1137,6 @@ interface paths {
1134
1137
  persistence?: "ephemeral" | "conversation" | "named";
1135
1138
  /** @enum {string} */
1136
1139
  provider?: "runtype-sandbox" | "daytona";
1137
- requireApprovalForBash?: boolean;
1138
1140
  /** @enum {string} */
1139
1141
  sleepAfter?: "5m" | "15m" | "30m" | "1h";
1140
1142
  /** @enum {string} */
@@ -1784,6 +1786,8 @@ interface paths {
1784
1786
  profileTemplate?: string;
1785
1787
  };
1786
1788
  model?: string;
1789
+ /** @enum {string} */
1790
+ piiRedaction?: "default" | "off" | "redact";
1787
1791
  presencePenalty?: number;
1788
1792
  reasoning?: boolean | {
1789
1793
  budgetTokens?: number;
@@ -1808,7 +1812,6 @@ interface paths {
1808
1812
  persistence?: "ephemeral" | "conversation" | "named";
1809
1813
  /** @enum {string} */
1810
1814
  provider?: "runtype-sandbox" | "daytona";
1811
- requireApprovalForBash?: boolean;
1812
1815
  /** @enum {string} */
1813
1816
  sleepAfter?: "5m" | "15m" | "30m" | "1h";
1814
1817
  /** @enum {string} */
@@ -2472,7 +2475,7 @@ interface paths {
2472
2475
  put?: never;
2473
2476
  /**
2474
2477
  * Execute agent
2475
- * @description Execute an agent (Quick Agent mode) with a message array. Streams a Server-Sent Events response when streamResponse is true (default); otherwise returns a JSON result.
2478
+ * @description Execute an agent (Quick Agent mode) with a message array. Streams a Server-Sent Events response when streamResponse is true (default); otherwise returns a JSON result. Send the RFC 7240 `Prefer: respond-async` header to run a Claude Managed durable-lane turn (a saved agent invoked with a conversationId) fire-and-forget: the response is a 202 handle and the turn runs headlessly (reconnect via the executions events stream or poll the runs API).
2476
2479
  */
2477
2480
  post: {
2478
2481
  parameters: {
@@ -2500,6 +2503,15 @@ interface paths {
2500
2503
  "text/event-stream": unknown;
2501
2504
  };
2502
2505
  };
2506
+ /** @description Fire-and-forget handle for a Claude Managed durable-lane turn accepted via `Prefer: respond-async`. The turn runs headlessly; reconnect via the executions events stream or poll the runs API. Carries a `Preference-Applied: respond-async` header. */
2507
+ 202: {
2508
+ headers: {
2509
+ [name: string]: unknown;
2510
+ };
2511
+ content: {
2512
+ "application/json": components["schemas"]["AsyncDispatchHandle"];
2513
+ };
2514
+ };
2503
2515
  /** @description Invalid agent ID or request body */
2504
2516
  400: {
2505
2517
  headers: {
@@ -2785,14 +2797,14 @@ interface paths {
2785
2797
  };
2786
2798
  /**
2787
2799
  * Stream execution events
2788
- * @description Reconnect to a durable Claude Managed agent turn: replay-and-tail its Server-Sent Events. Resolves the per-conversation session owner by (agentId, conversationId), replays buffered events with seq greater than `after`, then live-tails if the turn is still running. Each event carries an SSE `id:` line with its durable seq; reconnect after a disconnect (tab reload, sleep, stream timeout) by passing the last seen id as `after` to resume without missing or duplicating events. The vocabulary follows the same negotiation as the execution stream (`?events=`, `X-Persona-Version`, then the default-sse-event-format flag).
2800
+ * @description Reconnect to a durable Claude Managed agent turn: replay-and-tail its Server-Sent Events. Resolves the per-conversation session owner by (agentId, conversationId), replays buffered events strictly past the `after` cursor, then live-tails if the turn is still running. Each event carries an SSE `id:` line a durable row seq, or (unified vocabulary) a composite `<seq>.<subIndex>` when one durable row translates to multiple events. Reconnect after a disconnect (tab reload, sleep, stream timeout) by passing the last seen id verbatim as `after` to resume without missing or duplicating events. The vocabulary follows the same negotiation as the execution stream (`?events=`, `X-Persona-Version`, then the default-sse-event-format flag).
2789
2801
  */
2790
2802
  get: {
2791
2803
  parameters: {
2792
2804
  query: {
2793
2805
  /** @description The conversation key that, with the agent id, resolves the durable session owner. */
2794
2806
  conversationId: string;
2795
- /** @description Replay only events with seq greater than this value (the last seen SSE id). Defaults to 0. */
2807
+ /** @description Replay only events strictly past this cursor (the last seen SSE id, passed verbatim): a plain row seq, or the composite `<seq>.<subIndex>` a unified-vocabulary stream stamps on intermediate sub-frames. Defaults to 0 (replay the whole turn). */
2796
2808
  after?: string;
2797
2809
  };
2798
2810
  header?: never;
@@ -6796,6 +6808,11 @@ interface paths {
6796
6808
  untrustedContentHint?: boolean;
6797
6809
  }[];
6798
6810
  clientToolsFingerprint?: string;
6811
+ /** @description Customer-native auth proof for the Identity Exchange. When present and the surface has a matching integration, the verified tenant/end-user replace any body-asserted tenant/endUser (which are never trusted for web-embedded callers). Ignored until the Identity Exchange admission upgrade ships. */
6812
+ identityProof?: {
6813
+ provider: string;
6814
+ token: string;
6815
+ };
6799
6816
  inputs?: {
6800
6817
  [key: string]: unknown;
6801
6818
  };
@@ -8692,7 +8709,7 @@ interface paths {
8692
8709
  put?: never;
8693
8710
  /**
8694
8711
  * Execute a flow or agent
8695
- * @description Main dispatch endpoint for flow and agent execution with record resolution. Supports streaming via SSE or synchronous JSON responses.
8712
+ * @description Main dispatch endpoint for flow and agent execution with record resolution. Supports streaming via SSE or synchronous JSON responses. Send the RFC 7240 `Prefer: respond-async` header to run a Claude Managed durable-lane turn (a saved agent dispatched with a conversationId) fire-and-forget: the response is a 202 handle and the turn runs headlessly (reconnect via the executions events stream or poll the runs API).
8696
8713
  */
8697
8714
  post: {
8698
8715
  parameters: {
@@ -8718,6 +8735,15 @@ interface paths {
8718
8735
  "text/event-stream": unknown;
8719
8736
  };
8720
8737
  };
8738
+ /** @description Fire-and-forget handle for a Claude Managed durable-lane turn accepted via `Prefer: respond-async`. The turn runs headlessly; reconnect via the executions events stream or poll the runs API. Carries a `Preference-Applied: respond-async` header. */
8739
+ 202: {
8740
+ headers: {
8741
+ [name: string]: unknown;
8742
+ };
8743
+ content: {
8744
+ "application/json": components["schemas"]["AsyncDispatchHandle"];
8745
+ };
8746
+ };
8721
8747
  /** @description Validation error */
8722
8748
  400: {
8723
8749
  headers: {
@@ -9278,7 +9304,7 @@ interface paths {
9278
9304
  patch?: never;
9279
9305
  trace?: never;
9280
9306
  };
9281
- "/v1/eval/analyze-steps": {
9307
+ "/v1/end-user-integrations/{provider}/connect": {
9282
9308
  parameters: {
9283
9309
  query?: never;
9284
9310
  header?: never;
@@ -9288,234 +9314,50 @@ interface paths {
9288
9314
  get?: never;
9289
9315
  put?: never;
9290
9316
  /**
9291
- * Analyze step results
9292
- * @description Analyze step results for keyword/phrase occurrences across evals.
9317
+ * Begin end-user OAuth connection
9318
+ * @description Verifies the end user’s identity proof, projects a durable end-user identity, and returns the third-party authorize URL with a single-use state. Builder-authenticated; the end-user identity comes only from the verified proof.
9293
9319
  */
9294
9320
  post: {
9295
9321
  parameters: {
9296
9322
  query?: never;
9297
9323
  header?: never;
9298
- path?: never;
9299
- cookie?: never;
9300
- };
9301
- requestBody?: {
9302
- content: {
9303
- "application/json": {
9304
- caseSensitive?: boolean;
9305
- evalGroupId: string;
9306
- searchTerms: string[];
9307
- stepIds: string[];
9308
- };
9309
- };
9310
- };
9311
- responses: {
9312
- /** @description Analysis returned */
9313
- 200: {
9314
- headers: {
9315
- [name: string]: unknown;
9316
- };
9317
- content: {
9318
- "application/json": {
9319
- evalGroupId: string;
9320
- results: {
9321
- batchExecutionId: string;
9322
- evalConfig?: unknown;
9323
- evalName?: string;
9324
- termAnalysis: {
9325
- occurrenceRate: number;
9326
- stepsContainingTerm: number;
9327
- term: string;
9328
- totalOccurrences: number;
9329
- }[];
9330
- totalStepsAnalyzed: number;
9331
- }[];
9332
- searchTerms: string[];
9333
- stepIds: string[];
9334
- };
9335
- };
9336
- };
9337
- /** @description Invalid request */
9338
- 400: {
9339
- headers: {
9340
- [name: string]: unknown;
9341
- };
9342
- content: {
9343
- "application/json": components["schemas"]["Error"];
9344
- };
9345
- };
9346
- /** @description Unauthorized */
9347
- 401: {
9348
- headers: {
9349
- [name: string]: unknown;
9350
- };
9351
- content: {
9352
- "application/json": components["schemas"]["Error"];
9353
- };
9354
- };
9355
- /** @description Forbidden */
9356
- 403: {
9357
- headers: {
9358
- [name: string]: unknown;
9359
- };
9360
- content: {
9361
- "application/json": components["schemas"]["Error"];
9362
- };
9363
- };
9364
- /** @description Not found */
9365
- 404: {
9366
- headers: {
9367
- [name: string]: unknown;
9368
- };
9369
- content: {
9370
- "application/json": components["schemas"]["Error"];
9371
- };
9372
- };
9373
- /** @description Internal server error */
9374
- 500: {
9375
- headers: {
9376
- [name: string]: unknown;
9377
- };
9378
- content: {
9379
- "application/json": components["schemas"]["Error"];
9380
- };
9381
- };
9382
- };
9383
- };
9384
- delete?: never;
9385
- options?: never;
9386
- head?: never;
9387
- patch?: never;
9388
- trace?: never;
9389
- };
9390
- "/v1/eval/batches": {
9391
- parameters: {
9392
- query?: never;
9393
- header?: never;
9394
- path?: never;
9395
- cookie?: never;
9396
- };
9397
- /**
9398
- * List eval batches
9399
- * @description List all eval batches for the current user with optional filtering and pagination.
9400
- */
9401
- get: {
9402
- parameters: {
9403
- query?: {
9404
- /** @description Number of results (default 50, max 100) */
9405
- limit?: string;
9406
- /** @description Pagination offset */
9407
- offset?: string;
9408
- /** @description Filter by status (queued|processing|completed|failed) */
9409
- status?: string;
9410
- };
9411
- header?: never;
9412
- path?: never;
9413
- cookie?: never;
9414
- };
9415
- requestBody?: never;
9416
- responses: {
9417
- /** @description Eval batches returned */
9418
- 200: {
9419
- headers: {
9420
- [name: string]: unknown;
9421
- };
9422
- content: {
9423
- "application/json": {
9424
- batches: {
9425
- [key: string]: unknown;
9426
- }[];
9427
- count: number;
9428
- limit: number;
9429
- offset: number;
9430
- };
9431
- };
9432
- };
9433
- /** @description Unauthorized */
9434
- 401: {
9435
- headers: {
9436
- [name: string]: unknown;
9437
- };
9438
- content: {
9439
- "application/json": components["schemas"]["Error"];
9440
- };
9441
- };
9442
- /** @description Internal server error */
9443
- 500: {
9444
- headers: {
9445
- [name: string]: unknown;
9446
- };
9447
- content: {
9448
- "application/json": components["schemas"]["Error"];
9449
- };
9324
+ path: {
9325
+ /** @description OAuth connector provider slug, e.g. `github`. */
9326
+ provider: string;
9450
9327
  };
9451
- };
9452
- };
9453
- put?: never;
9454
- post?: never;
9455
- delete?: never;
9456
- options?: never;
9457
- head?: never;
9458
- patch?: never;
9459
- trace?: never;
9460
- };
9461
- "/v1/eval/compare": {
9462
- parameters: {
9463
- query?: never;
9464
- header?: never;
9465
- path?: never;
9466
- cookie?: never;
9467
- };
9468
- get?: never;
9469
- put?: never;
9470
- /**
9471
- * Compare evals
9472
- * @description Compare aggregate metrics across eval batches in a group.
9473
- */
9474
- post: {
9475
- parameters: {
9476
- query?: never;
9477
- header?: never;
9478
- path?: never;
9479
9328
  cookie?: never;
9480
9329
  };
9481
9330
  requestBody?: {
9482
9331
  content: {
9483
9332
  "application/json": {
9484
- evalGroupId: string;
9485
- stepIds?: string[];
9333
+ /** @description The end user's customer-native Identity-Exchange proof (a JWT). Verified server-side against the builder’s configured identity integrations; the verified subject becomes the end-user identity. Never a body-asserted id. */
9334
+ identityProof: string;
9335
+ /**
9336
+ * Format: uri
9337
+ * @description Where to redirect the end user after the OAuth callback completes. Must be a safe http(s)/app-scheme URL (open-redirect schemes are rejected).
9338
+ */
9339
+ redirectAfter?: string;
9486
9340
  };
9487
9341
  };
9488
9342
  };
9489
9343
  responses: {
9490
- /** @description Comparison returned */
9344
+ /** @description Authorize URL issued */
9491
9345
  200: {
9492
9346
  headers: {
9493
9347
  [name: string]: unknown;
9494
9348
  };
9495
9349
  content: {
9496
9350
  "application/json": {
9497
- evalGroupId: string;
9498
- evals: {
9499
- batchExecutionId: string;
9500
- evalConfig?: unknown;
9501
- evalName?: string;
9502
- metrics: {
9503
- avgCostPerRecord: number;
9504
- avgDurationPerRecord: number;
9505
- failedSteps: number;
9506
- successRate: number;
9507
- successfulSteps: number;
9508
- totalCompletionTokens: number;
9509
- totalCost: number;
9510
- totalDurationMs: number;
9511
- totalPromptTokens: number;
9512
- totalSteps: number;
9513
- };
9514
- }[];
9351
+ /** @description Redirect the end user here to authorize the third-party account. */
9352
+ authorizeUrl: string;
9353
+ /** @description The durable end-user id (eu_*) the token will scope to. */
9354
+ endUserId: string;
9355
+ /** @description Opaque single-use CSRF token (bound in KV). */
9356
+ state: string;
9515
9357
  };
9516
9358
  };
9517
9359
  };
9518
- /** @description Invalid request */
9360
+ /** @description Invalid request body or redirect */
9519
9361
  400: {
9520
9362
  headers: {
9521
9363
  [name: string]: unknown;
@@ -9524,7 +9366,7 @@ interface paths {
9524
9366
  "application/json": components["schemas"]["Error"];
9525
9367
  };
9526
9368
  };
9527
- /** @description Unauthorized */
9369
+ /** @description Unauthorized, or identity proof verification failed */
9528
9370
  401: {
9529
9371
  headers: {
9530
9372
  [name: string]: unknown;
@@ -9533,7 +9375,7 @@ interface paths {
9533
9375
  "application/json": components["schemas"]["Error"];
9534
9376
  };
9535
9377
  };
9536
- /** @description Forbidden */
9378
+ /** @description Forbidden, or the proof did not reach verified end-user assurance */
9537
9379
  403: {
9538
9380
  headers: {
9539
9381
  [name: string]: unknown;
@@ -9542,7 +9384,7 @@ interface paths {
9542
9384
  "application/json": components["schemas"]["Error"];
9543
9385
  };
9544
9386
  };
9545
- /** @description Not found */
9387
+ /** @description Unknown connector provider */
9546
9388
  404: {
9547
9389
  headers: {
9548
9390
  [name: string]: unknown;
@@ -9551,8 +9393,8 @@ interface paths {
9551
9393
  "application/json": components["schemas"]["Error"];
9552
9394
  };
9553
9395
  };
9554
- /** @description Internal server error */
9555
- 500: {
9396
+ /** @description Connector is not configured on this deployment */
9397
+ 501: {
9556
9398
  headers: {
9557
9399
  [name: string]: unknown;
9558
9400
  };
@@ -9568,7 +9410,7 @@ interface paths {
9568
9410
  patch?: never;
9569
9411
  trace?: never;
9570
9412
  };
9571
- "/v1/eval/compare-record": {
9413
+ "/v1/eval/analyze-steps": {
9572
9414
  parameters: {
9573
9415
  query?: never;
9574
9416
  header?: never;
@@ -9578,8 +9420,8 @@ interface paths {
9578
9420
  get?: never;
9579
9421
  put?: never;
9580
9422
  /**
9581
- * Compare record across evals
9582
- * @description Compare results for a specific record across eval batches in a group.
9423
+ * Analyze step results
9424
+ * @description Analyze step results for keyword/phrase occurrences across evals.
9583
9425
  */
9584
9426
  post: {
9585
9427
  parameters: {
@@ -9591,14 +9433,15 @@ interface paths {
9591
9433
  requestBody?: {
9592
9434
  content: {
9593
9435
  "application/json": {
9436
+ caseSensitive?: boolean;
9594
9437
  evalGroupId: string;
9595
- recordId: string;
9596
- stepIds?: string[];
9438
+ searchTerms: string[];
9439
+ stepIds: string[];
9597
9440
  };
9598
9441
  };
9599
9442
  };
9600
9443
  responses: {
9601
- /** @description Record comparison returned */
9444
+ /** @description Analysis returned */
9602
9445
  200: {
9603
9446
  headers: {
9604
9447
  [name: string]: unknown;
@@ -9606,27 +9449,318 @@ interface paths {
9606
9449
  content: {
9607
9450
  "application/json": {
9608
9451
  evalGroupId: string;
9609
- evals: {
9452
+ results: {
9610
9453
  batchExecutionId: string;
9611
9454
  evalConfig?: unknown;
9612
9455
  evalName?: string;
9613
- stepResults: {
9614
- completionTokens: number | null;
9615
- durationMs: number | null;
9616
- error?: string;
9617
- executedAt: string;
9618
- modelUsed: string | null;
9619
- output: string | null;
9620
- promptTokens: number | null;
9621
- stepId: string;
9622
- stepName: string | null;
9623
- stepResultId: string;
9624
- stepType: string;
9625
- toolCalls: unknown[];
9626
- totalCost: number | null;
9456
+ termAnalysis: {
9457
+ occurrenceRate: number;
9458
+ stepsContainingTerm: number;
9459
+ term: string;
9460
+ totalOccurrences: number;
9627
9461
  }[];
9462
+ totalStepsAnalyzed: number;
9628
9463
  }[];
9629
- recordId: string;
9464
+ searchTerms: string[];
9465
+ stepIds: string[];
9466
+ };
9467
+ };
9468
+ };
9469
+ /** @description Invalid request */
9470
+ 400: {
9471
+ headers: {
9472
+ [name: string]: unknown;
9473
+ };
9474
+ content: {
9475
+ "application/json": components["schemas"]["Error"];
9476
+ };
9477
+ };
9478
+ /** @description Unauthorized */
9479
+ 401: {
9480
+ headers: {
9481
+ [name: string]: unknown;
9482
+ };
9483
+ content: {
9484
+ "application/json": components["schemas"]["Error"];
9485
+ };
9486
+ };
9487
+ /** @description Forbidden */
9488
+ 403: {
9489
+ headers: {
9490
+ [name: string]: unknown;
9491
+ };
9492
+ content: {
9493
+ "application/json": components["schemas"]["Error"];
9494
+ };
9495
+ };
9496
+ /** @description Not found */
9497
+ 404: {
9498
+ headers: {
9499
+ [name: string]: unknown;
9500
+ };
9501
+ content: {
9502
+ "application/json": components["schemas"]["Error"];
9503
+ };
9504
+ };
9505
+ /** @description Internal server error */
9506
+ 500: {
9507
+ headers: {
9508
+ [name: string]: unknown;
9509
+ };
9510
+ content: {
9511
+ "application/json": components["schemas"]["Error"];
9512
+ };
9513
+ };
9514
+ };
9515
+ };
9516
+ delete?: never;
9517
+ options?: never;
9518
+ head?: never;
9519
+ patch?: never;
9520
+ trace?: never;
9521
+ };
9522
+ "/v1/eval/batches": {
9523
+ parameters: {
9524
+ query?: never;
9525
+ header?: never;
9526
+ path?: never;
9527
+ cookie?: never;
9528
+ };
9529
+ /**
9530
+ * List eval batches
9531
+ * @description List all eval batches for the current user with optional filtering and pagination.
9532
+ */
9533
+ get: {
9534
+ parameters: {
9535
+ query?: {
9536
+ /** @description Number of results (default 50, max 100) */
9537
+ limit?: string;
9538
+ /** @description Pagination offset */
9539
+ offset?: string;
9540
+ /** @description Filter by status (queued|processing|completed|failed) */
9541
+ status?: string;
9542
+ /** @description Filter by run origin: "suite" = runs linked to an eval suite (CI gates, suite Run button); "adhoc" = suite-less runs (ad-hoc config comparisons, legacy evals). */
9543
+ origin?: "suite" | "adhoc";
9544
+ };
9545
+ header?: never;
9546
+ path?: never;
9547
+ cookie?: never;
9548
+ };
9549
+ requestBody?: never;
9550
+ responses: {
9551
+ /** @description Eval batches returned */
9552
+ 200: {
9553
+ headers: {
9554
+ [name: string]: unknown;
9555
+ };
9556
+ content: {
9557
+ "application/json": {
9558
+ batches: {
9559
+ [key: string]: unknown;
9560
+ }[];
9561
+ count: number;
9562
+ limit: number;
9563
+ offset: number;
9564
+ };
9565
+ };
9566
+ };
9567
+ /** @description Unauthorized */
9568
+ 401: {
9569
+ headers: {
9570
+ [name: string]: unknown;
9571
+ };
9572
+ content: {
9573
+ "application/json": components["schemas"]["Error"];
9574
+ };
9575
+ };
9576
+ /** @description Internal server error */
9577
+ 500: {
9578
+ headers: {
9579
+ [name: string]: unknown;
9580
+ };
9581
+ content: {
9582
+ "application/json": components["schemas"]["Error"];
9583
+ };
9584
+ };
9585
+ };
9586
+ };
9587
+ put?: never;
9588
+ post?: never;
9589
+ delete?: never;
9590
+ options?: never;
9591
+ head?: never;
9592
+ patch?: never;
9593
+ trace?: never;
9594
+ };
9595
+ "/v1/eval/compare": {
9596
+ parameters: {
9597
+ query?: never;
9598
+ header?: never;
9599
+ path?: never;
9600
+ cookie?: never;
9601
+ };
9602
+ get?: never;
9603
+ put?: never;
9604
+ /**
9605
+ * Compare evals
9606
+ * @description Compare aggregate metrics across eval batches in a group.
9607
+ */
9608
+ post: {
9609
+ parameters: {
9610
+ query?: never;
9611
+ header?: never;
9612
+ path?: never;
9613
+ cookie?: never;
9614
+ };
9615
+ requestBody?: {
9616
+ content: {
9617
+ "application/json": {
9618
+ evalGroupId: string;
9619
+ stepIds?: string[];
9620
+ };
9621
+ };
9622
+ };
9623
+ responses: {
9624
+ /** @description Comparison returned */
9625
+ 200: {
9626
+ headers: {
9627
+ [name: string]: unknown;
9628
+ };
9629
+ content: {
9630
+ "application/json": {
9631
+ evalGroupId: string;
9632
+ evals: {
9633
+ batchExecutionId: string;
9634
+ evalConfig?: unknown;
9635
+ evalName?: string;
9636
+ metrics: {
9637
+ avgCostPerRecord: number;
9638
+ avgDurationPerRecord: number;
9639
+ failedSteps: number;
9640
+ successRate: number;
9641
+ successfulSteps: number;
9642
+ totalCompletionTokens: number;
9643
+ totalCost: number;
9644
+ totalDurationMs: number;
9645
+ totalPromptTokens: number;
9646
+ totalSteps: number;
9647
+ };
9648
+ }[];
9649
+ };
9650
+ };
9651
+ };
9652
+ /** @description Invalid request */
9653
+ 400: {
9654
+ headers: {
9655
+ [name: string]: unknown;
9656
+ };
9657
+ content: {
9658
+ "application/json": components["schemas"]["Error"];
9659
+ };
9660
+ };
9661
+ /** @description Unauthorized */
9662
+ 401: {
9663
+ headers: {
9664
+ [name: string]: unknown;
9665
+ };
9666
+ content: {
9667
+ "application/json": components["schemas"]["Error"];
9668
+ };
9669
+ };
9670
+ /** @description Forbidden */
9671
+ 403: {
9672
+ headers: {
9673
+ [name: string]: unknown;
9674
+ };
9675
+ content: {
9676
+ "application/json": components["schemas"]["Error"];
9677
+ };
9678
+ };
9679
+ /** @description Not found */
9680
+ 404: {
9681
+ headers: {
9682
+ [name: string]: unknown;
9683
+ };
9684
+ content: {
9685
+ "application/json": components["schemas"]["Error"];
9686
+ };
9687
+ };
9688
+ /** @description Internal server error */
9689
+ 500: {
9690
+ headers: {
9691
+ [name: string]: unknown;
9692
+ };
9693
+ content: {
9694
+ "application/json": components["schemas"]["Error"];
9695
+ };
9696
+ };
9697
+ };
9698
+ };
9699
+ delete?: never;
9700
+ options?: never;
9701
+ head?: never;
9702
+ patch?: never;
9703
+ trace?: never;
9704
+ };
9705
+ "/v1/eval/compare-record": {
9706
+ parameters: {
9707
+ query?: never;
9708
+ header?: never;
9709
+ path?: never;
9710
+ cookie?: never;
9711
+ };
9712
+ get?: never;
9713
+ put?: never;
9714
+ /**
9715
+ * Compare record across evals
9716
+ * @description Compare results for a specific record across eval batches in a group.
9717
+ */
9718
+ post: {
9719
+ parameters: {
9720
+ query?: never;
9721
+ header?: never;
9722
+ path?: never;
9723
+ cookie?: never;
9724
+ };
9725
+ requestBody?: {
9726
+ content: {
9727
+ "application/json": {
9728
+ evalGroupId: string;
9729
+ recordId: string;
9730
+ stepIds?: string[];
9731
+ };
9732
+ };
9733
+ };
9734
+ responses: {
9735
+ /** @description Record comparison returned */
9736
+ 200: {
9737
+ headers: {
9738
+ [name: string]: unknown;
9739
+ };
9740
+ content: {
9741
+ "application/json": {
9742
+ evalGroupId: string;
9743
+ evals: {
9744
+ batchExecutionId: string;
9745
+ evalConfig?: unknown;
9746
+ evalName?: string;
9747
+ stepResults: {
9748
+ completionTokens: number | null;
9749
+ durationMs: number | null;
9750
+ error?: string;
9751
+ executedAt: string;
9752
+ modelUsed: string | null;
9753
+ output: string | null;
9754
+ promptTokens: number | null;
9755
+ stepId: string;
9756
+ stepName: string | null;
9757
+ stepResultId: string;
9758
+ stepType: string;
9759
+ toolCalls: unknown[];
9760
+ totalCost: number | null;
9761
+ }[];
9762
+ }[];
9763
+ recordId: string;
9630
9764
  };
9631
9765
  };
9632
9766
  };
@@ -9968,7 +10102,7 @@ interface paths {
9968
10102
  put?: never;
9969
10103
  /**
9970
10104
  * Run eval suite synchronously
9971
- * @description Run every case of an eval suite against its target flow/agent and grade the outputs with the suite graders, returning the suite score + per-case gate outcomes in one response. Powers the `runtype eval` CI gate. Synchronous and ephemeral: no batch is created and no scores are persisted (use /eval/submit for a durable, dashboard-visible run). Bounded — suites over the case limit must use the batch path. Flow and standard-agent targets are supported (in both saved and inline/virtual modes); external and claude_managed agent targets are not.
10105
+ * @description Run every case of an eval suite against its target flow/agent and grade the outputs with the suite graders, returning the suite score + per-case gate outcomes in one response. Powers the `runtype eval` CI gate. Saved-suite runs persist by default: the run gets a durable id (`runId`) and per-case scores queryable via GET /eval/runs/{runId}/scores; pass `virtual: true` to skip persistence. Inline definition runs are always ephemeral. Bounded — suites over the case limit must use the batch path (/eval/submit). Flow and standard-agent targets are supported (in both saved and inline/virtual modes); external and claude_managed agent targets are not.
9972
10106
  */
9973
10107
  post: {
9974
10108
  parameters: {
@@ -10014,6 +10148,8 @@ interface paths {
10014
10148
  /** @description Strict mode (the `runtype eval --strict` gate): a soft grader miss fails its case like a gate miss. Default false — soft misses are reported per-outcome but do not fail the suite. */
10015
10149
  strict?: boolean;
10016
10150
  suiteId?: string;
10151
+ /** @description Skip persistence for a saved-suite run: no run row, no persisted scores. Saved-suite runs persist by default; inline definition runs are always ephemeral regardless of this flag. */
10152
+ virtual?: boolean;
10017
10153
  };
10018
10154
  };
10019
10155
  };
@@ -10089,6 +10225,83 @@ interface paths {
10089
10225
  patch?: never;
10090
10226
  trace?: never;
10091
10227
  };
10228
+ "/v1/eval/runs/{batchId}/scores": {
10229
+ parameters: {
10230
+ query?: never;
10231
+ header?: never;
10232
+ path?: never;
10233
+ cookie?: never;
10234
+ };
10235
+ /**
10236
+ * Get persisted grader scores for an eval run
10237
+ * @description Return the persisted per-case grader scores for a run (a `batchExecutions` row) — the read side of eval score persistence. Grader outcomes use the same shape as the synchronous POST /eval/run response, so live and historical results render identically. Runs land here from persisted saved-suite runs (POST /eval/run) and completed suite-linked batch runs. Returns an empty case list for a run with no persisted scores (ephemeral/virtual runs, ad-hoc comparisons, legacy evals).
10238
+ */
10239
+ get: {
10240
+ parameters: {
10241
+ query?: never;
10242
+ header?: never;
10243
+ path: {
10244
+ batchId: string;
10245
+ };
10246
+ cookie?: never;
10247
+ };
10248
+ requestBody?: never;
10249
+ responses: {
10250
+ /** @description Per-case grader scores for the run */
10251
+ 200: {
10252
+ headers: {
10253
+ [name: string]: unknown;
10254
+ };
10255
+ content: {
10256
+ "application/json": components["schemas"]["EvalRunScoresResponse"];
10257
+ };
10258
+ };
10259
+ /** @description Unauthorized */
10260
+ 401: {
10261
+ headers: {
10262
+ [name: string]: unknown;
10263
+ };
10264
+ content: {
10265
+ "application/json": components["schemas"]["Error"];
10266
+ };
10267
+ };
10268
+ /** @description Forbidden */
10269
+ 403: {
10270
+ headers: {
10271
+ [name: string]: unknown;
10272
+ };
10273
+ content: {
10274
+ "application/json": components["schemas"]["Error"];
10275
+ };
10276
+ };
10277
+ /** @description Run not found in this account scope */
10278
+ 404: {
10279
+ headers: {
10280
+ [name: string]: unknown;
10281
+ };
10282
+ content: {
10283
+ "application/json": components["schemas"]["Error"];
10284
+ };
10285
+ };
10286
+ /** @description Internal server error */
10287
+ 500: {
10288
+ headers: {
10289
+ [name: string]: unknown;
10290
+ };
10291
+ content: {
10292
+ "application/json": components["schemas"]["Error"];
10293
+ };
10294
+ };
10295
+ };
10296
+ };
10297
+ put?: never;
10298
+ post?: never;
10299
+ delete?: never;
10300
+ options?: never;
10301
+ head?: never;
10302
+ patch?: never;
10303
+ trace?: never;
10304
+ };
10092
10305
  "/v1/eval/stream": {
10093
10306
  parameters: {
10094
10307
  query?: never;
@@ -10282,6 +10495,823 @@ interface paths {
10282
10495
  patch?: never;
10283
10496
  trace?: never;
10284
10497
  };
10498
+ "/v1/eval/suites": {
10499
+ parameters: {
10500
+ query?: never;
10501
+ header?: never;
10502
+ path?: never;
10503
+ cookie?: never;
10504
+ };
10505
+ /**
10506
+ * List eval suites
10507
+ * @description List eval suites in the account scope with case counts and each suite’s latest run + score. Filter by target with flowId/agentId.
10508
+ */
10509
+ get: {
10510
+ parameters: {
10511
+ query?: {
10512
+ /** @description Filter to suites targeting this flow */
10513
+ flowId?: string;
10514
+ /** @description Filter to suites targeting this agent */
10515
+ agentId?: string;
10516
+ /** @description Number of results (default 50, max 100) */
10517
+ limit?: string;
10518
+ /** @description Pagination offset */
10519
+ offset?: string;
10520
+ };
10521
+ header?: never;
10522
+ path?: never;
10523
+ cookie?: never;
10524
+ };
10525
+ requestBody?: never;
10526
+ responses: {
10527
+ /** @description Eval suites returned */
10528
+ 200: {
10529
+ headers: {
10530
+ [name: string]: unknown;
10531
+ };
10532
+ content: {
10533
+ "application/json": components["schemas"]["EvalSuiteListResponse"];
10534
+ };
10535
+ };
10536
+ /** @description Invalid request */
10537
+ 400: {
10538
+ headers: {
10539
+ [name: string]: unknown;
10540
+ };
10541
+ content: {
10542
+ "application/json": components["schemas"]["Error"];
10543
+ };
10544
+ };
10545
+ /** @description Unauthorized */
10546
+ 401: {
10547
+ headers: {
10548
+ [name: string]: unknown;
10549
+ };
10550
+ content: {
10551
+ "application/json": components["schemas"]["Error"];
10552
+ };
10553
+ };
10554
+ /** @description Forbidden */
10555
+ 403: {
10556
+ headers: {
10557
+ [name: string]: unknown;
10558
+ };
10559
+ content: {
10560
+ "application/json": components["schemas"]["Error"];
10561
+ };
10562
+ };
10563
+ /** @description Internal server error */
10564
+ 500: {
10565
+ headers: {
10566
+ [name: string]: unknown;
10567
+ };
10568
+ content: {
10569
+ "application/json": components["schemas"]["Error"];
10570
+ };
10571
+ };
10572
+ };
10573
+ };
10574
+ put?: never;
10575
+ /**
10576
+ * Create eval suite
10577
+ * @description Create an eval suite (named test cases + graders) attached to one flow or agent, optionally with initial cases. Suites created here are dashboard/API-managed; config-as-code suites converge via POST /eval/ensure instead.
10578
+ */
10579
+ post: {
10580
+ parameters: {
10581
+ query?: never;
10582
+ header?: never;
10583
+ path?: never;
10584
+ cookie?: never;
10585
+ };
10586
+ requestBody?: {
10587
+ content: {
10588
+ "application/json": {
10589
+ agentId?: string;
10590
+ cases?: {
10591
+ enabled?: boolean;
10592
+ expected?: {
10593
+ facts?: string[];
10594
+ json?: unknown;
10595
+ text?: string;
10596
+ };
10597
+ /** @default {} */
10598
+ input?: {
10599
+ messages?: {
10600
+ content: string;
10601
+ role: string;
10602
+ }[];
10603
+ variables?: {
10604
+ [key: string]: unknown;
10605
+ };
10606
+ };
10607
+ name: string;
10608
+ notes?: string;
10609
+ }[];
10610
+ description?: string;
10611
+ flowId?: string;
10612
+ /**
10613
+ * @description Ordered grader configs applied to every case (suite-level graders).
10614
+ * @default []
10615
+ */
10616
+ graders?: ({
10617
+ kind: string;
10618
+ } & {
10619
+ [key: string]: unknown;
10620
+ })[];
10621
+ /** @description Make this the default eval for its target (clears the flag on any other suite for the same target). */
10622
+ isDefault?: boolean;
10623
+ name: string;
10624
+ };
10625
+ };
10626
+ };
10627
+ responses: {
10628
+ /** @description Suite created */
10629
+ 201: {
10630
+ headers: {
10631
+ [name: string]: unknown;
10632
+ };
10633
+ content: {
10634
+ "application/json": components["schemas"]["EvalSuiteDetail"];
10635
+ };
10636
+ };
10637
+ /** @description Invalid request */
10638
+ 400: {
10639
+ headers: {
10640
+ [name: string]: unknown;
10641
+ };
10642
+ content: {
10643
+ "application/json": components["schemas"]["Error"];
10644
+ };
10645
+ };
10646
+ /** @description Unauthorized */
10647
+ 401: {
10648
+ headers: {
10649
+ [name: string]: unknown;
10650
+ };
10651
+ content: {
10652
+ "application/json": components["schemas"]["Error"];
10653
+ };
10654
+ };
10655
+ /** @description Forbidden */
10656
+ 403: {
10657
+ headers: {
10658
+ [name: string]: unknown;
10659
+ };
10660
+ content: {
10661
+ "application/json": components["schemas"]["Error"];
10662
+ };
10663
+ };
10664
+ /** @description Not found */
10665
+ 404: {
10666
+ headers: {
10667
+ [name: string]: unknown;
10668
+ };
10669
+ content: {
10670
+ "application/json": components["schemas"]["Error"];
10671
+ };
10672
+ };
10673
+ /** @description Internal server error */
10674
+ 500: {
10675
+ headers: {
10676
+ [name: string]: unknown;
10677
+ };
10678
+ content: {
10679
+ "application/json": components["schemas"]["Error"];
10680
+ };
10681
+ };
10682
+ };
10683
+ };
10684
+ delete?: never;
10685
+ options?: never;
10686
+ head?: never;
10687
+ patch?: never;
10688
+ trace?: never;
10689
+ };
10690
+ "/v1/eval/suites/{id}": {
10691
+ parameters: {
10692
+ query?: never;
10693
+ header?: never;
10694
+ path?: never;
10695
+ cookie?: never;
10696
+ };
10697
+ /**
10698
+ * Get eval suite
10699
+ * @description Get an eval suite including its cases and latest run + score.
10700
+ */
10701
+ get: {
10702
+ parameters: {
10703
+ query?: never;
10704
+ header?: never;
10705
+ path: {
10706
+ id: string;
10707
+ };
10708
+ cookie?: never;
10709
+ };
10710
+ requestBody?: never;
10711
+ responses: {
10712
+ /** @description Eval suite returned */
10713
+ 200: {
10714
+ headers: {
10715
+ [name: string]: unknown;
10716
+ };
10717
+ content: {
10718
+ "application/json": components["schemas"]["EvalSuiteDetail"];
10719
+ };
10720
+ };
10721
+ /** @description Unauthorized */
10722
+ 401: {
10723
+ headers: {
10724
+ [name: string]: unknown;
10725
+ };
10726
+ content: {
10727
+ "application/json": components["schemas"]["Error"];
10728
+ };
10729
+ };
10730
+ /** @description Forbidden */
10731
+ 403: {
10732
+ headers: {
10733
+ [name: string]: unknown;
10734
+ };
10735
+ content: {
10736
+ "application/json": components["schemas"]["Error"];
10737
+ };
10738
+ };
10739
+ /** @description Not found */
10740
+ 404: {
10741
+ headers: {
10742
+ [name: string]: unknown;
10743
+ };
10744
+ content: {
10745
+ "application/json": components["schemas"]["Error"];
10746
+ };
10747
+ };
10748
+ /** @description Internal server error */
10749
+ 500: {
10750
+ headers: {
10751
+ [name: string]: unknown;
10752
+ };
10753
+ content: {
10754
+ "application/json": components["schemas"]["Error"];
10755
+ };
10756
+ };
10757
+ };
10758
+ };
10759
+ put?: never;
10760
+ post?: never;
10761
+ /**
10762
+ * Delete eval suite
10763
+ * @description Delete an eval suite and its cases. Past runs and their persisted scores survive (scores keep the case name snapshot).
10764
+ */
10765
+ delete: {
10766
+ parameters: {
10767
+ query?: never;
10768
+ header?: never;
10769
+ path: {
10770
+ id: string;
10771
+ };
10772
+ cookie?: never;
10773
+ };
10774
+ requestBody?: never;
10775
+ responses: {
10776
+ /** @description Suite deleted */
10777
+ 200: {
10778
+ headers: {
10779
+ [name: string]: unknown;
10780
+ };
10781
+ content: {
10782
+ "application/json": {
10783
+ success: boolean;
10784
+ };
10785
+ };
10786
+ };
10787
+ /** @description Unauthorized */
10788
+ 401: {
10789
+ headers: {
10790
+ [name: string]: unknown;
10791
+ };
10792
+ content: {
10793
+ "application/json": components["schemas"]["Error"];
10794
+ };
10795
+ };
10796
+ /** @description Forbidden */
10797
+ 403: {
10798
+ headers: {
10799
+ [name: string]: unknown;
10800
+ };
10801
+ content: {
10802
+ "application/json": components["schemas"]["Error"];
10803
+ };
10804
+ };
10805
+ /** @description Not found */
10806
+ 404: {
10807
+ headers: {
10808
+ [name: string]: unknown;
10809
+ };
10810
+ content: {
10811
+ "application/json": components["schemas"]["Error"];
10812
+ };
10813
+ };
10814
+ /** @description Internal server error */
10815
+ 500: {
10816
+ headers: {
10817
+ [name: string]: unknown;
10818
+ };
10819
+ content: {
10820
+ "application/json": components["schemas"]["Error"];
10821
+ };
10822
+ };
10823
+ };
10824
+ };
10825
+ options?: never;
10826
+ head?: never;
10827
+ /**
10828
+ * Update eval suite
10829
+ * @description Update a suite’s Definition (name, description, graders) or state (default flag, baseline run pin). The target is immutable — create a new suite to evaluate a different flow/agent. Definition edits stamp provenance; a graders change invalidates the config-as-code content hash so the next ensure re-converges.
10830
+ */
10831
+ patch: {
10832
+ parameters: {
10833
+ query?: never;
10834
+ header?: never;
10835
+ path: {
10836
+ id: string;
10837
+ };
10838
+ cookie?: never;
10839
+ };
10840
+ requestBody?: {
10841
+ content: {
10842
+ "application/json": {
10843
+ /** @description Pin a run of this suite as the comparison baseline; null clears the pin. */
10844
+ baselineBatchExecutionId?: string | null;
10845
+ description?: string | null;
10846
+ graders?: ({
10847
+ kind: string;
10848
+ } & {
10849
+ [key: string]: unknown;
10850
+ })[];
10851
+ isDefault?: boolean;
10852
+ name?: string;
10853
+ };
10854
+ };
10855
+ };
10856
+ responses: {
10857
+ /** @description Suite updated */
10858
+ 200: {
10859
+ headers: {
10860
+ [name: string]: unknown;
10861
+ };
10862
+ content: {
10863
+ "application/json": components["schemas"]["EvalSuiteSummary"];
10864
+ };
10865
+ };
10866
+ /** @description Invalid request */
10867
+ 400: {
10868
+ headers: {
10869
+ [name: string]: unknown;
10870
+ };
10871
+ content: {
10872
+ "application/json": components["schemas"]["Error"];
10873
+ };
10874
+ };
10875
+ /** @description Unauthorized */
10876
+ 401: {
10877
+ headers: {
10878
+ [name: string]: unknown;
10879
+ };
10880
+ content: {
10881
+ "application/json": components["schemas"]["Error"];
10882
+ };
10883
+ };
10884
+ /** @description Forbidden */
10885
+ 403: {
10886
+ headers: {
10887
+ [name: string]: unknown;
10888
+ };
10889
+ content: {
10890
+ "application/json": components["schemas"]["Error"];
10891
+ };
10892
+ };
10893
+ /** @description Not found */
10894
+ 404: {
10895
+ headers: {
10896
+ [name: string]: unknown;
10897
+ };
10898
+ content: {
10899
+ "application/json": components["schemas"]["Error"];
10900
+ };
10901
+ };
10902
+ /** @description Internal server error */
10903
+ 500: {
10904
+ headers: {
10905
+ [name: string]: unknown;
10906
+ };
10907
+ content: {
10908
+ "application/json": components["schemas"]["Error"];
10909
+ };
10910
+ };
10911
+ };
10912
+ };
10913
+ trace?: never;
10914
+ };
10915
+ "/v1/eval/suites/{id}/cases": {
10916
+ parameters: {
10917
+ query?: never;
10918
+ header?: never;
10919
+ path?: never;
10920
+ cookie?: never;
10921
+ };
10922
+ get?: never;
10923
+ put?: never;
10924
+ /**
10925
+ * Add eval cases
10926
+ * @description Add one or more test cases to an eval suite. Cases are server-authoritative data: adding them does not affect the suite’s config-as-code provenance.
10927
+ */
10928
+ post: {
10929
+ parameters: {
10930
+ query?: never;
10931
+ header?: never;
10932
+ path: {
10933
+ id: string;
10934
+ };
10935
+ cookie?: never;
10936
+ };
10937
+ requestBody?: {
10938
+ content: {
10939
+ "application/json": {
10940
+ cases: {
10941
+ enabled?: boolean;
10942
+ expected?: {
10943
+ facts?: string[];
10944
+ json?: unknown;
10945
+ text?: string;
10946
+ };
10947
+ /** @default {} */
10948
+ input?: {
10949
+ messages?: {
10950
+ content: string;
10951
+ role: string;
10952
+ }[];
10953
+ variables?: {
10954
+ [key: string]: unknown;
10955
+ };
10956
+ };
10957
+ name: string;
10958
+ notes?: string;
10959
+ }[];
10960
+ };
10961
+ };
10962
+ };
10963
+ responses: {
10964
+ /** @description Cases created */
10965
+ 201: {
10966
+ headers: {
10967
+ [name: string]: unknown;
10968
+ };
10969
+ content: {
10970
+ "application/json": components["schemas"]["EvalCasesCreated"];
10971
+ };
10972
+ };
10973
+ /** @description Invalid request */
10974
+ 400: {
10975
+ headers: {
10976
+ [name: string]: unknown;
10977
+ };
10978
+ content: {
10979
+ "application/json": components["schemas"]["Error"];
10980
+ };
10981
+ };
10982
+ /** @description Unauthorized */
10983
+ 401: {
10984
+ headers: {
10985
+ [name: string]: unknown;
10986
+ };
10987
+ content: {
10988
+ "application/json": components["schemas"]["Error"];
10989
+ };
10990
+ };
10991
+ /** @description Forbidden */
10992
+ 403: {
10993
+ headers: {
10994
+ [name: string]: unknown;
10995
+ };
10996
+ content: {
10997
+ "application/json": components["schemas"]["Error"];
10998
+ };
10999
+ };
11000
+ /** @description Not found */
11001
+ 404: {
11002
+ headers: {
11003
+ [name: string]: unknown;
11004
+ };
11005
+ content: {
11006
+ "application/json": components["schemas"]["Error"];
11007
+ };
11008
+ };
11009
+ /** @description Internal server error */
11010
+ 500: {
11011
+ headers: {
11012
+ [name: string]: unknown;
11013
+ };
11014
+ content: {
11015
+ "application/json": components["schemas"]["Error"];
11016
+ };
11017
+ };
11018
+ };
11019
+ };
11020
+ delete?: never;
11021
+ options?: never;
11022
+ head?: never;
11023
+ patch?: never;
11024
+ trace?: never;
11025
+ };
11026
+ "/v1/eval/suites/{id}/cases/{caseId}": {
11027
+ parameters: {
11028
+ query?: never;
11029
+ header?: never;
11030
+ path?: never;
11031
+ cookie?: never;
11032
+ };
11033
+ get?: never;
11034
+ put?: never;
11035
+ post?: never;
11036
+ /**
11037
+ * Delete eval case
11038
+ * @description Delete a test case. Persisted scores from past runs survive with the case name snapshot (caseId nulls out).
11039
+ */
11040
+ delete: {
11041
+ parameters: {
11042
+ query?: never;
11043
+ header?: never;
11044
+ path: {
11045
+ id: string;
11046
+ caseId: string;
11047
+ };
11048
+ cookie?: never;
11049
+ };
11050
+ requestBody?: never;
11051
+ responses: {
11052
+ /** @description Case deleted */
11053
+ 200: {
11054
+ headers: {
11055
+ [name: string]: unknown;
11056
+ };
11057
+ content: {
11058
+ "application/json": {
11059
+ success: boolean;
11060
+ };
11061
+ };
11062
+ };
11063
+ /** @description Unauthorized */
11064
+ 401: {
11065
+ headers: {
11066
+ [name: string]: unknown;
11067
+ };
11068
+ content: {
11069
+ "application/json": components["schemas"]["Error"];
11070
+ };
11071
+ };
11072
+ /** @description Forbidden */
11073
+ 403: {
11074
+ headers: {
11075
+ [name: string]: unknown;
11076
+ };
11077
+ content: {
11078
+ "application/json": components["schemas"]["Error"];
11079
+ };
11080
+ };
11081
+ /** @description Not found */
11082
+ 404: {
11083
+ headers: {
11084
+ [name: string]: unknown;
11085
+ };
11086
+ content: {
11087
+ "application/json": components["schemas"]["Error"];
11088
+ };
11089
+ };
11090
+ /** @description Internal server error */
11091
+ 500: {
11092
+ headers: {
11093
+ [name: string]: unknown;
11094
+ };
11095
+ content: {
11096
+ "application/json": components["schemas"]["Error"];
11097
+ };
11098
+ };
11099
+ };
11100
+ };
11101
+ options?: never;
11102
+ head?: never;
11103
+ /**
11104
+ * Update eval case
11105
+ * @description Edit, enable, or disable a test case.
11106
+ */
11107
+ patch: {
11108
+ parameters: {
11109
+ query?: never;
11110
+ header?: never;
11111
+ path: {
11112
+ id: string;
11113
+ caseId: string;
11114
+ };
11115
+ cookie?: never;
11116
+ };
11117
+ requestBody?: {
11118
+ content: {
11119
+ "application/json": {
11120
+ enabled?: boolean;
11121
+ expected?: {
11122
+ facts?: string[];
11123
+ json?: unknown;
11124
+ text?: string;
11125
+ } | null;
11126
+ input?: {
11127
+ messages?: {
11128
+ content: string;
11129
+ role: string;
11130
+ }[];
11131
+ variables?: {
11132
+ [key: string]: unknown;
11133
+ };
11134
+ };
11135
+ name?: string;
11136
+ notes?: string | null;
11137
+ };
11138
+ };
11139
+ };
11140
+ responses: {
11141
+ /** @description Case updated */
11142
+ 200: {
11143
+ headers: {
11144
+ [name: string]: unknown;
11145
+ };
11146
+ content: {
11147
+ "application/json": components["schemas"]["EvalCase"];
11148
+ };
11149
+ };
11150
+ /** @description Invalid request */
11151
+ 400: {
11152
+ headers: {
11153
+ [name: string]: unknown;
11154
+ };
11155
+ content: {
11156
+ "application/json": components["schemas"]["Error"];
11157
+ };
11158
+ };
11159
+ /** @description Unauthorized */
11160
+ 401: {
11161
+ headers: {
11162
+ [name: string]: unknown;
11163
+ };
11164
+ content: {
11165
+ "application/json": components["schemas"]["Error"];
11166
+ };
11167
+ };
11168
+ /** @description Forbidden */
11169
+ 403: {
11170
+ headers: {
11171
+ [name: string]: unknown;
11172
+ };
11173
+ content: {
11174
+ "application/json": components["schemas"]["Error"];
11175
+ };
11176
+ };
11177
+ /** @description Not found */
11178
+ 404: {
11179
+ headers: {
11180
+ [name: string]: unknown;
11181
+ };
11182
+ content: {
11183
+ "application/json": components["schemas"]["Error"];
11184
+ };
11185
+ };
11186
+ /** @description Internal server error */
11187
+ 500: {
11188
+ headers: {
11189
+ [name: string]: unknown;
11190
+ };
11191
+ content: {
11192
+ "application/json": components["schemas"]["Error"];
11193
+ };
11194
+ };
11195
+ };
11196
+ };
11197
+ trace?: never;
11198
+ };
11199
+ "/v1/eval/suites/{id}/run": {
11200
+ parameters: {
11201
+ query?: never;
11202
+ header?: never;
11203
+ path?: never;
11204
+ cookie?: never;
11205
+ };
11206
+ get?: never;
11207
+ put?: never;
11208
+ /**
11209
+ * Run eval suite
11210
+ * @description Run every enabled case of the suite against its target and grade the outputs with the suite graders. Suites within the synchronous case limit (50) run inline and return the full scored result; larger suites are queued as a durable run (202) that is graded when it completes — poll GET /eval/runs/{runId}/scores. Both paths persist per-case scores to the same run history.
11211
+ */
11212
+ post: {
11213
+ parameters: {
11214
+ query?: never;
11215
+ header?: never;
11216
+ path: {
11217
+ id: string;
11218
+ };
11219
+ cookie?: never;
11220
+ };
11221
+ requestBody?: {
11222
+ content: {
11223
+ "application/json": {
11224
+ /**
11225
+ * @description Force the execution path. Default: sync for suites within the synchronous case limit (50), batch above it.
11226
+ * @enum {string}
11227
+ */
11228
+ mode?: "sync" | "batch";
11229
+ /** @description Strict grading: a soft grader miss fails its case like a gate miss. */
11230
+ strict?: boolean;
11231
+ };
11232
+ };
11233
+ };
11234
+ responses: {
11235
+ /** @description Suite ran synchronously — score + per-case grader outcomes */
11236
+ 200: {
11237
+ headers: {
11238
+ [name: string]: unknown;
11239
+ };
11240
+ content: {
11241
+ "application/json": components["schemas"]["RunEvalResponse"];
11242
+ };
11243
+ };
11244
+ /** @description Suite queued as a durable run (scored on completion) */
11245
+ 202: {
11246
+ headers: {
11247
+ [name: string]: unknown;
11248
+ };
11249
+ content: {
11250
+ "application/json": components["schemas"]["EvalSuiteRunQueued"];
11251
+ };
11252
+ };
11253
+ /** @description Invalid request */
11254
+ 400: {
11255
+ headers: {
11256
+ [name: string]: unknown;
11257
+ };
11258
+ content: {
11259
+ "application/json": components["schemas"]["Error"];
11260
+ };
11261
+ };
11262
+ /** @description Unauthorized */
11263
+ 401: {
11264
+ headers: {
11265
+ [name: string]: unknown;
11266
+ };
11267
+ content: {
11268
+ "application/json": components["schemas"]["Error"];
11269
+ };
11270
+ };
11271
+ /** @description Daily eval limit exceeded */
11272
+ 402: {
11273
+ headers: {
11274
+ [name: string]: unknown;
11275
+ };
11276
+ content: {
11277
+ "application/json": components["schemas"]["Error"];
11278
+ };
11279
+ };
11280
+ /** @description Forbidden */
11281
+ 403: {
11282
+ headers: {
11283
+ [name: string]: unknown;
11284
+ };
11285
+ content: {
11286
+ "application/json": components["schemas"]["Error"];
11287
+ };
11288
+ };
11289
+ /** @description Not found */
11290
+ 404: {
11291
+ headers: {
11292
+ [name: string]: unknown;
11293
+ };
11294
+ content: {
11295
+ "application/json": components["schemas"]["Error"];
11296
+ };
11297
+ };
11298
+ /** @description Internal server error */
11299
+ 500: {
11300
+ headers: {
11301
+ [name: string]: unknown;
11302
+ };
11303
+ content: {
11304
+ "application/json": components["schemas"]["Error"];
11305
+ };
11306
+ };
11307
+ };
11308
+ };
11309
+ delete?: never;
11310
+ options?: never;
11311
+ head?: never;
11312
+ patch?: never;
11313
+ trace?: never;
11314
+ };
10285
11315
  "/v1/eval/{id}/results": {
10286
11316
  parameters: {
10287
11317
  query?: never;
@@ -11444,7 +12474,7 @@ interface paths {
11444
12474
  name: string;
11445
12475
  order?: number;
11446
12476
  /** @enum {string} */
11447
- type: "prompt" | "crawl" | "fetch-url" | "retrieve-record" | "fetch-github" | "api-call" | "transform-data" | "template" | "conditional" | "set-variable" | "upsert-record" | "send-email" | "send-text" | "send-event" | "send-stream" | "update-record" | "search" | "generate-embedding" | "vector-search" | "tool-call" | "wait-until" | "paginate-api" | "store-vector" | "execute-agent" | "store-asset" | "generate-pdf" | "save-memory" | "recall-memory" | "memory-summary";
12477
+ type: "prompt" | "crawl" | "fetch-url" | "retrieve-record" | "get-record" | "list-records" | "fetch-github" | "api-call" | "transform-data" | "template" | "conditional" | "set-variable" | "upsert-record" | "send-email" | "send-text" | "send-event" | "send-stream" | "update-record" | "search" | "generate-embedding" | "vector-search" | "tool-call" | "wait-until" | "paginate-api" | "store-vector" | "execute-agent" | "store-asset" | "generate-pdf" | "save-memory" | "recall-memory" | "memory-summary";
11448
12478
  when?: string;
11449
12479
  }[];
11450
12480
  name: string;
@@ -11456,7 +12486,7 @@ interface paths {
11456
12486
  name: string;
11457
12487
  order?: number;
11458
12488
  /** @enum {string} */
11459
- type: "prompt" | "crawl" | "fetch-url" | "retrieve-record" | "fetch-github" | "api-call" | "transform-data" | "template" | "conditional" | "set-variable" | "upsert-record" | "send-email" | "send-text" | "send-event" | "send-stream" | "update-record" | "search" | "generate-embedding" | "vector-search" | "tool-call" | "wait-until" | "paginate-api" | "store-vector" | "execute-agent" | "store-asset" | "generate-pdf" | "save-memory" | "recall-memory" | "memory-summary";
12489
+ type: "prompt" | "crawl" | "fetch-url" | "retrieve-record" | "get-record" | "list-records" | "fetch-github" | "api-call" | "transform-data" | "template" | "conditional" | "set-variable" | "upsert-record" | "send-email" | "send-text" | "send-event" | "send-stream" | "update-record" | "search" | "generate-embedding" | "vector-search" | "tool-call" | "wait-until" | "paginate-api" | "store-vector" | "execute-agent" | "store-asset" | "generate-pdf" | "save-memory" | "recall-memory" | "memory-summary";
11460
12490
  when?: string;
11461
12491
  }[];
11462
12492
  };
@@ -11851,7 +12881,7 @@ interface paths {
11851
12881
  name: string;
11852
12882
  order?: number;
11853
12883
  /** @enum {string} */
11854
- type: "prompt" | "crawl" | "fetch-url" | "retrieve-record" | "fetch-github" | "api-call" | "transform-data" | "template" | "conditional" | "set-variable" | "upsert-record" | "send-email" | "send-text" | "send-event" | "send-stream" | "update-record" | "search" | "generate-embedding" | "vector-search" | "tool-call" | "wait-until" | "paginate-api" | "store-vector" | "execute-agent" | "store-asset" | "generate-pdf" | "save-memory" | "recall-memory" | "memory-summary";
12884
+ type: "prompt" | "crawl" | "fetch-url" | "retrieve-record" | "get-record" | "list-records" | "fetch-github" | "api-call" | "transform-data" | "template" | "conditional" | "set-variable" | "upsert-record" | "send-email" | "send-text" | "send-event" | "send-stream" | "update-record" | "search" | "generate-embedding" | "vector-search" | "tool-call" | "wait-until" | "paginate-api" | "store-vector" | "execute-agent" | "store-asset" | "generate-pdf" | "save-memory" | "recall-memory" | "memory-summary";
11855
12885
  when?: string;
11856
12886
  }[];
11857
12887
  name?: string;
@@ -12109,45 +13139,427 @@ interface paths {
12109
13139
  patch?: never;
12110
13140
  trace?: never;
12111
13141
  };
12112
- "/v1/flows/{id}/publish": {
13142
+ "/v1/flows/{id}/publish": {
13143
+ parameters: {
13144
+ query?: never;
13145
+ header?: never;
13146
+ path?: never;
13147
+ cookie?: never;
13148
+ };
13149
+ get?: never;
13150
+ put?: never;
13151
+ /**
13152
+ * Publish flow
13153
+ * @description Promote a flow draft version to published.
13154
+ */
13155
+ post: {
13156
+ parameters: {
13157
+ query?: never;
13158
+ header?: never;
13159
+ path: {
13160
+ id: string;
13161
+ };
13162
+ cookie?: never;
13163
+ };
13164
+ requestBody?: never;
13165
+ responses: {
13166
+ /** @description Flow published */
13167
+ 200: {
13168
+ headers: {
13169
+ [name: string]: unknown;
13170
+ };
13171
+ content: {
13172
+ "application/json": {
13173
+ message: string;
13174
+ publishedVersionId: string;
13175
+ success: boolean;
13176
+ };
13177
+ };
13178
+ };
13179
+ /** @description Invalid flow ID */
13180
+ 400: {
13181
+ headers: {
13182
+ [name: string]: unknown;
13183
+ };
13184
+ content: {
13185
+ "application/json": components["schemas"]["Error"];
13186
+ };
13187
+ };
13188
+ /** @description Unauthorized */
13189
+ 401: {
13190
+ headers: {
13191
+ [name: string]: unknown;
13192
+ };
13193
+ content: {
13194
+ "application/json": components["schemas"]["Error"];
13195
+ };
13196
+ };
13197
+ /** @description Insufficient permissions */
13198
+ 403: {
13199
+ headers: {
13200
+ [name: string]: unknown;
13201
+ };
13202
+ content: {
13203
+ "application/json": components["schemas"]["Error"];
13204
+ };
13205
+ };
13206
+ /** @description Flow or draft version not found */
13207
+ 404: {
13208
+ headers: {
13209
+ [name: string]: unknown;
13210
+ };
13211
+ content: {
13212
+ "application/json": components["schemas"]["Error"];
13213
+ };
13214
+ };
13215
+ /** @description Internal server error */
13216
+ 500: {
13217
+ headers: {
13218
+ [name: string]: unknown;
13219
+ };
13220
+ content: {
13221
+ "application/json": components["schemas"]["Error"];
13222
+ };
13223
+ };
13224
+ };
13225
+ };
13226
+ delete?: never;
13227
+ options?: never;
13228
+ head?: never;
13229
+ patch?: never;
13230
+ trace?: never;
13231
+ };
13232
+ "/v1/flows/{id}/run-on-record-type": {
13233
+ parameters: {
13234
+ query?: never;
13235
+ header?: never;
13236
+ path?: never;
13237
+ cookie?: never;
13238
+ };
13239
+ get?: never;
13240
+ put?: never;
13241
+ /**
13242
+ * Run flow on records of a type
13243
+ * @description Execute a flow against every record of the given type. Small batches (≤10) execute immediately and return 200; larger batches return 202 with a scheduled batchId.
13244
+ */
13245
+ post: {
13246
+ parameters: {
13247
+ query?: never;
13248
+ header?: never;
13249
+ path: {
13250
+ id: string;
13251
+ };
13252
+ cookie?: never;
13253
+ };
13254
+ requestBody?: {
13255
+ content: {
13256
+ "application/json": {
13257
+ recordType: string;
13258
+ };
13259
+ };
13260
+ };
13261
+ responses: {
13262
+ /** @description Batch executed immediately */
13263
+ 200: {
13264
+ headers: {
13265
+ [name: string]: unknown;
13266
+ };
13267
+ content: {
13268
+ "application/json": {
13269
+ batchId: string;
13270
+ completedAt: string;
13271
+ executedImmediately: boolean;
13272
+ failureCount: number;
13273
+ flowId: string;
13274
+ recordCount: number;
13275
+ recordType: string;
13276
+ results: {
13277
+ contextSteps?: number;
13278
+ error?: string;
13279
+ executionId?: string;
13280
+ executionTime?: number;
13281
+ promptsExecuted?: number;
13282
+ recordId: string;
13283
+ recordName: string | null;
13284
+ success: boolean;
13285
+ }[];
13286
+ /** @enum {string} */
13287
+ status: "completed";
13288
+ success: boolean;
13289
+ successCount: number;
13290
+ };
13291
+ };
13292
+ };
13293
+ /** @description Batch scheduled for execution */
13294
+ 202: {
13295
+ headers: {
13296
+ [name: string]: unknown;
13297
+ };
13298
+ content: {
13299
+ "application/json": {
13300
+ batchId: string;
13301
+ flowId: string;
13302
+ message: string;
13303
+ recordCount: number;
13304
+ recordType: string;
13305
+ records: {
13306
+ id: string;
13307
+ name: string | null;
13308
+ type: string;
13309
+ }[];
13310
+ scheduledAt: string;
13311
+ /** @enum {string} */
13312
+ status: "scheduled";
13313
+ success: boolean;
13314
+ };
13315
+ };
13316
+ };
13317
+ /** @description Validation error or no matching records */
13318
+ 400: {
13319
+ headers: {
13320
+ [name: string]: unknown;
13321
+ };
13322
+ content: {
13323
+ "application/json": components["schemas"]["Error"];
13324
+ };
13325
+ };
13326
+ /** @description Unauthorized */
13327
+ 401: {
13328
+ headers: {
13329
+ [name: string]: unknown;
13330
+ };
13331
+ content: {
13332
+ "application/json": components["schemas"]["Error"];
13333
+ };
13334
+ };
13335
+ /** @description Insufficient permissions */
13336
+ 403: {
13337
+ headers: {
13338
+ [name: string]: unknown;
13339
+ };
13340
+ content: {
13341
+ "application/json": components["schemas"]["Error"];
13342
+ };
13343
+ };
13344
+ /** @description Daily execution limit exceeded */
13345
+ 429: {
13346
+ headers: {
13347
+ [name: string]: unknown;
13348
+ };
13349
+ content: {
13350
+ "application/json": components["schemas"]["Error"];
13351
+ };
13352
+ };
13353
+ /** @description Internal server error */
13354
+ 500: {
13355
+ headers: {
13356
+ [name: string]: unknown;
13357
+ };
13358
+ content: {
13359
+ "application/json": components["schemas"]["Error"];
13360
+ };
13361
+ };
13362
+ };
13363
+ };
13364
+ delete?: never;
13365
+ options?: never;
13366
+ head?: never;
13367
+ patch?: never;
13368
+ trace?: never;
13369
+ };
13370
+ "/v1/flows/{id}/step-results": {
13371
+ parameters: {
13372
+ query?: never;
13373
+ header?: never;
13374
+ path?: never;
13375
+ cookie?: never;
13376
+ };
13377
+ /**
13378
+ * List flow step results
13379
+ * @description Get unified step execution results for a flow with filtering and offset pagination.
13380
+ */
13381
+ get: {
13382
+ parameters: {
13383
+ query?: {
13384
+ recordId?: string;
13385
+ batchId?: string;
13386
+ status?: string;
13387
+ stepId?: string;
13388
+ from?: string;
13389
+ to?: string;
13390
+ sortBy?: string;
13391
+ sortOrder?: "asc" | "desc";
13392
+ limit?: string;
13393
+ offset?: string;
13394
+ };
13395
+ header?: never;
13396
+ path: {
13397
+ id: string;
13398
+ };
13399
+ cookie?: never;
13400
+ };
13401
+ requestBody?: never;
13402
+ responses: {
13403
+ /** @description Step results */
13404
+ 200: {
13405
+ headers: {
13406
+ [name: string]: unknown;
13407
+ };
13408
+ content: {
13409
+ "application/json": {
13410
+ data: {
13411
+ batchExecutionId: string | null;
13412
+ completedAt: string | null;
13413
+ completionTokens?: number | null;
13414
+ createdAt: string;
13415
+ durationMs: number | null;
13416
+ errorMessage?: string | null;
13417
+ estimatedCost?: string | null;
13418
+ executionSessionId: string | null;
13419
+ flowId: string | null;
13420
+ flowVersionId: string | null;
13421
+ id: string;
13422
+ inputVariables?: unknown;
13423
+ modelUsed?: string | null;
13424
+ order: number | null;
13425
+ organizationId: string | null;
13426
+ outputPreview: string | null;
13427
+ promptTokens?: number | null;
13428
+ recordId: string | null;
13429
+ recordMetadata?: unknown;
13430
+ recordName: string | null;
13431
+ resolvedPrompt?: string | null;
13432
+ retryCount?: number | null;
13433
+ startedAt: string | null;
13434
+ status: string;
13435
+ stepConfig?: unknown;
13436
+ stepId: string | null;
13437
+ stepName: string;
13438
+ stepType: string;
13439
+ totalTokens?: number | null;
13440
+ userId: string;
13441
+ }[];
13442
+ pagination: {
13443
+ hasMore: boolean;
13444
+ limit: number;
13445
+ offset: number;
13446
+ returned: number;
13447
+ };
13448
+ };
13449
+ };
13450
+ };
13451
+ /** @description Invalid parameters */
13452
+ 400: {
13453
+ headers: {
13454
+ [name: string]: unknown;
13455
+ };
13456
+ content: {
13457
+ "application/json": components["schemas"]["Error"];
13458
+ };
13459
+ };
13460
+ /** @description Unauthorized */
13461
+ 401: {
13462
+ headers: {
13463
+ [name: string]: unknown;
13464
+ };
13465
+ content: {
13466
+ "application/json": components["schemas"]["Error"];
13467
+ };
13468
+ };
13469
+ /** @description Insufficient permissions */
13470
+ 403: {
13471
+ headers: {
13472
+ [name: string]: unknown;
13473
+ };
13474
+ content: {
13475
+ "application/json": components["schemas"]["Error"];
13476
+ };
13477
+ };
13478
+ /** @description Flow not found */
13479
+ 404: {
13480
+ headers: {
13481
+ [name: string]: unknown;
13482
+ };
13483
+ content: {
13484
+ "application/json": components["schemas"]["Error"];
13485
+ };
13486
+ };
13487
+ /** @description Internal server error */
13488
+ 500: {
13489
+ headers: {
13490
+ [name: string]: unknown;
13491
+ };
13492
+ content: {
13493
+ "application/json": components["schemas"]["Error"];
13494
+ };
13495
+ };
13496
+ };
13497
+ };
13498
+ put?: never;
13499
+ post?: never;
13500
+ delete?: never;
13501
+ options?: never;
13502
+ head?: never;
13503
+ patch?: never;
13504
+ trace?: never;
13505
+ };
13506
+ "/v1/identity-integrations": {
12113
13507
  parameters: {
12114
13508
  query?: never;
12115
13509
  header?: never;
12116
13510
  path?: never;
12117
13511
  cookie?: never;
12118
13512
  };
12119
- get?: never;
12120
- put?: never;
12121
13513
  /**
12122
- * Publish flow
12123
- * @description Promote a flow draft version to published.
13514
+ * List identity integrations
13515
+ * @description Lists the owner's Identity Exchange integrations (verification descriptors for customer-native auth proofs). Credentials are redacted to a presence list.
12124
13516
  */
12125
- post: {
13517
+ get: {
12126
13518
  parameters: {
12127
13519
  query?: never;
12128
13520
  header?: never;
12129
- path: {
12130
- id: string;
12131
- };
13521
+ path?: never;
12132
13522
  cookie?: never;
12133
13523
  };
12134
13524
  requestBody?: never;
12135
13525
  responses: {
12136
- /** @description Flow published */
13526
+ /** @description Successful response */
12137
13527
  200: {
12138
13528
  headers: {
12139
13529
  [name: string]: unknown;
12140
13530
  };
12141
13531
  content: {
12142
13532
  "application/json": {
12143
- message: string;
12144
- publishedVersionId: string;
12145
- success: boolean;
13533
+ identityIntegrations: {
13534
+ configuredCredentials: ("clientSecret" | "managementApiKey")[];
13535
+ createdAt: string;
13536
+ descriptor: {
13537
+ [key: string]: unknown;
13538
+ };
13539
+ id: string;
13540
+ issuer: string | null;
13541
+ /** @enum {string} */
13542
+ kind: "oidc-jwt" | "session" | "custom";
13543
+ name: string;
13544
+ provider: string;
13545
+ /** @enum {string} */
13546
+ status: "active" | "disabled";
13547
+ updatedAt: string;
13548
+ }[];
12146
13549
  };
12147
13550
  };
12148
13551
  };
12149
- /** @description Invalid flow ID */
12150
- 400: {
13552
+ /** @description Unauthorized */
13553
+ 401: {
13554
+ headers: {
13555
+ [name: string]: unknown;
13556
+ };
13557
+ content: {
13558
+ "application/json": components["schemas"]["Error"];
13559
+ };
13560
+ };
13561
+ /** @description Forbidden */
13562
+ 403: {
12151
13563
  headers: {
12152
13564
  [name: string]: unknown;
12153
13565
  };
@@ -12155,6 +13567,78 @@ interface paths {
12155
13567
  "application/json": components["schemas"]["Error"];
12156
13568
  };
12157
13569
  };
13570
+ };
13571
+ };
13572
+ put?: never;
13573
+ /**
13574
+ * Create an identity integration
13575
+ * @description Creates an Identity Exchange integration. The descriptor is validated against the shared schema and the server mints the integration id (the cross-integration isolation namespace).
13576
+ */
13577
+ post: {
13578
+ parameters: {
13579
+ query?: never;
13580
+ header?: never;
13581
+ path?: never;
13582
+ cookie?: never;
13583
+ };
13584
+ requestBody?: {
13585
+ content: {
13586
+ "application/json": {
13587
+ /** @description Provider management/client credentials. Sealed at rest, bound to this integration, and never returned by any endpoint. Set a field to rotate it; null clears it. */
13588
+ credentials?: {
13589
+ clientSecret?: string | null;
13590
+ managementApiKey?: string | null;
13591
+ };
13592
+ /** @description The IdentityAdapterDescriptor (without id — the server mints it). Validated against the shared identityAdapterDescriptorSchema: discriminated by 'kind' ('oidc-jwt' | 'session' | 'custom'); verifiable kinds require https issuer/jwksUri, a non-wildcard audience, and asymmetric-only allowedAlgorithms; maxAssurance may only lower the kind ceiling ('oidc-jwt' → 'verified', others → 'asserted'). */
13593
+ descriptor: {
13594
+ [key: string]: unknown;
13595
+ };
13596
+ name: string;
13597
+ /** @enum {string} */
13598
+ provider: "clerk" | "workos" | "auth0" | "okta" | "better-auth" | "oidc" | "custom";
13599
+ };
13600
+ };
13601
+ };
13602
+ responses: {
13603
+ /** @description Identity integration created */
13604
+ 201: {
13605
+ headers: {
13606
+ [name: string]: unknown;
13607
+ };
13608
+ content: {
13609
+ "application/json": {
13610
+ configuredCredentials: ("clientSecret" | "managementApiKey")[];
13611
+ createdAt: string;
13612
+ descriptor: {
13613
+ [key: string]: unknown;
13614
+ };
13615
+ id: string;
13616
+ issuer: string | null;
13617
+ /** @enum {string} */
13618
+ kind: "oidc-jwt" | "session" | "custom";
13619
+ name: string;
13620
+ provider: string;
13621
+ /** @enum {string} */
13622
+ status: "active" | "disabled";
13623
+ updatedAt: string;
13624
+ };
13625
+ };
13626
+ };
13627
+ /** @description Invalid descriptor or request body */
13628
+ 400: {
13629
+ headers: {
13630
+ [name: string]: unknown;
13631
+ };
13632
+ content: {
13633
+ "application/json": {
13634
+ error: string;
13635
+ issues?: {
13636
+ message: string;
13637
+ path: string;
13638
+ }[];
13639
+ };
13640
+ };
13641
+ };
12158
13642
  /** @description Unauthorized */
12159
13643
  401: {
12160
13644
  headers: {
@@ -12164,7 +13648,7 @@ interface paths {
12164
13648
  "application/json": components["schemas"]["Error"];
12165
13649
  };
12166
13650
  };
12167
- /** @description Insufficient permissions */
13651
+ /** @description Forbidden */
12168
13652
  403: {
12169
13653
  headers: {
12170
13654
  [name: string]: unknown;
@@ -12173,8 +13657,8 @@ interface paths {
12173
13657
  "application/json": components["schemas"]["Error"];
12174
13658
  };
12175
13659
  };
12176
- /** @description Flow or draft version not found */
12177
- 404: {
13660
+ /** @description An active integration for this issuer already exists */
13661
+ 409: {
12178
13662
  headers: {
12179
13663
  [name: string]: unknown;
12180
13664
  };
@@ -12199,93 +13683,61 @@ interface paths {
12199
13683
  patch?: never;
12200
13684
  trace?: never;
12201
13685
  };
12202
- "/v1/flows/{id}/run-on-record-type": {
13686
+ "/v1/identity-integrations/{id}": {
12203
13687
  parameters: {
12204
13688
  query?: never;
12205
13689
  header?: never;
12206
13690
  path?: never;
12207
13691
  cookie?: never;
12208
13692
  };
12209
- get?: never;
12210
- put?: never;
12211
- /**
12212
- * Run flow on records of a type
12213
- * @description Execute a flow against every record of the given type. Small batches (≤10) execute immediately and return 200; larger batches return 202 with a scheduled batchId.
12214
- */
12215
- post: {
13693
+ /** Get an identity integration */
13694
+ get: {
12216
13695
  parameters: {
12217
13696
  query?: never;
12218
13697
  header?: never;
12219
13698
  path: {
13699
+ /** @description Identity integration id (idint_...) */
12220
13700
  id: string;
12221
13701
  };
12222
13702
  cookie?: never;
12223
13703
  };
12224
- requestBody?: {
12225
- content: {
12226
- "application/json": {
12227
- recordType: string;
12228
- };
12229
- };
12230
- };
13704
+ requestBody?: never;
12231
13705
  responses: {
12232
- /** @description Batch executed immediately */
13706
+ /** @description Successful response */
12233
13707
  200: {
12234
13708
  headers: {
12235
13709
  [name: string]: unknown;
12236
13710
  };
12237
13711
  content: {
12238
13712
  "application/json": {
12239
- batchId: string;
12240
- completedAt: string;
12241
- executedImmediately: boolean;
12242
- failureCount: number;
12243
- flowId: string;
12244
- recordCount: number;
12245
- recordType: string;
12246
- results: {
12247
- contextSteps?: number;
12248
- error?: string;
12249
- executionId?: string;
12250
- executionTime?: number;
12251
- promptsExecuted?: number;
12252
- recordId: string;
12253
- recordName: string | null;
12254
- success: boolean;
12255
- }[];
13713
+ configuredCredentials: ("clientSecret" | "managementApiKey")[];
13714
+ createdAt: string;
13715
+ descriptor: {
13716
+ [key: string]: unknown;
13717
+ };
13718
+ id: string;
13719
+ issuer: string | null;
12256
13720
  /** @enum {string} */
12257
- status: "completed";
12258
- success: boolean;
12259
- successCount: number;
13721
+ kind: "oidc-jwt" | "session" | "custom";
13722
+ name: string;
13723
+ provider: string;
13724
+ /** @enum {string} */
13725
+ status: "active" | "disabled";
13726
+ updatedAt: string;
12260
13727
  };
12261
13728
  };
12262
13729
  };
12263
- /** @description Batch scheduled for execution */
12264
- 202: {
13730
+ /** @description Unauthorized */
13731
+ 401: {
12265
13732
  headers: {
12266
13733
  [name: string]: unknown;
12267
13734
  };
12268
13735
  content: {
12269
- "application/json": {
12270
- batchId: string;
12271
- flowId: string;
12272
- message: string;
12273
- recordCount: number;
12274
- recordType: string;
12275
- records: {
12276
- id: string;
12277
- name: string | null;
12278
- type: string;
12279
- }[];
12280
- scheduledAt: string;
12281
- /** @enum {string} */
12282
- status: "scheduled";
12283
- success: boolean;
12284
- };
13736
+ "application/json": components["schemas"]["Error"];
12285
13737
  };
12286
13738
  };
12287
- /** @description Validation error or no matching records */
12288
- 400: {
13739
+ /** @description Forbidden */
13740
+ 403: {
12289
13741
  headers: {
12290
13742
  [name: string]: unknown;
12291
13743
  };
@@ -12293,8 +13745,8 @@ interface paths {
12293
13745
  "application/json": components["schemas"]["Error"];
12294
13746
  };
12295
13747
  };
12296
- /** @description Unauthorized */
12297
- 401: {
13748
+ /** @description Not found */
13749
+ 404: {
12298
13750
  headers: {
12299
13751
  [name: string]: unknown;
12300
13752
  };
@@ -12302,8 +13754,39 @@ interface paths {
12302
13754
  "application/json": components["schemas"]["Error"];
12303
13755
  };
12304
13756
  };
12305
- /** @description Insufficient permissions */
12306
- 403: {
13757
+ };
13758
+ };
13759
+ put?: never;
13760
+ post?: never;
13761
+ /**
13762
+ * Delete an identity integration
13763
+ * @description Hard-deletes the integration and its sealed credentials. Existing projected identities (product_tenants / end_users rows carrying this integration id) are kept — the id remains their isolation namespace.
13764
+ */
13765
+ delete: {
13766
+ parameters: {
13767
+ query?: never;
13768
+ header?: never;
13769
+ path: {
13770
+ /** @description Identity integration id (idint_...) */
13771
+ id: string;
13772
+ };
13773
+ cookie?: never;
13774
+ };
13775
+ requestBody?: never;
13776
+ responses: {
13777
+ /** @description Identity integration deleted */
13778
+ 200: {
13779
+ headers: {
13780
+ [name: string]: unknown;
13781
+ };
13782
+ content: {
13783
+ "application/json": {
13784
+ success: boolean;
13785
+ };
13786
+ };
13787
+ };
13788
+ /** @description Unauthorized */
13789
+ 401: {
12307
13790
  headers: {
12308
13791
  [name: string]: unknown;
12309
13792
  };
@@ -12311,8 +13794,8 @@ interface paths {
12311
13794
  "application/json": components["schemas"]["Error"];
12312
13795
  };
12313
13796
  };
12314
- /** @description Daily execution limit exceeded */
12315
- 429: {
13797
+ /** @description Forbidden */
13798
+ 403: {
12316
13799
  headers: {
12317
13800
  [name: string]: unknown;
12318
13801
  };
@@ -12320,8 +13803,8 @@ interface paths {
12320
13803
  "application/json": components["schemas"]["Error"];
12321
13804
  };
12322
13805
  };
12323
- /** @description Internal server error */
12324
- 500: {
13806
+ /** @description Not found */
13807
+ 404: {
12325
13808
  headers: {
12326
13809
  [name: string]: unknown;
12327
13810
  };
@@ -12331,100 +13814,80 @@ interface paths {
12331
13814
  };
12332
13815
  };
12333
13816
  };
12334
- delete?: never;
12335
13817
  options?: never;
12336
13818
  head?: never;
12337
- patch?: never;
12338
- trace?: never;
12339
- };
12340
- "/v1/flows/{id}/step-results": {
12341
- parameters: {
12342
- query?: never;
12343
- header?: never;
12344
- path?: never;
12345
- cookie?: never;
12346
- };
12347
13819
  /**
12348
- * List flow step results
12349
- * @description Get unified step execution results for a flow with filtering and offset pagination.
13820
+ * Update an identity integration
13821
+ * @description Updates name/provider/status, replaces the descriptor (re-validated), and/or rotates credentials (per-field: string sets, null clears, absent keeps).
12350
13822
  */
12351
- get: {
13823
+ patch: {
12352
13824
  parameters: {
12353
- query?: {
12354
- recordId?: string;
12355
- batchId?: string;
12356
- status?: string;
12357
- stepId?: string;
12358
- from?: string;
12359
- to?: string;
12360
- sortBy?: string;
12361
- sortOrder?: "asc" | "desc";
12362
- limit?: string;
12363
- offset?: string;
12364
- };
13825
+ query?: never;
12365
13826
  header?: never;
12366
13827
  path: {
13828
+ /** @description Identity integration id (idint_...) */
12367
13829
  id: string;
12368
13830
  };
12369
13831
  cookie?: never;
12370
13832
  };
12371
- requestBody?: never;
13833
+ requestBody?: {
13834
+ content: {
13835
+ "application/json": {
13836
+ /** @description Provider management/client credentials. Sealed at rest, bound to this integration, and never returned by any endpoint. Set a field to rotate it; null clears it. */
13837
+ credentials?: {
13838
+ clientSecret?: string | null;
13839
+ managementApiKey?: string | null;
13840
+ };
13841
+ /** @description The IdentityAdapterDescriptor (without id — the server mints it). Validated against the shared identityAdapterDescriptorSchema: discriminated by 'kind' ('oidc-jwt' | 'session' | 'custom'); verifiable kinds require https issuer/jwksUri, a non-wildcard audience, and asymmetric-only allowedAlgorithms; maxAssurance may only lower the kind ceiling ('oidc-jwt' → 'verified', others → 'asserted'). */
13842
+ descriptor?: {
13843
+ [key: string]: unknown;
13844
+ };
13845
+ name?: string;
13846
+ /** @enum {string} */
13847
+ provider?: "clerk" | "workos" | "auth0" | "okta" | "better-auth" | "oidc" | "custom";
13848
+ /** @enum {string} */
13849
+ status?: "active" | "disabled";
13850
+ };
13851
+ };
13852
+ };
12372
13853
  responses: {
12373
- /** @description Step results */
13854
+ /** @description Identity integration updated */
12374
13855
  200: {
12375
13856
  headers: {
12376
13857
  [name: string]: unknown;
12377
13858
  };
12378
13859
  content: {
12379
13860
  "application/json": {
12380
- data: {
12381
- batchExecutionId: string | null;
12382
- completedAt: string | null;
12383
- completionTokens?: number | null;
12384
- createdAt: string;
12385
- durationMs: number | null;
12386
- errorMessage?: string | null;
12387
- estimatedCost?: string | null;
12388
- executionSessionId: string | null;
12389
- flowId: string | null;
12390
- flowVersionId: string | null;
12391
- id: string;
12392
- inputVariables?: unknown;
12393
- modelUsed?: string | null;
12394
- order: number | null;
12395
- organizationId: string | null;
12396
- outputPreview: string | null;
12397
- promptTokens?: number | null;
12398
- recordId: string | null;
12399
- recordMetadata?: unknown;
12400
- recordName: string | null;
12401
- resolvedPrompt?: string | null;
12402
- retryCount?: number | null;
12403
- startedAt: string | null;
12404
- status: string;
12405
- stepConfig?: unknown;
12406
- stepId: string | null;
12407
- stepName: string;
12408
- stepType: string;
12409
- totalTokens?: number | null;
12410
- userId: string;
12411
- }[];
12412
- pagination: {
12413
- hasMore: boolean;
12414
- limit: number;
12415
- offset: number;
12416
- returned: number;
13861
+ configuredCredentials: ("clientSecret" | "managementApiKey")[];
13862
+ createdAt: string;
13863
+ descriptor: {
13864
+ [key: string]: unknown;
12417
13865
  };
13866
+ id: string;
13867
+ issuer: string | null;
13868
+ /** @enum {string} */
13869
+ kind: "oidc-jwt" | "session" | "custom";
13870
+ name: string;
13871
+ provider: string;
13872
+ /** @enum {string} */
13873
+ status: "active" | "disabled";
13874
+ updatedAt: string;
12418
13875
  };
12419
13876
  };
12420
13877
  };
12421
- /** @description Invalid parameters */
13878
+ /** @description Invalid descriptor or request body */
12422
13879
  400: {
12423
13880
  headers: {
12424
13881
  [name: string]: unknown;
12425
13882
  };
12426
13883
  content: {
12427
- "application/json": components["schemas"]["Error"];
13884
+ "application/json": {
13885
+ error: string;
13886
+ issues?: {
13887
+ message: string;
13888
+ path: string;
13889
+ }[];
13890
+ };
12428
13891
  };
12429
13892
  };
12430
13893
  /** @description Unauthorized */
@@ -12436,7 +13899,7 @@ interface paths {
12436
13899
  "application/json": components["schemas"]["Error"];
12437
13900
  };
12438
13901
  };
12439
- /** @description Insufficient permissions */
13902
+ /** @description Forbidden */
12440
13903
  403: {
12441
13904
  headers: {
12442
13905
  [name: string]: unknown;
@@ -12445,7 +13908,7 @@ interface paths {
12445
13908
  "application/json": components["schemas"]["Error"];
12446
13909
  };
12447
13910
  };
12448
- /** @description Flow not found */
13911
+ /** @description Not found */
12449
13912
  404: {
12450
13913
  headers: {
12451
13914
  [name: string]: unknown;
@@ -12454,8 +13917,8 @@ interface paths {
12454
13917
  "application/json": components["schemas"]["Error"];
12455
13918
  };
12456
13919
  };
12457
- /** @description Internal server error */
12458
- 500: {
13920
+ /** @description An active integration for this issuer already exists */
13921
+ 409: {
12459
13922
  headers: {
12460
13923
  [name: string]: unknown;
12461
13924
  };
@@ -12465,12 +13928,6 @@ interface paths {
12465
13928
  };
12466
13929
  };
12467
13930
  };
12468
- put?: never;
12469
- post?: never;
12470
- delete?: never;
12471
- options?: never;
12472
- head?: never;
12473
- patch?: never;
12474
13931
  trace?: never;
12475
13932
  };
12476
13933
  "/v1/integration-configs": {
@@ -26964,6 +28421,15 @@ interface paths {
26964
28421
  };
26965
28422
  };
26966
28423
  };
28424
+ /** @description Invalid request */
28425
+ 400: {
28426
+ headers: {
28427
+ [name: string]: unknown;
28428
+ };
28429
+ content: {
28430
+ "application/json": components["schemas"]["Error"];
28431
+ };
28432
+ };
26967
28433
  /** @description Unauthorized */
26968
28434
  401: {
26969
28435
  headers: {
@@ -31469,10 +32935,14 @@ interface paths {
31469
32935
  data: {
31470
32936
  createdAt: string;
31471
32937
  description: string | null;
32938
+ /** @description End User scope (eu_*) when the secret is end-user-scoped; null otherwise. */
32939
+ endUserId: string | null;
31472
32940
  id: string;
31473
32941
  key: string;
31474
32942
  lastRotatedAt: string | null;
31475
32943
  phantomToken: string | null;
32944
+ /** @description Product Tenant scope (tnt_*) when the secret is tenant-scoped; null for org-level. */
32945
+ productTenantId: string | null;
31476
32946
  status: string;
31477
32947
  updatedAt: string;
31478
32948
  valuePreview: string | null;
@@ -31524,7 +32994,9 @@ interface paths {
31524
32994
  content: {
31525
32995
  "application/json": {
31526
32996
  description?: string;
32997
+ endUserId?: string;
31527
32998
  key: string;
32999
+ productTenantId?: string;
31528
33000
  value?: string;
31529
33001
  };
31530
33002
  };
@@ -31540,10 +33012,14 @@ interface paths {
31540
33012
  data: {
31541
33013
  createdAt: string;
31542
33014
  description: string | null;
33015
+ /** @description End User scope (eu_*) when the secret is end-user-scoped; null otherwise. */
33016
+ endUserId: string | null;
31543
33017
  id: string;
31544
33018
  key: string;
31545
33019
  lastRotatedAt: string | null;
31546
33020
  phantomToken: string | null;
33021
+ /** @description Product Tenant scope (tnt_*) when the secret is tenant-scoped; null for org-level. */
33022
+ productTenantId: string | null;
31547
33023
  status: string;
31548
33024
  updatedAt: string;
31549
33025
  valuePreview: string | null;
@@ -32080,10 +33556,14 @@ interface paths {
32080
33556
  data: {
32081
33557
  createdAt: string;
32082
33558
  description: string | null;
33559
+ /** @description End User scope (eu_*) when the secret is end-user-scoped; null otherwise. */
33560
+ endUserId: string | null;
32083
33561
  id: string;
32084
33562
  key: string;
32085
33563
  lastRotatedAt: string | null;
32086
33564
  phantomToken: string | null;
33565
+ /** @description Product Tenant scope (tnt_*) when the secret is tenant-scoped; null for org-level. */
33566
+ productTenantId: string | null;
32087
33567
  status: string;
32088
33568
  updatedAt: string;
32089
33569
  valuePreview: string | null;
@@ -32160,10 +33640,14 @@ interface paths {
32160
33640
  data: {
32161
33641
  createdAt: string;
32162
33642
  description: string | null;
33643
+ /** @description End User scope (eu_*) when the secret is end-user-scoped; null otherwise. */
33644
+ endUserId: string | null;
32163
33645
  id: string;
32164
33646
  key: string;
32165
33647
  lastRotatedAt: string | null;
32166
33648
  phantomToken: string | null;
33649
+ /** @description Product Tenant scope (tnt_*) when the secret is tenant-scoped; null for org-level. */
33650
+ productTenantId: string | null;
32167
33651
  status: string;
32168
33652
  updatedAt: string;
32169
33653
  valuePreview: string | null;
@@ -35820,6 +37304,7 @@ interface paths {
35820
37304
  enableDashboardAssistant: boolean;
35821
37305
  enableRuntypeApps: boolean;
35822
37306
  enableSkillScanner: boolean;
37307
+ usageBasedPricing: boolean;
35823
37308
  };
35824
37309
  id: string;
35825
37310
  orgId?: string | null;
@@ -36367,6 +37852,8 @@ interface components {
36367
37852
  profileTemplate?: string;
36368
37853
  };
36369
37854
  model?: string;
37855
+ /** @enum {string} */
37856
+ piiRedaction?: "default" | "off" | "redact";
36370
37857
  presencePenalty?: number;
36371
37858
  reasoning?: boolean | {
36372
37859
  budgetTokens?: number;
@@ -36391,7 +37878,6 @@ interface components {
36391
37878
  persistence?: "ephemeral" | "conversation" | "named";
36392
37879
  /** @enum {string} */
36393
37880
  provider?: "runtype-sandbox" | "daytona";
36394
- requireApprovalForBash?: boolean;
36395
37881
  /** @enum {string} */
36396
37882
  sleepAfter?: "5m" | "15m" | "30m" | "1h";
36397
37883
  /** @enum {string} */
@@ -36511,6 +37997,16 @@ interface components {
36511
37997
  /** @description Present only when a raw tool_… reference could not be emitted as a portable tool:<name> (the tool was deleted, or its name is shadowed by an older same-named tool). Those references are left as raw ids, which the ensure surface rejects; each warning explains how to fix it. */
36512
37998
  warnings?: string[];
36513
37999
  };
38000
+ AsyncDispatchHandle: {
38001
+ /** @description Present only for ephemeral inline-create dispatch. */
38002
+ claudeManagedAgentId?: string;
38003
+ /** @description The conversation the headless turn belongs to. */
38004
+ conversationId: string;
38005
+ /** @description The durable execution id — reconnect/poll with this. */
38006
+ executionId: string;
38007
+ /** @description Lifecycle status at acceptance (e.g. 'running'). */
38008
+ status: string;
38009
+ };
36514
38010
  DailyUsageResponse: {
36515
38011
  daily?: {
36516
38012
  atSpendLimit: boolean;
@@ -36591,6 +38087,22 @@ interface components {
36591
38087
  }[];
36592
38088
  error: string;
36593
38089
  };
38090
+ EvalCase: {
38091
+ createdAt: string;
38092
+ enabled: boolean;
38093
+ expected?: unknown;
38094
+ id: string;
38095
+ /** @description { variables?, messages? } — what the case feeds the target. */
38096
+ input?: unknown;
38097
+ name: string;
38098
+ notes: string | null;
38099
+ origin: string;
38100
+ suiteId: string;
38101
+ updatedAt: string;
38102
+ };
38103
+ EvalCasesCreated: {
38104
+ cases: components["schemas"]["EvalCase"][];
38105
+ };
36594
38106
  EvalEnsureResponse: {
36595
38107
  /** @description Server-computed canonical content hash. Clients should echo this hash in probes. */
36596
38108
  contentHash: string;
@@ -36638,6 +38150,115 @@ interface components {
36638
38150
  suiteId: string;
36639
38151
  updatedAt: string | null;
36640
38152
  };
38153
+ EvalRunScoresResponse: {
38154
+ cases: {
38155
+ /** @description The saved eval case id; null when the case row was deleted or the record could not be mapped to a case. */
38156
+ caseId: string | null;
38157
+ name: string;
38158
+ outcomes: {
38159
+ graderIndex: number;
38160
+ kind: string;
38161
+ passed: boolean;
38162
+ reasoning?: string;
38163
+ score?: number;
38164
+ /**
38165
+ * @description Grader severity. A soft miss is reported but only fails the suite under strict mode. Absent ⇒ gate.
38166
+ * @enum {string}
38167
+ */
38168
+ severity?: "gate" | "soft";
38169
+ }[];
38170
+ /** @description Truncated snapshot of the output that was graded (2000 chars max). */
38171
+ outputExcerpt: string;
38172
+ /** @description Recomputed from the persisted outcomes using the run's recorded strict mode, so historical verdicts match what the run originally reported. */
38173
+ passed: boolean;
38174
+ }[];
38175
+ /** @description The eval name recorded on the run. */
38176
+ name: string | null;
38177
+ passedCases: number;
38178
+ /** @description The run (batch execution) id these scores belong to. */
38179
+ runId: string;
38180
+ /** @description Suite score, 0..1 (passed cases / total cases); null when the run has no cases. */
38181
+ score: number | null;
38182
+ /** @description The severity semantics the run was graded with (and that these verdicts reproduce): true when a soft grader miss failed its case. */
38183
+ strict: boolean;
38184
+ /** @description The eval suite the run executed; null when the suite was since deleted. */
38185
+ suiteId: string | null;
38186
+ totalCases: number;
38187
+ };
38188
+ EvalSuiteDetail: {
38189
+ agentId: string | null;
38190
+ baselineBatchExecutionId: string | null;
38191
+ caseCount: number;
38192
+ cases: components["schemas"]["EvalCase"][];
38193
+ createdAt: string;
38194
+ description: string | null;
38195
+ enabledCaseCount: number;
38196
+ flowId: string | null;
38197
+ /** @description Ordered GraderConfig[] applied to every case. */
38198
+ graders: unknown[];
38199
+ id: string;
38200
+ isDefault: boolean;
38201
+ /** @description Provenance of the last Definition write. 'sdk' / 'terraform' mean the suite is managed in code (converged by ensure on deploy). */
38202
+ lastModifiedSource: string | null;
38203
+ latestRun: components["schemas"]["EvalSuiteLatestRun"];
38204
+ name: string;
38205
+ /** @description Display name of the target flow/agent; null when the target row is gone. */
38206
+ targetName: string | null;
38207
+ /** @enum {string} */
38208
+ targetType: "flow" | "agent";
38209
+ updatedAt: string;
38210
+ };
38211
+ EvalSuiteLatestRun: {
38212
+ completedAt: string | null;
38213
+ passedCases: number | null;
38214
+ runId: string;
38215
+ /** @description Suite score of the run, 0..1; null while unscored (in flight / unscoreable). */
38216
+ score: number | null;
38217
+ startedAt: string;
38218
+ status: string;
38219
+ totalCases: number | null;
38220
+ } | null;
38221
+ EvalSuiteListResponse: {
38222
+ /** @description Number of suites in this page. */
38223
+ count: number;
38224
+ limit: number;
38225
+ offset: number;
38226
+ suites: components["schemas"]["EvalSuiteSummary"][];
38227
+ /** @description Total suites matching the filter across all pages (for offset pagination). */
38228
+ total: number;
38229
+ };
38230
+ EvalSuiteRunQueued: {
38231
+ /** @enum {string} */
38232
+ mode: "batch";
38233
+ name: string;
38234
+ /** @description The queued run id. Poll GET /eval/{runId}/results for progress and GET /eval/runs/{runId}/scores for grader scores once completed. */
38235
+ runId: string;
38236
+ status: string;
38237
+ suiteId: string;
38238
+ totalCases: number;
38239
+ };
38240
+ EvalSuiteSummary: {
38241
+ agentId: string | null;
38242
+ baselineBatchExecutionId: string | null;
38243
+ caseCount: number;
38244
+ createdAt: string;
38245
+ description: string | null;
38246
+ enabledCaseCount: number;
38247
+ flowId: string | null;
38248
+ /** @description Ordered GraderConfig[] applied to every case. */
38249
+ graders: unknown[];
38250
+ id: string;
38251
+ isDefault: boolean;
38252
+ /** @description Provenance of the last Definition write. 'sdk' / 'terraform' mean the suite is managed in code (converged by ensure on deploy). */
38253
+ lastModifiedSource: string | null;
38254
+ latestRun: components["schemas"]["EvalSuiteLatestRun"];
38255
+ name: string;
38256
+ /** @description Display name of the target flow/agent; null when the target row is gone. */
38257
+ targetName: string | null;
38258
+ /** @enum {string} */
38259
+ targetType: "flow" | "agent";
38260
+ updatedAt: string;
38261
+ };
36641
38262
  ExecutionStreamEvent: {
36642
38263
  agentId?: string;
36643
38264
  agentName?: string;
@@ -36678,6 +38299,7 @@ interface components {
36678
38299
  /** @enum {string} */
36679
38300
  type: "execution_complete";
36680
38301
  } | {
38302
+ blockReason?: string;
36681
38303
  code?: string;
36682
38304
  completedAt?: string;
36683
38305
  error: string | {
@@ -36981,6 +38603,7 @@ interface components {
36981
38603
  startedAt?: string;
36982
38604
  subagent?: {
36983
38605
  agentName?: string;
38606
+ parentToolCallId?: string;
36984
38607
  toolName: string;
36985
38608
  };
36986
38609
  timeout?: number;
@@ -37151,6 +38774,7 @@ interface components {
37151
38774
  /** @enum {string} */
37152
38775
  type: "flow_complete";
37153
38776
  } | {
38777
+ blockReason?: string;
37154
38778
  code?: string;
37155
38779
  error: string | {
37156
38780
  code: string;
@@ -37172,6 +38796,7 @@ interface components {
37172
38796
  type: "flow_error";
37173
38797
  upgradeUrl?: string;
37174
38798
  } | {
38799
+ approvalId?: string;
37175
38800
  awaitReason?: string;
37176
38801
  awaitedAt: string;
37177
38802
  crawlId?: string;
@@ -37185,6 +38810,7 @@ interface components {
37185
38810
  };
37186
38811
  seq?: number;
37187
38812
  stepId?: string;
38813
+ timeout?: number;
37188
38814
  toolCallId?: string;
37189
38815
  toolId?: string;
37190
38816
  toolName?: string;
@@ -37667,6 +39293,8 @@ interface components {
37667
39293
  /** @description True when every case passed every grader. */
37668
39294
  passed: boolean;
37669
39295
  passedCases: number;
39296
+ /** @description The persisted run id — query its scores via GET /eval/runs/{runId}/scores. Null for an ephemeral (virtual/inline) run. */
39297
+ runId: string | null;
37670
39298
  /** @description Suite score, 0..1 (passed cases / total cases). */
37671
39299
  score: number;
37672
39300
  suiteId: string | null;
@@ -38425,6 +40053,7 @@ interface RecordFilter {
38425
40053
  type: string;
38426
40054
  where?: RecordFilterCondition | RecordFilterGroup;
38427
40055
  }
40056
+ /** @deprecated Use {@link GetRecordStepConfig} (single record) or {@link ListRecordsStepConfig} (multiple records) instead. Cardinality on `retrieve-record` depends on the lookup method, which is a common source of bugs. */
38428
40057
  interface RetrieveRecordStepConfig$1 {
38429
40058
  name: string;
38430
40059
  retrievalMode?: 'id' | 'query';
@@ -38449,6 +40078,63 @@ interface RetrieveRecordStepConfig$1 {
38449
40078
  /** JavaScript predicate evaluated at runtime. If falsy, the step is skipped. */
38450
40079
  when?: string;
38451
40080
  }
40081
+ /**
40082
+ * Config for a `get-record` step — always returns a SINGLE record object.
40083
+ * Lookup by `recordId`, by `recordType` (+ optional `recordName`), or by a
40084
+ * chip-style `recordFilter` (most-recently-updated match wins). Fails the
40085
+ * step if no record matches.
40086
+ */
40087
+ interface GetRecordStepConfig$1 {
40088
+ name: string;
40089
+ recordId?: string;
40090
+ recordType?: string;
40091
+ recordName?: string;
40092
+ /**
40093
+ * Optional chip-style filter (metadata + top-level columns: id, name,
40094
+ * createdAt, updatedAt). Coexists with recordType/recordName; the API
40095
+ * executor prefers recordFilter when both are set.
40096
+ */
40097
+ recordFilter?: RecordFilter;
40098
+ fieldsToInclude?: string | string[];
40099
+ fieldsToExclude?: string | string[];
40100
+ availableFields?: string[];
40101
+ outputVariable?: string;
40102
+ includeMetadata?: boolean;
40103
+ streamOutput?: boolean;
40104
+ enabled?: boolean;
40105
+ /** JavaScript predicate evaluated at runtime. If falsy, the step is skipped. */
40106
+ when?: string;
40107
+ }
40108
+ /**
40109
+ * Config for a `list-records` step — always returns an ARRAY of records
40110
+ * (newest-first), even for a single match. Lookup by `recordType`,
40111
+ * `recordName`, or `recordFilter` (no `recordId` — single-by-id is
40112
+ * {@link GetRecordStepConfig}).
40113
+ */
40114
+ interface ListRecordsStepConfig$1 {
40115
+ name: string;
40116
+ recordType?: string;
40117
+ recordName?: string;
40118
+ /**
40119
+ * Optional chip-style filter (metadata + top-level columns: id, name,
40120
+ * createdAt, updatedAt). Coexists with recordType/recordName; the API
40121
+ * executor prefers recordFilter when both are set.
40122
+ */
40123
+ recordFilter?: RecordFilter;
40124
+ /** Max records returned (default 50, capped at 1000). */
40125
+ limit?: number;
40126
+ /** Zero-match behavior: `'succeed'` (default) returns `[]`; `'fail'` fails the step. */
40127
+ onEmpty?: 'succeed' | 'fail';
40128
+ fieldsToInclude?: string | string[];
40129
+ fieldsToExclude?: string | string[];
40130
+ availableFields?: string[];
40131
+ outputVariable?: string;
40132
+ includeMetadata?: boolean;
40133
+ streamOutput?: boolean;
40134
+ enabled?: boolean;
40135
+ /** JavaScript predicate evaluated at runtime. If falsy, the step is skipped. */
40136
+ when?: string;
40137
+ }
38452
40138
  interface UpsertRecordStepConfig$1 {
38453
40139
  name: string;
38454
40140
  recordType: string;
@@ -38858,8 +40544,17 @@ declare class FlowBuilder {
38858
40544
  sendStream(config: SendStreamStepConfig$1): this;
38859
40545
  /**
38860
40546
  * Add a retrieve record step
40547
+ * @deprecated use {@link getRecord} (single record) or {@link listRecords} (multiple records) instead.
38861
40548
  */
38862
40549
  retrieveRecord(config: RetrieveRecordStepConfig$1): this;
40550
+ /**
40551
+ * Add a get-record step. Always returns a single record object.
40552
+ */
40553
+ getRecord(config: GetRecordStepConfig$1): this;
40554
+ /**
40555
+ * Add a list-records step. Always returns an array of records (newest-first).
40556
+ */
40557
+ listRecords(config: ListRecordsStepConfig$1): this;
38863
40558
  /**
38864
40559
  * Add an upsert record step
38865
40560
  */
@@ -39953,11 +41648,13 @@ type ReasoningValue = boolean | ReasoningConfig;
39953
41648
  * Generated from the OpenAPI spec — the `data` payload of GET /v1/secrets/{id}.
39954
41649
  */
39955
41650
  type Secret = paths['/v1/secrets/{id}']['get']['responses'][200]['content']['application/json']['data'];
39956
- interface CreateSecretRequest {
39957
- key: string;
39958
- value?: string;
39959
- description?: string;
39960
- }
41651
+ /**
41652
+ * Request body for POST /v1/secrets, derived from the generated OpenAPI spec so
41653
+ * it can never drift from the route. Carries the multi-tenancy scope params
41654
+ * (`productTenantId` / `endUserId`) — omit both for an org-level secret (the
41655
+ * default); a tenant- or end-user-scoped secret requires a value.
41656
+ */
41657
+ type CreateSecretRequest = NonNullable<paths['/v1/secrets']['post']['requestBody']>['content']['application/json'];
39961
41658
  interface UpdateSecretRequest {
39962
41659
  value?: string;
39963
41660
  description?: string;
@@ -40354,7 +42051,7 @@ type CheckGrader = CheckGraderShape & {
40354
42051
  severity?: GraderSeverity;
40355
42052
  };
40356
42053
  /** Built-in AI-grader preset ids (mirror of `BUILT_IN_GRADER_IDS`). */
40357
- type BuiltInGraderId = 'answersQuestion' | 'matchesExpected' | 'followsInstructions' | 'grounded' | 'rightTone' | 'safeToSend';
42054
+ type BuiltInGraderId = 'answersQuestion' | 'matchesExpected' | 'followsInstructions' | 'grounded' | 'rightTone' | 'safeToSend' | 'staysOnTask' | 'sameLanguage' | 'refusesWhenItShould' | 'noPersonalData';
40358
42055
  /** LLM-as-judge over plain-language criteria. Scored by the api grader executor. */
40359
42056
  interface AIGrader {
40360
42057
  kind: 'ai';
@@ -40473,6 +42170,10 @@ declare const judges: {
40473
42170
  readonly grounded: () => Gradeable<AIGrader>;
40474
42171
  readonly rightTone: (voice?: string) => Gradeable<AIGrader>;
40475
42172
  readonly safeToSend: () => Gradeable<AIGrader>;
42173
+ readonly staysOnTask: () => Gradeable<AIGrader>;
42174
+ readonly sameLanguage: () => Gradeable<AIGrader>;
42175
+ readonly refusesWhenItShould: () => Gradeable<AIGrader>;
42176
+ readonly noPersonalData: () => Gradeable<AIGrader>;
40476
42177
  };
40477
42178
  interface EvalMessage {
40478
42179
  role: 'user' | 'assistant' | 'system';
@@ -40611,6 +42312,11 @@ interface RunEvalResult {
40611
42312
  suiteId: string | null;
40612
42313
  name: string;
40613
42314
  targetType: 'flow' | 'agent';
42315
+ /**
42316
+ * The persisted run id (scores queryable via `GET /eval/runs/{runId}/scores`),
42317
+ * or `null` for an ephemeral (virtual/inline) run.
42318
+ */
42319
+ runId: string | null;
40614
42320
  /** Suite score, 0..1 (passed cases / total cases). */
40615
42321
  score: number;
40616
42322
  /** True when every case passed every grader. */
@@ -40619,6 +42325,32 @@ interface RunEvalResult {
40619
42325
  passedCases: number;
40620
42326
  cases: RunEvalCaseResult[];
40621
42327
  }
42328
+ /** One case's persisted scores, as returned by `GET /eval/runs/{runId}/scores`. */
42329
+ interface EvalRunCaseScores {
42330
+ /** The saved eval case id; null when the case was deleted or unmapped. */
42331
+ caseId: string | null;
42332
+ name: string;
42333
+ /** Recomputed from the persisted outcomes with non-strict severity semantics. */
42334
+ passed: boolean;
42335
+ outcomes: GraderOutcome[];
42336
+ /** Truncated snapshot of the output that was graded. */
42337
+ outputExcerpt: string;
42338
+ }
42339
+ /** Persisted per-case grader scores for a run (`client.evals.getRunScores`). */
42340
+ interface EvalRunScores {
42341
+ runId: string;
42342
+ /** The suite the run executed; null when the suite was since deleted. */
42343
+ suiteId: string | null;
42344
+ /** The eval name recorded on the run. */
42345
+ name: string | null;
42346
+ /** The severity semantics the run was graded with (soft misses fail when true). */
42347
+ strict: boolean;
42348
+ /** Suite score, 0..1; null when the run has no persisted scores. */
42349
+ score: number | null;
42350
+ totalCases: number;
42351
+ passedCases: number;
42352
+ cases: EvalRunCaseScores[];
42353
+ }
40622
42354
  /**
40623
42355
  * Run a saved suite by id (the post-`ensure` path) XOR an inline definition (the
40624
42356
  * `virtual` path — nothing is persisted). Exactly one must be provided.
@@ -40626,10 +42358,14 @@ interface RunEvalResult {
40626
42358
  * `strict` (default false) is the `runtype eval --strict` gate: a `soft` grader
40627
42359
  * miss fails its case like a `gate` miss. Without it, soft misses are reported
40628
42360
  * per-outcome but do not fail the suite.
42361
+ *
42362
+ * Saved-suite runs persist by default (a durable run + per-case scores, the
42363
+ * dashboard's run-history data source); `virtual: true` skips persistence.
40629
42364
  */
40630
42365
  type RunEvalInput = {
40631
42366
  suiteId: string;
40632
42367
  strict?: boolean;
42368
+ virtual?: boolean;
40633
42369
  } | {
40634
42370
  definition: EvalDefinition;
40635
42371
  strict?: boolean;
@@ -40892,6 +42628,8 @@ type SearchStepConfig = NamespaceStepConfig<SearchStepConfig$1>;
40892
42628
  type SendEmailStepConfig = NamespaceStepConfig<SendEmailStepConfig$1>;
40893
42629
  type SendStreamStepConfig = NamespaceStepConfig<SendStreamStepConfig$1>;
40894
42630
  type RetrieveRecordStepConfig = NamespaceStepConfig<RetrieveRecordStepConfig$1>;
42631
+ type GetRecordStepConfig = NamespaceStepConfig<GetRecordStepConfig$1>;
42632
+ type ListRecordsStepConfig = NamespaceStepConfig<ListRecordsStepConfig$1>;
40895
42633
  type UpsertRecordStepConfig = NamespaceStepConfig<UpsertRecordStepConfig$1>;
40896
42634
  type VectorSearchStepConfig = NamespaceStepConfig<VectorSearchStepConfig$1>;
40897
42635
  type GenerateEmbeddingStepConfig = NamespaceStepConfig<GenerateEmbeddingStepConfig$1>;
@@ -41078,8 +42816,17 @@ declare class RuntypeFlowBuilder {
41078
42816
  sendStream(config: SendStreamStepConfig): this;
41079
42817
  /**
41080
42818
  * Add a retrieve record step
42819
+ * @deprecated use {@link getRecord} (single record) or {@link listRecords} (multiple records) instead.
41081
42820
  */
41082
42821
  retrieveRecord(config: RetrieveRecordStepConfig): this;
42822
+ /**
42823
+ * Add a get-record step. Always returns a single record object.
42824
+ */
42825
+ getRecord(config: GetRecordStepConfig): this;
42826
+ /**
42827
+ * Add a list-records step. Always returns an array of records (newest-first).
42828
+ */
42829
+ listRecords(config: ListRecordsStepConfig): this;
41083
42830
  /**
41084
42831
  * Add an upsert record step
41085
42832
  */
@@ -41357,6 +43104,171 @@ declare class BatchesNamespace {
41357
43104
  }>;
41358
43105
  }
41359
43106
 
43107
+ /**
43108
+ * Eval-suite CRUD + case management + run — the SDK surface for the
43109
+ * `/v1/eval/suites` REST family (Beginner-First Evals).
43110
+ *
43111
+ * This is the imperative, id-addressed counterpart of the config-as-code
43112
+ * surface in `evals-ensure.ts` (`defineEval` / `ensure` / `pull`): use ensure
43113
+ * to converge a repo-authored suite on deploy, and this namespace to inspect
43114
+ * or manage suites, edit test cases (server-authoritative data), and start
43115
+ * runs. Exposed as `client.evals.suites.*`.
43116
+ */
43117
+
43118
+ /** The most recent run of a suite, with its score once graded. */
43119
+ interface EvalSuiteLatestRun {
43120
+ runId: string;
43121
+ status: string;
43122
+ startedAt: string;
43123
+ completedAt: string | null;
43124
+ /** Suite score of the run, 0..1; null while unscored. */
43125
+ score: number | null;
43126
+ totalCases: number | null;
43127
+ passedCases: number | null;
43128
+ }
43129
+ /** A suite as returned by list/update (no cases). */
43130
+ interface EvalSuiteSummary {
43131
+ id: string;
43132
+ name: string;
43133
+ description: string | null;
43134
+ targetType: 'flow' | 'agent';
43135
+ flowId: string | null;
43136
+ agentId: string | null;
43137
+ /** Display name of the target flow/agent; null when the target row is gone. */
43138
+ targetName: string | null;
43139
+ graders: GraderConfig[];
43140
+ isDefault: boolean;
43141
+ baselineBatchExecutionId: string | null;
43142
+ /** 'sdk' / 'terraform' mean the suite Definition is managed in code. */
43143
+ lastModifiedSource: string | null;
43144
+ caseCount: number;
43145
+ enabledCaseCount: number;
43146
+ latestRun: EvalSuiteLatestRun | null;
43147
+ createdAt: string;
43148
+ updatedAt: string;
43149
+ }
43150
+ /** A persisted test case. */
43151
+ interface EvalSuiteCase {
43152
+ id: string;
43153
+ suiteId: string;
43154
+ name: string;
43155
+ input: EvalCaseInput;
43156
+ expected: CaseExpected | null;
43157
+ notes: string | null;
43158
+ origin: string;
43159
+ enabled: boolean;
43160
+ createdAt: string;
43161
+ updatedAt: string;
43162
+ }
43163
+ /** A suite as returned by create/get — the summary plus its cases. */
43164
+ interface EvalSuiteDetail extends EvalSuiteSummary {
43165
+ cases: EvalSuiteCase[];
43166
+ }
43167
+ /** One case to create. */
43168
+ interface EvalSuiteCaseInput {
43169
+ name: string;
43170
+ input?: EvalCaseInput;
43171
+ expected?: CaseExpected;
43172
+ notes?: string;
43173
+ enabled?: boolean;
43174
+ }
43175
+ /** Input to `client.evals.suites.create`. Exactly one of flowId/agentId. */
43176
+ interface CreateEvalSuiteInput {
43177
+ name: string;
43178
+ description?: string;
43179
+ flowId?: string;
43180
+ agentId?: string;
43181
+ /** Ordered graders applied to every case. */
43182
+ graders?: GraderConfig[];
43183
+ /** Make this the default eval for its target. */
43184
+ isDefault?: boolean;
43185
+ /** Optional initial cases. */
43186
+ cases?: EvalSuiteCaseInput[];
43187
+ }
43188
+ /** Input to `client.evals.suites.update`. The target is immutable. */
43189
+ interface UpdateEvalSuiteInput {
43190
+ name?: string;
43191
+ description?: string | null;
43192
+ graders?: GraderConfig[];
43193
+ isDefault?: boolean;
43194
+ /** Pin a run of this suite as the comparison baseline; null clears the pin. */
43195
+ baselineBatchExecutionId?: string | null;
43196
+ }
43197
+ /** Input to `client.evals.suites.updateCase`. */
43198
+ interface UpdateEvalCaseInput {
43199
+ name?: string;
43200
+ input?: EvalCaseInput;
43201
+ expected?: CaseExpected | null;
43202
+ notes?: string | null;
43203
+ enabled?: boolean;
43204
+ }
43205
+ interface EvalSuiteListResult {
43206
+ suites: EvalSuiteSummary[];
43207
+ limit: number;
43208
+ offset: number;
43209
+ /** Number of suites in this page. */
43210
+ count: number;
43211
+ /** Total suites matching the filter across all pages (for offset pagination). */
43212
+ total: number;
43213
+ }
43214
+ /** A large suite queued as a durable run (graded when it completes). */
43215
+ interface EvalSuiteRunQueued {
43216
+ mode: 'batch';
43217
+ /** Poll `client.evals.getRunScores(runId)` once the run completes. */
43218
+ runId: string;
43219
+ suiteId: string;
43220
+ name: string;
43221
+ status: string;
43222
+ totalCases: number;
43223
+ }
43224
+ /**
43225
+ * The result of `client.evals.suites.run`: the full scored result when the
43226
+ * suite ran synchronously, or a queued handle for a durable run. Discriminate
43227
+ * with `'mode' in result` (queued) or `'cases' in result` (sync).
43228
+ */
43229
+ type EvalSuiteRunResult = RunEvalResult | EvalSuiteRunQueued;
43230
+ declare class EvalSuitesNamespace {
43231
+ private getClient;
43232
+ constructor(getClient: () => RuntypeClient$1);
43233
+ /** Create an eval suite attached to one flow or agent, optionally with cases. */
43234
+ create(input: CreateEvalSuiteInput): Promise<EvalSuiteDetail>;
43235
+ /** List suites (case counts + latest run/score). Filter by target. */
43236
+ list(params?: {
43237
+ flowId?: string;
43238
+ agentId?: string;
43239
+ limit?: number;
43240
+ offset?: number;
43241
+ }): Promise<EvalSuiteListResult>;
43242
+ /** Get a suite including its cases and latest run/score. */
43243
+ get(suiteId: string): Promise<EvalSuiteDetail>;
43244
+ /** Update a suite's Definition (name, description, graders) or state (default, baseline). */
43245
+ update(suiteId: string, input: UpdateEvalSuiteInput): Promise<EvalSuiteSummary>;
43246
+ /** Delete a suite and its cases. Past runs keep their persisted scores. */
43247
+ delete(suiteId: string): Promise<{
43248
+ success: boolean;
43249
+ }>;
43250
+ /**
43251
+ * Run every enabled case against the suite's target and grade the outputs.
43252
+ * Suites within the synchronous case limit run inline and return the scored
43253
+ * result; larger suites queue a durable run (`mode: 'batch'`) that is graded
43254
+ * on completion. Both persist per-case scores to the same run history.
43255
+ */
43256
+ run(suiteId: string, options?: {
43257
+ strict?: boolean;
43258
+ mode?: 'sync' | 'batch';
43259
+ }): Promise<EvalSuiteRunResult>;
43260
+ /** Add one or more test cases to a suite. */
43261
+ addCases(suiteId: string, cases: EvalSuiteCaseInput[]): Promise<{
43262
+ cases: EvalSuiteCase[];
43263
+ }>;
43264
+ /** Edit, enable, or disable a test case. */
43265
+ updateCase(suiteId: string, caseId: string, input: UpdateEvalCaseInput): Promise<EvalSuiteCase>;
43266
+ /** Delete a test case. Past runs keep the case's persisted scores. */
43267
+ deleteCase(suiteId: string, caseId: string): Promise<{
43268
+ success: boolean;
43269
+ }>;
43270
+ }
43271
+
41360
43272
  /**
41361
43273
  * EvalsNamespace - Static namespace for evaluation operations
41362
43274
  *
@@ -41509,6 +43421,17 @@ declare class EvalRunner {
41509
43421
  }
41510
43422
  declare class EvalsNamespace {
41511
43423
  private getClient;
43424
+ /**
43425
+ * Id-addressed eval-suite management (`/v1/eval/suites` CRUD + cases + run).
43426
+ * The imperative counterpart of the config-as-code `ensure`/`pull` pair.
43427
+ *
43428
+ * @example
43429
+ * ```typescript
43430
+ * const { suites } = await Runtype.evals.suites.list({ flowId: 'flow_123' })
43431
+ * const result = await Runtype.evals.suites.run(suites[0].id)
43432
+ * ```
43433
+ */
43434
+ readonly suites: EvalSuitesNamespace;
41512
43435
  constructor(getClient: () => RuntypeClient$1);
41513
43436
  /**
41514
43437
  * Run an evaluation
@@ -41576,6 +43499,20 @@ declare class EvalsNamespace {
41576
43499
  * ```
41577
43500
  */
41578
43501
  runSuite(input: RunEvalInput): Promise<RunEvalResult>;
43502
+ /**
43503
+ * Read back the persisted per-case grader scores for a run, using the
43504
+ * `runId` a persisted `runSuite` call returns (null for virtual/inline runs).
43505
+ *
43506
+ * @example
43507
+ * ```typescript
43508
+ * const result = await Runtype.evals.runSuite({ suiteId })
43509
+ * if (result.runId) {
43510
+ * const scores = await Runtype.evals.getRunScores(result.runId)
43511
+ * console.log(scores.score, scores.cases.length)
43512
+ * }
43513
+ * ```
43514
+ */
43515
+ getRunScores(runId: string): Promise<EvalRunScores>;
41579
43516
  /**
41580
43517
  * Get evaluation status by ID
41581
43518
  *
@@ -43394,6 +45331,10 @@ declare class RuntypeClient$1 {
43394
45331
  * Generic PUT request
43395
45332
  */
43396
45333
  put<T>(path: string, data?: unknown): Promise<T>;
45334
+ /**
45335
+ * Generic PATCH request
45336
+ */
45337
+ patch<T>(path: string, data?: unknown): Promise<T>;
43397
45338
  /**
43398
45339
  * Generic DELETE request
43399
45340
  */
@@ -45333,9 +47274,31 @@ interface AgentExecuteResponse {
45333
47274
  input: number;
45334
47275
  output: number;
45335
47276
  };
45336
- stopReason: 'complete' | 'end_turn' | 'max_turns' | 'max_cost' | 'timeout' | 'error';
47277
+ stopReason: 'complete' | 'end_turn' | 'max_turns' | 'max_cost' | 'timeout' | 'error' | 'paused';
45337
47278
  reflections?: string[];
45338
47279
  error?: string;
47280
+ /**
47281
+ * Terminal execution status. `'paused'` when a tool call tripped an approval
47282
+ * gate (`config.tools.approval`) or a local/client tool call — the run is
47283
+ * awaiting the caller, not finished. Present on non-streaming responses.
47284
+ */
47285
+ status?: 'completed' | 'failed' | 'paused';
47286
+ /**
47287
+ * Set when `status === 'paused'`. Resolve an approval gate with
47288
+ * `AgentsEndpoint.approve({ executionId, approvalId, decision })`; resume a
47289
+ * local-tool pause with `AgentsEndpoint.resume({ executionId, toolOutputs })`.
47290
+ */
47291
+ pausedReason?: {
47292
+ type: string;
47293
+ executionId: string;
47294
+ toolId?: string;
47295
+ toolName?: string;
47296
+ parameters?: Record<string, unknown>;
47297
+ /** `'approval_required'` for an approval gate; absent for a local-tool pause. */
47298
+ awaitReason?: string;
47299
+ /** The id passed to `approve()` (with `executionId`) to resolve the gate. */
47300
+ approvalId?: string;
47301
+ };
45339
47302
  }
45340
47303
  interface LocalToolExecutionLoopSnapshot {
45341
47304
  executionId: string;
@@ -47597,6 +49560,73 @@ declare const STEP_FIELD_REGISTRY: {
47597
49560
  readonly key: "streamOutput";
47598
49561
  readonly format: "raw";
47599
49562
  }];
49563
+ readonly 'get-record': readonly [{
49564
+ readonly key: "recordId";
49565
+ readonly format: "json";
49566
+ }, {
49567
+ readonly key: "recordType";
49568
+ readonly format: "json";
49569
+ }, {
49570
+ readonly key: "recordName";
49571
+ readonly format: "json";
49572
+ }, {
49573
+ readonly key: "recordFilter";
49574
+ readonly format: "value";
49575
+ }, {
49576
+ readonly key: "fieldsToInclude";
49577
+ readonly format: "json";
49578
+ }, {
49579
+ readonly key: "fieldsToExclude";
49580
+ readonly format: "json";
49581
+ }, {
49582
+ readonly key: "availableFields";
49583
+ readonly format: "value";
49584
+ }, {
49585
+ readonly key: "outputVariable";
49586
+ readonly format: "json";
49587
+ }, {
49588
+ readonly key: "includeMetadata";
49589
+ readonly format: "raw";
49590
+ }, {
49591
+ readonly key: "streamOutput";
49592
+ readonly format: "raw";
49593
+ }];
49594
+ readonly 'list-records': readonly [{
49595
+ readonly key: "recordType";
49596
+ readonly format: "json";
49597
+ }, {
49598
+ readonly key: "recordName";
49599
+ readonly format: "json";
49600
+ }, {
49601
+ readonly key: "recordFilter";
49602
+ readonly format: "value";
49603
+ }, {
49604
+ readonly key: "limit";
49605
+ readonly format: "raw";
49606
+ readonly skipDefault: 50;
49607
+ }, {
49608
+ readonly key: "onEmpty";
49609
+ readonly format: "json";
49610
+ readonly skipDefault: "succeed";
49611
+ }, {
49612
+ readonly key: "fieldsToInclude";
49613
+ readonly format: "json";
49614
+ }, {
49615
+ readonly key: "fieldsToExclude";
49616
+ readonly format: "json";
49617
+ }, {
49618
+ readonly key: "availableFields";
49619
+ readonly format: "value";
49620
+ }, {
49621
+ readonly key: "outputVariable";
49622
+ readonly format: "json";
49623
+ }, {
49624
+ readonly key: "includeMetadata";
49625
+ readonly format: "raw";
49626
+ }, {
49627
+ readonly key: "streamOutput";
49628
+ readonly format: "raw";
49629
+ }];
47600
49630
  readonly 'upsert-record': readonly [{
47601
49631
  readonly key: "recordType";
47602
49632
  readonly format: "json";
@@ -47841,6 +49871,8 @@ declare const STEP_TYPE_TO_METHOD: {
47841
49871
  readonly 'fetch-url': "fetchUrl";
47842
49872
  readonly 'api-call': "apiCall";
47843
49873
  readonly 'retrieve-record': "retrieveRecord";
49874
+ readonly 'get-record': "getRecord";
49875
+ readonly 'list-records': "listRecords";
47844
49876
  readonly 'fetch-github': "fetchGitHub";
47845
49877
  readonly 'transform-data': "transformData";
47846
49878
  readonly template: "template";
@@ -48214,4 +50246,4 @@ declare function getLikelySupportingCandidatePaths(bestCandidatePath: string | u
48214
50246
  declare function getDefaultPlanPath(taskName: string): string;
48215
50247
  declare function sanitizeTaskSlug(taskName: string): string;
48216
50248
 
48217
- export { type AIGrader, type Agent, type AgentApprovalCompleteEvent, type AgentApprovalStartEvent, type AgentCompleteEvent, type AgentDefinition, type AgentDefinitionConfig, AgentDriftError, AgentEnsureConflictError, type AgentErrorEvent, type AgentEvent, type AgentEventType, type AgentExecuteRequest, type AgentExecuteResponse, type AgentIterationCompleteEvent, type AgentIterationStartEvent, type AgentMediaEvent, type AgentMessage, type AgentPausedEvent, type AgentPingEvent, type AgentPullResult, type AgentReflectionEvent, type AgentRuntimeToolDefinition, type AgentStartEvent, type AgentStreamCallbacks, type AgentStreamEvent, type AgentSubagentConfig, type AgentToolCompleteEvent, type AgentToolDeltaEvent, type AgentToolInputCompleteEvent, type AgentToolInputDeltaEvent, type AgentToolStartEvent, type AgentTurnCompleteEvent, type AgentTurnDeltaEvent, type AgentTurnStartEvent, type AgentVersionDetail, type AgentVersionListItem, type AgentVersionPublishResponse, AgentVersionsEndpoint, type AgentVersionsListResponse, AgentsEndpoint, AgentsNamespace, AnalyticsEndpoint, type ApiClient, type ApiKey, ApiKeysEndpoint, type ApiResponse, type App, type AppManifest, type AppVersion, type ApplyGeneratedProposalOptions, type ApplyGeneratedProposalResult, AppsEndpoint, type AssetReferenceContentPart, type AttachRuntimeToolsOptions, type BaseAgentEvent, BatchBuilder, type BatchClient, type BatchListParams, type BatchOptions, type BatchRequest, type BatchResult, type BatchScheduleConfig, type BatchStatus, BatchesNamespace, BillingEndpoint, type BillingSpendAnalyticsParams, type BindSkillInput, type BuiltInGraderId, type BuiltInTool, type BulkEditCondition, type BulkEditRequest, type BulkEditResponse, type BulkEditResult, type CaseExpected, ChatEndpoint, type CheckGrader, ClientBatchBuilder, type ClientConfig, type ClientConversation, ClientEvalBuilder, ClientFlowBuilder, type ClientToken, type ClientTokenConfig, type ClientTokenEnvironment, type ClientTokenVersionPin, ClientTokensEndpoint, type ClientToolDefinition, type ClientWidgetTheme, type ConditionalGetResult, type ConditionalStepConfig$1 as ConditionalStepConfig, type ContextErrorHandling, type ContextFallback, ContextTemplatesEndpoint, type Conversation, type ConversationListItem, type ConversationListParams, type ConversationMessage, type ConversationSource, ConversationsEndpoint, type ConversationsListResponse, type CreateApiKeyRequest, type CreateAppRequest, type CreateClientTokenRequest, type CreateClientTokenResponse, type CreateConversationRequest, type CreateFlowRequest, type CreateModelConfigRequest, type CreatePromptData, type CreatePromptRequest, type CreateProviderKeyRequest, type CreateRecordRequest, type CreateScheduleRequest, type CreateSecretRequest, type CreateToolRequest, type CustomMCPServer, type CustomMCPServerAuth, type CustomToolConfig, DEFAULT_RECOVERY_AFTER_EMPTY_SESSIONS, DEFAULT_STALL_STOP_AFTER, type DefineAgentInput, type DefineEvalCaseInput, type DefineEvalInput, type DefineFlowInput, type DefineProductInput, type DefineSkillInput, type DefineSurfaceInput, type DefineToolInput, type DeployCfSandboxRequest, type DeployCfSandboxResponse, type DeploySandboxRequest, type DeploySandboxResponse, type DiscoveredModel, type DispatchClient, DispatchEndpoint, type DispatchEnvironment, type DispatchEvent, type DispatchOptions$1 as DispatchOptions, type DispatchRequest, type EnsureAgentConverged, type EnsureAgentOptions, type EnsureAgentPlan, type EnsureAgentResult, type EnsureEvalResult, type EnsureFlowConverged, type EnsureFlowOptions, type EnsureFlowPlan, type EnsureFlowResult, type EnsureFpoOptions, type EnsureFpoResult, type EnsureProductConverged, type EnsureProductOptions, type EnsureProductPlan, type EnsureProductResult, type EnsureSkillConverged, type EnsureSkillOptions, type EnsureSkillPlan, type EnsureSkillResult, type EnsureSurfaceConverged, type EnsureSurfaceOptions, type EnsureSurfacePlan, type EnsureSurfaceResult, type EnsureToolConverged, type EnsureToolOptions, type EnsureToolPlan, type EnsureToolResult, type ErrorHandlingMode, EvalBuilder, type EvalCaseDefinition, type EvalCaseInput, type EvalClient, type EvalDefinition, EvalEndpoint, type EvalListParams, type EvalMessage, type EvalOptions, type EvalPullResult, type EvalRecord, type EvalRequest, type EvalResult, type EvalRunConfig, EvalRunner, type EvalStatus, type EvalTarget, EvalsNamespace, type ExecuteToolRequest, type ExecuteToolResponse, type ExecutionStreamEvent, type ExternalAgentContext, type ExternalToolConfig, type FallbackFailEvent, type FallbackStartEvent, type FallbackSuccessEvent, type FallbackTrigger, type FallbackTriggerType, type FallbacksExhaustedEvent, type FallbacksInitiatedEvent, type FetchGitHubStepConfig$1 as FetchGitHubStepConfig, type FetchUrlStepConfig$1 as FetchUrlStepConfig, type FieldFormat, type FileContentPart, type Flow, type FlowAttachment, FlowBuilder, type FlowCompleteEvent, type FlowConfig$1 as FlowConfig, type FlowDefinition, type FlowDefinitionStep, FlowDriftError, FlowEnsureConflictError, type FlowErrorEvent, type FlowFallback, type FlowInlineEvalInput, type FlowListItem, type FlowPausedEvent, type FlowPullResult, FlowResult, type FlowStartEvent, type FlowStep, type FlowStepDefinition, type FlowStepType, FlowStepsEndpoint, type FlowStreamEvent, type FlowSummary, type FlowToolConfig, type FlowValidationClient, type FlowValidationIssue, type FlowValidationResult, type FlowVersionDetail, type FlowVersionListItem, type FlowVersionPublishResponse, FlowVersionsEndpoint, type FlowVersionsListResponse, FlowsEndpoint, FlowsNamespace, type FpoEntityOutcome, type FpoInput, type GenerateEmbeddingStepConfig$1 as GenerateEmbeddingStepConfig, type GeneratedRuntimeToolGateDecision, type GeneratedRuntimeToolGateOptions, type Gradeable, type GraderConfig, type GraderOutcome, type GraderSeverity, type ImageContentPart, type Integration, type IntegrationTool, IntegrationsEndpoint, type IntegrationsListResponse, type JSONSchema, type JsonArray, type JsonObject, type JsonPrimitive, type JsonValue, LEDGER_ARTIFACT_LINE_PREFIX, type ListConversationsResponse, type ListParams, type LocalToolConfig, type LocalToolDefinition, type LocalToolExecutionCompleteEvent, type LocalToolExecutionLoopSnapshotSlice, type LocalToolExecutionStartEvent, type LogEntry, type LogQueryParams, type LogQueryResponse, type LogQueryResult, type LogStatsParams, type LogStatsResponse, type LogStatsResult, LogsEndpoint, type Message$1 as Message, type MessageContent, type MessageFallback, type Metadata, type ModelConfig, ModelConfigsEndpoint, type ModelFallback, type ModelOverride, type ModelUsageDetail, type ModelUsageQueryParams, type ModelUsageResponse, type ModelUsageSummary, type ModelUsageTimeSeries, type PaginationResponse, type ProductDefinition, ProductDriftError, ProductEnsureConflictError, type ProductPullResult, ProductsNamespace, type Prompt$1 as Prompt, type PromptErrorHandling, type PromptFallback, type PromptListParams, type PromptStepConfig$1 as PromptStepConfig, PromptsEndpoint, PromptsNamespace, type ProviderApiKey, type ProviderKeyModel, ProviderKeysEndpoint, type PullFpoResult, RUNTYPE_CLIENT_KIND, type ReasoningConfig, type ReasoningContentPart, type ReasoningValue, type RecordConfig$1 as RecordConfig, type RecordCostAggregation, type RecordCostModelBreakdown, type RecordFilter, type RecordFilterCondition, type RecordFilterGroup, type RecordFilterOperator, type RecordListItem, type RecordListParams, type RecordStepResult, type RecordStepResultsParams, type RecordStepResultsResponse, type RecordWriteResponse, RecordsEndpoint, type RetrieveRecordStepConfig$1 as RetrieveRecordStepConfig, type RetryFallback, type RunEvalCaseResult, type RunEvalInput, type RunEvalResult, type RunTaskContextBudgetBreakdown, type RunTaskContextCompactionEvent, type RunTaskContextCompactionStrategy, type RunTaskContextNoticeEvent, type RunTaskContextSummaryEntry, type RunTaskContinuation, type RunTaskOffloadRecorder, type RunTaskOnContextCompaction, type RunTaskOnContextNotice, type RunTaskOnSession, type RunTaskOptions, type RunTaskResult, type RunTaskResumeState, type RunTaskSessionSummary, type RunTaskState, type RunTaskStateSlice, type RunTaskStatus, type RunTaskToolTraceSlice, type RuntimeCustomToolConfig, type RuntimeExternalToolConfig, type RuntimeFlowToolConfig, type RuntimeLocalToolConfig, type RuntimeSubagentToolConfig, type RuntimeTool, type RuntimeToolConfig, Runtype, type AgentSkillBinding as RuntypeAgentSkillBinding, RuntypeApiError, RuntypeClient, type ConditionalStepConfig as RuntypeConditionalStepConfig, type RuntypeConfig, type FetchGitHubStepConfig as RuntypeFetchGitHubStepConfig, type FetchUrlStepConfig as RuntypeFetchUrlStepConfig, RuntypeFlowBuilder, type FlowConfig as RuntypeFlowConfig, type GenerateEmbeddingStepConfig as RuntypeGenerateEmbeddingStepConfig, type Message as RuntypeMessage, type ModelOverride$1 as RuntypeModelOverride, type Prompt as RuntypePrompt, type PromptStepConfig as RuntypePromptStepConfig, type RuntypeRecord, type RecordConfig as RuntypeRecordConfig, type RetrieveRecordStepConfig as RuntypeRetrieveRecordStepConfig, type SearchStepConfig as RuntypeSearchStepConfig, type SendEmailStepConfig as RuntypeSendEmailStepConfig, type SendEventStepConfig as RuntypeSendEventStepConfig, type SendStreamStepConfig as RuntypeSendStreamStepConfig, type SendTextStepConfig as RuntypeSendTextStepConfig, type SetVariableStepConfig as RuntypeSetVariableStepConfig, type Skill as RuntypeSkill, type SkillCapabilities as RuntypeSkillCapabilities, type SkillFrontmatter as RuntypeSkillFrontmatter, type SkillManifest as RuntypeSkillManifest, type SkillProposal as RuntypeSkillProposal, type SkillRuntypeExtensions as RuntypeSkillRuntypeExtensions, type SkillScanFinding as RuntypeSkillScanFinding, type SkillScanResult as RuntypeSkillScanResult, type SkillScanVerdict as RuntypeSkillScanVerdict, type SkillVersion as RuntypeSkillVersion, type TransformDataStepConfig as RuntypeTransformDataStepConfig, type UpsertFlowConfig as RuntypeUpsertFlowConfig, type UpsertRecordStepConfig as RuntypeUpsertRecordStepConfig, type VectorSearchStepConfig as RuntypeVectorSearchStepConfig, type WaitUntilStepConfig as RuntypeWaitUntilStepConfig, SDK_USER_AGENT, SDK_VERSION, STEP_FIELD_REGISTRY, STEP_TYPE_TO_METHOD, type Schedule, type ScheduleExecutionOptions, type ScheduleListParams, type ScheduleMessage, type ScheduleMessageSet, type ScheduleMessages, type ScheduleMutationResponse, type ScheduleRun, type ScheduleRunNowResponse, type ScheduleStatusResponse, type ScheduleTarget, type ScheduleTrigger, SchedulesEndpoint, type SearchStepConfig$1 as SearchStepConfig, type Secret, type SecretCheckResponse, type SecretDeleteResponse, type SecretSetupUrlRequest, type SecretSetupUrlResponse, SecretsEndpoint, type SendEmailStepConfig$1 as SendEmailStepConfig, type SendEventStepConfig$1 as SendEventStepConfig, type SendStreamStepConfig$1 as SendStreamStepConfig, type SendTextStepConfig$1 as SendTextStepConfig, type SetVariableStepConfig$1 as SetVariableStepConfig, type SkillDefinition, SkillDriftError, SkillEnsureConflictError, type SkillListPage, type SkillListPagination, type SkillListParams, type SkillManifestInput, type SkillMarkdownInput, type SkillOrigin, type SkillProposalStatus, SkillProposalsNamespace, type SkillPullResult, type SkillStatus, type SkillTrustLevel, type SkillVersionStatus, type SkillWithVersion, type SkillWriteInput, SkillsNamespace, type SlackInstallRequest, type StepCompleteEvent, type StepDeltaEvent, type StepFallback, type StepFieldMeta, type StepStartEvent, type StepWaitingLocalEvent, type StreamCallbacks, type StreamConsumeOptions, type StreamEvent, type StreamEventOf, type SubagentToolConfig, type Surface, type SurfaceDefinition, type SurfaceDefinitionEnvironment, type SurfaceDefinitionStatus, type SurfaceDefinitionType, SurfaceDriftError, SurfaceEnsureConflictError, type SurfaceListParams, type SurfacePullResult, SurfacesEndpoint, SurfacesNamespace, type TextContentPart, type Tool, type ToolApprovalGrant, ToolApprovalGrantsEndpoint, type ToolConfig, type ToolDefinition, type ToolDefinitionType, ToolDriftError, ToolEnsureConflictError, type ToolPullResult, type ToolWithValidation, type ToolsConfig, ToolsEndpoint, ToolsNamespace, type TransformDataStepConfig$1 as TransformDataStepConfig, UNIFIED_EVENTS_QUERY, type UpdateAppRequest, type UpdateClientTokenRequest, type UpdateConversationRequest, type UpdatePromptData, type UpdateProviderKeyRequest, type UpdateScheduleRequest, type UpdateSecretRequest, type UpdateToolRequest, type UpdatedFlow, type UpsertFlowConfig$1 as UpsertFlowConfig, type UpsertOptions, type UpsertRecordStepConfig$1 as UpsertRecordStepConfig, type UserProfile, UsersEndpoint, type VectorSearchStepConfig$1 as VectorSearchStepConfig, type VersionType, type WaitUntilStepConfig$1 as WaitUntilStepConfig, type WorkflowCompileDeps, type WorkflowCompletionCriteriaConfig, type WorkflowConfig, type WorkflowConfigFactory, type WorkflowContext, type WorkflowDefinition, type WorkflowHookEntry, type WorkflowHookKind, type WorkflowHookRef, type WorkflowHookSignatures, type WorkflowMilestoneConfig, type WorkflowPhase, type WorkflowPolicyConfig, type WorkflowRecoveryConfig, type WorkflowSlot, type WorkflowStallPolicy, applyGeneratedRuntimeToolProposalToDispatchRequest, attachRuntimeToolsToDispatchRequest, buildEmptySessionNudge, buildGeneratedRuntimeToolGateOutput, buildLedgerOffloadReference, buildPolicyGuidance, buildSendViewOffloadMarker, calledTool, compileWorkflowConfig, completed, computeAgentContentHash, computeEvalContentHash, computeFlowContentHash, computeFpoContentHash, computeProductContentHash, computeSkillContentHash, computeSurfaceContentHash, computeToolContentHash, contains, cost, createAgentEventTranslator, createClient, createExternalTool, createFlowEventTranslator, defaultWorkflow, defaultWorkflowConfig, defineAgent, defineEval, defineFlow, defineFpo, definePlaybook, defineProduct, defineSkill, defineSurface, defineTool, deployWorkflow, ensureDefaultWorkflowHooks, ensureEval, ensureFpo, evaluateGeneratedRuntimeToolProposal, extractDeclaredToolResultChars, gameWorkflow, getDefaultPlanPath, getLikelySupportingCandidatePaths, interpolateWorkflowTemplate, isDiscoveryToolName, isMarathonArtifactPath, isPreservationSensitiveTask, isUnifiedEventType, isWorkflowHookRef, jsonField, judge, judges, latency, length, listWorkflowHooks, matchesExpected, maxToolCalls, noError, normalizeAgentDefinition, normalizeCandidatePath, normalizeFpoDefinition, normalizeProductDefinition, normalizeSkillDefinition, normalizeSurfaceDefinition, normalizeToolDefinition, notCalledTool, notContains, parseFinalBuffer, parseLedgerArtifactRelativePath, parseOffloadedOutputId, parseSSEChunk, processStream, pullEval, pullFpo, ranStep, regex, registerWorkflowHook, resolveStallStopAfter, resolveWorkflowHook, runEvalSuite, sanitizeTaskSlug, shouldInjectEmptySessionNudge, shouldRequestModelEscalation, stepOrder, streamEvents, toolOrder, unregisterWorkflowHook, usedNoTools, validJson, withUnifiedEvents };
50249
+ export { type AIGrader, type Agent, type AgentApprovalCompleteEvent, type AgentApprovalStartEvent, type AgentCompleteEvent, type AgentDefinition, type AgentDefinitionConfig, AgentDriftError, AgentEnsureConflictError, type AgentErrorEvent, type AgentEvent, type AgentEventType, type AgentExecuteRequest, type AgentExecuteResponse, type AgentIterationCompleteEvent, type AgentIterationStartEvent, type AgentMediaEvent, type AgentMessage, type AgentPausedEvent, type AgentPingEvent, type AgentPullResult, type AgentReflectionEvent, type AgentRuntimeToolDefinition, type AgentStartEvent, type AgentStreamCallbacks, type AgentStreamEvent, type AgentSubagentConfig, type AgentToolCompleteEvent, type AgentToolDeltaEvent, type AgentToolInputCompleteEvent, type AgentToolInputDeltaEvent, type AgentToolStartEvent, type AgentTurnCompleteEvent, type AgentTurnDeltaEvent, type AgentTurnStartEvent, type AgentVersionDetail, type AgentVersionListItem, type AgentVersionPublishResponse, AgentVersionsEndpoint, type AgentVersionsListResponse, AgentsEndpoint, AgentsNamespace, AnalyticsEndpoint, type ApiClient, type ApiKey, ApiKeysEndpoint, type ApiResponse, type App, type AppManifest, type AppVersion, type ApplyGeneratedProposalOptions, type ApplyGeneratedProposalResult, AppsEndpoint, type AssetReferenceContentPart, type AttachRuntimeToolsOptions, type BaseAgentEvent, BatchBuilder, type BatchClient, type BatchListParams, type BatchOptions, type BatchRequest, type BatchResult, type BatchScheduleConfig, type BatchStatus, BatchesNamespace, BillingEndpoint, type BillingSpendAnalyticsParams, type BindSkillInput, type BuiltInGraderId, type BuiltInTool, type BulkEditCondition, type BulkEditRequest, type BulkEditResponse, type BulkEditResult, type CaseExpected, ChatEndpoint, type CheckGrader, ClientBatchBuilder, type ClientConfig, type ClientConversation, ClientEvalBuilder, ClientFlowBuilder, type ClientToken, type ClientTokenConfig, type ClientTokenEnvironment, type ClientTokenVersionPin, ClientTokensEndpoint, type ClientToolDefinition, type ClientWidgetTheme, type ConditionalGetResult, type ConditionalStepConfig$1 as ConditionalStepConfig, type ContextErrorHandling, type ContextFallback, ContextTemplatesEndpoint, type Conversation, type ConversationListItem, type ConversationListParams, type ConversationMessage, type ConversationSource, ConversationsEndpoint, type ConversationsListResponse, type CreateApiKeyRequest, type CreateAppRequest, type CreateClientTokenRequest, type CreateClientTokenResponse, type CreateConversationRequest, type CreateEvalSuiteInput, type CreateFlowRequest, type CreateModelConfigRequest, type CreatePromptData, type CreatePromptRequest, type CreateProviderKeyRequest, type CreateRecordRequest, type CreateScheduleRequest, type CreateSecretRequest, type CreateToolRequest, type CustomMCPServer, type CustomMCPServerAuth, type CustomToolConfig, DEFAULT_RECOVERY_AFTER_EMPTY_SESSIONS, DEFAULT_STALL_STOP_AFTER, type DefineAgentInput, type DefineEvalCaseInput, type DefineEvalInput, type DefineFlowInput, type DefineProductInput, type DefineSkillInput, type DefineSurfaceInput, type DefineToolInput, type DeployCfSandboxRequest, type DeployCfSandboxResponse, type DeploySandboxRequest, type DeploySandboxResponse, type DiscoveredModel, type DispatchClient, DispatchEndpoint, type DispatchEnvironment, type DispatchEvent, type DispatchOptions$1 as DispatchOptions, type DispatchRequest, type EnsureAgentConverged, type EnsureAgentOptions, type EnsureAgentPlan, type EnsureAgentResult, type EnsureEvalResult, type EnsureFlowConverged, type EnsureFlowOptions, type EnsureFlowPlan, type EnsureFlowResult, type EnsureFpoOptions, type EnsureFpoResult, type EnsureProductConverged, type EnsureProductOptions, type EnsureProductPlan, type EnsureProductResult, type EnsureSkillConverged, type EnsureSkillOptions, type EnsureSkillPlan, type EnsureSkillResult, type EnsureSurfaceConverged, type EnsureSurfaceOptions, type EnsureSurfacePlan, type EnsureSurfaceResult, type EnsureToolConverged, type EnsureToolOptions, type EnsureToolPlan, type EnsureToolResult, type ErrorHandlingMode, EvalBuilder, type EvalCaseDefinition, type EvalCaseInput, type EvalClient, type EvalDefinition, EvalEndpoint, type EvalListParams, type EvalMessage, type EvalOptions, type EvalPullResult, type EvalRecord, type EvalRequest, type EvalResult, type EvalRunCaseScores, type EvalRunConfig, type EvalRunScores, EvalRunner, type EvalStatus, type EvalSuiteCase, type EvalSuiteCaseInput, type EvalSuiteDetail, type EvalSuiteLatestRun, type EvalSuiteListResult, type EvalSuiteRunQueued, type EvalSuiteRunResult, type EvalSuiteSummary, EvalSuitesNamespace, type EvalTarget, EvalsNamespace, type ExecuteToolRequest, type ExecuteToolResponse, type ExecutionStreamEvent, type ExternalAgentContext, type ExternalToolConfig, type FallbackFailEvent, type FallbackStartEvent, type FallbackSuccessEvent, type FallbackTrigger, type FallbackTriggerType, type FallbacksExhaustedEvent, type FallbacksInitiatedEvent, type FetchGitHubStepConfig$1 as FetchGitHubStepConfig, type FetchUrlStepConfig$1 as FetchUrlStepConfig, type FieldFormat, type FileContentPart, type Flow, type FlowAttachment, FlowBuilder, type FlowCompleteEvent, type FlowConfig$1 as FlowConfig, type FlowDefinition, type FlowDefinitionStep, FlowDriftError, FlowEnsureConflictError, type FlowErrorEvent, type FlowFallback, type FlowInlineEvalInput, type FlowListItem, type FlowPausedEvent, type FlowPullResult, FlowResult, type FlowStartEvent, type FlowStep, type FlowStepDefinition, type FlowStepType, FlowStepsEndpoint, type FlowStreamEvent, type FlowSummary, type FlowToolConfig, type FlowValidationClient, type FlowValidationIssue, type FlowValidationResult, type FlowVersionDetail, type FlowVersionListItem, type FlowVersionPublishResponse, FlowVersionsEndpoint, type FlowVersionsListResponse, FlowsEndpoint, FlowsNamespace, type FpoEntityOutcome, type FpoInput, type GenerateEmbeddingStepConfig$1 as GenerateEmbeddingStepConfig, type GeneratedRuntimeToolGateDecision, type GeneratedRuntimeToolGateOptions, type GetRecordStepConfig$1 as GetRecordStepConfig, type Gradeable, type GraderConfig, type GraderOutcome, type GraderSeverity, type ImageContentPart, type Integration, type IntegrationTool, IntegrationsEndpoint, type IntegrationsListResponse, type JSONSchema, type JsonArray, type JsonObject, type JsonPrimitive, type JsonValue, LEDGER_ARTIFACT_LINE_PREFIX, type ListConversationsResponse, type ListParams, type ListRecordsStepConfig$1 as ListRecordsStepConfig, type LocalToolConfig, type LocalToolDefinition, type LocalToolExecutionCompleteEvent, type LocalToolExecutionLoopSnapshotSlice, type LocalToolExecutionStartEvent, type LogEntry, type LogQueryParams, type LogQueryResponse, type LogQueryResult, type LogStatsParams, type LogStatsResponse, type LogStatsResult, LogsEndpoint, type Message$1 as Message, type MessageContent, type MessageFallback, type Metadata, type ModelConfig, ModelConfigsEndpoint, type ModelFallback, type ModelOverride, type ModelUsageDetail, type ModelUsageQueryParams, type ModelUsageResponse, type ModelUsageSummary, type ModelUsageTimeSeries, type PaginationResponse, type ProductDefinition, ProductDriftError, ProductEnsureConflictError, type ProductPullResult, ProductsNamespace, type Prompt$1 as Prompt, type PromptErrorHandling, type PromptFallback, type PromptListParams, type PromptStepConfig$1 as PromptStepConfig, PromptsEndpoint, PromptsNamespace, type ProviderApiKey, type ProviderKeyModel, ProviderKeysEndpoint, type PullFpoResult, RUNTYPE_CLIENT_KIND, type ReasoningConfig, type ReasoningContentPart, type ReasoningValue, type RecordConfig$1 as RecordConfig, type RecordCostAggregation, type RecordCostModelBreakdown, type RecordFilter, type RecordFilterCondition, type RecordFilterGroup, type RecordFilterOperator, type RecordListItem, type RecordListParams, type RecordStepResult, type RecordStepResultsParams, type RecordStepResultsResponse, type RecordWriteResponse, RecordsEndpoint, type RetrieveRecordStepConfig$1 as RetrieveRecordStepConfig, type RetryFallback, type RunEvalCaseResult, type RunEvalInput, type RunEvalResult, type RunTaskContextBudgetBreakdown, type RunTaskContextCompactionEvent, type RunTaskContextCompactionStrategy, type RunTaskContextNoticeEvent, type RunTaskContextSummaryEntry, type RunTaskContinuation, type RunTaskOffloadRecorder, type RunTaskOnContextCompaction, type RunTaskOnContextNotice, type RunTaskOnSession, type RunTaskOptions, type RunTaskResult, type RunTaskResumeState, type RunTaskSessionSummary, type RunTaskState, type RunTaskStateSlice, type RunTaskStatus, type RunTaskToolTraceSlice, type RuntimeCustomToolConfig, type RuntimeExternalToolConfig, type RuntimeFlowToolConfig, type RuntimeLocalToolConfig, type RuntimeSubagentToolConfig, type RuntimeTool, type RuntimeToolConfig, Runtype, type AgentSkillBinding as RuntypeAgentSkillBinding, RuntypeApiError, RuntypeClient, type ConditionalStepConfig as RuntypeConditionalStepConfig, type RuntypeConfig, type FetchGitHubStepConfig as RuntypeFetchGitHubStepConfig, type FetchUrlStepConfig as RuntypeFetchUrlStepConfig, RuntypeFlowBuilder, type FlowConfig as RuntypeFlowConfig, type GenerateEmbeddingStepConfig as RuntypeGenerateEmbeddingStepConfig, type GetRecordStepConfig as RuntypeGetRecordStepConfig, type ListRecordsStepConfig as RuntypeListRecordsStepConfig, type Message as RuntypeMessage, type ModelOverride$1 as RuntypeModelOverride, type Prompt as RuntypePrompt, type PromptStepConfig as RuntypePromptStepConfig, type RuntypeRecord, type RecordConfig as RuntypeRecordConfig, type RetrieveRecordStepConfig as RuntypeRetrieveRecordStepConfig, type SearchStepConfig as RuntypeSearchStepConfig, type SendEmailStepConfig as RuntypeSendEmailStepConfig, type SendEventStepConfig as RuntypeSendEventStepConfig, type SendStreamStepConfig as RuntypeSendStreamStepConfig, type SendTextStepConfig as RuntypeSendTextStepConfig, type SetVariableStepConfig as RuntypeSetVariableStepConfig, type Skill as RuntypeSkill, type SkillCapabilities as RuntypeSkillCapabilities, type SkillFrontmatter as RuntypeSkillFrontmatter, type SkillManifest as RuntypeSkillManifest, type SkillProposal as RuntypeSkillProposal, type SkillRuntypeExtensions as RuntypeSkillRuntypeExtensions, type SkillScanFinding as RuntypeSkillScanFinding, type SkillScanResult as RuntypeSkillScanResult, type SkillScanVerdict as RuntypeSkillScanVerdict, type SkillVersion as RuntypeSkillVersion, type TransformDataStepConfig as RuntypeTransformDataStepConfig, type UpsertFlowConfig as RuntypeUpsertFlowConfig, type UpsertRecordStepConfig as RuntypeUpsertRecordStepConfig, type VectorSearchStepConfig as RuntypeVectorSearchStepConfig, type WaitUntilStepConfig as RuntypeWaitUntilStepConfig, SDK_USER_AGENT, SDK_VERSION, STEP_FIELD_REGISTRY, STEP_TYPE_TO_METHOD, type Schedule, type ScheduleExecutionOptions, type ScheduleListParams, type ScheduleMessage, type ScheduleMessageSet, type ScheduleMessages, type ScheduleMutationResponse, type ScheduleRun, type ScheduleRunNowResponse, type ScheduleStatusResponse, type ScheduleTarget, type ScheduleTrigger, SchedulesEndpoint, type SearchStepConfig$1 as SearchStepConfig, type Secret, type SecretCheckResponse, type SecretDeleteResponse, type SecretSetupUrlRequest, type SecretSetupUrlResponse, SecretsEndpoint, type SendEmailStepConfig$1 as SendEmailStepConfig, type SendEventStepConfig$1 as SendEventStepConfig, type SendStreamStepConfig$1 as SendStreamStepConfig, type SendTextStepConfig$1 as SendTextStepConfig, type SetVariableStepConfig$1 as SetVariableStepConfig, type SkillDefinition, SkillDriftError, SkillEnsureConflictError, type SkillListPage, type SkillListPagination, type SkillListParams, type SkillManifestInput, type SkillMarkdownInput, type SkillOrigin, type SkillProposalStatus, SkillProposalsNamespace, type SkillPullResult, type SkillStatus, type SkillTrustLevel, type SkillVersionStatus, type SkillWithVersion, type SkillWriteInput, SkillsNamespace, type SlackInstallRequest, type StepCompleteEvent, type StepDeltaEvent, type StepFallback, type StepFieldMeta, type StepStartEvent, type StepWaitingLocalEvent, type StreamCallbacks, type StreamConsumeOptions, type StreamEvent, type StreamEventOf, type SubagentToolConfig, type Surface, type SurfaceDefinition, type SurfaceDefinitionEnvironment, type SurfaceDefinitionStatus, type SurfaceDefinitionType, SurfaceDriftError, SurfaceEnsureConflictError, type SurfaceListParams, type SurfacePullResult, SurfacesEndpoint, SurfacesNamespace, type TextContentPart, type Tool, type ToolApprovalGrant, ToolApprovalGrantsEndpoint, type ToolConfig, type ToolDefinition, type ToolDefinitionType, ToolDriftError, ToolEnsureConflictError, type ToolPullResult, type ToolWithValidation, type ToolsConfig, ToolsEndpoint, ToolsNamespace, type TransformDataStepConfig$1 as TransformDataStepConfig, UNIFIED_EVENTS_QUERY, type UpdateAppRequest, type UpdateClientTokenRequest, type UpdateConversationRequest, type UpdateEvalCaseInput, type UpdateEvalSuiteInput, type UpdatePromptData, type UpdateProviderKeyRequest, type UpdateScheduleRequest, type UpdateSecretRequest, type UpdateToolRequest, type UpdatedFlow, type UpsertFlowConfig$1 as UpsertFlowConfig, type UpsertOptions, type UpsertRecordStepConfig$1 as UpsertRecordStepConfig, type UserProfile, UsersEndpoint, type VectorSearchStepConfig$1 as VectorSearchStepConfig, type VersionType, type WaitUntilStepConfig$1 as WaitUntilStepConfig, type WorkflowCompileDeps, type WorkflowCompletionCriteriaConfig, type WorkflowConfig, type WorkflowConfigFactory, type WorkflowContext, type WorkflowDefinition, type WorkflowHookEntry, type WorkflowHookKind, type WorkflowHookRef, type WorkflowHookSignatures, type WorkflowMilestoneConfig, type WorkflowPhase, type WorkflowPolicyConfig, type WorkflowRecoveryConfig, type WorkflowSlot, type WorkflowStallPolicy, applyGeneratedRuntimeToolProposalToDispatchRequest, attachRuntimeToolsToDispatchRequest, buildEmptySessionNudge, buildGeneratedRuntimeToolGateOutput, buildLedgerOffloadReference, buildPolicyGuidance, buildSendViewOffloadMarker, calledTool, compileWorkflowConfig, completed, computeAgentContentHash, computeEvalContentHash, computeFlowContentHash, computeFpoContentHash, computeProductContentHash, computeSkillContentHash, computeSurfaceContentHash, computeToolContentHash, contains, cost, createAgentEventTranslator, createClient, createExternalTool, createFlowEventTranslator, defaultWorkflow, defaultWorkflowConfig, defineAgent, defineEval, defineFlow, defineFpo, definePlaybook, defineProduct, defineSkill, defineSurface, defineTool, deployWorkflow, ensureDefaultWorkflowHooks, ensureEval, ensureFpo, evaluateGeneratedRuntimeToolProposal, extractDeclaredToolResultChars, gameWorkflow, getDefaultPlanPath, getLikelySupportingCandidatePaths, interpolateWorkflowTemplate, isDiscoveryToolName, isMarathonArtifactPath, isPreservationSensitiveTask, isUnifiedEventType, isWorkflowHookRef, jsonField, judge, judges, latency, length, listWorkflowHooks, matchesExpected, maxToolCalls, noError, normalizeAgentDefinition, normalizeCandidatePath, normalizeFpoDefinition, normalizeProductDefinition, normalizeSkillDefinition, normalizeSurfaceDefinition, normalizeToolDefinition, notCalledTool, notContains, parseFinalBuffer, parseLedgerArtifactRelativePath, parseOffloadedOutputId, parseSSEChunk, processStream, pullEval, pullFpo, ranStep, regex, registerWorkflowHook, resolveStallStopAfter, resolveWorkflowHook, runEvalSuite, sanitizeTaskSlug, shouldInjectEmptySessionNudge, shouldRequestModelEscalation, stepOrder, streamEvents, toolOrder, unregisterWorkflowHook, usedNoTools, validJson, withUnifiedEvents };