@runtypelabs/sdk 10.3.1 → 10.4.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.cjs CHANGED
@@ -14154,7 +14154,7 @@ function transformQueryParams(params) {
14154
14154
 
14155
14155
  // src/version.ts
14156
14156
  var FALLBACK_VERSION = "0.0.0";
14157
- var SDK_VERSION = "10.3.1".length > 0 ? "10.3.1" : FALLBACK_VERSION;
14157
+ var SDK_VERSION = "10.4.0".length > 0 ? "10.4.0" : FALLBACK_VERSION;
14158
14158
  var RUNTYPE_CLIENT_KIND = "sdk";
14159
14159
  var SDK_USER_AGENT = `runtype-sdk/${SDK_VERSION} (typescript)`;
14160
14160
 
package/dist/index.d.cts 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} */
@@ -4220,8 +4232,8 @@ interface paths {
4220
4232
  parameters: {
4221
4233
  query?: never;
4222
4234
  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";
4235
+ /** @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. */
4236
+ "x-runtype-concurrency"?: "reject" | "supersede" | "queue" | "steer";
4225
4237
  /** @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
4238
  "x-runtype-coalesce"?: "true";
4227
4239
  /** @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 +4307,7 @@ interface paths {
4295
4307
  "application/json": components["schemas"]["Error"];
4296
4308
  };
4297
4309
  };
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) */
4310
+ /** @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
4311
  409: {
4300
4312
  headers: {
4301
4313
  [name: string]: unknown;
@@ -8570,7 +8582,7 @@ interface paths {
8570
8582
  put?: never;
8571
8583
  /**
8572
8584
  * 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.
8585
+ * @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
8586
  */
8575
8587
  post: {
8576
8588
  parameters: {
@@ -8641,7 +8653,7 @@ interface paths {
8641
8653
  };
8642
8654
  sessionId: string;
8643
8655
  /** @enum {string} */
8644
- submitMode?: "normal" | "interrupt" | "join";
8656
+ submitMode?: "normal" | "interrupt" | "steer";
8645
8657
  turnId?: string;
8646
8658
  };
8647
8659
  };
@@ -8714,7 +8726,7 @@ interface paths {
8714
8726
  "application/json": components["schemas"]["Error"];
8715
8727
  };
8716
8728
  };
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`. */
8729
+ /** @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
8730
  409: {
8719
8731
  headers: {
8720
8732
  [name: string]: unknown;
@@ -9770,7 +9782,7 @@ interface paths {
9770
9782
  /** @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
9783
  enabled: boolean;
9772
9784
  /** @description Whether the native durable target supports non-interrupting user-message delivery. */
9773
- join?: boolean;
9785
+ steer?: boolean;
9774
9786
  };
9775
9787
  /** @description ISO-8601 session idle-expiry timestamp. */
9776
9788
  expiresAt: string;
@@ -12898,7 +12910,7 @@ interface paths {
12898
12910
  put?: never;
12899
12911
  /**
12900
12912
  * 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.
12913
+ * @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
12914
  */
12903
12915
  post: {
12904
12916
  parameters: {
@@ -13200,7 +13212,7 @@ interface paths {
13200
13212
  steps?: unknown[];
13201
13213
  };
13202
13214
  /**
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.
13215
+ * @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
13216
  * @enum {string}
13205
13217
  */
13206
13218
  history?: "inline" | "stored";
@@ -13650,7 +13662,7 @@ interface paths {
13650
13662
  steps?: unknown[];
13651
13663
  };
13652
13664
  /**
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.
13665
+ * @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
13666
  * @enum {string}
13655
13667
  */
13656
13668
  history?: "inline" | "stored";
@@ -13877,7 +13889,7 @@ interface paths {
13877
13889
  "application/json": components["schemas"]["Error"];
13878
13890
  };
13879
13891
  };
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) */
13892
+ /** @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
13893
  409: {
13882
13894
  headers: {
13883
13895
  [name: string]: unknown;
@@ -49670,6 +49682,10 @@ interface components {
49670
49682
  thresholdTokens?: number;
49671
49683
  };
49672
49684
  toolResults?: {
49685
+ /**
49686
+ * @deprecated
49687
+ * @description Deprecated and ignored. Tool results are never spilled.
49688
+ */
49673
49689
  inlineThresholdChars?: number;
49674
49690
  pruneHotWindowTokens?: number;
49675
49691
  /** @enum {string} */
@@ -50063,6 +50079,13 @@ interface components {
50063
50079
  ChannelContextDecision: {
50064
50080
  /** @description Whether the assistant ran for this message. */
50065
50081
  activated: boolean;
50082
+ /** @description The capability the judgment chose on a surface with several capabilities and no entry point. In judge mode only route activates a reply. */
50083
+ capability?: {
50084
+ capabilityId?: string;
50085
+ /** @enum {string} */
50086
+ outcome: "route" | "clarify" | "decline" | "unanswered";
50087
+ probability?: number;
50088
+ };
50066
50089
  /**
50067
50090
  * @description The response gate decision. not_judged means no judgment answered: the mode never asks one, or the judgment failed and the message waited for a mention.
50068
50091
  * @enum {string}
@@ -50120,10 +50143,10 @@ interface components {
50120
50143
  /** @enum {string} */
50121
50144
  code: "CONVERSATION_BUSY";
50122
50145
  error: string;
50123
- /** @description The execution holding the conversation slot. Poll /v1/executions/{executionId}/status, or send x-runtype-concurrency: join to attach to it. */
50146
+ /** @description The execution holding the conversation slot. Poll /v1/executions/{executionId}/status, or send x-runtype-concurrency: steer to attach to it. */
50124
50147
  executionId?: string;
50125
50148
  /**
50126
- * @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).
50149
+ * @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).
50127
50150
  * @enum {string}
50128
50151
  */
50129
50152
  phase?: "claiming" | "running" | "paused" | "queued";
@@ -58824,6 +58847,7 @@ interface AgentDefinitionConfig {
58824
58847
  model?: string;
58825
58848
  };
58826
58849
  toolResults?: {
58850
+ /** @deprecated Ignored: tool results are never spilled. */
58827
58851
  inlineThresholdChars?: number;
58828
58852
  pruneHotWindowTokens?: number;
58829
58853
  pruneMode?: 'mask' | 'off';
@@ -62706,7 +62730,7 @@ interface AgentExecuteRequest {
62706
62730
  model?: string;
62707
62731
  };
62708
62732
  toolResults?: {
62709
- /** Tool results longer than this are spilled and replaced by a marker. */
62733
+ /** @deprecated Ignored: tool results are never spilled. */
62710
62734
  inlineThresholdChars?: number;
62711
62735
  /** Tool output newer than this budget is never masked. */
62712
62736
  pruneHotWindowTokens?: number;
@@ -63205,15 +63229,15 @@ interface Agent {
63205
63229
  createdAt: string;
63206
63230
  updatedAt: string;
63207
63231
  }
63208
- /** Durable admission headers for agent execute and dispatch. Join requires native durable execution. */
63232
+ /** Durable admission headers for agent execute and dispatch. Steer requires native durable execution. */
63209
63233
  interface AgentAdmissionOptions {
63210
63234
  /**
63211
63235
  * What to do when the conversation already has a turn in flight. `reject`
63212
63236
  * (the default when omitted) answers `CONVERSATION_BUSY`; `supersede`
63213
- * cancels the incumbent and takes over; `queue` runs after it; `join` delivers
63237
+ * cancels the incumbent and takes over; `queue` runs after it; `steer` delivers
63214
63238
  * new user-message deltas to the incumbent at a safe boundary, without resetting its budgets.
63215
63239
  */
63216
- concurrency?: 'reject' | 'supersede' | 'queue' | 'join';
63240
+ concurrency?: 'reject' | 'supersede' | 'queue' | 'steer';
63217
63241
  /**
63218
63242
  * Fold this request into an already-pending turn for the same conversation
63219
63243
  * instead of starting a second one. The response is the pending execution.
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} */
@@ -4220,8 +4232,8 @@ interface paths {
4220
4232
  parameters: {
4221
4233
  query?: never;
4222
4234
  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";
4235
+ /** @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. */
4236
+ "x-runtype-concurrency"?: "reject" | "supersede" | "queue" | "steer";
4225
4237
  /** @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
4238
  "x-runtype-coalesce"?: "true";
4227
4239
  /** @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 +4307,7 @@ interface paths {
4295
4307
  "application/json": components["schemas"]["Error"];
4296
4308
  };
4297
4309
  };
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) */
4310
+ /** @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
4311
  409: {
4300
4312
  headers: {
4301
4313
  [name: string]: unknown;
@@ -8570,7 +8582,7 @@ interface paths {
8570
8582
  put?: never;
8571
8583
  /**
8572
8584
  * 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.
8585
+ * @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
8586
  */
8575
8587
  post: {
8576
8588
  parameters: {
@@ -8641,7 +8653,7 @@ interface paths {
8641
8653
  };
8642
8654
  sessionId: string;
8643
8655
  /** @enum {string} */
8644
- submitMode?: "normal" | "interrupt" | "join";
8656
+ submitMode?: "normal" | "interrupt" | "steer";
8645
8657
  turnId?: string;
8646
8658
  };
8647
8659
  };
@@ -8714,7 +8726,7 @@ interface paths {
8714
8726
  "application/json": components["schemas"]["Error"];
8715
8727
  };
8716
8728
  };
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`. */
8729
+ /** @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
8730
  409: {
8719
8731
  headers: {
8720
8732
  [name: string]: unknown;
@@ -9770,7 +9782,7 @@ interface paths {
9770
9782
  /** @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
9783
  enabled: boolean;
9772
9784
  /** @description Whether the native durable target supports non-interrupting user-message delivery. */
9773
- join?: boolean;
9785
+ steer?: boolean;
9774
9786
  };
9775
9787
  /** @description ISO-8601 session idle-expiry timestamp. */
9776
9788
  expiresAt: string;
@@ -12898,7 +12910,7 @@ interface paths {
12898
12910
  put?: never;
12899
12911
  /**
12900
12912
  * 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.
12913
+ * @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
12914
  */
12903
12915
  post: {
12904
12916
  parameters: {
@@ -13200,7 +13212,7 @@ interface paths {
13200
13212
  steps?: unknown[];
13201
13213
  };
13202
13214
  /**
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.
13215
+ * @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
13216
  * @enum {string}
13205
13217
  */
13206
13218
  history?: "inline" | "stored";
@@ -13650,7 +13662,7 @@ interface paths {
13650
13662
  steps?: unknown[];
13651
13663
  };
13652
13664
  /**
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.
13665
+ * @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
13666
  * @enum {string}
13655
13667
  */
13656
13668
  history?: "inline" | "stored";
@@ -13877,7 +13889,7 @@ interface paths {
13877
13889
  "application/json": components["schemas"]["Error"];
13878
13890
  };
13879
13891
  };
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) */
13892
+ /** @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
13893
  409: {
13882
13894
  headers: {
13883
13895
  [name: string]: unknown;
@@ -49670,6 +49682,10 @@ interface components {
49670
49682
  thresholdTokens?: number;
49671
49683
  };
49672
49684
  toolResults?: {
49685
+ /**
49686
+ * @deprecated
49687
+ * @description Deprecated and ignored. Tool results are never spilled.
49688
+ */
49673
49689
  inlineThresholdChars?: number;
49674
49690
  pruneHotWindowTokens?: number;
49675
49691
  /** @enum {string} */
@@ -50063,6 +50079,13 @@ interface components {
50063
50079
  ChannelContextDecision: {
50064
50080
  /** @description Whether the assistant ran for this message. */
50065
50081
  activated: boolean;
50082
+ /** @description The capability the judgment chose on a surface with several capabilities and no entry point. In judge mode only route activates a reply. */
50083
+ capability?: {
50084
+ capabilityId?: string;
50085
+ /** @enum {string} */
50086
+ outcome: "route" | "clarify" | "decline" | "unanswered";
50087
+ probability?: number;
50088
+ };
50066
50089
  /**
50067
50090
  * @description The response gate decision. not_judged means no judgment answered: the mode never asks one, or the judgment failed and the message waited for a mention.
50068
50091
  * @enum {string}
@@ -50120,10 +50143,10 @@ interface components {
50120
50143
  /** @enum {string} */
50121
50144
  code: "CONVERSATION_BUSY";
50122
50145
  error: string;
50123
- /** @description The execution holding the conversation slot. Poll /v1/executions/{executionId}/status, or send x-runtype-concurrency: join to attach to it. */
50146
+ /** @description The execution holding the conversation slot. Poll /v1/executions/{executionId}/status, or send x-runtype-concurrency: steer to attach to it. */
50124
50147
  executionId?: string;
50125
50148
  /**
50126
- * @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).
50149
+ * @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).
50127
50150
  * @enum {string}
50128
50151
  */
50129
50152
  phase?: "claiming" | "running" | "paused" | "queued";
@@ -58824,6 +58847,7 @@ interface AgentDefinitionConfig {
58824
58847
  model?: string;
58825
58848
  };
58826
58849
  toolResults?: {
58850
+ /** @deprecated Ignored: tool results are never spilled. */
58827
58851
  inlineThresholdChars?: number;
58828
58852
  pruneHotWindowTokens?: number;
58829
58853
  pruneMode?: 'mask' | 'off';
@@ -62706,7 +62730,7 @@ interface AgentExecuteRequest {
62706
62730
  model?: string;
62707
62731
  };
62708
62732
  toolResults?: {
62709
- /** Tool results longer than this are spilled and replaced by a marker. */
62733
+ /** @deprecated Ignored: tool results are never spilled. */
62710
62734
  inlineThresholdChars?: number;
62711
62735
  /** Tool output newer than this budget is never masked. */
62712
62736
  pruneHotWindowTokens?: number;
@@ -63205,15 +63229,15 @@ interface Agent {
63205
63229
  createdAt: string;
63206
63230
  updatedAt: string;
63207
63231
  }
63208
- /** Durable admission headers for agent execute and dispatch. Join requires native durable execution. */
63232
+ /** Durable admission headers for agent execute and dispatch. Steer requires native durable execution. */
63209
63233
  interface AgentAdmissionOptions {
63210
63234
  /**
63211
63235
  * What to do when the conversation already has a turn in flight. `reject`
63212
63236
  * (the default when omitted) answers `CONVERSATION_BUSY`; `supersede`
63213
- * cancels the incumbent and takes over; `queue` runs after it; `join` delivers
63237
+ * cancels the incumbent and takes over; `queue` runs after it; `steer` delivers
63214
63238
  * new user-message deltas to the incumbent at a safe boundary, without resetting its budgets.
63215
63239
  */
63216
- concurrency?: 'reject' | 'supersede' | 'queue' | 'join';
63240
+ concurrency?: 'reject' | 'supersede' | 'queue' | 'steer';
63217
63241
  /**
63218
63242
  * Fold this request into an already-pending turn for the same conversation
63219
63243
  * instead of starting a second one. The response is the pending execution.
package/dist/index.mjs CHANGED
@@ -13938,7 +13938,7 @@ function transformQueryParams(params) {
13938
13938
 
13939
13939
  // src/version.ts
13940
13940
  var FALLBACK_VERSION = "0.0.0";
13941
- var SDK_VERSION = "10.3.1".length > 0 ? "10.3.1" : FALLBACK_VERSION;
13941
+ var SDK_VERSION = "10.4.0".length > 0 ? "10.4.0" : FALLBACK_VERSION;
13942
13942
  var RUNTYPE_CLIENT_KIND = "sdk";
13943
13943
  var SDK_USER_AGENT = `runtype-sdk/${SDK_VERSION} (typescript)`;
13944
13944
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runtypelabs/sdk",
3
- "version": "10.3.1",
3
+ "version": "10.4.0",
4
4
  "type": "module",
5
5
  "description": "TypeScript SDK for the Runtype API with fluent methods. Use it to quickly realize AI products, agents, and workflows.",
6
6
  "main": "dist/index.cjs",
@@ -24,7 +24,7 @@
24
24
  ],
25
25
  "dependencies": {},
26
26
  "devDependencies": {
27
- "@runtypelabs/shared": "3.61.1",
27
+ "@runtypelabs/shared": "3.62.0",
28
28
  "openapi-typescript": "^7.13.0",
29
29
  "tsup": "^8.0.2",
30
30
  "typescript": "^6.0.3",