@theokit/sdk 2.11.1 → 2.11.2

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.
@@ -92,6 +92,14 @@ export interface LlmRequest {
92
92
  reasoning?: {
93
93
  effort: string;
94
94
  };
95
+ /**
96
+ * Step-cap force-close: per-request tool gating. `"none"` tells the provider to emit no tool
97
+ * calls even when `tools` are present (forcing a text answer); `"required"` forces a tool call;
98
+ * `"auto"` (or omitted) is the default. Maps to OpenAI/OpenRouter `tool_choice`. The agent loop
99
+ * sets `"none"` on a final/ceiling round so a cached agent (whose tools cannot be un-registered)
100
+ * is still forced to produce a closing summary.
101
+ */
102
+ toolChoice?: "auto" | "none" | "required";
95
103
  }
96
104
  export type LlmEvent = {
97
105
  type: "text_delta";
@@ -827,6 +827,13 @@ interface SendOptions {
827
827
  onDelta?: (args: {
828
828
  update: InteractionUpdate;
829
829
  }) => void | Promise<void>;
830
+ /**
831
+ * Per-call tool gate (OpenAI/OpenRouter `tool_choice`). `"none"` forces a text answer even when
832
+ * the agent has tools registered — used by an agent loop to force a closing summary at its step
833
+ * ceiling (a cached agent's tools cannot be un-registered, so the gate is per-send). `"required"`
834
+ * forces a tool call; `"auto"` (or omitted) is the default. Local runtime; OpenAI-compat providers.
835
+ */
836
+ toolChoice?: "auto" | "none" | "required";
830
837
  /** Local agents only. Expire a stuck active run before starting this message. */
831
838
  local?: {
832
839
  force?: boolean;
@@ -827,6 +827,13 @@ interface SendOptions {
827
827
  onDelta?: (args: {
828
828
  update: InteractionUpdate;
829
829
  }) => void | Promise<void>;
830
+ /**
831
+ * Per-call tool gate (OpenAI/OpenRouter `tool_choice`). `"none"` forces a text answer even when
832
+ * the agent has tools registered — used by an agent loop to force a closing summary at its step
833
+ * ceiling (a cached agent's tools cannot be un-registered, so the gate is per-send). `"required"`
834
+ * forces a tool call; `"auto"` (or omitted) is the default. Local runtime; OpenAI-compat providers.
835
+ */
836
+ toolChoice?: "auto" | "none" | "required";
830
837
  /** Local agents only. Expire a stuck active run before starting this message. */
831
838
  local?: {
832
839
  force?: boolean;
@@ -221,6 +221,13 @@ export interface SendOptions {
221
221
  onDelta?: (args: {
222
222
  update: InteractionUpdate;
223
223
  }) => void | Promise<void>;
224
+ /**
225
+ * Per-call tool gate (OpenAI/OpenRouter `tool_choice`). `"none"` forces a text answer even when
226
+ * the agent has tools registered — used by an agent loop to force a closing summary at its step
227
+ * ceiling (a cached agent's tools cannot be un-registered, so the gate is per-send). `"required"`
228
+ * forces a tool call; `"auto"` (or omitted) is the default. Local runtime; OpenAI-compat providers.
229
+ */
230
+ toolChoice?: "auto" | "none" | "required";
224
231
  /** Local agents only. Expire a stuck active run before starting this message. */
225
232
  local?: {
226
233
  force?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theokit/sdk",
3
- "version": "2.11.1",
3
+ "version": "2.11.2",
4
4
  "description": "TypeScript SDK for the Theo agent harness — same surface, local or cloud.",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/usetheo/theokit-sdk#readme",