@runtypelabs/sdk 10.3.2 → 10.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -848,6 +848,10 @@ interface paths {
848
848
  thresholdTokens?: number;
849
849
  };
850
850
  toolResults?: {
851
+ /**
852
+ * @deprecated
853
+ * @description Deprecated and ignored. Tool results are never spilled.
854
+ */
851
855
  inlineThresholdChars?: number;
852
856
  pruneHotWindowTokens?: number;
853
857
  /** @enum {string} */
@@ -1365,6 +1369,10 @@ interface paths {
1365
1369
  thresholdTokens?: number;
1366
1370
  };
1367
1371
  toolResults?: {
1372
+ /**
1373
+ * @deprecated
1374
+ * @description Deprecated and ignored. Tool results are never spilled.
1375
+ */
1368
1376
  inlineThresholdChars?: number;
1369
1377
  pruneHotWindowTokens?: number;
1370
1378
  /** @enum {string} */
@@ -2158,6 +2166,10 @@ interface paths {
2158
2166
  thresholdTokens?: number;
2159
2167
  };
2160
2168
  toolResults?: {
2169
+ /**
2170
+ * @deprecated
2171
+ * @description Deprecated and ignored. Tool results are never spilled.
2172
+ */
2161
2173
  inlineThresholdChars?: number;
2162
2174
  pruneHotWindowTokens?: number;
2163
2175
  /** @enum {string} */
@@ -3960,6 +3972,15 @@ interface paths {
3960
3972
  "application/json": components["schemas"]["Error"];
3961
3973
  };
3962
3974
  };
3975
+ /** @description Insufficient permissions (AGENTS:WRITE required) */
3976
+ 403: {
3977
+ headers: {
3978
+ [name: string]: unknown;
3979
+ };
3980
+ content: {
3981
+ "application/json": components["schemas"]["Error"];
3982
+ };
3983
+ };
3963
3984
  /** @description Agent or capability not found */
3964
3985
  404: {
3965
3986
  headers: {
@@ -4220,8 +4241,8 @@ interface paths {
4220
4241
  parameters: {
4221
4242
  query?: never;
4222
4243
  header?: {
4223
- /** @description How a durable turn handles overlap. `reject` (default) answers CONVERSATION_BUSY naming the occupant execution, its phase, and a Retry-After; `supersede` cancels and replaces; `queue` runs afterward; `join` durably appends new user-message deltas to the same execution at a safe boundary, attaches through the host's slot claim when the host has not started yet, or starts the next execution if completion wins. Join requires a conversationId, preserves configuration and authority, cannot combine with coalesce, and rejects unsupported lanes. Other policies remain ignored on in-process execution. */
4224
- "x-runtype-concurrency"?: "reject" | "supersede" | "queue" | "join";
4244
+ /** @description How a durable turn handles overlap. `reject` (default) answers CONVERSATION_BUSY naming the occupant execution, its phase, and a Retry-After; `supersede` cancels and replaces; `queue` runs afterward; `steer` durably appends new user-message deltas to the same execution at a safe boundary, attaches through the host's slot claim when the host has not started yet, or starts the next execution if completion wins. Steer requires a conversationId, preserves configuration and authority, cannot combine with coalesce, and rejects unsupported lanes. Other policies remain ignored on in-process execution. */
4245
+ "x-runtype-concurrency"?: "reject" | "supersede" | "queue" | "steer";
4225
4246
  /** @description Send `true` to fold this request into an already-pending turn for the same conversation instead of starting a second one. The response is the pending execution. Any other value (or omitting the header) starts a new turn. */
4226
4247
  "x-runtype-coalesce"?: "true";
4227
4248
  /** @description Caller-chosen key that makes admission idempotent: a retry with the same key returns the ORIGINAL execution rather than starting a second turn, and consumes no additional quota. Scoped to the durable lane. */
@@ -4295,7 +4316,7 @@ interface paths {
4295
4316
  "application/json": components["schemas"]["Error"];
4296
4317
  };
4297
4318
  };
4298
- /** @description Organization model configuration needs configuration, the durable conversation is busy (CONVERSATION_BUSY names the occupant execution and its phase; honor Retry-After or join it), or a `history: "stored"` turn lost the compare-and-swap on its conversation (CONVERSATION_MODIFIED; nothing ran, re-read the conversation and retry) */
4319
+ /** @description Organization model configuration needs configuration, the durable conversation is busy (CONVERSATION_BUSY names the occupant execution and its phase; honor Retry-After or steer it with x-runtype-concurrency: steer), or a `history: "stored"` turn lost the compare-and-swap on its conversation (CONVERSATION_MODIFIED; nothing ran, re-read the conversation and retry) */
4299
4320
  409: {
4300
4321
  headers: {
4301
4322
  [name: string]: unknown;
@@ -7825,6 +7846,7 @@ interface paths {
7825
7846
  rateLimitPerHour?: number;
7826
7847
  /** @default 10 */
7827
7848
  rateLimitPerMinute?: number;
7849
+ revealOnce?: boolean;
7828
7850
  /** @default 30 */
7829
7851
  sessionIdleTimeoutMinutes?: number;
7830
7852
  /** @description Release alias this token follows. Re-resolved on every admission, so a deploy at that alias changes what the token runs. Mutually exclusive with targetVersionId. */
@@ -8559,6 +8581,70 @@ interface paths {
8559
8581
  patch?: never;
8560
8582
  trace?: never;
8561
8583
  };
8584
+ "/v1/client/agents/{agentId}/voice/prewarm": {
8585
+ parameters: {
8586
+ query?: never;
8587
+ header?: never;
8588
+ path?: never;
8589
+ cookie?: never;
8590
+ };
8591
+ get?: never;
8592
+ put?: never;
8593
+ /**
8594
+ * Prewarm browser voice for an agent
8595
+ * @description Signals intent to start a browser voice call (for example, the pointer entered the microphone button) so the WebSocket connect and first turn find warm state. Authenticated exactly like `/agents/{agentId}/speak`: send the client token as `Authorization: Bearer ct_…`; the token agent allowlist and origin allowlist apply. Returns 204 as soon as the caller is authenticated and warms in the background. The call never bills, reserves quota, or meters usage. Warming is rate-limited per client token and agent; a limited call still returns 204 and does nothing.
8596
+ */
8597
+ post: {
8598
+ parameters: {
8599
+ query?: {
8600
+ /** @description The client session the call will resume, when the host already has one. */
8601
+ sessionId?: string;
8602
+ };
8603
+ header?: {
8604
+ /** @description The visitor proof the call will present, sent the same way the voice WebSocket accepts it. */
8605
+ "x-visitor-token"?: string;
8606
+ };
8607
+ path: {
8608
+ /** @description The voice-enabled agent the call will open. */
8609
+ agentId: string;
8610
+ };
8611
+ cookie?: never;
8612
+ };
8613
+ requestBody?: never;
8614
+ responses: {
8615
+ /** @description Accepted. Warming, if admitted, continues in the background. */
8616
+ 204: {
8617
+ headers: {
8618
+ [name: string]: unknown;
8619
+ };
8620
+ content?: never;
8621
+ };
8622
+ /** @description Missing or invalid client token, agent not allowed for the token, or origin not allowed */
8623
+ 401: {
8624
+ headers: {
8625
+ [name: string]: unknown;
8626
+ };
8627
+ content: {
8628
+ "application/json": components["schemas"]["Error"];
8629
+ };
8630
+ };
8631
+ /** @description Malformed agent id */
8632
+ 404: {
8633
+ headers: {
8634
+ [name: string]: unknown;
8635
+ };
8636
+ content: {
8637
+ "application/json": components["schemas"]["Error"];
8638
+ };
8639
+ };
8640
+ };
8641
+ };
8642
+ delete?: never;
8643
+ options?: never;
8644
+ head?: never;
8645
+ patch?: never;
8646
+ trace?: never;
8647
+ };
8562
8648
  "/v1/client/chat": {
8563
8649
  parameters: {
8564
8650
  query?: never;
@@ -8570,7 +8656,7 @@ interface paths {
8570
8656
  put?: never;
8571
8657
  /**
8572
8658
  * Send a client chat message
8573
- * @description Send a message for a browser client-token chat session. The request streams flow/agent events over Server-Sent Events. `turnId` and `submitMode` are optional and let newer Persona clients suppress stale interrupted responses; older clients can omit both fields. Opt-in `join` accepts exactly one new user message whose `id` equals `turnId` for visitor-owned native durable agents. A new execution streams SSE; joining an existing execution returns a 202 delivery receipt without replacing its response. Retry with the same turn and message IDs.
8659
+ * @description Send a message for a browser client-token chat session. The request streams flow/agent events over Server-Sent Events. `turnId` and `submitMode` are optional and let newer Persona clients suppress stale interrupted responses; older clients can omit both fields. Opt-in `steer` accepts exactly one new user message whose `id` equals `turnId` for visitor-owned native durable agents. A new execution streams SSE; steering an existing execution returns a 202 delivery receipt without replacing its response. Retry with the same turn and message IDs.
8574
8660
  */
8575
8661
  post: {
8576
8662
  parameters: {
@@ -8641,7 +8727,7 @@ interface paths {
8641
8727
  };
8642
8728
  sessionId: string;
8643
8729
  /** @enum {string} */
8644
- submitMode?: "normal" | "interrupt" | "join";
8730
+ submitMode?: "normal" | "interrupt" | "steer";
8645
8731
  turnId?: string;
8646
8732
  };
8647
8733
  };
@@ -8714,7 +8800,7 @@ interface paths {
8714
8800
  "application/json": components["schemas"]["Error"];
8715
8801
  };
8716
8802
  };
8717
- /** @description Conflict. Either the client tools registry fingerprint was not found (`client_tools_resend_required`; resend the full `clientTools[]` with the fingerprint), this turn was superseded by a newer interrupting turn before it could start (`turn_superseded`), or a Claude Managed target was refused because the caller has not opted into durable turns (`CLAUDE_MANAGED_DURABLE_TURNS_REQUIRED`; `hint` names the exact opt-in) or the session carries no conversation record (`CLAUDE_MANAGED_CONVERSATION_REQUIRED`). A join refusal uses `JOIN_UNAVAILABLE`. */
8803
+ /** @description Conflict. Either the client tools registry fingerprint was not found (`client_tools_resend_required`; resend the full `clientTools[]` with the fingerprint), this turn was superseded by a newer interrupting turn before it could start (`turn_superseded`), or a Claude Managed target was refused because the caller has not opted into durable turns (`CLAUDE_MANAGED_DURABLE_TURNS_REQUIRED`; `hint` names the exact opt-in) or the session carries no conversation record (`CLAUDE_MANAGED_CONVERSATION_REQUIRED`). A steer refusal uses `STEER_UNAVAILABLE`. */
8718
8804
  409: {
8719
8805
  headers: {
8720
8806
  [name: string]: unknown;
@@ -9770,7 +9856,7 @@ interface paths {
9770
9856
  /** @description Whether this initialized client-token session has the visitor credential and the durable-turns opt-in needed to use the durable execution reconnect route. The opt-in is the chat surface `behavior.durableTurns.enabled` for a surface-bound token and `config.durableTurns.enabled` for a standalone token. Reporting only: individual turns still self-identify as durable through replay cursors. */
9771
9857
  enabled: boolean;
9772
9858
  /** @description Whether the native durable target supports non-interrupting user-message delivery. */
9773
- join?: boolean;
9859
+ steer?: boolean;
9774
9860
  };
9775
9861
  /** @description ISO-8601 session idle-expiry timestamp. */
9776
9862
  expiresAt: string;
@@ -12898,7 +12984,7 @@ interface paths {
12898
12984
  put?: never;
12899
12985
  /**
12900
12986
  * Execute a flow or agent
12901
- * @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 receive a durable execution handle immediately, then poll its status URL for completion. A saved agent may run on the durable session lane; the admission headers `x-runtype-concurrency` (reject, supersede, queue, join), `x-runtype-coalesce` (true) and `idempotency-key` then apply exactly as on `POST /v1/agents/{id}/execute`, and are ignored for in-process execution except join, which fails explicitly on unsupported lanes. Join accepts only new user-message deltas, preserves the active execution configuration and authority, and returns a deliveryId with a deliveryStatusUrl. Prefer: respond-async with join returns a native delivery receipt without queuing an HTTP replay.
12987
+ * @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 receive a durable execution handle immediately, then poll its status URL for completion. A saved agent may run on the durable session lane; the admission headers `x-runtype-concurrency` (reject, supersede, queue, steer), `x-runtype-coalesce` (true) and `idempotency-key` then apply exactly as on `POST /v1/agents/{id}/execute`, and are ignored for in-process execution except steer, which fails explicitly on unsupported lanes. Any other x-runtype-concurrency value is refused with 400 INVALID_CONCURRENCY_MODE. Steer accepts only new user-message deltas, preserves the active execution configuration and authority, and returns a deliveryId with a deliveryStatusUrl. Prefer: respond-async with steer returns a native delivery receipt without queuing an HTTP replay.
12902
12988
  */
12903
12989
  post: {
12904
12990
  parameters: {
@@ -13200,7 +13286,7 @@ interface paths {
13200
13286
  steps?: unknown[];
13201
13287
  };
13202
13288
  /**
13203
- * @description Where this turn's prior history comes from. "inline" (the default, and today's behavior) replays exactly the `messages` sent here. "stored" replays the transcript saved on the `conversationId` conversation, treats `messages` as the new delta, and appends both the delta and the settled assistant turn back onto it; it requires a saved `agent.agentId` and a `conversationId`, and is refused for a flow dispatch, an inline or `claude_managed` agent, `Prefer: respond-async`, a join, or a resume.
13289
+ * @description Where this turn's prior history comes from. "inline" (the default, and today's behavior) replays exactly the `messages` sent here. "stored" replays the transcript saved on the `conversationId` conversation, treats `messages` as the new delta, and appends both the delta and the settled assistant turn back onto it; it requires a saved `agent.agentId` and a `conversationId`, and is refused for a flow dispatch, an inline or `claude_managed` agent, `Prefer: respond-async`, a steer (`x-runtype-concurrency: steer`), or a resume.
13204
13290
  * @enum {string}
13205
13291
  */
13206
13292
  history?: "inline" | "stored";
@@ -13650,7 +13736,7 @@ interface paths {
13650
13736
  steps?: unknown[];
13651
13737
  };
13652
13738
  /**
13653
- * @description Where this turn's prior history comes from. "inline" (the default, and today's behavior) replays exactly the `messages` sent here. "stored" replays the transcript saved on the `conversationId` conversation, treats `messages` as the new delta, and appends both the delta and the settled assistant turn back onto it; it requires a saved `agent.agentId` and a `conversationId`, and is refused for a flow dispatch, an inline or `claude_managed` agent, `Prefer: respond-async`, a join, or a resume.
13739
+ * @description Where this turn's prior history comes from. "inline" (the default, and today's behavior) replays exactly the `messages` sent here. "stored" replays the transcript saved on the `conversationId` conversation, treats `messages` as the new delta, and appends both the delta and the settled assistant turn back onto it; it requires a saved `agent.agentId` and a `conversationId`, and is refused for a flow dispatch, an inline or `claude_managed` agent, `Prefer: respond-async`, a steer (`x-runtype-concurrency: steer`), or a resume.
13654
13740
  * @enum {string}
13655
13741
  */
13656
13742
  history?: "inline" | "stored";
@@ -13877,7 +13963,7 @@ interface paths {
13877
13963
  "application/json": components["schemas"]["Error"];
13878
13964
  };
13879
13965
  };
13880
- /** @description The durable conversation is busy (CONVERSATION_BUSY names the occupant execution and its phase; honor Retry-After or send x-runtype-concurrency: join) */
13966
+ /** @description The durable conversation is busy (CONVERSATION_BUSY names the occupant execution and its phase; honor Retry-After or send x-runtype-concurrency: steer) */
13881
13967
  409: {
13882
13968
  headers: {
13883
13969
  [name: string]: unknown;
@@ -25353,6 +25439,15 @@ interface paths {
25353
25439
  };
25354
25440
  };
25355
25441
  };
25442
+ /** @description API key lacks a read scope (FLOWS:READ, AGENTS:READ or ANALYTICS:READ) */
25443
+ 403: {
25444
+ headers: {
25445
+ [name: string]: unknown;
25446
+ };
25447
+ content: {
25448
+ "application/json": components["schemas"]["Error"];
25449
+ };
25450
+ };
25356
25451
  /** @description Internal server error */
25357
25452
  500: {
25358
25453
  headers: {
@@ -25381,6 +25476,171 @@ interface paths {
25381
25476
  patch?: never;
25382
25477
  trace?: never;
25383
25478
  };
25479
+ "/v1/logs/context/{executionId}": {
25480
+ parameters: {
25481
+ query?: never;
25482
+ header?: never;
25483
+ path?: never;
25484
+ cookie?: never;
25485
+ };
25486
+ /**
25487
+ * Context snapshots for an execution
25488
+ * @description Returns the ordered context manifest of every provider request in one execution: each block's category, kind, size, and hash, without content.
25489
+ */
25490
+ get: {
25491
+ parameters: {
25492
+ query?: never;
25493
+ header?: never;
25494
+ path: {
25495
+ /** @description Runtime execution_id to read (for example exec_...), not the aex_... agent-execution row ID */
25496
+ executionId: string;
25497
+ };
25498
+ cookie?: never;
25499
+ };
25500
+ requestBody?: never;
25501
+ responses: {
25502
+ /** @description Context snapshots returned */
25503
+ 200: {
25504
+ headers: {
25505
+ [name: string]: unknown;
25506
+ };
25507
+ content: {
25508
+ "application/json": {
25509
+ data: components["schemas"]["ContextSnapshots"];
25510
+ success: boolean;
25511
+ };
25512
+ };
25513
+ };
25514
+ /** @description Invalid request */
25515
+ 400: {
25516
+ headers: {
25517
+ [name: string]: unknown;
25518
+ };
25519
+ content: {
25520
+ "application/json": components["schemas"]["Error"];
25521
+ };
25522
+ };
25523
+ /** @description Unauthorized */
25524
+ 401: {
25525
+ headers: {
25526
+ [name: string]: unknown;
25527
+ };
25528
+ content: {
25529
+ "application/json": components["schemas"]["Error"];
25530
+ };
25531
+ };
25532
+ /** @description No trace for this execution */
25533
+ 404: {
25534
+ headers: {
25535
+ [name: string]: unknown;
25536
+ };
25537
+ content: {
25538
+ "application/json": components["schemas"]["Error"];
25539
+ };
25540
+ };
25541
+ /** @description Internal server error */
25542
+ 500: {
25543
+ headers: {
25544
+ [name: string]: unknown;
25545
+ };
25546
+ content: {
25547
+ "application/json": components["schemas"]["Error"];
25548
+ };
25549
+ };
25550
+ };
25551
+ };
25552
+ put?: never;
25553
+ post?: never;
25554
+ delete?: never;
25555
+ options?: never;
25556
+ head?: never;
25557
+ patch?: never;
25558
+ trace?: never;
25559
+ };
25560
+ "/v1/logs/context/{executionId}/blocks": {
25561
+ parameters: {
25562
+ query?: never;
25563
+ header?: never;
25564
+ path?: never;
25565
+ cookie?: never;
25566
+ };
25567
+ /**
25568
+ * Captured text of context blocks
25569
+ * @description Returns the captured text of the requested context blocks by manifest hash. A block whose text was not captured (logging policy, capture budget, or an older run) is omitted.
25570
+ */
25571
+ get: {
25572
+ parameters: {
25573
+ query: {
25574
+ /** @description Comma-separated manifest entry hashes, 1 to 50. */
25575
+ hashes: string;
25576
+ };
25577
+ header?: never;
25578
+ path: {
25579
+ /** @description Runtime execution_id to read (for example exec_...), not the aex_... agent-execution row ID */
25580
+ executionId: string;
25581
+ };
25582
+ cookie?: never;
25583
+ };
25584
+ requestBody?: never;
25585
+ responses: {
25586
+ /** @description Block text returned */
25587
+ 200: {
25588
+ headers: {
25589
+ [name: string]: unknown;
25590
+ };
25591
+ content: {
25592
+ "application/json": {
25593
+ data: components["schemas"]["ContextBlocks"];
25594
+ success: boolean;
25595
+ };
25596
+ };
25597
+ };
25598
+ /** @description Invalid request */
25599
+ 400: {
25600
+ headers: {
25601
+ [name: string]: unknown;
25602
+ };
25603
+ content: {
25604
+ "application/json": components["schemas"]["Error"];
25605
+ };
25606
+ };
25607
+ /** @description Unauthorized */
25608
+ 401: {
25609
+ headers: {
25610
+ [name: string]: unknown;
25611
+ };
25612
+ content: {
25613
+ "application/json": components["schemas"]["Error"];
25614
+ };
25615
+ };
25616
+ /** @description No trace for this execution */
25617
+ 404: {
25618
+ headers: {
25619
+ [name: string]: unknown;
25620
+ };
25621
+ content: {
25622
+ "application/json": components["schemas"]["Error"];
25623
+ };
25624
+ };
25625
+ /** @description Internal server error */
25626
+ 500: {
25627
+ headers: {
25628
+ [name: string]: unknown;
25629
+ };
25630
+ content: {
25631
+ "application/json": components["schemas"]["Error"];
25632
+ };
25633
+ };
25634
+ };
25635
+ };
25636
+ put?: never;
25637
+ post?: never;
25638
+ delete?: never;
25639
+ options?: never;
25640
+ head?: never;
25641
+ patch?: never;
25642
+ trace?: never;
25643
+ };
25384
25644
  "/v1/logs/entry": {
25385
25645
  parameters: {
25386
25646
  query?: never;
@@ -25442,6 +25702,15 @@ interface paths {
25442
25702
  "application/json": components["schemas"]["Error"];
25443
25703
  };
25444
25704
  };
25705
+ /** @description API key lacks a read scope (FLOWS:READ, AGENTS:READ or ANALYTICS:READ) */
25706
+ 403: {
25707
+ headers: {
25708
+ [name: string]: unknown;
25709
+ };
25710
+ content: {
25711
+ "application/json": components["schemas"]["Error"];
25712
+ };
25713
+ };
25445
25714
  /** @description Internal server error */
25446
25715
  500: {
25447
25716
  headers: {
@@ -25596,6 +25865,15 @@ interface paths {
25596
25865
  };
25597
25866
  };
25598
25867
  };
25868
+ /** @description API key lacks a read scope (FLOWS:READ, AGENTS:READ or ANALYTICS:READ) */
25869
+ 403: {
25870
+ headers: {
25871
+ [name: string]: unknown;
25872
+ };
25873
+ content: {
25874
+ "application/json": components["schemas"]["Error"];
25875
+ };
25876
+ };
25599
25877
  /** @description Internal server error */
25600
25878
  500: {
25601
25879
  headers: {
@@ -25677,6 +25955,15 @@ interface paths {
25677
25955
  "application/json": components["schemas"]["Error"];
25678
25956
  };
25679
25957
  };
25958
+ /** @description API key lacks a read scope (FLOWS:READ, AGENTS:READ or ANALYTICS:READ) */
25959
+ 403: {
25960
+ headers: {
25961
+ [name: string]: unknown;
25962
+ };
25963
+ content: {
25964
+ "application/json": components["schemas"]["Error"];
25965
+ };
25966
+ };
25680
25967
  /** @description Internal server error */
25681
25968
  500: {
25682
25969
  headers: {
@@ -25749,6 +26036,15 @@ interface paths {
25749
26036
  "application/json": components["schemas"]["Error"];
25750
26037
  };
25751
26038
  };
26039
+ /** @description API key lacks a read scope (FLOWS:READ, AGENTS:READ or ANALYTICS:READ) */
26040
+ 403: {
26041
+ headers: {
26042
+ [name: string]: unknown;
26043
+ };
26044
+ content: {
26045
+ "application/json": components["schemas"]["Error"];
26046
+ };
26047
+ };
25752
26048
  /** @description Internal server error */
25753
26049
  500: {
25754
26050
  headers: {
@@ -25829,6 +26125,15 @@ interface paths {
25829
26125
  "application/json": components["schemas"]["Error"];
25830
26126
  };
25831
26127
  };
26128
+ /** @description API key lacks a read scope (FLOWS:READ, AGENTS:READ or ANALYTICS:READ) */
26129
+ 403: {
26130
+ headers: {
26131
+ [name: string]: unknown;
26132
+ };
26133
+ content: {
26134
+ "application/json": components["schemas"]["Error"];
26135
+ };
26136
+ };
25832
26137
  /** @description Internal server error */
25833
26138
  500: {
25834
26139
  headers: {
@@ -29746,6 +30051,8 @@ interface paths {
29746
30051
  y: number;
29747
30052
  };
29748
30053
  };
30054
+ /** @description Product Canvas blocks in page order. Entries merge with the stored ones by id; stored entries the request leaves out are kept after the sent ones. Saving the description or stack stamps the overview block, saving the linked docs stamps the docs block, and a changed config stamps its own block. */
30055
+ blocks?: components["schemas"]["ProductCanvasBlock"][];
29749
30056
  capabilityOrder?: string[];
29750
30057
  capabilityPositions?: {
29751
30058
  [key: string]: number;
@@ -29815,7 +30122,10 @@ interface paths {
29815
30122
  internalDocs?: {
29816
30123
  content?: string;
29817
30124
  resources?: {
30125
+ addedAt?: string;
30126
+ addedByUserId?: string;
29818
30127
  content?: string;
30128
+ source?: string;
29819
30129
  title: string;
29820
30130
  type: string;
29821
30131
  url?: string;
@@ -29826,6 +30136,7 @@ interface paths {
29826
30136
  productGoal?: string;
29827
30137
  /** @enum {string} */
29828
30138
  productStage?: "idea" | "prototype" | "beta" | "production" | "scaling";
30139
+ stack?: components["schemas"]["ProductStack"];
29829
30140
  targetAudience?: string;
29830
30141
  techStack?: {
29831
30142
  backend?: string[];
@@ -29930,7 +30241,7 @@ interface paths {
29930
30241
  put?: never;
29931
30242
  /**
29932
30243
  * Assemble product from FPO
29933
- * @description Assemble a product from a validated Full Product Object (FPO). Materializes secret bindings, so API keys must carry the SECRETS:WRITE permission.
30244
+ * @description Assemble a product from a validated Full Product Object (FPO). API keys must carry PRODUCTS:WRITE (or PRODUCTS:CREATE) and SECRETS:WRITE, plus the write scope for every entity kind the FPO materializes (FLOWS:WRITE, AGENTS:WRITE, SCHEDULES:WRITE, RECORDS:WRITE, EVALS:WRITE, SKILLS:WRITE), and SECRETS:READ when an inline HTTP step references a managed secret.
29934
30245
  */
29935
30246
  post: {
29936
30247
  parameters: {
@@ -29998,7 +30309,7 @@ interface paths {
29998
30309
  "application/json": components["schemas"]["Error"];
29999
30310
  };
30000
30311
  };
30001
- /** @description Insufficient permissions (SECRETS:WRITE required) */
30312
+ /** @description Insufficient permissions for the entities this FPO materializes */
30002
30313
  403: {
30003
30314
  headers: {
30004
30315
  [name: string]: unknown;
@@ -30078,7 +30389,10 @@ interface paths {
30078
30389
  internalDocs?: {
30079
30390
  content?: string;
30080
30391
  resources?: {
30392
+ addedAt?: string;
30393
+ addedByUserId?: string;
30081
30394
  content?: string;
30395
+ source?: string;
30082
30396
  title: string;
30083
30397
  type: string;
30084
30398
  url?: string;
@@ -30192,7 +30506,7 @@ interface paths {
30192
30506
  put?: never;
30193
30507
  /**
30194
30508
  * Ensure full product (config-as-code converge of the whole FPO)
30195
- * @description Idempotently converge an entire Full Product Object (the nested product graph) in one shot. Fans out to the per-entity ensure services in dependency order (product → capability backing flows/agents → capability-as-tool composition → capability links → surfaces + surface items → records → schedules → secret bindings), returning a per-entity report. Identity is the product name + account scope. NON-atomic by design: a per-entity failure is reported in `entities[].result = "failed"` (and `hasFailures`) and a re-run self-heals; only a top-level product reject aborts. Set dryRun to plan without writing. Set prune to remove product-scoped capabilities/surfaces (and their items) absent from the FPO (account-scoped flows/agents/tools/records are never removed). Whole-FPO fast-probe is not yet supported (PR3).
30509
+ * @description Idempotently converge an entire Full Product Object (the nested product graph) in one shot. Fans out to the per-entity ensure services in dependency order (product → capability backing flows/agents → capability-as-tool composition → capability links → surfaces + surface items → records → schedules → secret bindings), returning a per-entity report. Identity is the product name + account scope. NON-atomic by design: a per-entity failure is reported in `entities[].result = "failed"` (and `hasFailures`) and a re-run self-heals; only a top-level product reject aborts. Set dryRun to plan without writing. Set prune to remove product-scoped capabilities/surfaces (and their items) absent from the FPO (account-scoped flows/agents/tools/records are never removed). Whole-FPO fast-probe is not yet supported (PR3). API keys converge each nested flow, agent, schedule, record, eval suite and skill only with that entity kind's own write scope (FLOWS:WRITE, AGENTS:WRITE or AGENTS:CREATE/UPDATE, SCHEDULES:WRITE, RECORDS:WRITE, EVALS:WRITE, SKILLS:WRITE) on top of the product scope; otherwise that entity reports `failed`. Binding a skill to an agent also needs agent update scope. Schedules also honor the plan's active-schedule limit and minimum frequency.
30196
30510
  */
30197
30511
  post: {
30198
30512
  parameters: {
@@ -30378,7 +30692,7 @@ interface paths {
30378
30692
  };
30379
30693
  /**
30380
30694
  * Pull full product (reconstruct the whole FPO from the live graph)
30381
- * @description Reconstruct a self-contained Full Product Object from the live product graph — the absorb-drift direction of ensure-fpo. Composes the per-entity pulls (product, backing flows/agents, surfaces) and mints deterministic FPO-local ids, so feeding the result back into POST /products/ensure-fpo converges to `unchanged`. records/schedules/secrets are NOT reconstructed and `tools` is emitted empty (tool refs are portable `tool:<name>`); see `warnings` for per-pull caveats. The contentHash is recomputed from the live graph, so it is accurate immediately after a dashboard edit.
30695
+ * @description Reconstruct a self-contained Full Product Object from the live product graph — the absorb-drift direction of ensure-fpo. Composes the per-entity pulls (product, backing flows/agents, surfaces) and mints deterministic FPO-local ids, so feeding the result back into POST /products/ensure-fpo converges to `unchanged`. records/schedules/secrets are NOT reconstructed and `tools` is emitted empty (tool refs are portable `tool:<name>`); see `warnings` for per-pull caveats. The contentHash is recomputed from the live graph, so it is accurate immediately after a dashboard edit. API keys need PRODUCTS:READ, plus FLOWS:READ, AGENTS:READ, SCHEDULES:READ, EVALS:READ or SKILLS:READ for each section the product carries.
30382
30696
  */
30383
30697
  get: {
30384
30698
  parameters: {
@@ -30482,6 +30796,8 @@ interface paths {
30482
30796
  configurationStatus?: unknown;
30483
30797
  configurationUrl?: string | null;
30484
30798
  createdAt: string;
30799
+ /** @description Who created the product; attribution only, never who owns or runs it (the organization does) */
30800
+ createdByUserId: string | null;
30485
30801
  dashboardUrl?: string;
30486
30802
  description: string | null;
30487
30803
  editorContext?: {
@@ -30490,10 +30806,24 @@ interface paths {
30490
30806
  };
30491
30807
  flowStepsMap: {
30492
30808
  [key: string]: {
30809
+ /** @description The stored step id, stable across reorders; absent when the step has none */
30810
+ id?: string;
30493
30811
  name: string;
30494
30812
  type: string;
30495
30813
  }[];
30496
30814
  };
30815
+ /** @description Published version id per capability flow or agent id; null when never published */
30816
+ publishedVersionIds?: {
30817
+ [key: string]: string | null;
30818
+ };
30819
+ /** @description Tool ids from each capability agent config (tools.toolIds) */
30820
+ toolIdsByAgent?: {
30821
+ [key: string]: string[];
30822
+ };
30823
+ /** @description Tool ids attached to the prompt steps of each capability flow */
30824
+ toolIdsByFlow?: {
30825
+ [key: string]: string[];
30826
+ };
30497
30827
  };
30498
30828
  icon: string | null;
30499
30829
  id: string;
@@ -30566,6 +30896,8 @@ interface paths {
30566
30896
  y: number;
30567
30897
  };
30568
30898
  };
30899
+ /** @description Product Canvas blocks in page order. Entries merge with the stored ones by id; stored entries the request leaves out are kept after the sent ones. Saving the description or stack stamps the overview block, saving the linked docs stamps the docs block, and a changed config stamps its own block. */
30900
+ blocks?: components["schemas"]["ProductCanvasBlock"][];
30569
30901
  capabilityOrder?: string[];
30570
30902
  capabilityPositions?: {
30571
30903
  [key: string]: number;
@@ -30635,7 +30967,10 @@ interface paths {
30635
30967
  internalDocs?: {
30636
30968
  content?: string;
30637
30969
  resources?: {
30970
+ addedAt?: string;
30971
+ addedByUserId?: string;
30638
30972
  content?: string;
30973
+ source?: string;
30639
30974
  title: string;
30640
30975
  type: string;
30641
30976
  url?: string;
@@ -30646,6 +30981,7 @@ interface paths {
30646
30981
  productGoal?: string;
30647
30982
  /** @enum {string} */
30648
30983
  productStage?: "idea" | "prototype" | "beta" | "production" | "scaling";
30984
+ stack?: components["schemas"]["ProductStack"];
30649
30985
  targetAudience?: string;
30650
30986
  techStack?: {
30651
30987
  backend?: string[];
@@ -31467,7 +31803,7 @@ interface paths {
31467
31803
  patch?: never;
31468
31804
  trace?: never;
31469
31805
  };
31470
- "/v1/products/{id}/configuration": {
31806
+ "/v1/products/{id}/comments": {
31471
31807
  parameters: {
31472
31808
  query?: never;
31473
31809
  header?: never;
@@ -31475,12 +31811,21 @@ interface paths {
31475
31811
  cookie?: never;
31476
31812
  };
31477
31813
  /**
31478
- * Get product configuration summary
31479
- * @description Get the secret configuration summary for a product. Never returns secret values — used to decide whether to show a "Configure secrets" prompt.
31814
+ * List product comments
31815
+ * @description List the comment threads on a product's canvas with their messages. Threads belong to the product's organization; a personal account's product has none.
31480
31816
  */
31481
31817
  get: {
31482
31818
  parameters: {
31483
- query?: never;
31819
+ query?: {
31820
+ /** @description Which threads to list; defaults to `all` */
31821
+ status?: "open" | "resolved" | "all";
31822
+ /** @description The newest threads to return, at most 500 (the default) */
31823
+ limit?: number;
31824
+ /** @description The `nextCursor` of the previous page: lists the threads older than that page */
31825
+ cursor?: string;
31826
+ /** @description Comma-separated thread ids, at most `limit` of them: lists only those threads, in their current state */
31827
+ ids?: string;
31828
+ };
31484
31829
  header?: never;
31485
31830
  path: {
31486
31831
  id: string;
@@ -31489,44 +31834,16 @@ interface paths {
31489
31834
  };
31490
31835
  requestBody?: never;
31491
31836
  responses: {
31492
- /** @description Configuration summary */
31837
+ /** @description Comment threads */
31493
31838
  200: {
31494
31839
  headers: {
31495
31840
  [name: string]: unknown;
31496
31841
  };
31497
31842
  content: {
31498
- "application/json": {
31499
- /** @enum {string} */
31500
- configurationStatus: "configured" | "needs_configuration" | "invalid";
31501
- configurationUrl: string;
31502
- handoff?: {
31503
- expiresAt?: string;
31504
- /** @enum {string} */
31505
- type: "url";
31506
- url: string;
31507
- };
31508
- pendingConfigurationCount: number;
31509
- productId: string;
31510
- productName: string;
31511
- requirements: {
31512
- description?: string | null;
31513
- displayName?: string | null;
31514
- docsUrl?: string;
31515
- helpText?: string;
31516
- itemId: string;
31517
- placeholder?: string;
31518
- /** @default true */
31519
- required: boolean;
31520
- secretId?: string;
31521
- secretKey: string;
31522
- /** @enum {string} */
31523
- status: "configured" | "needs_configuration" | "invalid";
31524
- version?: number;
31525
- }[];
31526
- };
31843
+ "application/json": components["schemas"]["ListProductCommentsResponse"];
31527
31844
  };
31528
31845
  };
31529
- /** @description Invalid product ID */
31846
+ /** @description Validation error */
31530
31847
  400: {
31531
31848
  headers: {
31532
31849
  [name: string]: unknown;
@@ -31544,237 +31861,8 @@ interface paths {
31544
31861
  "application/json": components["schemas"]["Error"];
31545
31862
  };
31546
31863
  };
31547
- /** @description Product not found */
31548
- 404: {
31549
- headers: {
31550
- [name: string]: unknown;
31551
- };
31552
- content: {
31553
- "application/json": components["schemas"]["Error"];
31554
- };
31555
- };
31556
- /** @description Internal server error */
31557
- 500: {
31558
- headers: {
31559
- [name: string]: unknown;
31560
- };
31561
- content: {
31562
- "application/json": components["schemas"]["Error"];
31563
- };
31564
- };
31565
- };
31566
- };
31567
- put?: never;
31568
- post?: never;
31569
- delete?: never;
31570
- options?: never;
31571
- head?: never;
31572
- patch?: never;
31573
- trace?: never;
31574
- };
31575
- "/v1/products/{id}/setup": {
31576
- parameters: {
31577
- query?: never;
31578
- header?: never;
31579
- path?: never;
31580
- cookie?: never;
31581
- };
31582
- /**
31583
- * Get product setup readiness
31584
- * @description Get structured, headless-first next steps to make a product live: pending secrets plus every surface's install steps, folded into a product-level readiness result. A sibling of the secrets-only configuration endpoint.
31585
- */
31586
- get: {
31587
- parameters: {
31588
- query?: never;
31589
- header?: never;
31590
- path: {
31591
- id: string;
31592
- };
31593
- cookie?: never;
31594
- };
31595
- requestBody?: never;
31596
- responses: {
31597
- /** @description Product setup readiness */
31598
- 200: {
31599
- headers: {
31600
- [name: string]: unknown;
31601
- };
31602
- content: {
31603
- "application/json": {
31604
- handoff?: {
31605
- reason: string;
31606
- /** @enum {string} */
31607
- rung: "browser";
31608
- summary: string;
31609
- url: string;
31610
- };
31611
- pendingCount: number;
31612
- productId: string;
31613
- productName: string;
31614
- /** @enum {string} */
31615
- state: "ready" | "needs_setup";
31616
- steps: {
31617
- alternatives?: ({
31618
- args: {
31619
- [key: string]: unknown;
31620
- };
31621
- pendingArgs?: {
31622
- [key: string]: string;
31623
- };
31624
- /** @enum {string} */
31625
- rung: "mcp_tool";
31626
- summary: string;
31627
- tool: string;
31628
- } | {
31629
- endpoint: string;
31630
- /** @enum {string} */
31631
- method: "PATCH" | "POST" | "PUT";
31632
- /** @enum {string} */
31633
- rung: "rest";
31634
- summary: string;
31635
- } | {
31636
- reason: string;
31637
- /** @enum {string} */
31638
- rung: "browser";
31639
- summary: string;
31640
- url: string;
31641
- } | {
31642
- /** @enum {string} */
31643
- rung: "satisfied";
31644
- })[];
31645
- docsUrl?: string;
31646
- fulfillment: {
31647
- args: {
31648
- [key: string]: unknown;
31649
- };
31650
- pendingArgs?: {
31651
- [key: string]: string;
31652
- };
31653
- /** @enum {string} */
31654
- rung: "mcp_tool";
31655
- summary: string;
31656
- tool: string;
31657
- } | {
31658
- endpoint: string;
31659
- /** @enum {string} */
31660
- method: "PATCH" | "POST" | "PUT";
31661
- /** @enum {string} */
31662
- rung: "rest";
31663
- summary: string;
31664
- } | {
31665
- reason: string;
31666
- /** @enum {string} */
31667
- rung: "browser";
31668
- summary: string;
31669
- url: string;
31670
- } | {
31671
- /** @enum {string} */
31672
- rung: "satisfied";
31673
- };
31674
- helpText?: string;
31675
- id: string;
31676
- /** @enum {string} */
31677
- kind: "secret" | "surface_install";
31678
- required: boolean;
31679
- secretKey?: string;
31680
- /** @enum {string} */
31681
- status: "satisfied" | "pending";
31682
- surfaceId?: string;
31683
- surfaceType?: string;
31684
- title: string;
31685
- }[];
31686
- surfaces: {
31687
- name: string;
31688
- pendingCount: number;
31689
- /** @enum {string} */
31690
- state: "ready" | "needs_setup";
31691
- steps: {
31692
- alternatives?: ({
31693
- args: {
31694
- [key: string]: unknown;
31695
- };
31696
- pendingArgs?: {
31697
- [key: string]: string;
31698
- };
31699
- /** @enum {string} */
31700
- rung: "mcp_tool";
31701
- summary: string;
31702
- tool: string;
31703
- } | {
31704
- endpoint: string;
31705
- /** @enum {string} */
31706
- method: "PATCH" | "POST" | "PUT";
31707
- /** @enum {string} */
31708
- rung: "rest";
31709
- summary: string;
31710
- } | {
31711
- reason: string;
31712
- /** @enum {string} */
31713
- rung: "browser";
31714
- summary: string;
31715
- url: string;
31716
- } | {
31717
- /** @enum {string} */
31718
- rung: "satisfied";
31719
- })[];
31720
- docsUrl?: string;
31721
- fulfillment: {
31722
- args: {
31723
- [key: string]: unknown;
31724
- };
31725
- pendingArgs?: {
31726
- [key: string]: string;
31727
- };
31728
- /** @enum {string} */
31729
- rung: "mcp_tool";
31730
- summary: string;
31731
- tool: string;
31732
- } | {
31733
- endpoint: string;
31734
- /** @enum {string} */
31735
- method: "PATCH" | "POST" | "PUT";
31736
- /** @enum {string} */
31737
- rung: "rest";
31738
- summary: string;
31739
- } | {
31740
- reason: string;
31741
- /** @enum {string} */
31742
- rung: "browser";
31743
- summary: string;
31744
- url: string;
31745
- } | {
31746
- /** @enum {string} */
31747
- rung: "satisfied";
31748
- };
31749
- helpText?: string;
31750
- id: string;
31751
- /** @enum {string} */
31752
- kind: "secret" | "surface_install";
31753
- required: boolean;
31754
- secretKey?: string;
31755
- /** @enum {string} */
31756
- status: "satisfied" | "pending";
31757
- surfaceId?: string;
31758
- surfaceType?: string;
31759
- title: string;
31760
- }[];
31761
- surfaceId: string;
31762
- surfaceType: string;
31763
- }[];
31764
- };
31765
- };
31766
- };
31767
- /** @description Invalid product ID */
31768
- 400: {
31769
- headers: {
31770
- [name: string]: unknown;
31771
- };
31772
- content: {
31773
- "application/json": components["schemas"]["Error"];
31774
- };
31775
- };
31776
- /** @description Unauthorized */
31777
- 401: {
31864
+ /** @description Insufficient permissions */
31865
+ 403: {
31778
31866
  headers: {
31779
31867
  [name: string]: unknown;
31780
31868
  };
@@ -31803,6 +31891,695 @@ interface paths {
31803
31891
  };
31804
31892
  };
31805
31893
  put?: never;
31894
+ /**
31895
+ * Start a product comment thread
31896
+ * @description Start a comment thread on one element of the product canvas with its first comment. The author is the caller's credential.
31897
+ */
31898
+ post: {
31899
+ parameters: {
31900
+ query?: never;
31901
+ header?: never;
31902
+ path: {
31903
+ id: string;
31904
+ };
31905
+ cookie?: never;
31906
+ };
31907
+ requestBody: {
31908
+ content: {
31909
+ "application/json": components["schemas"]["CreateProductCommentThreadRequest"];
31910
+ };
31911
+ };
31912
+ responses: {
31913
+ /** @description Thread started */
31914
+ 201: {
31915
+ headers: {
31916
+ [name: string]: unknown;
31917
+ };
31918
+ content: {
31919
+ "application/json": components["schemas"]["ProductCommentThread"];
31920
+ };
31921
+ };
31922
+ /** @description Validation error */
31923
+ 400: {
31924
+ headers: {
31925
+ [name: string]: unknown;
31926
+ };
31927
+ content: {
31928
+ "application/json": components["schemas"]["Error"];
31929
+ };
31930
+ };
31931
+ /** @description Unauthorized */
31932
+ 401: {
31933
+ headers: {
31934
+ [name: string]: unknown;
31935
+ };
31936
+ content: {
31937
+ "application/json": components["schemas"]["Error"];
31938
+ };
31939
+ };
31940
+ /** @description Insufficient permissions */
31941
+ 403: {
31942
+ headers: {
31943
+ [name: string]: unknown;
31944
+ };
31945
+ content: {
31946
+ "application/json": components["schemas"]["Error"];
31947
+ };
31948
+ };
31949
+ /** @description Product not found */
31950
+ 404: {
31951
+ headers: {
31952
+ [name: string]: unknown;
31953
+ };
31954
+ content: {
31955
+ "application/json": components["schemas"]["Error"];
31956
+ };
31957
+ };
31958
+ /** @description Internal server error */
31959
+ 500: {
31960
+ headers: {
31961
+ [name: string]: unknown;
31962
+ };
31963
+ content: {
31964
+ "application/json": components["schemas"]["Error"];
31965
+ };
31966
+ };
31967
+ };
31968
+ };
31969
+ delete?: never;
31970
+ options?: never;
31971
+ head?: never;
31972
+ patch?: never;
31973
+ trace?: never;
31974
+ };
31975
+ "/v1/products/{id}/comments/threads/{threadId}": {
31976
+ parameters: {
31977
+ query?: never;
31978
+ header?: never;
31979
+ path?: never;
31980
+ cookie?: never;
31981
+ };
31982
+ get?: never;
31983
+ put?: never;
31984
+ post?: never;
31985
+ delete?: never;
31986
+ options?: never;
31987
+ head?: never;
31988
+ /**
31989
+ * Resolve a product comment thread
31990
+ * @description Resolve a thread, recording who resolved it and when, or open it again. Setting the state it already has changes nothing.
31991
+ */
31992
+ patch: {
31993
+ parameters: {
31994
+ query?: never;
31995
+ header?: never;
31996
+ path: {
31997
+ id: string;
31998
+ threadId: string;
31999
+ };
32000
+ cookie?: never;
32001
+ };
32002
+ requestBody: {
32003
+ content: {
32004
+ "application/json": components["schemas"]["UpdateProductCommentThreadRequest"];
32005
+ };
32006
+ };
32007
+ responses: {
32008
+ /** @description Thread updated */
32009
+ 200: {
32010
+ headers: {
32011
+ [name: string]: unknown;
32012
+ };
32013
+ content: {
32014
+ "application/json": components["schemas"]["ProductCommentThread"];
32015
+ };
32016
+ };
32017
+ /** @description Validation error */
32018
+ 400: {
32019
+ headers: {
32020
+ [name: string]: unknown;
32021
+ };
32022
+ content: {
32023
+ "application/json": components["schemas"]["Error"];
32024
+ };
32025
+ };
32026
+ /** @description Unauthorized */
32027
+ 401: {
32028
+ headers: {
32029
+ [name: string]: unknown;
32030
+ };
32031
+ content: {
32032
+ "application/json": components["schemas"]["Error"];
32033
+ };
32034
+ };
32035
+ /** @description Insufficient permissions */
32036
+ 403: {
32037
+ headers: {
32038
+ [name: string]: unknown;
32039
+ };
32040
+ content: {
32041
+ "application/json": components["schemas"]["Error"];
32042
+ };
32043
+ };
32044
+ /** @description Product or thread not found */
32045
+ 404: {
32046
+ headers: {
32047
+ [name: string]: unknown;
32048
+ };
32049
+ content: {
32050
+ "application/json": components["schemas"]["Error"];
32051
+ };
32052
+ };
32053
+ /** @description Internal server error */
32054
+ 500: {
32055
+ headers: {
32056
+ [name: string]: unknown;
32057
+ };
32058
+ content: {
32059
+ "application/json": components["schemas"]["Error"];
32060
+ };
32061
+ };
32062
+ };
32063
+ };
32064
+ trace?: never;
32065
+ };
32066
+ "/v1/products/{id}/comments/threads/{threadId}/messages": {
32067
+ parameters: {
32068
+ query?: never;
32069
+ header?: never;
32070
+ path?: never;
32071
+ cookie?: never;
32072
+ };
32073
+ get?: never;
32074
+ put?: never;
32075
+ /**
32076
+ * Reply in a product comment thread
32077
+ * @description Add a comment to a thread, resolved or not. `authorKind: assistant` posts the Assistant's answer to an `@assistant` mention, relayed by the caller's client.
32078
+ */
32079
+ post: {
32080
+ parameters: {
32081
+ query?: never;
32082
+ header?: never;
32083
+ path: {
32084
+ id: string;
32085
+ threadId: string;
32086
+ };
32087
+ cookie?: never;
32088
+ };
32089
+ requestBody: {
32090
+ content: {
32091
+ "application/json": components["schemas"]["CreateProductCommentRequest"];
32092
+ };
32093
+ };
32094
+ responses: {
32095
+ /** @description Comment added */
32096
+ 201: {
32097
+ headers: {
32098
+ [name: string]: unknown;
32099
+ };
32100
+ content: {
32101
+ "application/json": components["schemas"]["ProductComment"];
32102
+ };
32103
+ };
32104
+ /** @description Validation error */
32105
+ 400: {
32106
+ headers: {
32107
+ [name: string]: unknown;
32108
+ };
32109
+ content: {
32110
+ "application/json": components["schemas"]["Error"];
32111
+ };
32112
+ };
32113
+ /** @description Unauthorized */
32114
+ 401: {
32115
+ headers: {
32116
+ [name: string]: unknown;
32117
+ };
32118
+ content: {
32119
+ "application/json": components["schemas"]["Error"];
32120
+ };
32121
+ };
32122
+ /** @description Insufficient permissions */
32123
+ 403: {
32124
+ headers: {
32125
+ [name: string]: unknown;
32126
+ };
32127
+ content: {
32128
+ "application/json": components["schemas"]["Error"];
32129
+ };
32130
+ };
32131
+ /** @description Product or thread not found */
32132
+ 404: {
32133
+ headers: {
32134
+ [name: string]: unknown;
32135
+ };
32136
+ content: {
32137
+ "application/json": components["schemas"]["Error"];
32138
+ };
32139
+ };
32140
+ /** @description Internal server error */
32141
+ 500: {
32142
+ headers: {
32143
+ [name: string]: unknown;
32144
+ };
32145
+ content: {
32146
+ "application/json": components["schemas"]["Error"];
32147
+ };
32148
+ };
32149
+ };
32150
+ };
32151
+ delete?: never;
32152
+ options?: never;
32153
+ head?: never;
32154
+ patch?: never;
32155
+ trace?: never;
32156
+ };
32157
+ "/v1/products/{id}/configuration": {
32158
+ parameters: {
32159
+ query?: never;
32160
+ header?: never;
32161
+ path?: never;
32162
+ cookie?: never;
32163
+ };
32164
+ /**
32165
+ * Get product configuration summary
32166
+ * @description Get the secret configuration summary for a product. Never returns secret values — used to decide whether to show a "Configure secrets" prompt.
32167
+ */
32168
+ get: {
32169
+ parameters: {
32170
+ query?: never;
32171
+ header?: never;
32172
+ path: {
32173
+ id: string;
32174
+ };
32175
+ cookie?: never;
32176
+ };
32177
+ requestBody?: never;
32178
+ responses: {
32179
+ /** @description Configuration summary */
32180
+ 200: {
32181
+ headers: {
32182
+ [name: string]: unknown;
32183
+ };
32184
+ content: {
32185
+ "application/json": {
32186
+ /** @enum {string} */
32187
+ configurationStatus: "configured" | "needs_configuration" | "invalid";
32188
+ configurationUrl: string;
32189
+ handoff?: {
32190
+ expiresAt?: string;
32191
+ /** @enum {string} */
32192
+ type: "url";
32193
+ url: string;
32194
+ };
32195
+ pendingConfigurationCount: number;
32196
+ productId: string;
32197
+ productName: string;
32198
+ requirements: {
32199
+ description?: string | null;
32200
+ displayName?: string | null;
32201
+ docsUrl?: string;
32202
+ helpText?: string;
32203
+ itemId: string;
32204
+ placeholder?: string;
32205
+ /** @default true */
32206
+ required: boolean;
32207
+ secretId?: string;
32208
+ secretKey: string;
32209
+ /** @enum {string} */
32210
+ status: "configured" | "needs_configuration" | "invalid";
32211
+ version?: number;
32212
+ }[];
32213
+ };
32214
+ };
32215
+ };
32216
+ /** @description Invalid product ID */
32217
+ 400: {
32218
+ headers: {
32219
+ [name: string]: unknown;
32220
+ };
32221
+ content: {
32222
+ "application/json": components["schemas"]["Error"];
32223
+ };
32224
+ };
32225
+ /** @description Unauthorized */
32226
+ 401: {
32227
+ headers: {
32228
+ [name: string]: unknown;
32229
+ };
32230
+ content: {
32231
+ "application/json": components["schemas"]["Error"];
32232
+ };
32233
+ };
32234
+ /** @description Product not found */
32235
+ 404: {
32236
+ headers: {
32237
+ [name: string]: unknown;
32238
+ };
32239
+ content: {
32240
+ "application/json": components["schemas"]["Error"];
32241
+ };
32242
+ };
32243
+ /** @description Internal server error */
32244
+ 500: {
32245
+ headers: {
32246
+ [name: string]: unknown;
32247
+ };
32248
+ content: {
32249
+ "application/json": components["schemas"]["Error"];
32250
+ };
32251
+ };
32252
+ };
32253
+ };
32254
+ put?: never;
32255
+ post?: never;
32256
+ delete?: never;
32257
+ options?: never;
32258
+ head?: never;
32259
+ patch?: never;
32260
+ trace?: never;
32261
+ };
32262
+ "/v1/products/{id}/setup": {
32263
+ parameters: {
32264
+ query?: never;
32265
+ header?: never;
32266
+ path?: never;
32267
+ cookie?: never;
32268
+ };
32269
+ /**
32270
+ * Get product setup readiness
32271
+ * @description Get structured, headless-first next steps to make a product live: pending secrets plus every surface's install steps, folded into a product-level readiness result. A sibling of the secrets-only configuration endpoint.
32272
+ */
32273
+ get: {
32274
+ parameters: {
32275
+ query?: never;
32276
+ header?: never;
32277
+ path: {
32278
+ id: string;
32279
+ };
32280
+ cookie?: never;
32281
+ };
32282
+ requestBody?: never;
32283
+ responses: {
32284
+ /** @description Product setup readiness */
32285
+ 200: {
32286
+ headers: {
32287
+ [name: string]: unknown;
32288
+ };
32289
+ content: {
32290
+ "application/json": {
32291
+ handoff?: {
32292
+ reason: string;
32293
+ /** @enum {string} */
32294
+ rung: "browser";
32295
+ summary: string;
32296
+ url: string;
32297
+ };
32298
+ pendingCount: number;
32299
+ productId: string;
32300
+ productName: string;
32301
+ /** @enum {string} */
32302
+ state: "ready" | "needs_setup";
32303
+ steps: {
32304
+ alternatives?: ({
32305
+ args: {
32306
+ [key: string]: unknown;
32307
+ };
32308
+ pendingArgs?: {
32309
+ [key: string]: string;
32310
+ };
32311
+ /** @enum {string} */
32312
+ rung: "mcp_tool";
32313
+ summary: string;
32314
+ tool: string;
32315
+ } | {
32316
+ endpoint: string;
32317
+ /** @enum {string} */
32318
+ method: "PATCH" | "POST" | "PUT";
32319
+ /** @enum {string} */
32320
+ rung: "rest";
32321
+ summary: string;
32322
+ } | {
32323
+ reason: string;
32324
+ /** @enum {string} */
32325
+ rung: "browser";
32326
+ summary: string;
32327
+ url: string;
32328
+ } | {
32329
+ /** @enum {string} */
32330
+ rung: "satisfied";
32331
+ })[];
32332
+ docsUrl?: string;
32333
+ fulfillment: {
32334
+ args: {
32335
+ [key: string]: unknown;
32336
+ };
32337
+ pendingArgs?: {
32338
+ [key: string]: string;
32339
+ };
32340
+ /** @enum {string} */
32341
+ rung: "mcp_tool";
32342
+ summary: string;
32343
+ tool: string;
32344
+ } | {
32345
+ endpoint: string;
32346
+ /** @enum {string} */
32347
+ method: "PATCH" | "POST" | "PUT";
32348
+ /** @enum {string} */
32349
+ rung: "rest";
32350
+ summary: string;
32351
+ } | {
32352
+ reason: string;
32353
+ /** @enum {string} */
32354
+ rung: "browser";
32355
+ summary: string;
32356
+ url: string;
32357
+ } | {
32358
+ /** @enum {string} */
32359
+ rung: "satisfied";
32360
+ };
32361
+ helpText?: string;
32362
+ id: string;
32363
+ /** @enum {string} */
32364
+ kind: "secret" | "surface_install";
32365
+ required: boolean;
32366
+ secretKey?: string;
32367
+ /** @enum {string} */
32368
+ status: "satisfied" | "pending";
32369
+ surfaceId?: string;
32370
+ surfaceType?: string;
32371
+ title: string;
32372
+ }[];
32373
+ surfaces: {
32374
+ name: string;
32375
+ pendingCount: number;
32376
+ /** @enum {string} */
32377
+ state: "ready" | "needs_setup";
32378
+ steps: {
32379
+ alternatives?: ({
32380
+ args: {
32381
+ [key: string]: unknown;
32382
+ };
32383
+ pendingArgs?: {
32384
+ [key: string]: string;
32385
+ };
32386
+ /** @enum {string} */
32387
+ rung: "mcp_tool";
32388
+ summary: string;
32389
+ tool: string;
32390
+ } | {
32391
+ endpoint: string;
32392
+ /** @enum {string} */
32393
+ method: "PATCH" | "POST" | "PUT";
32394
+ /** @enum {string} */
32395
+ rung: "rest";
32396
+ summary: string;
32397
+ } | {
32398
+ reason: string;
32399
+ /** @enum {string} */
32400
+ rung: "browser";
32401
+ summary: string;
32402
+ url: string;
32403
+ } | {
32404
+ /** @enum {string} */
32405
+ rung: "satisfied";
32406
+ })[];
32407
+ docsUrl?: string;
32408
+ fulfillment: {
32409
+ args: {
32410
+ [key: string]: unknown;
32411
+ };
32412
+ pendingArgs?: {
32413
+ [key: string]: string;
32414
+ };
32415
+ /** @enum {string} */
32416
+ rung: "mcp_tool";
32417
+ summary: string;
32418
+ tool: string;
32419
+ } | {
32420
+ endpoint: string;
32421
+ /** @enum {string} */
32422
+ method: "PATCH" | "POST" | "PUT";
32423
+ /** @enum {string} */
32424
+ rung: "rest";
32425
+ summary: string;
32426
+ } | {
32427
+ reason: string;
32428
+ /** @enum {string} */
32429
+ rung: "browser";
32430
+ summary: string;
32431
+ url: string;
32432
+ } | {
32433
+ /** @enum {string} */
32434
+ rung: "satisfied";
32435
+ };
32436
+ helpText?: string;
32437
+ id: string;
32438
+ /** @enum {string} */
32439
+ kind: "secret" | "surface_install";
32440
+ required: boolean;
32441
+ secretKey?: string;
32442
+ /** @enum {string} */
32443
+ status: "satisfied" | "pending";
32444
+ surfaceId?: string;
32445
+ surfaceType?: string;
32446
+ title: string;
32447
+ }[];
32448
+ surfaceId: string;
32449
+ surfaceType: string;
32450
+ }[];
32451
+ };
32452
+ };
32453
+ };
32454
+ /** @description Invalid product ID */
32455
+ 400: {
32456
+ headers: {
32457
+ [name: string]: unknown;
32458
+ };
32459
+ content: {
32460
+ "application/json": components["schemas"]["Error"];
32461
+ };
32462
+ };
32463
+ /** @description Unauthorized */
32464
+ 401: {
32465
+ headers: {
32466
+ [name: string]: unknown;
32467
+ };
32468
+ content: {
32469
+ "application/json": components["schemas"]["Error"];
32470
+ };
32471
+ };
32472
+ /** @description Product not found */
32473
+ 404: {
32474
+ headers: {
32475
+ [name: string]: unknown;
32476
+ };
32477
+ content: {
32478
+ "application/json": components["schemas"]["Error"];
32479
+ };
32480
+ };
32481
+ /** @description Internal server error */
32482
+ 500: {
32483
+ headers: {
32484
+ [name: string]: unknown;
32485
+ };
32486
+ content: {
32487
+ "application/json": components["schemas"]["Error"];
32488
+ };
32489
+ };
32490
+ };
32491
+ };
32492
+ put?: never;
32493
+ post?: never;
32494
+ delete?: never;
32495
+ options?: never;
32496
+ head?: never;
32497
+ patch?: never;
32498
+ trace?: never;
32499
+ };
32500
+ "/v1/products/{id}/stack/declared": {
32501
+ parameters: {
32502
+ query?: never;
32503
+ header?: never;
32504
+ path?: never;
32505
+ cookie?: never;
32506
+ };
32507
+ get?: never;
32508
+ /**
32509
+ * Declare product stack
32510
+ * @description Replace what one source declares the product is built on (frameworks, vector databases, upstream services, versions). The Overview shows declared items beside the ones detected from the product's own configuration. The actor is the caller's credential: a named API key reads as its name, anyone else by first name.
32511
+ */
32512
+ put: {
32513
+ parameters: {
32514
+ query?: never;
32515
+ header?: never;
32516
+ path: {
32517
+ id: string;
32518
+ };
32519
+ cookie?: never;
32520
+ };
32521
+ requestBody: {
32522
+ content: {
32523
+ "application/json": components["schemas"]["DeclareProductStackRequest"];
32524
+ };
32525
+ };
32526
+ responses: {
32527
+ /** @description Declaration stored */
32528
+ 200: {
32529
+ headers: {
32530
+ [name: string]: unknown;
32531
+ };
32532
+ content: {
32533
+ "application/json": components["schemas"]["DeclareProductStackResponse"];
32534
+ };
32535
+ };
32536
+ /** @description Validation error */
32537
+ 400: {
32538
+ headers: {
32539
+ [name: string]: unknown;
32540
+ };
32541
+ content: {
32542
+ "application/json": components["schemas"]["Error"];
32543
+ };
32544
+ };
32545
+ /** @description Unauthorized */
32546
+ 401: {
32547
+ headers: {
32548
+ [name: string]: unknown;
32549
+ };
32550
+ content: {
32551
+ "application/json": components["schemas"]["Error"];
32552
+ };
32553
+ };
32554
+ /** @description Insufficient permissions */
32555
+ 403: {
32556
+ headers: {
32557
+ [name: string]: unknown;
32558
+ };
32559
+ content: {
32560
+ "application/json": components["schemas"]["Error"];
32561
+ };
32562
+ };
32563
+ /** @description Product not found */
32564
+ 404: {
32565
+ headers: {
32566
+ [name: string]: unknown;
32567
+ };
32568
+ content: {
32569
+ "application/json": components["schemas"]["Error"];
32570
+ };
32571
+ };
32572
+ /** @description Internal server error */
32573
+ 500: {
32574
+ headers: {
32575
+ [name: string]: unknown;
32576
+ };
32577
+ content: {
32578
+ "application/json": components["schemas"]["Error"];
32579
+ };
32580
+ };
32581
+ };
32582
+ };
31806
32583
  post?: never;
31807
32584
  delete?: never;
31808
32585
  options?: never;
@@ -32317,6 +33094,7 @@ interface paths {
32317
33094
  scopes: string[];
32318
33095
  usageCount: number | null;
32319
33096
  }[];
33097
+ lastModifiedSource: string | null;
32320
33098
  name: string;
32321
33099
  outbound?: unknown;
32322
33100
  productId: string;
@@ -32381,15 +33159,228 @@ interface paths {
32381
33159
  };
32382
33160
  };
32383
33161
  /**
32384
- * Update surface
32385
- * @description Update an existing surface. Supports partial updates with shallow-merge for behavior.
33162
+ * Update surface
33163
+ * @description Update an existing surface. Supports partial updates with shallow-merge for behavior.
33164
+ */
33165
+ put: {
33166
+ parameters: {
33167
+ query?: never;
33168
+ header?: never;
33169
+ path: {
33170
+ id: string;
33171
+ surfaceId: string;
33172
+ };
33173
+ cookie?: never;
33174
+ };
33175
+ requestBody?: {
33176
+ content: {
33177
+ "application/json": {
33178
+ behavior?: unknown;
33179
+ config?: unknown;
33180
+ /** @description Inbound config. Slack, Telegram and iMessage accept channelResponseMode (mention, the default; always; or judge, which asks the platform response-gate judgment whether to reply and waits for a mention when the judgment fails), responseRules (free text up to 2000 characters the judgment reads), eagerness (conservative, balanced or eager), onUncertain (silent or reply), responseGateShadow (opt-in: judge and record without changing behavior in mention or always mode), keywords, channelOverrides (per-channel channelResponseMode and eagerness) and contextBackfill ({ mode: window (default), judged (only the messages the judgment finds relevant, falling back to window on failure) or none, maxMessages up to 20, maxAgeMinutes up to 1440 }). */
33181
+ inbound?: {
33182
+ [key: string]: unknown;
33183
+ };
33184
+ name?: string;
33185
+ outbound?: {
33186
+ [key: string]: unknown;
33187
+ };
33188
+ /** @enum {string} */
33189
+ status?: "draft" | "active" | "paused";
33190
+ };
33191
+ };
33192
+ };
33193
+ responses: {
33194
+ /** @description Surface updated */
33195
+ 200: {
33196
+ headers: {
33197
+ [name: string]: unknown;
33198
+ };
33199
+ content: {
33200
+ "application/json": {
33201
+ behavior?: unknown;
33202
+ createdAt: string;
33203
+ /** @description Canonical public URL of this surface (MCP, API, A2A, AG-UI, webhook, chat). Null for surface types reached through their own channels (Slack, email, schedule, ...). Clients should use this instead of constructing the URL themselves. */
33204
+ endpoint: string | null;
33205
+ id: string;
33206
+ inbound?: unknown;
33207
+ name: string;
33208
+ outbound?: unknown;
33209
+ productId: string;
33210
+ status: string;
33211
+ type: string;
33212
+ updatedAt: string;
33213
+ /** @description Advisory findings about this surface configuration. Present only when non-empty; never blocks the mutation. */
33214
+ warnings?: {
33215
+ /** @description Stable advisory code, e.g. `MODEL_NOT_ENABLED` when `behavior.conversationTitles.model` names a model this account cannot run. */
33216
+ code: string;
33217
+ message: string;
33218
+ path: string;
33219
+ /** @enum {string} */
33220
+ severity: "warning" | "recommendation";
33221
+ suggestedFix?: string;
33222
+ }[];
33223
+ webhookHealth: components["schemas"]["WebhookHealth"];
33224
+ };
33225
+ };
33226
+ };
33227
+ /** @description Validation error */
33228
+ 400: {
33229
+ headers: {
33230
+ [name: string]: unknown;
33231
+ };
33232
+ content: {
33233
+ "application/json": components["schemas"]["Error"];
33234
+ };
33235
+ };
33236
+ /** @description Unauthorized */
33237
+ 401: {
33238
+ headers: {
33239
+ [name: string]: unknown;
33240
+ };
33241
+ content: {
33242
+ "application/json": components["schemas"]["Error"];
33243
+ };
33244
+ };
33245
+ /** @description Insufficient permissions */
33246
+ 403: {
33247
+ headers: {
33248
+ [name: string]: unknown;
33249
+ };
33250
+ content: {
33251
+ "application/json": components["schemas"]["Error"];
33252
+ };
33253
+ };
33254
+ /** @description Product or surface not found */
33255
+ 404: {
33256
+ headers: {
33257
+ [name: string]: unknown;
33258
+ };
33259
+ content: {
33260
+ "application/json": components["schemas"]["Error"];
33261
+ };
33262
+ };
33263
+ /** @description Invalid credentials */
33264
+ 422: {
33265
+ headers: {
33266
+ [name: string]: unknown;
33267
+ };
33268
+ content: {
33269
+ "application/json": components["schemas"]["Error"];
33270
+ };
33271
+ };
33272
+ /** @description Internal server error */
33273
+ 500: {
33274
+ headers: {
33275
+ [name: string]: unknown;
33276
+ };
33277
+ content: {
33278
+ "application/json": components["schemas"]["Error"];
33279
+ };
33280
+ };
33281
+ };
33282
+ };
33283
+ post?: never;
33284
+ /**
33285
+ * Delete surface
33286
+ * @description Delete a surface (cascades to items, keys, and orthogonal endpoint registrations).
33287
+ */
33288
+ delete: {
33289
+ parameters: {
33290
+ query?: never;
33291
+ header?: never;
33292
+ path: {
33293
+ id: string;
33294
+ surfaceId: string;
33295
+ };
33296
+ cookie?: never;
33297
+ };
33298
+ requestBody?: never;
33299
+ responses: {
33300
+ /** @description Surface deleted */
33301
+ 200: {
33302
+ headers: {
33303
+ [name: string]: unknown;
33304
+ };
33305
+ content: {
33306
+ "application/json": {
33307
+ success: boolean;
33308
+ };
33309
+ };
33310
+ };
33311
+ /** @description Invalid ID */
33312
+ 400: {
33313
+ headers: {
33314
+ [name: string]: unknown;
33315
+ };
33316
+ content: {
33317
+ "application/json": components["schemas"]["Error"];
33318
+ };
33319
+ };
33320
+ /** @description Unauthorized */
33321
+ 401: {
33322
+ headers: {
33323
+ [name: string]: unknown;
33324
+ };
33325
+ content: {
33326
+ "application/json": components["schemas"]["Error"];
33327
+ };
33328
+ };
33329
+ /** @description Insufficient permissions */
33330
+ 403: {
33331
+ headers: {
33332
+ [name: string]: unknown;
33333
+ };
33334
+ content: {
33335
+ "application/json": components["schemas"]["Error"];
33336
+ };
33337
+ };
33338
+ /** @description Product or surface not found */
33339
+ 404: {
33340
+ headers: {
33341
+ [name: string]: unknown;
33342
+ };
33343
+ content: {
33344
+ "application/json": components["schemas"]["Error"];
33345
+ };
33346
+ };
33347
+ /** @description Internal server error */
33348
+ 500: {
33349
+ headers: {
33350
+ [name: string]: unknown;
33351
+ };
33352
+ content: {
33353
+ "application/json": components["schemas"]["Error"];
33354
+ };
33355
+ };
33356
+ };
33357
+ };
33358
+ options?: never;
33359
+ head?: never;
33360
+ patch?: never;
33361
+ trace?: never;
33362
+ };
33363
+ "/v1/products/{id}/surfaces/{surfaceId}/configure-from-docs": {
33364
+ parameters: {
33365
+ query?: never;
33366
+ header?: never;
33367
+ path?: never;
33368
+ cookie?: never;
33369
+ };
33370
+ get?: never;
33371
+ put?: never;
33372
+ /**
33373
+ * Configure webhook from documentation
33374
+ * @description Trigger doc-crawling system flow to configure webhook schema from documentation URL. Not yet implemented.
32386
33375
  */
32387
- put: {
33376
+ post: {
32388
33377
  parameters: {
32389
33378
  query?: never;
32390
33379
  header?: never;
32391
33380
  path: {
33381
+ /** @description Product ID */
32392
33382
  id: string;
33383
+ /** @description Surface ID */
32393
33384
  surfaceId: string;
32394
33385
  };
32395
33386
  cookie?: never;
@@ -32397,56 +33388,14 @@ interface paths {
32397
33388
  requestBody?: {
32398
33389
  content: {
32399
33390
  "application/json": {
32400
- behavior?: unknown;
32401
- config?: unknown;
32402
- /** @description Inbound config. Slack, Telegram and iMessage accept channelResponseMode (mention, the default; always; or judge, which asks the platform response-gate judgment whether to reply and waits for a mention when the judgment fails), responseRules (free text up to 2000 characters the judgment reads), eagerness (conservative, balanced or eager), onUncertain (silent or reply), responseGateShadow (opt-in: judge and record without changing behavior in mention or always mode), keywords, channelOverrides (per-channel channelResponseMode and eagerness) and contextBackfill ({ mode: window (default), judged (only the messages the judgment finds relevant, falling back to window on failure) or none, maxMessages up to 20, maxAgeMinutes up to 1440 }). */
32403
- inbound?: {
32404
- [key: string]: unknown;
32405
- };
32406
- name?: string;
32407
- outbound?: {
32408
- [key: string]: unknown;
32409
- };
32410
- /** @enum {string} */
32411
- status?: "draft" | "active" | "paused";
33391
+ eventHint?: string;
33392
+ /** Format: uri */
33393
+ url: string;
32412
33394
  };
32413
33395
  };
32414
33396
  };
32415
33397
  responses: {
32416
- /** @description Surface updated */
32417
- 200: {
32418
- headers: {
32419
- [name: string]: unknown;
32420
- };
32421
- content: {
32422
- "application/json": {
32423
- behavior?: unknown;
32424
- createdAt: string;
32425
- /** @description Canonical public URL of this surface (MCP, API, A2A, AG-UI, webhook, chat). Null for surface types reached through their own channels (Slack, email, schedule, ...). Clients should use this instead of constructing the URL themselves. */
32426
- endpoint: string | null;
32427
- id: string;
32428
- inbound?: unknown;
32429
- name: string;
32430
- outbound?: unknown;
32431
- productId: string;
32432
- status: string;
32433
- type: string;
32434
- updatedAt: string;
32435
- /** @description Advisory findings about this surface configuration. Present only when non-empty; never blocks the mutation. */
32436
- warnings?: {
32437
- /** @description Stable advisory code, e.g. `MODEL_NOT_ENABLED` when `behavior.conversationTitles.model` names a model this account cannot run. */
32438
- code: string;
32439
- message: string;
32440
- path: string;
32441
- /** @enum {string} */
32442
- severity: "warning" | "recommendation";
32443
- suggestedFix?: string;
32444
- }[];
32445
- webhookHealth: components["schemas"]["WebhookHealth"];
32446
- };
32447
- };
32448
- };
32449
- /** @description Validation error */
33398
+ /** @description Invalid request */
32450
33399
  400: {
32451
33400
  headers: {
32452
33401
  [name: string]: unknown;
@@ -32464,16 +33413,7 @@ interface paths {
32464
33413
  "application/json": components["schemas"]["Error"];
32465
33414
  };
32466
33415
  };
32467
- /** @description Insufficient permissions */
32468
- 403: {
32469
- headers: {
32470
- [name: string]: unknown;
32471
- };
32472
- content: {
32473
- "application/json": components["schemas"]["Error"];
32474
- };
32475
- };
32476
- /** @description Product or surface not found */
33416
+ /** @description Not found */
32477
33417
  404: {
32478
33418
  headers: {
32479
33419
  [name: string]: unknown;
@@ -32482,107 +33422,29 @@ interface paths {
32482
33422
  "application/json": components["schemas"]["Error"];
32483
33423
  };
32484
33424
  };
32485
- /** @description Invalid credentials */
32486
- 422: {
32487
- headers: {
32488
- [name: string]: unknown;
32489
- };
32490
- content: {
32491
- "application/json": components["schemas"]["Error"];
32492
- };
32493
- };
32494
- /** @description Internal server error */
32495
- 500: {
32496
- headers: {
32497
- [name: string]: unknown;
32498
- };
32499
- content: {
32500
- "application/json": components["schemas"]["Error"];
32501
- };
32502
- };
32503
- };
32504
- };
32505
- post?: never;
32506
- /**
32507
- * Delete surface
32508
- * @description Delete a surface (cascades to items, keys, and orthogonal endpoint registrations).
32509
- */
32510
- delete: {
32511
- parameters: {
32512
- query?: never;
32513
- header?: never;
32514
- path: {
32515
- id: string;
32516
- surfaceId: string;
32517
- };
32518
- cookie?: never;
32519
- };
32520
- requestBody?: never;
32521
- responses: {
32522
- /** @description Surface deleted */
32523
- 200: {
33425
+ /** @description Not yet implemented */
33426
+ 501: {
32524
33427
  headers: {
32525
33428
  [name: string]: unknown;
32526
33429
  };
32527
33430
  content: {
32528
33431
  "application/json": {
32529
- success: boolean;
33432
+ error: string;
33433
+ eventHint: string | null;
33434
+ message: string;
33435
+ url: string;
32530
33436
  };
32531
33437
  };
32532
33438
  };
32533
- /** @description Invalid ID */
32534
- 400: {
32535
- headers: {
32536
- [name: string]: unknown;
32537
- };
32538
- content: {
32539
- "application/json": components["schemas"]["Error"];
32540
- };
32541
- };
32542
- /** @description Unauthorized */
32543
- 401: {
32544
- headers: {
32545
- [name: string]: unknown;
32546
- };
32547
- content: {
32548
- "application/json": components["schemas"]["Error"];
32549
- };
32550
- };
32551
- /** @description Insufficient permissions */
32552
- 403: {
32553
- headers: {
32554
- [name: string]: unknown;
32555
- };
32556
- content: {
32557
- "application/json": components["schemas"]["Error"];
32558
- };
32559
- };
32560
- /** @description Product or surface not found */
32561
- 404: {
32562
- headers: {
32563
- [name: string]: unknown;
32564
- };
32565
- content: {
32566
- "application/json": components["schemas"]["Error"];
32567
- };
32568
- };
32569
- /** @description Internal server error */
32570
- 500: {
32571
- headers: {
32572
- [name: string]: unknown;
32573
- };
32574
- content: {
32575
- "application/json": components["schemas"]["Error"];
32576
- };
32577
- };
32578
33439
  };
32579
33440
  };
33441
+ delete?: never;
32580
33442
  options?: never;
32581
33443
  head?: never;
32582
33444
  patch?: never;
32583
33445
  trace?: never;
32584
33446
  };
32585
- "/v1/products/{id}/surfaces/{surfaceId}/configure-from-docs": {
33447
+ "/v1/products/{id}/surfaces/{surfaceId}/entry-point": {
32586
33448
  parameters: {
32587
33449
  query?: never;
32588
33450
  header?: never;
@@ -32590,19 +33452,13 @@ interface paths {
32590
33452
  cookie?: never;
32591
33453
  };
32592
33454
  get?: never;
32593
- put?: never;
32594
- /**
32595
- * Configure webhook from documentation
32596
- * @description Trigger doc-crawling system flow to configure webhook schema from documentation URL. Not yet implemented.
32597
- */
32598
- post: {
33455
+ /** Set the answering capability of a chat surface */
33456
+ put: {
32599
33457
  parameters: {
32600
33458
  query?: never;
32601
33459
  header?: never;
32602
33460
  path: {
32603
- /** @description Product ID */
32604
33461
  id: string;
32605
- /** @description Surface ID */
32606
33462
  surfaceId: string;
32607
33463
  };
32608
33464
  cookie?: never;
@@ -32610,13 +33466,23 @@ interface paths {
32610
33466
  requestBody?: {
32611
33467
  content: {
32612
33468
  "application/json": {
32613
- eventHint?: string;
32614
- /** Format: uri */
32615
- url: string;
33469
+ capabilityId: string;
32616
33470
  };
32617
33471
  };
32618
33472
  };
32619
33473
  responses: {
33474
+ /** @description Entry point selected */
33475
+ 200: {
33476
+ headers: {
33477
+ [name: string]: unknown;
33478
+ };
33479
+ content: {
33480
+ "application/json": {
33481
+ capabilityId: string;
33482
+ itemId: string;
33483
+ };
33484
+ };
33485
+ };
32620
33486
  /** @description Invalid request */
32621
33487
  400: {
32622
33488
  headers: {
@@ -32635,7 +33501,16 @@ interface paths {
32635
33501
  "application/json": components["schemas"]["Error"];
32636
33502
  };
32637
33503
  };
32638
- /** @description Not found */
33504
+ /** @description Insufficient permissions */
33505
+ 403: {
33506
+ headers: {
33507
+ [name: string]: unknown;
33508
+ };
33509
+ content: {
33510
+ "application/json": components["schemas"]["Error"];
33511
+ };
33512
+ };
33513
+ /** @description Product, surface or capability not found */
32639
33514
  404: {
32640
33515
  headers: {
32641
33516
  [name: string]: unknown;
@@ -32644,22 +33519,18 @@ interface paths {
32644
33519
  "application/json": components["schemas"]["Error"];
32645
33520
  };
32646
33521
  };
32647
- /** @description Not yet implemented */
32648
- 501: {
33522
+ /** @description Internal server error */
33523
+ 500: {
32649
33524
  headers: {
32650
33525
  [name: string]: unknown;
32651
33526
  };
32652
33527
  content: {
32653
- "application/json": {
32654
- error: string;
32655
- eventHint: string | null;
32656
- message: string;
32657
- url: string;
32658
- };
33528
+ "application/json": components["schemas"]["Error"];
32659
33529
  };
32660
33530
  };
32661
33531
  };
32662
33532
  };
33533
+ post?: never;
32663
33534
  delete?: never;
32664
33535
  options?: never;
32665
33536
  head?: never;
@@ -46421,6 +47292,7 @@ interface paths {
46421
47292
  scopes: string[];
46422
47293
  usageCount: number | null;
46423
47294
  }[];
47295
+ lastModifiedSource: string | null;
46424
47296
  name: string;
46425
47297
  outbound?: unknown;
46426
47298
  productId: string;
@@ -49046,6 +49918,7 @@ interface paths {
49046
49918
  enableRuntypeApps: boolean;
49047
49919
  enableSelfServeOauthClients: boolean;
49048
49920
  enableVoice: boolean;
49921
+ enableWorkbench: boolean;
49049
49922
  enableWorkspaceModel: boolean;
49050
49923
  externalTelemetryAllowed?: boolean;
49051
49924
  modelCreditPromoMultiplier?: number;
@@ -49670,6 +50543,10 @@ interface components {
49670
50543
  thresholdTokens?: number;
49671
50544
  };
49672
50545
  toolResults?: {
50546
+ /**
50547
+ * @deprecated
50548
+ * @description Deprecated and ignored. Tool results are never spilled.
50549
+ */
49673
50550
  inlineThresholdChars?: number;
49674
50551
  pruneHotWindowTokens?: number;
49675
50552
  /** @enum {string} */
@@ -50123,14 +51000,74 @@ interface components {
50123
51000
  /** @enum {string} */
50124
51001
  status: "pending" | "applied" | "settled" | "not_applied";
50125
51002
  };
51003
+ ContextBlocks: {
51004
+ blocks: {
51005
+ /** @description The block text, scrubbed of secrets. */
51006
+ content: string;
51007
+ /** @description The manifest entry hash this text belongs to. */
51008
+ hash: string;
51009
+ /** @description The block was cut at capture; `content` holds its head and tail. */
51010
+ truncated: boolean;
51011
+ }[];
51012
+ executionId: string;
51013
+ };
51014
+ ContextManifestEntry: {
51015
+ /** @enum {string} */
51016
+ category: "toolDefinitions" | "systemPrompt" | "recordContext" | "conversationHistory" | "toolResults" | "currentUserMessage";
51017
+ chars: number;
51018
+ /** @description chars / 4, never calibrated in storage. */
51019
+ estimatedTokens: number;
51020
+ /** @description The snapshot where this entry entered the window. */
51021
+ firstSeenSeq: number;
51022
+ flags: ("current" | "secret_scrubbed" | "unsized")[];
51023
+ /** @description Content address of the block: 16 hex chars of its SHA-256. */
51024
+ hash: string;
51025
+ /** @enum {string} */
51026
+ kind: "instructions" | "record" | "tool_definition" | "user_message" | "assistant_message" | "assistant_tool_call" | "reasoning" | "attachment" | "tool_result";
51027
+ /** @enum {string} */
51028
+ role: "system" | "user" | "assistant" | "tool";
51029
+ toolCallId?: string;
51030
+ toolName?: string;
51031
+ };
51032
+ ContextSnapshot: {
51033
+ cacheBreakpoints: number[];
51034
+ /** @description The run stored block text, readable from the blocks route. False under logging policy `redact`, and for runs recorded before block text was captured. */
51035
+ contentCaptured: boolean;
51036
+ entries: components["schemas"]["ContextManifestEntry"][];
51037
+ iteration: number | null;
51038
+ model: string | null;
51039
+ modelRequestSpanId: string;
51040
+ removedSincePrevious: {
51041
+ entry: components["schemas"]["ContextManifestEntry"];
51042
+ /** @enum {string} */
51043
+ reason: "pruned" | "compacted" | "reasoning_dropped" | "tool_item_dropped";
51044
+ }[];
51045
+ reported: {
51046
+ cacheReadTokens: number;
51047
+ cacheWriteTokens: number;
51048
+ inputTokens: number;
51049
+ } | null;
51050
+ requestIndex: number | null;
51051
+ /** @description Execution-wide request order; the key. */
51052
+ seq: number;
51053
+ startedAt: string;
51054
+ stepId: string | null;
51055
+ turnId: string | null;
51056
+ };
51057
+ ContextSnapshots: {
51058
+ executionId: string;
51059
+ snapshots: components["schemas"]["ContextSnapshot"][];
51060
+ /** @description The execution exceeded the span read ceiling; later requests are omitted. */
51061
+ truncated: boolean;
51062
+ };
50126
51063
  ConversationBusyError: {
50127
51064
  /** @enum {string} */
50128
51065
  code: "CONVERSATION_BUSY";
50129
51066
  error: string;
50130
- /** @description The execution holding the conversation slot. Poll /v1/executions/{executionId}/status, or send x-runtype-concurrency: join to attach to it. */
51067
+ /** @description The execution holding the conversation slot. Poll /v1/executions/{executionId}/status, or send x-runtype-concurrency: steer to attach to it. */
50131
51068
  executionId?: string;
50132
51069
  /**
50133
- * @description Where the occupant is: `claiming` (admitted, not yet started; a join attaches through the claim), `running`, `paused` (a join stays pending until an authorized resume), or `queued` (an earlier queue-only turn is waiting).
51070
+ * @description Where the occupant is: `claiming` (admitted, not yet started; a steer attaches through the claim), `running`, `paused` (a steer stays pending until an authorized resume), or `queued` (an earlier queue-only turn is waiting).
50134
51071
  * @enum {string}
50135
51072
  */
50136
51073
  phase?: "claiming" | "running" | "paused" | "queued";
@@ -50255,6 +51192,25 @@ interface components {
50255
51192
  toolName: string;
50256
51193
  }[];
50257
51194
  };
51195
+ CreateProductCommentRequest: {
51196
+ /**
51197
+ * @description `assistant` when the caller's client posts the Assistant's answer to an `@assistant`; defaults to `user`
51198
+ * @enum {string}
51199
+ */
51200
+ authorKind?: "user" | "assistant";
51201
+ /** @description The comment text; backticks mark code and `@name` a mention */
51202
+ body: string;
51203
+ /** @description What the body names with `@`: `assistant`, or a teammate as their name was inserted */
51204
+ mentions?: string[];
51205
+ };
51206
+ CreateProductCommentThreadRequest: {
51207
+ /** @description The canvas element to comment on: `entity:<id>`, `step:<flow>/<step>`, `edge:<from>/<to>`, `block:<block>[/<key>]` */
51208
+ anchor: string;
51209
+ /** @description The comment text; backticks mark code and `@name` a mention */
51210
+ body: string;
51211
+ /** @description What the body names with `@`: `assistant`, or a teammate as their name was inserted */
51212
+ mentions?: string[];
51213
+ };
50258
51214
  DailyUsageResponse: {
50259
51215
  daily?: {
50260
51216
  atSpendLimit: boolean;
@@ -50299,6 +51255,22 @@ interface components {
50299
51255
  tier: string;
50300
51256
  };
50301
51257
  };
51258
+ DeclareProductStackRequest: {
51259
+ /** @description Everything this source says the product is built on. Replaces the previous declaration from the same source whole; an empty list clears it. Keys follow the detected ones (model:<id>, data:<engine>, runtime:<name>, integration:<id>) so a declared item and a detected one show once, else custom:<slug>. */
51260
+ items: components["schemas"]["ProductStackItem"][];
51261
+ /**
51262
+ * @description Where the declaration comes from: the Runtype MCP server, the CLI, or the API
51263
+ * @enum {string}
51264
+ */
51265
+ source: "mcp" | "cli" | "api";
51266
+ };
51267
+ DeclareProductStackResponse: {
51268
+ declaration: components["schemas"]["ProductDeclaredStack"];
51269
+ productId: string;
51270
+ /** @enum {string} */
51271
+ source: "mcp" | "cli" | "api";
51272
+ stack: components["schemas"]["ProductStack"];
51273
+ };
50302
51274
  DecomposeCriteriaRequest: {
50303
51275
  /** @description One plain-language AI-grader criterion to split into focused sub-checks. */
50304
51276
  criteria: string;
@@ -51736,6 +52708,14 @@ interface components {
51736
52708
  */
51737
52709
  source: "eval_suite" | "customer";
51738
52710
  };
52711
+ ListProductCommentsResponse: {
52712
+ /** @description True when older threads were left out by `limit` */
52713
+ hasMore: boolean;
52714
+ /** @description Pass as `cursor` to list the threads older than this page; null once none are left */
52715
+ nextCursor: string | null;
52716
+ /** @description Oldest first: the newest `limit` threads */
52717
+ threads: components["schemas"]["ProductCommentThread"][];
52718
+ };
51739
52719
  ManagedAgentRunOutput: {
51740
52720
  anthropicFileId: string;
51741
52721
  /** @description Asset-storage key the bytes were persisted to. */
@@ -51803,6 +52783,62 @@ interface components {
51803
52783
  /** @enum {string} */
51804
52784
  scope: "organization" | "agent";
51805
52785
  };
52786
+ ProductCanvasBlock: {
52787
+ /** @description When the block was added; set by the server */
52788
+ readonly addedAt?: string;
52789
+ /** @description Who added the block (blocks people add only); set by the server */
52790
+ readonly addedByUserId?: string;
52791
+ /** @description Block-owned settings; absent keeps the stored config */
52792
+ config?: {
52793
+ [key: string]: unknown;
52794
+ };
52795
+ /** @description When that save happened; set by the server */
52796
+ readonly editedAt?: string;
52797
+ /** @description Who last saved a change to what the block shows; set by the server */
52798
+ readonly editedByUserId?: string;
52799
+ /** @description True hides the block; absent or false shows it */
52800
+ hidden?: boolean;
52801
+ /** @description Stable block id; comment anchors read `block:<id>` */
52802
+ id: string;
52803
+ /** @description Block kind, e.g. overview, get-started, docs, architecture, cost, recent-runs, notes */
52804
+ kind: string;
52805
+ };
52806
+ ProductComment: {
52807
+ /**
52808
+ * @description `assistant` for an answer to an `@assistant` mention, else `user`
52809
+ * @enum {string}
52810
+ */
52811
+ authorKind: "user" | "assistant";
52812
+ /** @description The name it was posted under: the person's first name, the API key's name, or `Assistant` */
52813
+ authorLabel: string;
52814
+ /** @description Who posted it (for an assistant answer, whose client relayed it); null once that person's account is deleted */
52815
+ authorUserId: string | null;
52816
+ body: string;
52817
+ createdAt: string;
52818
+ id: string;
52819
+ mentions: string[];
52820
+ threadId: string;
52821
+ };
52822
+ ProductCommentThread: {
52823
+ /** @description The canvas element the thread is on; the thread outlives it when that element is removed */
52824
+ anchor: string;
52825
+ createdAt: string;
52826
+ createdByUserId: string | null;
52827
+ id: string;
52828
+ /** @description Oldest first */
52829
+ messages: components["schemas"]["ProductComment"][];
52830
+ productId: string;
52831
+ resolved: boolean;
52832
+ resolvedAt: string | null;
52833
+ resolvedByUserId: string | null;
52834
+ updatedAt: string;
52835
+ };
52836
+ ProductDeclaredStack: {
52837
+ actorLabel: string;
52838
+ actorUserId?: string;
52839
+ declaredAt: string;
52840
+ items: components["schemas"]["ProductStackItem"][];
52841
+ };
51806
52842
  ProductEnsureConflict: {
51807
52843
  /** @enum {string} */
51808
52844
  code: "external_modification" | "remote_changed";
@@ -51894,7 +52930,10 @@ interface components {
51894
52930
  internalDocs?: {
51895
52931
  content?: string;
51896
52932
  resources?: {
52933
+ addedAt?: string;
52934
+ addedByUserId?: string;
51897
52935
  content?: string;
52936
+ source?: string;
51898
52937
  title: string;
51899
52938
  type: string;
51900
52939
  url?: string;
@@ -51921,6 +52960,40 @@ interface components {
51921
52960
  productId: string;
51922
52961
  updatedAt: string | null;
51923
52962
  };
52963
+ /** @description The Overview's stack. The legacy techStack buckets are separate and unchanged. */
52964
+ ProductStack: {
52965
+ /** @description The last declaration from each source; a product save keeps it as stored */
52966
+ readonly declared?: {
52967
+ api?: components["schemas"]["ProductDeclaredStack"];
52968
+ cli?: components["schemas"]["ProductDeclaredStack"];
52969
+ mcp?: components["schemas"]["ProductDeclaredStack"];
52970
+ };
52971
+ /** @description What the last detection derived; a product save keeps it as stored */
52972
+ readonly detected?: {
52973
+ derivedAt: string;
52974
+ items: components["schemas"]["ProductStackItem"][];
52975
+ };
52976
+ /** @description Keys of detected or declared chips people hid; replaces the stored list */
52977
+ hidden?: string[];
52978
+ /** @description When each hidden key was hidden; set by the server */
52979
+ readonly hiddenAt?: {
52980
+ [key: string]: string;
52981
+ };
52982
+ /** @description Chips people added by hand; replaces the stored list */
52983
+ manual?: components["schemas"]["ProductStackItem"][];
52984
+ };
52985
+ ProductStackItem: {
52986
+ category?: string;
52987
+ /** @description Stable chip key, e.g. model:claude-sonnet-5 or custom:inngest */
52988
+ key: string;
52989
+ label: string;
52990
+ /** @description Brand or provider mark id the dashboard draws */
52991
+ mark?: string;
52992
+ url?: string;
52993
+ version?: string;
52994
+ /** @description Where a detected item was found */
52995
+ where?: string;
52996
+ };
51924
52997
  QuestionSet: {
51925
52998
  createdAt: string;
51926
52999
  createdByUserId: string | null;
@@ -52621,6 +53694,10 @@ interface components {
52621
53694
  reason: "record_limit";
52622
53695
  };
52623
53696
  };
53697
+ UpdateProductCommentThreadRequest: {
53698
+ /** @description True resolves the thread, false opens it again */
53699
+ resolved: boolean;
53700
+ };
52624
53701
  UpdateUserProfileResponse: {
52625
53702
  email?: string;
52626
53703
  firstName?: string;
@@ -58831,6 +59908,7 @@ interface AgentDefinitionConfig {
58831
59908
  model?: string;
58832
59909
  };
58833
59910
  toolResults?: {
59911
+ /** @deprecated Ignored: tool results are never spilled. */
58834
59912
  inlineThresholdChars?: number;
58835
59913
  pruneHotWindowTokens?: number;
58836
59914
  pruneMode?: 'mask' | 'off';
@@ -58849,7 +59927,7 @@ interface AgentDefinitionConfig {
58849
59927
  toolIds?: string[];
58850
59928
  toolConfigs?: Record<string, Record<string, unknown>>;
58851
59929
  runtimeTools?: Array<Record<string, unknown>>;
58852
- mcpServers?: Array<Record<string, unknown>>;
59930
+ mcpServers?: CustomMCPServer[];
58853
59931
  maxToolCalls?: number;
58854
59932
  toolCallStrategy?: 'auto' | 'required' | 'none';
58855
59933
  approval?: {
@@ -59813,6 +60891,275 @@ declare class SurfacesNamespace {
59813
60891
  pull(productId: string, name: string): Promise<SurfacePullResult>;
59814
60892
  }
59815
60893
 
60894
+ /**
60895
+ * Client Token Types
60896
+ *
60897
+ * Types for the client tokens system that enables secure browser-to-API communication.
60898
+ *
60899
+ * Note: These types are inlined from the internal shared package to avoid
60900
+ * requiring users to install @runtypelabs/shared.
60901
+ */
60902
+ /**
60903
+ * Environment for a client token
60904
+ */
60905
+ type ClientTokenEnvironment = 'test' | 'live';
60906
+ /**
60907
+ * Version pinning options for client tokens
60908
+ */
60909
+ type ClientTokenVersionPin = 'latest' | 'published' | string;
60910
+ /**
60911
+ * Theme configuration for the client widget
60912
+ */
60913
+ interface ClientWidgetTheme {
60914
+ /** Primary brand color */
60915
+ primaryColor?: string;
60916
+ /** Background color */
60917
+ backgroundColor?: string;
60918
+ /** Text color */
60919
+ textColor?: string;
60920
+ /** Font family */
60921
+ fontFamily?: string;
60922
+ /** Border radius for elements */
60923
+ borderRadius?: string;
60924
+ /** Light or dark mode */
60925
+ mode?: 'light' | 'dark';
60926
+ }
60927
+ /**
60928
+ * Client token configuration (theme, welcome message, etc.)
60929
+ */
60930
+ interface ClientTokenConfig {
60931
+ /** Welcome message shown when widget opens */
60932
+ welcomeMessage?: string;
60933
+ /** Input placeholder text */
60934
+ placeholder?: string;
60935
+ /** Theme configuration */
60936
+ theme?: ClientWidgetTheme;
60937
+ /** Custom data passed to flows */
60938
+ customData?: Record<string, unknown>;
60939
+ /**
60940
+ * Durable-turn opt-in for a token with no product surface. A surface-bound
60941
+ * token reads the surface's `behavior.durableTurns` instead and ignores this.
60942
+ */
60943
+ durableTurns?: {
60944
+ /** Defaults to false when absent. */
60945
+ enabled?: boolean;
60946
+ };
60947
+ }
60948
+ /**
60949
+ * Client token data returned from the API
60950
+ */
60951
+ interface ClientToken {
60952
+ id: string;
60953
+ name: string | null;
60954
+ flowIds: string[];
60955
+ defaultFlowId: string | null;
60956
+ agentIds: string[];
60957
+ allowedOrigins: string[];
60958
+ environment: ClientTokenEnvironment;
60959
+ pinToVersion: ClientTokenVersionPin | null;
60960
+ /** Release alias this token follows, re-resolved on every admission (ADR 0025). */
60961
+ targetAlias: string | null;
60962
+ /** Exact agent version this token is pinned to (ADR 0025). */
60963
+ targetVersionId: string | null;
60964
+ rateLimitPerMinute: number | null;
60965
+ rateLimitPerHour: number | null;
60966
+ maxMessagesPerSession: number | null;
60967
+ sessionIdleTimeoutMinutes: number | null;
60968
+ config: ClientTokenConfig;
60969
+ isActive: boolean;
60970
+ tokenPrefix: string;
60971
+ tokenHint: string | null;
60972
+ /** Publishable token value. Null for legacy rows until regenerated. */
60973
+ tokenValue: string | null;
60974
+ /** Product chat surface this token was minted for, when surface-bound. */
60975
+ productSurfaceId?: string | null;
60976
+ conversationCount?: number;
60977
+ lastUsedAt: string | null;
60978
+ createdAt: string;
60979
+ updatedAt: string;
60980
+ }
60981
+ /**
60982
+ * Request to create a client token
60983
+ */
60984
+ interface CreateClientTokenRequest {
60985
+ name: string;
60986
+ flowIds?: string[];
60987
+ defaultFlowId?: string;
60988
+ agentIds?: string[];
60989
+ allowedOrigins: string[];
60990
+ environment?: ClientTokenEnvironment;
60991
+ pinToVersion?: ClientTokenVersionPin;
60992
+ /** Release alias this token follows. Mutually exclusive with `targetVersionId`. */
60993
+ targetAlias?: string | null;
60994
+ /** Exact agent version this token pins. Mutually exclusive with `targetAlias`. */
60995
+ targetVersionId?: string | null;
60996
+ rateLimitPerMinute?: number;
60997
+ rateLimitPerHour?: number;
60998
+ maxMessagesPerSession?: number;
60999
+ sessionIdleTimeoutMinutes?: number;
61000
+ config?: ClientTokenConfig;
61001
+ productSurfaceId?: string;
61002
+ }
61003
+ /**
61004
+ * Request to update a client token
61005
+ */
61006
+ interface UpdateClientTokenRequest {
61007
+ name?: string;
61008
+ flowIds?: string[];
61009
+ defaultFlowId?: string;
61010
+ agentIds?: string[];
61011
+ allowedOrigins?: string[];
61012
+ pinToVersion?: ClientTokenVersionPin;
61013
+ /** Release alias this token follows. Mutually exclusive with `targetVersionId`. */
61014
+ targetAlias?: string | null;
61015
+ /** Exact agent version this token pins. Mutually exclusive with `targetAlias`. */
61016
+ targetVersionId?: string | null;
61017
+ rateLimitPerMinute?: number;
61018
+ rateLimitPerHour?: number;
61019
+ maxMessagesPerSession?: number;
61020
+ sessionIdleTimeoutMinutes?: number;
61021
+ config?: ClientTokenConfig;
61022
+ isActive?: boolean;
61023
+ }
61024
+ /**
61025
+ * Security warning for token configuration
61026
+ */
61027
+ interface SecurityWarning {
61028
+ type: string;
61029
+ message: string;
61030
+ }
61031
+ /**
61032
+ * Response from creating a client token
61033
+ */
61034
+ interface CreateClientTokenResponse {
61035
+ clientToken: ClientToken;
61036
+ /** The plain token value - only shown once! */
61037
+ token: string;
61038
+ warnings: SecurityWarning[];
61039
+ }
61040
+ /**
61041
+ * Conversation record from the API
61042
+ */
61043
+ interface ClientConversation {
61044
+ id: string;
61045
+ name: string;
61046
+ flowId: string;
61047
+ origin: string;
61048
+ messageCount: number;
61049
+ firstMessage: string | null;
61050
+ createdAt: string;
61051
+ updatedAt: string;
61052
+ }
61053
+ /**
61054
+ * List conversations response
61055
+ */
61056
+ interface ListConversationsResponse {
61057
+ conversations: ClientConversation[];
61058
+ pagination: {
61059
+ limit: number;
61060
+ offset: number;
61061
+ hasMore: boolean;
61062
+ };
61063
+ }
61064
+
61065
+ /**
61066
+ * The desired state of a client token, keyed by `name`. Capabilities, origins,
61067
+ * and target always converge; limits and `config` converge only when set.
61068
+ */
61069
+ interface ClientTokenDefinition {
61070
+ name: string;
61071
+ agentIds?: string[];
61072
+ flowIds?: string[];
61073
+ defaultFlowId?: string;
61074
+ allowedOrigins: string[];
61075
+ /** Fixed at creation; a mismatch with the existing token throws. */
61076
+ environment?: ClientTokenEnvironment;
61077
+ /** Absent clears any alias the token follows. */
61078
+ targetAlias?: string | null;
61079
+ /** Absent clears any version the token pins. */
61080
+ targetVersionId?: string | null;
61081
+ rateLimitPerMinute?: number;
61082
+ rateLimitPerHour?: number;
61083
+ maxMessagesPerSession?: number;
61084
+ sessionIdleTimeoutMinutes?: number;
61085
+ config?: ClientTokenConfig;
61086
+ /** Fixed at creation; a mismatch with the existing token throws. */
61087
+ productSurfaceId?: string;
61088
+ }
61089
+ interface EnsureClientTokenOptions {
61090
+ /** Plan without writing. */
61091
+ dryRun?: boolean;
61092
+ /** Implies dryRun; throws ClientTokenDriftError unless the plan is 'none'. */
61093
+ expectNoChanges?: boolean;
61094
+ }
61095
+ interface EnsureClientTokenConverged {
61096
+ result: 'created' | 'updated' | 'unchanged';
61097
+ clientToken: ClientToken;
61098
+ /** The publishable value, or null for a reveal-once live token (regenerate to get a new one). */
61099
+ token: string | null;
61100
+ changedKeys: string[];
61101
+ warnings: SecurityWarning[];
61102
+ }
61103
+ interface EnsureClientTokenPlan {
61104
+ result: 'plan';
61105
+ changes: 'none' | 'create' | 'update';
61106
+ changedKeys: string[];
61107
+ /** Absent when the plan is 'create'. */
61108
+ clientToken?: ClientToken;
61109
+ }
61110
+ type EnsureClientTokenResult = EnsureClientTokenConverged | EnsureClientTokenPlan;
61111
+ /** The definition cannot converge onto the existing token without deleting it. */
61112
+ declare class ClientTokenEnsureError extends Error {
61113
+ constructor(message: string);
61114
+ }
61115
+ declare class ClientTokenDriftError extends Error {
61116
+ readonly plan: EnsureClientTokenPlan;
61117
+ constructor(name: string, plan: EnsureClientTokenPlan);
61118
+ }
61119
+ /**
61120
+ * Client tokens — publishable, origin-restricted credentials for browser and
61121
+ * native widgets. `ensure` is the config-as-code entry point.
61122
+ */
61123
+ declare class ClientTokensNamespace {
61124
+ private getClient;
61125
+ constructor(getClient: () => RuntypeClient$1);
61126
+ list(): Promise<ClientToken[]>;
61127
+ get(id: string): Promise<ClientToken>;
61128
+ /** The response's `token` is the publishable value. */
61129
+ create(data: CreateClientTokenRequest): Promise<CreateClientTokenResponse>;
61130
+ update(id: string, data: UpdateClientTokenRequest): Promise<{
61131
+ clientToken: ClientToken;
61132
+ warnings: SecurityWarning[];
61133
+ }>;
61134
+ delete(id: string): Promise<void>;
61135
+ /** Issue a new value; the previous value stops working immediately. */
61136
+ regenerate(id: string): Promise<CreateClientTokenResponse>;
61137
+ /** Read a stored token value. Fails for a reveal-once live token. */
61138
+ getToken(id: string): Promise<{
61139
+ token: string;
61140
+ }>;
61141
+ listConversations(id: string, params?: {
61142
+ limit?: number;
61143
+ offset?: number;
61144
+ }): Promise<ListConversationsResponse>;
61145
+ /**
61146
+ * Find the token named `definition.name`, create it when missing, and update
61147
+ * it when it differs. Never deletes or regenerates. Throws when two tokens
61148
+ * share the name, or when the environment or surface differs.
61149
+ *
61150
+ * @example
61151
+ * ```typescript
61152
+ * const agent = await Runtype.agents.ensure(docsAgent, { deploy: { alias: 'live' } })
61153
+ * const { token } = await Runtype.clientTokens.ensure({
61154
+ * name: 'Docs site widget',
61155
+ * agentIds: [agent.agentId],
61156
+ * allowedOrigins: ['https://docs.example.com'],
61157
+ * })
61158
+ * ```
61159
+ */
61160
+ ensure(definition: ClientTokenDefinition, options?: EnsureClientTokenOptions): Promise<EnsureClientTokenResult>;
61161
+ }
61162
+
59816
61163
  /**
59817
61164
  * Transparent reconnect for a DETACHED agent stream (ADR 0020 point 6;
59818
61165
  * blueprint `2026-08-25-durable-by-default-agent-turns.md` §4).
@@ -60313,6 +61660,22 @@ declare class Runtype {
60313
61660
  * ```
60314
61661
  */
60315
61662
  static get surfaces(): SurfacesNamespace;
61663
+ /**
61664
+ * Client tokens — publishable credentials for widgets. `ensure` finds a token
61665
+ * by name, creates it when missing, and converges its agents, flows, origins,
61666
+ * and target; it returns the token value when the token stores one.
61667
+ *
61668
+ * @example
61669
+ * ```typescript
61670
+ * const agent = await Runtype.agents.ensure(docsAgent, { deploy: { alias: 'live' } })
61671
+ * const { token } = await Runtype.clientTokens.ensure({
61672
+ * name: 'Docs site widget',
61673
+ * agentIds: [agent.agentId],
61674
+ * allowedOrigins: ['https://docs.example.com'],
61675
+ * })
61676
+ * ```
61677
+ */
61678
+ static get clientTokens(): ClientTokensNamespace;
60316
61679
  }
60317
61680
 
60318
61681
  /**
@@ -60608,177 +61971,6 @@ interface ApiKeyRequestListParams {
60608
61971
  cursor?: string;
60609
61972
  }
60610
61973
 
60611
- /**
60612
- * Client Token Types
60613
- *
60614
- * Types for the client tokens system that enables secure browser-to-API communication.
60615
- *
60616
- * Note: These types are inlined from the internal shared package to avoid
60617
- * requiring users to install @runtypelabs/shared.
60618
- */
60619
- /**
60620
- * Environment for a client token
60621
- */
60622
- type ClientTokenEnvironment = 'test' | 'live';
60623
- /**
60624
- * Version pinning options for client tokens
60625
- */
60626
- type ClientTokenVersionPin = 'latest' | 'published' | string;
60627
- /**
60628
- * Theme configuration for the client widget
60629
- */
60630
- interface ClientWidgetTheme {
60631
- /** Primary brand color */
60632
- primaryColor?: string;
60633
- /** Background color */
60634
- backgroundColor?: string;
60635
- /** Text color */
60636
- textColor?: string;
60637
- /** Font family */
60638
- fontFamily?: string;
60639
- /** Border radius for elements */
60640
- borderRadius?: string;
60641
- /** Light or dark mode */
60642
- mode?: 'light' | 'dark';
60643
- }
60644
- /**
60645
- * Client token configuration (theme, welcome message, etc.)
60646
- */
60647
- interface ClientTokenConfig {
60648
- /** Welcome message shown when widget opens */
60649
- welcomeMessage?: string;
60650
- /** Input placeholder text */
60651
- placeholder?: string;
60652
- /** Theme configuration */
60653
- theme?: ClientWidgetTheme;
60654
- /** Custom data passed to flows */
60655
- customData?: Record<string, unknown>;
60656
- /**
60657
- * Durable-turn opt-in for a token with no product surface. A surface-bound
60658
- * token reads the surface's `behavior.durableTurns` instead and ignores this.
60659
- */
60660
- durableTurns?: {
60661
- /** Defaults to false when absent. */
60662
- enabled?: boolean;
60663
- };
60664
- }
60665
- /**
60666
- * Client token data returned from the API
60667
- */
60668
- interface ClientToken {
60669
- id: string;
60670
- name: string | null;
60671
- flowIds: string[];
60672
- defaultFlowId: string | null;
60673
- agentIds: string[];
60674
- allowedOrigins: string[];
60675
- environment: ClientTokenEnvironment;
60676
- pinToVersion: ClientTokenVersionPin | null;
60677
- /** Release alias this token follows, re-resolved on every admission (ADR 0025). */
60678
- targetAlias: string | null;
60679
- /** Exact agent version this token is pinned to (ADR 0025). */
60680
- targetVersionId: string | null;
60681
- rateLimitPerMinute: number | null;
60682
- rateLimitPerHour: number | null;
60683
- maxMessagesPerSession: number | null;
60684
- sessionIdleTimeoutMinutes: number | null;
60685
- config: ClientTokenConfig;
60686
- isActive: boolean;
60687
- tokenPrefix: string;
60688
- tokenHint: string | null;
60689
- /** Publishable token value. Null for legacy rows until regenerated. */
60690
- tokenValue: string | null;
60691
- /** Product chat surface this token was minted for, when surface-bound. */
60692
- productSurfaceId?: string | null;
60693
- conversationCount?: number;
60694
- lastUsedAt: string | null;
60695
- createdAt: string;
60696
- updatedAt: string;
60697
- }
60698
- /**
60699
- * Request to create a client token
60700
- */
60701
- interface CreateClientTokenRequest {
60702
- name: string;
60703
- flowIds?: string[];
60704
- defaultFlowId?: string;
60705
- agentIds?: string[];
60706
- allowedOrigins: string[];
60707
- environment?: ClientTokenEnvironment;
60708
- pinToVersion?: ClientTokenVersionPin;
60709
- /** Release alias this token follows. Mutually exclusive with `targetVersionId`. */
60710
- targetAlias?: string | null;
60711
- /** Exact agent version this token pins. Mutually exclusive with `targetAlias`. */
60712
- targetVersionId?: string | null;
60713
- rateLimitPerMinute?: number;
60714
- rateLimitPerHour?: number;
60715
- maxMessagesPerSession?: number;
60716
- sessionIdleTimeoutMinutes?: number;
60717
- config?: ClientTokenConfig;
60718
- productSurfaceId?: string;
60719
- }
60720
- /**
60721
- * Request to update a client token
60722
- */
60723
- interface UpdateClientTokenRequest {
60724
- name?: string;
60725
- flowIds?: string[];
60726
- defaultFlowId?: string;
60727
- agentIds?: string[];
60728
- allowedOrigins?: string[];
60729
- pinToVersion?: ClientTokenVersionPin;
60730
- /** Release alias this token follows. Mutually exclusive with `targetVersionId`. */
60731
- targetAlias?: string | null;
60732
- /** Exact agent version this token pins. Mutually exclusive with `targetAlias`. */
60733
- targetVersionId?: string | null;
60734
- rateLimitPerMinute?: number;
60735
- rateLimitPerHour?: number;
60736
- maxMessagesPerSession?: number;
60737
- sessionIdleTimeoutMinutes?: number;
60738
- config?: ClientTokenConfig;
60739
- isActive?: boolean;
60740
- }
60741
- /**
60742
- * Security warning for token configuration
60743
- */
60744
- interface SecurityWarning {
60745
- type: string;
60746
- message: string;
60747
- }
60748
- /**
60749
- * Response from creating a client token
60750
- */
60751
- interface CreateClientTokenResponse {
60752
- clientToken: ClientToken;
60753
- /** The plain token value - only shown once! */
60754
- token: string;
60755
- warnings: SecurityWarning[];
60756
- }
60757
- /**
60758
- * Conversation record from the API
60759
- */
60760
- interface ClientConversation {
60761
- id: string;
60762
- name: string;
60763
- flowId: string;
60764
- origin: string;
60765
- messageCount: number;
60766
- firstMessage: string | null;
60767
- createdAt: string;
60768
- updatedAt: string;
60769
- }
60770
- /**
60771
- * List conversations response
60772
- */
60773
- interface ListConversationsResponse {
60774
- conversations: ClientConversation[];
60775
- pagination: {
60776
- limit: number;
60777
- offset: number;
60778
- hasMore: boolean;
60779
- };
60780
- }
60781
-
60782
61974
  interface GeneratedRuntimeToolGateOptions {
60783
61975
  /**
60784
61976
  * Allowed runtime tool types.
@@ -62713,7 +63905,7 @@ interface AgentExecuteRequest {
62713
63905
  model?: string;
62714
63906
  };
62715
63907
  toolResults?: {
62716
- /** Tool results longer than this are spilled and replaced by a marker. */
63908
+ /** @deprecated Ignored: tool results are never spilled. */
62717
63909
  inlineThresholdChars?: number;
62718
63910
  /** Tool output newer than this budget is never masked. */
62719
63911
  pruneHotWindowTokens?: number;
@@ -63212,15 +64404,15 @@ interface Agent {
63212
64404
  createdAt: string;
63213
64405
  updatedAt: string;
63214
64406
  }
63215
- /** Durable admission headers for agent execute and dispatch. Join requires native durable execution. */
64407
+ /** Durable admission headers for agent execute and dispatch. Steer requires native durable execution. */
63216
64408
  interface AgentAdmissionOptions {
63217
64409
  /**
63218
64410
  * What to do when the conversation already has a turn in flight. `reject`
63219
64411
  * (the default when omitted) answers `CONVERSATION_BUSY`; `supersede`
63220
- * cancels the incumbent and takes over; `queue` runs after it; `join` delivers
64412
+ * cancels the incumbent and takes over; `queue` runs after it; `steer` delivers
63221
64413
  * new user-message deltas to the incumbent at a safe boundary, without resetting its budgets.
63222
64414
  */
63223
- concurrency?: 'reject' | 'supersede' | 'queue' | 'join';
64415
+ concurrency?: 'reject' | 'supersede' | 'queue' | 'steer';
63224
64416
  /**
63225
64417
  * Fold this request into an already-pending turn for the same conversation
63226
64418
  * instead of starting a second one. The response is the pending execution.
@@ -65560,4 +66752,4 @@ declare function getLikelySupportingCandidatePaths(bestCandidatePath: string | u
65560
66752
  declare function getDefaultPlanPath(taskName: string): string;
65561
66753
  declare function sanitizeTaskSlug(taskName: string): string;
65562
66754
 
65563
- export { type AIGrader, type ActivateAgentAliasInput, type ActivateAgentPromotionInput, type Agent, type AgentAdmissionOptions, type AgentAlias, type AgentAliasActivation, type AgentAliasArchiveFailure, type AgentAliasArchived, AgentAliasDependencyError, type AgentAliasList, AgentAliasNotFoundError, AgentAliasPreviewLimitError, AgentAliasRevisionMismatchError, AgentAliasRevisionRequiredError, type AgentAliasTransport, AgentAliasesNamespace, type AgentApprovalCompleteEvent, type AgentApprovalStartEvent, type AgentCompleteEvent, type AgentDefinition, type AgentDefinitionConfig, type AgentDeploymentList, type AgentDeploymentPromotion, type AgentDeploymentReceipt, AgentDeploymentsNamespace, AgentDriftError, type AgentElicitation, type AgentElicitationRequest, AgentEnsureConflictError, type AgentErrorEvent, type AgentEvent, type AgentEventType, type AgentExecuteRequest, type AgentExecuteResponse, type AgentIterationCompleteEvent, type AgentIterationStartEvent, type AgentMediaEvent, type AgentMessage, type AgentPausedEvent, type AgentPingEvent, AgentPromotionError, type AgentPromotionManifest, type AgentPromotionTransport, type AgentPromotionValidation, type AgentPullResult, type AgentReflectionEvent, type AgentRunInsightsResponse, 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, type ApiKeyRequest, type ApiKeyRequestDelivery, type ApiKeyRequestEnvironment, type ApiKeyRequestHandoff, type ApiKeyRequestListParams, type ApiKeyRequestRequester, type ApiKeyRequestStatus, ApiKeyRequestsEndpoint, ApiKeysEndpoint, type ApiResponse, type ApplyGeneratedProposalOptions, type ApplyGeneratedProposalResult, type ArchiveAgentAliasEverywhereResult, type ArchiveAgentAliasInput, type AssetReferenceContentPart, type AsyncExecutionHandle, type AsyncExecutionStatus, 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 BuiltinToolExecuteResponse, type BulkEditCondition, type BulkEditRequest, type BulkEditResponse, type BulkEditResult, type CanonicalDispatchMessageContent, type CanonicalDispatchRequest, type CaseExpected, type CatalogClientToolRef, ChatEndpoint, type CheckGrader, type ClaimApiKeyRequestInput, type ClaimApiKeyRequestResponse, type ClaudeManagedEvalOverrideValues, ClientBatchBuilder, type ClientConfig, type ClientConversation, ClientEvalBuilder, ClientFlowBuilder, type ClientToken, type ClientTokenConfig, type ClientTokenEnvironment, type ClientTokenVersionPin, ClientTokensEndpoint, type ClientToolDefinition, type ClientToolEntry, type ClientWidgetTheme, type CollectionMeta, CollectionsEndpoint, 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 CreateApiKeyRequestInput, type CreateApiKeyRequestResponse, type CreateClientTokenRequest, type CreateClientTokenResponse, type CreateCollectionRequest, type CreateConversationRequest, type CreateEvalSuiteInput, type CreateFlowRequest, type CreateModelConfigRequest, type CreatePromptData, type CreatePromptRequest, type CreateProviderKeyRequest, type CreateRecordRequest, type CreateScheduleRequest, type CreateSecretRequest, type CreateToolRequest, type CurrentBilledSpendResponse, type CurrentBilledSpendSource, type CustomMCPServer, type CustomMCPServerAuth, type CustomToolConfig, DEFAULT_MAX_DETACHED_RECONNECTS, DEFAULT_RECOVERY_AFTER_EMPTY_SESSIONS, DEFAULT_STALL_STOP_AFTER, type DecomposeCriteriaResult, 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 DetachedReattach, type DetachedReconnectOptions, type DiscoveredModel, type DispatchAgentInput, type DispatchApprovalContinuationResponse, type DispatchApproveRequest, type DispatchApproveResponse, type DispatchClient, type DispatchContinuationRequest, type DispatchContinuationResponse, type DispatchDetachedApprovalResponse, type DispatchDetachedToolOutputResponse, DispatchEndpoint, type DispatchEnvironment, type DispatchEvent, type DispatchFlowInput, type DispatchMessageContent, type DispatchOptions$1 as DispatchOptions, type DispatchRequest, type DispatchResponse, type DispatchResumeJsonResponse, type DispatchResumeRequest, type DispatchResumeResponse, ENSURE_RELEASE_DEPLOY_CONFLICT_MESSAGE, type EndUserUsageQuery, type EndUserUsageResponse, 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, type EvalAgentSelector, type EvalAgentTargetResolution, EvalBuilder, type EvalCaseDefinition, type EvalCaseInput, type EvalCaseProposal, type EvalCaseProposalAccepted, type EvalCaseProposalListResult, type EvalCasesGenerated, type EvalClient, type EvalDefinition, EvalEndpoint, type EvalListParams, type EvalMessage, type EvalOptions, type EvalOverrideValues, type EvalProposalSource, type EvalProposalStatus, type EvalProposedCase, type EvalPullResult, type EvalRecord, type EvalRequest, type EvalResult, type EvalRunCaseScores, type EvalRunConfig, type EvalRunEvidence, type EvalRunScores, EvalRunner, type EvalStatus, type EvalSuiteCase, type EvalSuiteCaseInput, type EvalSuiteCoverage, type EvalSuiteDetail, type EvalSuiteLatestRun, type EvalSuiteListResult, type EvalSuiteRunQueued, type EvalSuiteRunResult, type EvalSuiteSummary, EvalSuitesNamespace, type EvalTarget, EvalsNamespace, type ExecuteToolRequest, type ExecuteToolResponse, type ExecutionCounts, type ExecutionStreamEvent, ExecutionsEndpoint, ExecutionsNamespace, type ExternalAgentContext, type ExternalToolConfig, type FallbackFailEvent, type FallbackStartEvent, type FallbackSuccessEvent, type FallbackTrigger, type FallbackTriggerType, type FallbacksExhaustedEvent, type FallbacksInitiatedEvent, 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 GenerateEvalCasesInput, type GeneratedRuntimeToolGateDecision, type GeneratedRuntimeToolGateOptions, type GetApiKeyRequestResponse, type GetRecordStepConfig$1 as GetRecordStepConfig, type Gradeable, type GraderConfig, type GraderOutcome, type GraderSeverity, type HealthInsight, type HumanVerdict, type ImageContentPart, type InferCollectionSchemaResponse, type InputDeliveryReceipt, type Integration, type IntegrationTool, IntegrationsEndpoint, type IntegrationsListResponse, type JSONSchema, type JsonArray, type JsonObject, type JsonPrimitive, type JsonValue, LEDGER_ARTIFACT_LINE_PREFIX, LIVE_AGENT_ALIAS, type ListAgentAliasesOptions, type ListAgentDeploymentsOptions, type ListCollectionsResponse, 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 LogSearchedWindow, type LogStatsParams, type LogStatsResponse, type LogStatsResult, LogsEndpoint, type LoopStepConfig$1 as LoopStepConfig, type Message$1 as Message, type MessageContent, type MessageFallback, type Metadata, type MetricDelta, type ModelConfig, ModelConfigsEndpoint, type ModelFallback, type ModelOverride, type ModelUsageDetail, type ModelUsageQueryParams, type ModelUsageResponse, type ModelUsageSummary, type ModelUsageTimeSeries, type OrganizationAgentAlias, type OrganizationAgentAliasList, type PaginationResponse, type PersistedGraderOutcome, type PrepareAgentPromotionInput, type ProductDefinition, ProductDriftError, ProductEnsureConflictError, type ProductPullResult, type ProductionHealthQuery, type ProductionHealthResponse, ProductsNamespace, type PromoteAgentInput, type PromoteAgentResult, 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 RecordCollection, type RecordCollectionWithHistory, type RecordCollections, 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 RollbackAgentAliasInput, type RunEvalCaseResult, type RunEvalInput, type RunEvalResult, type RunListParams, type RunListResponse, type RunListRow, 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, RunsNamespace, 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 FetchUrlStepConfig as RuntypeFetchUrlStepConfig, RuntypeFlowBuilder, type FlowConfig as RuntypeFlowConfig, type GenerateEmbeddingStepConfig as RuntypeGenerateEmbeddingStepConfig, type GetRecordStepConfig as RuntypeGetRecordStepConfig, type ListRecordsStepConfig as RuntypeListRecordsStepConfig, type LoopStepConfig as RuntypeLoopStepConfig, 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 SetVariableStepConfig as RuntypeSetVariableStepConfig, type Skill as RuntypeSkill, type SkillBindingWithAgent as RuntypeSkillBindingWithAgent, type SkillCapabilities as RuntypeSkillCapabilities, type SkillFrontmatter as RuntypeSkillFrontmatter, type SkillManifest as RuntypeSkillManifest, type SkillProposal as RuntypeSkillProposal, type SkillRuntypeExtensions as RuntypeSkillRuntypeExtensions, 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 SandboxDeployEffectivePolicy, type SandboxDeployRetention, type SandboxDeploySleepPolicy, type SavedToolExecuteResponse, 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 SelectOrganizationProviderCredentialRequest, type SelectOrganizationProviderCredentialResponse, type SendEmailStepConfig$1 as SendEmailStepConfig, type SendEventStepConfig$1 as SendEventStepConfig, type SendStreamStepConfig$1 as SendStreamStepConfig, 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 SlackAppStatusResponse, type SlackInstallRequest, type SlackManifestRequest, type SlackManifestResponse, type SlackOAuthStartRequest, type SlackOAuthStartResponse, 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 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, type TypedCreateRecordRequest, type TypedRecordListItem, type TypedRecordWriteResponse, TypedRecordsScope, type TypedRuntypeRecord, UNIFIED_EVENTS_QUERY, type UpdateClientTokenRequest, type UpdateCollectionRequest, type UpdateCollectionResponse, type UpdateConversationRequest, type UpdateEvalCaseInput, type UpdateEvalSuiteInput, type UpdateFlowRequest, type UpdatePromptData, type UpdateProviderKeyRequest, type UpdateScheduleRequest, type UpdateSecretRequest, type UpdateToolRequest, type UpdatedAgent, type UpdatedFlow, type UpsertFlowConfig$1 as UpsertFlowConfig, type UpsertOptions, type UpsertRecordStepConfig$1 as UpsertRecordStepConfig, type UserProfile, UsersEndpoint, type ValidateAgentPromotionInput, type ValidateExistingRecordsResponse, type VectorSearchStepConfig$1 as VectorSearchStepConfig, type VersionPublishOptions, 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, activateAgentPromotion, agentAliasErrorCode, applyGeneratedRuntimeToolProposalToDispatchRequest, attachRuntimeToolsToDispatchRequest, buildAgentAdmissionHeaders, buildEmptySessionNudge, buildExecutionEventsPath, buildGeneratedRuntimeToolGateOutput, buildLedgerOffloadReference, buildObservationMaskMarker, buildPolicyGuidance, buildSendViewOffloadMarker, calledTool, combineAbortSignals, 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, isBuiltinToolExecuteResponse, isCatalogClientToolRef, 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, prepareAgentPromotion, processStream, promoteAgent, promotionIdempotencyKey, pullEval, pullFpo, ranStep, regex, registerWorkflowHook, resolveStallStopAfter, resolveWorkflowHook, runEvalSuite, sanitizeTaskSlug, shouldInjectEmptySessionNudge, shouldRequestModelEscalation, stepOrder, streamEvents, toolOrder, unregisterWorkflowHook, usedNoTools, validJson, validateAgentPromotion, withDetachedReconnect, withUnifiedEvents };
66755
+ export { type AIGrader, type ActivateAgentAliasInput, type ActivateAgentPromotionInput, type Agent, type AgentAdmissionOptions, type AgentAlias, type AgentAliasActivation, type AgentAliasArchiveFailure, type AgentAliasArchived, AgentAliasDependencyError, type AgentAliasList, AgentAliasNotFoundError, AgentAliasPreviewLimitError, AgentAliasRevisionMismatchError, AgentAliasRevisionRequiredError, type AgentAliasTransport, AgentAliasesNamespace, type AgentApprovalCompleteEvent, type AgentApprovalStartEvent, type AgentCompleteEvent, type AgentDefinition, type AgentDefinitionConfig, type AgentDeploymentList, type AgentDeploymentPromotion, type AgentDeploymentReceipt, AgentDeploymentsNamespace, AgentDriftError, type AgentElicitation, type AgentElicitationRequest, AgentEnsureConflictError, type AgentErrorEvent, type AgentEvent, type AgentEventType, type AgentExecuteRequest, type AgentExecuteResponse, type AgentIterationCompleteEvent, type AgentIterationStartEvent, type AgentMediaEvent, type AgentMessage, type AgentPausedEvent, type AgentPingEvent, AgentPromotionError, type AgentPromotionManifest, type AgentPromotionTransport, type AgentPromotionValidation, type AgentPullResult, type AgentReflectionEvent, type AgentRunInsightsResponse, 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, type ApiKeyRequest, type ApiKeyRequestDelivery, type ApiKeyRequestEnvironment, type ApiKeyRequestHandoff, type ApiKeyRequestListParams, type ApiKeyRequestRequester, type ApiKeyRequestStatus, ApiKeyRequestsEndpoint, ApiKeysEndpoint, type ApiResponse, type ApplyGeneratedProposalOptions, type ApplyGeneratedProposalResult, type ArchiveAgentAliasEverywhereResult, type ArchiveAgentAliasInput, type AssetReferenceContentPart, type AsyncExecutionHandle, type AsyncExecutionStatus, 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 BuiltinToolExecuteResponse, type BulkEditCondition, type BulkEditRequest, type BulkEditResponse, type BulkEditResult, type CanonicalDispatchMessageContent, type CanonicalDispatchRequest, type CaseExpected, type CatalogClientToolRef, ChatEndpoint, type CheckGrader, type ClaimApiKeyRequestInput, type ClaimApiKeyRequestResponse, type ClaudeManagedEvalOverrideValues, ClientBatchBuilder, type ClientConfig, type ClientConversation, ClientEvalBuilder, ClientFlowBuilder, type ClientToken, type ClientTokenConfig, type ClientTokenDefinition, ClientTokenDriftError, ClientTokenEnsureError, type ClientTokenEnvironment, type ClientTokenVersionPin, ClientTokensEndpoint, ClientTokensNamespace, type ClientToolDefinition, type ClientToolEntry, type ClientWidgetTheme, type CollectionMeta, CollectionsEndpoint, 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 CreateApiKeyRequestInput, type CreateApiKeyRequestResponse, type CreateClientTokenRequest, type CreateClientTokenResponse, type CreateCollectionRequest, type CreateConversationRequest, type CreateEvalSuiteInput, type CreateFlowRequest, type CreateModelConfigRequest, type CreatePromptData, type CreatePromptRequest, type CreateProviderKeyRequest, type CreateRecordRequest, type CreateScheduleRequest, type CreateSecretRequest, type CreateToolRequest, type CurrentBilledSpendResponse, type CurrentBilledSpendSource, type CustomMCPServer, type CustomMCPServerAuth, type CustomToolConfig, DEFAULT_MAX_DETACHED_RECONNECTS, DEFAULT_RECOVERY_AFTER_EMPTY_SESSIONS, DEFAULT_STALL_STOP_AFTER, type DecomposeCriteriaResult, 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 DetachedReattach, type DetachedReconnectOptions, type DiscoveredModel, type DispatchAgentInput, type DispatchApprovalContinuationResponse, type DispatchApproveRequest, type DispatchApproveResponse, type DispatchClient, type DispatchContinuationRequest, type DispatchContinuationResponse, type DispatchDetachedApprovalResponse, type DispatchDetachedToolOutputResponse, DispatchEndpoint, type DispatchEnvironment, type DispatchEvent, type DispatchFlowInput, type DispatchMessageContent, type DispatchOptions$1 as DispatchOptions, type DispatchRequest, type DispatchResponse, type DispatchResumeJsonResponse, type DispatchResumeRequest, type DispatchResumeResponse, ENSURE_RELEASE_DEPLOY_CONFLICT_MESSAGE, type EndUserUsageQuery, type EndUserUsageResponse, type EnsureAgentConverged, type EnsureAgentOptions, type EnsureAgentPlan, type EnsureAgentResult, type EnsureClientTokenConverged, type EnsureClientTokenOptions, type EnsureClientTokenPlan, type EnsureClientTokenResult, 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, type EvalAgentSelector, type EvalAgentTargetResolution, EvalBuilder, type EvalCaseDefinition, type EvalCaseInput, type EvalCaseProposal, type EvalCaseProposalAccepted, type EvalCaseProposalListResult, type EvalCasesGenerated, type EvalClient, type EvalDefinition, EvalEndpoint, type EvalListParams, type EvalMessage, type EvalOptions, type EvalOverrideValues, type EvalProposalSource, type EvalProposalStatus, type EvalProposedCase, type EvalPullResult, type EvalRecord, type EvalRequest, type EvalResult, type EvalRunCaseScores, type EvalRunConfig, type EvalRunEvidence, type EvalRunScores, EvalRunner, type EvalStatus, type EvalSuiteCase, type EvalSuiteCaseInput, type EvalSuiteCoverage, type EvalSuiteDetail, type EvalSuiteLatestRun, type EvalSuiteListResult, type EvalSuiteRunQueued, type EvalSuiteRunResult, type EvalSuiteSummary, EvalSuitesNamespace, type EvalTarget, EvalsNamespace, type ExecuteToolRequest, type ExecuteToolResponse, type ExecutionCounts, type ExecutionStreamEvent, ExecutionsEndpoint, ExecutionsNamespace, type ExternalAgentContext, type ExternalToolConfig, type FallbackFailEvent, type FallbackStartEvent, type FallbackSuccessEvent, type FallbackTrigger, type FallbackTriggerType, type FallbacksExhaustedEvent, type FallbacksInitiatedEvent, 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 GenerateEvalCasesInput, type GeneratedRuntimeToolGateDecision, type GeneratedRuntimeToolGateOptions, type GetApiKeyRequestResponse, type GetRecordStepConfig$1 as GetRecordStepConfig, type Gradeable, type GraderConfig, type GraderOutcome, type GraderSeverity, type HealthInsight, type HumanVerdict, type ImageContentPart, type InferCollectionSchemaResponse, type InputDeliveryReceipt, type Integration, type IntegrationTool, IntegrationsEndpoint, type IntegrationsListResponse, type JSONSchema, type JsonArray, type JsonObject, type JsonPrimitive, type JsonValue, LEDGER_ARTIFACT_LINE_PREFIX, LIVE_AGENT_ALIAS, type ListAgentAliasesOptions, type ListAgentDeploymentsOptions, type ListCollectionsResponse, 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 LogSearchedWindow, type LogStatsParams, type LogStatsResponse, type LogStatsResult, LogsEndpoint, type LoopStepConfig$1 as LoopStepConfig, type Message$1 as Message, type MessageContent, type MessageFallback, type Metadata, type MetricDelta, type ModelConfig, ModelConfigsEndpoint, type ModelFallback, type ModelOverride, type ModelUsageDetail, type ModelUsageQueryParams, type ModelUsageResponse, type ModelUsageSummary, type ModelUsageTimeSeries, type OrganizationAgentAlias, type OrganizationAgentAliasList, type PaginationResponse, type PersistedGraderOutcome, type PrepareAgentPromotionInput, type ProductDefinition, ProductDriftError, ProductEnsureConflictError, type ProductPullResult, type ProductionHealthQuery, type ProductionHealthResponse, ProductsNamespace, type PromoteAgentInput, type PromoteAgentResult, 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 RecordCollection, type RecordCollectionWithHistory, type RecordCollections, 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 RollbackAgentAliasInput, type RunEvalCaseResult, type RunEvalInput, type RunEvalResult, type RunListParams, type RunListResponse, type RunListRow, 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, RunsNamespace, 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 FetchUrlStepConfig as RuntypeFetchUrlStepConfig, RuntypeFlowBuilder, type FlowConfig as RuntypeFlowConfig, type GenerateEmbeddingStepConfig as RuntypeGenerateEmbeddingStepConfig, type GetRecordStepConfig as RuntypeGetRecordStepConfig, type ListRecordsStepConfig as RuntypeListRecordsStepConfig, type LoopStepConfig as RuntypeLoopStepConfig, 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 SetVariableStepConfig as RuntypeSetVariableStepConfig, type Skill as RuntypeSkill, type SkillBindingWithAgent as RuntypeSkillBindingWithAgent, type SkillCapabilities as RuntypeSkillCapabilities, type SkillFrontmatter as RuntypeSkillFrontmatter, type SkillManifest as RuntypeSkillManifest, type SkillProposal as RuntypeSkillProposal, type SkillRuntypeExtensions as RuntypeSkillRuntypeExtensions, 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 SandboxDeployEffectivePolicy, type SandboxDeployRetention, type SandboxDeploySleepPolicy, type SavedToolExecuteResponse, 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 SelectOrganizationProviderCredentialRequest, type SelectOrganizationProviderCredentialResponse, type SendEmailStepConfig$1 as SendEmailStepConfig, type SendEventStepConfig$1 as SendEventStepConfig, type SendStreamStepConfig$1 as SendStreamStepConfig, 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 SlackAppStatusResponse, type SlackInstallRequest, type SlackManifestRequest, type SlackManifestResponse, type SlackOAuthStartRequest, type SlackOAuthStartResponse, 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 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, type TypedCreateRecordRequest, type TypedRecordListItem, type TypedRecordWriteResponse, TypedRecordsScope, type TypedRuntypeRecord, UNIFIED_EVENTS_QUERY, type UpdateClientTokenRequest, type UpdateCollectionRequest, type UpdateCollectionResponse, type UpdateConversationRequest, type UpdateEvalCaseInput, type UpdateEvalSuiteInput, type UpdateFlowRequest, type UpdatePromptData, type UpdateProviderKeyRequest, type UpdateScheduleRequest, type UpdateSecretRequest, type UpdateToolRequest, type UpdatedAgent, type UpdatedFlow, type UpsertFlowConfig$1 as UpsertFlowConfig, type UpsertOptions, type UpsertRecordStepConfig$1 as UpsertRecordStepConfig, type UserProfile, UsersEndpoint, type ValidateAgentPromotionInput, type ValidateExistingRecordsResponse, type VectorSearchStepConfig$1 as VectorSearchStepConfig, type VersionPublishOptions, 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, activateAgentPromotion, agentAliasErrorCode, applyGeneratedRuntimeToolProposalToDispatchRequest, attachRuntimeToolsToDispatchRequest, buildAgentAdmissionHeaders, buildEmptySessionNudge, buildExecutionEventsPath, buildGeneratedRuntimeToolGateOutput, buildLedgerOffloadReference, buildObservationMaskMarker, buildPolicyGuidance, buildSendViewOffloadMarker, calledTool, combineAbortSignals, 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, isBuiltinToolExecuteResponse, isCatalogClientToolRef, 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, prepareAgentPromotion, processStream, promoteAgent, promotionIdempotencyKey, pullEval, pullFpo, ranStep, regex, registerWorkflowHook, resolveStallStopAfter, resolveWorkflowHook, runEvalSuite, sanitizeTaskSlug, shouldInjectEmptySessionNudge, shouldRequestModelEscalation, stepOrder, streamEvents, toolOrder, unregisterWorkflowHook, usedNoTools, validJson, validateAgentPromotion, withDetachedReconnect, withUnifiedEvents };