summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.opencode/opencode.jsonc4
-rw-r--r--packages/opencode/src/acp/agent.ts1
-rw-r--r--packages/opencode/src/lsp/server.ts10
-rw-r--r--packages/opencode/src/provider/models.ts10
-rw-r--r--packages/opencode/src/provider/provider.ts8
-rw-r--r--packages/opencode/src/provider/transform.ts18
-rw-r--r--packages/opencode/src/session/compaction.ts1
-rw-r--r--packages/opencode/src/session/prompt.ts67
-rw-r--r--packages/opencode/src/session/summary.ts4
-rw-r--r--packages/opencode/test/provider/transform.test.ts4
-rw-r--r--packages/sdk/js/openapi.json1491
-rw-r--r--packages/sdk/js/src/v2/gen/types.gen.ts15
12 files changed, 414 insertions, 1219 deletions
diff --git a/.opencode/opencode.jsonc b/.opencode/opencode.jsonc
index c34163889..dc0bee7c3 100644
--- a/.opencode/opencode.jsonc
+++ b/.opencode/opencode.jsonc
@@ -7,9 +7,7 @@
"instructions": ["STYLE_GUIDE.md"],
"provider": {
"opencode": {
- "options": {
- // "baseURL": "http://localhost:8080",
- },
+ "options": {},
},
},
"mcp": {
diff --git a/packages/opencode/src/acp/agent.ts b/packages/opencode/src/acp/agent.ts
index 0db8671c5..ae4798d96 100644
--- a/packages/opencode/src/acp/agent.ts
+++ b/packages/opencode/src/acp/agent.ts
@@ -25,7 +25,6 @@ import { Provider } from "../provider/provider"
import { Installation } from "@/installation"
import { MessageV2 } from "@/session/message-v2"
import { Config } from "@/config/config"
-import { MCP } from "@/mcp"
import { Todo } from "@/session/todo"
import { z } from "zod"
import { LoadAPIKeyError } from "ai"
diff --git a/packages/opencode/src/lsp/server.ts b/packages/opencode/src/lsp/server.ts
index e71c0f745..daee7db73 100644
--- a/packages/opencode/src/lsp/server.ts
+++ b/packages/opencode/src/lsp/server.ts
@@ -211,7 +211,15 @@ export namespace LSPServer {
export const Biome: Info = {
id: "biome",
- root: NearestRoot(["biome.json", "biome.jsonc", "package-lock.json", "bun.lockb", "bun.lock", "pnpm-lock.yaml", "yarn.lock"]),
+ root: NearestRoot([
+ "biome.json",
+ "biome.jsonc",
+ "package-lock.json",
+ "bun.lockb",
+ "bun.lock",
+ "pnpm-lock.yaml",
+ "yarn.lock",
+ ]),
extensions: [
".ts",
".tsx",
diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts
index 3d28787c8..0587937b5 100644
--- a/packages/opencode/src/provider/models.ts
+++ b/packages/opencode/src/provider/models.ts
@@ -17,6 +17,16 @@ export namespace ModelsDev {
reasoning: z.boolean(),
temperature: z.boolean(),
tool_call: z.boolean(),
+ interleaved: z
+ .union([
+ z.literal(true),
+ z
+ .object({
+ field: z.enum(["reasoning_content", "reasoning_details"]),
+ })
+ .strict(),
+ ])
+ .optional(),
cost: z
.object({
input: z.number(),
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index 880238a0d..2d17b3d15 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -349,6 +349,12 @@ export namespace Provider {
video: z.boolean(),
pdf: z.boolean(),
}),
+ interleaved: z.union([
+ z.boolean(),
+ z.object({
+ field: z.enum(["reasoning_content", "reasoning_details"]),
+ }),
+ ]),
}),
cost: z.object({
input: z.number(),
@@ -450,6 +456,7 @@ export namespace Provider {
video: model.modalities?.output?.includes("video") ?? false,
pdf: model.modalities?.output?.includes("pdf") ?? false,
},
+ interleaved: model.interleaved ?? false,
},
}
}
@@ -567,6 +574,7 @@ export namespace Provider {
video: model.modalities?.output?.includes("video") ?? existingModel?.capabilities.output.video ?? false,
pdf: model.modalities?.output?.includes("pdf") ?? existingModel?.capabilities.output.pdf ?? false,
},
+ interleaved: model.interleaved ?? false,
},
cost: {
input: model?.cost?.input ?? existingModel?.cost?.input ?? 0,
diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts
index fb432860a..891025cde 100644
--- a/packages/opencode/src/provider/transform.ts
+++ b/packages/opencode/src/provider/transform.ts
@@ -273,7 +273,23 @@ export namespace ProviderTransform {
return options
}
- export function providerOptions(model: Provider.Model, options: { [x: string]: any }) {
+ export function providerOptions(model: Provider.Model, options: { [x: string]: any }, messages: ModelMessage[]) {
+ if (model.capabilities.interleaved && typeof model.capabilities.interleaved === "object") {
+ const cot = []
+ const assistantMessages = messages.filter((msg) => msg.role === "assistant")
+ for (const msg of assistantMessages) {
+ for (const part of msg.content) {
+ if (typeof part === "string") {
+ continue
+ }
+ if (part.type === "reasoning") {
+ cot.push(part)
+ }
+ }
+ }
+ options[model.capabilities.interleaved.field] = cot
+ }
+
switch (model.api.npm) {
case "@ai-sdk/openai":
case "@ai-sdk/azure":
diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts
index 45bab9ae6..c25e16dc5 100644
--- a/packages/opencode/src/session/compaction.ts
+++ b/packages/opencode/src/session/compaction.ts
@@ -143,6 +143,7 @@ export namespace SessionCompaction {
providerOptions: ProviderTransform.providerOptions(
model,
pipe({}, mergeDeep(ProviderTransform.options(model, input.sessionID)), mergeDeep(model.options)),
+ [],
),
headers: model.headers,
abortSignal: input.abort,
diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts
index 266879ebb..10520338c 100644
--- a/packages/opencode/src/session/prompt.ts
+++ b/packages/opencode/src/session/prompt.ts
@@ -515,6 +515,37 @@ export namespace SessionPrompt {
})
}
+ const messages = [
+ ...system.map(
+ (x): ModelMessage => ({
+ role: "system",
+ content: x,
+ }),
+ ),
+ ...MessageV2.toModelMessage(
+ msgs.filter((m) => {
+ if (m.info.role !== "assistant" || m.info.error === undefined) {
+ return true
+ }
+ if (
+ MessageV2.AbortedError.isInstance(m.info.error) &&
+ m.parts.some((part) => part.type !== "step-start" && part.type !== "reasoning")
+ ) {
+ return true
+ }
+
+ return false
+ }),
+ ),
+ ...(isLastStep
+ ? [
+ {
+ role: "assistant" as const,
+ content: MAX_STEPS,
+ },
+ ]
+ : []),
+ ]
const result = await processor.process({
onError(error) {
log.error("stream error", {
@@ -562,42 +593,12 @@ export namespace SessionPrompt {
OUTPUT_TOKEN_MAX,
),
abortSignal: abort,
- providerOptions: ProviderTransform.providerOptions(model, params.options),
+ providerOptions: ProviderTransform.providerOptions(model, params.options, messages),
stopWhen: stepCountIs(1),
temperature: params.temperature,
topP: params.topP,
toolChoice: isLastStep ? "none" : undefined,
- messages: [
- ...system.map(
- (x): ModelMessage => ({
- role: "system",
- content: x,
- }),
- ),
- ...MessageV2.toModelMessage(
- msgs.filter((m) => {
- if (m.info.role !== "assistant" || m.info.error === undefined) {
- return true
- }
- if (
- MessageV2.AbortedError.isInstance(m.info.error) &&
- m.parts.some((part) => part.type !== "step-start" && part.type !== "reasoning")
- ) {
- return true
- }
-
- return false
- }),
- ),
- ...(isLastStep
- ? [
- {
- role: "assistant" as const,
- content: MAX_STEPS,
- },
- ]
- : []),
- ],
+ messages,
tools: model.capabilities.toolcall === false ? undefined : tools,
model: wrapLanguageModel({
model: language,
@@ -1464,7 +1465,7 @@ export namespace SessionPrompt {
await generateText({
// use higher # for reasoning models since reasoning tokens eat up a lot of the budget
maxOutputTokens: small.capabilities.reasoning ? 3000 : 20,
- providerOptions: ProviderTransform.providerOptions(small, options),
+ providerOptions: ProviderTransform.providerOptions(small, options, []),
messages: [
...SystemPrompt.title(small.providerID).map(
(x): ModelMessage => ({
diff --git a/packages/opencode/src/session/summary.ts b/packages/opencode/src/session/summary.ts
index ab6a98686..09cdeb23a 100644
--- a/packages/opencode/src/session/summary.ts
+++ b/packages/opencode/src/session/summary.ts
@@ -91,7 +91,7 @@ export namespace SessionSummary {
if (textPart && !userMsg.summary?.title) {
const result = await generateText({
maxOutputTokens: small.capabilities.reasoning ? 1500 : 20,
- providerOptions: ProviderTransform.providerOptions(small, options),
+ providerOptions: ProviderTransform.providerOptions(small, options, []),
messages: [
...SystemPrompt.title(small.providerID).map(
(x): ModelMessage => ({
@@ -144,7 +144,7 @@ export namespace SessionSummary {
const result = await generateText({
model: language,
maxOutputTokens: 100,
- providerOptions: ProviderTransform.providerOptions(small, options),
+ providerOptions: ProviderTransform.providerOptions(small, options, []),
messages: [
...SystemPrompt.summarize(small.providerID).map(
(x): ModelMessage => ({
diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts
index 648f108bd..da473252d 100644
--- a/packages/opencode/test/provider/transform.test.ts
+++ b/packages/opencode/test/provider/transform.test.ts
@@ -130,6 +130,7 @@ describe("ProviderTransform.message - DeepSeek reasoning content", () => {
toolcall: true,
input: { text: true, audio: false, image: false, video: false, pdf: false },
output: { text: true, audio: false, image: false, video: false, pdf: false },
+ interleaved: false,
},
cost: {
input: 0.001,
@@ -184,6 +185,7 @@ describe("ProviderTransform.message - DeepSeek reasoning content", () => {
toolcall: true,
input: { text: true, audio: false, image: false, video: false, pdf: false },
output: { text: true, audio: false, image: false, video: false, pdf: false },
+ interleaved: false,
},
cost: {
input: 0.001,
@@ -236,6 +238,7 @@ describe("ProviderTransform.message - DeepSeek reasoning content", () => {
toolcall: true,
input: { text: true, audio: false, image: false, video: false, pdf: false },
output: { text: true, audio: false, image: false, video: false, pdf: false },
+ interleaved: false,
},
cost: {
input: 0.001,
@@ -281,6 +284,7 @@ describe("ProviderTransform.message - DeepSeek reasoning content", () => {
toolcall: true,
input: { text: true, audio: false, image: true, video: false, pdf: false },
output: { text: true, audio: false, image: false, video: false, pdf: false },
+ interleaved: false,
},
cost: {
input: 0.03,
diff --git a/packages/sdk/js/openapi.json b/packages/sdk/js/openapi.json
index 4e0226cb1..55c9af732 100644
--- a/packages/sdk/js/openapi.json
+++ b/packages/sdk/js/openapi.json
@@ -416,10 +416,7 @@
"type": "number"
}
},
- "required": [
- "rows",
- "cols"
- ]
+ "required": ["rows", "cols"]
}
}
}
@@ -997,9 +994,7 @@
],
"summary": "Get session",
"description": "Retrieve detailed information about a specific OpenCode session.",
- "tags": [
- "Session"
- ],
+ "tags": ["Session"],
"responses": {
"200": {
"description": "Get session",
@@ -1197,9 +1192,7 @@
}
],
"summary": "Get session children",
- "tags": [
- "Session"
- ],
+ "tags": ["Session"],
"description": "Retrieve all child sessions that were forked from the specified parent session.",
"responses": {
"200": {
@@ -1382,11 +1375,7 @@
"pattern": "^msg.*"
}
},
- "required": [
- "modelID",
- "providerID",
- "messageID"
- ]
+ "required": ["modelID", "providerID", "messageID"]
}
}
}
@@ -1784,10 +1773,7 @@
"type": "string"
}
},
- "required": [
- "providerID",
- "modelID"
- ]
+ "required": ["providerID", "modelID"]
}
}
}
@@ -1850,10 +1836,7 @@
}
}
},
- "required": [
- "info",
- "parts"
- ]
+ "required": ["info", "parts"]
}
}
}
@@ -1927,10 +1910,7 @@
}
}
},
- "required": [
- "info",
- "parts"
- ]
+ "required": ["info", "parts"]
}
}
}
@@ -1976,10 +1956,7 @@
"type": "string"
}
},
- "required": [
- "providerID",
- "modelID"
- ]
+ "required": ["providerID", "modelID"]
},
"agent": {
"type": "string"
@@ -2019,9 +1996,7 @@
}
}
},
- "required": [
- "parts"
- ]
+ "required": ["parts"]
}
}
}
@@ -2084,10 +2059,7 @@
}
}
},
- "required": [
- "info",
- "parts"
- ]
+ "required": ["info", "parts"]
}
}
}
@@ -2189,10 +2161,7 @@
"type": "string"
}
},
- "required": [
- "providerID",
- "modelID"
- ]
+ "required": ["providerID", "modelID"]
},
"agent": {
"type": "string"
@@ -2232,9 +2201,7 @@
}
}
},
- "required": [
- "parts"
- ]
+ "required": ["parts"]
}
}
}
@@ -2288,10 +2255,7 @@
}
}
},
- "required": [
- "info",
- "parts"
- ]
+ "required": ["info", "parts"]
}
}
}
@@ -2340,10 +2304,7 @@
"type": "string"
}
},
- "required": [
- "arguments",
- "command"
- ]
+ "required": ["arguments", "command"]
}
}
}
@@ -2430,19 +2391,13 @@
"type": "string"
}
},
- "required": [
- "providerID",
- "modelID"
- ]
+ "required": ["providerID", "modelID"]
},
"command": {
"type": "string"
}
},
- "required": [
- "agent",
- "command"
- ]
+ "required": ["agent", "command"]
}
}
}
@@ -2524,9 +2479,7 @@
"pattern": "^prt.*"
}
},
- "required": [
- "messageID"
- ]
+ "required": ["messageID"]
}
}
}
@@ -2671,16 +2624,10 @@
"properties": {
"response": {
"type": "string",
- "enum": [
- "once",
- "always",
- "reject"
- ]
+ "enum": ["once", "always", "reject"]
}
},
- "required": [
- "response"
- ]
+ "required": ["response"]
}
}
}
@@ -2768,10 +2715,7 @@
}
}
},
- "required": [
- "providers",
- "default"
- ]
+ "required": ["providers", "default"]
}
}
}
@@ -2859,6 +2803,25 @@
"tool_call": {
"type": "boolean"
},
+ "interleaved": {
+ "anyOf": [
+ {
+ "type": "boolean",
+ "const": true
+ },
+ {
+ "type": "object",
+ "properties": {
+ "field": {
+ "type": "string",
+ "enum": ["reasoning_content", "reasoning_details"]
+ }
+ },
+ "required": ["field"],
+ "additionalProperties": false
+ }
+ ]
+ },
"cost": {
"type": "object",
"properties": {
@@ -2890,16 +2853,10 @@
"type": "number"
}
},
- "required": [
- "input",
- "output"
- ]
+ "required": ["input", "output"]
}
},
- "required": [
- "input",
- "output"
- ]
+ "required": ["input", "output"]
},
"limit": {
"type": "object",
@@ -2911,10 +2868,7 @@
"type": "number"
}
},
- "required": [
- "context",
- "output"
- ]
+ "required": ["context", "output"]
},
"modalities": {
"type": "object",
@@ -2923,44 +2877,25 @@
"type": "array",
"items": {
"type": "string",
- "enum": [
- "text",
- "audio",
- "image",
- "video",
- "pdf"
- ]
+ "enum": ["text", "audio", "image", "video", "pdf"]
}
},
"output": {
"type": "array",
"items": {
"type": "string",
- "enum": [
- "text",
- "audio",
- "image",
- "video",
- "pdf"
- ]
+ "enum": ["text", "audio", "image", "video", "pdf"]
}
}
},
- "required": [
- "input",
- "output"
- ]
+ "required": ["input", "output"]
},
"experimental": {
"type": "boolean"
},
"status": {
"type": "string",
- "enum": [
- "alpha",
- "beta",
- "deprecated"
- ]
+ "enum": ["alpha", "beta", "deprecated"]
},
"options": {
"type": "object",
@@ -2985,9 +2920,7 @@
"type": "string"
}
},
- "required": [
- "npm"
- ]
+ "required": ["npm"]
}
},
"required": [
@@ -3004,12 +2937,7 @@
}
}
},
- "required": [
- "name",
- "env",
- "id",
- "models"
- ]
+ "required": ["name", "env", "id", "models"]
}
},
"default": {
@@ -3028,11 +2956,7 @@
}
}
},
- "required": [
- "all",
- "default",
- "connected"
- ]
+ "required": ["all", "default", "connected"]
}
}
}
@@ -3145,9 +3069,7 @@
"type": "number"
}
},
- "required": [
- "method"
- ]
+ "required": ["method"]
}
}
}
@@ -3220,9 +3142,7 @@
"type": "string"
}
},
- "required": [
- "method"
- ]
+ "required": ["method"]
}
}
}
@@ -3274,9 +3194,7 @@
"type": "string"
}
},
- "required": [
- "text"
- ]
+ "required": ["text"]
},
"lines": {
"type": "object",
@@ -3285,9 +3203,7 @@
"type": "string"
}
},
- "required": [
- "text"
- ]
+ "required": ["text"]
},
"line_number": {
"type": "number"
@@ -3307,9 +3223,7 @@
"type": "string"
}
},
- "required": [
- "text"
- ]
+ "required": ["text"]
},
"start": {
"type": "number"
@@ -3318,21 +3232,11 @@
"type": "number"
}
},
- "required": [
- "match",
- "start",
- "end"
- ]
+ "required": ["match", "start", "end"]
}
}
},
- "required": [
- "path",
- "lines",
- "line_number",
- "absolute_offset",
- "submatches"
- ]
+ "required": ["path", "lines", "line_number", "absolute_offset", "submatches"]
}
}
}
@@ -3371,10 +3275,7 @@
"name": "dirs",
"schema": {
"type": "string",
- "enum": [
- "true",
- "false"
- ]
+ "enum": ["true", "false"]
}
}
],
@@ -3621,12 +3522,7 @@
"level": {
"description": "Log level",
"type": "string",
- "enum": [
- "debug",
- "info",
- "error",
- "warn"
- ]
+ "enum": ["debug", "info", "error", "warn"]
},
"message": {
"description": "Log message",
@@ -3641,11 +3537,7 @@
"additionalProperties": {}
}
},
- "required": [
- "service",
- "level",
- "message"
- ]
+ "required": ["service", "level", "message"]
}
}
}
@@ -3795,10 +3687,7 @@
]
}
},
- "required": [
- "name",
- "config"
- ]
+ "required": ["name", "config"]
}
}
}
@@ -3846,9 +3735,7 @@
"type": "string"
}
},
- "required": [
- "authorizationUrl"
- ]
+ "required": ["authorizationUrl"]
}
}
}
@@ -3915,9 +3802,7 @@
"const": true
}
},
- "required": [
- "success"
- ]
+ "required": ["success"]
}
}
}
@@ -4006,9 +3891,7 @@
"type": "string"
}
},
- "required": [
- "code"
- ]
+ "required": ["code"]
}
}
}
@@ -4285,9 +4168,7 @@
"type": "string"
}
},
- "required": [
- "text"
- ]
+ "required": ["text"]
}
}
}
@@ -4550,9 +4431,7 @@
"type": "string"
}
},
- "required": [
- "command"
- ]
+ "required": ["command"]
}
}
}
@@ -4605,12 +4484,7 @@
},
"variant": {
"type": "string",
- "enum": [
- "info",
- "success",
- "warning",
- "error"
- ]
+ "enum": ["info", "success", "warning", "error"]
},
"duration": {
"description": "Duration in milliseconds",
@@ -4618,10 +4492,7 @@
"type": "number"
}
},
- "required": [
- "message",
- "variant"
- ]
+ "required": ["message", "variant"]
}
}
}
@@ -4724,10 +4595,7 @@
},
"body": {}
},
- "required": [
- "path",
- "body"
- ]
+ "required": ["path", "body"]
}
}
}
@@ -4897,10 +4765,7 @@
"required": ["version"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.installation.update-available": {
"type": "object",
@@ -4916,15 +4781,10 @@
"type": "string"
}
},
- "required": [
- "version"
- ]
+ "required": ["version"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Project": {
"type": "object",
@@ -5001,10 +4861,7 @@
"required": ["directory"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.lsp.client.diagnostics": {
"type": "object",
@@ -5023,16 +4880,10 @@
"type": "string"
}
},
- "required": [
- "serverID",
- "path"
- ]
+ "required": ["serverID", "path"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.lsp.updated": {
"type": "object",
@@ -5046,10 +4897,7 @@
"properties": {}
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"FileDiff": {
"type": "object",
@@ -5070,13 +4918,7 @@
"type": "number"
}
},
- "required": [
- "file",
- "before",
- "after",
- "additions",
- "deletions"
- ]
+ "required": ["file", "before", "after", "additions", "deletions"]
},
"UserMessage": {
"type": "object",
@@ -5098,9 +4940,7 @@
"type": "number"
}
},
- "required": [
- "created"
- ]
+ "required": ["created"]
},
"summary": {
"type": "object",
@@ -5118,9 +4958,7 @@
}
}
},
- "required": [
- "diffs"
- ]
+ "required": ["diffs"]
},
"agent": {
"type": "string"
@@ -5135,10 +4973,7 @@
"type": "string"
}
},
- "required": [
- "providerID",
- "modelID"
- ]
+ "required": ["providerID", "modelID"]
},
"system": {
"type": "string"
@@ -5153,14 +4988,7 @@
}
}
},
- "required": [
- "id",
- "sessionID",
- "role",
- "time",
- "agent",
- "model"
- ]
+ "required": ["id", "sessionID", "role", "time", "agent", "model"]
},
"ProviderAuthError": {
"type": "object",
@@ -5179,16 +5007,10 @@
"type": "string"
}
},
- "required": [
- "providerID",
- "message"
- ]
+ "required": ["providerID", "message"]
}
},
- "required": [
- "name",
- "data"
- ]
+ "required": ["name", "data"]
},
"UnknownError": {
"type": "object",
@@ -5204,15 +5026,10 @@
"type": "string"
}
},
- "required": [
- "message"
- ]
+ "required": ["message"]
}
},
- "required": [
- "name",
- "data"
- ]
+ "required": ["name", "data"]
},
"MessageOutputLengthError": {
"type": "object",
@@ -5226,10 +5043,7 @@
"properties": {}
}
},
- "required": [
- "name",
- "data"
- ]
+ "required": ["name", "data"]
},
"MessageAbortedError": {
"type": "object",
@@ -5245,15 +5059,10 @@
"type": "string"
}
},
- "required": [
- "message"
- ]
+ "required": ["message"]
}
},
- "required": [
- "name",
- "data"
- ]
+ "required": ["name", "data"]
},
"APIError": {
"type": "object",
@@ -5287,16 +5096,10 @@
"type": "string"
}
},
- "required": [
- "message",
- "isRetryable"
- ]
+ "required": ["message", "isRetryable"]
}
},
- "required": [
- "name",
- "data"
- ]
+ "required": ["name", "data"]
},
"AssistantMessage": {
"type": "object",
@@ -5321,9 +5124,7 @@
"type": "number"
}
},
- "required": [
- "created"
- ]
+ "required": ["created"]
},
"error": {
"anyOf": [
@@ -5366,10 +5167,7 @@
"type": "string"
}
},
- "required": [
- "cwd",
- "root"
- ]
+ "required": ["cwd", "root"]
},
"summary": {
"type": "boolean"
@@ -5399,18 +5197,10 @@
"type": "number"
}
},
- "required": [
- "read",
- "write"
- ]
+ "required": ["read", "write"]
}
},
- "required": [
- "input",
- "output",
- "reasoning",
- "cache"
- ]
+ "required": ["input", "output", "reasoning", "cache"]
},
"finish": {
"type": "string"
@@ -5454,15 +5244,10 @@
"$ref": "#/components/schemas/Message"
}
},
- "required": [
- "info"
- ]
+ "required": ["info"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.message.removed": {
"type": "object",
@@ -5481,16 +5266,10 @@
"type": "string"
}
},
- "required": [
- "sessionID",
- "messageID"
- ]
+ "required": ["sessionID", "messageID"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"TextPart": {
"type": "object",
@@ -5527,9 +5306,7 @@
"type": "number"
}
},
- "required": [
- "start"
- ]
+ "required": ["start"]
},
"metadata": {
"type": "object",
@@ -5539,13 +5316,7 @@
"additionalProperties": {}
}
},
- "required": [
- "id",
- "sessionID",
- "messageID",
- "type",
- "text"
- ]
+ "required": ["id", "sessionID", "messageID", "type", "text"]
},
"ReasoningPart": {
"type": "object",
@@ -5583,19 +5354,10 @@
"type": "number"
}
},
- "required": [
- "start"
- ]
+ "required": ["start"]
}
},
- "required": [
- "id",
- "sessionID",
- "messageID",
- "type",
- "text",
- "time"
- ]
+ "required": ["id", "sessionID", "messageID", "type", "text", "time"]
},
"FilePartSourceText": {
"type": "object",
@@ -5614,11 +5376,7 @@
"maximum": 9007199254740991
}
},
- "required": [
- "value",
- "start",
- "end"
- ]
+ "required": ["value", "start", "end"]
},
"FileSource": {
"type": "object",
@@ -5634,11 +5392,7 @@
"type": "string"
}
},
- "required": [
- "text",
- "type",
- "path"
- ]
+ "required": ["text", "type", "path"]
},
"Range": {
"type": "object",
@@ -5653,10 +5407,7 @@
"type": "number"
}
},
- "required": [
- "line",
- "character"
- ]
+ "required": ["line", "character"]
},
"end": {
"type": "object",
@@ -5668,16 +5419,10 @@
"type": "number"
}
},
- "required": [
- "line",
- "character"
- ]
+ "required": ["line", "character"]
}
},
- "required": [
- "start",
- "end"
- ]
+ "required": ["start", "end"]
},
"SymbolSource": {
"type": "object",
@@ -5704,14 +5449,7 @@
"maximum": 9007199254740991
}
},
- "required": [
- "text",
- "type",
- "path",
- "range",
- "name",
- "kind"
- ]
+ "required": ["text", "type", "path", "range", "name", "kind"]
},
"FilePartSource": {
"anyOf": [
@@ -5752,14 +5490,7 @@
"$ref": "#/components/schemas/FilePartSource"
}
},
- "required": [
- "id",
- "sessionID",
- "messageID",
- "type",
- "mime",
- "url"
- ]
+ "required": ["id", "sessionID", "messageID", "type", "mime", "url"]
},
"ToolStatePending": {
"type": "object",
@@ -5779,11 +5510,7 @@
"type": "string"
}
},
- "required": [
- "status",
- "input",
- "raw"
- ]
+ "required": ["status", "input", "raw"]
},
"ToolStateRunning": {
"type": "object",
@@ -5816,16 +5543,10 @@
"type": "number"
}
},
- "required": [
- "start"
- ]
+ "required": ["start"]
}
},
- "required": [
- "status",
- "input",
- "time"
- ]
+ "required": ["status", "input", "time"]
},
"ToolStateCompleted": {
"type": "object",
@@ -5867,10 +5588,7 @@
"type": "number"
}
},
- "required": [
- "start",
- "end"
- ]
+ "required": ["start", "end"]
},
"attachments": {
"type": "array",
@@ -5879,14 +5597,7 @@
}
}
},
- "required": [
- "status",
- "input",
- "output",
- "title",
- "metadata",
- "time"
- ]
+ "required": ["status", "input", "output", "title", "metadata", "time"]
},
"ToolStateError": {
"type": "object",
@@ -5922,18 +5633,10 @@
"type": "number"
}
},
- "required": [
- "start",
- "end"
- ]
+ "required": ["start", "end"]
}
},
- "required": [
- "status",
- "input",
- "error",
- "time"
- ]
+ "required": ["status", "input", "error", "time"]
},
"ToolState": {
"anyOf": [
@@ -5984,15 +5687,7 @@
"additionalProperties": {}
}
},
- "required": [
- "id",
- "sessionID",
- "messageID",
- "type",
- "callID",
- "tool",
- "state"
- ]
+ "required": ["id", "sessionID", "messageID", "type", "callID", "tool", "state"]
},
"StepStartPart": {
"type": "object",
@@ -6014,12 +5709,7 @@
"type": "string"
}
},
- "required": [
- "id",
- "sessionID",
- "messageID",
- "type"
- ]
+ "required": ["id", "sessionID", "messageID", "type"]
},
"StepFinishPart": {
"type": "object",
@@ -6068,29 +5758,13 @@
"type": "number"
}
},
- "required": [
- "read",
- "write"
- ]
+ "required": ["read", "write"]
}
},
- "required": [
- "input",
- "output",
- "reasoning",
- "cache"
- ]
+ "required": ["input", "output", "reasoning", "cache"]
}
},
- "required": [
- "id",
- "sessionID",
- "messageID",
- "type",
- "reason",
- "cost",
- "tokens"
- ]
+ "required": ["id", "sessionID", "messageID", "type", "reason", "cost", "tokens"]
},
"SnapshotPart": {
"type": "object",
@@ -6112,13 +5786,7 @@
"type": "string"
}
},
- "required": [
- "id",
- "sessionID",
- "messageID",
- "type",
- "snapshot"
- ]
+ "required": ["id", "sessionID", "messageID", "type", "snapshot"]
},
"PatchPart": {
"type": "object",
@@ -6146,14 +5814,7 @@
}
}
},
- "required": [
- "id",
- "sessionID",
- "messageID",
- "type",
- "hash",
- "files"
- ]
+ "required": ["id", "sessionID", "messageID", "type", "hash", "files"]
},
"AgentPart": {
"type": "object",
@@ -6191,20 +5852,10 @@
"maximum": 9007199254740991
}
},
- "required": [
- "value",
- "start",
- "end"
- ]
+ "required": ["value", "start", "end"]
}
},
- "required": [
- "id",
- "sessionID",
- "messageID",
- "type",
- "name"
- ]
+ "required": ["id", "sessionID", "messageID", "type", "name"]
},
"RetryPart": {
"type": "object",
@@ -6235,20 +5886,10 @@
"type": "number"
}
},
- "required": [
- "created"
- ]
+ "required": ["created"]
}
},
- "required": [
- "id",
- "sessionID",
- "messageID",
- "type",
- "attempt",
- "error",
- "time"
- ]
+ "required": ["id", "sessionID", "messageID", "type", "attempt", "error", "time"]
},
"CompactionPart": {
"type": "object",
@@ -6270,13 +5911,7 @@
"type": "boolean"
}
},
- "required": [
- "id",
- "sessionID",
- "messageID",
- "type",
- "auto"
- ]
+ "required": ["id", "sessionID", "messageID", "type", "auto"]
},
"Part": {
"anyOf": [
@@ -6309,15 +5944,7 @@
"type": "string"
}
},
- "required": [
- "id",
- "sessionID",
- "messageID",
- "type",
- "prompt",
- "description",
- "agent"
- ]
+ "required": ["id", "sessionID", "messageID", "type", "prompt", "description", "agent"]
},
{
"$ref": "#/components/schemas/ReasoningPart"
@@ -6368,15 +5995,10 @@
"type": "string"
}
},
- "required": [
- "part"
- ]
+ "required": ["part"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.message.part.removed": {
"type": "object",
@@ -6398,17 +6020,10 @@
"type": "string"
}
},
- "required": [
- "sessionID",
- "messageID",
- "partID"
- ]
+ "required": ["sessionID", "messageID", "partID"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Permission": {
"type": "object",
@@ -6458,20 +6073,10 @@
"type": "number"
}
},
- "required": [
- "created"
- ]
+ "required": ["created"]
}
},
- "required": [
- "id",
- "type",
- "sessionID",
- "messageID",
- "title",
- "metadata",
- "time"
- ]
+ "required": ["id", "type", "sessionID", "messageID", "title", "metadata", "time"]
},
"Event.permission.updated": {
"type": "object",
@@ -6484,10 +6089,7 @@
"$ref": "#/components/schemas/Permission"
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.permission.replied": {
"type": "object",
@@ -6509,17 +6111,10 @@
"type": "string"
}
},
- "required": [
- "sessionID",
- "permissionID",
- "response"
- ]
+ "required": ["sessionID", "permissionID", "response"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"SessionStatus": {
"anyOf": [
@@ -6531,9 +6126,7 @@
"const": "idle"
}
},
- "required": [
- "type"
- ]
+ "required": ["type"]
},
{
"type": "object",
@@ -6552,12 +6145,7 @@
"type": "number"
}
},
- "required": [
- "type",
- "attempt",
- "message",
- "next"
- ]
+ "required": ["type", "attempt", "message", "next"]
},
{
"type": "object",
@@ -6567,9 +6155,7 @@
"const": "busy"
}
},
- "required": [
- "type"
- ]
+ "required": ["type"]
}
]
},
@@ -6590,16 +6176,10 @@
"$ref": "#/components/schemas/SessionStatus"
}
},
- "required": [
- "sessionID",
- "status"
- ]
+ "required": ["sessionID", "status"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.session.idle": {
"type": "object",
@@ -6615,15 +6195,10 @@
"type": "string"
}
},
- "required": [
- "sessionID"
- ]
+ "required": ["sessionID"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.session.compacted": {
"type": "object",
@@ -6639,15 +6214,10 @@
"type": "string"
}
},
- "required": [
- "sessionID"
- ]
+ "required": ["sessionID"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.file.edited": {
"type": "object",
@@ -6663,15 +6233,10 @@
"type": "string"
}
},
- "required": [
- "file"
- ]
+ "required": ["file"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Todo": {
"type": "object",
@@ -6693,12 +6258,7 @@
"type": "string"
}
},
- "required": [
- "content",
- "status",
- "priority",
- "id"
- ]
+ "required": ["content", "status", "priority", "id"]
},
"Event.todo.updated": {
"type": "object",
@@ -6720,16 +6280,10 @@
}
}
},
- "required": [
- "sessionID",
- "todos"
- ]
+ "required": ["sessionID", "todos"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.command.executed": {
"type": "object",
@@ -6756,18 +6310,10 @@
"pattern": "^msg.*"
}
},
- "required": [
- "name",
- "sessionID",
- "arguments",
- "messageID"
- ]
+ "required": ["name", "sessionID", "arguments", "messageID"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Session": {
"type": "object",
@@ -6805,11 +6351,7 @@
}
}
},
- "required": [
- "additions",
- "deletions",
- "files"
- ]
+ "required": ["additions", "deletions", "files"]
},
"share": {
"type": "object",
@@ -6818,9 +6360,7 @@
"type": "string"
}
},
- "required": [
- "url"
- ]
+ "required": ["url"]
},
"title": {
"type": "string"
@@ -6841,10 +6381,7 @@
"type": "number"
}
},
- "required": [
- "created",
- "updated"
- ]
+ "required": ["created", "updated"]
},
"revert": {
"type": "object",
@@ -6862,19 +6399,10 @@
"type": "string"
}
},
- "required": [
- "messageID"
- ]
+ "required": ["messageID"]
}
},
- "required": [
- "id",
- "projectID",
- "directory",
- "title",
- "version",
- "time"
- ]
+ "required": ["id", "projectID", "directory", "title", "version", "time"]
},
"Event.session.created": {
"type": "object",
@@ -6890,15 +6418,10 @@
"$ref": "#/components/schemas/Session"
}
},
- "required": [
- "info"
- ]
+ "required": ["info"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.session.updated": {
"type": "object",
@@ -6914,15 +6437,10 @@
"$ref": "#/components/schemas/Session"
}
},
- "required": [
- "info"
- ]
+ "required": ["info"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.session.deleted": {
"type": "object",
@@ -6938,15 +6456,10 @@
"$ref": "#/components/schemas/Session"
}
},
- "required": [
- "info"
- ]
+ "required": ["info"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.session.diff": {
"type": "object",
@@ -6968,16 +6481,10 @@
}
}
},
- "required": [
- "sessionID",
- "diff"
- ]
+ "required": ["sessionID", "diff"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.session.error": {
"type": "object",
@@ -7014,10 +6521,7 @@
}
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.file.watcher.updated": {
"type": "object",
@@ -7049,16 +6553,10 @@
]
}
},
- "required": [
- "file",
- "event"
- ]
+ "required": ["file", "event"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.vcs.branch.updated": {
"type": "object",
@@ -7076,10 +6574,7 @@
}
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.tui.prompt.append": {
"type": "object",
@@ -7095,15 +6590,10 @@
"type": "string"
}
},
- "required": [
- "text"
- ]
+ "required": ["text"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.tui.command.execute": {
"type": "object",
@@ -7142,15 +6632,10 @@
]
}
},
- "required": [
- "command"
- ]
+ "required": ["command"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.tui.toast.show": {
"type": "object",
@@ -7170,12 +6655,7 @@
},
"variant": {
"type": "string",
- "enum": [
- "info",
- "success",
- "warning",
- "error"
- ]
+ "enum": ["info", "success", "warning", "error"]
},
"duration": {
"description": "Duration in milliseconds",
@@ -7183,16 +6663,10 @@
"type": "number"
}
},
- "required": [
- "message",
- "variant"
- ]
+ "required": ["message", "variant"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Pty": {
"type": "object",
@@ -7218,24 +6692,13 @@
},
"status": {
"type": "string",
- "enum": [
- "running",
- "exited"
- ]
+ "enum": ["running", "exited"]
},
"pid": {
"type": "number"
}
},
- "required": [
- "id",
- "title",
- "command",
- "args",
- "cwd",
- "status",
- "pid"
- ]
+ "required": ["id", "title", "command", "args", "cwd", "status", "pid"]
},
"Event.pty.created": {
"type": "object",
@@ -7251,15 +6714,10 @@
"$ref": "#/components/schemas/Pty"
}
},
- "required": [
- "info"
- ]
+ "required": ["info"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.pty.updated": {
"type": "object",
@@ -7275,15 +6733,10 @@
"$ref": "#/components/schemas/Pty"
}
},
- "required": [
- "info"
- ]
+ "required": ["info"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.pty.exited": {
"type": "object",
@@ -7303,16 +6756,10 @@
"type": "number"
}
},
- "required": [
- "id",
- "exitCode"
- ]
+ "required": ["id", "exitCode"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.pty.deleted": {
"type": "object",
@@ -7329,15 +6776,10 @@
"pattern": "^pty.*"
}
},
- "required": [
- "id"
- ]
+ "required": ["id"]
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event.server.connected": {
"type": "object",
@@ -7351,10 +6793,7 @@
"properties": {}
}
},
- "required": [
- "type",
- "properties"
- ]
+ "required": ["type", "properties"]
},
"Event": {
"anyOf": [
@@ -7469,10 +6908,7 @@
"$ref": "#/components/schemas/Event"
}
},
- "required": [
- "directory",
- "payload"
- ]
+ "required": ["directory", "payload"]
},
"BadRequestError": {
"type": "object",
@@ -7493,11 +6929,7 @@
"const": false
}
},
- "required": [
- "data",
- "errors",
- "success"
- ]
+ "required": ["data", "errors", "success"]
},
"NotFoundError": {
"type": "object",
@@ -7513,15 +6945,10 @@
"type": "string"
}
},
- "required": [
- "message"
- ]
+ "required": ["message"]
}
},
- "required": [
- "name",
- "data"
- ]
+ "required": ["name", "data"]
},
"KeybindsConfig": {
"description": "Custom keybind configurations",
@@ -7788,11 +7215,7 @@
},
"mode": {
"type": "string",
- "enum": [
- "subagent",
- "primary",
- "all"
- ]
+ "enum": ["subagent", "primary", "all"]
},
"color": {
"description": "Hex color code for the agent (e.g., #FF5733)",
@@ -7810,21 +7233,13 @@
"properties": {
"edit": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
},
"bash": {
"anyOf": [
{
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
},
{
"type": "object",
@@ -7833,38 +7248,22 @@
},
"additionalProperties": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
}
}
]
},
"webfetch": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
},
"doom_loop": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
},
"external_directory": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
}
}
}
@@ -7921,6 +7320,25 @@
"tool_call": {
"type": "boolean"
},
+ "interleaved": {
+ "anyOf": [
+ {
+ "type": "boolean",
+ "const": true
+ },
+ {
+ "type": "object",
+ "properties": {
+ "field": {
+ "type": "string",
+ "enum": ["reasoning_content", "reasoning_details"]
+ }
+ },
+ "required": ["field"],
+ "additionalProperties": false
+ }
+ ]
+ },
"cost": {
"type": "object",
"properties": {
@@ -7952,16 +7370,10 @@
"type": "number"
}
},
- "required": [
- "input",
- "output"
- ]
+ "required": ["input", "output"]
}
},
- "required": [
- "input",
- "output"
- ]
+ "required": ["input", "output"]
},
"limit": {
"type": "object",
@@ -7973,10 +7385,7 @@
"type": "number"
}
},
- "required": [
- "context",
- "output"
- ]
+ "required": ["context", "output"]
},
"modalities": {
"type": "object",
@@ -7985,44 +7394,25 @@
"type": "array",
"items": {
"type": "string",
- "enum": [
- "text",
- "audio",
- "image",
- "video",
- "pdf"
- ]
+ "enum": ["text", "audio", "image", "video", "pdf"]
}
},
"output": {
"type": "array",
"items": {
"type": "string",
- "enum": [
- "text",
- "audio",
- "image",
- "video",
- "pdf"
- ]
+ "enum": ["text", "audio", "image", "video", "pdf"]
}
}
},
- "required": [
- "input",
- "output"
- ]
+ "required": ["input", "output"]
},
"experimental": {
"type": "boolean"
},
"status": {
"type": "string",
- "enum": [
- "alpha",
- "beta",
- "deprecated"
- ]
+ "enum": ["alpha", "beta", "deprecated"]
},
"options": {
"type": "object",
@@ -8047,9 +7437,7 @@
"type": "string"
}
},
- "required": [
- "npm"
- ]
+ "required": ["npm"]
}
}
}
@@ -8141,10 +7529,7 @@
"maximum": 9007199254740991
}
},
- "required": [
- "type",
- "command"
- ],
+ "required": ["type", "command"],
"additionalProperties": false
},
"McpOAuthConfig": {
@@ -8210,19 +7595,13 @@
"maximum": 9007199254740991
}
},
- "required": [
- "type",
- "url"
- ],
+ "required": ["type", "url"],
"additionalProperties": false
},
"LayoutConfig": {
"description": "@deprecated Always uses stretch layout.",
"type": "string",
- "enum": [
- "auto",
- "stretch"
- ]
+ "enum": ["auto", "stretch"]
},
"Config": {
"type": "object",
@@ -8256,17 +7635,12 @@
"type": "boolean"
}
},
- "required": [
- "enabled"
- ]
+ "required": ["enabled"]
},
"diff_style": {
"description": "Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column",
"type": "string",
- "enum": [
- "auto",
- "stacked"
- ]
+ "enum": ["auto", "stacked"]
}
}
},
@@ -8295,9 +7669,7 @@
"type": "boolean"
}
},
- "required": [
- "template"
- ]
+ "required": ["template"]
}
},
"watcher": {
@@ -8323,11 +7695,7 @@
"share": {
"description": "Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing",
"type": "string",
- "enum": [
- "manual",
- "auto",
- "disabled"
- ]
+ "enum": ["manual", "auto", "disabled"]
},
"autoshare": {
"description": "@deprecated Use 'share' field instead. Share newly created sessions automatically",
@@ -8498,9 +7866,7 @@
"const": true
}
},
- "required": [
- "disabled"
- ]
+ "required": ["disabled"]
},
{
"type": "object",
@@ -8537,9 +7903,7 @@
"additionalProperties": {}
}
},
- "required": [
- "command"
- ]
+ "required": ["command"]
}
]
}
@@ -8561,21 +7925,13 @@
"properties": {
"edit": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
},
"bash": {
"anyOf": [
{
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
},
{
"type": "object",
@@ -8584,38 +7940,22 @@
},
"additionalProperties": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
}
}
]
},
"webfetch": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
},
"doom_loop": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
},
"external_directory": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
}
}
},
@@ -8669,9 +8009,7 @@
}
}
},
- "required": [
- "command"
- ]
+ "required": ["command"]
}
}
},
@@ -8696,9 +8034,7 @@
}
}
},
- "required": [
- "command"
- ]
+ "required": ["command"]
}
}
}
@@ -8747,11 +8083,7 @@
},
"parameters": {}
},
- "required": [
- "id",
- "description",
- "parameters"
- ]
+ "required": ["id", "description", "parameters"]
},
"ToolList": {
"type": "array",
@@ -8775,12 +8107,7 @@
"type": "string"
}
},
- "required": [
- "state",
- "config",
- "worktree",
- "directory"
- ]
+ "required": ["state", "config", "worktree", "directory"]
},
"VcsInfo": {
"type": "object",
@@ -8789,9 +8116,7 @@
"type": "string"
}
},
- "required": [
- "branch"
- ]
+ "required": ["branch"]
},
"TextPartInput": {
"type": "object",
@@ -8822,9 +8147,7 @@
"type": "number"
}
},
- "required": [
- "start"
- ]
+ "required": ["start"]
},
"metadata": {
"type": "object",
@@ -8834,10 +8157,7 @@
"additionalProperties": {}
}
},
- "required": [
- "type",
- "text"
- ]
+ "required": ["type", "text"]
},
"FilePartInput": {
"type": "object",
@@ -8862,11 +8182,7 @@
"$ref": "#/components/schemas/FilePartSource"
}
},
- "required": [
- "type",
- "mime",
- "url"
- ]
+ "required": ["type", "mime", "url"]
},
"AgentPartInput": {
"type": "object",
@@ -8898,17 +8214,10 @@
"maximum": 9007199254740991
}
},
- "required": [
- "value",
- "start",
- "end"
- ]
+ "required": ["value", "start", "end"]
}
},
- "required": [
- "type",
- "name"
- ]
+ "required": ["type", "name"]
},
"SubtaskPartInput": {
"type": "object",
@@ -8930,12 +8239,7 @@
"type": "string"
}
},
- "required": [
- "type",
- "prompt",
- "description",
- "agent"
- ]
+ "required": ["type", "prompt", "description", "agent"]
},
"Command": {
"type": "object",
@@ -8959,10 +8263,7 @@
"type": "boolean"
}
},
- "required": [
- "name",
- "template"
- ]
+ "required": ["name", "template"]
},
"Model": {
"type": "object",
@@ -8986,11 +8287,7 @@
"type": "string"
}
},
- "required": [
- "id",
- "url",
- "npm"
- ]
+ "required": ["id", "url", "npm"]
},
"name": {
"type": "string"
@@ -9029,13 +8326,7 @@
"type": "boolean"
}
},
- "required": [
- "text",
- "audio",
- "image",
- "video",
- "pdf"
- ]
+ "required": ["text", "audio", "image", "video", "pdf"]
},
"output": {
"type": "object",
@@ -9056,23 +8347,27 @@
"type": "boolean"
}
},
- "required": [
- "text",
- "audio",
- "image",
- "video",
- "pdf"
+ "required": ["text", "audio", "image", "video", "pdf"]
+ },
+ "interleaved": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "field": {
+ "type": "string",
+ "enum": ["reasoning_content", "reasoning_details"]
+ }
+ },
+ "required": ["field"]
+ }
]
}
},
- "required": [
- "temperature",
- "reasoning",
- "attachment",
- "toolcall",
- "input",
- "output"
- ]
+ "required": ["temperature", "reasoning", "attachment", "toolcall", "input", "output", "interleaved"]
},
"cost": {
"type": "object",
@@ -9093,10 +8388,7 @@
"type": "number"
}
},
- "required": [
- "read",
- "write"
- ]
+ "required": ["read", "write"]
},
"experimentalOver200K": {
"type": "object",
@@ -9117,24 +8409,13 @@
"type": "number"
}
},
- "required": [
- "read",
- "write"
- ]
+ "required": ["read", "write"]
}
},
- "required": [
- "input",
- "output",
- "cache"
- ]
+ "required": ["input", "output", "cache"]
}
},
- "required": [
- "input",
- "output",
- "cache"
- ]
+ "required": ["input", "output", "cache"]
},
"limit": {
"type": "object",
@@ -9146,19 +8427,11 @@
"type": "number"
}
},
- "required": [
- "context",
- "output"
- ]
+ "required": ["context", "output"]
},
"status": {
"type": "string",
- "enum": [
- "alpha",
- "beta",
- "deprecated",
- "active"
- ]
+ "enum": ["alpha", "beta", "deprecated", "active"]
},
"options": {
"type": "object",
@@ -9177,18 +8450,7 @@
}
}
},
- "required": [
- "id",
- "providerID",
- "api",
- "name",
- "capabilities",
- "cost",
- "limit",
- "status",
- "options",
- "headers"
- ]
+ "required": ["id", "providerID", "api", "name", "capabilities", "cost", "limit", "status", "options", "headers"]
},
"Provider": {
"type": "object",
@@ -9201,12 +8463,7 @@
},
"source": {
"type": "string",
- "enum": [
- "env",
- "config",
- "custom",
- "api"
- ]
+ "enum": ["env", "config", "custom", "api"]
},
"env": {
"type": "array",
@@ -9234,14 +8491,7 @@
}
}
},
- "required": [
- "id",
- "name",
- "source",
- "env",
- "options",
- "models"
- ]
+ "required": ["id", "name", "source", "env", "options", "models"]
},
"ProviderAuthMethod": {
"type": "object",
@@ -9262,10 +8512,7 @@
"type": "string"
}
},
- "required": [
- "type",
- "label"
- ]
+ "required": ["type", "label"]
},
"ProviderAuthAuthorization": {
"type": "object",
@@ -9289,11 +8536,7 @@
"type": "string"
}
},
- "required": [
- "url",
- "method",
- "instructions"
- ]
+ "required": ["url", "method", "instructions"]
},
"Symbol": {
"type": "object",
@@ -9314,17 +8557,10 @@
"$ref": "#/components/schemas/Range"
}
},
- "required": [
- "uri",
- "range"
- ]
+ "required": ["uri", "range"]
}
},
- "required": [
- "name",
- "kind",
- "location"
- ]
+ "required": ["name", "kind", "location"]
},
"FileNode": {
"type": "object",
@@ -9340,22 +8576,13 @@
},
"type": {
"type": "string",
- "enum": [
- "file",
- "directory"
- ]
+ "enum": ["file", "directory"]
},
"ignored": {
"type": "boolean"
}
},
- "required": [
- "name",
- "path",
- "absolute",
- "type",
- "ignored"
- ]
+ "required": ["name", "path", "absolute", "type", "ignored"]
},
"FileContent": {
"type": "object",
@@ -9409,24 +8636,14 @@
}
}
},
- "required": [
- "oldStart",
- "oldLines",
- "newStart",
- "newLines",
- "lines"
- ]
+ "required": ["oldStart", "oldLines", "newStart", "newLines", "lines"]
}
},
"index": {
"type": "string"
}
},
- "required": [
- "oldFileName",
- "newFileName",
- "hunks"
- ]
+ "required": ["oldFileName", "newFileName", "hunks"]
},
"encoding": {
"type": "string",
@@ -9436,10 +8653,7 @@
"type": "string"
}
},
- "required": [
- "type",
- "content"
- ]
+ "required": ["type", "content"]
},
"File": {
"type": "object",
@@ -9459,19 +8673,10 @@
},
"status": {
"type": "string",
- "enum": [
- "added",
- "deleted",
- "modified"
- ]
+ "enum": ["added", "deleted", "modified"]
}
},
- "required": [
- "path",
- "added",
- "removed",
- "status"
- ]
+ "required": ["path", "added", "removed", "status"]
},
"Agent": {
"type": "object",
@@ -9484,11 +8689,7 @@
},
"mode": {
"type": "string",
- "enum": [
- "subagent",
- "primary",
- "all"
- ]
+ "enum": ["subagent", "primary", "all"]
},
"builtIn": {
"type": "boolean"
@@ -9507,11 +8708,7 @@
"properties": {
"edit": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
},
"bash": {
"type": "object",
@@ -9520,42 +8717,23 @@
},
"additionalProperties": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
}
},
"webfetch": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
},
"doom_loop": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
},
"external_directory": {
"type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
+ "enum": ["ask", "allow", "deny"]
}
},
- "required": [
- "edit",
- "bash"
- ]
+ "required": ["edit", "bash"]
},
"model": {
"type": "object",
@@ -9567,10 +8745,7 @@
"type": "string"
}
},
- "required": [
- "modelID",
- "providerID"
- ]
+ "required": ["modelID", "providerID"]
},
"prompt": {
"type": "string"
@@ -9597,14 +8772,7 @@
"maximum": 9007199254740991
}
},
- "required": [
- "name",
- "mode",
- "builtIn",
- "permission",
- "tools",
- "options"
- ]
+ "required": ["name", "mode", "builtIn", "permission", "tools", "options"]
},
"MCPStatusConnected": {
"type": "object",
@@ -9614,9 +8782,7 @@
"const": "connected"
}
},
- "required": [
- "status"
- ]
+ "required": ["status"]
},
"MCPStatusDisabled": {
"type": "object",
@@ -9626,9 +8792,7 @@
"const": "disabled"
}
},
- "required": [
- "status"
- ]
+ "required": ["status"]
},
"MCPStatusFailed": {
"type": "object",
@@ -9641,10 +8805,7 @@
"type": "string"
}
},
- "required": [
- "status",
- "error"
- ]
+ "required": ["status", "error"]
},
"MCPStatusNeedsAuth": {
"type": "object",
@@ -9654,9 +8815,7 @@
"const": "needs_auth"
}
},
- "required": [
- "status"
- ]
+ "required": ["status"]
},
"MCPStatusNeedsClientRegistration": {
"type": "object",
@@ -9669,10 +8828,7 @@
"type": "string"
}
},
- "required": [
- "status",
- "error"
- ]
+ "required": ["status", "error"]
},
"MCPStatus": {
"anyOf": [
@@ -9718,12 +8874,7 @@
]
}
},
- "required": [
- "id",
- "name",
- "root",
- "status"
- ]
+ "required": ["id", "name", "root", "status"]
},
"FormatterStatus": {
"type": "object",
@@ -9741,11 +8892,7 @@
"type": "boolean"
}
},
- "required": [
- "name",
- "extensions",
- "enabled"
- ]
+ "required": ["name", "extensions", "enabled"]
},
"OAuth": {
"type": "object",
@@ -9767,12 +8914,7 @@
"type": "string"
}
},
- "required": [
- "type",
- "refresh",
- "access",
- "expires"
- ]
+ "required": ["type", "refresh", "access", "expires"]
},
"ApiAuth": {
"type": "object",
@@ -9785,10 +8927,7 @@
"type": "string"
}
},
- "required": [
- "type",
- "key"
- ]
+ "required": ["type", "key"]
},
"WellKnownAuth": {
"type": "object",
@@ -9804,11 +8943,7 @@
"type": "string"
}
},
- "required": [
- "type",
- "key",
- "token"
- ]
+ "required": ["type", "key", "token"]
},
"Auth": {
"anyOf": [
@@ -9825,4 +8960,4 @@
}
}
}
-} \ No newline at end of file
+}
diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts
index 6e6106b8b..aaa6257d1 100644
--- a/packages/sdk/js/src/v2/gen/types.gen.ts
+++ b/packages/sdk/js/src/v2/gen/types.gen.ts
@@ -1044,6 +1044,11 @@ export type ProviderConfig = {
reasoning?: boolean
temperature?: boolean
tool_call?: boolean
+ interleaved?:
+ | true
+ | {
+ field: "reasoning_content" | "reasoning_details"
+ }
cost?: {
input: number
output: number
@@ -1479,6 +1484,11 @@ export type Model = {
video: boolean
pdf: boolean
}
+ interleaved:
+ | boolean
+ | {
+ field: "reasoning_content" | "reasoning_details"
+ }
}
cost: {
input: number
@@ -3026,6 +3036,11 @@ export type ProviderListResponses = {
reasoning: boolean
temperature: boolean
tool_call: boolean
+ interleaved?:
+ | true
+ | {
+ field: "reasoning_content" | "reasoning_details"
+ }
cost?: {
input: number
output: number