@runtypelabs/sdk 5.7.0 → 5.8.1

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
@@ -645,7 +645,7 @@ interface paths {
645
645
  /** @enum {string} */
646
646
  setupMode: "create" | "connect";
647
647
  systemPrompt?: string;
648
- timeoutMs?: number;
648
+ timeoutMs?: number | null;
649
649
  toolPermissions?: {
650
650
  bash?: boolean;
651
651
  edit?: boolean;
@@ -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} */
@@ -1721,7 +1723,7 @@ interface paths {
1721
1723
  /** @enum {string} */
1722
1724
  setupMode?: "create" | "connect";
1723
1725
  systemPrompt?: string;
1724
- timeoutMs?: number;
1726
+ timeoutMs?: number | null;
1725
1727
  toolPermissions?: {
1726
1728
  bash?: boolean;
1727
1729
  edit?: boolean;
@@ -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
  };
@@ -7073,6 +7090,10 @@ interface paths {
7073
7090
  };
7074
7091
  content: {
7075
7092
  "application/json": {
7093
+ /** @description Present only for Runtype App data-plane sessions: the owning app id. Such sessions authorize `/v1/client/records` but cannot dispatch chat. */
7094
+ app?: {
7095
+ id: string;
7096
+ };
7076
7097
  config: {
7077
7098
  placeholder?: string;
7078
7099
  theme?: unknown;
@@ -7080,7 +7101,8 @@ interface paths {
7080
7101
  };
7081
7102
  /** @description ISO-8601 session idle-expiry timestamp. */
7082
7103
  expiresAt: string;
7083
- flow: {
7104
+ /** @description Resolved flow/agent for this session. Omitted for data-only Runtype App sessions whose manifest declares record namespaces but no flow or agent (the `app` field is present instead). */
7105
+ flow?: {
7084
7106
  description?: string | null;
7085
7107
  /** @description Resolved flow or agent ID for this session. */
7086
7108
  id: string;
@@ -7144,18 +7166,110 @@ interface paths {
7144
7166
  patch?: never;
7145
7167
  trace?: never;
7146
7168
  };
7147
- "/v1/client/resume": {
7169
+ "/v1/client/records": {
7148
7170
  parameters: {
7149
7171
  query?: never;
7150
7172
  header?: never;
7151
7173
  path?: never;
7152
7174
  cookie?: never;
7153
7175
  };
7154
- get?: never;
7176
+ /**
7177
+ * List app records in a namespace
7178
+ * @description List records in a granted namespace for a Runtype App data-plane session, newest first, cursor-paginated. The namespace must be declared in the app manifest (`data[]`).
7179
+ */
7180
+ get: {
7181
+ parameters: {
7182
+ query: {
7183
+ /** @description Client session id from /client/init. */
7184
+ sessionId: string;
7185
+ /** @description The record namespace to list. */
7186
+ namespace: string;
7187
+ cursor?: string;
7188
+ limit?: string;
7189
+ };
7190
+ header?: never;
7191
+ path?: never;
7192
+ cookie?: never;
7193
+ };
7194
+ requestBody?: never;
7195
+ responses: {
7196
+ /** @description Records page */
7197
+ 200: {
7198
+ headers: {
7199
+ [name: string]: unknown;
7200
+ };
7201
+ content: {
7202
+ "application/json": {
7203
+ data: {
7204
+ createdAt: string;
7205
+ /** @description Record id. */
7206
+ id: string;
7207
+ /** @description Caller-defined record fields. Server provenance is never echoed here. */
7208
+ metadata: {
7209
+ [key: string]: unknown;
7210
+ };
7211
+ /** @description Record name (unique per namespace within the tenant). */
7212
+ name: string;
7213
+ /** @description The record namespace (record `type`). */
7214
+ namespace: string;
7215
+ updatedAt: string;
7216
+ }[];
7217
+ /** @description Opaque cursor for the next page, or null when exhausted. */
7218
+ nextCursor: string | null;
7219
+ };
7220
+ };
7221
+ };
7222
+ /** @description Validation error */
7223
+ 400: {
7224
+ headers: {
7225
+ [name: string]: unknown;
7226
+ };
7227
+ content: {
7228
+ "application/json": components["schemas"]["Error"];
7229
+ };
7230
+ };
7231
+ /** @description Session not found or expired */
7232
+ 401: {
7233
+ headers: {
7234
+ [name: string]: unknown;
7235
+ };
7236
+ content: {
7237
+ "application/json": components["schemas"]["Error"];
7238
+ };
7239
+ };
7240
+ /** @description Not an app token, origin mismatch, or namespace not granted */
7241
+ 403: {
7242
+ headers: {
7243
+ [name: string]: unknown;
7244
+ };
7245
+ content: {
7246
+ "application/json": components["schemas"]["Error"];
7247
+ };
7248
+ };
7249
+ /** @description App has no active version */
7250
+ 409: {
7251
+ headers: {
7252
+ [name: string]: unknown;
7253
+ };
7254
+ content: {
7255
+ "application/json": components["schemas"]["Error"];
7256
+ };
7257
+ };
7258
+ /** @description Internal server error */
7259
+ 500: {
7260
+ headers: {
7261
+ [name: string]: unknown;
7262
+ };
7263
+ content: {
7264
+ "application/json": components["schemas"]["Error"];
7265
+ };
7266
+ };
7267
+ };
7268
+ };
7155
7269
  put?: never;
7156
7270
  /**
7157
- * Resume a paused client execution
7158
- * @description Session-authenticated sibling of `POST /v1/dispatch/resume` for browser client-token sessions. Resumes a paused local-tool (WebMCP / clientTools) execution by supplying `toolOutputs` keyed by the per-call `toolCallId` (or tool name, legacy). Streams the continued flow/agent events over Server-Sent Events. Does not count against execution limits.
7271
+ * Create an app record
7272
+ * @description Create a record in a granted namespace from a Runtype App data-plane session. The namespace must have `read-write` access in the app manifest. Provenance (app, version, session) is stamped server-side.
7159
7273
  */
7160
7274
  post: {
7161
7275
  parameters: {
@@ -7167,55 +7281,40 @@ interface paths {
7167
7281
  requestBody: {
7168
7282
  content: {
7169
7283
  "application/json": {
7170
- executionId: string;
7171
- messages?: {
7172
- content: string | ({
7173
- text: string;
7174
- /** @enum {string} */
7175
- type: "text";
7176
- } | {
7177
- image: string;
7178
- mimeType?: string;
7179
- /** @enum {string} */
7180
- type: "image";
7181
- } | {
7182
- data: string;
7183
- filename: string;
7184
- mimeType: string;
7185
- /** @enum {string} */
7186
- type: "file";
7187
- } | {
7188
- providerOptions?: {
7189
- [key: string]: unknown;
7190
- };
7191
- text: string;
7192
- /** @enum {string} */
7193
- type: "reasoning";
7194
- })[];
7195
- /** @enum {string} */
7196
- role: "system" | "user" | "assistant";
7197
- }[];
7198
- sessionId: string;
7199
- /** @default true */
7200
- streamResponse?: boolean;
7201
7284
  /** @default {} */
7202
- toolOutputs?: {
7285
+ metadata?: {
7203
7286
  [key: string]: unknown;
7204
7287
  };
7288
+ name?: string;
7289
+ namespace: string;
7290
+ sessionId: string;
7205
7291
  };
7206
7292
  };
7207
7293
  };
7208
7294
  responses: {
7209
- /** @description SSE stream of the resumed execution events */
7210
- 200: {
7295
+ /** @description Record created */
7296
+ 201: {
7211
7297
  headers: {
7212
7298
  [name: string]: unknown;
7213
7299
  };
7214
7300
  content: {
7215
- "text/event-stream": unknown;
7301
+ "application/json": {
7302
+ createdAt: string;
7303
+ /** @description Record id. */
7304
+ id: string;
7305
+ /** @description Caller-defined record fields. Server provenance is never echoed here. */
7306
+ metadata: {
7307
+ [key: string]: unknown;
7308
+ };
7309
+ /** @description Record name (unique per namespace within the tenant). */
7310
+ name: string;
7311
+ /** @description The record namespace (record `type`). */
7312
+ namespace: string;
7313
+ updatedAt: string;
7314
+ };
7216
7315
  };
7217
7316
  };
7218
- /** @description Validation error */
7317
+ /** @description Validation error or metadata too large */
7219
7318
  400: {
7220
7319
  headers: {
7221
7320
  [name: string]: unknown;
@@ -7233,7 +7332,7 @@ interface paths {
7233
7332
  "application/json": components["schemas"]["Error"];
7234
7333
  };
7235
7334
  };
7236
- /** @description Client token inactive, origin mismatch, or execution belongs to another user */
7335
+ /** @description Not an app token, origin mismatch, namespace not writable, or per-app record cap reached */
7237
7336
  403: {
7238
7337
  headers: {
7239
7338
  [name: string]: unknown;
@@ -7242,8 +7341,17 @@ interface paths {
7242
7341
  "application/json": components["schemas"]["Error"];
7243
7342
  };
7244
7343
  };
7245
- /** @description No paused execution found for the executionId */
7246
- 404: {
7344
+ /** @description App has no active version, or duplicate record name */
7345
+ 409: {
7346
+ headers: {
7347
+ [name: string]: unknown;
7348
+ };
7349
+ content: {
7350
+ "application/json": components["schemas"]["Error"];
7351
+ };
7352
+ };
7353
+ /** @description Write rate limit exceeded (per app or per session) */
7354
+ 429: {
7247
7355
  headers: {
7248
7356
  [name: string]: unknown;
7249
7357
  };
@@ -7268,7 +7376,7 @@ interface paths {
7268
7376
  patch?: never;
7269
7377
  trace?: never;
7270
7378
  };
7271
- "/v1/context-templates": {
7379
+ "/v1/client/records/{id}": {
7272
7380
  parameters: {
7273
7381
  query?: never;
7274
7382
  header?: never;
@@ -7276,49 +7384,45 @@ interface paths {
7276
7384
  cookie?: never;
7277
7385
  };
7278
7386
  /**
7279
- * List context templates
7280
- * @description Get all context templates for the authenticated user with optional type/name filtering and cursor pagination.
7387
+ * Get an app record
7388
+ * @description Fetch a single record by id for a Runtype App data-plane session. The record must belong to the app owner and live in a granted namespace.
7281
7389
  */
7282
7390
  get: {
7283
7391
  parameters: {
7284
- query?: {
7285
- type?: string;
7286
- name?: string;
7287
- cursor?: string;
7288
- limit?: string;
7392
+ query: {
7393
+ sessionId: string;
7289
7394
  };
7290
7395
  header?: never;
7291
- path?: never;
7396
+ path: {
7397
+ id: string;
7398
+ };
7292
7399
  cookie?: never;
7293
7400
  };
7294
7401
  requestBody?: never;
7295
7402
  responses: {
7296
- /** @description Paginated list of context templates */
7403
+ /** @description Record */
7297
7404
  200: {
7298
7405
  headers: {
7299
7406
  [name: string]: unknown;
7300
7407
  };
7301
7408
  content: {
7302
7409
  "application/json": {
7303
- data: {
7304
- config: {
7305
- [key: string]: unknown;
7306
- };
7307
- createdAt: string;
7308
- id: string;
7309
- name: string;
7310
- organizationId: string | null;
7311
- type: string;
7312
- updatedAt: string;
7313
- userId: string;
7314
- }[];
7315
- pagination: {
7410
+ createdAt: string;
7411
+ /** @description Record id. */
7412
+ id: string;
7413
+ /** @description Caller-defined record fields. Server provenance is never echoed here. */
7414
+ metadata: {
7316
7415
  [key: string]: unknown;
7317
7416
  };
7417
+ /** @description Record name (unique per namespace within the tenant). */
7418
+ name: string;
7419
+ /** @description The record namespace (record `type`). */
7420
+ namespace: string;
7421
+ updatedAt: string;
7318
7422
  };
7319
7423
  };
7320
7424
  };
7321
- /** @description Invalid parameters */
7425
+ /** @description Validation error */
7322
7426
  400: {
7323
7427
  headers: {
7324
7428
  [name: string]: unknown;
@@ -7327,7 +7431,7 @@ interface paths {
7327
7431
  "application/json": components["schemas"]["Error"];
7328
7432
  };
7329
7433
  };
7330
- /** @description Unauthorized */
7434
+ /** @description Session not found or expired */
7331
7435
  401: {
7332
7436
  headers: {
7333
7437
  [name: string]: unknown;
@@ -7336,7 +7440,7 @@ interface paths {
7336
7440
  "application/json": components["schemas"]["Error"];
7337
7441
  };
7338
7442
  };
7339
- /** @description Insufficient permissions */
7443
+ /** @description Not an app token, origin mismatch, or namespace not granted */
7340
7444
  403: {
7341
7445
  headers: {
7342
7446
  [name: string]: unknown;
@@ -7345,6 +7449,24 @@ interface paths {
7345
7449
  "application/json": components["schemas"]["Error"];
7346
7450
  };
7347
7451
  };
7452
+ /** @description Record not found */
7453
+ 404: {
7454
+ headers: {
7455
+ [name: string]: unknown;
7456
+ };
7457
+ content: {
7458
+ "application/json": components["schemas"]["Error"];
7459
+ };
7460
+ };
7461
+ /** @description App has no active version */
7462
+ 409: {
7463
+ headers: {
7464
+ [name: string]: unknown;
7465
+ };
7466
+ content: {
7467
+ "application/json": components["schemas"]["Error"];
7468
+ };
7469
+ };
7348
7470
  /** @description Internal server error */
7349
7471
  500: {
7350
7472
  headers: {
@@ -7356,47 +7478,59 @@ interface paths {
7356
7478
  };
7357
7479
  };
7358
7480
  };
7359
- put?: never;
7360
7481
  /**
7361
- * Create context template
7362
- * @description Create a new context template. The config is validated based on the template type.
7482
+ * Update an app record
7483
+ * @description Update a record's metadata and/or name from a Runtype App data-plane session. The record's namespace must have `read-write` access. Server provenance is preserved. PUT is a full metadata replace. Pass `expectedUpdatedAt` (the `updatedAt` from your last read) for optimistic concurrency: a stale token is rejected with 409 and the current record so concurrent writers don't silently clobber each other.
7363
7484
  */
7364
- post: {
7485
+ put: {
7365
7486
  parameters: {
7366
7487
  query?: never;
7367
7488
  header?: never;
7368
- path?: never;
7489
+ path: {
7490
+ id: string;
7491
+ };
7369
7492
  cookie?: never;
7370
7493
  };
7371
- requestBody?: {
7494
+ requestBody: {
7372
7495
  content: {
7373
7496
  "application/json": {
7374
- [key: string]: unknown;
7497
+ /**
7498
+ * Format: date-time
7499
+ * @description Optional optimistic-concurrency token. Pass the `updatedAt` from your last read; the update is rejected with 409 (and the current record) if the stored record has changed since. Omit for last-write-wins.
7500
+ */
7501
+ expectedUpdatedAt?: string;
7502
+ metadata?: {
7503
+ [key: string]: unknown;
7504
+ };
7505
+ name?: string;
7506
+ sessionId: string;
7375
7507
  };
7376
7508
  };
7377
7509
  };
7378
7510
  responses: {
7379
- /** @description Created context template */
7380
- 201: {
7511
+ /** @description Updated record */
7512
+ 200: {
7381
7513
  headers: {
7382
7514
  [name: string]: unknown;
7383
7515
  };
7384
7516
  content: {
7385
7517
  "application/json": {
7386
- config: {
7387
- [key: string]: unknown;
7388
- };
7389
7518
  createdAt: string;
7519
+ /** @description Record id. */
7390
7520
  id: string;
7521
+ /** @description Caller-defined record fields. Server provenance is never echoed here. */
7522
+ metadata: {
7523
+ [key: string]: unknown;
7524
+ };
7525
+ /** @description Record name (unique per namespace within the tenant). */
7391
7526
  name: string;
7392
- organizationId: string | null;
7393
- type: string;
7527
+ /** @description The record namespace (record `type`). */
7528
+ namespace: string;
7394
7529
  updatedAt: string;
7395
- userId: string;
7396
7530
  };
7397
7531
  };
7398
7532
  };
7399
- /** @description Validation error */
7533
+ /** @description Validation error or metadata too large */
7400
7534
  400: {
7401
7535
  headers: {
7402
7536
  [name: string]: unknown;
@@ -7405,7 +7539,7 @@ interface paths {
7405
7539
  "application/json": components["schemas"]["Error"];
7406
7540
  };
7407
7541
  };
7408
- /** @description Unauthorized */
7542
+ /** @description Session not found or expired */
7409
7543
  401: {
7410
7544
  headers: {
7411
7545
  [name: string]: unknown;
@@ -7414,7 +7548,7 @@ interface paths {
7414
7548
  "application/json": components["schemas"]["Error"];
7415
7549
  };
7416
7550
  };
7417
- /** @description Insufficient permissions */
7551
+ /** @description Not an app token, origin mismatch, or namespace not writable */
7418
7552
  403: {
7419
7553
  headers: {
7420
7554
  [name: string]: unknown;
@@ -7423,6 +7557,51 @@ interface paths {
7423
7557
  "application/json": components["schemas"]["Error"];
7424
7558
  };
7425
7559
  };
7560
+ /** @description Record not found */
7561
+ 404: {
7562
+ headers: {
7563
+ [name: string]: unknown;
7564
+ };
7565
+ content: {
7566
+ "application/json": components["schemas"]["Error"];
7567
+ };
7568
+ };
7569
+ /** @description App has no active version, duplicate record name, or an optimistic-concurrency conflict (`expectedUpdatedAt` is stale — body carries the current record). */
7570
+ 409: {
7571
+ headers: {
7572
+ [name: string]: unknown;
7573
+ };
7574
+ content: {
7575
+ "application/json": {
7576
+ error: string;
7577
+ hint?: string;
7578
+ /** @description The current server record (present on an optimistic-concurrency conflict). */
7579
+ record?: {
7580
+ createdAt: string;
7581
+ /** @description Record id. */
7582
+ id: string;
7583
+ /** @description Caller-defined record fields. Server provenance is never echoed here. */
7584
+ metadata: {
7585
+ [key: string]: unknown;
7586
+ };
7587
+ /** @description Record name (unique per namespace within the tenant). */
7588
+ name: string;
7589
+ /** @description The record namespace (record `type`). */
7590
+ namespace: string;
7591
+ updatedAt: string;
7592
+ };
7593
+ };
7594
+ };
7595
+ };
7596
+ /** @description Write rate limit exceeded (per app or per session) */
7597
+ 429: {
7598
+ headers: {
7599
+ [name: string]: unknown;
7600
+ };
7601
+ content: {
7602
+ "application/json": components["schemas"]["Error"];
7603
+ };
7604
+ };
7426
7605
  /** @description Internal server error */
7427
7606
  500: {
7428
7607
  headers: {
@@ -7434,26 +7613,16 @@ interface paths {
7434
7613
  };
7435
7614
  };
7436
7615
  };
7437
- delete?: never;
7438
- options?: never;
7439
- head?: never;
7440
- patch?: never;
7441
- trace?: never;
7442
- };
7443
- "/v1/context-templates/{id}": {
7444
- parameters: {
7445
- query?: never;
7446
- header?: never;
7447
- path?: never;
7448
- cookie?: never;
7449
- };
7616
+ post?: never;
7450
7617
  /**
7451
- * Get context template
7452
- * @description Get a specific context template by ID.
7618
+ * Delete an app record
7619
+ * @description Delete a record by id from a Runtype App data-plane session. The record must belong to the app owner and its namespace must have `read-write` access.
7453
7620
  */
7454
- get: {
7621
+ delete: {
7455
7622
  parameters: {
7456
- query?: never;
7623
+ query: {
7624
+ sessionId: string;
7625
+ };
7457
7626
  header?: never;
7458
7627
  path: {
7459
7628
  id: string;
@@ -7462,27 +7631,14 @@ interface paths {
7462
7631
  };
7463
7632
  requestBody?: never;
7464
7633
  responses: {
7465
- /** @description Context template */
7466
- 200: {
7634
+ /** @description Record deleted */
7635
+ 204: {
7467
7636
  headers: {
7468
7637
  [name: string]: unknown;
7469
7638
  };
7470
- content: {
7471
- "application/json": {
7472
- config: {
7473
- [key: string]: unknown;
7474
- };
7475
- createdAt: string;
7476
- id: string;
7477
- name: string;
7478
- organizationId: string | null;
7479
- type: string;
7480
- updatedAt: string;
7481
- userId: string;
7482
- };
7483
- };
7639
+ content?: never;
7484
7640
  };
7485
- /** @description Invalid context template ID */
7641
+ /** @description Validation error */
7486
7642
  400: {
7487
7643
  headers: {
7488
7644
  [name: string]: unknown;
@@ -7491,7 +7647,7 @@ interface paths {
7491
7647
  "application/json": components["schemas"]["Error"];
7492
7648
  };
7493
7649
  };
7494
- /** @description Unauthorized */
7650
+ /** @description Session not found or expired */
7495
7651
  401: {
7496
7652
  headers: {
7497
7653
  [name: string]: unknown;
@@ -7500,7 +7656,7 @@ interface paths {
7500
7656
  "application/json": components["schemas"]["Error"];
7501
7657
  };
7502
7658
  };
7503
- /** @description Insufficient permissions */
7659
+ /** @description Not an app token, origin mismatch, or namespace not writable */
7504
7660
  403: {
7505
7661
  headers: {
7506
7662
  [name: string]: unknown;
@@ -7509,7 +7665,7 @@ interface paths {
7509
7665
  "application/json": components["schemas"]["Error"];
7510
7666
  };
7511
7667
  };
7512
- /** @description Context template not found */
7668
+ /** @description Record not found */
7513
7669
  404: {
7514
7670
  headers: {
7515
7671
  [name: string]: unknown;
@@ -7518,6 +7674,24 @@ interface paths {
7518
7674
  "application/json": components["schemas"]["Error"];
7519
7675
  };
7520
7676
  };
7677
+ /** @description App has no active version */
7678
+ 409: {
7679
+ headers: {
7680
+ [name: string]: unknown;
7681
+ };
7682
+ content: {
7683
+ "application/json": components["schemas"]["Error"];
7684
+ };
7685
+ };
7686
+ /** @description Write rate limit exceeded (per app or per session) */
7687
+ 429: {
7688
+ headers: {
7689
+ [name: string]: unknown;
7690
+ };
7691
+ content: {
7692
+ "application/json": components["schemas"]["Error"];
7693
+ };
7694
+ };
7521
7695
  /** @description Internal server error */
7522
7696
  500: {
7523
7697
  headers: {
@@ -7529,45 +7703,80 @@ interface paths {
7529
7703
  };
7530
7704
  };
7531
7705
  };
7706
+ options?: never;
7707
+ head?: never;
7708
+ patch?: never;
7709
+ trace?: never;
7710
+ };
7711
+ "/v1/client/resume": {
7712
+ parameters: {
7713
+ query?: never;
7714
+ header?: never;
7715
+ path?: never;
7716
+ cookie?: never;
7717
+ };
7718
+ get?: never;
7719
+ put?: never;
7532
7720
  /**
7533
- * Update context template
7534
- * @description Update a context template. When config is provided it is validated based on the template type.
7721
+ * Resume a paused client execution
7722
+ * @description Session-authenticated sibling of `POST /v1/dispatch/resume` for browser client-token sessions. Resumes a paused local-tool (WebMCP / clientTools) execution by supplying `toolOutputs` keyed by the per-call `toolCallId` (or tool name, legacy). Streams the continued flow/agent events over Server-Sent Events. Does not count against execution limits.
7535
7723
  */
7536
- put: {
7724
+ post: {
7537
7725
  parameters: {
7538
7726
  query?: never;
7539
7727
  header?: never;
7540
- path: {
7541
- id: string;
7542
- };
7728
+ path?: never;
7543
7729
  cookie?: never;
7544
7730
  };
7545
- requestBody?: {
7731
+ requestBody: {
7546
7732
  content: {
7547
7733
  "application/json": {
7548
- [key: string]: unknown;
7734
+ executionId: string;
7735
+ messages?: {
7736
+ content: string | ({
7737
+ text: string;
7738
+ /** @enum {string} */
7739
+ type: "text";
7740
+ } | {
7741
+ image: string;
7742
+ mimeType?: string;
7743
+ /** @enum {string} */
7744
+ type: "image";
7745
+ } | {
7746
+ data: string;
7747
+ filename: string;
7748
+ mimeType: string;
7749
+ /** @enum {string} */
7750
+ type: "file";
7751
+ } | {
7752
+ providerOptions?: {
7753
+ [key: string]: unknown;
7754
+ };
7755
+ text: string;
7756
+ /** @enum {string} */
7757
+ type: "reasoning";
7758
+ })[];
7759
+ /** @enum {string} */
7760
+ role: "system" | "user" | "assistant";
7761
+ }[];
7762
+ sessionId: string;
7763
+ /** @default true */
7764
+ streamResponse?: boolean;
7765
+ /** @default {} */
7766
+ toolOutputs?: {
7767
+ [key: string]: unknown;
7768
+ };
7549
7769
  };
7550
7770
  };
7551
7771
  };
7552
7772
  responses: {
7553
- /** @description Updated context template */
7773
+ /** @description SSE stream of the resumed execution events */
7554
7774
  200: {
7555
7775
  headers: {
7556
7776
  [name: string]: unknown;
7557
7777
  };
7558
7778
  content: {
7559
- "application/json": {
7560
- config: {
7561
- [key: string]: unknown;
7562
- };
7563
- createdAt: string;
7564
- id: string;
7565
- name: string;
7566
- organizationId: string | null;
7567
- type: string;
7568
- updatedAt: string;
7569
- userId: string;
7570
- };
7779
+ "text/event-stream": unknown;
7571
7780
  };
7572
7781
  };
7573
7782
  /** @description Validation error */
@@ -7579,7 +7788,7 @@ interface paths {
7579
7788
  "application/json": components["schemas"]["Error"];
7580
7789
  };
7581
7790
  };
7582
- /** @description Unauthorized */
7791
+ /** @description Session not found or expired */
7583
7792
  401: {
7584
7793
  headers: {
7585
7794
  [name: string]: unknown;
@@ -7588,7 +7797,7 @@ interface paths {
7588
7797
  "application/json": components["schemas"]["Error"];
7589
7798
  };
7590
7799
  };
7591
- /** @description Insufficient permissions */
7800
+ /** @description Client token inactive, origin mismatch, or execution belongs to another user */
7592
7801
  403: {
7593
7802
  headers: {
7594
7803
  [name: string]: unknown;
@@ -7597,7 +7806,7 @@ interface paths {
7597
7806
  "application/json": components["schemas"]["Error"];
7598
7807
  };
7599
7808
  };
7600
- /** @description Context template not found */
7809
+ /** @description No paused execution found for the executionId */
7601
7810
  404: {
7602
7811
  headers: {
7603
7812
  [name: string]: unknown;
@@ -7617,30 +7826,385 @@ interface paths {
7617
7826
  };
7618
7827
  };
7619
7828
  };
7620
- post?: never;
7829
+ delete?: never;
7830
+ options?: never;
7831
+ head?: never;
7832
+ patch?: never;
7833
+ trace?: never;
7834
+ };
7835
+ "/v1/context-templates": {
7836
+ parameters: {
7837
+ query?: never;
7838
+ header?: never;
7839
+ path?: never;
7840
+ cookie?: never;
7841
+ };
7621
7842
  /**
7622
- * Delete context template
7623
- * @description Delete a context template by ID.
7843
+ * List context templates
7844
+ * @description Get all context templates for the authenticated user with optional type/name filtering and cursor pagination.
7624
7845
  */
7625
- delete: {
7846
+ get: {
7626
7847
  parameters: {
7627
- query?: never;
7628
- header?: never;
7629
- path: {
7630
- id: string;
7848
+ query?: {
7849
+ type?: string;
7850
+ name?: string;
7851
+ cursor?: string;
7852
+ limit?: string;
7631
7853
  };
7854
+ header?: never;
7855
+ path?: never;
7632
7856
  cookie?: never;
7633
7857
  };
7634
7858
  requestBody?: never;
7635
7859
  responses: {
7636
- /** @description Context template deleted */
7637
- 204: {
7860
+ /** @description Paginated list of context templates */
7861
+ 200: {
7638
7862
  headers: {
7639
7863
  [name: string]: unknown;
7640
7864
  };
7641
- content?: never;
7865
+ content: {
7866
+ "application/json": {
7867
+ data: {
7868
+ config: {
7869
+ [key: string]: unknown;
7870
+ };
7871
+ createdAt: string;
7872
+ id: string;
7873
+ name: string;
7874
+ organizationId: string | null;
7875
+ type: string;
7876
+ updatedAt: string;
7877
+ userId: string;
7878
+ }[];
7879
+ pagination: {
7880
+ [key: string]: unknown;
7881
+ };
7882
+ };
7883
+ };
7642
7884
  };
7643
- /** @description Invalid context template ID */
7885
+ /** @description Invalid parameters */
7886
+ 400: {
7887
+ headers: {
7888
+ [name: string]: unknown;
7889
+ };
7890
+ content: {
7891
+ "application/json": components["schemas"]["Error"];
7892
+ };
7893
+ };
7894
+ /** @description Unauthorized */
7895
+ 401: {
7896
+ headers: {
7897
+ [name: string]: unknown;
7898
+ };
7899
+ content: {
7900
+ "application/json": components["schemas"]["Error"];
7901
+ };
7902
+ };
7903
+ /** @description Insufficient permissions */
7904
+ 403: {
7905
+ headers: {
7906
+ [name: string]: unknown;
7907
+ };
7908
+ content: {
7909
+ "application/json": components["schemas"]["Error"];
7910
+ };
7911
+ };
7912
+ /** @description Internal server error */
7913
+ 500: {
7914
+ headers: {
7915
+ [name: string]: unknown;
7916
+ };
7917
+ content: {
7918
+ "application/json": components["schemas"]["Error"];
7919
+ };
7920
+ };
7921
+ };
7922
+ };
7923
+ put?: never;
7924
+ /**
7925
+ * Create context template
7926
+ * @description Create a new context template. The config is validated based on the template type.
7927
+ */
7928
+ post: {
7929
+ parameters: {
7930
+ query?: never;
7931
+ header?: never;
7932
+ path?: never;
7933
+ cookie?: never;
7934
+ };
7935
+ requestBody?: {
7936
+ content: {
7937
+ "application/json": {
7938
+ [key: string]: unknown;
7939
+ };
7940
+ };
7941
+ };
7942
+ responses: {
7943
+ /** @description Created context template */
7944
+ 201: {
7945
+ headers: {
7946
+ [name: string]: unknown;
7947
+ };
7948
+ content: {
7949
+ "application/json": {
7950
+ config: {
7951
+ [key: string]: unknown;
7952
+ };
7953
+ createdAt: string;
7954
+ id: string;
7955
+ name: string;
7956
+ organizationId: string | null;
7957
+ type: string;
7958
+ updatedAt: string;
7959
+ userId: string;
7960
+ };
7961
+ };
7962
+ };
7963
+ /** @description Validation error */
7964
+ 400: {
7965
+ headers: {
7966
+ [name: string]: unknown;
7967
+ };
7968
+ content: {
7969
+ "application/json": components["schemas"]["Error"];
7970
+ };
7971
+ };
7972
+ /** @description Unauthorized */
7973
+ 401: {
7974
+ headers: {
7975
+ [name: string]: unknown;
7976
+ };
7977
+ content: {
7978
+ "application/json": components["schemas"]["Error"];
7979
+ };
7980
+ };
7981
+ /** @description Insufficient permissions */
7982
+ 403: {
7983
+ headers: {
7984
+ [name: string]: unknown;
7985
+ };
7986
+ content: {
7987
+ "application/json": components["schemas"]["Error"];
7988
+ };
7989
+ };
7990
+ /** @description Internal server error */
7991
+ 500: {
7992
+ headers: {
7993
+ [name: string]: unknown;
7994
+ };
7995
+ content: {
7996
+ "application/json": components["schemas"]["Error"];
7997
+ };
7998
+ };
7999
+ };
8000
+ };
8001
+ delete?: never;
8002
+ options?: never;
8003
+ head?: never;
8004
+ patch?: never;
8005
+ trace?: never;
8006
+ };
8007
+ "/v1/context-templates/{id}": {
8008
+ parameters: {
8009
+ query?: never;
8010
+ header?: never;
8011
+ path?: never;
8012
+ cookie?: never;
8013
+ };
8014
+ /**
8015
+ * Get context template
8016
+ * @description Get a specific context template by ID.
8017
+ */
8018
+ get: {
8019
+ parameters: {
8020
+ query?: never;
8021
+ header?: never;
8022
+ path: {
8023
+ id: string;
8024
+ };
8025
+ cookie?: never;
8026
+ };
8027
+ requestBody?: never;
8028
+ responses: {
8029
+ /** @description Context template */
8030
+ 200: {
8031
+ headers: {
8032
+ [name: string]: unknown;
8033
+ };
8034
+ content: {
8035
+ "application/json": {
8036
+ config: {
8037
+ [key: string]: unknown;
8038
+ };
8039
+ createdAt: string;
8040
+ id: string;
8041
+ name: string;
8042
+ organizationId: string | null;
8043
+ type: string;
8044
+ updatedAt: string;
8045
+ userId: string;
8046
+ };
8047
+ };
8048
+ };
8049
+ /** @description Invalid context template ID */
8050
+ 400: {
8051
+ headers: {
8052
+ [name: string]: unknown;
8053
+ };
8054
+ content: {
8055
+ "application/json": components["schemas"]["Error"];
8056
+ };
8057
+ };
8058
+ /** @description Unauthorized */
8059
+ 401: {
8060
+ headers: {
8061
+ [name: string]: unknown;
8062
+ };
8063
+ content: {
8064
+ "application/json": components["schemas"]["Error"];
8065
+ };
8066
+ };
8067
+ /** @description Insufficient permissions */
8068
+ 403: {
8069
+ headers: {
8070
+ [name: string]: unknown;
8071
+ };
8072
+ content: {
8073
+ "application/json": components["schemas"]["Error"];
8074
+ };
8075
+ };
8076
+ /** @description Context template not found */
8077
+ 404: {
8078
+ headers: {
8079
+ [name: string]: unknown;
8080
+ };
8081
+ content: {
8082
+ "application/json": components["schemas"]["Error"];
8083
+ };
8084
+ };
8085
+ /** @description Internal server error */
8086
+ 500: {
8087
+ headers: {
8088
+ [name: string]: unknown;
8089
+ };
8090
+ content: {
8091
+ "application/json": components["schemas"]["Error"];
8092
+ };
8093
+ };
8094
+ };
8095
+ };
8096
+ /**
8097
+ * Update context template
8098
+ * @description Update a context template. When config is provided it is validated based on the template type.
8099
+ */
8100
+ put: {
8101
+ parameters: {
8102
+ query?: never;
8103
+ header?: never;
8104
+ path: {
8105
+ id: string;
8106
+ };
8107
+ cookie?: never;
8108
+ };
8109
+ requestBody?: {
8110
+ content: {
8111
+ "application/json": {
8112
+ [key: string]: unknown;
8113
+ };
8114
+ };
8115
+ };
8116
+ responses: {
8117
+ /** @description Updated context template */
8118
+ 200: {
8119
+ headers: {
8120
+ [name: string]: unknown;
8121
+ };
8122
+ content: {
8123
+ "application/json": {
8124
+ config: {
8125
+ [key: string]: unknown;
8126
+ };
8127
+ createdAt: string;
8128
+ id: string;
8129
+ name: string;
8130
+ organizationId: string | null;
8131
+ type: string;
8132
+ updatedAt: string;
8133
+ userId: string;
8134
+ };
8135
+ };
8136
+ };
8137
+ /** @description Validation error */
8138
+ 400: {
8139
+ headers: {
8140
+ [name: string]: unknown;
8141
+ };
8142
+ content: {
8143
+ "application/json": components["schemas"]["Error"];
8144
+ };
8145
+ };
8146
+ /** @description Unauthorized */
8147
+ 401: {
8148
+ headers: {
8149
+ [name: string]: unknown;
8150
+ };
8151
+ content: {
8152
+ "application/json": components["schemas"]["Error"];
8153
+ };
8154
+ };
8155
+ /** @description Insufficient permissions */
8156
+ 403: {
8157
+ headers: {
8158
+ [name: string]: unknown;
8159
+ };
8160
+ content: {
8161
+ "application/json": components["schemas"]["Error"];
8162
+ };
8163
+ };
8164
+ /** @description Context template not found */
8165
+ 404: {
8166
+ headers: {
8167
+ [name: string]: unknown;
8168
+ };
8169
+ content: {
8170
+ "application/json": components["schemas"]["Error"];
8171
+ };
8172
+ };
8173
+ /** @description Internal server error */
8174
+ 500: {
8175
+ headers: {
8176
+ [name: string]: unknown;
8177
+ };
8178
+ content: {
8179
+ "application/json": components["schemas"]["Error"];
8180
+ };
8181
+ };
8182
+ };
8183
+ };
8184
+ post?: never;
8185
+ /**
8186
+ * Delete context template
8187
+ * @description Delete a context template by ID.
8188
+ */
8189
+ delete: {
8190
+ parameters: {
8191
+ query?: never;
8192
+ header?: never;
8193
+ path: {
8194
+ id: string;
8195
+ };
8196
+ cookie?: never;
8197
+ };
8198
+ requestBody?: never;
8199
+ responses: {
8200
+ /** @description Context template deleted */
8201
+ 204: {
8202
+ headers: {
8203
+ [name: string]: unknown;
8204
+ };
8205
+ content?: never;
8206
+ };
8207
+ /** @description Invalid context template ID */
7644
8208
  400: {
7645
8209
  headers: {
7646
8210
  [name: string]: unknown;
@@ -8692,7 +9256,7 @@ interface paths {
8692
9256
  put?: never;
8693
9257
  /**
8694
9258
  * 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.
9259
+ * @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
9260
  */
8697
9261
  post: {
8698
9262
  parameters: {
@@ -8718,6 +9282,15 @@ interface paths {
8718
9282
  "text/event-stream": unknown;
8719
9283
  };
8720
9284
  };
9285
+ /** @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. */
9286
+ 202: {
9287
+ headers: {
9288
+ [name: string]: unknown;
9289
+ };
9290
+ content: {
9291
+ "application/json": components["schemas"]["AsyncDispatchHandle"];
9292
+ };
9293
+ };
8721
9294
  /** @description Validation error */
8722
9295
  400: {
8723
9296
  headers: {
@@ -9278,7 +9851,7 @@ interface paths {
9278
9851
  patch?: never;
9279
9852
  trace?: never;
9280
9853
  };
9281
- "/v1/eval/analyze-steps": {
9854
+ "/v1/end-user-integrations/{provider}/connect": {
9282
9855
  parameters: {
9283
9856
  query?: never;
9284
9857
  header?: never;
@@ -9288,234 +9861,50 @@ interface paths {
9288
9861
  get?: never;
9289
9862
  put?: never;
9290
9863
  /**
9291
- * Analyze step results
9292
- * @description Analyze step results for keyword/phrase occurrences across evals.
9864
+ * Begin end-user OAuth connection
9865
+ * @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
9866
  */
9294
9867
  post: {
9295
9868
  parameters: {
9296
9869
  query?: never;
9297
9870
  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
- };
9871
+ path: {
9872
+ /** @description OAuth connector provider slug, e.g. `github`. */
9873
+ provider: string;
9450
9874
  };
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
9875
  cookie?: never;
9480
9876
  };
9481
9877
  requestBody?: {
9482
9878
  content: {
9483
9879
  "application/json": {
9484
- evalGroupId: string;
9485
- stepIds?: string[];
9880
+ /** @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. */
9881
+ identityProof: string;
9882
+ /**
9883
+ * Format: uri
9884
+ * @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).
9885
+ */
9886
+ redirectAfter?: string;
9486
9887
  };
9487
9888
  };
9488
9889
  };
9489
9890
  responses: {
9490
- /** @description Comparison returned */
9891
+ /** @description Authorize URL issued */
9491
9892
  200: {
9492
9893
  headers: {
9493
9894
  [name: string]: unknown;
9494
9895
  };
9495
9896
  content: {
9496
9897
  "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
- }[];
9898
+ /** @description Redirect the end user here to authorize the third-party account. */
9899
+ authorizeUrl: string;
9900
+ /** @description The durable end-user id (eu_*) the token will scope to. */
9901
+ endUserId: string;
9902
+ /** @description Opaque single-use CSRF token (bound in KV). */
9903
+ state: string;
9515
9904
  };
9516
9905
  };
9517
9906
  };
9518
- /** @description Invalid request */
9907
+ /** @description Invalid request body or redirect */
9519
9908
  400: {
9520
9909
  headers: {
9521
9910
  [name: string]: unknown;
@@ -9524,7 +9913,7 @@ interface paths {
9524
9913
  "application/json": components["schemas"]["Error"];
9525
9914
  };
9526
9915
  };
9527
- /** @description Unauthorized */
9916
+ /** @description Unauthorized, or identity proof verification failed */
9528
9917
  401: {
9529
9918
  headers: {
9530
9919
  [name: string]: unknown;
@@ -9533,7 +9922,7 @@ interface paths {
9533
9922
  "application/json": components["schemas"]["Error"];
9534
9923
  };
9535
9924
  };
9536
- /** @description Forbidden */
9925
+ /** @description Forbidden, or the proof did not reach verified end-user assurance */
9537
9926
  403: {
9538
9927
  headers: {
9539
9928
  [name: string]: unknown;
@@ -9542,7 +9931,7 @@ interface paths {
9542
9931
  "application/json": components["schemas"]["Error"];
9543
9932
  };
9544
9933
  };
9545
- /** @description Not found */
9934
+ /** @description Unknown connector provider */
9546
9935
  404: {
9547
9936
  headers: {
9548
9937
  [name: string]: unknown;
@@ -9551,8 +9940,8 @@ interface paths {
9551
9940
  "application/json": components["schemas"]["Error"];
9552
9941
  };
9553
9942
  };
9554
- /** @description Internal server error */
9555
- 500: {
9943
+ /** @description Connector is not configured on this deployment */
9944
+ 501: {
9556
9945
  headers: {
9557
9946
  [name: string]: unknown;
9558
9947
  };
@@ -9568,7 +9957,7 @@ interface paths {
9568
9957
  patch?: never;
9569
9958
  trace?: never;
9570
9959
  };
9571
- "/v1/eval/compare-record": {
9960
+ "/v1/eval/analyze-steps": {
9572
9961
  parameters: {
9573
9962
  query?: never;
9574
9963
  header?: never;
@@ -9578,8 +9967,8 @@ interface paths {
9578
9967
  get?: never;
9579
9968
  put?: never;
9580
9969
  /**
9581
- * Compare record across evals
9582
- * @description Compare results for a specific record across eval batches in a group.
9970
+ * Analyze step results
9971
+ * @description Analyze step results for keyword/phrase occurrences across evals.
9583
9972
  */
9584
9973
  post: {
9585
9974
  parameters: {
@@ -9591,14 +9980,15 @@ interface paths {
9591
9980
  requestBody?: {
9592
9981
  content: {
9593
9982
  "application/json": {
9983
+ caseSensitive?: boolean;
9594
9984
  evalGroupId: string;
9595
- recordId: string;
9596
- stepIds?: string[];
9985
+ searchTerms: string[];
9986
+ stepIds: string[];
9597
9987
  };
9598
9988
  };
9599
9989
  };
9600
9990
  responses: {
9601
- /** @description Record comparison returned */
9991
+ /** @description Analysis returned */
9602
9992
  200: {
9603
9993
  headers: {
9604
9994
  [name: string]: unknown;
@@ -9606,27 +9996,322 @@ interface paths {
9606
9996
  content: {
9607
9997
  "application/json": {
9608
9998
  evalGroupId: string;
9609
- evals: {
9999
+ results: {
9610
10000
  batchExecutionId: string;
9611
10001
  evalConfig?: unknown;
9612
10002
  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;
10003
+ termAnalysis: {
10004
+ occurrenceRate: number;
10005
+ stepsContainingTerm: number;
10006
+ term: string;
10007
+ totalOccurrences: number;
9627
10008
  }[];
10009
+ totalStepsAnalyzed: number;
9628
10010
  }[];
9629
- recordId: string;
10011
+ searchTerms: string[];
10012
+ stepIds: string[];
10013
+ };
10014
+ };
10015
+ };
10016
+ /** @description Invalid request */
10017
+ 400: {
10018
+ headers: {
10019
+ [name: string]: unknown;
10020
+ };
10021
+ content: {
10022
+ "application/json": components["schemas"]["Error"];
10023
+ };
10024
+ };
10025
+ /** @description Unauthorized */
10026
+ 401: {
10027
+ headers: {
10028
+ [name: string]: unknown;
10029
+ };
10030
+ content: {
10031
+ "application/json": components["schemas"]["Error"];
10032
+ };
10033
+ };
10034
+ /** @description Forbidden */
10035
+ 403: {
10036
+ headers: {
10037
+ [name: string]: unknown;
10038
+ };
10039
+ content: {
10040
+ "application/json": components["schemas"]["Error"];
10041
+ };
10042
+ };
10043
+ /** @description Not found */
10044
+ 404: {
10045
+ headers: {
10046
+ [name: string]: unknown;
10047
+ };
10048
+ content: {
10049
+ "application/json": components["schemas"]["Error"];
10050
+ };
10051
+ };
10052
+ /** @description Internal server error */
10053
+ 500: {
10054
+ headers: {
10055
+ [name: string]: unknown;
10056
+ };
10057
+ content: {
10058
+ "application/json": components["schemas"]["Error"];
10059
+ };
10060
+ };
10061
+ };
10062
+ };
10063
+ delete?: never;
10064
+ options?: never;
10065
+ head?: never;
10066
+ patch?: never;
10067
+ trace?: never;
10068
+ };
10069
+ "/v1/eval/batches": {
10070
+ parameters: {
10071
+ query?: never;
10072
+ header?: never;
10073
+ path?: never;
10074
+ cookie?: never;
10075
+ };
10076
+ /**
10077
+ * List eval batches
10078
+ * @description List all eval batches for the current user with optional filtering and pagination.
10079
+ */
10080
+ get: {
10081
+ parameters: {
10082
+ query?: {
10083
+ /** @description Number of results (default 50, max 100) */
10084
+ limit?: string;
10085
+ /** @description Pagination offset */
10086
+ offset?: string;
10087
+ /** @description Filter by status (queued|processing|completed|failed) */
10088
+ status?: string;
10089
+ /** @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). */
10090
+ origin?: "suite" | "adhoc";
10091
+ /** @description Filter to runs of a specific eval suite. Server-side, so a suite with sparse runs is not crowded out of the page by other suites. */
10092
+ evalSuiteId?: string;
10093
+ };
10094
+ header?: never;
10095
+ path?: never;
10096
+ cookie?: never;
10097
+ };
10098
+ requestBody?: never;
10099
+ responses: {
10100
+ /** @description Eval batches returned */
10101
+ 200: {
10102
+ headers: {
10103
+ [name: string]: unknown;
10104
+ };
10105
+ content: {
10106
+ "application/json": {
10107
+ batches: {
10108
+ [key: string]: unknown;
10109
+ }[];
10110
+ count: number;
10111
+ /** @description True when this page came back full — there may be more rows past it. */
10112
+ hasMore: boolean;
10113
+ limit: number;
10114
+ offset: number;
10115
+ };
10116
+ };
10117
+ };
10118
+ /** @description Unauthorized */
10119
+ 401: {
10120
+ headers: {
10121
+ [name: string]: unknown;
10122
+ };
10123
+ content: {
10124
+ "application/json": components["schemas"]["Error"];
10125
+ };
10126
+ };
10127
+ /** @description Internal server error */
10128
+ 500: {
10129
+ headers: {
10130
+ [name: string]: unknown;
10131
+ };
10132
+ content: {
10133
+ "application/json": components["schemas"]["Error"];
10134
+ };
10135
+ };
10136
+ };
10137
+ };
10138
+ put?: never;
10139
+ post?: never;
10140
+ delete?: never;
10141
+ options?: never;
10142
+ head?: never;
10143
+ patch?: never;
10144
+ trace?: never;
10145
+ };
10146
+ "/v1/eval/compare": {
10147
+ parameters: {
10148
+ query?: never;
10149
+ header?: never;
10150
+ path?: never;
10151
+ cookie?: never;
10152
+ };
10153
+ get?: never;
10154
+ put?: never;
10155
+ /**
10156
+ * Compare evals
10157
+ * @description Compare aggregate metrics across eval batches in a group.
10158
+ */
10159
+ post: {
10160
+ parameters: {
10161
+ query?: never;
10162
+ header?: never;
10163
+ path?: never;
10164
+ cookie?: never;
10165
+ };
10166
+ requestBody?: {
10167
+ content: {
10168
+ "application/json": {
10169
+ evalGroupId: string;
10170
+ stepIds?: string[];
10171
+ };
10172
+ };
10173
+ };
10174
+ responses: {
10175
+ /** @description Comparison returned */
10176
+ 200: {
10177
+ headers: {
10178
+ [name: string]: unknown;
10179
+ };
10180
+ content: {
10181
+ "application/json": {
10182
+ evalGroupId: string;
10183
+ evals: {
10184
+ batchExecutionId: string;
10185
+ evalConfig?: unknown;
10186
+ evalName?: string;
10187
+ metrics: {
10188
+ avgCostPerRecord: number;
10189
+ avgDurationPerRecord: number;
10190
+ failedSteps: number;
10191
+ successRate: number;
10192
+ successfulSteps: number;
10193
+ totalCompletionTokens: number;
10194
+ totalCost: number;
10195
+ totalDurationMs: number;
10196
+ totalPromptTokens: number;
10197
+ totalSteps: number;
10198
+ };
10199
+ }[];
10200
+ };
10201
+ };
10202
+ };
10203
+ /** @description Invalid request */
10204
+ 400: {
10205
+ headers: {
10206
+ [name: string]: unknown;
10207
+ };
10208
+ content: {
10209
+ "application/json": components["schemas"]["Error"];
10210
+ };
10211
+ };
10212
+ /** @description Unauthorized */
10213
+ 401: {
10214
+ headers: {
10215
+ [name: string]: unknown;
10216
+ };
10217
+ content: {
10218
+ "application/json": components["schemas"]["Error"];
10219
+ };
10220
+ };
10221
+ /** @description Forbidden */
10222
+ 403: {
10223
+ headers: {
10224
+ [name: string]: unknown;
10225
+ };
10226
+ content: {
10227
+ "application/json": components["schemas"]["Error"];
10228
+ };
10229
+ };
10230
+ /** @description Not found */
10231
+ 404: {
10232
+ headers: {
10233
+ [name: string]: unknown;
10234
+ };
10235
+ content: {
10236
+ "application/json": components["schemas"]["Error"];
10237
+ };
10238
+ };
10239
+ /** @description Internal server error */
10240
+ 500: {
10241
+ headers: {
10242
+ [name: string]: unknown;
10243
+ };
10244
+ content: {
10245
+ "application/json": components["schemas"]["Error"];
10246
+ };
10247
+ };
10248
+ };
10249
+ };
10250
+ delete?: never;
10251
+ options?: never;
10252
+ head?: never;
10253
+ patch?: never;
10254
+ trace?: never;
10255
+ };
10256
+ "/v1/eval/compare-record": {
10257
+ parameters: {
10258
+ query?: never;
10259
+ header?: never;
10260
+ path?: never;
10261
+ cookie?: never;
10262
+ };
10263
+ get?: never;
10264
+ put?: never;
10265
+ /**
10266
+ * Compare record across evals
10267
+ * @description Compare results for a specific record across eval batches in a group.
10268
+ */
10269
+ post: {
10270
+ parameters: {
10271
+ query?: never;
10272
+ header?: never;
10273
+ path?: never;
10274
+ cookie?: never;
10275
+ };
10276
+ requestBody?: {
10277
+ content: {
10278
+ "application/json": {
10279
+ evalGroupId: string;
10280
+ recordId: string;
10281
+ stepIds?: string[];
10282
+ };
10283
+ };
10284
+ };
10285
+ responses: {
10286
+ /** @description Record comparison returned */
10287
+ 200: {
10288
+ headers: {
10289
+ [name: string]: unknown;
10290
+ };
10291
+ content: {
10292
+ "application/json": {
10293
+ evalGroupId: string;
10294
+ evals: {
10295
+ batchExecutionId: string;
10296
+ evalConfig?: unknown;
10297
+ evalName?: string;
10298
+ stepResults: {
10299
+ completionTokens: number | null;
10300
+ durationMs: number | null;
10301
+ error?: string;
10302
+ executedAt: string;
10303
+ modelUsed: string | null;
10304
+ output: string | null;
10305
+ promptTokens: number | null;
10306
+ stepId: string;
10307
+ stepName: string | null;
10308
+ stepResultId: string;
10309
+ stepType: string;
10310
+ toolCalls: unknown[];
10311
+ totalCost: number | null;
10312
+ }[];
10313
+ }[];
10314
+ recordId: string;
9630
10315
  };
9631
10316
  };
9632
10317
  };
@@ -9968,7 +10653,7 @@ interface paths {
9968
10653
  put?: never;
9969
10654
  /**
9970
10655
  * 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.
10656
+ * @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
10657
  */
9973
10658
  post: {
9974
10659
  parameters: {
@@ -10014,6 +10699,8 @@ interface paths {
10014
10699
  /** @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
10700
  strict?: boolean;
10016
10701
  suiteId?: string;
10702
+ /** @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. */
10703
+ virtual?: boolean;
10017
10704
  };
10018
10705
  };
10019
10706
  };
@@ -10089,6 +10776,83 @@ interface paths {
10089
10776
  patch?: never;
10090
10777
  trace?: never;
10091
10778
  };
10779
+ "/v1/eval/runs/{batchId}/scores": {
10780
+ parameters: {
10781
+ query?: never;
10782
+ header?: never;
10783
+ path?: never;
10784
+ cookie?: never;
10785
+ };
10786
+ /**
10787
+ * Get persisted grader scores for an eval run
10788
+ * @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).
10789
+ */
10790
+ get: {
10791
+ parameters: {
10792
+ query?: never;
10793
+ header?: never;
10794
+ path: {
10795
+ batchId: string;
10796
+ };
10797
+ cookie?: never;
10798
+ };
10799
+ requestBody?: never;
10800
+ responses: {
10801
+ /** @description Per-case grader scores for the run */
10802
+ 200: {
10803
+ headers: {
10804
+ [name: string]: unknown;
10805
+ };
10806
+ content: {
10807
+ "application/json": components["schemas"]["EvalRunScoresResponse"];
10808
+ };
10809
+ };
10810
+ /** @description Unauthorized */
10811
+ 401: {
10812
+ headers: {
10813
+ [name: string]: unknown;
10814
+ };
10815
+ content: {
10816
+ "application/json": components["schemas"]["Error"];
10817
+ };
10818
+ };
10819
+ /** @description Forbidden */
10820
+ 403: {
10821
+ headers: {
10822
+ [name: string]: unknown;
10823
+ };
10824
+ content: {
10825
+ "application/json": components["schemas"]["Error"];
10826
+ };
10827
+ };
10828
+ /** @description Run not found in this account scope */
10829
+ 404: {
10830
+ headers: {
10831
+ [name: string]: unknown;
10832
+ };
10833
+ content: {
10834
+ "application/json": components["schemas"]["Error"];
10835
+ };
10836
+ };
10837
+ /** @description Internal server error */
10838
+ 500: {
10839
+ headers: {
10840
+ [name: string]: unknown;
10841
+ };
10842
+ content: {
10843
+ "application/json": components["schemas"]["Error"];
10844
+ };
10845
+ };
10846
+ };
10847
+ };
10848
+ put?: never;
10849
+ post?: never;
10850
+ delete?: never;
10851
+ options?: never;
10852
+ head?: never;
10853
+ patch?: never;
10854
+ trace?: never;
10855
+ };
10092
10856
  "/v1/eval/stream": {
10093
10857
  parameters: {
10094
10858
  query?: never;
@@ -10282,6 +11046,833 @@ interface paths {
10282
11046
  patch?: never;
10283
11047
  trace?: never;
10284
11048
  };
11049
+ "/v1/eval/suites": {
11050
+ parameters: {
11051
+ query?: never;
11052
+ header?: never;
11053
+ path?: never;
11054
+ cookie?: never;
11055
+ };
11056
+ /**
11057
+ * List eval suites
11058
+ * @description List eval suites in the account scope with case counts and each suite’s latest run + score. Filter by target with flowId/agentId.
11059
+ */
11060
+ get: {
11061
+ parameters: {
11062
+ query?: {
11063
+ /** @description Filter to suites targeting this flow */
11064
+ flowId?: string;
11065
+ /** @description Filter to suites targeting this agent */
11066
+ agentId?: string;
11067
+ /** @description Number of results (default 50, max 100) */
11068
+ limit?: string;
11069
+ /** @description Pagination offset */
11070
+ offset?: string;
11071
+ };
11072
+ header?: never;
11073
+ path?: never;
11074
+ cookie?: never;
11075
+ };
11076
+ requestBody?: never;
11077
+ responses: {
11078
+ /** @description Eval suites returned */
11079
+ 200: {
11080
+ headers: {
11081
+ [name: string]: unknown;
11082
+ };
11083
+ content: {
11084
+ "application/json": components["schemas"]["EvalSuiteListResponse"];
11085
+ };
11086
+ };
11087
+ /** @description Invalid request */
11088
+ 400: {
11089
+ headers: {
11090
+ [name: string]: unknown;
11091
+ };
11092
+ content: {
11093
+ "application/json": components["schemas"]["Error"];
11094
+ };
11095
+ };
11096
+ /** @description Unauthorized */
11097
+ 401: {
11098
+ headers: {
11099
+ [name: string]: unknown;
11100
+ };
11101
+ content: {
11102
+ "application/json": components["schemas"]["Error"];
11103
+ };
11104
+ };
11105
+ /** @description Forbidden */
11106
+ 403: {
11107
+ headers: {
11108
+ [name: string]: unknown;
11109
+ };
11110
+ content: {
11111
+ "application/json": components["schemas"]["Error"];
11112
+ };
11113
+ };
11114
+ /** @description Internal server error */
11115
+ 500: {
11116
+ headers: {
11117
+ [name: string]: unknown;
11118
+ };
11119
+ content: {
11120
+ "application/json": components["schemas"]["Error"];
11121
+ };
11122
+ };
11123
+ };
11124
+ };
11125
+ put?: never;
11126
+ /**
11127
+ * Create eval suite
11128
+ * @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.
11129
+ */
11130
+ post: {
11131
+ parameters: {
11132
+ query?: never;
11133
+ header?: never;
11134
+ path?: never;
11135
+ cookie?: never;
11136
+ };
11137
+ requestBody?: {
11138
+ content: {
11139
+ "application/json": {
11140
+ agentId?: string;
11141
+ cases?: {
11142
+ enabled?: boolean;
11143
+ expected?: {
11144
+ facts?: string[];
11145
+ json?: unknown;
11146
+ text?: string;
11147
+ };
11148
+ /** @default {} */
11149
+ input?: {
11150
+ messages?: {
11151
+ content: string;
11152
+ role: string;
11153
+ }[];
11154
+ variables?: {
11155
+ [key: string]: unknown;
11156
+ };
11157
+ };
11158
+ name: string;
11159
+ notes?: string;
11160
+ /**
11161
+ * @description Case provenance. Defaults to "manual" when omitted.
11162
+ * @enum {string}
11163
+ */
11164
+ origin?: "manual" | "saved_from_run" | "generated" | "imported" | "fpo";
11165
+ }[];
11166
+ description?: string;
11167
+ flowId?: string;
11168
+ /**
11169
+ * @description Ordered grader configs applied to every case (suite-level graders).
11170
+ * @default []
11171
+ */
11172
+ graders?: ({
11173
+ kind: string;
11174
+ } & {
11175
+ [key: string]: unknown;
11176
+ })[];
11177
+ /** @description Make this the default eval for its target (clears the flag on any other suite for the same target). */
11178
+ isDefault?: boolean;
11179
+ name: string;
11180
+ };
11181
+ };
11182
+ };
11183
+ responses: {
11184
+ /** @description Suite created */
11185
+ 201: {
11186
+ headers: {
11187
+ [name: string]: unknown;
11188
+ };
11189
+ content: {
11190
+ "application/json": components["schemas"]["EvalSuiteDetail"];
11191
+ };
11192
+ };
11193
+ /** @description Invalid request */
11194
+ 400: {
11195
+ headers: {
11196
+ [name: string]: unknown;
11197
+ };
11198
+ content: {
11199
+ "application/json": components["schemas"]["Error"];
11200
+ };
11201
+ };
11202
+ /** @description Unauthorized */
11203
+ 401: {
11204
+ headers: {
11205
+ [name: string]: unknown;
11206
+ };
11207
+ content: {
11208
+ "application/json": components["schemas"]["Error"];
11209
+ };
11210
+ };
11211
+ /** @description Forbidden */
11212
+ 403: {
11213
+ headers: {
11214
+ [name: string]: unknown;
11215
+ };
11216
+ content: {
11217
+ "application/json": components["schemas"]["Error"];
11218
+ };
11219
+ };
11220
+ /** @description Not found */
11221
+ 404: {
11222
+ headers: {
11223
+ [name: string]: unknown;
11224
+ };
11225
+ content: {
11226
+ "application/json": components["schemas"]["Error"];
11227
+ };
11228
+ };
11229
+ /** @description Internal server error */
11230
+ 500: {
11231
+ headers: {
11232
+ [name: string]: unknown;
11233
+ };
11234
+ content: {
11235
+ "application/json": components["schemas"]["Error"];
11236
+ };
11237
+ };
11238
+ };
11239
+ };
11240
+ delete?: never;
11241
+ options?: never;
11242
+ head?: never;
11243
+ patch?: never;
11244
+ trace?: never;
11245
+ };
11246
+ "/v1/eval/suites/{id}": {
11247
+ parameters: {
11248
+ query?: never;
11249
+ header?: never;
11250
+ path?: never;
11251
+ cookie?: never;
11252
+ };
11253
+ /**
11254
+ * Get eval suite
11255
+ * @description Get an eval suite including its cases and latest run + score.
11256
+ */
11257
+ get: {
11258
+ parameters: {
11259
+ query?: never;
11260
+ header?: never;
11261
+ path: {
11262
+ id: string;
11263
+ };
11264
+ cookie?: never;
11265
+ };
11266
+ requestBody?: never;
11267
+ responses: {
11268
+ /** @description Eval suite returned */
11269
+ 200: {
11270
+ headers: {
11271
+ [name: string]: unknown;
11272
+ };
11273
+ content: {
11274
+ "application/json": components["schemas"]["EvalSuiteDetail"];
11275
+ };
11276
+ };
11277
+ /** @description Unauthorized */
11278
+ 401: {
11279
+ headers: {
11280
+ [name: string]: unknown;
11281
+ };
11282
+ content: {
11283
+ "application/json": components["schemas"]["Error"];
11284
+ };
11285
+ };
11286
+ /** @description Forbidden */
11287
+ 403: {
11288
+ headers: {
11289
+ [name: string]: unknown;
11290
+ };
11291
+ content: {
11292
+ "application/json": components["schemas"]["Error"];
11293
+ };
11294
+ };
11295
+ /** @description Not found */
11296
+ 404: {
11297
+ headers: {
11298
+ [name: string]: unknown;
11299
+ };
11300
+ content: {
11301
+ "application/json": components["schemas"]["Error"];
11302
+ };
11303
+ };
11304
+ /** @description Internal server error */
11305
+ 500: {
11306
+ headers: {
11307
+ [name: string]: unknown;
11308
+ };
11309
+ content: {
11310
+ "application/json": components["schemas"]["Error"];
11311
+ };
11312
+ };
11313
+ };
11314
+ };
11315
+ put?: never;
11316
+ post?: never;
11317
+ /**
11318
+ * Delete eval suite
11319
+ * @description Delete an eval suite and its cases. Past runs and their persisted scores survive (scores keep the case name snapshot).
11320
+ */
11321
+ delete: {
11322
+ parameters: {
11323
+ query?: never;
11324
+ header?: never;
11325
+ path: {
11326
+ id: string;
11327
+ };
11328
+ cookie?: never;
11329
+ };
11330
+ requestBody?: never;
11331
+ responses: {
11332
+ /** @description Suite deleted */
11333
+ 200: {
11334
+ headers: {
11335
+ [name: string]: unknown;
11336
+ };
11337
+ content: {
11338
+ "application/json": {
11339
+ success: boolean;
11340
+ };
11341
+ };
11342
+ };
11343
+ /** @description Unauthorized */
11344
+ 401: {
11345
+ headers: {
11346
+ [name: string]: unknown;
11347
+ };
11348
+ content: {
11349
+ "application/json": components["schemas"]["Error"];
11350
+ };
11351
+ };
11352
+ /** @description Forbidden */
11353
+ 403: {
11354
+ headers: {
11355
+ [name: string]: unknown;
11356
+ };
11357
+ content: {
11358
+ "application/json": components["schemas"]["Error"];
11359
+ };
11360
+ };
11361
+ /** @description Not found */
11362
+ 404: {
11363
+ headers: {
11364
+ [name: string]: unknown;
11365
+ };
11366
+ content: {
11367
+ "application/json": components["schemas"]["Error"];
11368
+ };
11369
+ };
11370
+ /** @description Internal server error */
11371
+ 500: {
11372
+ headers: {
11373
+ [name: string]: unknown;
11374
+ };
11375
+ content: {
11376
+ "application/json": components["schemas"]["Error"];
11377
+ };
11378
+ };
11379
+ };
11380
+ };
11381
+ options?: never;
11382
+ head?: never;
11383
+ /**
11384
+ * Update eval suite
11385
+ * @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.
11386
+ */
11387
+ patch: {
11388
+ parameters: {
11389
+ query?: never;
11390
+ header?: never;
11391
+ path: {
11392
+ id: string;
11393
+ };
11394
+ cookie?: never;
11395
+ };
11396
+ requestBody?: {
11397
+ content: {
11398
+ "application/json": {
11399
+ /** @description Pin a run of this suite as the comparison baseline; null clears the pin. */
11400
+ baselineBatchExecutionId?: string | null;
11401
+ description?: string | null;
11402
+ graders?: ({
11403
+ kind: string;
11404
+ } & {
11405
+ [key: string]: unknown;
11406
+ })[];
11407
+ isDefault?: boolean;
11408
+ name?: string;
11409
+ };
11410
+ };
11411
+ };
11412
+ responses: {
11413
+ /** @description Suite updated */
11414
+ 200: {
11415
+ headers: {
11416
+ [name: string]: unknown;
11417
+ };
11418
+ content: {
11419
+ "application/json": components["schemas"]["EvalSuiteSummary"];
11420
+ };
11421
+ };
11422
+ /** @description Invalid request */
11423
+ 400: {
11424
+ headers: {
11425
+ [name: string]: unknown;
11426
+ };
11427
+ content: {
11428
+ "application/json": components["schemas"]["Error"];
11429
+ };
11430
+ };
11431
+ /** @description Unauthorized */
11432
+ 401: {
11433
+ headers: {
11434
+ [name: string]: unknown;
11435
+ };
11436
+ content: {
11437
+ "application/json": components["schemas"]["Error"];
11438
+ };
11439
+ };
11440
+ /** @description Forbidden */
11441
+ 403: {
11442
+ headers: {
11443
+ [name: string]: unknown;
11444
+ };
11445
+ content: {
11446
+ "application/json": components["schemas"]["Error"];
11447
+ };
11448
+ };
11449
+ /** @description Not found */
11450
+ 404: {
11451
+ headers: {
11452
+ [name: string]: unknown;
11453
+ };
11454
+ content: {
11455
+ "application/json": components["schemas"]["Error"];
11456
+ };
11457
+ };
11458
+ /** @description Internal server error */
11459
+ 500: {
11460
+ headers: {
11461
+ [name: string]: unknown;
11462
+ };
11463
+ content: {
11464
+ "application/json": components["schemas"]["Error"];
11465
+ };
11466
+ };
11467
+ };
11468
+ };
11469
+ trace?: never;
11470
+ };
11471
+ "/v1/eval/suites/{id}/cases": {
11472
+ parameters: {
11473
+ query?: never;
11474
+ header?: never;
11475
+ path?: never;
11476
+ cookie?: never;
11477
+ };
11478
+ get?: never;
11479
+ put?: never;
11480
+ /**
11481
+ * Add eval cases
11482
+ * @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.
11483
+ */
11484
+ post: {
11485
+ parameters: {
11486
+ query?: never;
11487
+ header?: never;
11488
+ path: {
11489
+ id: string;
11490
+ };
11491
+ cookie?: never;
11492
+ };
11493
+ requestBody?: {
11494
+ content: {
11495
+ "application/json": {
11496
+ cases: {
11497
+ enabled?: boolean;
11498
+ expected?: {
11499
+ facts?: string[];
11500
+ json?: unknown;
11501
+ text?: string;
11502
+ };
11503
+ /** @default {} */
11504
+ input?: {
11505
+ messages?: {
11506
+ content: string;
11507
+ role: string;
11508
+ }[];
11509
+ variables?: {
11510
+ [key: string]: unknown;
11511
+ };
11512
+ };
11513
+ name: string;
11514
+ notes?: string;
11515
+ /**
11516
+ * @description Case provenance. Defaults to "manual" when omitted.
11517
+ * @enum {string}
11518
+ */
11519
+ origin?: "manual" | "saved_from_run" | "generated" | "imported" | "fpo";
11520
+ }[];
11521
+ };
11522
+ };
11523
+ };
11524
+ responses: {
11525
+ /** @description Cases created */
11526
+ 201: {
11527
+ headers: {
11528
+ [name: string]: unknown;
11529
+ };
11530
+ content: {
11531
+ "application/json": components["schemas"]["EvalCasesCreated"];
11532
+ };
11533
+ };
11534
+ /** @description Invalid request */
11535
+ 400: {
11536
+ headers: {
11537
+ [name: string]: unknown;
11538
+ };
11539
+ content: {
11540
+ "application/json": components["schemas"]["Error"];
11541
+ };
11542
+ };
11543
+ /** @description Unauthorized */
11544
+ 401: {
11545
+ headers: {
11546
+ [name: string]: unknown;
11547
+ };
11548
+ content: {
11549
+ "application/json": components["schemas"]["Error"];
11550
+ };
11551
+ };
11552
+ /** @description Forbidden */
11553
+ 403: {
11554
+ headers: {
11555
+ [name: string]: unknown;
11556
+ };
11557
+ content: {
11558
+ "application/json": components["schemas"]["Error"];
11559
+ };
11560
+ };
11561
+ /** @description Not found */
11562
+ 404: {
11563
+ headers: {
11564
+ [name: string]: unknown;
11565
+ };
11566
+ content: {
11567
+ "application/json": components["schemas"]["Error"];
11568
+ };
11569
+ };
11570
+ /** @description Internal server error */
11571
+ 500: {
11572
+ headers: {
11573
+ [name: string]: unknown;
11574
+ };
11575
+ content: {
11576
+ "application/json": components["schemas"]["Error"];
11577
+ };
11578
+ };
11579
+ };
11580
+ };
11581
+ delete?: never;
11582
+ options?: never;
11583
+ head?: never;
11584
+ patch?: never;
11585
+ trace?: never;
11586
+ };
11587
+ "/v1/eval/suites/{id}/cases/{caseId}": {
11588
+ parameters: {
11589
+ query?: never;
11590
+ header?: never;
11591
+ path?: never;
11592
+ cookie?: never;
11593
+ };
11594
+ get?: never;
11595
+ put?: never;
11596
+ post?: never;
11597
+ /**
11598
+ * Delete eval case
11599
+ * @description Delete a test case. Persisted scores from past runs survive with the case name snapshot (caseId nulls out).
11600
+ */
11601
+ delete: {
11602
+ parameters: {
11603
+ query?: never;
11604
+ header?: never;
11605
+ path: {
11606
+ id: string;
11607
+ caseId: string;
11608
+ };
11609
+ cookie?: never;
11610
+ };
11611
+ requestBody?: never;
11612
+ responses: {
11613
+ /** @description Case deleted */
11614
+ 200: {
11615
+ headers: {
11616
+ [name: string]: unknown;
11617
+ };
11618
+ content: {
11619
+ "application/json": {
11620
+ success: boolean;
11621
+ };
11622
+ };
11623
+ };
11624
+ /** @description Unauthorized */
11625
+ 401: {
11626
+ headers: {
11627
+ [name: string]: unknown;
11628
+ };
11629
+ content: {
11630
+ "application/json": components["schemas"]["Error"];
11631
+ };
11632
+ };
11633
+ /** @description Forbidden */
11634
+ 403: {
11635
+ headers: {
11636
+ [name: string]: unknown;
11637
+ };
11638
+ content: {
11639
+ "application/json": components["schemas"]["Error"];
11640
+ };
11641
+ };
11642
+ /** @description Not found */
11643
+ 404: {
11644
+ headers: {
11645
+ [name: string]: unknown;
11646
+ };
11647
+ content: {
11648
+ "application/json": components["schemas"]["Error"];
11649
+ };
11650
+ };
11651
+ /** @description Internal server error */
11652
+ 500: {
11653
+ headers: {
11654
+ [name: string]: unknown;
11655
+ };
11656
+ content: {
11657
+ "application/json": components["schemas"]["Error"];
11658
+ };
11659
+ };
11660
+ };
11661
+ };
11662
+ options?: never;
11663
+ head?: never;
11664
+ /**
11665
+ * Update eval case
11666
+ * @description Edit, enable, or disable a test case.
11667
+ */
11668
+ patch: {
11669
+ parameters: {
11670
+ query?: never;
11671
+ header?: never;
11672
+ path: {
11673
+ id: string;
11674
+ caseId: string;
11675
+ };
11676
+ cookie?: never;
11677
+ };
11678
+ requestBody?: {
11679
+ content: {
11680
+ "application/json": {
11681
+ enabled?: boolean;
11682
+ expected?: {
11683
+ facts?: string[];
11684
+ json?: unknown;
11685
+ text?: string;
11686
+ } | null;
11687
+ input?: {
11688
+ messages?: {
11689
+ content: string;
11690
+ role: string;
11691
+ }[];
11692
+ variables?: {
11693
+ [key: string]: unknown;
11694
+ };
11695
+ };
11696
+ name?: string;
11697
+ notes?: string | null;
11698
+ };
11699
+ };
11700
+ };
11701
+ responses: {
11702
+ /** @description Case updated */
11703
+ 200: {
11704
+ headers: {
11705
+ [name: string]: unknown;
11706
+ };
11707
+ content: {
11708
+ "application/json": components["schemas"]["EvalCase"];
11709
+ };
11710
+ };
11711
+ /** @description Invalid request */
11712
+ 400: {
11713
+ headers: {
11714
+ [name: string]: unknown;
11715
+ };
11716
+ content: {
11717
+ "application/json": components["schemas"]["Error"];
11718
+ };
11719
+ };
11720
+ /** @description Unauthorized */
11721
+ 401: {
11722
+ headers: {
11723
+ [name: string]: unknown;
11724
+ };
11725
+ content: {
11726
+ "application/json": components["schemas"]["Error"];
11727
+ };
11728
+ };
11729
+ /** @description Forbidden */
11730
+ 403: {
11731
+ headers: {
11732
+ [name: string]: unknown;
11733
+ };
11734
+ content: {
11735
+ "application/json": components["schemas"]["Error"];
11736
+ };
11737
+ };
11738
+ /** @description Not found */
11739
+ 404: {
11740
+ headers: {
11741
+ [name: string]: unknown;
11742
+ };
11743
+ content: {
11744
+ "application/json": components["schemas"]["Error"];
11745
+ };
11746
+ };
11747
+ /** @description Internal server error */
11748
+ 500: {
11749
+ headers: {
11750
+ [name: string]: unknown;
11751
+ };
11752
+ content: {
11753
+ "application/json": components["schemas"]["Error"];
11754
+ };
11755
+ };
11756
+ };
11757
+ };
11758
+ trace?: never;
11759
+ };
11760
+ "/v1/eval/suites/{id}/run": {
11761
+ parameters: {
11762
+ query?: never;
11763
+ header?: never;
11764
+ path?: never;
11765
+ cookie?: never;
11766
+ };
11767
+ get?: never;
11768
+ put?: never;
11769
+ /**
11770
+ * Run eval suite
11771
+ * @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.
11772
+ */
11773
+ post: {
11774
+ parameters: {
11775
+ query?: never;
11776
+ header?: never;
11777
+ path: {
11778
+ id: string;
11779
+ };
11780
+ cookie?: never;
11781
+ };
11782
+ requestBody?: {
11783
+ content: {
11784
+ "application/json": {
11785
+ /**
11786
+ * @description Force the execution path. Default: sync for suites within the synchronous case limit (50), batch above it.
11787
+ * @enum {string}
11788
+ */
11789
+ mode?: "sync" | "batch";
11790
+ /** @description Strict grading: a soft grader miss fails its case like a gate miss. */
11791
+ strict?: boolean;
11792
+ };
11793
+ };
11794
+ };
11795
+ responses: {
11796
+ /** @description Suite ran synchronously — score + per-case grader outcomes */
11797
+ 200: {
11798
+ headers: {
11799
+ [name: string]: unknown;
11800
+ };
11801
+ content: {
11802
+ "application/json": components["schemas"]["RunEvalResponse"];
11803
+ };
11804
+ };
11805
+ /** @description Suite queued as a durable run (scored on completion) */
11806
+ 202: {
11807
+ headers: {
11808
+ [name: string]: unknown;
11809
+ };
11810
+ content: {
11811
+ "application/json": components["schemas"]["EvalSuiteRunQueued"];
11812
+ };
11813
+ };
11814
+ /** @description Invalid request */
11815
+ 400: {
11816
+ headers: {
11817
+ [name: string]: unknown;
11818
+ };
11819
+ content: {
11820
+ "application/json": components["schemas"]["Error"];
11821
+ };
11822
+ };
11823
+ /** @description Unauthorized */
11824
+ 401: {
11825
+ headers: {
11826
+ [name: string]: unknown;
11827
+ };
11828
+ content: {
11829
+ "application/json": components["schemas"]["Error"];
11830
+ };
11831
+ };
11832
+ /** @description Daily eval limit exceeded */
11833
+ 402: {
11834
+ headers: {
11835
+ [name: string]: unknown;
11836
+ };
11837
+ content: {
11838
+ "application/json": components["schemas"]["Error"];
11839
+ };
11840
+ };
11841
+ /** @description Forbidden */
11842
+ 403: {
11843
+ headers: {
11844
+ [name: string]: unknown;
11845
+ };
11846
+ content: {
11847
+ "application/json": components["schemas"]["Error"];
11848
+ };
11849
+ };
11850
+ /** @description Not found */
11851
+ 404: {
11852
+ headers: {
11853
+ [name: string]: unknown;
11854
+ };
11855
+ content: {
11856
+ "application/json": components["schemas"]["Error"];
11857
+ };
11858
+ };
11859
+ /** @description Internal server error */
11860
+ 500: {
11861
+ headers: {
11862
+ [name: string]: unknown;
11863
+ };
11864
+ content: {
11865
+ "application/json": components["schemas"]["Error"];
11866
+ };
11867
+ };
11868
+ };
11869
+ };
11870
+ delete?: never;
11871
+ options?: never;
11872
+ head?: never;
11873
+ patch?: never;
11874
+ trace?: never;
11875
+ };
10285
11876
  "/v1/eval/{id}/results": {
10286
11877
  parameters: {
10287
11878
  query?: never;
@@ -11444,7 +13035,7 @@ interface paths {
11444
13035
  name: string;
11445
13036
  order?: number;
11446
13037
  /** @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";
13038
+ 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
13039
  when?: string;
11449
13040
  }[];
11450
13041
  name: string;
@@ -11456,7 +13047,7 @@ interface paths {
11456
13047
  name: string;
11457
13048
  order?: number;
11458
13049
  /** @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";
13050
+ 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
13051
  when?: string;
11461
13052
  }[];
11462
13053
  };
@@ -11851,7 +13442,7 @@ interface paths {
11851
13442
  name: string;
11852
13443
  order?: number;
11853
13444
  /** @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";
13445
+ 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
13446
  when?: string;
11856
13447
  }[];
11857
13448
  name?: string;
@@ -12109,45 +13700,427 @@ interface paths {
12109
13700
  patch?: never;
12110
13701
  trace?: never;
12111
13702
  };
12112
- "/v1/flows/{id}/publish": {
13703
+ "/v1/flows/{id}/publish": {
13704
+ parameters: {
13705
+ query?: never;
13706
+ header?: never;
13707
+ path?: never;
13708
+ cookie?: never;
13709
+ };
13710
+ get?: never;
13711
+ put?: never;
13712
+ /**
13713
+ * Publish flow
13714
+ * @description Promote a flow draft version to published.
13715
+ */
13716
+ post: {
13717
+ parameters: {
13718
+ query?: never;
13719
+ header?: never;
13720
+ path: {
13721
+ id: string;
13722
+ };
13723
+ cookie?: never;
13724
+ };
13725
+ requestBody?: never;
13726
+ responses: {
13727
+ /** @description Flow published */
13728
+ 200: {
13729
+ headers: {
13730
+ [name: string]: unknown;
13731
+ };
13732
+ content: {
13733
+ "application/json": {
13734
+ message: string;
13735
+ publishedVersionId: string;
13736
+ success: boolean;
13737
+ };
13738
+ };
13739
+ };
13740
+ /** @description Invalid flow ID */
13741
+ 400: {
13742
+ headers: {
13743
+ [name: string]: unknown;
13744
+ };
13745
+ content: {
13746
+ "application/json": components["schemas"]["Error"];
13747
+ };
13748
+ };
13749
+ /** @description Unauthorized */
13750
+ 401: {
13751
+ headers: {
13752
+ [name: string]: unknown;
13753
+ };
13754
+ content: {
13755
+ "application/json": components["schemas"]["Error"];
13756
+ };
13757
+ };
13758
+ /** @description Insufficient permissions */
13759
+ 403: {
13760
+ headers: {
13761
+ [name: string]: unknown;
13762
+ };
13763
+ content: {
13764
+ "application/json": components["schemas"]["Error"];
13765
+ };
13766
+ };
13767
+ /** @description Flow or draft version not found */
13768
+ 404: {
13769
+ headers: {
13770
+ [name: string]: unknown;
13771
+ };
13772
+ content: {
13773
+ "application/json": components["schemas"]["Error"];
13774
+ };
13775
+ };
13776
+ /** @description Internal server error */
13777
+ 500: {
13778
+ headers: {
13779
+ [name: string]: unknown;
13780
+ };
13781
+ content: {
13782
+ "application/json": components["schemas"]["Error"];
13783
+ };
13784
+ };
13785
+ };
13786
+ };
13787
+ delete?: never;
13788
+ options?: never;
13789
+ head?: never;
13790
+ patch?: never;
13791
+ trace?: never;
13792
+ };
13793
+ "/v1/flows/{id}/run-on-record-type": {
13794
+ parameters: {
13795
+ query?: never;
13796
+ header?: never;
13797
+ path?: never;
13798
+ cookie?: never;
13799
+ };
13800
+ get?: never;
13801
+ put?: never;
13802
+ /**
13803
+ * Run flow on records of a type
13804
+ * @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.
13805
+ */
13806
+ post: {
13807
+ parameters: {
13808
+ query?: never;
13809
+ header?: never;
13810
+ path: {
13811
+ id: string;
13812
+ };
13813
+ cookie?: never;
13814
+ };
13815
+ requestBody?: {
13816
+ content: {
13817
+ "application/json": {
13818
+ recordType: string;
13819
+ };
13820
+ };
13821
+ };
13822
+ responses: {
13823
+ /** @description Batch executed immediately */
13824
+ 200: {
13825
+ headers: {
13826
+ [name: string]: unknown;
13827
+ };
13828
+ content: {
13829
+ "application/json": {
13830
+ batchId: string;
13831
+ completedAt: string;
13832
+ executedImmediately: boolean;
13833
+ failureCount: number;
13834
+ flowId: string;
13835
+ recordCount: number;
13836
+ recordType: string;
13837
+ results: {
13838
+ contextSteps?: number;
13839
+ error?: string;
13840
+ executionId?: string;
13841
+ executionTime?: number;
13842
+ promptsExecuted?: number;
13843
+ recordId: string;
13844
+ recordName: string | null;
13845
+ success: boolean;
13846
+ }[];
13847
+ /** @enum {string} */
13848
+ status: "completed";
13849
+ success: boolean;
13850
+ successCount: number;
13851
+ };
13852
+ };
13853
+ };
13854
+ /** @description Batch scheduled for execution */
13855
+ 202: {
13856
+ headers: {
13857
+ [name: string]: unknown;
13858
+ };
13859
+ content: {
13860
+ "application/json": {
13861
+ batchId: string;
13862
+ flowId: string;
13863
+ message: string;
13864
+ recordCount: number;
13865
+ recordType: string;
13866
+ records: {
13867
+ id: string;
13868
+ name: string | null;
13869
+ type: string;
13870
+ }[];
13871
+ scheduledAt: string;
13872
+ /** @enum {string} */
13873
+ status: "scheduled";
13874
+ success: boolean;
13875
+ };
13876
+ };
13877
+ };
13878
+ /** @description Validation error or no matching records */
13879
+ 400: {
13880
+ headers: {
13881
+ [name: string]: unknown;
13882
+ };
13883
+ content: {
13884
+ "application/json": components["schemas"]["Error"];
13885
+ };
13886
+ };
13887
+ /** @description Unauthorized */
13888
+ 401: {
13889
+ headers: {
13890
+ [name: string]: unknown;
13891
+ };
13892
+ content: {
13893
+ "application/json": components["schemas"]["Error"];
13894
+ };
13895
+ };
13896
+ /** @description Insufficient permissions */
13897
+ 403: {
13898
+ headers: {
13899
+ [name: string]: unknown;
13900
+ };
13901
+ content: {
13902
+ "application/json": components["schemas"]["Error"];
13903
+ };
13904
+ };
13905
+ /** @description Daily execution limit exceeded */
13906
+ 429: {
13907
+ headers: {
13908
+ [name: string]: unknown;
13909
+ };
13910
+ content: {
13911
+ "application/json": components["schemas"]["Error"];
13912
+ };
13913
+ };
13914
+ /** @description Internal server error */
13915
+ 500: {
13916
+ headers: {
13917
+ [name: string]: unknown;
13918
+ };
13919
+ content: {
13920
+ "application/json": components["schemas"]["Error"];
13921
+ };
13922
+ };
13923
+ };
13924
+ };
13925
+ delete?: never;
13926
+ options?: never;
13927
+ head?: never;
13928
+ patch?: never;
13929
+ trace?: never;
13930
+ };
13931
+ "/v1/flows/{id}/step-results": {
13932
+ parameters: {
13933
+ query?: never;
13934
+ header?: never;
13935
+ path?: never;
13936
+ cookie?: never;
13937
+ };
13938
+ /**
13939
+ * List flow step results
13940
+ * @description Get unified step execution results for a flow with filtering and offset pagination.
13941
+ */
13942
+ get: {
13943
+ parameters: {
13944
+ query?: {
13945
+ recordId?: string;
13946
+ batchId?: string;
13947
+ status?: string;
13948
+ stepId?: string;
13949
+ from?: string;
13950
+ to?: string;
13951
+ sortBy?: string;
13952
+ sortOrder?: "asc" | "desc";
13953
+ limit?: string;
13954
+ offset?: string;
13955
+ };
13956
+ header?: never;
13957
+ path: {
13958
+ id: string;
13959
+ };
13960
+ cookie?: never;
13961
+ };
13962
+ requestBody?: never;
13963
+ responses: {
13964
+ /** @description Step results */
13965
+ 200: {
13966
+ headers: {
13967
+ [name: string]: unknown;
13968
+ };
13969
+ content: {
13970
+ "application/json": {
13971
+ data: {
13972
+ batchExecutionId: string | null;
13973
+ completedAt: string | null;
13974
+ completionTokens?: number | null;
13975
+ createdAt: string;
13976
+ durationMs: number | null;
13977
+ errorMessage?: string | null;
13978
+ estimatedCost?: string | null;
13979
+ executionSessionId: string | null;
13980
+ flowId: string | null;
13981
+ flowVersionId: string | null;
13982
+ id: string;
13983
+ inputVariables?: unknown;
13984
+ modelUsed?: string | null;
13985
+ order: number | null;
13986
+ organizationId: string | null;
13987
+ outputPreview: string | null;
13988
+ promptTokens?: number | null;
13989
+ recordId: string | null;
13990
+ recordMetadata?: unknown;
13991
+ recordName: string | null;
13992
+ resolvedPrompt?: string | null;
13993
+ retryCount?: number | null;
13994
+ startedAt: string | null;
13995
+ status: string;
13996
+ stepConfig?: unknown;
13997
+ stepId: string | null;
13998
+ stepName: string;
13999
+ stepType: string;
14000
+ totalTokens?: number | null;
14001
+ userId: string;
14002
+ }[];
14003
+ pagination: {
14004
+ hasMore: boolean;
14005
+ limit: number;
14006
+ offset: number;
14007
+ returned: number;
14008
+ };
14009
+ };
14010
+ };
14011
+ };
14012
+ /** @description Invalid parameters */
14013
+ 400: {
14014
+ headers: {
14015
+ [name: string]: unknown;
14016
+ };
14017
+ content: {
14018
+ "application/json": components["schemas"]["Error"];
14019
+ };
14020
+ };
14021
+ /** @description Unauthorized */
14022
+ 401: {
14023
+ headers: {
14024
+ [name: string]: unknown;
14025
+ };
14026
+ content: {
14027
+ "application/json": components["schemas"]["Error"];
14028
+ };
14029
+ };
14030
+ /** @description Insufficient permissions */
14031
+ 403: {
14032
+ headers: {
14033
+ [name: string]: unknown;
14034
+ };
14035
+ content: {
14036
+ "application/json": components["schemas"]["Error"];
14037
+ };
14038
+ };
14039
+ /** @description Flow not found */
14040
+ 404: {
14041
+ headers: {
14042
+ [name: string]: unknown;
14043
+ };
14044
+ content: {
14045
+ "application/json": components["schemas"]["Error"];
14046
+ };
14047
+ };
14048
+ /** @description Internal server error */
14049
+ 500: {
14050
+ headers: {
14051
+ [name: string]: unknown;
14052
+ };
14053
+ content: {
14054
+ "application/json": components["schemas"]["Error"];
14055
+ };
14056
+ };
14057
+ };
14058
+ };
14059
+ put?: never;
14060
+ post?: never;
14061
+ delete?: never;
14062
+ options?: never;
14063
+ head?: never;
14064
+ patch?: never;
14065
+ trace?: never;
14066
+ };
14067
+ "/v1/identity-integrations": {
12113
14068
  parameters: {
12114
14069
  query?: never;
12115
14070
  header?: never;
12116
14071
  path?: never;
12117
14072
  cookie?: never;
12118
14073
  };
12119
- get?: never;
12120
- put?: never;
12121
14074
  /**
12122
- * Publish flow
12123
- * @description Promote a flow draft version to published.
14075
+ * List identity integrations
14076
+ * @description Lists the owner's Identity Exchange integrations (verification descriptors for customer-native auth proofs). Credentials are redacted to a presence list.
12124
14077
  */
12125
- post: {
14078
+ get: {
12126
14079
  parameters: {
12127
14080
  query?: never;
12128
14081
  header?: never;
12129
- path: {
12130
- id: string;
12131
- };
14082
+ path?: never;
12132
14083
  cookie?: never;
12133
14084
  };
12134
14085
  requestBody?: never;
12135
14086
  responses: {
12136
- /** @description Flow published */
14087
+ /** @description Successful response */
12137
14088
  200: {
12138
14089
  headers: {
12139
14090
  [name: string]: unknown;
12140
14091
  };
12141
14092
  content: {
12142
14093
  "application/json": {
12143
- message: string;
12144
- publishedVersionId: string;
12145
- success: boolean;
14094
+ identityIntegrations: {
14095
+ configuredCredentials: ("clientSecret" | "managementApiKey")[];
14096
+ createdAt: string;
14097
+ descriptor: {
14098
+ [key: string]: unknown;
14099
+ };
14100
+ id: string;
14101
+ issuer: string | null;
14102
+ /** @enum {string} */
14103
+ kind: "oidc-jwt" | "session" | "custom";
14104
+ name: string;
14105
+ provider: string;
14106
+ /** @enum {string} */
14107
+ status: "active" | "disabled";
14108
+ updatedAt: string;
14109
+ }[];
12146
14110
  };
12147
14111
  };
12148
14112
  };
12149
- /** @description Invalid flow ID */
12150
- 400: {
14113
+ /** @description Unauthorized */
14114
+ 401: {
14115
+ headers: {
14116
+ [name: string]: unknown;
14117
+ };
14118
+ content: {
14119
+ "application/json": components["schemas"]["Error"];
14120
+ };
14121
+ };
14122
+ /** @description Forbidden */
14123
+ 403: {
12151
14124
  headers: {
12152
14125
  [name: string]: unknown;
12153
14126
  };
@@ -12155,6 +14128,78 @@ interface paths {
12155
14128
  "application/json": components["schemas"]["Error"];
12156
14129
  };
12157
14130
  };
14131
+ };
14132
+ };
14133
+ put?: never;
14134
+ /**
14135
+ * Create an identity integration
14136
+ * @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).
14137
+ */
14138
+ post: {
14139
+ parameters: {
14140
+ query?: never;
14141
+ header?: never;
14142
+ path?: never;
14143
+ cookie?: never;
14144
+ };
14145
+ requestBody?: {
14146
+ content: {
14147
+ "application/json": {
14148
+ /** @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. */
14149
+ credentials?: {
14150
+ clientSecret?: string | null;
14151
+ managementApiKey?: string | null;
14152
+ };
14153
+ /** @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'). */
14154
+ descriptor: {
14155
+ [key: string]: unknown;
14156
+ };
14157
+ name: string;
14158
+ /** @enum {string} */
14159
+ provider: "clerk" | "workos" | "auth0" | "okta" | "better-auth" | "oidc" | "custom";
14160
+ };
14161
+ };
14162
+ };
14163
+ responses: {
14164
+ /** @description Identity integration created */
14165
+ 201: {
14166
+ headers: {
14167
+ [name: string]: unknown;
14168
+ };
14169
+ content: {
14170
+ "application/json": {
14171
+ configuredCredentials: ("clientSecret" | "managementApiKey")[];
14172
+ createdAt: string;
14173
+ descriptor: {
14174
+ [key: string]: unknown;
14175
+ };
14176
+ id: string;
14177
+ issuer: string | null;
14178
+ /** @enum {string} */
14179
+ kind: "oidc-jwt" | "session" | "custom";
14180
+ name: string;
14181
+ provider: string;
14182
+ /** @enum {string} */
14183
+ status: "active" | "disabled";
14184
+ updatedAt: string;
14185
+ };
14186
+ };
14187
+ };
14188
+ /** @description Invalid descriptor or request body */
14189
+ 400: {
14190
+ headers: {
14191
+ [name: string]: unknown;
14192
+ };
14193
+ content: {
14194
+ "application/json": {
14195
+ error: string;
14196
+ issues?: {
14197
+ message: string;
14198
+ path: string;
14199
+ }[];
14200
+ };
14201
+ };
14202
+ };
12158
14203
  /** @description Unauthorized */
12159
14204
  401: {
12160
14205
  headers: {
@@ -12164,7 +14209,7 @@ interface paths {
12164
14209
  "application/json": components["schemas"]["Error"];
12165
14210
  };
12166
14211
  };
12167
- /** @description Insufficient permissions */
14212
+ /** @description Forbidden */
12168
14213
  403: {
12169
14214
  headers: {
12170
14215
  [name: string]: unknown;
@@ -12173,8 +14218,8 @@ interface paths {
12173
14218
  "application/json": components["schemas"]["Error"];
12174
14219
  };
12175
14220
  };
12176
- /** @description Flow or draft version not found */
12177
- 404: {
14221
+ /** @description An active integration for this issuer already exists */
14222
+ 409: {
12178
14223
  headers: {
12179
14224
  [name: string]: unknown;
12180
14225
  };
@@ -12199,93 +14244,61 @@ interface paths {
12199
14244
  patch?: never;
12200
14245
  trace?: never;
12201
14246
  };
12202
- "/v1/flows/{id}/run-on-record-type": {
14247
+ "/v1/identity-integrations/{id}": {
12203
14248
  parameters: {
12204
14249
  query?: never;
12205
14250
  header?: never;
12206
14251
  path?: never;
12207
14252
  cookie?: never;
12208
14253
  };
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: {
14254
+ /** Get an identity integration */
14255
+ get: {
12216
14256
  parameters: {
12217
14257
  query?: never;
12218
14258
  header?: never;
12219
14259
  path: {
14260
+ /** @description Identity integration id (idint_...) */
12220
14261
  id: string;
12221
14262
  };
12222
14263
  cookie?: never;
12223
14264
  };
12224
- requestBody?: {
12225
- content: {
12226
- "application/json": {
12227
- recordType: string;
12228
- };
12229
- };
12230
- };
14265
+ requestBody?: never;
12231
14266
  responses: {
12232
- /** @description Batch executed immediately */
14267
+ /** @description Successful response */
12233
14268
  200: {
12234
14269
  headers: {
12235
14270
  [name: string]: unknown;
12236
14271
  };
12237
14272
  content: {
12238
14273
  "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
- }[];
14274
+ configuredCredentials: ("clientSecret" | "managementApiKey")[];
14275
+ createdAt: string;
14276
+ descriptor: {
14277
+ [key: string]: unknown;
14278
+ };
14279
+ id: string;
14280
+ issuer: string | null;
12256
14281
  /** @enum {string} */
12257
- status: "completed";
12258
- success: boolean;
12259
- successCount: number;
14282
+ kind: "oidc-jwt" | "session" | "custom";
14283
+ name: string;
14284
+ provider: string;
14285
+ /** @enum {string} */
14286
+ status: "active" | "disabled";
14287
+ updatedAt: string;
12260
14288
  };
12261
14289
  };
12262
14290
  };
12263
- /** @description Batch scheduled for execution */
12264
- 202: {
14291
+ /** @description Unauthorized */
14292
+ 401: {
12265
14293
  headers: {
12266
14294
  [name: string]: unknown;
12267
14295
  };
12268
14296
  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
- };
14297
+ "application/json": components["schemas"]["Error"];
12285
14298
  };
12286
14299
  };
12287
- /** @description Validation error or no matching records */
12288
- 400: {
14300
+ /** @description Forbidden */
14301
+ 403: {
12289
14302
  headers: {
12290
14303
  [name: string]: unknown;
12291
14304
  };
@@ -12293,8 +14306,8 @@ interface paths {
12293
14306
  "application/json": components["schemas"]["Error"];
12294
14307
  };
12295
14308
  };
12296
- /** @description Unauthorized */
12297
- 401: {
14309
+ /** @description Not found */
14310
+ 404: {
12298
14311
  headers: {
12299
14312
  [name: string]: unknown;
12300
14313
  };
@@ -12302,8 +14315,39 @@ interface paths {
12302
14315
  "application/json": components["schemas"]["Error"];
12303
14316
  };
12304
14317
  };
12305
- /** @description Insufficient permissions */
12306
- 403: {
14318
+ };
14319
+ };
14320
+ put?: never;
14321
+ post?: never;
14322
+ /**
14323
+ * Delete an identity integration
14324
+ * @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.
14325
+ */
14326
+ delete: {
14327
+ parameters: {
14328
+ query?: never;
14329
+ header?: never;
14330
+ path: {
14331
+ /** @description Identity integration id (idint_...) */
14332
+ id: string;
14333
+ };
14334
+ cookie?: never;
14335
+ };
14336
+ requestBody?: never;
14337
+ responses: {
14338
+ /** @description Identity integration deleted */
14339
+ 200: {
14340
+ headers: {
14341
+ [name: string]: unknown;
14342
+ };
14343
+ content: {
14344
+ "application/json": {
14345
+ success: boolean;
14346
+ };
14347
+ };
14348
+ };
14349
+ /** @description Unauthorized */
14350
+ 401: {
12307
14351
  headers: {
12308
14352
  [name: string]: unknown;
12309
14353
  };
@@ -12311,8 +14355,8 @@ interface paths {
12311
14355
  "application/json": components["schemas"]["Error"];
12312
14356
  };
12313
14357
  };
12314
- /** @description Daily execution limit exceeded */
12315
- 429: {
14358
+ /** @description Forbidden */
14359
+ 403: {
12316
14360
  headers: {
12317
14361
  [name: string]: unknown;
12318
14362
  };
@@ -12320,8 +14364,8 @@ interface paths {
12320
14364
  "application/json": components["schemas"]["Error"];
12321
14365
  };
12322
14366
  };
12323
- /** @description Internal server error */
12324
- 500: {
14367
+ /** @description Not found */
14368
+ 404: {
12325
14369
  headers: {
12326
14370
  [name: string]: unknown;
12327
14371
  };
@@ -12331,100 +14375,80 @@ interface paths {
12331
14375
  };
12332
14376
  };
12333
14377
  };
12334
- delete?: never;
12335
14378
  options?: never;
12336
14379
  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
14380
  /**
12348
- * List flow step results
12349
- * @description Get unified step execution results for a flow with filtering and offset pagination.
14381
+ * Update an identity integration
14382
+ * @description Updates name/provider/status, replaces the descriptor (re-validated), and/or rotates credentials (per-field: string sets, null clears, absent keeps).
12350
14383
  */
12351
- get: {
14384
+ patch: {
12352
14385
  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
- };
14386
+ query?: never;
12365
14387
  header?: never;
12366
14388
  path: {
14389
+ /** @description Identity integration id (idint_...) */
12367
14390
  id: string;
12368
14391
  };
12369
14392
  cookie?: never;
12370
14393
  };
12371
- requestBody?: never;
14394
+ requestBody?: {
14395
+ content: {
14396
+ "application/json": {
14397
+ /** @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. */
14398
+ credentials?: {
14399
+ clientSecret?: string | null;
14400
+ managementApiKey?: string | null;
14401
+ };
14402
+ /** @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'). */
14403
+ descriptor?: {
14404
+ [key: string]: unknown;
14405
+ };
14406
+ name?: string;
14407
+ /** @enum {string} */
14408
+ provider?: "clerk" | "workos" | "auth0" | "okta" | "better-auth" | "oidc" | "custom";
14409
+ /** @enum {string} */
14410
+ status?: "active" | "disabled";
14411
+ };
14412
+ };
14413
+ };
12372
14414
  responses: {
12373
- /** @description Step results */
14415
+ /** @description Identity integration updated */
12374
14416
  200: {
12375
14417
  headers: {
12376
14418
  [name: string]: unknown;
12377
14419
  };
12378
14420
  content: {
12379
14421
  "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;
14422
+ configuredCredentials: ("clientSecret" | "managementApiKey")[];
14423
+ createdAt: string;
14424
+ descriptor: {
14425
+ [key: string]: unknown;
12417
14426
  };
14427
+ id: string;
14428
+ issuer: string | null;
14429
+ /** @enum {string} */
14430
+ kind: "oidc-jwt" | "session" | "custom";
14431
+ name: string;
14432
+ provider: string;
14433
+ /** @enum {string} */
14434
+ status: "active" | "disabled";
14435
+ updatedAt: string;
12418
14436
  };
12419
14437
  };
12420
14438
  };
12421
- /** @description Invalid parameters */
14439
+ /** @description Invalid descriptor or request body */
12422
14440
  400: {
12423
14441
  headers: {
12424
14442
  [name: string]: unknown;
12425
14443
  };
12426
14444
  content: {
12427
- "application/json": components["schemas"]["Error"];
14445
+ "application/json": {
14446
+ error: string;
14447
+ issues?: {
14448
+ message: string;
14449
+ path: string;
14450
+ }[];
14451
+ };
12428
14452
  };
12429
14453
  };
12430
14454
  /** @description Unauthorized */
@@ -12436,7 +14460,7 @@ interface paths {
12436
14460
  "application/json": components["schemas"]["Error"];
12437
14461
  };
12438
14462
  };
12439
- /** @description Insufficient permissions */
14463
+ /** @description Forbidden */
12440
14464
  403: {
12441
14465
  headers: {
12442
14466
  [name: string]: unknown;
@@ -12445,7 +14469,7 @@ interface paths {
12445
14469
  "application/json": components["schemas"]["Error"];
12446
14470
  };
12447
14471
  };
12448
- /** @description Flow not found */
14472
+ /** @description Not found */
12449
14473
  404: {
12450
14474
  headers: {
12451
14475
  [name: string]: unknown;
@@ -12454,8 +14478,8 @@ interface paths {
12454
14478
  "application/json": components["schemas"]["Error"];
12455
14479
  };
12456
14480
  };
12457
- /** @description Internal server error */
12458
- 500: {
14481
+ /** @description An active integration for this issuer already exists */
14482
+ 409: {
12459
14483
  headers: {
12460
14484
  [name: string]: unknown;
12461
14485
  };
@@ -12465,12 +14489,6 @@ interface paths {
12465
14489
  };
12466
14490
  };
12467
14491
  };
12468
- put?: never;
12469
- post?: never;
12470
- delete?: never;
12471
- options?: never;
12472
- head?: never;
12473
- patch?: never;
12474
14492
  trace?: never;
12475
14493
  };
12476
14494
  "/v1/integration-configs": {
@@ -26964,6 +28982,15 @@ interface paths {
26964
28982
  };
26965
28983
  };
26966
28984
  };
28985
+ /** @description Invalid request */
28986
+ 400: {
28987
+ headers: {
28988
+ [name: string]: unknown;
28989
+ };
28990
+ content: {
28991
+ "application/json": components["schemas"]["Error"];
28992
+ };
28993
+ };
26967
28994
  /** @description Unauthorized */
26968
28995
  401: {
26969
28996
  headers: {
@@ -31469,10 +33496,14 @@ interface paths {
31469
33496
  data: {
31470
33497
  createdAt: string;
31471
33498
  description: string | null;
33499
+ /** @description End User scope (eu_*) when the secret is end-user-scoped; null otherwise. */
33500
+ endUserId: string | null;
31472
33501
  id: string;
31473
33502
  key: string;
31474
33503
  lastRotatedAt: string | null;
31475
33504
  phantomToken: string | null;
33505
+ /** @description Product Tenant scope (tnt_*) when the secret is tenant-scoped; null for org-level. */
33506
+ productTenantId: string | null;
31476
33507
  status: string;
31477
33508
  updatedAt: string;
31478
33509
  valuePreview: string | null;
@@ -31524,7 +33555,9 @@ interface paths {
31524
33555
  content: {
31525
33556
  "application/json": {
31526
33557
  description?: string;
33558
+ endUserId?: string;
31527
33559
  key: string;
33560
+ productTenantId?: string;
31528
33561
  value?: string;
31529
33562
  };
31530
33563
  };
@@ -31540,10 +33573,14 @@ interface paths {
31540
33573
  data: {
31541
33574
  createdAt: string;
31542
33575
  description: string | null;
33576
+ /** @description End User scope (eu_*) when the secret is end-user-scoped; null otherwise. */
33577
+ endUserId: string | null;
31543
33578
  id: string;
31544
33579
  key: string;
31545
33580
  lastRotatedAt: string | null;
31546
33581
  phantomToken: string | null;
33582
+ /** @description Product Tenant scope (tnt_*) when the secret is tenant-scoped; null for org-level. */
33583
+ productTenantId: string | null;
31547
33584
  status: string;
31548
33585
  updatedAt: string;
31549
33586
  valuePreview: string | null;
@@ -32080,10 +34117,14 @@ interface paths {
32080
34117
  data: {
32081
34118
  createdAt: string;
32082
34119
  description: string | null;
34120
+ /** @description End User scope (eu_*) when the secret is end-user-scoped; null otherwise. */
34121
+ endUserId: string | null;
32083
34122
  id: string;
32084
34123
  key: string;
32085
34124
  lastRotatedAt: string | null;
32086
34125
  phantomToken: string | null;
34126
+ /** @description Product Tenant scope (tnt_*) when the secret is tenant-scoped; null for org-level. */
34127
+ productTenantId: string | null;
32087
34128
  status: string;
32088
34129
  updatedAt: string;
32089
34130
  valuePreview: string | null;
@@ -32160,10 +34201,14 @@ interface paths {
32160
34201
  data: {
32161
34202
  createdAt: string;
32162
34203
  description: string | null;
34204
+ /** @description End User scope (eu_*) when the secret is end-user-scoped; null otherwise. */
34205
+ endUserId: string | null;
32163
34206
  id: string;
32164
34207
  key: string;
32165
34208
  lastRotatedAt: string | null;
32166
34209
  phantomToken: string | null;
34210
+ /** @description Product Tenant scope (tnt_*) when the secret is tenant-scoped; null for org-level. */
34211
+ productTenantId: string | null;
32167
34212
  status: string;
32168
34213
  updatedAt: string;
32169
34214
  valuePreview: string | null;
@@ -35820,6 +37865,7 @@ interface paths {
35820
37865
  enableDashboardAssistant: boolean;
35821
37866
  enableRuntypeApps: boolean;
35822
37867
  enableSkillScanner: boolean;
37868
+ usageBasedPricing: boolean;
35823
37869
  };
35824
37870
  id: string;
35825
37871
  orgId?: string | null;
@@ -36367,6 +38413,8 @@ interface components {
36367
38413
  profileTemplate?: string;
36368
38414
  };
36369
38415
  model?: string;
38416
+ /** @enum {string} */
38417
+ piiRedaction?: "default" | "off" | "redact";
36370
38418
  presencePenalty?: number;
36371
38419
  reasoning?: boolean | {
36372
38420
  budgetTokens?: number;
@@ -36391,7 +38439,6 @@ interface components {
36391
38439
  persistence?: "ephemeral" | "conversation" | "named";
36392
38440
  /** @enum {string} */
36393
38441
  provider?: "runtype-sandbox" | "daytona";
36394
- requireApprovalForBash?: boolean;
36395
38442
  /** @enum {string} */
36396
38443
  sleepAfter?: "5m" | "15m" | "30m" | "1h";
36397
38444
  /** @enum {string} */
@@ -36511,6 +38558,16 @@ interface components {
36511
38558
  /** @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
38559
  warnings?: string[];
36513
38560
  };
38561
+ AsyncDispatchHandle: {
38562
+ /** @description Present only for ephemeral inline-create dispatch. */
38563
+ claudeManagedAgentId?: string;
38564
+ /** @description The conversation the headless turn belongs to. */
38565
+ conversationId: string;
38566
+ /** @description The durable execution id — reconnect/poll with this. */
38567
+ executionId: string;
38568
+ /** @description Lifecycle status at acceptance (e.g. 'running'). */
38569
+ status: string;
38570
+ };
36514
38571
  DailyUsageResponse: {
36515
38572
  daily?: {
36516
38573
  atSpendLimit: boolean;
@@ -36591,6 +38648,22 @@ interface components {
36591
38648
  }[];
36592
38649
  error: string;
36593
38650
  };
38651
+ EvalCase: {
38652
+ createdAt: string;
38653
+ enabled: boolean;
38654
+ expected?: unknown;
38655
+ id: string;
38656
+ /** @description { variables?, messages? } — what the case feeds the target. */
38657
+ input?: unknown;
38658
+ name: string;
38659
+ notes: string | null;
38660
+ origin: string;
38661
+ suiteId: string;
38662
+ updatedAt: string;
38663
+ };
38664
+ EvalCasesCreated: {
38665
+ cases: components["schemas"]["EvalCase"][];
38666
+ };
36594
38667
  EvalEnsureResponse: {
36595
38668
  /** @description Server-computed canonical content hash. Clients should echo this hash in probes. */
36596
38669
  contentHash: string;
@@ -36638,6 +38711,115 @@ interface components {
36638
38711
  suiteId: string;
36639
38712
  updatedAt: string | null;
36640
38713
  };
38714
+ EvalRunScoresResponse: {
38715
+ cases: {
38716
+ /** @description The saved eval case id; null when the case row was deleted or the record could not be mapped to a case. */
38717
+ caseId: string | null;
38718
+ name: string;
38719
+ outcomes: {
38720
+ graderIndex: number;
38721
+ kind: string;
38722
+ passed: boolean;
38723
+ reasoning?: string;
38724
+ score?: number;
38725
+ /**
38726
+ * @description Grader severity. A soft miss is reported but only fails the suite under strict mode. Absent ⇒ gate.
38727
+ * @enum {string}
38728
+ */
38729
+ severity?: "gate" | "soft";
38730
+ }[];
38731
+ /** @description Truncated snapshot of the output that was graded (2000 chars max). */
38732
+ outputExcerpt: string;
38733
+ /** @description Recomputed from the persisted outcomes using the run's recorded strict mode, so historical verdicts match what the run originally reported. */
38734
+ passed: boolean;
38735
+ }[];
38736
+ /** @description The eval name recorded on the run. */
38737
+ name: string | null;
38738
+ passedCases: number;
38739
+ /** @description The run (batch execution) id these scores belong to. */
38740
+ runId: string;
38741
+ /** @description Suite score, 0..1 (passed cases / total cases); null when the run has no cases. */
38742
+ score: number | null;
38743
+ /** @description The severity semantics the run was graded with (and that these verdicts reproduce): true when a soft grader miss failed its case. */
38744
+ strict: boolean;
38745
+ /** @description The eval suite the run executed; null when the suite was since deleted. */
38746
+ suiteId: string | null;
38747
+ totalCases: number;
38748
+ };
38749
+ EvalSuiteDetail: {
38750
+ agentId: string | null;
38751
+ baselineBatchExecutionId: string | null;
38752
+ caseCount: number;
38753
+ cases: components["schemas"]["EvalCase"][];
38754
+ createdAt: string;
38755
+ description: string | null;
38756
+ enabledCaseCount: number;
38757
+ flowId: string | null;
38758
+ /** @description Ordered GraderConfig[] applied to every case. */
38759
+ graders: unknown[];
38760
+ id: string;
38761
+ isDefault: boolean;
38762
+ /** @description Provenance of the last Definition write. 'sdk' / 'terraform' mean the suite is managed in code (converged by ensure on deploy). */
38763
+ lastModifiedSource: string | null;
38764
+ latestRun: components["schemas"]["EvalSuiteLatestRun"];
38765
+ name: string;
38766
+ /** @description Display name of the target flow/agent; null when the target row is gone. */
38767
+ targetName: string | null;
38768
+ /** @enum {string} */
38769
+ targetType: "flow" | "agent";
38770
+ updatedAt: string;
38771
+ };
38772
+ EvalSuiteLatestRun: {
38773
+ completedAt: string | null;
38774
+ passedCases: number | null;
38775
+ runId: string;
38776
+ /** @description Suite score of the run, 0..1; null while unscored (in flight / unscoreable). */
38777
+ score: number | null;
38778
+ startedAt: string;
38779
+ status: string;
38780
+ totalCases: number | null;
38781
+ } | null;
38782
+ EvalSuiteListResponse: {
38783
+ /** @description Number of suites in this page. */
38784
+ count: number;
38785
+ limit: number;
38786
+ offset: number;
38787
+ suites: components["schemas"]["EvalSuiteSummary"][];
38788
+ /** @description Total suites matching the filter across all pages (for offset pagination). */
38789
+ total: number;
38790
+ };
38791
+ EvalSuiteRunQueued: {
38792
+ /** @enum {string} */
38793
+ mode: "batch";
38794
+ name: string;
38795
+ /** @description The queued run id. Poll GET /eval/{runId}/results for progress and GET /eval/runs/{runId}/scores for grader scores once completed. */
38796
+ runId: string;
38797
+ status: string;
38798
+ suiteId: string;
38799
+ totalCases: number;
38800
+ };
38801
+ EvalSuiteSummary: {
38802
+ agentId: string | null;
38803
+ baselineBatchExecutionId: string | null;
38804
+ caseCount: number;
38805
+ createdAt: string;
38806
+ description: string | null;
38807
+ enabledCaseCount: number;
38808
+ flowId: string | null;
38809
+ /** @description Ordered GraderConfig[] applied to every case. */
38810
+ graders: unknown[];
38811
+ id: string;
38812
+ isDefault: boolean;
38813
+ /** @description Provenance of the last Definition write. 'sdk' / 'terraform' mean the suite is managed in code (converged by ensure on deploy). */
38814
+ lastModifiedSource: string | null;
38815
+ latestRun: components["schemas"]["EvalSuiteLatestRun"];
38816
+ name: string;
38817
+ /** @description Display name of the target flow/agent; null when the target row is gone. */
38818
+ targetName: string | null;
38819
+ /** @enum {string} */
38820
+ targetType: "flow" | "agent";
38821
+ updatedAt: string;
38822
+ };
36641
38823
  ExecutionStreamEvent: {
36642
38824
  agentId?: string;
36643
38825
  agentName?: string;
@@ -36678,6 +38860,7 @@ interface components {
36678
38860
  /** @enum {string} */
36679
38861
  type: "execution_complete";
36680
38862
  } | {
38863
+ blockReason?: string;
36681
38864
  code?: string;
36682
38865
  completedAt?: string;
36683
38866
  error: string | {
@@ -36981,6 +39164,7 @@ interface components {
36981
39164
  startedAt?: string;
36982
39165
  subagent?: {
36983
39166
  agentName?: string;
39167
+ parentToolCallId?: string;
36984
39168
  toolName: string;
36985
39169
  };
36986
39170
  timeout?: number;
@@ -37151,6 +39335,7 @@ interface components {
37151
39335
  /** @enum {string} */
37152
39336
  type: "flow_complete";
37153
39337
  } | {
39338
+ blockReason?: string;
37154
39339
  code?: string;
37155
39340
  error: string | {
37156
39341
  code: string;
@@ -37172,6 +39357,7 @@ interface components {
37172
39357
  type: "flow_error";
37173
39358
  upgradeUrl?: string;
37174
39359
  } | {
39360
+ approvalId?: string;
37175
39361
  awaitReason?: string;
37176
39362
  awaitedAt: string;
37177
39363
  crawlId?: string;
@@ -37185,6 +39371,7 @@ interface components {
37185
39371
  };
37186
39372
  seq?: number;
37187
39373
  stepId?: string;
39374
+ timeout?: number;
37188
39375
  toolCallId?: string;
37189
39376
  toolId?: string;
37190
39377
  toolName?: string;
@@ -37667,6 +39854,8 @@ interface components {
37667
39854
  /** @description True when every case passed every grader. */
37668
39855
  passed: boolean;
37669
39856
  passedCases: number;
39857
+ /** @description The persisted run id — query its scores via GET /eval/runs/{runId}/scores. Null for an ephemeral (virtual/inline) run. */
39858
+ runId: string | null;
37670
39859
  /** @description Suite score, 0..1 (passed cases / total cases). */
37671
39860
  score: number;
37672
39861
  suiteId: string | null;
@@ -38425,6 +40614,7 @@ interface RecordFilter {
38425
40614
  type: string;
38426
40615
  where?: RecordFilterCondition | RecordFilterGroup;
38427
40616
  }
40617
+ /** @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
40618
  interface RetrieveRecordStepConfig$1 {
38429
40619
  name: string;
38430
40620
  retrievalMode?: 'id' | 'query';
@@ -38449,6 +40639,63 @@ interface RetrieveRecordStepConfig$1 {
38449
40639
  /** JavaScript predicate evaluated at runtime. If falsy, the step is skipped. */
38450
40640
  when?: string;
38451
40641
  }
40642
+ /**
40643
+ * Config for a `get-record` step — always returns a SINGLE record object.
40644
+ * Lookup by `recordId`, by `recordType` (+ optional `recordName`), or by a
40645
+ * chip-style `recordFilter` (most-recently-updated match wins). Fails the
40646
+ * step if no record matches.
40647
+ */
40648
+ interface GetRecordStepConfig$1 {
40649
+ name: string;
40650
+ recordId?: string;
40651
+ recordType?: string;
40652
+ recordName?: string;
40653
+ /**
40654
+ * Optional chip-style filter (metadata + top-level columns: id, name,
40655
+ * createdAt, updatedAt). Coexists with recordType/recordName; the API
40656
+ * executor prefers recordFilter when both are set.
40657
+ */
40658
+ recordFilter?: RecordFilter;
40659
+ fieldsToInclude?: string | string[];
40660
+ fieldsToExclude?: string | string[];
40661
+ availableFields?: string[];
40662
+ outputVariable?: string;
40663
+ includeMetadata?: boolean;
40664
+ streamOutput?: boolean;
40665
+ enabled?: boolean;
40666
+ /** JavaScript predicate evaluated at runtime. If falsy, the step is skipped. */
40667
+ when?: string;
40668
+ }
40669
+ /**
40670
+ * Config for a `list-records` step — always returns an ARRAY of records
40671
+ * (newest-first), even for a single match. Lookup by `recordType`,
40672
+ * `recordName`, or `recordFilter` (no `recordId` — single-by-id is
40673
+ * {@link GetRecordStepConfig}).
40674
+ */
40675
+ interface ListRecordsStepConfig$1 {
40676
+ name: string;
40677
+ recordType?: string;
40678
+ recordName?: string;
40679
+ /**
40680
+ * Optional chip-style filter (metadata + top-level columns: id, name,
40681
+ * createdAt, updatedAt). Coexists with recordType/recordName; the API
40682
+ * executor prefers recordFilter when both are set.
40683
+ */
40684
+ recordFilter?: RecordFilter;
40685
+ /** Max records returned (default 50, capped at 1000). */
40686
+ limit?: number;
40687
+ /** Zero-match behavior: `'succeed'` (default) returns `[]`; `'fail'` fails the step. */
40688
+ onEmpty?: 'succeed' | 'fail';
40689
+ fieldsToInclude?: string | string[];
40690
+ fieldsToExclude?: string | string[];
40691
+ availableFields?: string[];
40692
+ outputVariable?: string;
40693
+ includeMetadata?: boolean;
40694
+ streamOutput?: boolean;
40695
+ enabled?: boolean;
40696
+ /** JavaScript predicate evaluated at runtime. If falsy, the step is skipped. */
40697
+ when?: string;
40698
+ }
38452
40699
  interface UpsertRecordStepConfig$1 {
38453
40700
  name: string;
38454
40701
  recordType: string;
@@ -38858,8 +41105,17 @@ declare class FlowBuilder {
38858
41105
  sendStream(config: SendStreamStepConfig$1): this;
38859
41106
  /**
38860
41107
  * Add a retrieve record step
41108
+ * @deprecated use {@link getRecord} (single record) or {@link listRecords} (multiple records) instead.
38861
41109
  */
38862
41110
  retrieveRecord(config: RetrieveRecordStepConfig$1): this;
41111
+ /**
41112
+ * Add a get-record step. Always returns a single record object.
41113
+ */
41114
+ getRecord(config: GetRecordStepConfig$1): this;
41115
+ /**
41116
+ * Add a list-records step. Always returns an array of records (newest-first).
41117
+ */
41118
+ listRecords(config: ListRecordsStepConfig$1): this;
38863
41119
  /**
38864
41120
  * Add an upsert record step
38865
41121
  */
@@ -39953,11 +42209,13 @@ type ReasoningValue = boolean | ReasoningConfig;
39953
42209
  * Generated from the OpenAPI spec — the `data` payload of GET /v1/secrets/{id}.
39954
42210
  */
39955
42211
  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
- }
42212
+ /**
42213
+ * Request body for POST /v1/secrets, derived from the generated OpenAPI spec so
42214
+ * it can never drift from the route. Carries the multi-tenancy scope params
42215
+ * (`productTenantId` / `endUserId`) — omit both for an org-level secret (the
42216
+ * default); a tenant- or end-user-scoped secret requires a value.
42217
+ */
42218
+ type CreateSecretRequest = NonNullable<paths['/v1/secrets']['post']['requestBody']>['content']['application/json'];
39961
42219
  interface UpdateSecretRequest {
39962
42220
  value?: string;
39963
42221
  description?: string;
@@ -40354,7 +42612,7 @@ type CheckGrader = CheckGraderShape & {
40354
42612
  severity?: GraderSeverity;
40355
42613
  };
40356
42614
  /** Built-in AI-grader preset ids (mirror of `BUILT_IN_GRADER_IDS`). */
40357
- type BuiltInGraderId = 'answersQuestion' | 'matchesExpected' | 'followsInstructions' | 'grounded' | 'rightTone' | 'safeToSend';
42615
+ type BuiltInGraderId = 'answersQuestion' | 'matchesExpected' | 'followsInstructions' | 'grounded' | 'rightTone' | 'safeToSend' | 'staysOnTask' | 'sameLanguage' | 'refusesWhenItShould' | 'noPersonalData';
40358
42616
  /** LLM-as-judge over plain-language criteria. Scored by the api grader executor. */
40359
42617
  interface AIGrader {
40360
42618
  kind: 'ai';
@@ -40473,6 +42731,10 @@ declare const judges: {
40473
42731
  readonly grounded: () => Gradeable<AIGrader>;
40474
42732
  readonly rightTone: (voice?: string) => Gradeable<AIGrader>;
40475
42733
  readonly safeToSend: () => Gradeable<AIGrader>;
42734
+ readonly staysOnTask: () => Gradeable<AIGrader>;
42735
+ readonly sameLanguage: () => Gradeable<AIGrader>;
42736
+ readonly refusesWhenItShould: () => Gradeable<AIGrader>;
42737
+ readonly noPersonalData: () => Gradeable<AIGrader>;
40476
42738
  };
40477
42739
  interface EvalMessage {
40478
42740
  role: 'user' | 'assistant' | 'system';
@@ -40611,6 +42873,11 @@ interface RunEvalResult {
40611
42873
  suiteId: string | null;
40612
42874
  name: string;
40613
42875
  targetType: 'flow' | 'agent';
42876
+ /**
42877
+ * The persisted run id (scores queryable via `GET /eval/runs/{runId}/scores`),
42878
+ * or `null` for an ephemeral (virtual/inline) run.
42879
+ */
42880
+ runId: string | null;
40614
42881
  /** Suite score, 0..1 (passed cases / total cases). */
40615
42882
  score: number;
40616
42883
  /** True when every case passed every grader. */
@@ -40619,6 +42886,32 @@ interface RunEvalResult {
40619
42886
  passedCases: number;
40620
42887
  cases: RunEvalCaseResult[];
40621
42888
  }
42889
+ /** One case's persisted scores, as returned by `GET /eval/runs/{runId}/scores`. */
42890
+ interface EvalRunCaseScores {
42891
+ /** The saved eval case id; null when the case was deleted or unmapped. */
42892
+ caseId: string | null;
42893
+ name: string;
42894
+ /** Recomputed from the persisted outcomes with non-strict severity semantics. */
42895
+ passed: boolean;
42896
+ outcomes: GraderOutcome[];
42897
+ /** Truncated snapshot of the output that was graded. */
42898
+ outputExcerpt: string;
42899
+ }
42900
+ /** Persisted per-case grader scores for a run (`client.evals.getRunScores`). */
42901
+ interface EvalRunScores {
42902
+ runId: string;
42903
+ /** The suite the run executed; null when the suite was since deleted. */
42904
+ suiteId: string | null;
42905
+ /** The eval name recorded on the run. */
42906
+ name: string | null;
42907
+ /** The severity semantics the run was graded with (soft misses fail when true). */
42908
+ strict: boolean;
42909
+ /** Suite score, 0..1; null when the run has no persisted scores. */
42910
+ score: number | null;
42911
+ totalCases: number;
42912
+ passedCases: number;
42913
+ cases: EvalRunCaseScores[];
42914
+ }
40622
42915
  /**
40623
42916
  * Run a saved suite by id (the post-`ensure` path) XOR an inline definition (the
40624
42917
  * `virtual` path — nothing is persisted). Exactly one must be provided.
@@ -40626,10 +42919,14 @@ interface RunEvalResult {
40626
42919
  * `strict` (default false) is the `runtype eval --strict` gate: a `soft` grader
40627
42920
  * miss fails its case like a `gate` miss. Without it, soft misses are reported
40628
42921
  * per-outcome but do not fail the suite.
42922
+ *
42923
+ * Saved-suite runs persist by default (a durable run + per-case scores, the
42924
+ * dashboard's run-history data source); `virtual: true` skips persistence.
40629
42925
  */
40630
42926
  type RunEvalInput = {
40631
42927
  suiteId: string;
40632
42928
  strict?: boolean;
42929
+ virtual?: boolean;
40633
42930
  } | {
40634
42931
  definition: EvalDefinition;
40635
42932
  strict?: boolean;
@@ -40892,6 +43189,8 @@ type SearchStepConfig = NamespaceStepConfig<SearchStepConfig$1>;
40892
43189
  type SendEmailStepConfig = NamespaceStepConfig<SendEmailStepConfig$1>;
40893
43190
  type SendStreamStepConfig = NamespaceStepConfig<SendStreamStepConfig$1>;
40894
43191
  type RetrieveRecordStepConfig = NamespaceStepConfig<RetrieveRecordStepConfig$1>;
43192
+ type GetRecordStepConfig = NamespaceStepConfig<GetRecordStepConfig$1>;
43193
+ type ListRecordsStepConfig = NamespaceStepConfig<ListRecordsStepConfig$1>;
40895
43194
  type UpsertRecordStepConfig = NamespaceStepConfig<UpsertRecordStepConfig$1>;
40896
43195
  type VectorSearchStepConfig = NamespaceStepConfig<VectorSearchStepConfig$1>;
40897
43196
  type GenerateEmbeddingStepConfig = NamespaceStepConfig<GenerateEmbeddingStepConfig$1>;
@@ -41078,8 +43377,17 @@ declare class RuntypeFlowBuilder {
41078
43377
  sendStream(config: SendStreamStepConfig): this;
41079
43378
  /**
41080
43379
  * Add a retrieve record step
43380
+ * @deprecated use {@link getRecord} (single record) or {@link listRecords} (multiple records) instead.
41081
43381
  */
41082
43382
  retrieveRecord(config: RetrieveRecordStepConfig): this;
43383
+ /**
43384
+ * Add a get-record step. Always returns a single record object.
43385
+ */
43386
+ getRecord(config: GetRecordStepConfig): this;
43387
+ /**
43388
+ * Add a list-records step. Always returns an array of records (newest-first).
43389
+ */
43390
+ listRecords(config: ListRecordsStepConfig): this;
41083
43391
  /**
41084
43392
  * Add an upsert record step
41085
43393
  */
@@ -41357,6 +43665,175 @@ declare class BatchesNamespace {
41357
43665
  }>;
41358
43666
  }
41359
43667
 
43668
+ /**
43669
+ * Eval-suite CRUD + case management + run — the SDK surface for the
43670
+ * `/v1/eval/suites` REST family (Beginner-First Evals).
43671
+ *
43672
+ * This is the imperative, id-addressed counterpart of the config-as-code
43673
+ * surface in `evals-ensure.ts` (`defineEval` / `ensure` / `pull`): use ensure
43674
+ * to converge a repo-authored suite on deploy, and this namespace to inspect
43675
+ * or manage suites, edit test cases (server-authoritative data), and start
43676
+ * runs. Exposed as `client.evals.suites.*`.
43677
+ */
43678
+
43679
+ /** The most recent run of a suite, with its score once graded. */
43680
+ interface EvalSuiteLatestRun {
43681
+ runId: string;
43682
+ status: string;
43683
+ startedAt: string;
43684
+ completedAt: string | null;
43685
+ /** Suite score of the run, 0..1; null while unscored. */
43686
+ score: number | null;
43687
+ totalCases: number | null;
43688
+ passedCases: number | null;
43689
+ }
43690
+ /** A suite as returned by list/update (no cases). */
43691
+ interface EvalSuiteSummary {
43692
+ id: string;
43693
+ name: string;
43694
+ description: string | null;
43695
+ targetType: 'flow' | 'agent';
43696
+ flowId: string | null;
43697
+ agentId: string | null;
43698
+ /** Display name of the target flow/agent; null when the target row is gone. */
43699
+ targetName: string | null;
43700
+ graders: GraderConfig[];
43701
+ isDefault: boolean;
43702
+ baselineBatchExecutionId: string | null;
43703
+ /** 'sdk' / 'terraform' mean the suite Definition is managed in code. */
43704
+ lastModifiedSource: string | null;
43705
+ caseCount: number;
43706
+ enabledCaseCount: number;
43707
+ latestRun: EvalSuiteLatestRun | null;
43708
+ createdAt: string;
43709
+ updatedAt: string;
43710
+ }
43711
+ /** A persisted test case. */
43712
+ interface EvalSuiteCase {
43713
+ id: string;
43714
+ suiteId: string;
43715
+ name: string;
43716
+ input: EvalCaseInput;
43717
+ expected: CaseExpected | null;
43718
+ notes: string | null;
43719
+ origin: string;
43720
+ enabled: boolean;
43721
+ createdAt: string;
43722
+ updatedAt: string;
43723
+ }
43724
+ /** A suite as returned by create/get — the summary plus its cases. */
43725
+ interface EvalSuiteDetail extends EvalSuiteSummary {
43726
+ cases: EvalSuiteCase[];
43727
+ }
43728
+ /** Case provenance (mirror of `EvalCaseOrigin` in `@runtypelabs/shared`). */
43729
+ type EvalCaseOrigin = 'manual' | 'saved_from_run' | 'generated' | 'imported' | 'fpo';
43730
+ /** One case to create. */
43731
+ interface EvalSuiteCaseInput {
43732
+ name: string;
43733
+ input?: EvalCaseInput;
43734
+ expected?: CaseExpected;
43735
+ notes?: string;
43736
+ enabled?: boolean;
43737
+ /** Case provenance. Defaults to 'manual' server-side when omitted. */
43738
+ origin?: EvalCaseOrigin;
43739
+ }
43740
+ /** Input to `client.evals.suites.create`. Exactly one of flowId/agentId. */
43741
+ interface CreateEvalSuiteInput {
43742
+ name: string;
43743
+ description?: string;
43744
+ flowId?: string;
43745
+ agentId?: string;
43746
+ /** Ordered graders applied to every case. */
43747
+ graders?: GraderConfig[];
43748
+ /** Make this the default eval for its target. */
43749
+ isDefault?: boolean;
43750
+ /** Optional initial cases. */
43751
+ cases?: EvalSuiteCaseInput[];
43752
+ }
43753
+ /** Input to `client.evals.suites.update`. The target is immutable. */
43754
+ interface UpdateEvalSuiteInput {
43755
+ name?: string;
43756
+ description?: string | null;
43757
+ graders?: GraderConfig[];
43758
+ isDefault?: boolean;
43759
+ /** Pin a run of this suite as the comparison baseline; null clears the pin. */
43760
+ baselineBatchExecutionId?: string | null;
43761
+ }
43762
+ /** Input to `client.evals.suites.updateCase`. */
43763
+ interface UpdateEvalCaseInput {
43764
+ name?: string;
43765
+ input?: EvalCaseInput;
43766
+ expected?: CaseExpected | null;
43767
+ notes?: string | null;
43768
+ enabled?: boolean;
43769
+ }
43770
+ interface EvalSuiteListResult {
43771
+ suites: EvalSuiteSummary[];
43772
+ limit: number;
43773
+ offset: number;
43774
+ /** Number of suites in this page. */
43775
+ count: number;
43776
+ /** Total suites matching the filter across all pages (for offset pagination). */
43777
+ total: number;
43778
+ }
43779
+ /** A large suite queued as a durable run (graded when it completes). */
43780
+ interface EvalSuiteRunQueued {
43781
+ mode: 'batch';
43782
+ /** Poll `client.evals.getRunScores(runId)` once the run completes. */
43783
+ runId: string;
43784
+ suiteId: string;
43785
+ name: string;
43786
+ status: string;
43787
+ totalCases: number;
43788
+ }
43789
+ /**
43790
+ * The result of `client.evals.suites.run`: the full scored result when the
43791
+ * suite ran synchronously, or a queued handle for a durable run. Discriminate
43792
+ * with `'mode' in result` (queued) or `'cases' in result` (sync).
43793
+ */
43794
+ type EvalSuiteRunResult = RunEvalResult | EvalSuiteRunQueued;
43795
+ declare class EvalSuitesNamespace {
43796
+ private getClient;
43797
+ constructor(getClient: () => RuntypeClient$1);
43798
+ /** Create an eval suite attached to one flow or agent, optionally with cases. */
43799
+ create(input: CreateEvalSuiteInput): Promise<EvalSuiteDetail>;
43800
+ /** List suites (case counts + latest run/score). Filter by target. */
43801
+ list(params?: {
43802
+ flowId?: string;
43803
+ agentId?: string;
43804
+ limit?: number;
43805
+ offset?: number;
43806
+ }): Promise<EvalSuiteListResult>;
43807
+ /** Get a suite including its cases and latest run/score. */
43808
+ get(suiteId: string): Promise<EvalSuiteDetail>;
43809
+ /** Update a suite's Definition (name, description, graders) or state (default, baseline). */
43810
+ update(suiteId: string, input: UpdateEvalSuiteInput): Promise<EvalSuiteSummary>;
43811
+ /** Delete a suite and its cases. Past runs keep their persisted scores. */
43812
+ delete(suiteId: string): Promise<{
43813
+ success: boolean;
43814
+ }>;
43815
+ /**
43816
+ * Run every enabled case against the suite's target and grade the outputs.
43817
+ * Suites within the synchronous case limit run inline and return the scored
43818
+ * result; larger suites queue a durable run (`mode: 'batch'`) that is graded
43819
+ * on completion. Both persist per-case scores to the same run history.
43820
+ */
43821
+ run(suiteId: string, options?: {
43822
+ strict?: boolean;
43823
+ mode?: 'sync' | 'batch';
43824
+ }): Promise<EvalSuiteRunResult>;
43825
+ /** Add one or more test cases to a suite. */
43826
+ addCases(suiteId: string, cases: EvalSuiteCaseInput[]): Promise<{
43827
+ cases: EvalSuiteCase[];
43828
+ }>;
43829
+ /** Edit, enable, or disable a test case. */
43830
+ updateCase(suiteId: string, caseId: string, input: UpdateEvalCaseInput): Promise<EvalSuiteCase>;
43831
+ /** Delete a test case. Past runs keep the case's persisted scores. */
43832
+ deleteCase(suiteId: string, caseId: string): Promise<{
43833
+ success: boolean;
43834
+ }>;
43835
+ }
43836
+
41360
43837
  /**
41361
43838
  * EvalsNamespace - Static namespace for evaluation operations
41362
43839
  *
@@ -41509,6 +43986,17 @@ declare class EvalRunner {
41509
43986
  }
41510
43987
  declare class EvalsNamespace {
41511
43988
  private getClient;
43989
+ /**
43990
+ * Id-addressed eval-suite management (`/v1/eval/suites` CRUD + cases + run).
43991
+ * The imperative counterpart of the config-as-code `ensure`/`pull` pair.
43992
+ *
43993
+ * @example
43994
+ * ```typescript
43995
+ * const { suites } = await Runtype.evals.suites.list({ flowId: 'flow_123' })
43996
+ * const result = await Runtype.evals.suites.run(suites[0].id)
43997
+ * ```
43998
+ */
43999
+ readonly suites: EvalSuitesNamespace;
41512
44000
  constructor(getClient: () => RuntypeClient$1);
41513
44001
  /**
41514
44002
  * Run an evaluation
@@ -41576,6 +44064,20 @@ declare class EvalsNamespace {
41576
44064
  * ```
41577
44065
  */
41578
44066
  runSuite(input: RunEvalInput): Promise<RunEvalResult>;
44067
+ /**
44068
+ * Read back the persisted per-case grader scores for a run, using the
44069
+ * `runId` a persisted `runSuite` call returns (null for virtual/inline runs).
44070
+ *
44071
+ * @example
44072
+ * ```typescript
44073
+ * const result = await Runtype.evals.runSuite({ suiteId })
44074
+ * if (result.runId) {
44075
+ * const scores = await Runtype.evals.getRunScores(result.runId)
44076
+ * console.log(scores.score, scores.cases.length)
44077
+ * }
44078
+ * ```
44079
+ */
44080
+ getRunScores(runId: string): Promise<EvalRunScores>;
41579
44081
  /**
41580
44082
  * Get evaluation status by ID
41581
44083
  *
@@ -43394,6 +45896,10 @@ declare class RuntypeClient$1 {
43394
45896
  * Generic PUT request
43395
45897
  */
43396
45898
  put<T>(path: string, data?: unknown): Promise<T>;
45899
+ /**
45900
+ * Generic PATCH request
45901
+ */
45902
+ patch<T>(path: string, data?: unknown): Promise<T>;
43397
45903
  /**
43398
45904
  * Generic DELETE request
43399
45905
  */
@@ -45333,9 +47839,31 @@ interface AgentExecuteResponse {
45333
47839
  input: number;
45334
47840
  output: number;
45335
47841
  };
45336
- stopReason: 'complete' | 'end_turn' | 'max_turns' | 'max_cost' | 'timeout' | 'error';
47842
+ stopReason: 'complete' | 'end_turn' | 'max_turns' | 'max_cost' | 'timeout' | 'error' | 'paused';
45337
47843
  reflections?: string[];
45338
47844
  error?: string;
47845
+ /**
47846
+ * Terminal execution status. `'paused'` when a tool call tripped an approval
47847
+ * gate (`config.tools.approval`) or a local/client tool call — the run is
47848
+ * awaiting the caller, not finished. Present on non-streaming responses.
47849
+ */
47850
+ status?: 'completed' | 'failed' | 'paused';
47851
+ /**
47852
+ * Set when `status === 'paused'`. Resolve an approval gate with
47853
+ * `AgentsEndpoint.approve({ executionId, approvalId, decision })`; resume a
47854
+ * local-tool pause with `AgentsEndpoint.resume({ executionId, toolOutputs })`.
47855
+ */
47856
+ pausedReason?: {
47857
+ type: string;
47858
+ executionId: string;
47859
+ toolId?: string;
47860
+ toolName?: string;
47861
+ parameters?: Record<string, unknown>;
47862
+ /** `'approval_required'` for an approval gate; absent for a local-tool pause. */
47863
+ awaitReason?: string;
47864
+ /** The id passed to `approve()` (with `executionId`) to resolve the gate. */
47865
+ approvalId?: string;
47866
+ };
45339
47867
  }
45340
47868
  interface LocalToolExecutionLoopSnapshot {
45341
47869
  executionId: string;
@@ -47597,6 +50125,73 @@ declare const STEP_FIELD_REGISTRY: {
47597
50125
  readonly key: "streamOutput";
47598
50126
  readonly format: "raw";
47599
50127
  }];
50128
+ readonly 'get-record': readonly [{
50129
+ readonly key: "recordId";
50130
+ readonly format: "json";
50131
+ }, {
50132
+ readonly key: "recordType";
50133
+ readonly format: "json";
50134
+ }, {
50135
+ readonly key: "recordName";
50136
+ readonly format: "json";
50137
+ }, {
50138
+ readonly key: "recordFilter";
50139
+ readonly format: "value";
50140
+ }, {
50141
+ readonly key: "fieldsToInclude";
50142
+ readonly format: "json";
50143
+ }, {
50144
+ readonly key: "fieldsToExclude";
50145
+ readonly format: "json";
50146
+ }, {
50147
+ readonly key: "availableFields";
50148
+ readonly format: "value";
50149
+ }, {
50150
+ readonly key: "outputVariable";
50151
+ readonly format: "json";
50152
+ }, {
50153
+ readonly key: "includeMetadata";
50154
+ readonly format: "raw";
50155
+ }, {
50156
+ readonly key: "streamOutput";
50157
+ readonly format: "raw";
50158
+ }];
50159
+ readonly 'list-records': readonly [{
50160
+ readonly key: "recordType";
50161
+ readonly format: "json";
50162
+ }, {
50163
+ readonly key: "recordName";
50164
+ readonly format: "json";
50165
+ }, {
50166
+ readonly key: "recordFilter";
50167
+ readonly format: "value";
50168
+ }, {
50169
+ readonly key: "limit";
50170
+ readonly format: "raw";
50171
+ readonly skipDefault: 50;
50172
+ }, {
50173
+ readonly key: "onEmpty";
50174
+ readonly format: "json";
50175
+ readonly skipDefault: "succeed";
50176
+ }, {
50177
+ readonly key: "fieldsToInclude";
50178
+ readonly format: "json";
50179
+ }, {
50180
+ readonly key: "fieldsToExclude";
50181
+ readonly format: "json";
50182
+ }, {
50183
+ readonly key: "availableFields";
50184
+ readonly format: "value";
50185
+ }, {
50186
+ readonly key: "outputVariable";
50187
+ readonly format: "json";
50188
+ }, {
50189
+ readonly key: "includeMetadata";
50190
+ readonly format: "raw";
50191
+ }, {
50192
+ readonly key: "streamOutput";
50193
+ readonly format: "raw";
50194
+ }];
47600
50195
  readonly 'upsert-record': readonly [{
47601
50196
  readonly key: "recordType";
47602
50197
  readonly format: "json";
@@ -47841,6 +50436,8 @@ declare const STEP_TYPE_TO_METHOD: {
47841
50436
  readonly 'fetch-url': "fetchUrl";
47842
50437
  readonly 'api-call': "apiCall";
47843
50438
  readonly 'retrieve-record': "retrieveRecord";
50439
+ readonly 'get-record': "getRecord";
50440
+ readonly 'list-records': "listRecords";
47844
50441
  readonly 'fetch-github': "fetchGitHub";
47845
50442
  readonly 'transform-data': "transformData";
47846
50443
  readonly template: "template";
@@ -48214,4 +50811,4 @@ declare function getLikelySupportingCandidatePaths(bestCandidatePath: string | u
48214
50811
  declare function getDefaultPlanPath(taskName: string): string;
48215
50812
  declare function sanitizeTaskSlug(taskName: string): string;
48216
50813
 
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 };
50814
+ 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 };