From c1f4beaf4081dd094d9e4bcface72a2addcfae43 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Tue, 8 Sep 2026 23:29:02 -0500 Subject: [PATCH] feat(ai): add Alibaba inference provider (#47874) --- packages/ai/README.md | 72 ++++ packages/ai/src/protocols/alibaba-chat.ts | 92 +++++ packages/ai/src/protocols/alibaba-messages.ts | 48 +++ .../ai/src/protocols/alibaba-responses.ts | 98 +++++ packages/ai/src/protocols/open-responses.ts | 15 +- packages/ai/src/providers/alibaba.ts | 134 +++++++ packages/ai/src/providers/alibaba/chat.ts | 1 + packages/ai/src/providers/alibaba/messages.ts | 3 + .../ai/src/providers/alibaba/responses.ts | 3 + packages/ai/src/providers/index.ts | 1 + ...en-3-7-plus-streams-thinking-disabled.json | 35 ++ ...wen-3-7-plus-streams-thinking-enabled.json | 35 ++ .../qwen-3-8-flash-reads-image-bytes.json | 28 ++ .../qwen-3-8-max-obeys-named-tool-choice.json | 35 ++ ...ing-through-a-tool-loop-and-follow-up.json | 73 ++++ .../qwen-3-8-max-returns-a-json-object.json | 34 ++ .../qwen-3-8-max-streams-default-effort.json | 36 ++ .../qwen-3-8-max-streams-high-effort.json | 36 ++ .../qwen-3-8-max-streams-low-effort.json | 36 ++ .../qwen-3-8-max-streams-max-effort.json | 36 ++ .../qwen-3-8-max-streams-medium-effort.json | 36 ++ .../qwen-3-8-max-streams-minimal-effort.json | 36 ++ .../qwen-3-8-max-streams-none-effort.json | 36 ++ .../qwen-3-8-max-streams-xhigh-effort.json | 36 ++ ...en-3-7-plus-streams-thinking-disabled.json | 35 ++ ...wen-3-7-plus-streams-thinking-enabled.json | 35 ++ .../qwen-3-8-flash-reads-image-bytes.json | 34 ++ .../qwen-3-8-max-follows-a-json-schema.json | 34 ++ .../qwen-3-8-max-obeys-named-tool-choice.json | 35 ++ ...ing-through-a-tool-loop-and-follow-up.json | 73 ++++ .../qwen-3-8-max-streams-default-effort.json | 36 ++ .../qwen-3-8-max-streams-high-effort.json | 36 ++ .../qwen-3-8-max-streams-low-effort.json | 36 ++ .../qwen-3-8-max-streams-max-effort.json | 36 ++ .../qwen-3-8-max-streams-medium-effort.json | 36 ++ .../qwen-3-8-max-streams-xhigh-effort.json | 36 ++ ...en-3-7-plus-streams-thinking-disabled.json | 35 ++ ...wen-3-7-plus-streams-thinking-enabled.json | 35 ++ .../qwen-3-8-flash-reads-image-bytes.json | 34 ++ ...n-3-8-max-continues-a-stored-response.json | 53 +++ .../qwen-3-8-max-obeys-named-tool-choice.json | 35 ++ ...ing-through-a-tool-loop-and-follow-up.json | 73 ++++ .../qwen-3-8-max-streams-default-effort.json | 36 ++ .../qwen-3-8-max-streams-high-effort.json | 36 ++ .../qwen-3-8-max-streams-low-effort.json | 36 ++ .../qwen-3-8-max-streams-max-effort.json | 36 ++ .../qwen-3-8-max-streams-medium-effort.json | 36 ++ .../qwen-3-8-max-streams-minimal-effort.json | 36 ++ .../qwen-3-8-max-streams-none-effort.json | 36 ++ .../qwen-3-8-max-streams-xhigh-effort.json | 36 ++ ...-3-8-max-uses-hosted-code-interpreter.json | 35 ++ ...uses-hosted-web-search-and-extraction.json | 36 ++ .../ai/test/provider-options/alibaba.types.ts | 39 ++ packages/ai/test/provider-package.test.ts | 32 ++ .../alibaba-capabilities.recorded.test.ts | 254 ++++++++++++ .../ai/test/provider/alibaba.recorded.test.ts | 163 ++++++++ packages/ai/test/provider/alibaba.test.ts | 376 ++++++++++++++++++ 57 files changed, 2940 insertions(+), 5 deletions(-) create mode 100644 packages/ai/src/protocols/alibaba-chat.ts create mode 100644 packages/ai/src/protocols/alibaba-messages.ts create mode 100644 packages/ai/src/protocols/alibaba-responses.ts create mode 100644 packages/ai/src/providers/alibaba.ts create mode 100644 packages/ai/src/providers/alibaba/chat.ts create mode 100644 packages/ai/src/providers/alibaba/messages.ts create mode 100644 packages/ai/src/providers/alibaba/responses.ts create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-7-plus-streams-thinking-disabled.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-7-plus-streams-thinking-enabled.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-flash-reads-image-bytes.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-obeys-named-tool-choice.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-returns-a-json-object.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-default-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-high-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-low-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-max-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-medium-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-minimal-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-none-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-xhigh-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-7-plus-streams-thinking-disabled.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-7-plus-streams-thinking-enabled.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-flash-reads-image-bytes.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-follows-a-json-schema.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-obeys-named-tool-choice.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-default-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-high-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-low-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-max-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-medium-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-xhigh-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-7-plus-streams-thinking-disabled.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-7-plus-streams-thinking-enabled.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-flash-reads-image-bytes.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-continues-a-stored-response.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-obeys-named-tool-choice.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-default-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-high-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-low-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-max-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-medium-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-minimal-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-none-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-xhigh-effort.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-uses-hosted-code-interpreter.json create mode 100644 packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-uses-hosted-web-search-and-extraction.json create mode 100644 packages/ai/test/provider-options/alibaba.types.ts create mode 100644 packages/ai/test/provider/alibaba-capabilities.recorded.test.ts create mode 100644 packages/ai/test/provider/alibaba.recorded.test.ts create mode 100644 packages/ai/test/provider/alibaba.test.ts diff --git a/packages/ai/README.md b/packages/ai/README.md index cf2031dcaf0..e343a941b92 100644 --- a/packages/ai/README.md +++ b/packages/ai/README.md @@ -29,6 +29,78 @@ await Effect.runPromise(program.pipe(Effect.provide(llmLayer))) Run `LLMClient.stream(request)` instead of `generate` when you want incremental `LLMEvent`s. The event stream is provider-neutral — same shape across OpenAI Chat, OpenAI Responses, Anthropic Messages, Gemini, Bedrock Converse, and any OpenAI-compatible deployment. +## Alibaba Cloud Model Studio + +`Alibaba` provides standard Model Studio inference. Configure a region explicitly, then select +Chat Completions (`.model` or `.chat`), Anthropic-compatible Messages (`.messages`), or OpenAI-compatible +Responses (`.responses`). These routes use HTTP/SSE. + +```ts +import { LLM } from "@opencode/ai" +import { Alibaba } from "@opencode/ai/providers" + +const alibaba = Alibaba.configure({ + region: "ap-southeast-1", // Singapore + apiKey: process.env.DASHSCOPE_API_KEY, + // workspaceID: "llm-your-workspace", // use a workspace-dedicated endpoint +}) + +const request = LLM.request({ + model: alibaba.model("qwen3.8-max"), + prompt: "Explain this design.", + providerOptions: { reasoningEffort: "medium" }, +}) +``` + +### Regions and credentials + +| Region | `region` | Shared host when `workspaceID` is omitted | +| ------------------- | ---------------- | ----------------------------------------- | +| Singapore | `ap-southeast-1` | `dashscope-intl.aliyuncs.com` | +| China (Beijing) | `cn-beijing` | `dashscope.aliyuncs.com` | +| China (Hong Kong) | `cn-hongkong` | `cn-hongkong.dashscope.aliyuncs.com` | +| US (Virginia) | `us-east-1` | `dashscope-us.aliyuncs.com` | +| Germany (Frankfurt) | `eu-central-1` | Supply `workspaceID` or `baseURL` | +| Japan (Tokyo) | `ap-northeast-1` | Supply `workspaceID` or `baseURL` | + +With `workspaceID`, the host is `{workspaceID}.{region}.maas.aliyuncs.com`. A complete `baseURL` +overrides regional setup, including the API prefix: `/compatible-mode/v1` for Chat/Responses, +or `/apps/anthropic/v1` for Messages. The selector appends its operation path. + +Keys and model availability are region-specific. Auth resolves from explicit `auth` or `apiKey`, +then `DASHSCOPE_API_KEY`, then `ALIBABA_API_KEY`. + +The access region and inference scope differ: Virginia's `-us` model IDs request US-only inference; +some regions select scope through their workspace. Model IDs pass through unchanged. +Alibaba's [regional guide](https://www.alibabacloud.com/help/en/model-studio/regions) and +[base URL table](https://www.alibabacloud.com/help/en/model-studio/base-url) disagree about Virginia's +shared host; the entry above follows the base URL table. Dedicated hosts can be copied from the console. + +### Native options + +- **Chat:** `reasoningEffort` → `reasoning_effort`, `enableThinking` → `enable_thinking`, + `thinkingBudget` → `thinking_budget`, and `preserveThinking` → `preserve_thinking`. + Replay complete `response.message` values to retain `reasoning_content` separately from answer text. + Qwen 3.8 defaults to preserving thinking; older models have different defaults. + Additional options include `toolStream`, `parallelToolCalls`, `repetitionPenalty`, `responseFormat`, + `enableSearch`, and native `searchOptions`. `generation.topK` lowers to `top_k`. + `clearThinking` is a hosted GLM control, and `thinking.type` is available for hosted MiniMax models. +- **Messages:** `effort` → `output_config.effort`. `thinking.type` accepts enabled/disabled with an + optional `budgetTokens` (or native `budget_tokens`). `outputConfig.format` accepts a JSON schema. + Model Studio's empty thinking signatures are accepted; supplied signatures are replayed unchanged. +- **Responses:** `reasoningEffort` → `reasoning.effort`, plus `enableThinking`, `store`, + `previousResponseId`, and `conversation`. Omitted `store` retains the API's default (`true`); + set it to `false` for client-managed history. `previousResponseId` requires a stored response. + Hosted tools are `Alibaba.webSearch()`, `Alibaba.webExtractor()`, and `Alibaba.codeInterpreter()`. + Web extraction is used together with web search. Hosted calls/results carry `providerExecuted: true`. + +Omitted options preserve provider defaults. Effort values pass through unchanged and accept future +strings. Qwen 3.8 Chat rejects requests combining a thinking budget with effort. + +Package entrypoints are `@opencode/ai/providers/alibaba`, `alibaba/chat`, `alibaba/messages`, +and `alibaba/responses`. Live recordings cover all three APIs in Singapore; regional URL construction +is unit-tested for all six regions. + ## Z.AI `ZAI` uses the standard API. Chat Completions is the default language-model API; diff --git a/packages/ai/src/protocols/alibaba-chat.ts b/packages/ai/src/protocols/alibaba-chat.ts new file mode 100644 index 00000000000..919828f097e --- /dev/null +++ b/packages/ai/src/protocols/alibaba-chat.ts @@ -0,0 +1,92 @@ +import { Effect, Schema } from "effect" +import { Protocol } from "../route/protocol.js" +import type { LanguageModelCompatibility } from "../schema/index.js" +import { OpenAIChat } from "./openai-chat.js" +import { JsonObject, ProviderShared } from "./shared.js" +import { OpenResponsesOptions } from "./utils/open-responses-options.js" + +export type ReasoningEffort = OpenResponsesOptions.ReasoningEffort + +const Options = Schema.Struct({ + reasoningEffort: OpenResponsesOptions.Options.fields.reasoningEffort, + enableThinking: Schema.optional(Schema.Boolean), + thinkingBudget: Schema.optional(Schema.Int), + preserveThinking: Schema.optional(Schema.Boolean), + clearThinking: Schema.optional(Schema.Boolean), + thinking: Schema.optional( + Schema.Struct({ + type: Schema.declare<"adaptive" | "disabled" | (string & {})>(Schema.is(Schema.String)), + }), + ), + toolStream: Schema.optional(Schema.Boolean), + parallelToolCalls: OpenResponsesOptions.Options.fields.parallelToolCalls, + repetitionPenalty: Schema.optional(Schema.Number), + responseFormat: Schema.optional( + Schema.Struct({ + type: Schema.declare<"text" | "json_object" | "json_schema" | (string & {})>(Schema.is(Schema.String)), + json_schema: Schema.optional(JsonObject), + }), + ), + enableSearch: Schema.optional(Schema.Boolean), + searchOptions: Schema.optional( + Schema.Struct({ + forced_search: Schema.optional(Schema.Boolean), + search_strategy: Schema.optional( + Schema.declare<"turbo" | "max" | "agent" | "agent_max" | (string & {})>(Schema.is(Schema.String)), + ), + enable_search_extension: Schema.optional(Schema.Boolean), + }), + ), +}) +export type OptionsInput = typeof Options.Type + +export const compatibility = { + maxTokensField: "max_completion_tokens", + supportsStore: false, + supportsStrictMode: false, + reasoningField: "reasoning_content", + zaiToolStream: false, +} satisfies LanguageModelCompatibility + +export const protocol = Protocol.make({ + id: "alibaba-chat", + body: { + schema: Schema.Struct({ + ...OpenAIChat.bodyFields, + enable_thinking: Options.fields.enableThinking, + thinking_budget: Options.fields.thinkingBudget, + preserve_thinking: Options.fields.preserveThinking, + clear_thinking: Options.fields.clearThinking, + thinking: Options.fields.thinking, + parallel_tool_calls: Options.fields.parallelToolCalls, + repetition_penalty: Options.fields.repetitionPenalty, + top_k: Schema.optional(Schema.Int), + response_format: Options.fields.responseFormat, + enable_search: Options.fields.enableSearch, + search_options: Options.fields.searchOptions, + }), + from: Effect.fn("AlibabaChat.fromRequest")(function* (req) { + const opts = yield* ProviderShared.validateWith(Schema.decodeUnknownEffect(Options))(req.providerOptions ?? {}) + return { + ...(yield* OpenAIChat.protocol.body.from(req)), + enable_thinking: opts.enableThinking, + thinking_budget: opts.thinkingBudget, + preserve_thinking: opts.preserveThinking, + clear_thinking: opts.clearThinking, + thinking: opts.thinking, + tool_stream: opts.toolStream, + parallel_tool_calls: + opts.parallelToolCalls ?? + (req.toolChoice?.disableParallelToolUse === undefined ? undefined : !req.toolChoice.disableParallelToolUse), + repetition_penalty: opts.repetitionPenalty, + top_k: req.generation?.topK, + response_format: opts.responseFormat, + enable_search: opts.enableSearch, + search_options: opts.searchOptions, + } + }), + }, + stream: OpenAIChat.protocol.stream, +}) + +export * as AlibabaChat from "./alibaba-chat.js" diff --git a/packages/ai/src/protocols/alibaba-messages.ts b/packages/ai/src/protocols/alibaba-messages.ts new file mode 100644 index 00000000000..00ae5d5f802 --- /dev/null +++ b/packages/ai/src/protocols/alibaba-messages.ts @@ -0,0 +1,48 @@ +import { Effect, Schema } from "effect" +import { Protocol } from "../route/protocol.js" +import { LLMRequest } from "../schema/index.js" +import { AnthropicMessages } from "./anthropic-messages.js" +import { ProviderShared } from "./shared.js" +import { OpenResponsesOptions } from "./utils/open-responses-options.js" + +const Options = Schema.Struct({ + effort: Schema.optional(OpenResponsesOptions.ReasoningEffort), + thinking: Schema.optional( + Schema.Struct({ + type: Schema.declare<"enabled" | "disabled" | (string & {})>(Schema.is(Schema.String)), + budgetTokens: Schema.optional(Schema.Int), + budget_tokens: Schema.optional(Schema.Int), + }), + ), +}) +export type OptionsInput = typeof Options.Type & Pick +export const protocol = Protocol.make({ + id: "alibaba-messages", + body: { + schema: Schema.Struct({ + ...AnthropicMessages.AnthropicMessagesBody.fields, + thinking: Schema.optional(Schema.Struct({ type: Schema.String, budget_tokens: Schema.optional(Schema.Int) })), + }), + from: Effect.fn("AlibabaMessages.fromRequest")(function* (req) { + const opts = yield* ProviderShared.validateWith(Schema.decodeUnknownEffect(Options))(req.providerOptions ?? {}) + // Model Studio accepts enabled thinking without Anthropic's mandatory token budget. + return { + ...(yield* AnthropicMessages.protocol.body.from( + LLMRequest.update(req, { + providerOptions: { ...req.providerOptions, thinking: undefined }, + }), + )), + thinking: + opts.thinking === undefined + ? undefined + : { + type: opts.thinking.type, + budget_tokens: opts.thinking.budgetTokens ?? opts.thinking.budget_tokens, + }, + } + }), + }, + stream: AnthropicMessages.protocol.stream, +}) + +export * as AlibabaMessages from "./alibaba-messages.js" diff --git a/packages/ai/src/protocols/alibaba-responses.ts b/packages/ai/src/protocols/alibaba-responses.ts new file mode 100644 index 00000000000..38cb07beeb3 --- /dev/null +++ b/packages/ai/src/protocols/alibaba-responses.ts @@ -0,0 +1,98 @@ +import { Effect, Schema } from "effect" +import { Protocol } from "../route/protocol.js" +import { OpenResponses } from "./open-responses.js" +import { JsonObject, optionalArray, ProviderShared } from "./shared.js" +import { OpenResponsesOptions } from "./utils/open-responses-options.js" +import { ResponsesHostedTools } from "./utils/responses-hosted-tools.js" + +const Options = Schema.Struct({ + reasoningEffort: OpenResponsesOptions.Options.fields.reasoningEffort, + enableThinking: Schema.optional(Schema.Boolean), + store: OpenResponsesOptions.Options.fields.store, + previousResponseId: Schema.optional(Schema.String), + conversation: Schema.optional(Schema.String), +}) +export type OptionsInput = typeof Options.Type +const NativeTool = Schema.Struct({ type: Schema.Literals(["web_search", "web_extractor", "code_interpreter"]) }) +const WebExtractorItem = Schema.StructWithRest( + Schema.Struct({ + type: Schema.Literal("web_extractor_call"), + id: Schema.String, + urls: Schema.optional(Schema.Array(Schema.String)), + goal: Schema.optional(Schema.String), + }), + [JsonObject], +) +const Body = Schema.Struct({ + ...OpenResponses.coreFields, + input: Schema.Array(Schema.Union([OpenResponses.InputItem, WebExtractorItem])), + tools: optionalArray(Schema.Union([OpenResponses.Tool, NativeTool])), + enable_thinking: Options.fields.enableThinking, + previous_response_id: Options.fields.previousResponseId, + conversation: Options.fields.conversation, + stream: Schema.Literal(true), +}) +const adapter = { + id: "alibaba-responses", + name: "Alibaba Responses", + nativeTool: (native) => ProviderShared.validateWith(Schema.decodeUnknownEffect(NativeTool))(native.alibaba), + restoreHostedToolItem: (item: unknown) => (Schema.is(WebExtractorItem)(item) ? item : undefined), +} satisfies OpenResponses.ProviderAdapter + +const tools = { + web_search_call: { name: "web_search", input: (item) => item.action ?? {} }, + code_interpreter_call: { name: "code_interpreter", input: (item) => ({ code: item.code }) }, +} satisfies ResponsesHostedTools.Definitions + +export const protocol = Protocol.make({ + id: adapter.id, + body: { + schema: Body, + from: Effect.fn("AlibabaResponses.fromRequest")(function* (req) { + const opts = yield* ProviderShared.validateWith(Schema.decodeUnknownEffect(Options))(req.providerOptions ?? {}) + const body = yield* OpenResponses.fromRequestWithAdapter(req, adapter) + const choice = body.tool_choice + return yield* ProviderShared.validateWith(Schema.decodeUnknownEffect(Body))({ + ...body, + enable_thinking: opts.enableThinking, + previous_response_id: opts.previousResponseId, + conversation: opts.conversation, + // Model Studio expresses named selection through allowed_tools. + tool_choice: + typeof choice === "object" && choice.type === "function" + ? { type: "allowed_tools" as const, mode: "required" as const, tools: [choice] } + : choice, + }) + }), + }, + stream: { + event: OpenResponses.protocol.stream.event, + initial: (req) => OpenResponses.initial(req, adapter), + step: (state, input) => + Effect.gen(function* () { + const event = OpenResponses.normalize(state, input) + if (event.type !== "response.output_item.done" || !event.item) return yield* OpenResponses.step(state, event) + if (event.item.type === "web_extractor_call") { + const item = yield* Schema.decodeUnknownEffect(WebExtractorItem)(event.item).pipe( + Effect.mapError((cause) => + ProviderShared.eventError( + adapter.id, + "Alibaba returned an invalid web extraction item", + ProviderShared.encodeJson(event), + cause, + ), + ), + ) + return yield* ResponsesHostedTools.onDone(state, item, { + web_extractor_call: { name: "web_extractor", input: () => ({ urls: item.urls, goal: item.goal }) }, + }) + } + if (ResponsesHostedTools.isItem(event.item, tools)) + return yield* ResponsesHostedTools.onDone(state, event.item, tools) + return yield* OpenResponses.step(state, event) + }), + terminal: OpenResponses.terminal, + }, +}) + +export * as AlibabaResponses from "./alibaba-responses.js" diff --git a/packages/ai/src/protocols/open-responses.ts b/packages/ai/src/protocols/open-responses.ts index 0551e692eaf..50412cfd85d 100644 --- a/packages/ai/src/protocols/open-responses.ts +++ b/packages/ai/src/protocols/open-responses.ts @@ -408,6 +408,9 @@ export type NormalizedEvent = Event & { readonly item?: OutputItem | null } export interface ProviderAdapter { readonly id: string readonly name: string + readonly nativeTool?: ( + native: NonNullable, + ) => Effect.Effect<{ readonly type: string }, AIError> readonly lowerMedia?: (input: { readonly part: MediaPart readonly media: ProviderShared.NormalizedMedia @@ -819,11 +822,13 @@ export const fromRequestWithAdapter = Effect.fn("OpenResponses.fromRequestWithAd projected.tools.length === 0 ? undefined : yield* Effect.forEach(projected.tools, (tool) => - lowerTool( - adapter.name, - tool, - ToolSchemaProjection.modelCompatibility(tool.inputSchema, toolSchemaCompatibility), - ), + tool.native !== undefined && adapter.nativeTool + ? adapter.nativeTool(tool.native) + : lowerTool( + adapter.name, + tool, + ToolSchemaProjection.modelCompatibility(tool.inputSchema, toolSchemaCompatibility), + ), ), tool_choice: allowedToolChoice(request) ?? diff --git a/packages/ai/src/providers/alibaba.ts b/packages/ai/src/providers/alibaba.ts new file mode 100644 index 00000000000..a46c7a750c1 --- /dev/null +++ b/packages/ai/src/providers/alibaba.ts @@ -0,0 +1,134 @@ +import type { ProviderPackage } from "../provider-package.js" +import { AlibabaChat } from "../protocols/alibaba-chat.js" +import { AlibabaMessages } from "../protocols/alibaba-messages.js" +import { AlibabaResponses } from "../protocols/alibaba-responses.js" +import { AuthOptions, type AtLeastOne, type ProviderAuthOption } from "../route/auth-options.js" +import { Route, type RouteDefaultsInput } from "../route/client.js" +import { Endpoint } from "../route/endpoint.js" +import { Framing } from "../route/framing.js" +import { ProviderID, ToolDefinition, type ModelID } from "../schema/index.js" + +export const id = ProviderID.make("alibaba") + +export type Region = + | "ap-southeast-1" + | "cn-beijing" + | "cn-hongkong" + | "us-east-1" + | "eu-central-1" + | "ap-northeast-1" + | (string & {}) +export type ChatOptionsInput = AlibabaChat.OptionsInput +export type MessagesOptionsInput = AlibabaMessages.OptionsInput +export type ResponsesOptionsInput = AlibabaResponses.OptionsInput + +type Location = AtLeastOne<{ + readonly region: Region + /** Overrides the selected API's complete base URL, including its version prefix. */ + readonly baseURL: string +}> & { readonly workspaceID?: string } + +export type Config = Location & + Omit & + ProviderAuthOption<"optional"> & { + readonly providerOptions?: ChatOptionsInput | MessagesOptionsInput | ResponsesOptionsInput + } +export type Settings = Location & + ProviderPackage.Settings & { + readonly apiKey?: string + readonly providerOptions?: Options + } + +const hosts = new Map([ + ["ap-southeast-1", "dashscope-intl.aliyuncs.com"], + ["cn-beijing", "dashscope.aliyuncs.com"], + ["cn-hongkong", "cn-hongkong.dashscope.aliyuncs.com"], + ["us-east-1", "dashscope-us.aliyuncs.com"], +]) +const chatRoute = Route.make({ + id: "alibaba-chat", + provider: id, + providerMetadataKey: "alibaba", + protocol: AlibabaChat.protocol, + endpoint: Endpoint.path("/chat/completions"), + framing: Framing.sse, +}) +const messagesRoute = Route.make({ + id: "alibaba-messages", + provider: id, + providerMetadataKey: "alibaba", + protocol: AlibabaMessages.protocol, + endpoint: Endpoint.path("/messages"), + framing: Framing.sse, + headers: () => ({ "anthropic-version": "2023-06-01" }), +}) +const responsesRoute = Route.make({ + id: "alibaba-responses", + provider: id, + providerMetadataKey: "alibaba", + protocol: AlibabaResponses.protocol, + endpoint: Endpoint.path("/responses"), + framing: Framing.sse, +}) + +export const routes = [chatRoute, messagesRoute, responsesRoute] + +export const configure = (input: Config) => { + const { apiKey: _key, auth: _auth, region, workspaceID, baseURL, ...rest } = input + const host = + region === undefined + ? undefined + : workspaceID === undefined + ? hosts.get(region) + : `${workspaceID}.${region}.maas.aliyuncs.com` + if (baseURL === undefined) { + if (region === undefined) throw new Error("Alibaba requires region or baseURL") + if (host === undefined) throw new Error(`Alibaba region ${region} requires workspaceID or baseURL`) + } + const opts = { ...rest, auth: AuthOptions.bearer(input, ["DASHSCOPE_API_KEY", "ALIBABA_API_KEY"]) } + const common = { ...opts, endpoint: { baseURL: baseURL ?? `https://${host}/compatible-mode/v1` } } + const chat = (id: string | ModelID) => + chatRoute.with(common).model({ id, compatibility: AlibabaChat.compatibility }) + const messages = (id: string | ModelID) => + messagesRoute + .with({ + ...opts, + endpoint: { baseURL: baseURL ?? `https://${host}/apps/anthropic/v1` }, + }) + .model({ id, compatibility: { requireSignature: false } }) + const responses = (id: string | ModelID) => responsesRoute.with(common).model({ id }) + return { id, model: chat, chat, messages, responses, configure } +} + +export const provider = { id, configure } + +export const model: ProviderPackage.Definition["model"] = (id, input) => + fromSettings(input).chat(id) +export const messagesModel: ProviderPackage.Definition< + Settings, + MessagesOptionsInput +>["model"] = (id, input) => fromSettings(input).messages(id) +export const responsesModel: ProviderPackage.Definition< + Settings, + ResponsesOptionsInput +>["model"] = (id, input) => fromSettings(input).responses(id) + +function fromSettings(input: Settings) { + const { body, ...rest } = input + return configure({ ...rest, http: body === undefined ? undefined : { body } }) +} + +export const webSearch = () => hostedTool("web_search", "Search the web with Alibaba's hosted search tool.") +export const webExtractor = () => hostedTool("web_extractor", "Extract web page content with Alibaba's hosted tool.") +export const codeInterpreter = () => hostedTool("code_interpreter", "Execute code with Alibaba's hosted interpreter.") + +function hostedTool(type: "web_search" | "web_extractor" | "code_interpreter", description: string) { + return ToolDefinition.make({ + name: type, + description, + inputSchema: { type: "object", properties: {} }, + native: { alibaba: { type } }, + }) +} + +export * as Alibaba from "./alibaba.js" diff --git a/packages/ai/src/providers/alibaba/chat.ts b/packages/ai/src/providers/alibaba/chat.ts new file mode 100644 index 00000000000..9f185727abf --- /dev/null +++ b/packages/ai/src/providers/alibaba/chat.ts @@ -0,0 +1 @@ +export { model, type Settings } from "../alibaba.js" diff --git a/packages/ai/src/providers/alibaba/messages.ts b/packages/ai/src/providers/alibaba/messages.ts new file mode 100644 index 00000000000..4d5096d929c --- /dev/null +++ b/packages/ai/src/providers/alibaba/messages.ts @@ -0,0 +1,3 @@ +import type { Alibaba } from "../alibaba.js" +export { messagesModel as model } from "../alibaba.js" +export type Settings = Alibaba.Settings diff --git a/packages/ai/src/providers/alibaba/responses.ts b/packages/ai/src/providers/alibaba/responses.ts new file mode 100644 index 00000000000..d96b906fe91 --- /dev/null +++ b/packages/ai/src/providers/alibaba/responses.ts @@ -0,0 +1,3 @@ +import type { Alibaba } from "../alibaba.js" +export { responsesModel as model } from "../alibaba.js" +export type Settings = Alibaba.Settings diff --git a/packages/ai/src/providers/index.ts b/packages/ai/src/providers/index.ts index 6e098579f32..f17beaf11d9 100644 --- a/packages/ai/src/providers/index.ts +++ b/packages/ai/src/providers/index.ts @@ -1,3 +1,4 @@ +export * as Alibaba from "./alibaba.js" export * as Anthropic from "./anthropic.js" export * as AnthropicCompatible from "./anthropic-compatible.js" export * as AmazonBedrock from "./amazon-bedrock.js" diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-7-plus-streams-thinking-disabled.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-7-plus-streams-thinking-disabled.json new file mode 100644 index 00000000000..5cbb9a70f39 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-7-plus-streams-thinking-disabled.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-chat", + "provider:alibaba", + "protocol:alibaba-chat", + "region:ap-southeast-1", + "thinking", + "usage" + ], + "name": "alibaba-chat/qwen-3-7-plus-streams-thinking-disabled", + "recordedAt": "2026-09-08T03:10:42.782Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.7-plus\",\"messages\":[{\"role\":\"user\",\"content\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"max_completion_tokens\":4096,\"enable_thinking\":false}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-047bcb67-b193-9a4f-9d77-ea0325be6d7c\",\"created\":1788837041,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-047bcb67-b193-9a4f-9d77-ea0325be6d7c\",\"choices\":[{\"delta\":{\"content\":\"3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837041,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-047bcb67-b193-9a4f-9d77-ea0325be6d7c\",\"choices\":[{\"delta\":{\"content\":\"7887\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837041,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-047bcb67-b193-9a4f-9d77-ea0325be6d7c\",\"choices\":[{\"delta\":{\"content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788837041,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788837041,\"id\":\"chatcmpl-047bcb67-b193-9a4f-9d77-ea0325be6d7c\",\"model\":\"qwen3.7-plus\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":5,\"prompt_tokens\":32,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":32},\"total_tokens\":37}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-7-plus-streams-thinking-enabled.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-7-plus-streams-thinking-enabled.json new file mode 100644 index 00000000000..4a17a2eb246 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-7-plus-streams-thinking-enabled.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-chat", + "provider:alibaba", + "protocol:alibaba-chat", + "region:ap-southeast-1", + "thinking", + "usage" + ], + "name": "alibaba-chat/qwen-3-7-plus-streams-thinking-enabled", + "recordedAt": "2026-09-08T03:10:54.099Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.7-plus\",\"messages\":[{\"role\":\"user\",\"content\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"max_completion_tokens\":4096,\"enable_thinking\":true,\"thinking_budget\":1024}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\",\"reasoning_content\":\"\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"Thinking\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" Process:\\n\\n1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\". **Ident\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"ify the core question\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\":** The user wants\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" to know the product\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" of \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"173 and\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 219\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\".\\n2.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" **Identify\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" the constraint:** The\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" response must contain *\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"only\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"* the final integer\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\".\\n3.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" **Perform the\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" multiplication:**\\n \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73 * \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"219\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * =\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * (20\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"0 + 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"0 + 9\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\")\\n *\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" = 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73 * \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"200 +\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 10\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" + 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3 * 9\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n * \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 20\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"0 = 3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"4600\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n * \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 10\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" = 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"30\\n \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73 * \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"9 = 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"557\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" Sum: 3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"4600\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" + 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"30 + \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"1557\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n * \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 346\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"00 + \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"1730\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" = 36\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"33\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"0\\n *\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 36\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"330 +\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 155\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7 = 3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7887\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n4.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" **Verify the\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" multiplication:**\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"173 *\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 219\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n * \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 3 * \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"9\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" = 27\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" (\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"write 7,\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" carry 2)\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n *\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 3 *\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 7 = \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"21 + \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"2 = 2\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3 (write \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3, carry \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"2)\\n \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 1 =\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 3 + \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"2 =\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 5\\n \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * Row\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 1: \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"1557\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7 * 9\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" = 63\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" (write \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3, carry \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"6)\\n \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 7\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 7 =\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 4\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"9 + 6\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" = 55\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" (write 5\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\", carry 5\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\")\\n *\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 7 *\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 1 = \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7 + 5\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" = 12\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n * \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" Row 2:\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 125\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"30\\n \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 9 =\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 9\\n \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 7 =\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 7\\n \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * 1 =\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 1\\n \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" * Row \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3: 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7300\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n * \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" Sum:\\n \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 155\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7\\n +\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"1253\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"0\\n +\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"1730\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"0\\n ------\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n 3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"78\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"87\\n5\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\". **Format\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" the output:** The\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" user requested *only\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"* the final integer\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\".\\n *\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" Output: \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3788\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7\\n6.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" **Final check\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\":** 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3 *\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 219\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" = 37\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"887.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" No extra text,\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" no punctuation if possible\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" (\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"just the integer).\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n *\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 37\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"887.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" Done.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"378\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"87\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.7-plus\",\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788837042,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788837042,\"id\":\"chatcmpl-ec928416-c99b-9f46-9805-cbb37bd7c499\",\"model\":\"qwen3.7-plus\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":621,\"completion_tokens_details\":{\"reasoning_tokens\":613,\"text_tokens\":621},\"prompt_tokens\":30,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":30},\"total_tokens\":651}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-flash-reads-image-bytes.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-flash-reads-image-bytes.json new file mode 100644 index 00000000000..3be77b692ba --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-flash-reads-image-bytes.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "metadata": { + "tags": ["prefix:alibaba-chat", "provider:alibaba", "protocol:alibaba-chat", "region:ap-southeast-1", "image"], + "name": "alibaba-chat/qwen-3-8-flash-reads-image-bytes", + "recordedAt": "2026-09-08T03:10:55.585Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-flash\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"Read the three words in this image. Reply with only the words in order.\"},{\"type\":\"image_url\",\"image_url\":{\"url\":\"data:image/png;base64,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\"}}]}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"max_completion_tokens\":4096,\"enable_thinking\":false}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-flash\",\"id\":\"chatcmpl-2952c591-6e41-90ec-81ca-894b8e84f0aa\",\"created\":1788837054,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-flash\",\"id\":\"chatcmpl-2952c591-6e41-90ec-81ca-894b8e84f0aa\",\"choices\":[{\"delta\":{\"content\":\"j\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837054,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-flash\",\"id\":\"chatcmpl-2952c591-6e41-90ec-81ca-894b8e84f0aa\",\"choices\":[{\"delta\":{\"content\":\"iggling restroom prison\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837054,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-flash\",\"id\":\"chatcmpl-2952c591-6e41-90ec-81ca-894b8e84f0aa\",\"choices\":[{\"delta\":{\"content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788837054,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788837054,\"id\":\"chatcmpl-2952c591-6e41-90ec-81ca-894b8e84f0aa\",\"model\":\"qwen3.8-flash\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":6,\"completion_tokens_details\":{},\"prompt_tokens\":110,\"prompt_tokens_details\":{\"cached_tokens\":0,\"image_tokens\":82,\"text_tokens\":28},\"total_tokens\":116}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-obeys-named-tool-choice.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-obeys-named-tool-choice.json new file mode 100644 index 00000000000..05ac015d9d1 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-obeys-named-tool-choice.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-chat", + "provider:alibaba", + "protocol:alibaba-chat", + "region:ap-southeast-1", + "tool", + "tool-choice" + ], + "name": "alibaba-chat/qwen-3-8-max-obeys-named-tool-choice", + "recordedAt": "2026-09-08T03:10:56.576Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":\"Find the current weather in Paris.\"}],\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"description\":\"Get weather in a city\",\"parameters\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}}],\"tool_choice\":{\"type\":\"function\",\"function\":{\"name\":\"get_weather\"}},\"stream\":true,\"stream_options\":{\"include_usage\":true},\"reasoning_effort\":\"none\",\"max_completion_tokens\":4096}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-681dfa5a-ae08-98da-ba0d-4b1d0d364b6b\",\"created\":1788837055,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\",\"tool_calls\":[{\"index\":0,\"id\":\"call_4eb823cb28d141c8befbb331\",\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"arguments\":\"\"}}]},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-681dfa5a-ae08-98da-ba0d-4b1d0d364b6b\",\"choices\":[{\"delta\":{\"content\":\"\",\"tool_calls\":[{\"index\":0,\"id\":\"\",\"type\":\"function\",\"function\":{\"arguments\":\"\"}}]},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837055,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-681dfa5a-ae08-98da-ba0d-4b1d0d364b6b\",\"choices\":[{\"delta\":{\"content\":\"\",\"tool_calls\":[{\"type\":\"function\",\"index\":0,\"function\":{\"arguments\":\"{\\\"city\\\": \\\"Paris\"}}]},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837055,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-681dfa5a-ae08-98da-ba0d-4b1d0d364b6b\",\"choices\":[{\"delta\":{\"content\":\"\",\"tool_calls\":[{\"type\":\"function\",\"index\":0,\"function\":{\"arguments\":\"\\\"\"}}]},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837055,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-681dfa5a-ae08-98da-ba0d-4b1d0d364b6b\",\"choices\":[{\"delta\":{\"content\":\"\",\"tool_calls\":[{\"type\":\"function\",\"index\":0,\"function\":{\"arguments\":\"}\"}}]},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837055,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-681dfa5a-ae08-98da-ba0d-4b1d0d364b6b\",\"choices\":[{\"delta\":{\"content\":\"\",\"tool_calls\":[{\"type\":\"function\",\"index\":0,\"function\":{\"arguments\":\"\"}}]},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837055,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-681dfa5a-ae08-98da-ba0d-4b1d0d364b6b\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"function\":{\"arguments\":\"\"},\"index\":0,\"id\":null,\"type\":\"function\"}],\"content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837055,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-681dfa5a-ae08-98da-ba0d-4b1d0d364b6b\",\"choices\":[{\"delta\":{},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788837055,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788837055,\"id\":\"chatcmpl-681dfa5a-ae08-98da-ba0d-4b1d0d364b6b\",\"model\":\"qwen3.8-max\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":19,\"prompt_tokens\":288,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":288},\"total_tokens\":307}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up.json new file mode 100644 index 00000000000..1b1ddc1f04a --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up.json @@ -0,0 +1,73 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-chat", + "provider:alibaba", + "protocol:alibaba-chat", + "region:ap-southeast-1", + "tool", + "tool-loop", + "reasoning", + "continuation" + ], + "name": "alibaba-chat/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up", + "recordedAt": "2026-09-08T03:09:54.566Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":\"We have a budget of 38000 dollars for 219 trips costing 173 dollars each. Calculate whether that is affordable. If it is, use get_weather to look up the current weather in Paris. After receiving the result, report the weather in one short sentence.\"}],\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"parameters\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"],\"additionalProperties\":false}}}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"reasoning_effort\":\"medium\",\"tool_stream\":true,\"max_completion_tokens\":4096,\"preserve_thinking\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\",\"reasoning_content\":\"\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"2\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"19 × \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"173 =\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 37\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\",887\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" ≤\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 38,\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"000 →\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" purchasable.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" Call\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" weather.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"index\":0,\"id\":\"call_38a21ae4299642b3a7ce840e\",\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"arguments\":\"\"}}],\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"type\":\"function\",\"index\":0,\"function\":{\"arguments\":\"{\\\"city\\\": \"}}],\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"type\":\"function\",\"index\":0,\"function\":{\"arguments\":\"\\\"Paris\"}}],\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"type\":\"function\",\"index\":0,\"function\":{\"arguments\":\"\\\"\"}}],\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"type\":\"function\",\"index\":0,\"function\":{\"arguments\":\"}\"}}],\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"function\":{\"arguments\":\"\"},\"index\":0,\"id\":null,\"type\":\"function\"}],\"content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"choices\":[{\"delta\":{},\"index\":0,\"finish_reason\":\"tool_calls\",\"logprobs\":null}],\"created\":1788836989,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788836989,\"id\":\"chatcmpl-e99616c5-1050-9cc6-bc87-7d02e4e1de4d\",\"model\":\"qwen3.8-max\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":60,\"completion_tokens_details\":{\"reasoning_tokens\":32,\"text_tokens\":60},\"prompt_tokens\":350,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":350},\"total_tokens\":410}}\n\ndata: [DONE]\n\n" + } + }, + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":\"We have a budget of 38000 dollars for 219 trips costing 173 dollars each. Calculate whether that is affordable. If it is, use get_weather to look up the current weather in Paris. After receiving the result, report the weather in one short sentence.\"},{\"role\":\"assistant\",\"content\":null,\"tool_calls\":[{\"id\":\"call_38a21ae4299642b3a7ce840e\",\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"arguments\":\"{\\\"city\\\":\\\"Paris\\\"}\"}}],\"reasoning_content\":\"219 × 173 = 37,887 ≤ 38,000 → purchasable. Call weather.\"},{\"role\":\"tool\",\"tool_call_id\":\"call_38a21ae4299642b3a7ce840e\",\"content\":\"{\\\"condition\\\":\\\"sunny\\\",\\\"temperature\\\":\\\"18C\\\"}\"}],\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"parameters\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"],\"additionalProperties\":false}}}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"reasoning_effort\":\"medium\",\"tool_stream\":true,\"max_completion_tokens\":4096,\"preserve_thinking\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\",\"reasoning_content\":\"\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"Note\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\": 21\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"9 × 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73 = \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"37,8\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"87 ≤ \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"38,\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"000,\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" so it's purch\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"asable.\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"The total\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\" cost is \",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"219 ×\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\" $173\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\" = $37\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\",887\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\", which is within\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\" your $3\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"8,00\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"0 budget, so\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\" it is\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\" affordable. Paris is\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\" currently sunny at\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\" 18°C\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\".\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788836991,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788836991,\"id\":\"chatcmpl-c075c2f7-07b5-975b-96bd-5ee12c72fb7c\",\"model\":\"qwen3.8-max\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":88,\"completion_tokens_details\":{\"reasoning_tokens\":35,\"text_tokens\":88},\"prompt_tokens\":438,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":438},\"total_tokens\":526}}\n\ndata: [DONE]\n\n" + } + }, + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":\"We have a budget of 38000 dollars for 219 trips costing 173 dollars each. Calculate whether that is affordable. If it is, use get_weather to look up the current weather in Paris. After receiving the result, report the weather in one short sentence.\"},{\"role\":\"assistant\",\"content\":null,\"tool_calls\":[{\"id\":\"call_38a21ae4299642b3a7ce840e\",\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"arguments\":\"{\\\"city\\\":\\\"Paris\\\"}\"}}],\"reasoning_content\":\"219 × 173 = 37,887 ≤ 38,000 → purchasable. Call weather.\"},{\"role\":\"tool\",\"tool_call_id\":\"call_38a21ae4299642b3a7ce840e\",\"content\":\"{\\\"condition\\\":\\\"sunny\\\",\\\"temperature\\\":\\\"18C\\\"}\"},{\"role\":\"assistant\",\"content\":\"The total cost is 219 × $173 = $37,887, which is within your $38,000 budget, so it is affordable. Paris is currently sunny at 18°C.\",\"reasoning_content\":\"Note: 219 × 173 = 37,887 ≤ 38,000, so it's purchasable.\\n\"},{\"role\":\"user\",\"content\":\"What temperature did the tool report? Reply with only the temperature.\"}],\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"parameters\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"],\"additionalProperties\":false}}}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"reasoning_effort\":\"medium\",\"tool_stream\":true,\"max_completion_tokens\":4096,\"preserve_thinking\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-394220e8-6684-961f-9d12-adb634963286\",\"created\":1788836993,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\",\"reasoning_content\":\"\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-394220e8-6684-961f-9d12-adb634963286\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"The\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836993,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-394220e8-6684-961f-9d12-adb634963286\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" tool reported 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836993,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-394220e8-6684-961f-9d12-adb634963286\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"8C\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836993,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-394220e8-6684-961f-9d12-adb634963286\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\".\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836993,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-394220e8-6684-961f-9d12-adb634963286\",\"choices\":[{\"delta\":{\"content\":\"18C\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836993,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-394220e8-6684-961f-9d12-adb634963286\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788836993,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788836993,\"id\":\"chatcmpl-394220e8-6684-961f-9d12-adb634963286\",\"model\":\"qwen3.8-max\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":14,\"completion_tokens_details\":{\"reasoning_tokens\":8,\"text_tokens\":14},\"prompt_tokens\":551,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":551},\"total_tokens\":565}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-returns-a-json-object.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-returns-a-json-object.json new file mode 100644 index 00000000000..cf9bc673d37 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-returns-a-json-object.json @@ -0,0 +1,34 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-chat", + "provider:alibaba", + "protocol:alibaba-chat", + "region:ap-southeast-1", + "structured-output" + ], + "name": "alibaba-chat/qwen-3-8-max-returns-a-json-object", + "recordedAt": "2026-09-08T03:11:29.462Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":\"Return a JSON object with one key \\\"city\\\" set to the capital city of France.\"}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"reasoning_effort\":\"none\",\"max_completion_tokens\":1024,\"response_format\":{\"type\":\"json_object\"}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-de34af77-7b1e-9999-a48f-e564c03d4b6b\",\"created\":1788837088,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-de34af77-7b1e-9999-a48f-e564c03d4b6b\",\"choices\":[{\"delta\":{\"content\":\"{\\\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837088,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-de34af77-7b1e-9999-a48f-e564c03d4b6b\",\"choices\":[{\"delta\":{\"content\":\"city\\\":\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837088,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-de34af77-7b1e-9999-a48f-e564c03d4b6b\",\"choices\":[{\"delta\":{\"content\":\" \\\"Paris\\\"}\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788837088,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-de34af77-7b1e-9999-a48f-e564c03d4b6b\",\"choices\":[{\"delta\":{\"content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788837088,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788837088,\"id\":\"chatcmpl-de34af77-7b1e-9999-a48f-e564c03d4b6b\",\"model\":\"qwen3.8-max\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":6,\"prompt_tokens\":32,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":32},\"total_tokens\":38}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-default-effort.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-default-effort.json new file mode 100644 index 00000000000..eb175bff457 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-default-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-chat", + "provider:alibaba", + "protocol:alibaba-chat", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-chat/qwen-3-8-max-streams-default-effort", + "recordedAt": "2026-09-08T03:08:03.087Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"max_completion_tokens\":4096}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\",\"reasoning_content\":\"\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"We\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" need answer user's\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" simple arithmetic\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\": 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3 * 2\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"19\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\". Need final only\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" integer. Compute:\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"*200\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"=346\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"00;\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"*19=\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3287\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" (\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"173*\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"20=3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"460-\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"173=\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3287\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"); sum=3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"78\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"87. Alternatively\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 219\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"*173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\". Final only integer\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\". Ensure no extra\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\".\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"3788\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"7\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788836880,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788836880,\"id\":\"chatcmpl-46b196d8-f112-9e12-b89a-d72b9323f26d\",\"model\":\"qwen3.8-max\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":108,\"completion_tokens_details\":{\"reasoning_tokens\":100,\"text_tokens\":108},\"prompt_tokens\":81,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":81},\"total_tokens\":189}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-high-effort.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-high-effort.json new file mode 100644 index 00000000000..6d0442a93bf --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-high-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-chat", + "provider:alibaba", + "protocol:alibaba-chat", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-chat/qwen-3-8-max-streams-high-effort", + "recordedAt": "2026-09-08T03:09:41.038Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"reasoning_effort\":\"high\",\"max_completion_tokens\":4096}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\",\"reasoning_content\":\"\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"We\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" need answer user\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"'s simple arithmetic\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\":\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" *\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 219\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\". Compute: \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3*20\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"0=34\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"600;\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"*19=\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"173*\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"20-1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73=\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3460\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"-173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"=328\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7; sum=\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"378\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"87. Final\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" only integer.\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"37\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"887\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788836978,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788836978,\"id\":\"chatcmpl-c5e64fbe-df2d-92ff-9943-4904a148f26f\",\"model\":\"qwen3.8-max\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":88,\"completion_tokens_details\":{\"reasoning_tokens\":80,\"text_tokens\":88},\"prompt_tokens\":81,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":81},\"total_tokens\":169}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-low-effort.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-low-effort.json new file mode 100644 index 00000000000..f5d28a6caba --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-low-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-chat", + "provider:alibaba", + "protocol:alibaba-chat", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-chat/qwen-3-8-max-streams-low-effort", + "recordedAt": "2026-09-08T03:09:34.363Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"reasoning_effort\":\"low\",\"max_completion_tokens\":4096}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\",\"reasoning_content\":\"\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"Let\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" me calculate 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73 × \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"219.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n\\n173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" × 21\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"9 = 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73 × (\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"200 +\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 19)\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n= 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73 × \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"200 +\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" × 19\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n= 3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"4600\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" + 32\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"87\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"= 37\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"887\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"37\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"887\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788836971,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788836971,\"id\":\"chatcmpl-917106a3-dfdd-9124-82dc-900de2edcf25\",\"model\":\"qwen3.8-max\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":87,\"completion_tokens_details\":{\"reasoning_tokens\":79,\"text_tokens\":87},\"prompt_tokens\":69,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":69},\"total_tokens\":156}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-max-effort.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-max-effort.json new file mode 100644 index 00000000000..0c63c0623fe --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-max-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-chat", + "provider:alibaba", + "protocol:alibaba-chat", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-chat/qwen-3-8-max-streams-max-effort", + "recordedAt": "2026-09-08T03:09:49.033Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"reasoning_effort\":\"max\",\"max_completion_tokens\":4096}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\",\"reasoning_content\":\"\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"We\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" need answer user's\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" simple arithmetic\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\": 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3 * 2\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"19\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\". Need final only\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" integer. Compute:\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"*200\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"=346\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"00;\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"*19=\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3287\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" (\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"173*\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"20=3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"460-\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"173=\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3287\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"); sum 3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"788\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7. Check alternative\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\": 21\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"9*17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3 = 2\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"19\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"*(170\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"+3)=3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7230\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"+657\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"=37\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"887.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" Final only integer.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"3788\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"7\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788836985,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788836985,\"id\":\"chatcmpl-5202c901-3c72-9b43-8a9f-3db17d85a1cb\",\"model\":\"qwen3.8-max\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":133,\"completion_tokens_details\":{\"reasoning_tokens\":125,\"text_tokens\":133},\"prompt_tokens\":81,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":81},\"total_tokens\":214}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-medium-effort.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-medium-effort.json new file mode 100644 index 00000000000..2c807628417 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-medium-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-chat", + "provider:alibaba", + "protocol:alibaba-chat", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-chat/qwen-3-8-max-streams-medium-effort", + "recordedAt": "2026-09-08T03:09:38.233Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"reasoning_effort\":\"medium\",\"max_completion_tokens\":4096}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\",\"reasoning_content\":\"\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"The\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" user wants me to\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" calculate 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3 × 2\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"19 and reply\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" with only the final\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" integer.\\n\\n1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73 × \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"219:\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" × 20\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"0 = 3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"4,60\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"0\\n17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3 × 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"9 = 3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\",287\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n34,\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"60\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"0 + 3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\",287\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" = 37\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\",887\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n\\nLet me verify\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\": 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3 × 2\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"19\\n=\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3 × (2\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"20 - \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"1)\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"= 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3 × 2\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"20 - \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"173\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"= 38\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\",060\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" - 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3\\n= \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"37,8\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"87\\n\\nThe\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" answer is 3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7887\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\".\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"3788\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"7\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788836974,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788836974,\"id\":\"chatcmpl-a42ce2bc-4c60-9079-9b86-31ce3737204c\",\"model\":\"qwen3.8-max\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":174,\"completion_tokens_details\":{\"reasoning_tokens\":166,\"text_tokens\":174},\"prompt_tokens\":43,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":43},\"total_tokens\":217}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-minimal-effort.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-minimal-effort.json new file mode 100644 index 00000000000..834674e5295 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-minimal-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-chat", + "provider:alibaba", + "protocol:alibaba-chat", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-chat/qwen-3-8-max-streams-minimal-effort", + "recordedAt": "2026-09-08T03:09:31.692Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"reasoning_effort\":\"minimal\",\"max_completion_tokens\":4096}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\",\"reasoning_content\":\"\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"Let\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" me calculate 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73 × \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"219.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n\\n173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" × 21\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"9 = 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73 × (\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"200 +\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 19)\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n= 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73 × \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"200 +\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"173 ×\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 19\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"= 34\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\",600\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" + 3,\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"287\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"= 37\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\",887\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\\n\\nLet me verify\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\":\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" 173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" × 19\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" = 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3 × 2\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"0 - 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73 = \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3,46\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"0 - 1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73 = \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3,28\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7. ✓\\n\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"So 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3 × 2\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"19 = \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"37,8\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"87.\\n\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"37\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"887\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788836967,\"id\":\"chatcmpl-072fe561-8338-9cb0-b95c-7a4dea45151e\",\"model\":\"qwen3.8-max\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":158,\"completion_tokens_details\":{\"reasoning_tokens\":150,\"text_tokens\":158},\"prompt_tokens\":69,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":69},\"total_tokens\":227}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-none-effort.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-none-effort.json new file mode 100644 index 00000000000..ac1f293d221 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-none-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-chat", + "provider:alibaba", + "protocol:alibaba-chat", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-chat/qwen-3-8-max-streams-none-effort", + "recordedAt": "2026-09-08T03:09:27.584Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"reasoning_effort\":\"none\",\"max_completion_tokens\":4096}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-d8fbc8fe-4d5a-9dc9-84c6-ed0c7b9dd3bb\",\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-d8fbc8fe-4d5a-9dc9-84c6-ed0c7b9dd3bb\",\"choices\":[{\"delta\":{\"content\":\"3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-d8fbc8fe-4d5a-9dc9-84c6-ed0c7b9dd3bb\",\"choices\":[{\"delta\":{\"content\":\"78\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-d8fbc8fe-4d5a-9dc9-84c6-ed0c7b9dd3bb\",\"choices\":[{\"delta\":{\"content\":\"87\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-d8fbc8fe-4d5a-9dc9-84c6-ed0c7b9dd3bb\",\"choices\":[{\"delta\":{\"content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788836967,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788836967,\"id\":\"chatcmpl-d8fbc8fe-4d5a-9dc9-84c6-ed0c7b9dd3bb\",\"model\":\"qwen3.8-max\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":5,\"prompt_tokens\":32,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":32},\"total_tokens\":37}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-xhigh-effort.json b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-xhigh-effort.json new file mode 100644 index 00000000000..9ad48056a98 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-chat/qwen-3-8-max-streams-xhigh-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-chat", + "provider:alibaba", + "protocol:alibaba-chat", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-chat/qwen-3-8-max-streams-xhigh-effort", + "recordedAt": "2026-09-08T03:09:45.046Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"reasoning_effort\":\"xhigh\",\"max_completion_tokens\":4096}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=utf-8" + }, + "body": "data: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null,\"choices\":[{\"logprobs\":null,\"index\":0,\"delta\":{\"content\":\"\",\"role\":\"assistant\",\"reasoning_content\":\"\"},\"finish_reason\":null}]}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"We\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" need answer user\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\":\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" \\\"What is \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"173 multiplied\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" by 21\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"9? Reply with\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" only the final integer\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\".\\\" Need compute \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"173*\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"219.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" Let's calculate:\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"173*\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"2\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"00=3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"4600\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"; 17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3*19\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"=173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"*20-\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3=34\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"60-1\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"73=3\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"287;\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" sum 37\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"88\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7. Alternatively \"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"219\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"*173\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" = 21\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"9*(17\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"0+3)=\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"37\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"230+\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"657=\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"3788\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"7. Final only\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" integer. Ensure no\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\" extra.\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"378\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"87\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":null,\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"model\":\"qwen3.8-max\",\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"choices\":[{\"delta\":{\"content\":\"\",\"reasoning_content\":\"\"},\"index\":0,\"finish_reason\":\"stop\",\"logprobs\":null}],\"created\":1788836981,\"object\":\"chat.completion.chunk\",\"usage\":null}\n\ndata: {\"choices\":[],\"created\":1788836981,\"id\":\"chatcmpl-1368c495-69aa-9ddb-8f16-35cd13a310f1\",\"model\":\"qwen3.8-max\",\"object\":\"chat.completion.chunk\",\"usage\":{\"completion_tokens\":150,\"completion_tokens_details\":{\"reasoning_tokens\":142,\"text_tokens\":150},\"prompt_tokens\":81,\"prompt_tokens_details\":{\"cached_tokens\":0,\"text_tokens\":81},\"total_tokens\":231}}\n\ndata: [DONE]\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-7-plus-streams-thinking-disabled.json b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-7-plus-streams-thinking-disabled.json new file mode 100644 index 00000000000..4ca77bd87f1 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-7-plus-streams-thinking-disabled.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-messages", + "provider:alibaba", + "protocol:alibaba-messages", + "region:ap-southeast-1", + "thinking", + "usage" + ], + "name": "alibaba-messages/qwen-3-7-plus-streams-thinking-disabled", + "recordedAt": "2026-09-08T03:10:57.819Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.7-plus\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"stream\":true,\"max_tokens\":4096,\"thinking\":{\"type\":\"disabled\"}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.7-plus\",\"id\":\"msg_c4d58b4f-a61d-9d0c-a9e4-cb45d34b1120\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":20,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"text\",\"text\":\"\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"7887\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"end_turn\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":5,\"cache_creation_input_tokens\":0,\"input_tokens\":32,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-7-plus-streams-thinking-enabled.json b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-7-plus-streams-thinking-enabled.json new file mode 100644 index 00000000000..a7a99e1fb02 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-7-plus-streams-thinking-enabled.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-messages", + "provider:alibaba", + "protocol:alibaba-messages", + "region:ap-southeast-1", + "thinking", + "usage" + ], + "name": "alibaba-messages/qwen-3-7-plus-streams-thinking-enabled", + "recordedAt": "2026-09-08T03:11:03.999Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.7-plus\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"stream\":true,\"max_tokens\":4096,\"thinking\":{\"type\":\"enabled\",\"budget_tokens\":1024}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.7-plus\",\"id\":\"msg_9243d346-7958-94f1-b81a-72a33c12b5e2\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":20,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"thinking\",\"signature\":\"\",\"thinking\":\"\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"Thinking\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" Process:\\n\\n1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\". Identify\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" the core request\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\": Calculate 1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"73 *\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 219\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" and return *only\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"* the final\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" integer.\\n2\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\". Perform the\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" multiplication:\\n\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" * \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"173 *\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 219\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"\\n * \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" * 20\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"0 = 3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"4600\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"\\n \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" * 1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"73 * \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"10 = \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"1730\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"\\n * \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" * 9 =\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 155\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"7\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"\\n * \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" Sum: 3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"4600\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" + 17\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"30 + \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"1557\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"\\n * \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 346\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"00 + \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"1730\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" = 36\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"330\\n\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" * \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3633\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"0 + 1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"557 =\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 378\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"8\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"7\\n3.\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" Double check:\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"\\n * \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" * 22\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"0 = 1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"73 * \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"22 * \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"10 = \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3806\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" * \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"10 = \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3806\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"0\\n *\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 38\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"060 -\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" = 37\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"887\\n\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" * Matches\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\".\\n4.\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" Format the output\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\": \\\"Reply with\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" only the\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" final integer.\\\" ->\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 378\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"87.\\n\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"5. Final\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" output: 3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"78\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"87.\\n\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"signature_delta\",\"signature\":\"\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"text\",\"text\":\"\"},\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"37\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"887\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":1}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"end_turn\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":301,\"cache_creation_input_tokens\":0,\"input_tokens\":30,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-flash-reads-image-bytes.json b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-flash-reads-image-bytes.json new file mode 100644 index 00000000000..be7ee894ee3 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-flash-reads-image-bytes.json @@ -0,0 +1,34 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-messages", + "provider:alibaba", + "protocol:alibaba-messages", + "region:ap-southeast-1", + "image" + ], + "name": "alibaba-messages/qwen-3-8-flash-reads-image-bytes", + "recordedAt": "2026-09-08T03:11:05.331Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-flash\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"Read the three words in this image. Reply with only the words in order.\"},{\"type\":\"image\",\"source\":{\"type\":\"base64\",\"media_type\":\"image/png\",\"data\":\"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\"}}]}],\"stream\":true,\"max_tokens\":4096,\"thinking\":{\"type\":\"disabled\"}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.8-flash\",\"id\":\"msg_84fa8c1d-57b1-9645-be64-fa27c790cdff\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":16,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"text\",\"text\":\"\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"j\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"iggling restroom prison\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"end_turn\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":6,\"cache_creation_input_tokens\":0,\"input_tokens\":110,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-follows-a-json-schema.json b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-follows-a-json-schema.json new file mode 100644 index 00000000000..62cefebf7ee --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-follows-a-json-schema.json @@ -0,0 +1,34 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-messages", + "provider:alibaba", + "protocol:alibaba-messages", + "region:ap-southeast-1", + "structured-output" + ], + "name": "alibaba-messages/qwen-3-8-max-follows-a-json-schema", + "recordedAt": "2026-09-08T03:11:30.530Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"Return a JSON object with one key \\\"city\\\" set to the capital city of France.\"}]}],\"stream\":true,\"max_tokens\":1024,\"thinking\":{\"type\":\"disabled\"},\"output_config\":{\"format\":{\"type\":\"json_schema\",\"schema\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\"}},\"required\":[\"city\"],\"additionalProperties\":false}}}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.8-max\",\"id\":\"msg_16e067c1-984b-94d3-9abb-11792d794271\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":18,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"text\",\"text\":\"\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"{\\\"\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"city\\\":\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\" \\\"Paris\\\"}\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"end_turn\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":6,\"cache_creation_input_tokens\":0,\"input_tokens\":32,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-obeys-named-tool-choice.json b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-obeys-named-tool-choice.json new file mode 100644 index 00000000000..0a6cf8fa35e --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-obeys-named-tool-choice.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-messages", + "provider:alibaba", + "protocol:alibaba-messages", + "region:ap-southeast-1", + "tool", + "tool-choice" + ], + "name": "alibaba-messages/qwen-3-8-max-obeys-named-tool-choice", + "recordedAt": "2026-09-08T03:11:06.590Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"Find the current weather in Paris.\"}]}],\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get weather in a city\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}],\"tool_choice\":{\"type\":\"tool\",\"name\":\"get_weather\"},\"stream\":true,\"max_tokens\":4096,\"thinking\":{\"type\":\"disabled\"}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.8-max\",\"id\":\"msg_0e8f1abf-f2bc-9a86-a6a7-14804ac17eac\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":45,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"name\":\"get_weather\",\"input\":{},\"id\":\"toolu_cf9cab33261f4709ae096d8a\",\"type\":\"tool_use\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"partial_json\":\"\",\"type\":\"input_json_delta\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"partial_json\":\"{\\\"city\\\": \\\"Paris\",\"type\":\"input_json_delta\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"partial_json\":\"\\\"\",\"type\":\"input_json_delta\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"partial_json\":\"}\",\"type\":\"input_json_delta\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"end_turn\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":19,\"cache_creation_input_tokens\":0,\"input_tokens\":288,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up.json b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up.json new file mode 100644 index 00000000000..fcbc56b39cd --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up.json @@ -0,0 +1,73 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-messages", + "provider:alibaba", + "protocol:alibaba-messages", + "region:ap-southeast-1", + "tool", + "tool-loop", + "reasoning", + "continuation" + ], + "name": "alibaba-messages/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up", + "recordedAt": "2026-09-08T03:10:15.259Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"We have a budget of 38000 dollars for 219 trips costing 173 dollars each. Calculate whether that is affordable. If it is, use get_weather to look up the current weather in Paris. After receiving the result, report the weather in one short sentence.\"}]}],\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"],\"additionalProperties\":false}}],\"stream\":true,\"max_tokens\":4096,\"output_config\":{\"effort\":\"medium\"}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.8-max\",\"id\":\"msg_0f315bca-1ce8-94cb-bd3a-acb325ff2ee5\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":107,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"thinking\",\"signature\":\"\",\"thinking\":\"\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"I\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" need\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" to investigate\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" this further. Let\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" me check the details\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\".\\n\\n\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"219 ×\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" = 37\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\",887\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\". Budget is \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"38,\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"000.\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" Since 37\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\",\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"887 ≤\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 38,\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"000,\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" it can be covered\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\". Call get_weather\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" for\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" Paris.\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"signature_delta\",\"signature\":\"\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"name\":\"get_weather\",\"input\":{},\"id\":\"toolu_5d1ba8ca72bd49889ca838f2\",\"type\":\"tool_use\"},\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"partial_json\":\"\",\"type\":\"input_json_delta\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"partial_json\":\"{\\\"city\\\": \\\"Paris\",\"type\":\"input_json_delta\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"partial_json\":\"\\\"\",\"type\":\"input_json_delta\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"partial_json\":\"}\",\"type\":\"input_json_delta\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":1}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"tool_use\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":97,\"cache_creation_input_tokens\":0,\"input_tokens\":351,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + }, + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"We have a budget of 38000 dollars for 219 trips costing 173 dollars each. Calculate whether that is affordable. If it is, use get_weather to look up the current weather in Paris. After receiving the result, report the weather in one short sentence.\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"thinking\",\"thinking\":\"I need to investigate this further. Let me check the details.\\n\\n219 × 173 = 37,887. Budget is 38,000. Since 37,887 ≤ 38,000, it can be covered. Call get_weather for Paris.\",\"signature\":\"\"},{\"type\":\"tool_use\",\"id\":\"toolu_5d1ba8ca72bd49889ca838f2\",\"name\":\"get_weather\",\"input\":{\"city\":\"Paris\"}}]},{\"role\":\"user\",\"content\":[{\"type\":\"tool_result\",\"tool_use_id\":\"toolu_5d1ba8ca72bd49889ca838f2\",\"content\":\"{\\\"condition\\\":\\\"sunny\\\",\\\"temperature\\\":\\\"18C\\\"}\"}]}],\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"],\"additionalProperties\":false}}],\"stream\":true,\"max_tokens\":4096,\"output_config\":{\"effort\":\"medium\"}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.8-max\",\"id\":\"msg_07dd2003-5458-9d30-89d2-841489626cc7\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":107,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"thinking\",\"signature\":\"\",\"thinking\":\"\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"Wait\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\", I\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" should have calculated\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" it\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" first, but the\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" call was made anyway\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\". Calculation: \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"21\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"9 × 1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"73 = \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"37,8\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"87 ≤ \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"38,0\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"00, so\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" it can be covered\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\". I\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"'ll report the weather\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" briefly.\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"signature_delta\",\"signature\":\"\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"text\",\"text\":\"\"},\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"Yes, it's\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\" affordable\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\": 21\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"9 trips × $\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"173 =\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\" $37,\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"887,\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\" which fits within the\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\" $38,\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"000 budget\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\" (leaving $\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"1\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"13 to spare\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\").\\n\\nIt's\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\" currently sunny\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\" in Paris at \"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"18°C.\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":1}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"end_turn\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":120,\"cache_creation_input_tokens\":0,\"input_tokens\":476,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + }, + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"We have a budget of 38000 dollars for 219 trips costing 173 dollars each. Calculate whether that is affordable. If it is, use get_weather to look up the current weather in Paris. After receiving the result, report the weather in one short sentence.\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"thinking\",\"thinking\":\"I need to investigate this further. Let me check the details.\\n\\n219 × 173 = 37,887. Budget is 38,000. Since 37,887 ≤ 38,000, it can be covered. Call get_weather for Paris.\",\"signature\":\"\"},{\"type\":\"tool_use\",\"id\":\"toolu_5d1ba8ca72bd49889ca838f2\",\"name\":\"get_weather\",\"input\":{\"city\":\"Paris\"}}]},{\"role\":\"user\",\"content\":[{\"type\":\"tool_result\",\"tool_use_id\":\"toolu_5d1ba8ca72bd49889ca838f2\",\"content\":\"{\\\"condition\\\":\\\"sunny\\\",\\\"temperature\\\":\\\"18C\\\"}\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"thinking\",\"thinking\":\"Wait, I should have calculated it first, but the call was made anyway. Calculation: 219 × 173 = 37,887 ≤ 38,000, so it can be covered. I'll report the weather briefly.\",\"signature\":\"\"},{\"type\":\"text\",\"text\":\"Yes, it's affordable: 219 trips × $173 = $37,887, which fits within the $38,000 budget (leaving $113 to spare).\\n\\nIt's currently sunny in Paris at 18°C.\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"What temperature did the tool report? Reply with only the temperature.\"}]}],\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"],\"additionalProperties\":false}}],\"stream\":true,\"max_tokens\":4096,\"output_config\":{\"effort\":\"medium\"}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.8-max\",\"id\":\"msg_c3875213-1faa-93af-9c86-7cb715f98b68\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":180,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"thinking\",\"signature\":\"\",\"thinking\":\"\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"The\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" user\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" wants\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" to\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" know the temperature reported\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" by the tool.\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" Let me think about\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" it\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\". The tool said\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" \\\"18C\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"\\\". I just need\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" to answer\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" with the temperature only\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\".\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"signature_delta\",\"signature\":\"\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"text\",\"text\":\"\"},\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"18C\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":1}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"end_turn\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":42,\"cache_creation_input_tokens\":0,\"input_tokens\":621,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-default-effort.json b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-default-effort.json new file mode 100644 index 00000000000..dd850429943 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-default-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-messages", + "provider:alibaba", + "protocol:alibaba-messages", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-messages/qwen-3-8-max-streams-default-effort", + "recordedAt": "2026-09-08T03:08:06.284Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"stream\":true,\"max_tokens\":4096}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.8-max\",\"id\":\"msg_192fee9c-dc58-9dc5-9b32-a2bc427c431d\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":20,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"thinking\",\"signature\":\"\",\"thinking\":\"\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"We\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" need answer user's\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" simple arithmetic\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\": 17\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3 * 2\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"19\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\". Need final only\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" integer. Compute:\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"*200\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"=346\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"00;\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"*\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"19=3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"287 (\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"173*\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"20=3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"460-\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"173=\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3287\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"); sum 3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"788\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"7. Ensure final\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" only integer.\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"signature_delta\",\"signature\":\"\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"text\",\"text\":\"\"},\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"3\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"7887\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":1}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"end_turn\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":95,\"cache_creation_input_tokens\":0,\"input_tokens\":81,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-high-effort.json b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-high-effort.json new file mode 100644 index 00000000000..70a1ad49323 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-high-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-messages", + "provider:alibaba", + "protocol:alibaba-messages", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-messages/qwen-3-8-max-streams-high-effort", + "recordedAt": "2026-09-08T03:12:33.729Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"stream\":true,\"max_tokens\":4096,\"output_config\":{\"effort\":\"high\"}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.8-max\",\"id\":\"msg_76b8cb12-452d-996f-817b-c5886f318ecb\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":20,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"thinking\",\"signature\":\"\",\"thinking\":\"\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"We\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" need answer user\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" asks\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" simple\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" multiplication, final integer\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" only.\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" Need compute 1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"73*2\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"19. \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"173*\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"200=\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3460\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"0; *1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"9=\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3287\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"?\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"*20=\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"34\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"60 minus1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"73=3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"287.\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" Sum 37\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"88\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"7. Final only\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" integer.\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"signature_delta\",\"signature\":\"\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"text\",\"text\":\"\"},\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"37\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"887\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":1}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"end_turn\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":89,\"cache_creation_input_tokens\":0,\"input_tokens\":81,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-low-effort.json b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-low-effort.json new file mode 100644 index 00000000000..378061ff7ea --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-low-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-messages", + "provider:alibaba", + "protocol:alibaba-messages", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-messages/qwen-3-8-max-streams-low-effort", + "recordedAt": "2026-09-08T03:09:58.770Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"stream\":true,\"max_tokens\":4096,\"output_config\":{\"effort\":\"low\"}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.8-max\",\"id\":\"msg_67452056-d120-9ed5-96c6-869ece329616\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":20,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"thinking\",\"signature\":\"\",\"thinking\":\"\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"The\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" user wants me to\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" calculate 17\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3 × 2\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"19.\\n\\n\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"Let me compute this\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\":\\n17\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3 × 2\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"19\\n=\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" × (20\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"0 + 1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"9)\\n=\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" × 20\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"0 + 1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"73 × \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"19\\n=\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 34,\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"600 +\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 3,2\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"87\\n=\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 37,\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"887\\n\\n\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"Let me verify:\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" ×\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 19 =\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" × 20\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" - 17\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3 = 3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\",460\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" - 17\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3 = 3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\",287\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\". Yes.\\n\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"34,6\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"00 + \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3,28\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"7 = 3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"7,88\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"7.\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"signature_delta\",\"signature\":\"\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"text\",\"text\":\"\"},\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"37\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"887\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":1}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"end_turn\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":172,\"cache_creation_input_tokens\":0,\"input_tokens\":69,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-max-effort.json b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-max-effort.json new file mode 100644 index 00000000000..64c373397d8 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-max-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-messages", + "provider:alibaba", + "protocol:alibaba-messages", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-messages/qwen-3-8-max-streams-max-effort", + "recordedAt": "2026-09-08T03:12:36.479Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"stream\":true,\"max_tokens\":4096,\"output_config\":{\"effort\":\"max\"}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.8-max\",\"id\":\"msg_7952446b-0176-9526-ad7d-b1f0184bc106\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":20,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"thinking\",\"signature\":\"\",\"thinking\":\"\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"We\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" need answer user\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"'s simple multiplication with\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" only final integer.\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" Need compute 1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"73*2\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"19. \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"173*\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"200=\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3460\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"0; 1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"73*1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"9=32\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"87 (\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"173*\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"20=3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"460-\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"173=\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3287\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"); sum=3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"7887\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\". Final only integer\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\".\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"signature_delta\",\"signature\":\"\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"text\",\"text\":\"\"},\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"37\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"887\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":1}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"end_turn\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":92,\"cache_creation_input_tokens\":0,\"input_tokens\":81,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-medium-effort.json b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-medium-effort.json new file mode 100644 index 00000000000..f93002811fb --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-medium-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-messages", + "provider:alibaba", + "protocol:alibaba-messages", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-messages/qwen-3-8-max-streams-medium-effort", + "recordedAt": "2026-09-08T03:10:01.981Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"stream\":true,\"max_tokens\":4096,\"output_config\":{\"effort\":\"medium\"}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.8-max\",\"id\":\"msg_1798c2a7-1f8d-9f9a-8d57-8fb1121762e4\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":20,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"thinking\",\"signature\":\"\",\"thinking\":\"\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"The\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" user wants me to\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" calculate 17\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3 × 2\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"19 and reply\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" with only the final\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" integer.\\n\\n1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"73 × \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"219:\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"\\n173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" × 20\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"0 = 3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"4,60\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"0\\n17\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"3 × 1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"9 = 1\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"73 × \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"20 - \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"173 =\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 3,4\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"60 - \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"173 =\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 3,2\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"87\\n3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"4,60\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"0 + 3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\",287\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" = 37\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\",887\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"\\n\\nSo the answer\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" is 3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"7887\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\".\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"signature_delta\",\"signature\":\"\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"text\",\"text\":\"\"},\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"3788\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"7\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":1}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"end_turn\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":133,\"cache_creation_input_tokens\":0,\"input_tokens\":43,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-xhigh-effort.json b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-xhigh-effort.json new file mode 100644 index 00000000000..340e1ba85ae --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-messages/qwen-3-8-max-streams-xhigh-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-messages", + "provider:alibaba", + "protocol:alibaba-messages", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-messages/qwen-3-8-max-streams-xhigh-effort", + "recordedAt": "2026-09-08T03:10:04.633Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"stream\":true,\"max_tokens\":4096,\"output_config\":{\"effort\":\"xhigh\"}}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream" + }, + "body": "event:ping\ndata:{\"type\":\"ping\"}\n\nevent:message_start\ndata:{\"message\":{\"model\":\"qwen3.8-max\",\"id\":\"msg_a57b8563-71fb-9248-a31e-c49d6ba38717\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"usage\":{\"input_tokens\":20,\"output_tokens\":0}},\"type\":\"message_start\"}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"thinking\",\"signature\":\"\",\"thinking\":\"\"},\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"We\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" need answer simple multiplication\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\". We\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" already call\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\". Need compute \"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"173*\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"219.\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" 173\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"*200\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"=346\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"00; *\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"19=3\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"287;\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" sum 37\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"88\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\"7. Final only\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" integer. Ensure\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"thinking_delta\",\"thinking\":\" no extra.\\n\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"signature_delta\",\"signature\":\"\"},\"type\":\"content_block_delta\",\"index\":0}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":0}\n\nevent:content_block_start\ndata:{\"type\":\"content_block_start\",\"content_block\":{\"type\":\"text\",\"text\":\"\"},\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"378\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_delta\ndata:{\"delta\":{\"type\":\"text_delta\",\"text\":\"87\"},\"type\":\"content_block_delta\",\"index\":1}\n\nevent:content_block_stop\ndata:{\"type\":\"content_block_stop\",\"index\":1}\n\nevent:message_delta\ndata:{\"delta\":{\"stop_reason\":\"end_turn\"},\"type\":\"message_delta\",\"usage\":{\"output_tokens\":69,\"cache_creation_input_tokens\":0,\"input_tokens\":81,\"cache_read_input_tokens\":0,\"prompt_tokens_details\":{\"cached_tokens\":0}}}\n\nevent:message_stop\ndata:{\"type\":\"message_stop\"}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-7-plus-streams-thinking-disabled.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-7-plus-streams-thinking-disabled.json new file mode 100644 index 00000000000..7cbd9b1e60a --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-7-plus-streams-thinking-disabled.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "thinking", + "usage" + ], + "name": "alibaba-responses/qwen-3-7-plus-streams-thinking-disabled", + "recordedAt": "2026-09-08T03:11:07.495Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.7-plus\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"max_output_tokens\":4096,\"enable_thinking\":false,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"created_at\":1788837067,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837067,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.7-plus\",\"service_tier\":\"default\",\"id\":\"resp_493607bf-baef-9ced-9e36-2e2a583b6177\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"created_at\":1788837067,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837067,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.7-plus\",\"service_tier\":\"default\",\"id\":\"resp_493607bf-baef-9ced-9e36-2e2a583b6177\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"id\":\"msg_509c6dec-e527-41b5-a9c9-7f02fecb7a3f\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":3,\"output_index\":0,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_509c6dec-e527-41b5-a9c9-7f02fecb7a3f\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:5\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":4,\"content_index\":0,\"item_id\":\"msg_509c6dec-e527-41b5-a9c9-7f02fecb7a3f\",\"delta\":\"3\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:6\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":5,\"content_index\":0,\"item_id\":\"msg_509c6dec-e527-41b5-a9c9-7f02fecb7a3f\",\"delta\":\"7887\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:7\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":6,\"content_index\":0,\"item_id\":\"msg_509c6dec-e527-41b5-a9c9-7f02fecb7a3f\",\"delta\":\"\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:8\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":7,\"content_index\":0,\"item_id\":\"msg_509c6dec-e527-41b5-a9c9-7f02fecb7a3f\",\"text\":\"37887\",\"output_index\":0,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:9\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":8,\"output_index\":0,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_509c6dec-e527-41b5-a9c9-7f02fecb7a3f\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}}\n\nid:10\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":9,\"item\":{\"id\":\"msg_509c6dec-e527-41b5-a9c9-7f02fecb7a3f\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:11\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":10,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"usage\":{\"total_tokens\":73,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":5,\"input_tokens\":68,\"output_tokens_details\":{\"reasoning_tokens\":0},\"x_details\":[{\"total_tokens\":73,\"x_billing_type\":\"response_api\",\"output_tokens\":5,\"input_tokens\":68,\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837067,\"store\":true,\"tools\":[],\"output\":[{\"id\":\"msg_509c6dec-e527-41b5-a9c9-7f02fecb7a3f\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837067,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.7-plus\",\"service_tier\":\"default\",\"id\":\"resp_493607bf-baef-9ced-9e36-2e2a583b6177\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-7-plus-streams-thinking-enabled.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-7-plus-streams-thinking-enabled.json new file mode 100644 index 00000000000..1e78cd1e442 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-7-plus-streams-thinking-enabled.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "thinking", + "usage" + ], + "name": "alibaba-responses/qwen-3-7-plus-streams-thinking-enabled", + "recordedAt": "2026-09-08T03:11:25.610Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.7-plus\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"max_output_tokens\":4096,\"enable_thinking\":true,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"created_at\":1788837068,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837068,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.7-plus\",\"service_tier\":\"default\",\"id\":\"resp_80f784e8-564e-943a-906c-8bb55ff59338\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"created_at\":1788837068,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837068,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.7-plus\",\"service_tier\":\"default\",\"id\":\"resp_80f784e8-564e-943a-906c-8bb55ff59338\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"Thinking\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:5\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\":\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:6\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n\\n1.\",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:7\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" **\",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:8\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"Identify the core\",\"sequence_number\":7,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:9\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" request:** The user\",\"sequence_number\":8,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:10\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" wants the\",\"sequence_number\":9,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:11\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" product of 1\",\"sequence_number\":10,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:12\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73 and \",\"sequence_number\":11,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:13\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"219.\",\"sequence_number\":12,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:14\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n2. \",\"sequence_number\":13,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:15\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" **Identify the\",\"sequence_number\":14,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:16\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" constraint:** Reply with\",\"sequence_number\":15,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:17\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" *\",\"sequence_number\":16,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:18\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"only* the final\",\"sequence_number\":17,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:19\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" integer.\\n3\",\"sequence_number\":18,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:20\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\". **Perform\",\"sequence_number\":19,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:21\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" the calculation:**\\n\",\"sequence_number\":20,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:22\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * \",\"sequence_number\":21,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:23\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173 *\",\"sequence_number\":22,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:24\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 219\",\"sequence_number\":23,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:25\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n * \",\"sequence_number\":24,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:26\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":25,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:27\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 20\",\"sequence_number\":26,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:28\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"0 = 3\",\"sequence_number\":27,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:29\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"4600\",\"sequence_number\":28,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:30\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n * \",\"sequence_number\":29,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:31\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":30,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:32\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 10\",\"sequence_number\":31,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:33\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" = 17\",\"sequence_number\":32,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:34\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"30\\n \",\"sequence_number\":33,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:35\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 1\",\"sequence_number\":34,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:36\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73 * \",\"sequence_number\":35,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:37\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"9 = 1\",\"sequence_number\":36,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:38\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"557\\n\",\"sequence_number\":37,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:39\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * \",\"sequence_number\":38,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:40\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 346\",\"sequence_number\":39,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:41\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"00 + \",\"sequence_number\":40,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:42\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"1730\",\"sequence_number\":41,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:43\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" + 15\",\"sequence_number\":42,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:44\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"57\\n \",\"sequence_number\":43,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:45\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * \",\"sequence_number\":44,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:46\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3460\",\"sequence_number\":45,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:47\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"0 + 1\",\"sequence_number\":46,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:48\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"730 =\",\"sequence_number\":47,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:49\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 363\",\"sequence_number\":48,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:50\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"30\\n \",\"sequence_number\":49,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:51\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 3\",\"sequence_number\":50,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:52\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"6330\",\"sequence_number\":51,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:53\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" + 15\",\"sequence_number\":52,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:54\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"57 = \",\"sequence_number\":53,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:55\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3788\",\"sequence_number\":54,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:56\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7\\n *\",\"sequence_number\":55,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:57\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Let's\",\"sequence_number\":56,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:58\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" double check with another\",\"sequence_number\":57,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:59\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" method:\\n\",\"sequence_number\":58,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:60\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * \",\"sequence_number\":59,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:61\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173 *\",\"sequence_number\":60,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:62\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 219\",\"sequence_number\":61,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:63\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" = (17\",\"sequence_number\":62,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:64\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"0\",\"sequence_number\":63,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:65\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" + 3)\",\"sequence_number\":64,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:66\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * \",\"sequence_number\":65,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:67\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"219 =\",\"sequence_number\":66,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:68\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 170\",\"sequence_number\":67,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:69\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 21\",\"sequence_number\":68,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:70\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"9 + 3\",\"sequence_number\":69,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:71\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 21\",\"sequence_number\":70,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:72\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"9\\n *\",\"sequence_number\":71,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:73\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 17\",\"sequence_number\":72,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:74\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 21\",\"sequence_number\":73,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:75\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"9 = 1\",\"sequence_number\":74,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:76\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7 * (2\",\"sequence_number\":75,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:77\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"00 +\",\"sequence_number\":76,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:78\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 19)\",\"sequence_number\":77,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:79\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" = 34\",\"sequence_number\":78,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:80\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"00 + \",\"sequence_number\":79,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:81\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"323 =\",\"sequence_number\":80,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:82\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 372\",\"sequence_number\":81,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:83\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3 -> 3\",\"sequence_number\":82,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:84\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"72\",\"sequence_number\":83,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:85\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"30\\n \",\"sequence_number\":84,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:86\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 3\",\"sequence_number\":85,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:87\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 21\",\"sequence_number\":86,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:88\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"9 = 6\",\"sequence_number\":87,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:89\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"57\\n \",\"sequence_number\":88,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:90\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 3\",\"sequence_number\":89,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:91\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7230\",\"sequence_number\":90,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:92\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" + 65\",\"sequence_number\":91,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:93\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7 = 3\",\"sequence_number\":92,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:94\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7887\",\"sequence_number\":93,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:95\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\".\\n *\",\"sequence_number\":94,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:96\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" \",\"sequence_number\":95,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:97\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Matches.\\n4\",\"sequence_number\":96,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:98\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\". \",\"sequence_number\":97,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:99\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" **Format the output\",\"sequence_number\":98,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:100\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\":** The user requested\",\"sequence_number\":99,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:101\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" *only* the\",\"sequence_number\":100,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:102\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" final integer.\\n\",\"sequence_number\":101,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:103\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * Output\",\"sequence_number\":102,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:104\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\": 37\",\"sequence_number\":103,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:105\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"887.\",\"sequence_number\":104,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:106\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n5. \",\"sequence_number\":105,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:107\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" **Final verification:**\",\"sequence_number\":106,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:108\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":107,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:109\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 21\",\"sequence_number\":108,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:110\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"9 = 3\",\"sequence_number\":109,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:111\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7887\",\"sequence_number\":110,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:112\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\". Constraint check:\",\"sequence_number\":111,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:113\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" only\",\"sequence_number\":112,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:114\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" the integer. No\",\"sequence_number\":113,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:115\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" punctuation, no extra\",\"sequence_number\":114,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:116\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" text\",\"sequence_number\":115,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:117\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\". Just \\\"3\",\"sequence_number\":116,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:118\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7887\",\"sequence_number\":117,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:119\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\\". Wait, usually\",\"sequence_number\":118,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:120\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" a period is fine\",\"sequence_number\":119,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:121\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\", but strictly \\\"\",\"sequence_number\":120,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:122\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"only the final\",\"sequence_number\":121,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:123\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" integer\\\" means just\",\"sequence_number\":122,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:124\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" the digits. I\",\"sequence_number\":123,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:125\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" will output just the\",\"sequence_number\":124,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:126\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" digits.\\n \",\"sequence_number\":125,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:127\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * \",\"sequence_number\":126,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:128\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3788\",\"sequence_number\":127,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:129\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7\\n *\",\"sequence_number\":128,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:130\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Let\",\"sequence_number\":129,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:131\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" me re-read \\\"\",\"sequence_number\":130,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:132\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"Reply with only the\",\"sequence_number\":131,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:133\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" final integer.\\\" ->\",\"sequence_number\":132,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:134\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" `378\",\"sequence_number\":133,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:135\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"8\",\"sequence_number\":134,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:136\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7`\\n \",\"sequence_number\":135,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:137\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * Done.\",\"sequence_number\":136,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:138\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n * \",\"sequence_number\":137,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:139\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Wait,\",\"sequence_number\":138,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:140\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" is it 3\",\"sequence_number\":139,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:141\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7887\",\"sequence_number\":140,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:142\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"?\\n \",\"sequence_number\":141,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:143\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173 *\",\"sequence_number\":142,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:144\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 200\",\"sequence_number\":143,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:145\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" = 3\",\"sequence_number\":144,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:146\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"4600\",\"sequence_number\":145,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:147\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n 1\",\"sequence_number\":146,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:148\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73 * \",\"sequence_number\":147,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:149\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"10 = \",\"sequence_number\":148,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:150\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"1730\",\"sequence_number\":149,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:151\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n 1\",\"sequence_number\":150,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:152\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73 * \",\"sequence_number\":151,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:153\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"9 = 1\",\"sequence_number\":152,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:154\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"557\\n\",\"sequence_number\":153,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:155\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 34\",\"sequence_number\":154,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:156\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"600 +\",\"sequence_number\":155,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:157\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":156,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:158\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"0 = 3\",\"sequence_number\":157,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:159\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"6330\",\"sequence_number\":158,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:160\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n 3\",\"sequence_number\":159,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:161\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"6330\",\"sequence_number\":160,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:162\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" + 15\",\"sequence_number\":161,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:163\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"57 = \",\"sequence_number\":162,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:164\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3788\",\"sequence_number\":163,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:165\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7.\\n \",\"sequence_number\":164,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:166\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Correct.\\n \",\"sequence_number\":165,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:167\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" *\",\"sequence_number\":166,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:168\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Output: \",\"sequence_number\":167,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:169\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"37\",\"sequence_number\":168,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:170\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"887.\",\"sequence_number\":169,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:171\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" No period. Just\",\"sequence_number\":170,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:172\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" the number\",\"sequence_number\":171,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:173\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\".\\n *\",\"sequence_number\":172,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:174\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Actually, let\",\"sequence_number\":173,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:175\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" me\",\"sequence_number\":174,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:176\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" check 17\",\"sequence_number\":175,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:177\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3 *\",\"sequence_number\":176,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:178\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 219\",\"sequence_number\":177,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:179\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" again.\\n \",\"sequence_number\":178,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:180\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":179,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:181\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 9 =\",\"sequence_number\":180,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:182\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 15\",\"sequence_number\":181,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:183\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"57\\n \",\"sequence_number\":182,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:184\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":183,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:185\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 10\",\"sequence_number\":184,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:186\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" = 17\",\"sequence_number\":185,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:187\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"30\\n \",\"sequence_number\":186,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:188\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":187,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:189\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 2 =\",\"sequence_number\":188,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:190\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 346\",\"sequence_number\":189,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:191\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n 1\",\"sequence_number\":190,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:192\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"557 +\",\"sequence_number\":191,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:193\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":192,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:194\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"00 + \",\"sequence_number\":193,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:195\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"34\",\"sequence_number\":194,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:196\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"600 =\",\"sequence_number\":195,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:197\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 155\",\"sequence_number\":196,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:198\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7 +\",\"sequence_number\":197,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:199\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 519\",\"sequence_number\":198,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:200\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"00 = \",\"sequence_number\":199,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:201\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"5345\",\"sequence_number\":200,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:202\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7? Wait\",\"sequence_number\":201,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:203\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\".\\n Let\",\"sequence_number\":202,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:204\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"'s re-multiply\",\"sequence_number\":203,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:205\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\":\\n \",\"sequence_number\":204,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:206\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173\",\"sequence_number\":205,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:207\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n x \",\"sequence_number\":206,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:208\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"219\",\"sequence_number\":207,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:209\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n -----\\n\",\"sequence_number\":208,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:210\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 15\",\"sequence_number\":209,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:211\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"57 (\",\"sequence_number\":210,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:212\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"1\",\"sequence_number\":211,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:213\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73 * \",\"sequence_number\":212,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:214\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"9)\\n \",\"sequence_number\":213,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:215\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":214,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:216\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"0 (1\",\"sequence_number\":215,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:217\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73 * \",\"sequence_number\":216,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:218\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"10)\\n\",\"sequence_number\":217,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:219\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 34\",\"sequence_number\":218,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:220\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"600 \",\"sequence_number\":219,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:221\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" (173\",\"sequence_number\":220,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:222\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 20\",\"sequence_number\":221,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:223\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"0)\\n \",\"sequence_number\":222,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:224\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" -----\\n \",\"sequence_number\":223,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:225\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"1557\",\"sequence_number\":224,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:226\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" + 17\",\"sequence_number\":225,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:227\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"30 = \",\"sequence_number\":226,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:228\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3287\",\"sequence_number\":227,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:229\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n 3\",\"sequence_number\":228,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:230\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"287 +\",\"sequence_number\":229,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:231\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 346\",\"sequence_number\":230,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:232\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"00 = \",\"sequence_number\":231,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:233\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3788\",\"sequence_number\":232,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:234\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7.\\n \",\"sequence_number\":233,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:235\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Yes, 3\",\"sequence_number\":234,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:236\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7887\",\"sequence_number\":235,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:237\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" is correct. My\",\"sequence_number\":236,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:238\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" mental check `1\",\"sequence_number\":237,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:239\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7\",\"sequence_number\":238,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:240\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3 * 1\",\"sequence_number\":239,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:241\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"0 = 1\",\"sequence_number\":240,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:242\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"730`\",\"sequence_number\":241,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:243\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" was correct, but\",\"sequence_number\":242,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:244\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" when I added `\",\"sequence_number\":243,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:245\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"1557\",\"sequence_number\":244,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:246\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" + 17\",\"sequence_number\":245,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:247\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"300`\",\"sequence_number\":246,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:248\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" I messed up the\",\"sequence_number\":247,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:249\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" zeros\",\"sequence_number\":248,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:250\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" in the verification step\",\"sequence_number\":249,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:251\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\".\\n \",\"sequence_number\":250,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:252\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":251,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:253\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 9\",\"sequence_number\":252,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:254\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" = 15\",\"sequence_number\":253,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:255\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"57\\n \",\"sequence_number\":254,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:256\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":255,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:257\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 10\",\"sequence_number\":256,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:258\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" = 17\",\"sequence_number\":257,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:259\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"30\\n \",\"sequence_number\":258,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:260\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":259,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:261\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 20\",\"sequence_number\":260,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:262\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"0 = 3\",\"sequence_number\":261,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:263\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"4600\",\"sequence_number\":262,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:264\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n Total =\",\"sequence_number\":263,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:265\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 37\",\"sequence_number\":264,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:266\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"887.\",\"sequence_number\":265,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:267\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Correct.\\n \",\"sequence_number\":266,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:268\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Output string: \\\"\",\"sequence_number\":267,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:269\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3788\",\"sequence_number\":268,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:270\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7\\\"\\n \",\"sequence_number\":269,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:271\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" No other text.\",\"sequence_number\":270,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:272\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n Ready.\",\"sequence_number\":271,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:273\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":272,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:274\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":273,\"text\":\"Thinking:\\n\\n1. **Identify the core request:** The user wants the product of 173 and 219.\\n2. **Identify the constraint:** Reply with *only* the final integer.\\n3. **Perform the calculation:**\\n * 173 * 219\\n * 173 * 200 = 34600\\n * 173 * 10 = 1730\\n * 173 * 9 = 1557\\n * 34600 + 1730 + 1557\\n * 34600 + 1730 = 36330\\n * 36330 + 1557 = 37887\\n * Let's double check with another method:\\n * 173 * 219 = (170 + 3) * 219 = 170 * 219 + 3 * 219\\n * 17 * 219 = 17 * (200 + 19) = 3400 + 323 = 3723 -> 37230\\n * 3 * 219 = 657\\n * 37230 + 657 = 37887.\\n * Matches.\\n4. **Format the output:** The user requested *only* the final integer.\\n * Output: 37887.\\n5. **Final verification:** 173 * 219 = 37887. Constraint check: only the integer. No punctuation, no extra text. Just \\\"37887\\\". Wait, usually a period is fine, but strictly \\\"only the final integer\\\" means just the digits. I will output just the digits.\\n * 37887\\n * Let me re-read \\\"Reply with only the final integer.\\\" -> `37887`\\n * Done.\\n * Wait, is it 37887?\\n 173 * 200 = 34600\\n 173 * 10 = 1730\\n 173 * 9 = 1557\\n 34600 + 1730 = 36330\\n 36330 + 1557 = 37887.\\n Correct.\\n * Output: 37887. No period. Just the number.\\n * Actually, let me check 173 * 219 again.\\n 173 * 9 = 1557\\n 173 * 10 = 1730\\n 173 * 2 = 346\\n 1557 + 17300 + 34600 = 1557 + 51900 = 53457? Wait.\\n Let's re-multiply:\\n 173\\n x 219\\n -----\\n 1557 (173 * 9)\\n 1730 (173 * 10)\\n 34600 (173 * 200)\\n -----\\n 1557 + 1730 = 3287\\n 3287 + 34600 = 37887.\\n Yes, 37887 is correct. My mental check `173 * 10 = 1730` was correct, but when I added `1557 + 17300` I messed up the zeros in the verification step.\\n 173 * 9 = 1557\\n 173 * 10 = 1730\\n 173 * 200 = 34600\\n Total = 37887. Correct.\\n Output string: \\\"37887\\\"\\n No other text.\\n Ready.\",\"output_index\":0,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"}\n\nid:275\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":274,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Thinking:\\n\\n1. **Identify the core request:** The user wants the product of 173 and 219.\\n2. **Identify the constraint:** Reply with *only* the final integer.\\n3. **Perform the calculation:**\\n * 173 * 219\\n * 173 * 200 = 34600\\n * 173 * 10 = 1730\\n * 173 * 9 = 1557\\n * 34600 + 1730 + 1557\\n * 34600 + 1730 = 36330\\n * 36330 + 1557 = 37887\\n * Let's double check with another method:\\n * 173 * 219 = (170 + 3) * 219 = 170 * 219 + 3 * 219\\n * 17 * 219 = 17 * (200 + 19) = 3400 + 323 = 3723 -> 37230\\n * 3 * 219 = 657\\n * 37230 + 657 = 37887.\\n * Matches.\\n4. **Format the output:** The user requested *only* the final integer.\\n * Output: 37887.\\n5. **Final verification:** 173 * 219 = 37887. Constraint check: only the integer. No punctuation, no extra text. Just \\\"37887\\\". Wait, usually a period is fine, but strictly \\\"only the final integer\\\" means just the digits. I will output just the digits.\\n * 37887\\n * Let me re-read \\\"Reply with only the final integer.\\\" -> `37887`\\n * Done.\\n * Wait, is it 37887?\\n 173 * 200 = 34600\\n 173 * 10 = 1730\\n 173 * 9 = 1557\\n 34600 + 1730 = 36330\\n 36330 + 1557 = 37887.\\n Correct.\\n * Output: 37887. No period. Just the number.\\n * Actually, let me check 173 * 219 again.\\n 173 * 9 = 1557\\n 173 * 10 = 1730\\n 173 * 2 = 346\\n 1557 + 17300 + 34600 = 1557 + 51900 = 53457? Wait.\\n Let's re-multiply:\\n 173\\n x 219\\n -----\\n 1557 (173 * 9)\\n 1730 (173 * 10)\\n 34600 (173 * 200)\\n -----\\n 1557 + 1730 = 3287\\n 3287 + 34600 = 37887.\\n Yes, 37887 is correct. My mental check `173 * 10 = 1730` was correct, but when I added `1557 + 17300` I messed up the zeros in the verification step.\\n 173 * 9 = 1557\\n 173 * 10 = 1730\\n 173 * 200 = 34600\\n Total = 37887. Correct.\\n Output string: \\\"37887\\\"\\n No other text.\\n Ready.\"}],\"type\":\"reasoning\",\"id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:276\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":275,\"item\":{\"id\":\"msg_036d4bea-6762-4047-9011-1799b473080d\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":1,\"type\":\"response.output_item.added\"}\n\nid:277\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":276,\"output_index\":1,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_036d4bea-6762-4047-9011-1799b473080d\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:278\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":277,\"content_index\":0,\"item_id\":\"msg_036d4bea-6762-4047-9011-1799b473080d\",\"delta\":\"3\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:279\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":278,\"content_index\":0,\"item_id\":\"msg_036d4bea-6762-4047-9011-1799b473080d\",\"delta\":\"7887\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:280\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":279,\"content_index\":0,\"item_id\":\"msg_036d4bea-6762-4047-9011-1799b473080d\",\"delta\":\"\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:281\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":280,\"content_index\":0,\"item_id\":\"msg_036d4bea-6762-4047-9011-1799b473080d\",\"text\":\"37887\",\"output_index\":1,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:282\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":281,\"output_index\":1,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_036d4bea-6762-4047-9011-1799b473080d\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}}\n\nid:283\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":282,\"item\":{\"id\":\"msg_036d4bea-6762-4047-9011-1799b473080d\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"},\"output_index\":1,\"type\":\"response.output_item.done\"}\n\nid:284\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":283,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"usage\":{\"total_tokens\":1071,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":1005,\"input_tokens\":66,\"output_tokens_details\":{\"reasoning_tokens\":997},\"x_details\":[{\"total_tokens\":1071,\"x_billing_type\":\"response_api\",\"output_tokens\":1005,\"input_tokens\":66,\"output_tokens_details\":{\"reasoning_tokens\":997},\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837068,\"store\":true,\"tools\":[],\"output\":[{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Thinking:\\n\\n1. **Identify the core request:** The user wants the product of 173 and 219.\\n2. **Identify the constraint:** Reply with *only* the final integer.\\n3. **Perform the calculation:**\\n * 173 * 219\\n * 173 * 200 = 34600\\n * 173 * 10 = 1730\\n * 173 * 9 = 1557\\n * 34600 + 1730 + 1557\\n * 34600 + 1730 = 36330\\n * 36330 + 1557 = 37887\\n * Let's double check with another method:\\n * 173 * 219 = (170 + 3) * 219 = 170 * 219 + 3 * 219\\n * 17 * 219 = 17 * (200 + 19) = 3400 + 323 = 3723 -> 37230\\n * 3 * 219 = 657\\n * 37230 + 657 = 37887.\\n * Matches.\\n4. **Format the output:** The user requested *only* the final integer.\\n * Output: 37887.\\n5. **Final verification:** 173 * 219 = 37887. Constraint check: only the integer. No punctuation, no extra text. Just \\\"37887\\\". Wait, usually a period is fine, but strictly \\\"only the final integer\\\" means just the digits. I will output just the digits.\\n * 37887\\n * Let me re-read \\\"Reply with only the final integer.\\\" -> `37887`\\n * Done.\\n * Wait, is it 37887?\\n 173 * 200 = 34600\\n 173 * 10 = 1730\\n 173 * 9 = 1557\\n 34600 + 1730 = 36330\\n 36330 + 1557 = 37887.\\n Correct.\\n * Output: 37887. No period. Just the number.\\n * Actually, let me check 173 * 219 again.\\n 173 * 9 = 1557\\n 173 * 10 = 1730\\n 173 * 2 = 346\\n 1557 + 17300 + 34600 = 1557 + 51900 = 53457? Wait.\\n Let's re-multiply:\\n 173\\n x 219\\n -----\\n 1557 (173 * 9)\\n 1730 (173 * 10)\\n 34600 (173 * 200)\\n -----\\n 1557 + 1730 = 3287\\n 3287 + 34600 = 37887.\\n Yes, 37887 is correct. My mental check `173 * 10 = 1730` was correct, but when I added `1557 + 17300` I messed up the zeros in the verification step.\\n 173 * 9 = 1557\\n 173 * 10 = 1730\\n 173 * 200 = 34600\\n Total = 37887. Correct.\\n Output string: \\\"37887\\\"\\n No other text.\\n Ready.\"}],\"type\":\"reasoning\",\"id\":\"msg_b308be91-abca-43dc-a5ad-bfef342e230d\"},{\"id\":\"msg_036d4bea-6762-4047-9011-1799b473080d\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837085,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.7-plus\",\"service_tier\":\"default\",\"id\":\"resp_80f784e8-564e-943a-906c-8bb55ff59338\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-flash-reads-image-bytes.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-flash-reads-image-bytes.json new file mode 100644 index 00000000000..15ba8d12204 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-flash-reads-image-bytes.json @@ -0,0 +1,34 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "image" + ], + "name": "alibaba-responses/qwen-3-8-flash-reads-image-bytes", + "recordedAt": "2026-09-08T03:11:27.508Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-flash\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"Read the three words in this image. Reply with only the words in order.\"},{\"type\":\"input_image\",\"image_url\":\"data:image/png;base64,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\"}]}],\"max_output_tokens\":4096,\"enable_thinking\":false,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"created_at\":1788837087,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837087,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-flash\",\"service_tier\":\"default\",\"id\":\"resp_77e3590a-9707-94dd-8f21-313a01cc074b\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"created_at\":1788837087,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837087,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-flash\",\"service_tier\":\"default\",\"id\":\"resp_77e3590a-9707-94dd-8f21-313a01cc074b\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"id\":\"msg_ef7d637d-29a4-486d-bf2a-f564b8caa6c4\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":3,\"output_index\":0,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_ef7d637d-29a4-486d-bf2a-f564b8caa6c4\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:5\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":4,\"content_index\":0,\"item_id\":\"msg_ef7d637d-29a4-486d-bf2a-f564b8caa6c4\",\"delta\":\"j\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:6\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":5,\"content_index\":0,\"item_id\":\"msg_ef7d637d-29a4-486d-bf2a-f564b8caa6c4\",\"delta\":\"iggling restroom prison\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:7\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":6,\"content_index\":0,\"item_id\":\"msg_ef7d637d-29a4-486d-bf2a-f564b8caa6c4\",\"delta\":\"\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:8\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":7,\"content_index\":0,\"item_id\":\"msg_ef7d637d-29a4-486d-bf2a-f564b8caa6c4\",\"text\":\"jiggling restroom prison\",\"output_index\":0,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:9\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":8,\"output_index\":0,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_ef7d637d-29a4-486d-bf2a-f564b8caa6c4\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"jiggling restroom prison\"}}\n\nid:10\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":9,\"item\":{\"id\":\"msg_ef7d637d-29a4-486d-bf2a-f564b8caa6c4\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"jiggling restroom prison\"}],\"status\":\"completed\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:11\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":10,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"usage\":{\"total_tokens\":152,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":6,\"input_tokens\":146,\"output_tokens_details\":{\"reasoning_tokens\":0},\"x_details\":[{\"input_tokens_details\":{\"image_tokens\":82,\"text_tokens\":64},\"prompt_tokens_details\":{\"cached_tokens\":0},\"total_tokens\":152,\"x_billing_type\":\"response_api\",\"output_tokens\":6,\"input_tokens\":146,\"output_tokens_details\":{},\"image_tokens\":82}]},\"created_at\":1788837087,\"store\":true,\"tools\":[],\"output\":[{\"id\":\"msg_ef7d637d-29a4-486d-bf2a-f564b8caa6c4\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"jiggling restroom prison\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837087,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-flash\",\"service_tier\":\"default\",\"id\":\"resp_77e3590a-9707-94dd-8f21-313a01cc074b\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-continues-a-stored-response.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-continues-a-stored-response.json new file mode 100644 index 00000000000..6f81ab9b9ab --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-continues-a-stored-response.json @@ -0,0 +1,53 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "continuation", + "storage" + ], + "name": "alibaba-responses/qwen-3-8-max-continues-a-stored-response", + "recordedAt": "2026-09-08T03:12:42.429Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"Remember the password word apricot. Reply OK.\"}]}],\"store\":true,\"reasoning\":{\"effort\":\"none\"},\"max_output_tokens\":1024,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"none\"},\"created_at\":1788837161,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837161,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_97f8cd28-c7ab-9d51-9c14-4fc531decdc8\",\"max_output_tokens\":1024,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"none\"},\"created_at\":1788837161,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837161,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_97f8cd28-c7ab-9d51-9c14-4fc531decdc8\",\"max_output_tokens\":1024,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"id\":\"msg_a908ad8e-6220-444b-880c-02aecbaf8fac\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":3,\"output_index\":0,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_a908ad8e-6220-444b-880c-02aecbaf8fac\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:5\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":4,\"content_index\":0,\"item_id\":\"msg_a908ad8e-6220-444b-880c-02aecbaf8fac\",\"delta\":\"OK\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:6\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":5,\"content_index\":0,\"item_id\":\"msg_a908ad8e-6220-444b-880c-02aecbaf8fac\",\"delta\":\".\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:7\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":6,\"content_index\":0,\"item_id\":\"msg_a908ad8e-6220-444b-880c-02aecbaf8fac\",\"delta\":\"\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:8\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":7,\"content_index\":0,\"item_id\":\"msg_a908ad8e-6220-444b-880c-02aecbaf8fac\",\"text\":\"OK.\",\"output_index\":0,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:9\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":8,\"output_index\":0,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_a908ad8e-6220-444b-880c-02aecbaf8fac\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"OK.\"}}\n\nid:10\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":9,\"item\":{\"id\":\"msg_a908ad8e-6220-444b-880c-02aecbaf8fac\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"OK.\"}],\"status\":\"completed\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:11\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":10,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"none\"},\"usage\":{\"total_tokens\":60,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":2,\"input_tokens\":58,\"output_tokens_details\":{\"reasoning_tokens\":0},\"x_details\":[{\"total_tokens\":60,\"x_billing_type\":\"response_api\",\"output_tokens\":2,\"input_tokens\":58,\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837161,\"store\":true,\"tools\":[],\"output\":[{\"id\":\"msg_a908ad8e-6220-444b-880c-02aecbaf8fac\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"OK.\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837161,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_97f8cd28-c7ab-9d51-9c14-4fc531decdc8\",\"max_output_tokens\":1024,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + }, + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"What word did I ask you to remember? Reply with only the word.\"}]}],\"store\":true,\"reasoning\":{\"effort\":\"none\"},\"max_output_tokens\":1024,\"previous_response_id\":\"resp_97f8cd28-c7ab-9d51-9c14-4fc531decdc8\",\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"none\"},\"created_at\":1788837162,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837162,\"previous_response_id\":\"resp_97f8cd28-c7ab-9d51-9c14-4fc531decdc8\",\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_1d81d34c-d3ec-9f98-ab59-5d4641d4217a\",\"max_output_tokens\":1024,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"none\"},\"created_at\":1788837162,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837162,\"previous_response_id\":\"resp_97f8cd28-c7ab-9d51-9c14-4fc531decdc8\",\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_1d81d34c-d3ec-9f98-ab59-5d4641d4217a\",\"max_output_tokens\":1024,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"id\":\"msg_7bc50c33-8fbd-4b10-91fc-4f2533bb2091\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":3,\"output_index\":0,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_7bc50c33-8fbd-4b10-91fc-4f2533bb2091\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:5\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":4,\"content_index\":0,\"item_id\":\"msg_7bc50c33-8fbd-4b10-91fc-4f2533bb2091\",\"delta\":\"ap\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:6\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":5,\"content_index\":0,\"item_id\":\"msg_7bc50c33-8fbd-4b10-91fc-4f2533bb2091\",\"delta\":\"ricot\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:7\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":6,\"content_index\":0,\"item_id\":\"msg_7bc50c33-8fbd-4b10-91fc-4f2533bb2091\",\"delta\":\"\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:8\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":7,\"content_index\":0,\"item_id\":\"msg_7bc50c33-8fbd-4b10-91fc-4f2533bb2091\",\"text\":\"apricot\",\"output_index\":0,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:9\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":8,\"output_index\":0,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_7bc50c33-8fbd-4b10-91fc-4f2533bb2091\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"apricot\"}}\n\nid:10\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":9,\"item\":{\"id\":\"msg_7bc50c33-8fbd-4b10-91fc-4f2533bb2091\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"apricot\"}],\"status\":\"completed\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:11\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":10,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"none\"},\"usage\":{\"total_tokens\":92,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":3,\"input_tokens\":89,\"output_tokens_details\":{\"reasoning_tokens\":0},\"x_details\":[{\"total_tokens\":92,\"x_billing_type\":\"response_api\",\"output_tokens\":3,\"input_tokens\":89,\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837162,\"store\":true,\"tools\":[],\"output\":[{\"id\":\"msg_7bc50c33-8fbd-4b10-91fc-4f2533bb2091\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"apricot\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837162,\"previous_response_id\":\"resp_97f8cd28-c7ab-9d51-9c14-4fc531decdc8\",\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_1d81d34c-d3ec-9f98-ab59-5d4641d4217a\",\"max_output_tokens\":1024,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-obeys-named-tool-choice.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-obeys-named-tool-choice.json new file mode 100644 index 00000000000..4eeaabe0b06 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-obeys-named-tool-choice.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "tool", + "tool-choice" + ], + "name": "alibaba-responses/qwen-3-8-max-obeys-named-tool-choice", + "recordedAt": "2026-09-08T03:11:28.654Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"Find the current weather in Paris.\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"get_weather\",\"description\":\"Get weather in a city\",\"parameters\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]},\"strict\":false}],\"tool_choice\":{\"type\":\"allowed_tools\",\"mode\":\"required\",\"tools\":[{\"type\":\"function\",\"name\":\"get_weather\"}]},\"reasoning\":{\"effort\":\"none\"},\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"none\"},\"created_at\":1788837088,\"store\":true,\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get weather in a city\",\"strict\":false,\"type\":\"function\",\"parameters\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837088,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":{\"mode\":\"required\",\"type\":\"allowed_tools\",\"tools\":[{\"name\":\"get_weather\",\"type\":\"function\"}]},\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_ff825f54-b21b-92dc-90e8-13d593803aff\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"none\"},\"created_at\":1788837088,\"store\":true,\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get weather in a city\",\"strict\":false,\"type\":\"function\",\"parameters\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837088,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":{\"mode\":\"required\",\"type\":\"allowed_tools\",\"tools\":[{\"name\":\"get_weather\",\"type\":\"function\"}]},\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_ff825f54-b21b-92dc-90e8-13d593803aff\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"name\":\"get_weather\",\"arguments\":\"\",\"id\":\"msg_733655cc-a34f-421a-a39a-6817ecf52e27\",\"type\":\"function_call\",\"call_id\":\"call_04b382d76da94ba3b695a111\",\"status\":\"in_progress\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.function_call_arguments.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.function_call_arguments.delta\",\"item_id\":\"msg_733655cc-a34f-421a-a39a-6817ecf52e27\"}\n\nid:5\nevent:response.function_call_arguments.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"{\\\"city\\\": \\\"Paris\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.function_call_arguments.delta\",\"item_id\":\"msg_733655cc-a34f-421a-a39a-6817ecf52e27\"}\n\nid:6\nevent:response.function_call_arguments.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\\"\",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.function_call_arguments.delta\",\"item_id\":\"msg_733655cc-a34f-421a-a39a-6817ecf52e27\"}\n\nid:7\nevent:response.function_call_arguments.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"}\",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.function_call_arguments.delta\",\"item_id\":\"msg_733655cc-a34f-421a-a39a-6817ecf52e27\"}\n\nid:8\nevent:response.function_call_arguments.done\n:HTTP_STATUS/200\ndata:{\"name\":\"get_weather\",\"sequence_number\":7,\"arguments\":\"{\\\"city\\\": \\\"Paris\\\"}\",\"output_index\":0,\"type\":\"response.function_call_arguments.done\",\"item_id\":\"msg_733655cc-a34f-421a-a39a-6817ecf52e27\"}\n\nid:9\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":8,\"item\":{\"name\":\"get_weather\",\"arguments\":\"{\\\"city\\\": \\\"Paris\\\"}\",\"id\":\"msg_733655cc-a34f-421a-a39a-6817ecf52e27\",\"type\":\"function_call\",\"call_id\":\"call_04b382d76da94ba3b695a111\",\"status\":\"completed\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:10\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":9,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"none\"},\"usage\":{\"total_tokens\":339,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":19,\"input_tokens\":320,\"output_tokens_details\":{\"reasoning_tokens\":0},\"x_details\":[{\"total_tokens\":339,\"x_billing_type\":\"response_api\",\"output_tokens\":19,\"input_tokens\":320,\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837088,\"store\":true,\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get weather in a city\",\"strict\":false,\"type\":\"function\",\"parameters\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}],\"output\":[{\"name\":\"get_weather\",\"arguments\":\"{\\\"city\\\": \\\"Paris\\\"}\",\"id\":\"msg_733655cc-a34f-421a-a39a-6817ecf52e27\",\"type\":\"function_call\",\"call_id\":\"call_04b382d76da94ba3b695a111\",\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837088,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":{\"mode\":\"required\",\"type\":\"allowed_tools\",\"tools\":[{\"name\":\"get_weather\",\"type\":\"function\"}]},\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_ff825f54-b21b-92dc-90e8-13d593803aff\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up.json new file mode 100644 index 00000000000..789f9a1ad83 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up.json @@ -0,0 +1,73 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "tool", + "tool-loop", + "reasoning", + "continuation" + ], + "name": "alibaba-responses/qwen-3-8-max-replays-reasoning-through-a-tool-loop-and-follow-up", + "recordedAt": "2026-09-08T03:10:40.248Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"We have a budget of 38000 dollars for 219 trips costing 173 dollars each. Calculate whether that is affordable. If it is, use get_weather to look up the current weather in Paris. After receiving the result, report the weather in one short sentence.\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"parameters\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"],\"additionalProperties\":false},\"strict\":false}],\"store\":false,\"reasoning\":{\"effort\":\"medium\"},\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"medium\"},\"created_at\":1788837035,\"store\":false,\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"strict\":false,\"type\":\"function\",\"parameters\":{\"additionalProperties\":false,\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837035,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_e43952bf-46eb-9e85-b609-fae443026e75\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"medium\"},\"created_at\":1788837035,\"store\":false,\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"strict\":false,\"type\":\"function\",\"parameters\":{\"additionalProperties\":false,\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837035,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_e43952bf-46eb-9e85-b609-fae443026e75\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"Calc\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:5\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"ulation: 2\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:6\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"19 × \",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:7\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173 =\",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:8\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 37,\",\"sequence_number\":7,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:9\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"88\",\"sequence_number\":8,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:10\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7 ≤ 3\",\"sequence_number\":9,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:11\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"8,\",\"sequence_number\":10,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:12\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"000.\",\"sequence_number\":11,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:13\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Since it's purch\",\"sequence_number\":12,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:14\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"asable, I\",\"sequence_number\":13,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:15\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"'ll call get_weather\",\"sequence_number\":14,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:16\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\".\",\"sequence_number\":15,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:17\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":16,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:18\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":17,\"text\":\"Calculation: 219 × 173 = 37,887 ≤ 38,000. Since it's purchasable, I'll call get_weather.\",\"output_index\":0,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"}\n\nid:19\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":18,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Calculation: 219 × 173 = 37,887 ≤ 38,000. Since it's purchasable, I'll call get_weather.\"}],\"type\":\"reasoning\",\"id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:20\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":19,\"item\":{\"id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":1,\"type\":\"response.output_item.added\"}\n\nid:21\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":20,\"output_index\":1,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:22\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":21,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"delta\":\"219 trips\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:23\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":22,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"delta\":\" × $17\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:24\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":23,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"delta\":\"3 = $3\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:25\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":24,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"delta\":\"7,88\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:26\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":25,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"delta\":\"7, which fits\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:27\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":26,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"delta\":\" within the $3\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:28\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":27,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"delta\":\"8,\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:29\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":28,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"delta\":\"000 budget\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:30\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":29,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"delta\":\". Let me check\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:31\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":30,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"delta\":\" the\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:32\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":31,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"delta\":\" weather in Paris.\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:33\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":32,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"delta\":\"\\n\\n\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:34\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":33,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"delta\":\"\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:35\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":34,\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"text\":\"219 trips × $173 = $37,887, which fits within the $38,000 budget. Let me check the weather in Paris.\\n\\n\",\"output_index\":1,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:36\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":35,\"output_index\":1,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"219 trips × $173 = $37,887, which fits within the $38,000 budget. Let me check the weather in Paris.\\n\\n\"}}\n\nid:37\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":36,\"item\":{\"id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"219 trips × $173 = $37,887, which fits within the $38,000 budget. Let me check the weather in Paris.\\n\\n\"}],\"status\":\"completed\"},\"output_index\":1,\"type\":\"response.output_item.done\"}\n\nid:38\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":37,\"item\":{\"name\":\"get_weather\",\"arguments\":\"\",\"id\":\"msg_797eb542-592e-40eb-8d79-235a936c1a9c\",\"type\":\"function_call\",\"call_id\":\"call_25e09811f0994dccbe9fca41\",\"status\":\"in_progress\"},\"output_index\":2,\"type\":\"response.output_item.added\"}\n\nid:39\nevent:response.function_call_arguments.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":38,\"output_index\":2,\"type\":\"response.function_call_arguments.delta\",\"item_id\":\"msg_797eb542-592e-40eb-8d79-235a936c1a9c\"}\n\nid:40\nevent:response.function_call_arguments.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"{\\\"city\\\": \\\"Paris\",\"sequence_number\":39,\"output_index\":2,\"type\":\"response.function_call_arguments.delta\",\"item_id\":\"msg_797eb542-592e-40eb-8d79-235a936c1a9c\"}\n\nid:41\nevent:response.function_call_arguments.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\\"\",\"sequence_number\":40,\"output_index\":2,\"type\":\"response.function_call_arguments.delta\",\"item_id\":\"msg_797eb542-592e-40eb-8d79-235a936c1a9c\"}\n\nid:42\nevent:response.function_call_arguments.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"}\",\"sequence_number\":41,\"output_index\":2,\"type\":\"response.function_call_arguments.delta\",\"item_id\":\"msg_797eb542-592e-40eb-8d79-235a936c1a9c\"}\n\nid:43\nevent:response.function_call_arguments.done\n:HTTP_STATUS/200\ndata:{\"name\":\"get_weather\",\"sequence_number\":42,\"arguments\":\"{\\\"city\\\": \\\"Paris\\\"}\",\"output_index\":2,\"type\":\"response.function_call_arguments.done\",\"item_id\":\"msg_797eb542-592e-40eb-8d79-235a936c1a9c\"}\n\nid:44\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":43,\"item\":{\"name\":\"get_weather\",\"arguments\":\"{\\\"city\\\": \\\"Paris\\\"}\",\"id\":\"msg_797eb542-592e-40eb-8d79-235a936c1a9c\",\"type\":\"function_call\",\"call_id\":\"call_25e09811f0994dccbe9fca41\",\"status\":\"completed\"},\"output_index\":2,\"type\":\"response.output_item.done\"}\n\nid:45\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":44,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"medium\"},\"usage\":{\"total_tokens\":478,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":110,\"input_tokens\":368,\"output_tokens_details\":{\"reasoning_tokens\":42},\"x_details\":[{\"total_tokens\":478,\"x_billing_type\":\"response_api\",\"output_tokens\":110,\"input_tokens\":368,\"output_tokens_details\":{\"reasoning_tokens\":42},\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837035,\"store\":false,\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"strict\":false,\"type\":\"function\",\"parameters\":{\"additionalProperties\":false,\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}],\"output\":[{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Calculation: 219 × 173 = 37,887 ≤ 38,000. Since it's purchasable, I'll call get_weather.\"}],\"type\":\"reasoning\",\"id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\"},{\"id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"219 trips × $173 = $37,887, which fits within the $38,000 budget. Let me check the weather in Paris.\\n\\n\"}],\"status\":\"completed\"},{\"name\":\"get_weather\",\"arguments\":\"{\\\"city\\\": \\\"Paris\\\"}\",\"id\":\"msg_797eb542-592e-40eb-8d79-235a936c1a9c\",\"type\":\"function_call\",\"call_id\":\"call_25e09811f0994dccbe9fca41\",\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837037,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_e43952bf-46eb-9e85-b609-fae443026e75\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + }, + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"We have a budget of 38000 dollars for 219 trips costing 173 dollars each. Calculate whether that is affordable. If it is, use get_weather to look up the current weather in Paris. After receiving the result, report the weather in one short sentence.\"}]},{\"type\":\"reasoning\",\"id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\",\"summary\":[{\"type\":\"summary_text\",\"text\":\"Calculation: 219 × 173 = 37,887 ≤ 38,000. Since it's purchasable, I'll call get_weather.\"}],\"encrypted_content\":null},{\"type\":\"message\",\"id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"219 trips × $173 = $37,887, which fits within the $38,000 budget. Let me check the weather in Paris.\\n\\n\"}]},{\"type\":\"function_call\",\"id\":\"msg_797eb542-592e-40eb-8d79-235a936c1a9c\",\"call_id\":\"call_25e09811f0994dccbe9fca41\",\"name\":\"get_weather\",\"arguments\":\"{\\\"city\\\":\\\"Paris\\\"}\"},{\"type\":\"function_call_output\",\"call_id\":\"call_25e09811f0994dccbe9fca41\",\"output\":\"{\\\"condition\\\":\\\"sunny\\\",\\\"temperature\\\":\\\"18C\\\"}\"}],\"tools\":[{\"type\":\"function\",\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"parameters\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"],\"additionalProperties\":false},\"strict\":false}],\"store\":false,\"reasoning\":{\"effort\":\"medium\"},\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"medium\"},\"created_at\":1788837038,\"store\":false,\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"strict\":false,\"type\":\"function\",\"parameters\":{\"additionalProperties\":false,\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837038,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_c63b4142-32a3-9429-9cab-7cf7c69654f4\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"medium\"},\"created_at\":1788837038,\"store\":false,\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"strict\":false,\"type\":\"function\",\"parameters\":{\"additionalProperties\":false,\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837038,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_c63b4142-32a3-9429-9cab-7cf7c69654f4\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_5bb4c76d-c53d-4798-8db4-39b7d65099f5\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"Report\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bb4c76d-c53d-4798-8db4-39b7d65099f5\"}\n\nid:5\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" conc\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bb4c76d-c53d-4798-8db4-39b7d65099f5\"}\n\nid:6\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"isely.\\n\",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bb4c76d-c53d-4798-8db4-39b7d65099f5\"}\n\nid:7\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bb4c76d-c53d-4798-8db4-39b7d65099f5\"}\n\nid:8\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":7,\"text\":\"Report concisely.\\n\",\"output_index\":0,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_5bb4c76d-c53d-4798-8db4-39b7d65099f5\"}\n\nid:9\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":8,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Report concisely.\\n\"}],\"type\":\"reasoning\",\"id\":\"msg_5bb4c76d-c53d-4798-8db4-39b7d65099f5\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:10\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":9,\"item\":{\"id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":1,\"type\":\"response.output_item.added\"}\n\nid:11\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":10,\"output_index\":1,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:12\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":11,\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"delta\":\"Yes\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:13\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":12,\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"delta\":\", it's affordable\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:14\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":13,\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"delta\":\" ($37,\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:15\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":14,\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"delta\":\"887 total\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:16\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":15,\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"delta\":\", leaving $1\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:17\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":16,\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"delta\":\"13 to spare\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:18\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":17,\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"delta\":\"). It\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:19\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":18,\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"delta\":\"'s currently sunny and\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:20\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":19,\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"delta\":\" 18°C\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:21\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":20,\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"delta\":\" in Paris.\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:22\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":21,\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"delta\":\"\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:23\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":22,\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"text\":\"Yes, it's affordable ($37,887 total, leaving $113 to spare). It's currently sunny and 18°C in Paris.\",\"output_index\":1,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:24\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":23,\"output_index\":1,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"Yes, it's affordable ($37,887 total, leaving $113 to spare). It's currently sunny and 18°C in Paris.\"}}\n\nid:25\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":24,\"item\":{\"id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"Yes, it's affordable ($37,887 total, leaving $113 to spare). It's currently sunny and 18°C in Paris.\"}],\"status\":\"completed\"},\"output_index\":1,\"type\":\"response.output_item.done\"}\n\nid:26\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":25,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"medium\"},\"usage\":{\"total_tokens\":548,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":42,\"input_tokens\":506,\"output_tokens_details\":{\"reasoning_tokens\":5},\"x_details\":[{\"total_tokens\":548,\"x_billing_type\":\"response_api\",\"output_tokens\":42,\"input_tokens\":506,\"output_tokens_details\":{\"reasoning_tokens\":5},\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837038,\"store\":false,\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"strict\":false,\"type\":\"function\",\"parameters\":{\"additionalProperties\":false,\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}],\"output\":[{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Report concisely.\\n\"}],\"type\":\"reasoning\",\"id\":\"msg_5bb4c76d-c53d-4798-8db4-39b7d65099f5\"},{\"id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"Yes, it's affordable ($37,887 total, leaving $113 to spare). It's currently sunny and 18°C in Paris.\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837038,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_c63b4142-32a3-9429-9cab-7cf7c69654f4\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + }, + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"We have a budget of 38000 dollars for 219 trips costing 173 dollars each. Calculate whether that is affordable. If it is, use get_weather to look up the current weather in Paris. After receiving the result, report the weather in one short sentence.\"}]},{\"type\":\"reasoning\",\"id\":\"msg_84f03f69-62af-4b44-a20f-97f15c755db0\",\"summary\":[{\"type\":\"summary_text\",\"text\":\"Calculation: 219 × 173 = 37,887 ≤ 38,000. Since it's purchasable, I'll call get_weather.\"}],\"encrypted_content\":null},{\"type\":\"message\",\"id\":\"msg_d0a3e4ac-21f2-4aa5-8734-9542494007e0\",\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"219 trips × $173 = $37,887, which fits within the $38,000 budget. Let me check the weather in Paris.\\n\\n\"}]},{\"type\":\"function_call\",\"id\":\"msg_797eb542-592e-40eb-8d79-235a936c1a9c\",\"call_id\":\"call_25e09811f0994dccbe9fca41\",\"name\":\"get_weather\",\"arguments\":\"{\\\"city\\\":\\\"Paris\\\"}\"},{\"type\":\"function_call_output\",\"call_id\":\"call_25e09811f0994dccbe9fca41\",\"output\":\"{\\\"condition\\\":\\\"sunny\\\",\\\"temperature\\\":\\\"18C\\\"}\"},{\"type\":\"reasoning\",\"id\":\"msg_5bb4c76d-c53d-4798-8db4-39b7d65099f5\",\"summary\":[{\"type\":\"summary_text\",\"text\":\"Report concisely.\\n\"}],\"encrypted_content\":null},{\"type\":\"message\",\"id\":\"msg_9c597e1d-bb84-4dc5-8da0-bd791e1718cc\",\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"Yes, it's affordable ($37,887 total, leaving $113 to spare). It's currently sunny and 18°C in Paris.\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"What temperature did the tool report? Reply with only the temperature.\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"parameters\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"],\"additionalProperties\":false},\"strict\":false}],\"store\":false,\"reasoning\":{\"effort\":\"medium\"},\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"medium\"},\"created_at\":1788837039,\"store\":false,\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"strict\":false,\"type\":\"function\",\"parameters\":{\"additionalProperties\":false,\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837039,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_b7c652f1-c7eb-9faa-9693-9b99bfeb82a4\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"medium\"},\"created_at\":1788837039,\"store\":false,\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"strict\":false,\"type\":\"function\",\"parameters\":{\"additionalProperties\":false,\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837039,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_b7c652f1-c7eb-9faa-9693-9b99bfeb82a4\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_acd5b3d1-76f3-4fe2-977b-1a181291eafb\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"The\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_acd5b3d1-76f3-4fe2-977b-1a181291eafb\"}\n\nid:5\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" tool reported\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_acd5b3d1-76f3-4fe2-977b-1a181291eafb\"}\n\nid:6\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 18C\",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_acd5b3d1-76f3-4fe2-977b-1a181291eafb\"}\n\nid:7\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\". Reply\",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_acd5b3d1-76f3-4fe2-977b-1a181291eafb\"}\n\nid:8\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" with only the temperature\",\"sequence_number\":7,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_acd5b3d1-76f3-4fe2-977b-1a181291eafb\"}\n\nid:9\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\".\",\"sequence_number\":8,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_acd5b3d1-76f3-4fe2-977b-1a181291eafb\"}\n\nid:10\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":9,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_acd5b3d1-76f3-4fe2-977b-1a181291eafb\"}\n\nid:11\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":10,\"text\":\"The tool reported 18C. Reply with only the temperature.\",\"output_index\":0,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_acd5b3d1-76f3-4fe2-977b-1a181291eafb\"}\n\nid:12\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":11,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"The tool reported 18C. Reply with only the temperature.\"}],\"type\":\"reasoning\",\"id\":\"msg_acd5b3d1-76f3-4fe2-977b-1a181291eafb\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:13\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":12,\"item\":{\"id\":\"msg_ba5b6802-3645-4832-9b0a-7d4a2766b982\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":1,\"type\":\"response.output_item.added\"}\n\nid:14\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":13,\"output_index\":1,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_ba5b6802-3645-4832-9b0a-7d4a2766b982\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:15\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":14,\"content_index\":0,\"item_id\":\"msg_ba5b6802-3645-4832-9b0a-7d4a2766b982\",\"delta\":\"18C\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:16\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":15,\"content_index\":0,\"item_id\":\"msg_ba5b6802-3645-4832-9b0a-7d4a2766b982\",\"delta\":\"\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:17\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":16,\"content_index\":0,\"item_id\":\"msg_ba5b6802-3645-4832-9b0a-7d4a2766b982\",\"text\":\"18C\",\"output_index\":1,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:18\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":17,\"output_index\":1,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_ba5b6802-3645-4832-9b0a-7d4a2766b982\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"18C\"}}\n\nid:19\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":18,\"item\":{\"id\":\"msg_ba5b6802-3645-4832-9b0a-7d4a2766b982\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"18C\"}],\"status\":\"completed\"},\"output_index\":1,\"type\":\"response.output_item.done\"}\n\nid:20\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":19,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"medium\"},\"usage\":{\"total_tokens\":593,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":20,\"input_tokens\":573,\"output_tokens_details\":{\"reasoning_tokens\":14},\"x_details\":[{\"total_tokens\":593,\"x_billing_type\":\"response_api\",\"output_tokens\":20,\"input_tokens\":573,\"output_tokens_details\":{\"reasoning_tokens\":14},\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837039,\"store\":false,\"tools\":[{\"name\":\"get_weather\",\"description\":\"Get the current weather in a city\",\"strict\":false,\"type\":\"function\",\"parameters\":{\"additionalProperties\":false,\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"enum\":[\"Paris\"]}},\"required\":[\"city\"]}}],\"output\":[{\"summary\":[{\"type\":\"summary_text\",\"text\":\"The tool reported 18C. Reply with only the temperature.\"}],\"type\":\"reasoning\",\"id\":\"msg_acd5b3d1-76f3-4fe2-977b-1a181291eafb\"},{\"id\":\"msg_ba5b6802-3645-4832-9b0a-7d4a2766b982\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"18C\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837040,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_b7c652f1-c7eb-9faa-9693-9b99bfeb82a4\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-default-effort.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-default-effort.json new file mode 100644 index 00000000000..756e6ccbb61 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-default-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-responses/qwen-3-8-max-streams-default-effort", + "recordedAt": "2026-09-08T03:08:08.745Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"created_at\":1788836887,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788836887,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_343deecc-098c-9a0e-b9ac-08533042210d\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"created_at\":1788836887,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788836887,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_343deecc-098c-9a0e-b9ac-08533042210d\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"We\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:5\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" need answer user\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:6\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"'s simple multiplication with\",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:7\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" only final integer.\",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:8\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Compute 17\",\"sequence_number\":7,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:9\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3\",\"sequence_number\":8,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:10\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"*219\",\"sequence_number\":9,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:11\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\". 17\",\"sequence_number\":10,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:12\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3*20\",\"sequence_number\":11,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:13\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"0=34\",\"sequence_number\":12,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:14\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"600;\",\"sequence_number\":13,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:15\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":14,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:16\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"*19=\",\"sequence_number\":15,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:17\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3287\",\"sequence_number\":16,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:18\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"; sum 3\",\"sequence_number\":17,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:19\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"78\",\"sequence_number\":18,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:20\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"87. Final\",\"sequence_number\":19,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:21\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" only integer. Ensure\",\"sequence_number\":20,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:22\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" no extra.\\n\",\"sequence_number\":21,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:23\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":22,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:24\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":23,\"text\":\"We need answer user's simple multiplication with only final integer. Compute 173*219. 173*200=34600; 173*19=3287; sum 37887. Final only integer. Ensure no extra.\\n\",\"output_index\":0,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"}\n\nid:25\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":24,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"We need answer user's simple multiplication with only final integer. Compute 173*219. 173*200=34600; 173*19=3287; sum 37887. Final only integer. Ensure no extra.\\n\"}],\"type\":\"reasoning\",\"id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:26\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":25,\"item\":{\"id\":\"msg_79c00bbe-4607-4511-8ce8-be1ee1031bb0\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":1,\"type\":\"response.output_item.added\"}\n\nid:27\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":26,\"output_index\":1,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_79c00bbe-4607-4511-8ce8-be1ee1031bb0\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:28\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":27,\"content_index\":0,\"item_id\":\"msg_79c00bbe-4607-4511-8ce8-be1ee1031bb0\",\"delta\":\"37\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:29\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":28,\"content_index\":0,\"item_id\":\"msg_79c00bbe-4607-4511-8ce8-be1ee1031bb0\",\"delta\":\"887\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:30\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":29,\"content_index\":0,\"item_id\":\"msg_79c00bbe-4607-4511-8ce8-be1ee1031bb0\",\"delta\":\"\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:31\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":30,\"content_index\":0,\"item_id\":\"msg_79c00bbe-4607-4511-8ce8-be1ee1031bb0\",\"text\":\"37887\",\"output_index\":1,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:32\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":31,\"output_index\":1,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_79c00bbe-4607-4511-8ce8-be1ee1031bb0\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}}\n\nid:33\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":32,\"item\":{\"id\":\"msg_79c00bbe-4607-4511-8ce8-be1ee1031bb0\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"},\"output_index\":1,\"type\":\"response.output_item.done\"}\n\nid:34\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":33,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"usage\":{\"total_tokens\":178,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":74,\"input_tokens\":104,\"output_tokens_details\":{\"reasoning_tokens\":66},\"x_details\":[{\"total_tokens\":178,\"x_billing_type\":\"response_api\",\"output_tokens\":74,\"input_tokens\":104,\"output_tokens_details\":{\"reasoning_tokens\":66},\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788836887,\"store\":true,\"tools\":[],\"output\":[{\"summary\":[{\"type\":\"summary_text\",\"text\":\"We need answer user's simple multiplication with only final integer. Compute 173*219. 173*200=34600; 173*19=3287; sum 37887. Final only integer. Ensure no extra.\\n\"}],\"type\":\"reasoning\",\"id\":\"msg_56b74392-ea21-42f5-a2de-cbf0d211c1f9\"},{\"id\":\"msg_79c00bbe-4607-4511-8ce8-be1ee1031bb0\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788836888,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_343deecc-098c-9a0e-b9ac-08533042210d\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-high-effort.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-high-effort.json new file mode 100644 index 00000000000..b2d7822f6e3 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-high-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-responses/qwen-3-8-max-streams-high-effort", + "recordedAt": "2026-09-08T03:10:28.176Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"reasoning\":{\"effort\":\"high\"},\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"high\"},\"created_at\":1788837025,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837025,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_b50de7a6-088c-9c8a-897b-6315037494c1\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"high\"},\"created_at\":1788837025,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837025,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_b50de7a6-088c-9c8a-897b-6315037494c1\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"We\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:5\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" need answer user\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:6\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"'s simple arithmetic\",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:7\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\": 17\",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:8\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3 * 2\",\"sequence_number\":7,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:9\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"19. Need\",\"sequence_number\":8,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:10\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" final only integer.\",\"sequence_number\":9,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:11\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Compute: 1\",\"sequence_number\":10,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:12\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73*2\",\"sequence_number\":11,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:13\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"00=3\",\"sequence_number\":12,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:14\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"4600\",\"sequence_number\":13,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:15\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"; *19\",\"sequence_number\":14,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:16\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"=173\",\"sequence_number\":15,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:17\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"*20-\",\"sequence_number\":16,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:18\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173=\",\"sequence_number\":17,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:19\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3460\",\"sequence_number\":18,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:20\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"-173\",\"sequence_number\":19,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:21\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"=328\",\"sequence_number\":20,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:22\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7; sum \",\"sequence_number\":21,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:23\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3788\",\"sequence_number\":22,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:24\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7. Check:\",\"sequence_number\":23,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:25\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 219\",\"sequence_number\":24,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:26\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"*173\",\"sequence_number\":25,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:27\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" = 21\",\"sequence_number\":26,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:28\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"9*(17\",\"sequence_number\":27,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:29\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"0+3)=\",\"sequence_number\":28,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:30\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"37\",\"sequence_number\":29,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:31\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"230+\",\"sequence_number\":30,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:32\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"657=\",\"sequence_number\":31,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:33\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3788\",\"sequence_number\":32,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:34\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7. Final only\",\"sequence_number\":33,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:35\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" integer.\",\"sequence_number\":34,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:36\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":35,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:37\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":36,\"text\":\"We need answer user's simple arithmetic: 173 * 219. Need final only integer. Compute: 173*200=34600; *19=173*20-173=3460-173=3287; sum 37887. Check: 219*173 = 219*(170+3)=37230+657=37887. Final only integer.\",\"output_index\":0,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"}\n\nid:38\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":37,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"We need answer user's simple arithmetic: 173 * 219. Need final only integer. Compute: 173*200=34600; *19=173*20-173=3460-173=3287; sum 37887. Check: 219*173 = 219*(170+3)=37230+657=37887. Final only integer.\"}],\"type\":\"reasoning\",\"id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:39\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":38,\"item\":{\"id\":\"msg_42a05017-5cee-460b-8b07-d971507f8e58\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":1,\"type\":\"response.output_item.added\"}\n\nid:40\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":39,\"output_index\":1,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_42a05017-5cee-460b-8b07-d971507f8e58\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:41\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":40,\"content_index\":0,\"item_id\":\"msg_42a05017-5cee-460b-8b07-d971507f8e58\",\"delta\":\"378\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:42\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":41,\"content_index\":0,\"item_id\":\"msg_42a05017-5cee-460b-8b07-d971507f8e58\",\"delta\":\"87\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:43\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":42,\"content_index\":0,\"item_id\":\"msg_42a05017-5cee-460b-8b07-d971507f8e58\",\"delta\":\"\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:44\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":43,\"content_index\":0,\"item_id\":\"msg_42a05017-5cee-460b-8b07-d971507f8e58\",\"text\":\"37887\",\"output_index\":1,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:45\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":44,\"output_index\":1,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_42a05017-5cee-460b-8b07-d971507f8e58\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}}\n\nid:46\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":45,\"item\":{\"id\":\"msg_42a05017-5cee-460b-8b07-d971507f8e58\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"},\"output_index\":1,\"type\":\"response.output_item.done\"}\n\nid:47\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":46,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"high\"},\"usage\":{\"total_tokens\":231,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":127,\"input_tokens\":104,\"output_tokens_details\":{\"reasoning_tokens\":119},\"x_details\":[{\"total_tokens\":231,\"x_billing_type\":\"response_api\",\"output_tokens\":127,\"input_tokens\":104,\"output_tokens_details\":{\"reasoning_tokens\":119},\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837025,\"store\":true,\"tools\":[],\"output\":[{\"summary\":[{\"type\":\"summary_text\",\"text\":\"We need answer user's simple arithmetic: 173 * 219. Need final only integer. Compute: 173*200=34600; *19=173*20-173=3460-173=3287; sum 37887. Check: 219*173 = 219*(170+3)=37230+657=37887. Final only integer.\"}],\"type\":\"reasoning\",\"id\":\"msg_6645c104-a2b3-4dee-b14e-09905f9ffbff\"},{\"id\":\"msg_42a05017-5cee-460b-8b07-d971507f8e58\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837028,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_b50de7a6-088c-9c8a-897b-6315037494c1\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-low-effort.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-low-effort.json new file mode 100644 index 00000000000..ba5e570b72a --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-low-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-responses/qwen-3-8-max-streams-low-effort", + "recordedAt": "2026-09-08T03:10:21.488Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"reasoning\":{\"effort\":\"low\"},\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"low\"},\"created_at\":1788837019,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837019,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_fc17244f-ef38-9c75-8cc8-33606c583c12\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"low\"},\"created_at\":1788837019,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837019,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_fc17244f-ef38-9c75-8cc8-33606c583c12\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"Let\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:5\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" me calculate 1\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:6\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7\",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:7\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3 × 2\",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:8\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"19.\\n\\n\",\"sequence_number\":7,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:9\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173 ×\",\"sequence_number\":8,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:10\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 219\",\"sequence_number\":9,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:11\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" = 17\",\"sequence_number\":10,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:12\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3 × (2\",\"sequence_number\":11,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:13\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"00 + \",\"sequence_number\":12,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:14\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"19)\\n\",\"sequence_number\":13,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:15\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"= 17\",\"sequence_number\":14,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:16\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3 × 2\",\"sequence_number\":15,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:17\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"00 + \",\"sequence_number\":16,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:18\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173 ×\",\"sequence_number\":17,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:19\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 19\\n\",\"sequence_number\":18,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:20\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"= 34\",\"sequence_number\":19,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:21\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\",600\",\"sequence_number\":20,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:22\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" + 3,\",\"sequence_number\":21,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:23\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"287\\n\",\"sequence_number\":22,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:24\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"= 37\",\"sequence_number\":23,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:25\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\",887\",\"sequence_number\":24,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:26\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":25,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:27\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":26,\"text\":\"Let me calculate 173 × 219.\\n\\n173 × 219 = 173 × (200 + 19)\\n= 173 × 200 + 173 × 19\\n= 34,600 + 3,287\\n= 37,887\",\"output_index\":0,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"}\n\nid:28\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":27,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Let me calculate 173 × 219.\\n\\n173 × 219 = 173 × (200 + 19)\\n= 173 × 200 + 173 × 19\\n= 34,600 + 3,287\\n= 37,887\"}],\"type\":\"reasoning\",\"id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:29\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":28,\"item\":{\"id\":\"msg_8c532636-af53-4e19-b0ea-12caac861794\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":1,\"type\":\"response.output_item.added\"}\n\nid:30\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":29,\"output_index\":1,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_8c532636-af53-4e19-b0ea-12caac861794\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:31\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":30,\"content_index\":0,\"item_id\":\"msg_8c532636-af53-4e19-b0ea-12caac861794\",\"delta\":\"3\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:32\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":31,\"content_index\":0,\"item_id\":\"msg_8c532636-af53-4e19-b0ea-12caac861794\",\"delta\":\"7887\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:33\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":32,\"content_index\":0,\"item_id\":\"msg_8c532636-af53-4e19-b0ea-12caac861794\",\"delta\":\"\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:34\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":33,\"content_index\":0,\"item_id\":\"msg_8c532636-af53-4e19-b0ea-12caac861794\",\"text\":\"37887\",\"output_index\":1,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:35\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":34,\"output_index\":1,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_8c532636-af53-4e19-b0ea-12caac861794\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}}\n\nid:36\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":35,\"item\":{\"id\":\"msg_8c532636-af53-4e19-b0ea-12caac861794\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"},\"output_index\":1,\"type\":\"response.output_item.done\"}\n\nid:37\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":36,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"low\"},\"usage\":{\"total_tokens\":182,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":90,\"input_tokens\":92,\"output_tokens_details\":{\"reasoning_tokens\":82},\"x_details\":[{\"total_tokens\":182,\"x_billing_type\":\"response_api\",\"output_tokens\":90,\"input_tokens\":92,\"output_tokens_details\":{\"reasoning_tokens\":82},\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837019,\"store\":true,\"tools\":[],\"output\":[{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Let me calculate 173 × 219.\\n\\n173 × 219 = 173 × (200 + 19)\\n= 173 × 200 + 173 × 19\\n= 34,600 + 3,287\\n= 37,887\"}],\"type\":\"reasoning\",\"id\":\"msg_856551e8-25bb-488a-b443-e110d2b72aa4\"},{\"id\":\"msg_8c532636-af53-4e19-b0ea-12caac861794\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837021,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_fc17244f-ef38-9c75-8cc8-33606c583c12\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-max-effort.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-max-effort.json new file mode 100644 index 00000000000..9ef8b38c41d --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-max-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-responses/qwen-3-8-max-streams-max-effort", + "recordedAt": "2026-09-08T03:10:34.387Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"reasoning\":{\"effort\":\"max\"},\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"max\"},\"created_at\":1788837031,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837031,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_0ff46b5c-f6a3-9d1c-8636-008ab2135792\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"max\"},\"created_at\":1788837031,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837031,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_0ff46b5c-f6a3-9d1c-8636-008ab2135792\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"We\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:5\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" need answer user\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:6\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\":\",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:7\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" \\\"What is \",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:8\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173 multiplied\",\"sequence_number\":7,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:9\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" by 21\",\"sequence_number\":8,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:10\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"9? Reply with\",\"sequence_number\":9,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:11\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" only the final integer\",\"sequence_number\":10,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:12\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\".\\\" Need compute \",\"sequence_number\":11,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:13\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173*\",\"sequence_number\":12,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:14\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"219.\",\"sequence_number\":13,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:15\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":14,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:16\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"*200\",\"sequence_number\":15,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:17\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"=346\",\"sequence_number\":16,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:18\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"00;\",\"sequence_number\":17,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:19\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":18,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:20\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"*19=\",\"sequence_number\":19,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:21\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3287\",\"sequence_number\":20,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:22\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"; sum 3\",\"sequence_number\":21,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:23\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"78\",\"sequence_number\":22,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:24\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"87. Or\",\"sequence_number\":23,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:25\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 219\",\"sequence_number\":24,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:26\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"*1\",\"sequence_number\":25,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:27\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73 = \",\"sequence_number\":26,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:28\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"219\",\"sequence_number\":27,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:29\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"*(170\",\"sequence_number\":28,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:30\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"+3)=3\",\"sequence_number\":29,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:31\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7230\",\"sequence_number\":30,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:32\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"+657\",\"sequence_number\":31,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:33\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"=37\",\"sequence_number\":32,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:34\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"887.\",\"sequence_number\":33,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:35\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Final only integer.\",\"sequence_number\":34,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:36\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Ensure no extra.\",\"sequence_number\":35,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:37\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":36,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:38\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":37,\"text\":\"We need answer user: \\\"What is 173 multiplied by 219? Reply with only the final integer.\\\" Need compute 173*219. 173*200=34600; 173*19=3287; sum 37887. Or 219*173 = 219*(170+3)=37230+657=37887. Final only integer. Ensure no extra.\",\"output_index\":0,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"}\n\nid:39\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":38,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"We need answer user: \\\"What is 173 multiplied by 219? Reply with only the final integer.\\\" Need compute 173*219. 173*200=34600; 173*19=3287; sum 37887. Or 219*173 = 219*(170+3)=37230+657=37887. Final only integer. Ensure no extra.\"}],\"type\":\"reasoning\",\"id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:40\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":39,\"item\":{\"id\":\"msg_c6b317dd-eed5-4c06-bece-792b9c597490\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":1,\"type\":\"response.output_item.added\"}\n\nid:41\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":40,\"output_index\":1,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_c6b317dd-eed5-4c06-bece-792b9c597490\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:42\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":41,\"content_index\":0,\"item_id\":\"msg_c6b317dd-eed5-4c06-bece-792b9c597490\",\"delta\":\"3\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:43\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":42,\"content_index\":0,\"item_id\":\"msg_c6b317dd-eed5-4c06-bece-792b9c597490\",\"delta\":\"7887\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:44\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":43,\"content_index\":0,\"item_id\":\"msg_c6b317dd-eed5-4c06-bece-792b9c597490\",\"delta\":\"\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:45\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":44,\"content_index\":0,\"item_id\":\"msg_c6b317dd-eed5-4c06-bece-792b9c597490\",\"text\":\"37887\",\"output_index\":1,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:46\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":45,\"output_index\":1,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_c6b317dd-eed5-4c06-bece-792b9c597490\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}}\n\nid:47\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":46,\"item\":{\"id\":\"msg_c6b317dd-eed5-4c06-bece-792b9c597490\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"},\"output_index\":1,\"type\":\"response.output_item.done\"}\n\nid:48\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":47,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"max\"},\"usage\":{\"total_tokens\":230,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":126,\"input_tokens\":104,\"output_tokens_details\":{\"reasoning_tokens\":118},\"x_details\":[{\"total_tokens\":230,\"x_billing_type\":\"response_api\",\"output_tokens\":126,\"input_tokens\":104,\"output_tokens_details\":{\"reasoning_tokens\":118},\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837031,\"store\":true,\"tools\":[],\"output\":[{\"summary\":[{\"type\":\"summary_text\",\"text\":\"We need answer user: \\\"What is 173 multiplied by 219? Reply with only the final integer.\\\" Need compute 173*219. 173*200=34600; 173*19=3287; sum 37887. Or 219*173 = 219*(170+3)=37230+657=37887. Final only integer. Ensure no extra.\"}],\"type\":\"reasoning\",\"id\":\"msg_34ad0582-9f2f-4e5c-bf7d-bb1367828549\"},{\"id\":\"msg_c6b317dd-eed5-4c06-bece-792b9c597490\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837034,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_0ff46b5c-f6a3-9d1c-8636-008ab2135792\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-medium-effort.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-medium-effort.json new file mode 100644 index 00000000000..ffc34b8808c --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-medium-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-responses/qwen-3-8-max-streams-medium-effort", + "recordedAt": "2026-09-08T03:10:24.760Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"reasoning\":{\"effort\":\"medium\"},\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"medium\"},\"created_at\":1788837022,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837022,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_e050c7df-5e97-9311-8508-81fd19affbf7\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"medium\"},\"created_at\":1788837022,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837022,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_e050c7df-5e97-9311-8508-81fd19affbf7\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"The\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:5\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" user wants me to\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:6\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" calculate 17\",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:7\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3 × 2\",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:8\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"19.\\n\\n\",\"sequence_number\":7,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:9\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"1\",\"sequence_number\":8,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:10\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73 × \",\"sequence_number\":9,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:11\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"219:\",\"sequence_number\":10,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:12\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n173\",\"sequence_number\":11,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:13\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" × 20\",\"sequence_number\":12,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:14\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"0 = 3\",\"sequence_number\":13,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:15\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"4,60\",\"sequence_number\":14,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:16\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"0\\n17\",\"sequence_number\":15,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:17\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3 × 1\",\"sequence_number\":16,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:18\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"9 = 1\",\"sequence_number\":17,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:19\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73 × \",\"sequence_number\":18,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:20\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"20 - \",\"sequence_number\":19,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:21\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173 =\",\"sequence_number\":20,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:22\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 3,4\",\"sequence_number\":21,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:23\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"60 - \",\"sequence_number\":22,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:24\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173 =\",\"sequence_number\":23,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:25\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 3,2\",\"sequence_number\":24,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:26\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"87\\n\\n3\",\"sequence_number\":25,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:27\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"4,6\",\"sequence_number\":26,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:28\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"00 + \",\"sequence_number\":27,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:29\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3,28\",\"sequence_number\":28,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:30\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7 = 3\",\"sequence_number\":29,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:31\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7,88\",\"sequence_number\":30,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:32\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7\\n\\nThe answer\",\"sequence_number\":31,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:33\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" is 3\",\"sequence_number\":32,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:34\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7887\",\"sequence_number\":33,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:35\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\".\",\"sequence_number\":34,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:36\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":35,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:37\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":36,\"text\":\"The user wants me to calculate 173 × 219.\\n\\n173 × 219:\\n173 × 200 = 34,600\\n173 × 19 = 173 × 20 - 173 = 3,460 - 173 = 3,287\\n\\n34,600 + 3,287 = 37,887\\n\\nThe answer is 37887.\",\"output_index\":0,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"}\n\nid:38\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":37,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"The user wants me to calculate 173 × 219.\\n\\n173 × 219:\\n173 × 200 = 34,600\\n173 × 19 = 173 × 20 - 173 = 3,460 - 173 = 3,287\\n\\n34,600 + 3,287 = 37,887\\n\\nThe answer is 37887.\"}],\"type\":\"reasoning\",\"id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:39\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":38,\"item\":{\"id\":\"msg_29fedc21-7876-433f-9330-43c11894b3df\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":1,\"type\":\"response.output_item.added\"}\n\nid:40\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":39,\"output_index\":1,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_29fedc21-7876-433f-9330-43c11894b3df\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:41\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":40,\"content_index\":0,\"item_id\":\"msg_29fedc21-7876-433f-9330-43c11894b3df\",\"delta\":\"3788\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:42\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":41,\"content_index\":0,\"item_id\":\"msg_29fedc21-7876-433f-9330-43c11894b3df\",\"delta\":\"7\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:43\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":42,\"content_index\":0,\"item_id\":\"msg_29fedc21-7876-433f-9330-43c11894b3df\",\"delta\":\"\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:44\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":43,\"content_index\":0,\"item_id\":\"msg_29fedc21-7876-433f-9330-43c11894b3df\",\"text\":\"37887\",\"output_index\":1,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:45\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":44,\"output_index\":1,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_29fedc21-7876-433f-9330-43c11894b3df\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}}\n\nid:46\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":45,\"item\":{\"id\":\"msg_29fedc21-7876-433f-9330-43c11894b3df\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"},\"output_index\":1,\"type\":\"response.output_item.done\"}\n\nid:47\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":46,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"medium\"},\"usage\":{\"total_tokens\":191,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":125,\"input_tokens\":66,\"output_tokens_details\":{\"reasoning_tokens\":117},\"x_details\":[{\"total_tokens\":191,\"x_billing_type\":\"response_api\",\"output_tokens\":125,\"input_tokens\":66,\"output_tokens_details\":{\"reasoning_tokens\":117},\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837022,\"store\":true,\"tools\":[],\"output\":[{\"summary\":[{\"type\":\"summary_text\",\"text\":\"The user wants me to calculate 173 × 219.\\n\\n173 × 219:\\n173 × 200 = 34,600\\n173 × 19 = 173 × 20 - 173 = 3,460 - 173 = 3,287\\n\\n34,600 + 3,287 = 37,887\\n\\nThe answer is 37887.\"}],\"type\":\"reasoning\",\"id\":\"msg_5bd9d3da-7baa-460b-b138-433c4a84c549\"},{\"id\":\"msg_29fedc21-7876-433f-9330-43c11894b3df\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837024,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_e050c7df-5e97-9311-8508-81fd19affbf7\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-minimal-effort.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-minimal-effort.json new file mode 100644 index 00000000000..d19e428ed69 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-minimal-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-responses/qwen-3-8-max-streams-minimal-effort", + "recordedAt": "2026-09-08T03:10:18.903Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"reasoning\":{\"effort\":\"minimal\"},\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"minimal\"},\"created_at\":1788837017,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837017,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_82f036e5-1689-9bf3-852e-c414929ed6f7\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"minimal\"},\"created_at\":1788837017,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837017,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_82f036e5-1689-9bf3-852e-c414929ed6f7\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"Let\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:5\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" me calculate 1\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:6\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73 × \",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:7\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"219.\",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:8\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n\\n173\",\"sequence_number\":7,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:9\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" × 21\",\"sequence_number\":8,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:10\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"9 = 1\",\"sequence_number\":9,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:11\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73 × (\",\"sequence_number\":10,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:12\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"200 +\",\"sequence_number\":11,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:13\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 19)\",\"sequence_number\":12,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:14\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n= 1\",\"sequence_number\":13,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:15\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73 × \",\"sequence_number\":14,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:16\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"200 +\",\"sequence_number\":15,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:17\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":16,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:18\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" × 19\",\"sequence_number\":17,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:19\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n= 3\",\"sequence_number\":18,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:20\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"4,60\",\"sequence_number\":19,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:21\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"0 + 3\",\"sequence_number\":20,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:22\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\",287\",\"sequence_number\":21,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:23\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\\n= 3\",\"sequence_number\":22,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:24\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7,88\",\"sequence_number\":23,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:25\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"7\",\"sequence_number\":24,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:26\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":25,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:27\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":26,\"text\":\"Let me calculate 173 × 219.\\n\\n173 × 219 = 173 × (200 + 19)\\n= 173 × 200 + 173 × 19\\n= 34,600 + 3,287\\n= 37,887\",\"output_index\":0,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"}\n\nid:28\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":27,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Let me calculate 173 × 219.\\n\\n173 × 219 = 173 × (200 + 19)\\n= 173 × 200 + 173 × 19\\n= 34,600 + 3,287\\n= 37,887\"}],\"type\":\"reasoning\",\"id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:29\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":28,\"item\":{\"id\":\"msg_1a2b8c5e-34e1-444e-ba99-c8d5d88da624\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":1,\"type\":\"response.output_item.added\"}\n\nid:30\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":29,\"output_index\":1,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_1a2b8c5e-34e1-444e-ba99-c8d5d88da624\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:31\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":30,\"content_index\":0,\"item_id\":\"msg_1a2b8c5e-34e1-444e-ba99-c8d5d88da624\",\"delta\":\"37\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:32\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":31,\"content_index\":0,\"item_id\":\"msg_1a2b8c5e-34e1-444e-ba99-c8d5d88da624\",\"delta\":\"887\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:33\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":32,\"content_index\":0,\"item_id\":\"msg_1a2b8c5e-34e1-444e-ba99-c8d5d88da624\",\"delta\":\"\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:34\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":33,\"content_index\":0,\"item_id\":\"msg_1a2b8c5e-34e1-444e-ba99-c8d5d88da624\",\"text\":\"37887\",\"output_index\":1,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:35\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":34,\"output_index\":1,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_1a2b8c5e-34e1-444e-ba99-c8d5d88da624\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}}\n\nid:36\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":35,\"item\":{\"id\":\"msg_1a2b8c5e-34e1-444e-ba99-c8d5d88da624\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"},\"output_index\":1,\"type\":\"response.output_item.done\"}\n\nid:37\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":36,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"minimal\"},\"usage\":{\"total_tokens\":182,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":90,\"input_tokens\":92,\"output_tokens_details\":{\"reasoning_tokens\":82},\"x_details\":[{\"total_tokens\":182,\"x_billing_type\":\"response_api\",\"output_tokens\":90,\"input_tokens\":92,\"output_tokens_details\":{\"reasoning_tokens\":82},\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837017,\"store\":true,\"tools\":[],\"output\":[{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Let me calculate 173 × 219.\\n\\n173 × 219 = 173 × (200 + 19)\\n= 173 × 200 + 173 × 19\\n= 34,600 + 3,287\\n= 37,887\"}],\"type\":\"reasoning\",\"id\":\"msg_47aa345a-3f48-4d0b-8caa-43f70b7aa30e\"},{\"id\":\"msg_1a2b8c5e-34e1-444e-ba99-c8d5d88da624\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837018,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_82f036e5-1689-9bf3-852e-c414929ed6f7\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-none-effort.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-none-effort.json new file mode 100644 index 00000000000..1b8ad1b143b --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-none-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-responses/qwen-3-8-max-streams-none-effort", + "recordedAt": "2026-09-08T03:10:16.259Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"reasoning\":{\"effort\":\"none\"},\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"none\"},\"created_at\":1788837016,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837016,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_25a2d379-9830-903b-b2d6-86d4f270a5f3\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"none\"},\"created_at\":1788837016,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837016,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_25a2d379-9830-903b-b2d6-86d4f270a5f3\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"id\":\"msg_c5e3e012-16b0-4755-97a1-f610184b536d\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":3,\"output_index\":0,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_c5e3e012-16b0-4755-97a1-f610184b536d\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:5\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":4,\"content_index\":0,\"item_id\":\"msg_c5e3e012-16b0-4755-97a1-f610184b536d\",\"delta\":\"3\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:6\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":5,\"content_index\":0,\"item_id\":\"msg_c5e3e012-16b0-4755-97a1-f610184b536d\",\"delta\":\"78\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:7\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":6,\"content_index\":0,\"item_id\":\"msg_c5e3e012-16b0-4755-97a1-f610184b536d\",\"delta\":\"87\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:8\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":7,\"content_index\":0,\"item_id\":\"msg_c5e3e012-16b0-4755-97a1-f610184b536d\",\"delta\":\"\",\"output_index\":0,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:9\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":8,\"content_index\":0,\"item_id\":\"msg_c5e3e012-16b0-4755-97a1-f610184b536d\",\"text\":\"37887\",\"output_index\":0,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:10\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":9,\"output_index\":0,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_c5e3e012-16b0-4755-97a1-f610184b536d\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}}\n\nid:11\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":10,\"item\":{\"id\":\"msg_c5e3e012-16b0-4755-97a1-f610184b536d\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:12\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":11,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"none\"},\"usage\":{\"total_tokens\":73,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":5,\"input_tokens\":68,\"output_tokens_details\":{\"reasoning_tokens\":0},\"x_details\":[{\"total_tokens\":73,\"x_billing_type\":\"response_api\",\"output_tokens\":5,\"input_tokens\":68,\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837016,\"store\":true,\"tools\":[],\"output\":[{\"id\":\"msg_c5e3e012-16b0-4755-97a1-f610184b536d\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837016,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_25a2d379-9830-903b-b2d6-86d4f270a5f3\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-xhigh-effort.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-xhigh-effort.json new file mode 100644 index 00000000000..0cd2894f8f1 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-streams-xhigh-effort.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "text", + "reasoning", + "usage" + ], + "name": "alibaba-responses/qwen-3-8-max-streams-xhigh-effort", + "recordedAt": "2026-09-08T03:10:30.969Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"What is 173 multiplied by 219? Reply with only the final integer.\"}]}],\"reasoning\":{\"effort\":\"xhigh\"},\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"xhigh\"},\"created_at\":1788837029,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837029,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_54d2122c-015e-9774-817e-20e7dbc9c432\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"xhigh\"},\"created_at\":1788837029,\"store\":true,\"tools\":[],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837029,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_54d2122c-015e-9774-817e-20e7dbc9c432\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"We\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:5\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" need answer user\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:6\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"'s simple multiplication:\",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:7\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:8\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" * 21\",\"sequence_number\":7,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:9\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"9. Need final\",\"sequence_number\":8,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:10\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" integer only. Compute\",\"sequence_number\":9,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:11\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\":\",\"sequence_number\":10,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:12\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":11,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:13\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"*200\",\"sequence_number\":12,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:14\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"=346\",\"sequence_number\":13,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:15\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"00;\",\"sequence_number\":14,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:16\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" 173\",\"sequence_number\":15,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:17\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"*19=\",\"sequence_number\":16,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:18\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173*\",\"sequence_number\":17,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:19\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"20-1\",\"sequence_number\":18,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:20\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"73=3\",\"sequence_number\":19,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:21\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"460-\",\"sequence_number\":20,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:22\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"173=\",\"sequence_number\":21,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:23\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"3287\",\"sequence_number\":22,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:24\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"; sum=3\",\"sequence_number\":23,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:25\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"78\",\"sequence_number\":24,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:26\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"87. Final\",\"sequence_number\":25,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:27\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" only.\",\"sequence_number\":26,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:28\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":27,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:29\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":28,\"text\":\"We need answer user's simple multiplication: 173 * 219. Need final integer only. Compute: 173*200=34600; 173*19=173*20-173=3460-173=3287; sum=37887. Final only.\",\"output_index\":0,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"}\n\nid:30\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":29,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"We need answer user's simple multiplication: 173 * 219. Need final integer only. Compute: 173*200=34600; 173*19=173*20-173=3460-173=3287; sum=37887. Final only.\"}],\"type\":\"reasoning\",\"id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:31\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":30,\"item\":{\"id\":\"msg_06cac198-a768-41fe-8905-1ce778f59ac3\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":1,\"type\":\"response.output_item.added\"}\n\nid:32\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":31,\"output_index\":1,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_06cac198-a768-41fe-8905-1ce778f59ac3\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:33\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":32,\"content_index\":0,\"item_id\":\"msg_06cac198-a768-41fe-8905-1ce778f59ac3\",\"delta\":\"3\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:34\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":33,\"content_index\":0,\"item_id\":\"msg_06cac198-a768-41fe-8905-1ce778f59ac3\",\"delta\":\"7887\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:35\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":34,\"content_index\":0,\"item_id\":\"msg_06cac198-a768-41fe-8905-1ce778f59ac3\",\"delta\":\"\",\"output_index\":1,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:36\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":35,\"content_index\":0,\"item_id\":\"msg_06cac198-a768-41fe-8905-1ce778f59ac3\",\"text\":\"37887\",\"output_index\":1,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:37\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":36,\"output_index\":1,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_06cac198-a768-41fe-8905-1ce778f59ac3\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}}\n\nid:38\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":37,\"item\":{\"id\":\"msg_06cac198-a768-41fe-8905-1ce778f59ac3\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"},\"output_index\":1,\"type\":\"response.output_item.done\"}\n\nid:39\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":38,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"xhigh\"},\"usage\":{\"total_tokens\":196,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":92,\"input_tokens\":104,\"output_tokens_details\":{\"reasoning_tokens\":84},\"x_details\":[{\"total_tokens\":196,\"x_billing_type\":\"response_api\",\"output_tokens\":92,\"input_tokens\":104,\"output_tokens_details\":{\"reasoning_tokens\":84},\"prompt_tokens_details\":{\"cached_tokens\":0}}]},\"created_at\":1788837029,\"store\":true,\"tools\":[],\"output\":[{\"summary\":[{\"type\":\"summary_text\",\"text\":\"We need answer user's simple multiplication: 173 * 219. Need final integer only. Compute: 173*200=34600; 173*19=173*20-173=3460-173=3287; sum=37887. Final only.\"}],\"type\":\"reasoning\",\"id\":\"msg_17a0681d-7874-4a7e-9a00-b5ab280f0cc8\"},{\"id\":\"msg_06cac198-a768-41fe-8905-1ce778f59ac3\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"37887\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837030,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_54d2122c-015e-9774-817e-20e7dbc9c432\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-uses-hosted-code-interpreter.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-uses-hosted-code-interpreter.json new file mode 100644 index 00000000000..1f0104c44f5 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-uses-hosted-code-interpreter.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "hosted-tool", + "code-interpreter" + ], + "name": "alibaba-responses/qwen-3-8-max-uses-hosted-code-interpreter", + "recordedAt": "2026-09-08T03:12:27.081Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"Use the code interpreter to compute the SHA-256 hash of the UTF-8 string hello (no newline). Reply with only the hash.\"}]}],\"tools\":[{\"type\":\"code_interpreter\"}],\"reasoning\":{\"effort\":\"low\"},\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"low\"},\"created_at\":1788837133,\"store\":true,\"tools\":[{\"type\":\"code_interpreter\"}],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837133,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_4d8d5e4f-f8b6-9d50-9708-193015018e47\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"low\"},\"created_at\":1788837133,\"store\":true,\"tools\":[{\"type\":\"code_interpreter\"}],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837133,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_4d8d5e4f-f8b6-9d50-9708-193015018e47\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_73a2b84d-e541-4415-9a17-689440ace291\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"I\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_73a2b84d-e541-4415-9a17-689440ace291\"}\n\nid:5\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"'ll\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_73a2b84d-e541-4415-9a17-689440ace291\"}\n\nid:6\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" use\",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_73a2b84d-e541-4415-9a17-689440ace291\"}\n\nid:7\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Python\",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_73a2b84d-e541-4415-9a17-689440ace291\"}\n\nid:8\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" to compute the hash\",\"sequence_number\":7,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_73a2b84d-e541-4415-9a17-689440ace291\"}\n\nid:9\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\".\",\"sequence_number\":8,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_73a2b84d-e541-4415-9a17-689440ace291\"}\n\nid:10\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":9,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_73a2b84d-e541-4415-9a17-689440ace291\"}\n\nid:11\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":10,\"text\":\"I'll use Python to compute the hash.\",\"output_index\":0,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_73a2b84d-e541-4415-9a17-689440ace291\"}\n\nid:12\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":11,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"I'll use Python to compute the hash.\"}],\"type\":\"reasoning\",\"id\":\"msg_73a2b84d-e541-4415-9a17-689440ace291\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:13\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":12,\"item\":{\"code\":\"import hashlib\\nhashlib.sha256(b\\\"hello\\\").hexdigest()\",\"id\":\"msg_db0e35c9-13e8-4116-a26c-e27d764a19be\",\"type\":\"code_interpreter_call\",\"container_id\":\"\",\"status\":\"in_progress\"},\"output_index\":1,\"type\":\"response.output_item.added\"}\n\nid:14\nevent:response.code_interpreter_call.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":13,\"output_index\":1,\"type\":\"response.code_interpreter_call.in_progress\",\"item_id\":\"msg_db0e35c9-13e8-4116-a26c-e27d764a19be\"}\n\nid:15\nevent:response.code_interpreter_call.interpreting\n:HTTP_STATUS/200\ndata:{\"sequence_number\":14,\"output_index\":1,\"type\":\"response.code_interpreter_call.interpreting\",\"item_id\":\"msg_db0e35c9-13e8-4116-a26c-e27d764a19be\"}\n\nid:16\nevent:response.code_interpreter_call.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":15,\"output_index\":1,\"type\":\"response.code_interpreter_call.completed\",\"item_id\":\"msg_db0e35c9-13e8-4116-a26c-e27d764a19be\"}\n\nid:17\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":16,\"item\":{\"outputs\":[{\"type\":\"logs\",\"logs\":\"```\\n'2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824'\\n```\"}],\"code\":\"import hashlib\\nhashlib.sha256(b\\\"hello\\\").hexdigest()\",\"id\":\"msg_db0e35c9-13e8-4116-a26c-e27d764a19be\",\"type\":\"code_interpreter_call\",\"container_id\":\"msg_db0e35c9-13e8-4116-a26c-e27d764a19be\",\"status\":\"completed\"},\"output_index\":1,\"type\":\"response.output_item.done\"}\n\nid:18\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":17,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_31422b2e-e8b1-44b2-9f67-cf328d6ec835\"},\"output_index\":2,\"type\":\"response.output_item.added\"}\n\nid:19\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"Please\",\"sequence_number\":18,\"output_index\":2,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_31422b2e-e8b1-44b2-9f67-cf328d6ec835\"}\n\nid:20\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" answer\",\"sequence_number\":19,\"output_index\":2,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_31422b2e-e8b1-44b2-9f67-cf328d6ec835\"}\n\nid:21\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" with only the hash\",\"sequence_number\":20,\"output_index\":2,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_31422b2e-e8b1-44b2-9f67-cf328d6ec835\"}\n\nid:22\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\".\",\"sequence_number\":21,\"output_index\":2,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_31422b2e-e8b1-44b2-9f67-cf328d6ec835\"}\n\nid:23\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":22,\"output_index\":2,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_31422b2e-e8b1-44b2-9f67-cf328d6ec835\"}\n\nid:24\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":23,\"text\":\"Please answer with only the hash.\",\"output_index\":2,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_31422b2e-e8b1-44b2-9f67-cf328d6ec835\"}\n\nid:25\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":24,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Please answer with only the hash.\"}],\"type\":\"reasoning\",\"id\":\"msg_31422b2e-e8b1-44b2-9f67-cf328d6ec835\"},\"output_index\":2,\"type\":\"response.output_item.done\"}\n\nid:26\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":25,\"item\":{\"id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":3,\"type\":\"response.output_item.added\"}\n\nid:27\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":26,\"output_index\":3,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:28\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":27,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"2cf24\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:29\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":28,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"dba5fb0\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:30\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":29,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"a30e\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:31\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":30,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"26e8\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:32\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":31,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"3b2ac\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:33\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":32,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"5b9e\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:34\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":33,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"29e1\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:35\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":34,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"b161\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:36\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":35,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"e5c1\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:37\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":36,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"fa742\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:38\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":37,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"5e73\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:39\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":38,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"0433\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:40\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":39,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"6293\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:41\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":40,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"8b98\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:42\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":41,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"24\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:43\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":42,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"delta\":\"\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:44\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":43,\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"text\":\"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824\",\"output_index\":3,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:45\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":44,\"output_index\":3,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824\"}}\n\nid:46\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":45,\"item\":{\"id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824\"}],\"status\":\"completed\"},\"output_index\":3,\"type\":\"response.output_item.done\"}\n\nid:47\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":46,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"low\"},\"usage\":{\"input_tokens_details\":{\"cached_tokens\":0},\"x_details\":[{\"plugins\":{\"code_interpreter\":{\"count\":1}},\"prompt_tokens_details\":{\"cached_tokens\":0},\"total_tokens\":996,\"x_billing_type\":\"response_api\",\"output_tokens\":121,\"input_tokens\":875,\"output_tokens_details\":{\"reasoning_tokens\":16}}],\"total_tokens\":996,\"output_tokens\":121,\"x_tools\":{\"code_interpreter\":{\"count\":1}},\"input_tokens\":875,\"output_tokens_details\":{\"reasoning_tokens\":16}},\"created_at\":1788837133,\"store\":true,\"tools\":[{\"type\":\"code_interpreter\"}],\"output\":[{\"summary\":[{\"type\":\"summary_text\",\"text\":\"I'll use Python to compute the hash.\"}],\"type\":\"reasoning\",\"id\":\"msg_73a2b84d-e541-4415-9a17-689440ace291\"},{\"outputs\":[{\"type\":\"logs\",\"logs\":\"```\\n'2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824'\\n```\"}],\"code\":\"import hashlib\\nhashlib.sha256(b\\\"hello\\\").hexdigest()\",\"id\":\"msg_db0e35c9-13e8-4116-a26c-e27d764a19be\",\"type\":\"code_interpreter_call\",\"container_id\":\"msg_db0e35c9-13e8-4116-a26c-e27d764a19be\",\"status\":\"completed\"},{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Please answer with only the hash.\"}],\"type\":\"reasoning\",\"id\":\"msg_31422b2e-e8b1-44b2-9f67-cf328d6ec835\"},{\"id\":\"msg_35c6ceb9-eed0-4d38-818a-bc6f794b7935\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837146,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_4d8d5e4f-f8b6-9d50-9708-193015018e47\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-uses-hosted-web-search-and-extraction.json b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-uses-hosted-web-search-and-extraction.json new file mode 100644 index 00000000000..62740db1480 --- /dev/null +++ b/packages/ai/test/fixtures/recordings/alibaba-responses/qwen-3-8-max-uses-hosted-web-search-and-extraction.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "metadata": { + "tags": [ + "prefix:alibaba-responses", + "provider:alibaba", + "protocol:alibaba-responses", + "region:ap-southeast-1", + "hosted-tool", + "web-search", + "web-extractor" + ], + "name": "alibaba-responses/qwen-3-8-max-uses-hosted-web-search-and-extraction", + "recordedAt": "2026-09-08T03:12:12.520Z" + }, + "interactions": [ + { + "transport": "http", + "request": { + "method": "POST", + "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses", + "headers": { + "content-type": "application/json" + }, + "body": "{\"model\":\"qwen3.8-max\",\"input\":[{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"Use web search to find Alibaba Cloud Model Studio's official documentation, then use web_extractor to read the page. Give a brief summary with the source URL.\"}]}],\"tools\":[{\"type\":\"web_search\"},{\"type\":\"web_extractor\"}],\"store\":false,\"reasoning\":{\"effort\":\"low\"},\"max_output_tokens\":4096,\"stream\":true}" + }, + "response": { + "status": 200, + "headers": { + "content-type": "text/event-stream;charset=UTF-8" + }, + "body": "id:1\nevent:response.created\n:HTTP_STATUS/200\ndata:{\"sequence_number\":0,\"type\":\"response.created\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"low\"},\"created_at\":1788837093,\"store\":false,\"tools\":[{\"type\":\"web_search\"},{\"type\":\"web_extractor\"}],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837093,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_0d0cf4ab-b5af-9c95-a01b-782344f74360\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"queued\"}}\n\nid:2\nevent:response.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":1,\"type\":\"response.in_progress\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"low\"},\"created_at\":1788837093,\"store\":false,\"tools\":[{\"type\":\"web_search\"},{\"type\":\"web_extractor\"}],\"output\":[],\"top_p\":1.0,\"completed_at\":1788837093,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_0d0cf4ab-b5af-9c95-a01b-782344f74360\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"in_progress\"}}\n\nid:3\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":2,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_5bf2a90b-b2d6-4a81-b11b-49c3b6139825\"},\"output_index\":0,\"type\":\"response.output_item.added\"}\n\nid:4\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"I\",\"sequence_number\":3,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bf2a90b-b2d6-4a81-b11b-49c3b6139825\"}\n\nid:5\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"'ll search Alibaba\",\"sequence_number\":4,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bf2a90b-b2d6-4a81-b11b-49c3b6139825\"}\n\nid:6\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Cloud Model\",\"sequence_number\":5,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bf2a90b-b2d6-4a81-b11b-49c3b6139825\"}\n\nid:7\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" Studio's documentation.\",\"sequence_number\":6,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bf2a90b-b2d6-4a81-b11b-49c3b6139825\"}\n\nid:8\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":7,\"output_index\":0,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_5bf2a90b-b2d6-4a81-b11b-49c3b6139825\"}\n\nid:9\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":8,\"text\":\"I'll search Alibaba Cloud Model Studio's documentation.\",\"output_index\":0,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_5bf2a90b-b2d6-4a81-b11b-49c3b6139825\"}\n\nid:10\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":9,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"I'll search Alibaba Cloud Model Studio's documentation.\"}],\"type\":\"reasoning\",\"id\":\"msg_5bf2a90b-b2d6-4a81-b11b-49c3b6139825\"},\"output_index\":0,\"type\":\"response.output_item.done\"}\n\nid:11\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":10,\"item\":{\"action\":{\"type\":\"search\",\"queries\":[\"Alibaba Cloud Model Studio official documentation\",\"Alibaba Cloud Model Studio docs Qwen API\"]},\"id\":\"msg_adf1987f-cc97-4158-8029-edcd395e298f\",\"type\":\"web_search_call\",\"status\":\"in_progress\"},\"output_index\":1,\"type\":\"response.output_item.added\"}\n\nid:12\nevent:response.web_search_call.in_progress\n:HTTP_STATUS/200\ndata:{\"sequence_number\":11,\"output_index\":1,\"type\":\"response.web_search_call.in_progress\",\"item_id\":\"msg_adf1987f-cc97-4158-8029-edcd395e298f\"}\n\nid:13\nevent:response.web_search_call.searching\n:HTTP_STATUS/200\ndata:{\"sequence_number\":12,\"output_index\":1,\"type\":\"response.web_search_call.searching\",\"item_id\":\"msg_adf1987f-cc97-4158-8029-edcd395e298f\"}\n\nid:14\nevent:response.web_search_call.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":13,\"output_index\":1,\"type\":\"response.web_search_call.completed\",\"item_id\":\"msg_adf1987f-cc97-4158-8029-edcd395e298f\"}\n\nid:15\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":14,\"item\":{\"action\":{\"sources\":[{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/what-is-model-studio\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/models\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/get-started-with-models/\"},{\"type\":\"url\",\"url\":\"https://modelstudio.alibabacloud.com/\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/rag-knowledge-base\"},{\"type\":\"url\",\"url\":\"https://modelstudio.console.alibabacloud.com/\"},{\"type\":\"url\",\"url\":\"https://www.youtube.com/watch?v=VKJnpO7MtDQ\"},{\"type\":\"url\",\"url\":\"https://help.aliyun.com/en/model-studio/faq-about-alibaba-cloud-model-studio\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/coding-plan\"},{\"type\":\"url\",\"url\":\"https://www.youtube.com/watch?v=QmB2qxcQx88\"},{\"type\":\"url\",\"url\":\"https://modelstudio.alibabacloud.com/\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/get-api-key\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/qwen-code\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/what-is-model-studio\"},{\"type\":\"url\",\"url\":\"https://qwen.ai/apiplatform\"},{\"type\":\"url\",\"url\":\"https://www.youtube.com/watch?v=QmB2qxcQx88\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/first-api-call-to-qwen\"},{\"type\":\"url\",\"url\":\"https://modelstudio.console.alibabacloud.com/\"},{\"type\":\"url\",\"url\":\"https://help.aliyun.com/en/model-studio/faq-about-alibaba-cloud-model-studio\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/qwen-omni\"}],\"type\":\"search\",\"queries\":[\"Alibaba Cloud Model Studio official documentation\",\"Alibaba Cloud Model Studio docs Qwen API\"],\"query\":\"Alibaba Cloud Model Studio official documentation\"},\"id\":\"msg_adf1987f-cc97-4158-8029-edcd395e298f\",\"type\":\"web_search_call\",\"status\":\"completed\"},\"output_index\":1,\"type\":\"response.output_item.done\"}\n\nid:16\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":15,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_0e5e6158-ac1e-488d-9c3a-aa886291d667\"},\"output_index\":2,\"type\":\"response.output_item.added\"}\n\nid:17\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"Next\",\"sequence_number\":16,\"output_index\":2,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_0e5e6158-ac1e-488d-9c3a-aa886291d667\"}\n\nid:18\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\", I'll use\",\"sequence_number\":17,\"output_index\":2,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_0e5e6158-ac1e-488d-9c3a-aa886291d667\"}\n\nid:19\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" web_extractor on\",\"sequence_number\":18,\"output_index\":2,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_0e5e6158-ac1e-488d-9c3a-aa886291d667\"}\n\nid:20\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" the main documentation page\",\"sequence_number\":19,\"output_index\":2,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_0e5e6158-ac1e-488d-9c3a-aa886291d667\"}\n\nid:21\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\".\",\"sequence_number\":20,\"output_index\":2,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_0e5e6158-ac1e-488d-9c3a-aa886291d667\"}\n\nid:22\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":21,\"output_index\":2,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_0e5e6158-ac1e-488d-9c3a-aa886291d667\"}\n\nid:23\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":22,\"text\":\"Next, I'll use web_extractor on the main documentation page.\",\"output_index\":2,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_0e5e6158-ac1e-488d-9c3a-aa886291d667\"}\n\nid:24\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":23,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Next, I'll use web_extractor on the main documentation page.\"}],\"type\":\"reasoning\",\"id\":\"msg_0e5e6158-ac1e-488d-9c3a-aa886291d667\"},\"output_index\":2,\"type\":\"response.output_item.done\"}\n\nid:25\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":24,\"item\":{\"id\":\"msg_3f1e449b-53e2-4b65-87d4-5daf475fc6b7\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":3,\"type\":\"response.output_item.added\"}\n\nid:26\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":25,\"output_index\":3,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_3f1e449b-53e2-4b65-87d4-5daf475fc6b7\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:27\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":26,\"content_index\":0,\"item_id\":\"msg_3f1e449b-53e2-4b65-87d4-5daf475fc6b7\",\"delta\":\"Found the official documentation\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:28\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":27,\"content_index\":0,\"item_id\":\"msg_3f1e449b-53e2-4b65-87d4-5daf475fc6b7\",\"delta\":\".\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:29\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":28,\"content_index\":0,\"item_id\":\"msg_3f1e449b-53e2-4b65-87d4-5daf475fc6b7\",\"delta\":\" Now let me extract\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:30\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":29,\"content_index\":0,\"item_id\":\"msg_3f1e449b-53e2-4b65-87d4-5daf475fc6b7\",\"delta\":\" the main overview page\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:31\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":30,\"content_index\":0,\"item_id\":\"msg_3f1e449b-53e2-4b65-87d4-5daf475fc6b7\",\"delta\":\":\\n\\n\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:32\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":31,\"content_index\":0,\"item_id\":\"msg_3f1e449b-53e2-4b65-87d4-5daf475fc6b7\",\"delta\":\"\",\"output_index\":3,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:33\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":32,\"content_index\":0,\"item_id\":\"msg_3f1e449b-53e2-4b65-87d4-5daf475fc6b7\",\"text\":\"Found the official documentation. Now let me extract the main overview page:\\n\\n\",\"output_index\":3,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:34\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":33,\"output_index\":3,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_3f1e449b-53e2-4b65-87d4-5daf475fc6b7\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"Found the official documentation. Now let me extract the main overview page:\\n\\n\"}}\n\nid:35\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":34,\"item\":{\"id\":\"msg_3f1e449b-53e2-4b65-87d4-5daf475fc6b7\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"Found the official documentation. Now let me extract the main overview page:\\n\\n\"}],\"status\":\"completed\"},\"output_index\":3,\"type\":\"response.output_item.done\"}\n\nid:36\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":35,\"item\":{\"urls\":[\"https://www.alibabacloud.com/help/en/model-studio/what-is-model-studio\"],\"goal\":\"Summarize what Alibaba Cloud Model Studio is, its key features, supported models, and main capabilities as described in the official documentation\",\"id\":\"msg_49bcd133-dedc-46f9-af2a-1f96a3207e75\",\"type\":\"web_extractor_call\",\"status\":\"in_progress\"},\"output_index\":4,\"type\":\"response.output_item.added\"}\n\nid:37\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":36,\"item\":{\"output\":\"The useful information in https://www.alibabacloud.com/help/en/model-studio/what-is-model-studio for user goal Summarize what Alibaba Cloud Model Studio is, its key features, supported models, and main capabilities as described in the official documentation as follows: \\n\\nEvidence in page: \\nAlibaba Cloud Model Studio is a one-stop model service platform. It provides the full Qwen series and mainstream third-party LLMs through official Qwen APIs and OpenAI-compatible APIs, with multimodal support across text, image, and audio/video. Call models on demand — no infrastructure to manage.\\n\\nModel Studio is OpenAI-compatible. Update the API key, base URL, and model name to migrate existing OpenAI code.\\n\\n## Model service\\n\\nModel Studio provides ready-to-use model services, including the proprietary Qwen series and third-party models such as DeepSeek, Kimi, and GLM. See Recommended models.\\n\\n- **Qwen flagship models**:\\n - Qwen-Max: The highest-performing model in the Qwen series, suited for complex, multi-step tasks.\\n\\n > The latest qwen3.8-max delivers significant reasoning improvements over its predecessor. Recommended.\\n\\n - Qwen-Plus: Balances performance, speed, and cost — **recommended** for most scenarios.\\n\\n - Qwen-Flash: Low-cost and low-latency — suited for simple tasks that require fast responses.\\n- **Multimodal coverage**: Includes text generation, visual understanding, image generation, video generation, speech recognition and synthesis, and embedding.\\n\\n- **Domain-specific models**: Models for long-text processing, translation, data mining, intent recognition, role-playing, and deep research.\\n\\n## Billing\\n\\nActivating Model Studio is free. Costs apply only when you invoke models. See Billable items and pricing.\\n\\n- **Model inference** — Models such as deepseek-v3.2-exp and other large language models are billed based on the number of tokens generated. You can use savings plans to offset the cost.\\n\\nSummary: \\nAlibaba Cloud Model Studio is a one-stop, enterprise-grade platform for developing and deploying AI applications. Its main capabilities include providing ready-to-use model services for the proprietary Qwen series and third-party models like DeepSeek, Kimi, and GLM. The supported models cover a wide range of functionalities, including text generation, visual understanding, image and video generation, speech recognition, and embeddings. Key features are its multimodal support, OpenAI-compatible APIs for easy code migration, and pay-as-you-go billing where costs are incurred only when models are invoked.\",\"urls\":[\"https://www.alibabacloud.com/help/en/model-studio/what-is-model-studio\"],\"goal\":\"Summarize what Alibaba Cloud Model Studio is, its key features, supported models, and main capabilities as described in the official documentation\",\"id\":\"msg_49bcd133-dedc-46f9-af2a-1f96a3207e75\",\"type\":\"web_extractor_call\",\"status\":\"completed\"},\"output_index\":4,\"type\":\"response.output_item.done\"}\n\nid:38\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":37,\"item\":{\"summary\":[],\"type\":\"reasoning\",\"id\":\"msg_e79aca97-48e4-4f60-8670-104364d829f1\"},\"output_index\":5,\"type\":\"response.output_item.added\"}\n\nid:39\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"I\",\"sequence_number\":38,\"output_index\":5,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_e79aca97-48e4-4f60-8670-104364d829f1\"}\n\nid:40\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"'ll provide a concise\",\"sequence_number\":39,\"output_index\":5,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_e79aca97-48e4-4f60-8670-104364d829f1\"}\n\nid:41\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" summary with source\",\"sequence_number\":40,\"output_index\":5,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_e79aca97-48e4-4f60-8670-104364d829f1\"}\n\nid:42\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\" URLs.\",\"sequence_number\":41,\"output_index\":5,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_e79aca97-48e4-4f60-8670-104364d829f1\"}\n\nid:43\nevent:response.reasoning_text.delta\n:HTTP_STATUS/200\ndata:{\"delta\":\"\",\"sequence_number\":42,\"output_index\":5,\"type\":\"response.reasoning_text.delta\",\"content_index\":0,\"item_id\":\"msg_e79aca97-48e4-4f60-8670-104364d829f1\"}\n\nid:44\nevent:response.reasoning_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":43,\"text\":\"I'll provide a concise summary with source URLs.\",\"output_index\":5,\"type\":\"response.reasoning_text.done\",\"content_index\":0,\"item_id\":\"msg_e79aca97-48e4-4f60-8670-104364d829f1\"}\n\nid:45\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":44,\"item\":{\"summary\":[{\"type\":\"summary_text\",\"text\":\"I'll provide a concise summary with source URLs.\"}],\"type\":\"reasoning\",\"id\":\"msg_e79aca97-48e4-4f60-8670-104364d829f1\"},\"output_index\":5,\"type\":\"response.output_item.done\"}\n\nid:46\nevent:response.output_item.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":45,\"item\":{\"id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[],\"status\":\"in_progress\"},\"output_index\":6,\"type\":\"response.output_item.added\"}\n\nid:47\nevent:response.content_part.added\n:HTTP_STATUS/200\ndata:{\"sequence_number\":46,\"output_index\":6,\"type\":\"response.content_part.added\",\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"\"}}\n\nid:48\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":47,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"## Summary:\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:49\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":48,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" Alibaba Cloud Model Studio\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:50\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":49,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"\\n\\n**Source:**\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:51\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":50,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" https://www\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:52\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":51,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\".alibabacloud.com/help\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:53\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":52,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"/en/model-studio\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:54\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":53,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"/what-is-model\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:55\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":54,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"-studio\\n\\nAl\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:56\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":55,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"ibaba Cloud Model Studio\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:57\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":56,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" is a **one\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:58\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":57,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"-stop model service platform\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:59\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":58,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"** that provides ready\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:60\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":59,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"-to-use\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:61\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":60,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" AI models on demand\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:62\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":61,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\",\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:63\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":62,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" with no infrastructure to\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:64\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":63,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" manage. Key points\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:65\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":64,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" from the official documentation\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:66\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":65,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\":\\n\\n**Supported\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:67\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":66,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" Models:**\\n-\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:68\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":67,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" The\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:69\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":68,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" full **Qwen\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:70\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":69,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" series** (flag\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:71\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":70,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"ship models like Q\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:72\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":71,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"wen-Max\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:73\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":72,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" for complex tasks,\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:74\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":73,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" Qwen-\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:75\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":74,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"Plus for balanced performance\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:76\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":75,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"/cost, and\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:77\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":76,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" Qwen-Flash\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:78\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":77,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" for low-lat\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:79\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":78,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"ency simple tasks)\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:80\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":79,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"\\n-\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:81\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":80,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" **Third-party models\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:82\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":81,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"** including DeepSeek\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:83\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":82,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\", Kim\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:84\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":83,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"i, and GL\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:85\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":84,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"M\\n\\n**Capabilities\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:86\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":85,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\":**\\n- **\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:87\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":86,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"Multimodal support\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:88\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":87,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"**: text generation,\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:89\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":88,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" visual\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:90\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":89,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" understanding, image/video\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:91\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":90,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" generation, speech recognition\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:92\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":91,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" & synthesis, and\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:93\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":92,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" embeddings\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:94\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":93,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"\\n- **Domain\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:95\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":94,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"-specific models** for\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:96\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":95,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" long-text processing,\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:97\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":96,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" translation, data mining\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:98\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":97,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\", intent recognition,\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:99\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":98,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" role-playing, and\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:100\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":99,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" deep research\\n\\n**\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:101\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":100,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"Key Features:**\\n\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:102\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":101,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"- **OpenAI\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:103\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":102,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"-compatible APIs** —\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:104\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":103,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" you can migrate existing\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:105\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":104,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" OpenAI code just\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:106\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":105,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" by changing the API\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:107\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":106,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" key, base URL\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:108\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":107,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\", and model name\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:109\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":108,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"; also supports official\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:110\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":109,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" Qwen APIs and\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:111\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":110,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" the DashScope SDK\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:112\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":111,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"\\n- **Pay\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:113\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":112,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"-as-you-go billing\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:114\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":113,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"** — activation is\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:115\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":114,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" free; you're\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:116\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":115,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" billed\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:117\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":116,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" per token on model\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:118\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":117,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" inference\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:119\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":118,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\", with savings plans\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:120\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":119,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\" available to offset costs\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:121\nevent:response.output_text.delta\n:HTTP_STATUS/200\ndata:{\"sequence_number\":120,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"delta\":\"\",\"output_index\":6,\"type\":\"response.output_text.delta\",\"logprobs\":[]}\n\nid:122\nevent:response.output_text.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":121,\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"text\":\"## Summary: Alibaba Cloud Model Studio\\n\\n**Source:** https://www.alibabacloud.com/help/en/model-studio/what-is-model-studio\\n\\nAlibaba Cloud Model Studio is a **one-stop model service platform** that provides ready-to-use AI models on demand, with no infrastructure to manage. Key points from the official documentation:\\n\\n**Supported Models:**\\n- The full **Qwen series** (flagship models like Qwen-Max for complex tasks, Qwen-Plus for balanced performance/cost, and Qwen-Flash for low-latency simple tasks)\\n- **Third-party models** including DeepSeek, Kimi, and GLM\\n\\n**Capabilities:**\\n- **Multimodal support**: text generation, visual understanding, image/video generation, speech recognition & synthesis, and embeddings\\n- **Domain-specific models** for long-text processing, translation, data mining, intent recognition, role-playing, and deep research\\n\\n**Key Features:**\\n- **OpenAI-compatible APIs** — you can migrate existing OpenAI code just by changing the API key, base URL, and model name; also supports official Qwen APIs and the DashScope SDK\\n- **Pay-as-you-go billing** — activation is free; you're billed per token on model inference, with savings plans available to offset costs\",\"output_index\":6,\"type\":\"response.output_text.done\",\"logprobs\":[]}\n\nid:123\nevent:response.content_part.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":122,\"output_index\":6,\"type\":\"response.content_part.done\",\"content_index\":0,\"item_id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"part\":{\"type\":\"output_text\",\"annotations\":[],\"text\":\"## Summary: Alibaba Cloud Model Studio\\n\\n**Source:** https://www.alibabacloud.com/help/en/model-studio/what-is-model-studio\\n\\nAlibaba Cloud Model Studio is a **one-stop model service platform** that provides ready-to-use AI models on demand, with no infrastructure to manage. Key points from the official documentation:\\n\\n**Supported Models:**\\n- The full **Qwen series** (flagship models like Qwen-Max for complex tasks, Qwen-Plus for balanced performance/cost, and Qwen-Flash for low-latency simple tasks)\\n- **Third-party models** including DeepSeek, Kimi, and GLM\\n\\n**Capabilities:**\\n- **Multimodal support**: text generation, visual understanding, image/video generation, speech recognition & synthesis, and embeddings\\n- **Domain-specific models** for long-text processing, translation, data mining, intent recognition, role-playing, and deep research\\n\\n**Key Features:**\\n- **OpenAI-compatible APIs** — you can migrate existing OpenAI code just by changing the API key, base URL, and model name; also supports official Qwen APIs and the DashScope SDK\\n- **Pay-as-you-go billing** — activation is free; you're billed per token on model inference, with savings plans available to offset costs\"}}\n\nid:124\nevent:response.output_item.done\n:HTTP_STATUS/200\ndata:{\"sequence_number\":123,\"item\":{\"id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"## Summary: Alibaba Cloud Model Studio\\n\\n**Source:** https://www.alibabacloud.com/help/en/model-studio/what-is-model-studio\\n\\nAlibaba Cloud Model Studio is a **one-stop model service platform** that provides ready-to-use AI models on demand, with no infrastructure to manage. Key points from the official documentation:\\n\\n**Supported Models:**\\n- The full **Qwen series** (flagship models like Qwen-Max for complex tasks, Qwen-Plus for balanced performance/cost, and Qwen-Flash for low-latency simple tasks)\\n- **Third-party models** including DeepSeek, Kimi, and GLM\\n\\n**Capabilities:**\\n- **Multimodal support**: text generation, visual understanding, image/video generation, speech recognition & synthesis, and embeddings\\n- **Domain-specific models** for long-text processing, translation, data mining, intent recognition, role-playing, and deep research\\n\\n**Key Features:**\\n- **OpenAI-compatible APIs** — you can migrate existing OpenAI code just by changing the API key, base URL, and model name; also supports official Qwen APIs and the DashScope SDK\\n- **Pay-as-you-go billing** — activation is free; you're billed per token on model inference, with savings plans available to offset costs\"}],\"status\":\"completed\"},\"output_index\":6,\"type\":\"response.output_item.done\"}\n\nid:125\nevent:response.completed\n:HTTP_STATUS/200\ndata:{\"sequence_number\":124,\"type\":\"response.completed\",\"response\":{\"top_logprobs\":0,\"metadata\":{},\"presence_penalty\":0.0,\"reasoning\":{\"effort\":\"low\"},\"usage\":{\"input_tokens_details\":{\"cached_tokens\":1024},\"x_details\":[{\"plugins\":{\"web_extractor\":{\"count\":1},\"web_search\":{\"count\":1}},\"prompt_tokens_details\":{\"cached_tokens\":1024},\"total_tokens\":5329,\"x_billing_type\":\"response_api\",\"output_tokens\":446,\"input_tokens\":4883,\"output_tokens_details\":{\"reasoning_tokens\":33}}],\"total_tokens\":5329,\"output_tokens\":446,\"x_tools\":{\"web_extractor\":{\"count\":1},\"web_search\":{\"count\":1}},\"input_tokens\":4883,\"output_tokens_details\":{\"reasoning_tokens\":33}},\"created_at\":1788837093,\"store\":false,\"tools\":[{\"type\":\"web_search\"},{\"type\":\"web_extractor\"}],\"output\":[{\"summary\":[{\"type\":\"summary_text\",\"text\":\"I'll search Alibaba Cloud Model Studio's documentation.\"}],\"type\":\"reasoning\",\"id\":\"msg_5bf2a90b-b2d6-4a81-b11b-49c3b6139825\"},{\"action\":{\"sources\":[{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/what-is-model-studio\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/models\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/get-started-with-models/\"},{\"type\":\"url\",\"url\":\"https://modelstudio.alibabacloud.com/\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/rag-knowledge-base\"},{\"type\":\"url\",\"url\":\"https://modelstudio.console.alibabacloud.com/\"},{\"type\":\"url\",\"url\":\"https://www.youtube.com/watch?v=VKJnpO7MtDQ\"},{\"type\":\"url\",\"url\":\"https://help.aliyun.com/en/model-studio/faq-about-alibaba-cloud-model-studio\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/coding-plan\"},{\"type\":\"url\",\"url\":\"https://www.youtube.com/watch?v=QmB2qxcQx88\"},{\"type\":\"url\",\"url\":\"https://modelstudio.alibabacloud.com/\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/get-api-key\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/qwen-code\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/what-is-model-studio\"},{\"type\":\"url\",\"url\":\"https://qwen.ai/apiplatform\"},{\"type\":\"url\",\"url\":\"https://www.youtube.com/watch?v=QmB2qxcQx88\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/first-api-call-to-qwen\"},{\"type\":\"url\",\"url\":\"https://modelstudio.console.alibabacloud.com/\"},{\"type\":\"url\",\"url\":\"https://help.aliyun.com/en/model-studio/faq-about-alibaba-cloud-model-studio\"},{\"type\":\"url\",\"url\":\"https://www.alibabacloud.com/help/en/model-studio/qwen-omni\"}],\"type\":\"search\",\"queries\":[\"Alibaba Cloud Model Studio official documentation\",\"Alibaba Cloud Model Studio docs Qwen API\"],\"query\":\"Alibaba Cloud Model Studio official documentation\"},\"id\":\"msg_adf1987f-cc97-4158-8029-edcd395e298f\",\"type\":\"web_search_call\",\"status\":\"completed\"},{\"summary\":[{\"type\":\"summary_text\",\"text\":\"Next, I'll use web_extractor on the main documentation page.\"}],\"type\":\"reasoning\",\"id\":\"msg_0e5e6158-ac1e-488d-9c3a-aa886291d667\"},{\"id\":\"msg_3f1e449b-53e2-4b65-87d4-5daf475fc6b7\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"Found the official documentation. Now let me extract the main overview page:\\n\\n\"}],\"status\":\"completed\"},{\"output\":\"The useful information in https://www.alibabacloud.com/help/en/model-studio/what-is-model-studio for user goal Summarize what Alibaba Cloud Model Studio is, its key features, supported models, and main capabilities as described in the official documentation as follows: \\n\\nEvidence in page: \\nAlibaba Cloud Model Studio is a one-stop model service platform. It provides the full Qwen series and mainstream third-party LLMs through official Qwen APIs and OpenAI-compatible APIs, with multimodal support across text, image, and audio/video. Call models on demand — no infrastructure to manage.\\n\\nModel Studio is OpenAI-compatible. Update the API key, base URL, and model name to migrate existing OpenAI code.\\n\\n## Model service\\n\\nModel Studio provides ready-to-use model services, including the proprietary Qwen series and third-party models such as DeepSeek, Kimi, and GLM. See Recommended models.\\n\\n- **Qwen flagship models**:\\n - Qwen-Max: The highest-performing model in the Qwen series, suited for complex, multi-step tasks.\\n\\n > The latest qwen3.8-max delivers significant reasoning improvements over its predecessor. Recommended.\\n\\n - Qwen-Plus: Balances performance, speed, and cost — **recommended** for most scenarios.\\n\\n - Qwen-Flash: Low-cost and low-latency — suited for simple tasks that require fast responses.\\n- **Multimodal coverage**: Includes text generation, visual understanding, image generation, video generation, speech recognition and synthesis, and embedding.\\n\\n- **Domain-specific models**: Models for long-text processing, translation, data mining, intent recognition, role-playing, and deep research.\\n\\n## Billing\\n\\nActivating Model Studio is free. Costs apply only when you invoke models. See Billable items and pricing.\\n\\n- **Model inference** — Models such as deepseek-v3.2-exp and other large language models are billed based on the number of tokens generated. You can use savings plans to offset the cost.\\n\\nSummary: \\nAlibaba Cloud Model Studio is a one-stop, enterprise-grade platform for developing and deploying AI applications. Its main capabilities include providing ready-to-use model services for the proprietary Qwen series and third-party models like DeepSeek, Kimi, and GLM. The supported models cover a wide range of functionalities, including text generation, visual understanding, image and video generation, speech recognition, and embeddings. Key features are its multimodal support, OpenAI-compatible APIs for easy code migration, and pay-as-you-go billing where costs are incurred only when models are invoked.\",\"urls\":[\"https://www.alibabacloud.com/help/en/model-studio/what-is-model-studio\"],\"goal\":\"Summarize what Alibaba Cloud Model Studio is, its key features, supported models, and main capabilities as described in the official documentation\",\"id\":\"msg_49bcd133-dedc-46f9-af2a-1f96a3207e75\",\"type\":\"web_extractor_call\",\"status\":\"completed\"},{\"summary\":[{\"type\":\"summary_text\",\"text\":\"I'll provide a concise summary with source URLs.\"}],\"type\":\"reasoning\",\"id\":\"msg_e79aca97-48e4-4f60-8670-104364d829f1\"},{\"id\":\"msg_dc584c38-be52-459d-a794-da88478ea107\",\"role\":\"assistant\",\"type\":\"message\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"text\":\"## Summary: Alibaba Cloud Model Studio\\n\\n**Source:** https://www.alibabacloud.com/help/en/model-studio/what-is-model-studio\\n\\nAlibaba Cloud Model Studio is a **one-stop model service platform** that provides ready-to-use AI models on demand, with no infrastructure to manage. Key points from the official documentation:\\n\\n**Supported Models:**\\n- The full **Qwen series** (flagship models like Qwen-Max for complex tasks, Qwen-Plus for balanced performance/cost, and Qwen-Flash for low-latency simple tasks)\\n- **Third-party models** including DeepSeek, Kimi, and GLM\\n\\n**Capabilities:**\\n- **Multimodal support**: text generation, visual understanding, image/video generation, speech recognition & synthesis, and embeddings\\n- **Domain-specific models** for long-text processing, translation, data mining, intent recognition, role-playing, and deep research\\n\\n**Key Features:**\\n- **OpenAI-compatible APIs** — you can migrate existing OpenAI code just by changing the API key, base URL, and model name; also supports official Qwen APIs and the DashScope SDK\\n- **Pay-as-you-go billing** — activation is free; you're billed per token on model inference, with savings plans available to offset costs\"}],\"status\":\"completed\"}],\"top_p\":1.0,\"completed_at\":1788837132,\"frequency_penalty\":0.0,\"parallel_tool_calls\":true,\"background\":false,\"temperature\":1.0,\"tool_choice\":\"auto\",\"model\":\"qwen3.8-max\",\"service_tier\":\"default\",\"id\":\"resp_0d0cf4ab-b5af-9c95-a01b-782344f74360\",\"max_output_tokens\":4096,\"object\":\"response\",\"status\":\"completed\"}}\n\n" + } + } + ] +} diff --git a/packages/ai/test/provider-options/alibaba.types.ts b/packages/ai/test/provider-options/alibaba.types.ts new file mode 100644 index 00000000000..966be2c21ef --- /dev/null +++ b/packages/ai/test/provider-options/alibaba.types.ts @@ -0,0 +1,39 @@ +import { LLM } from "../../src/index.js" +import { Alibaba } from "../../src/providers.js" + +const provider = Alibaba.configure({ region: "ap-southeast-1" }) +Alibaba.configure({ baseURL: "https://gateway.example/v1" }) +Alibaba.configure({ region: "eu-central-1", workspaceID: "llm-workspace" }) +LLM.request({ + model: provider.chat("qwen3.8-max"), + providerOptions: { reasoningEffort: "future", enableThinking: true, preserveThinking: false, toolStream: true }, +}) +LLM.request({ + model: provider.messages("qwen3.8-max"), + providerOptions: { effort: "xhigh", thinking: { type: "enabled" } }, +}) +LLM.request({ + model: provider.messages("qwen3.7-plus"), + providerOptions: { thinking: { type: "enabled", budgetTokens: 512 } }, +}) +LLM.request({ + model: provider.responses("qwen3.8-max"), + providerOptions: { reasoningEffort: "low", enableThinking: true, store: true, previousResponseId: "resp_previous" }, +}) +// @ts-expect-error Region or complete base URL is required. +Alibaba.configure({ apiKey: "fixture" }) +LLM.request({ + model: provider.chat("qwen3.8-max"), + // @ts-expect-error Thinking toggle is a boolean. + providerOptions: { enableThinking: "true" }, +}) +LLM.request({ + model: provider.messages("qwen3.8-max"), + // @ts-expect-error Messages uses effort. + providerOptions: { reasoningEffort: "high" }, +}) +LLM.request({ + model: provider.responses("qwen3.8-max"), + // @ts-expect-error Responses does not use Chat thinking budgets. + providerOptions: { thinkingBudget: 512 }, +}) diff --git a/packages/ai/test/provider-package.test.ts b/packages/ai/test/provider-package.test.ts index 0de087ea7e7..fb830de244d 100644 --- a/packages/ai/test/provider-package.test.ts +++ b/packages/ai/test/provider-package.test.ts @@ -51,6 +51,10 @@ describe("provider package entrypoints", () => { import("@opencode/ai/providers/zai-coding-plan/chat"), import("@opencode/ai/providers/zai-coding-plan/messages"), import("@opencode/ai/providers/zai-coding-plan/responses"), + import("@opencode/ai/providers/alibaba"), + import("@opencode/ai/providers/alibaba/chat"), + import("@opencode/ai/providers/alibaba/messages"), + import("@opencode/ai/providers/alibaba/responses"), ]) for (const module of modules) expect(module.model).toBeFunction() @@ -61,6 +65,34 @@ describe("provider package entrypoints", () => { expect(modules[19].model).not.toBe(modules[20].model) }) + test("maps Alibaba API entrypoints onto explicit regional routes", async () => { + const modules = await Promise.all([ + import("@opencode/ai/providers/alibaba"), + import("@opencode/ai/providers/alibaba/chat"), + import("@opencode/ai/providers/alibaba/messages"), + import("@opencode/ai/providers/alibaba/responses"), + ]) + expect(modules[0].model).toBe(modules[1].model) + const settings = { + region: "eu-central-1", + workspaceID: "llm-fixture", + apiKey: "fixture", + headers: { "x-test": "fixture" }, + body: { extension: true }, + } + const routes = ["alibaba-chat", "alibaba-chat", "alibaba-messages", "alibaba-responses"] + modules.forEach((module, index) => { + const model = module.model("qwen3.8-max", settings) + expect(model.provider).toBe("alibaba") + expect(model.route.id).toBe(routes[index]) + expect(model.route.endpoint.baseURL).toBe( + `https://llm-fixture.eu-central-1.maas.aliyuncs.com/${index === 2 ? "apps/anthropic/v1" : "compatible-mode/v1"}`, + ) + expect(model.route.defaults.headers).toEqual(settings.headers) + expect(model.route.defaults.http?.body).toEqual(settings.body) + }) + }) + test("maps Moonshot API entrypoints onto provider-owned routes", async () => { const modules = await Promise.all([ import("@opencode/ai/providers/moonshot"), diff --git a/packages/ai/test/provider/alibaba-capabilities.recorded.test.ts b/packages/ai/test/provider/alibaba-capabilities.recorded.test.ts new file mode 100644 index 00000000000..e99fc25d104 --- /dev/null +++ b/packages/ai/test/provider/alibaba-capabilities.recorded.test.ts @@ -0,0 +1,254 @@ +import { describe, expect } from "bun:test" +import { Effect } from "effect" +import { LLM, LLMEvent, LLMRequest, Message, ToolDefinition } from "../../src/index.js" +import { Alibaba } from "../../src/providers.js" +import { LLMClient } from "../../src/route.js" +import { compileRequest } from "../../src/route/client.js" +import { recordedTests } from "../recorded-test.js" + +const alibaba = Alibaba.configure({ region: "ap-southeast-1", apiKey: process.env.ALIBABA_API_KEY ?? "fixture" }) +const record = (api: "chat" | "messages" | "responses") => + recordedTests({ + prefix: `alibaba-${api}`, + provider: "alibaba", + protocol: `alibaba-${api}`, + requires: ["ALIBABA_API_KEY"], + tags: ["region:ap-southeast-1"], + }) + +for (const api of ["chat", "messages", "responses"] as const) { + const recorded = record(api) + describe(`Alibaba ${api} capabilities`, () => { + for (const enabled of [false, true]) { + recorded.effect.with( + `Qwen 3.7 Plus streams thinking ${enabled ? "enabled" : "disabled"}`, + { tags: ["thinking", "usage"] }, + () => + Effect.gen(function* () { + const request = LLM.request({ + model: alibaba[api]("qwen3.7-plus"), + providerOptions: + api === "messages" + ? { thinking: { type: enabled ? "enabled" : "disabled", ...(enabled ? { budgetTokens: 1024 } : {}) } } + : api === "chat" + ? { enableThinking: enabled, ...(enabled ? { thinkingBudget: 1024 } : {}) } + : { enableThinking: enabled }, + prompt: "What is 173 multiplied by 219? Reply with only the final integer.", + generation: { maxTokens: 4096 }, + }) + const compiled = yield* compileRequest(request) + expect(api === "messages" ? compiled.body.thinking.type : compiled.body.enable_thinking).toBe( + api === "messages" ? (enabled ? "enabled" : "disabled") : enabled, + ) + const response = yield* LLMClient.generate(request) + expect(response.text.replaceAll(",", "")).toContain("37887") + expect(response.reasoning.length > 0).toBe(enabled) + expect(response.finishReason.normalized).toBe("stop") + expect(response.usage?.inputTokens).toBeGreaterThan(0) + expect(response.usage?.outputTokens).toBeGreaterThan(0) + }), + 120_000, + ) + } + recorded.effect.with( + "Qwen 3.8 Flash reads image bytes", + { tags: ["image"] }, + () => + Effect.gen(function* () { + const bytes = yield* Effect.promise(() => + Bun.file(new URL("../fixtures/media/restroom.png", import.meta.url)).bytes(), + ) + const response = yield* LLMClient.generate( + LLM.request({ + model: alibaba[api]("qwen3.8-flash"), + providerOptions: api === "messages" ? { thinking: { type: "disabled" } } : { enableThinking: false }, + messages: [ + Message.user([ + { type: "text", text: "Read the three words in this image. Reply with only the words in order." }, + { type: "media", mediaType: "image/png", data: bytes }, + ]), + ], + generation: { maxTokens: 4096 }, + }), + ) + expect(response.text.toLowerCase()).toContain("jiggling restroom prison") + expect(response.finishReason.normalized).toBe("stop") + }), + 120_000, + ) + recorded.effect.with( + "Qwen 3.8 Max obeys named tool choice", + { tags: ["tool", "tool-choice"] }, + () => + Effect.gen(function* () { + const response = yield* LLMClient.generate( + LLM.request({ + model: alibaba[api]("qwen3.8-max"), + prompt: "Find the current weather in Paris.", + providerOptions: api === "messages" ? { thinking: { type: "disabled" } } : { reasoningEffort: "none" }, + tools: [ + ToolDefinition.make({ + name: "get_weather", + description: "Get weather in a city", + inputSchema: { + type: "object", + properties: { city: { type: "string", enum: ["Paris"] } }, + required: ["city"], + }, + }), + ], + toolChoice: { type: "tool", name: "get_weather" }, + generation: { maxTokens: 4096 }, + }), + ) + expect(response.toolCalls).toMatchObject([{ name: "get_weather", input: { city: "Paris" } }]) + expect(response.finishReason.normalized).toBe(api === "messages" ? "stop" : "tool-calls") + if (api === "messages") expect(response.finishReason.raw).toBe("end_turn") + }), + 120_000, + ) + }) +} + +record("chat").effect.with( + "Qwen 3.8 Max returns a JSON object", + { tags: ["structured-output"] }, + () => + Effect.gen(function* () { + const response = yield* LLMClient.generate( + LLM.request({ + model: alibaba.chat("qwen3.8-max"), + prompt: 'Return a JSON object with one key "city" set to the capital city of France.', + providerOptions: { reasoningEffort: "none", responseFormat: { type: "json_object" } }, + generation: { maxTokens: 1024 }, + }), + ) + expect(JSON.parse(response.text)).toEqual({ city: "Paris" }) + expect(response.finishReason.normalized).toBe("stop") + }), + 120_000, +) + +record("messages").effect.with( + "Qwen 3.8 Max follows a JSON schema", + { tags: ["structured-output"] }, + () => + Effect.gen(function* () { + const response = yield* LLMClient.generate( + LLM.request({ + model: alibaba.messages("qwen3.8-max"), + prompt: 'Return a JSON object with one key "city" set to the capital city of France.', + providerOptions: { + thinking: { type: "disabled" }, + outputConfig: { + format: { + type: "json_schema", + schema: { + type: "object", + properties: { city: { type: "string" } }, + required: ["city"], + additionalProperties: false, + }, + }, + }, + }, + generation: { maxTokens: 1024 }, + }), + ) + expect(JSON.parse(response.text)).toEqual({ city: "Paris" }) + expect(response.finishReason.normalized).toBe("stop") + }), + 120_000, +) + +const responses = record("responses") +responses.effect.with( + "Qwen 3.8 Max continues a stored response", + { tags: ["continuation", "storage"] }, + () => + Effect.gen(function* () { + const first = yield* LLMClient.generate( + LLM.request({ + model: alibaba.responses("qwen3.8-max"), + prompt: "Remember the password word apricot. Reply OK.", + providerOptions: { store: true, reasoningEffort: "none" }, + generation: { maxTokens: 1024 }, + }), + ) + const id = first.events.find(LLMEvent.is.finish)?.providerMetadata?.alibaba?.responseId + expect(id).toBeString() + if (typeof id !== "string") throw new Error("Missing Alibaba response ID") + const second = yield* LLMClient.generate( + LLM.request({ + model: alibaba.responses("qwen3.8-max"), + prompt: "What word did I ask you to remember? Reply with only the word.", + providerOptions: { previousResponseId: id, store: true, reasoningEffort: "none" }, + generation: { maxTokens: 1024 }, + }), + ) + expect(second.text.toLowerCase()).toContain("apricot") + expect(second.finishReason.normalized).toBe("stop") + }), + 120_000, +) + +responses.effect.with( + "Qwen 3.8 Max uses hosted web search and extraction", + { tags: ["hosted-tool", "web-search", "web-extractor"] }, + () => + Effect.gen(function* () { + const request = LLM.request({ + model: alibaba.responses("qwen3.8-max"), + prompt: + "Use web search to find Alibaba Cloud Model Studio's official documentation, then use web_extractor to read the page. Give a brief summary with the source URL.", + tools: [Alibaba.webSearch(), Alibaba.webExtractor()], + providerOptions: { reasoningEffort: "low", store: false }, + generation: { maxTokens: 4096 }, + }) + const response = yield* LLMClient.generate(request) + expect(response.toolCalls).toEqual( + expect.arrayContaining([ + expect.objectContaining({ name: "web_search", providerExecuted: true }), + expect.objectContaining({ name: "web_extractor", providerExecuted: true }), + ]), + ) + expect(response.text.toLowerCase()).toContain("alibaba") + expect(response.events.some(LLMEvent.is.toolResult)).toBe(true) + const replay = yield* compileRequest( + LLMRequest.update(request, { + messages: [...request.messages, response.message, Message.user("Summarize in one sentence.")], + }), + ) + expect(replay.body.input).toEqual( + expect.arrayContaining([ + expect.objectContaining({ type: "web_search_call" }), + expect.objectContaining({ type: "web_extractor_call" }), + ]), + ) + }), + 180_000, +) + +responses.effect.with( + "Qwen 3.8 Max uses hosted code interpreter", + { tags: ["hosted-tool", "code-interpreter"] }, + () => + Effect.gen(function* () { + const response = yield* LLMClient.generate( + LLM.request({ + model: alibaba.responses("qwen3.8-max"), + prompt: + "Use the code interpreter to compute the SHA-256 hash of the UTF-8 string hello (no newline). Reply with only the hash.", + tools: [Alibaba.codeInterpreter()], + providerOptions: { reasoningEffort: "low" }, + generation: { maxTokens: 4096 }, + }), + ) + expect(response.toolCalls).toEqual( + expect.arrayContaining([expect.objectContaining({ name: "code_interpreter", providerExecuted: true })]), + ) + expect(response.text).toContain("2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824") + expect(response.events.some(LLMEvent.is.toolResult)).toBe(true) + }), + 180_000, +) diff --git a/packages/ai/test/provider/alibaba.recorded.test.ts b/packages/ai/test/provider/alibaba.recorded.test.ts new file mode 100644 index 00000000000..60e9d7f04d5 --- /dev/null +++ b/packages/ai/test/provider/alibaba.recorded.test.ts @@ -0,0 +1,163 @@ +import { describe, expect } from "bun:test" +import { Effect } from "effect" +import { LLM, LLMEvent, LLMRequest, Message, ToolDefinition, type LLMResponse } from "../../src/index.js" +import { Alibaba } from "../../src/providers.js" +import { LLMClient } from "../../src/route.js" +import { compileRequest } from "../../src/route/client.js" +import { recordedTests } from "../recorded-test.js" + +const alibaba = Alibaba.configure({ region: "ap-southeast-1", apiKey: process.env.ALIBABA_API_KEY ?? "fixture" }) +const weather = ToolDefinition.make({ + name: "get_weather", + description: "Get the current weather in a city", + inputSchema: { + type: "object", + properties: { city: { type: "string", enum: ["Paris"] } }, + required: ["city"], + additionalProperties: false, + }, +}) + +for (const api of ["chat", "messages", "responses"] as const) { + const recorded = recordedTests({ + prefix: `alibaba-${api}`, + provider: "alibaba", + protocol: `alibaba-${api}`, + requires: ["ALIBABA_API_KEY"], + tags: ["region:ap-southeast-1"], + }) + describe(`Alibaba ${api}`, () => { + for (const effort of api === "messages" + ? [undefined, "low", "medium", "high", "xhigh", "max"] + : [undefined, "none", "minimal", "low", "medium", "high", "xhigh", "max"]) { + recorded.effect.with( + `Qwen 3.8 Max streams ${effort ?? "default"} effort`, + { tags: ["text", "reasoning", "usage"] }, + () => + Effect.gen(function* () { + const request = LLM.request({ + model: alibaba[api]("qwen3.8-max"), + prompt: "What is 173 multiplied by 219? Reply with only the final integer.", + providerOptions: api === "messages" ? { effort } : { reasoningEffort: effort }, + generation: { maxTokens: 4096 }, + }) + const compiled = yield* compileRequest(request) + expect(compiled.body.enable_thinking).toBeUndefined() + expect(compiled.body.thinking).toBeUndefined() + expect( + api === "chat" + ? compiled.body.reasoning_effort + : api === "messages" + ? compiled.body.output_config?.effort + : compiled.body.reasoning?.effort, + ).toBe(effort) + const response = yield* LLMClient.generate(request) + expect(response.text.replaceAll(",", "")).toContain("37887") + expect(response.reasoning.length > 0).toBe(effort !== "none") + expect(response.finishReason.normalized).toBe("stop") + expectUsage(response) + }), + 120_000, + ) + } + + recorded.effect.with( + "Qwen 3.8 Max replays reasoning through a tool loop and follow-up", + { tags: ["tool", "tool-loop", "reasoning", "continuation"] }, + () => + Effect.gen(function* () { + const request = LLM.request({ + model: alibaba[api]("qwen3.8-max"), + providerOptions: + api === "messages" + ? { effort: "medium" } + : api === "chat" + ? { reasoningEffort: "medium", preserveThinking: true, toolStream: true } + : { reasoningEffort: "medium", store: false }, + prompt: + "We have a budget of 38000 dollars for 219 trips costing 173 dollars each. Calculate whether that is affordable. If it is, use get_weather to look up the current weather in Paris. After receiving the result, report the weather in one short sentence.", + tools: [weather], + generation: { maxTokens: 4096 }, + }) + const first = yield* LLMClient.generate(request) + expect(first.toolCalls).toMatchObject([{ name: "get_weather", input: { city: "Paris" } }]) + expect(first.finishReason.normalized).toBe("tool-calls") + expect(first.reasoning.length).toBeGreaterThan(0) + expect(first.events.some(LLMEvent.is.toolInputDelta)).toBe(true) + expectUsage(first) + const continuation = LLMRequest.update(request, { + messages: [ + ...request.messages, + first.message, + ...first.toolCalls.map((call) => + Message.tool({ id: call.id, name: call.name, result: { condition: "sunny", temperature: "18C" } }), + ), + ], + }) + expectReasoning(api, (yield* compileRequest(continuation)).body, first) + const second = yield* LLMClient.generate(continuation) + expect(second.text.toLowerCase()).toContain("sunny") + expect(second.toolCalls).toHaveLength(0) + expect(second.finishReason.normalized).toBe("stop") + expectUsage(second) + const followUp = LLMRequest.update(continuation, { + messages: [ + ...continuation.messages, + second.message, + Message.user("What temperature did the tool report? Reply with only the temperature."), + ], + }) + expectReasoning(api, (yield* compileRequest(followUp)).body, first) + const third = yield* LLMClient.generate(followUp) + expect(third.text).toContain("18") + expect(third.toolCalls).toHaveLength(0) + expect(third.finishReason.normalized).toBe("stop") + expectUsage(third) + }), + 180_000, + ) + }) +} + +function expectUsage(response: LLMResponse) { + expect(response.usage?.inputTokens).toBeGreaterThan(0) + expect(response.usage?.outputTokens).toBeGreaterThan(0) + expect(response.events.filter(LLMEvent.is.finish)).toHaveLength(1) +} + +function expectReasoning( + api: "chat" | "messages" | "responses", + body: Readonly>, + response: LLMResponse, +) { + if (api === "chat") { + expect(body.messages).toEqual( + expect.arrayContaining([expect.objectContaining({ role: "assistant", reasoning_content: response.reasoning })]), + ) + return + } + for (const part of response.message.content.filter((part) => part.type === "reasoning")) { + if (api === "messages") { + expect(body.messages).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + role: "assistant", + content: expect.arrayContaining([ + { type: "thinking", thinking: part.text, signature: part.providerMetadata?.alibaba?.signature ?? "" }, + ]), + }), + ]), + ) + continue + } + expect(body.input).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + type: "reasoning", + id: part.providerMetadata?.alibaba?.itemId, + summary: expect.arrayContaining([{ type: "summary_text", text: part.text }]), + }), + ]), + ) + } +} diff --git a/packages/ai/test/provider/alibaba.test.ts b/packages/ai/test/provider/alibaba.test.ts new file mode 100644 index 00000000000..5823f980e0d --- /dev/null +++ b/packages/ai/test/provider/alibaba.test.ts @@ -0,0 +1,376 @@ +import { expect, test } from "bun:test" +import { ConfigProvider, Effect } from "effect" +import { Headers } from "effect/unstable/http" +import { Auth, LLM, LLMClient, LLMRequest, Message, ReasoningPart, ToolDefinition } from "../../src/index.js" +import { Alibaba } from "../../src/providers.js" +import { compileRequest } from "../../src/route/client.js" +import { Endpoint } from "../../src/route/endpoint.js" +import { it } from "../lib/effect.js" +import { dynamicResponse } from "../lib/http.js" +import { sseEvents } from "../lib/sse.js" + +const tool = ToolDefinition.make({ + name: "lookup", + description: "Look up a value", + inputSchema: { type: "object", properties: { key: { type: "string" } } }, +}) +const paths = { + chat: "/compatible-mode/v1/chat/completions", + messages: "/apps/anthropic/v1/messages", + responses: "/compatible-mode/v1/responses", +} + +it.effect("Alibaba owns regional shared and workspace-specific endpoints", () => + Effect.gen(function* () { + for (const region of [ + "ap-southeast-1", + "cn-beijing", + "cn-hongkong", + "us-east-1", + "eu-central-1", + "ap-northeast-1", + ]) { + const provider = Alibaba.configure({ region, workspaceID: "llm-fixture", apiKey: "fixture" }) + expect(provider.model).toBe(provider.chat) + for (const api of ["chat", "messages", "responses"] as const) { + const model = provider[api]("qwen-plus-us") + const request = LLM.request({ model, prompt: "Hello" }) + const compiled = yield* compileRequest(request) + expect(Endpoint.render(model.route.endpoint, { request, body: compiled.body }).toString()).toBe( + `https://llm-fixture.${region}.maas.aliyuncs.com${paths[api]}`, + ) + expect(model.provider).toBe("alibaba") + expect(model.route.id).toBe(`alibaba-${api}`) + expect(compiled.body.model).toBe("qwen-plus-us") + for (const field of [ + "thinking", + "enable_thinking", + "thinking_budget", + "preserve_thinking", + "reasoning_effort", + "reasoning", + "output_config", + "store", + "tool_stream", + ]) + expect(compiled.body[field]).toBeUndefined() + } + } + for (const [region, host] of [ + ["ap-southeast-1", "dashscope-intl.aliyuncs.com"], + ["cn-beijing", "dashscope.aliyuncs.com"], + ["cn-hongkong", "cn-hongkong.dashscope.aliyuncs.com"], + ["us-east-1", "dashscope-us.aliyuncs.com"], + ]) { + const provider = Alibaba.configure({ region, apiKey: "fixture" }) + for (const api of ["chat", "messages", "responses"] as const) { + const request = LLM.request({ model: provider[api]("qwen3.8-max") }) + const compiled = yield* compileRequest(request) + expect(Endpoint.render(request.model.route.endpoint, { request, body: compiled.body }).toString()).toBe( + `https://${host}${paths[api]}`, + ) + } + } + }), +) + +test("Alibaba requires explicit placement and supports complete base URL overrides", () => { + for (const region of ["eu-central-1", "ap-northeast-1", "future-region"]) + expect(() => Alibaba.configure({ region })).toThrow("requires workspaceID or baseURL") + for (const config of [ + { baseURL: "https://gateway.example/prefix" }, + { region: "future-region", workspaceID: "ignored", baseURL: "https://gateway.example/prefix" }, + ]) { + const provider = Alibaba.configure(config) + for (const api of ["chat", "messages", "responses"] as const) + expect(provider[api]("unchanged-id").route.endpoint.baseURL).toBe(config.baseURL) + } + expect( + Alibaba.configure({ region: "future-region", workspaceID: "llm-fixture" }).chat("new-model").route.endpoint.baseURL, + ).toBe("https://llm-fixture.future-region.maas.aliyuncs.com/compatible-mode/v1") +}) + +it.effect("Alibaba resolves explicit auth, API keys, and regional environment credentials", () => + Effect.gen(function* () { + for (const item of [ + { + config: {}, + env: { DASHSCOPE_API_KEY: "primary", ALIBABA_API_KEY: "fallback" }, + headers: { authorization: "Bearer primary" }, + }, + { config: {}, env: { ALIBABA_API_KEY: "fallback" }, headers: { authorization: "Bearer fallback" } }, + { + config: { apiKey: "explicit" }, + env: { DASHSCOPE_API_KEY: "primary" }, + headers: { authorization: "Bearer explicit" }, + }, + { + config: { auth: Auth.header("x-custom-key", "custom") }, + env: { DASHSCOPE_API_KEY: "primary" }, + headers: { "x-custom-key": "custom" }, + }, + ]) { + const provider = Alibaba.configure({ region: "ap-southeast-1", ...item.config }) + for (const api of ["chat", "messages", "responses"] as const) { + const request = LLM.request({ model: provider[api]("qwen3.8-max") }) + const headers = yield* request.model.route.auth + .apply({ request, method: "POST", url: "https://fixture", body: "{}", headers: Headers.empty }) + .pipe(Effect.provide(ConfigProvider.layer(ConfigProvider.fromEnv({ env: item.env })))) + expect(headers).toEqual(expect.objectContaining(item.headers)) + } + } + }), +) + +it.effect("Alibaba keeps native reasoning controls and future efforts on their selected API", () => + Effect.gen(function* () { + const provider = Alibaba.configure({ region: "ap-southeast-1", apiKey: "fixture" }) + for (const effort of ["none", "minimal", "low", "medium", "high", "xhigh", "max", "future-effort"]) { + const chat = yield* compileRequest( + LLM.request({ model: provider.chat("qwen3.8-max"), providerOptions: { reasoningEffort: effort } }), + ) + const messages = yield* compileRequest( + LLM.request({ model: provider.messages("qwen3.8-max"), providerOptions: { effort } }), + ) + const responses = yield* compileRequest( + LLM.request({ model: provider.responses("qwen3.8-max"), providerOptions: { reasoningEffort: effort } }), + ) + expect(chat.body.reasoning_effort).toBe(effort) + expect(messages.body.output_config).toEqual({ effort }) + expect(responses.body.reasoning).toEqual({ effort }) + for (const result of [chat, messages, responses]) { + expect(result.body.thinking).toBeUndefined() + expect(result.body.enable_thinking).toBeUndefined() + } + } + for (const enableThinking of [true, false]) { + const chat = yield* compileRequest( + LLM.request({ + model: provider.chat("qwen3.7-plus"), + tools: [tool], + generation: { maxTokens: 1234, topK: 20 }, + providerOptions: { + enableThinking, + thinkingBudget: 512, + preserveThinking: false, + clearThinking: false, + toolStream: false, + parallelToolCalls: false, + repetitionPenalty: 1.1, + responseFormat: { type: "json_object" }, + enableSearch: true, + searchOptions: { forced_search: true, search_strategy: "future-strategy", enable_search_extension: false }, + }, + }), + ) + expect(chat.body).toMatchObject({ + enable_thinking: enableThinking, + thinking_budget: 512, + preserve_thinking: false, + clear_thinking: false, + tool_stream: false, + parallel_tool_calls: false, + repetition_penalty: 1.1, + max_completion_tokens: 1234, + top_k: 20, + response_format: { type: "json_object" }, + enable_search: true, + search_options: { forced_search: true, search_strategy: "future-strategy", enable_search_extension: false }, + }) + expect(chat.body.max_tokens).toBeUndefined() + expect(chat.body.tools).toEqual([ + expect.objectContaining({ function: expect.not.objectContaining({ strict: expect.anything() }) }), + ]) + const responses = yield* compileRequest( + LLM.request({ + model: provider.responses("qwen3.7-plus"), + providerOptions: { enableThinking, store: false, previousResponseId: "resp_previous" }, + }), + ) + expect(responses.body).toMatchObject({ + enable_thinking: enableThinking, + store: false, + previous_response_id: "resp_previous", + }) + } + for (const thinking of [ + { type: "enabled" }, + { type: "disabled" }, + { type: "enabled", budgetTokens: 512 }, + { type: "future", budget_tokens: 4096 }, + ]) { + const messages = yield* compileRequest( + LLM.request({ model: provider.messages("qwen3.7-plus"), providerOptions: { thinking } }), + ) + expect(messages.body.thinking).toEqual({ + type: thinking.type, + budget_tokens: thinking.budgetTokens ?? thinking.budget_tokens, + }) + } + }), +) + +it.effect("Alibaba validates malformed options before execution", () => + Effect.gen(function* () { + const provider = Alibaba.configure({ region: "ap-southeast-1", apiKey: "fixture" }) + for (const [api, providerOptions] of [ + ["chat", { preserveThinking: "false" }], + ["messages", { thinking: { type: "enabled", budgetTokens: "512" } }], + ["responses", { enableThinking: "false" }], + ] as const) { + const model = provider[api]("qwen3.8-max").route.with({ providerOptions }).model({ id: "qwen3.8-max" }) + const error = yield* compileRequest(LLM.request({ model })).pipe(Effect.flip) + expect(error.reason._tag).toBe("InvalidRequest") + } + }), +) + +it.effect("Alibaba preserves unsigned and signed Messages thinking without a budget requirement", () => + Effect.gen(function* () { + const result = yield* compileRequest( + LLM.request({ + model: Alibaba.configure({ region: "ap-southeast-1", apiKey: "fixture" }).messages("qwen3.8-max"), + providerOptions: { thinking: { type: "enabled" }, effort: "low" }, + messages: [ + Message.user("Hello"), + Message.assistant([ + ReasoningPart.make({ type: "reasoning", text: "unsigned" }), + ReasoningPart.make({ + type: "reasoning", + text: "signed", + providerMetadata: { alibaba: { signature: "opaque" } }, + }), + ]), + ], + }), + ) + expect(result.body.thinking).toEqual({ type: "enabled" }) + expect(result.body.messages).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + role: "assistant", + content: [ + { type: "thinking", thinking: "unsigned", signature: "" }, + { type: "thinking", thinking: "signed", signature: "opaque" }, + ], + }), + ]), + ) + }), +) + +it.effect("Alibaba serializes Messages configuration, per-request controls, and final HTTP overlays", () => + LLMClient.generate( + LLM.request({ + model: Alibaba.configure({ + baseURL: "https://gateway.example/v1", + apiKey: "fixture", + providerOptions: { thinking: { type: "enabled", budgetTokens: 512 }, effort: "high" }, + }).messages("qwen3.8-max"), + prompt: "Hello", + providerOptions: { effort: "low" }, + http: { body: { output_config: { effort: "medium" }, extension: true } }, + }), + ).pipe( + Effect.provide( + dynamicResponse((input) => + Effect.sync(() => { + expect(input.request.url).toBe("https://gateway.example/v1/messages") + expect(input.request.headers.authorization).toBe("Bearer fixture") + expect(input.request.headers["anthropic-version"]).toBe("2023-06-01") + expect(JSON.parse(input.text)).toMatchObject({ + thinking: { type: "enabled", budget_tokens: 512 }, + output_config: { effort: "medium" }, + extension: true, + }) + return input.respond( + sseEvents( + { + type: "message_start", + message: { id: "msg_fixture", content: [], usage: { input_tokens: 1, output_tokens: 0 } }, + }, + { type: "message_delta", delta: { stop_reason: "end_turn" }, usage: { output_tokens: 1 } }, + { type: "message_stop" }, + ), + { headers: { "content-type": "text/event-stream" } }, + ) + }), + ), + ), + ), +) + +it.effect("Alibaba Responses lowers hosted tools and named selection using HTTP even with a WebSocket executor", () => + Effect.gen(function* () { + const request = LLM.request({ + model: Alibaba.configure({ region: "ap-southeast-1", apiKey: "fixture" }).responses("qwen3.8-max"), + tools: [Alibaba.webSearch(), Alibaba.webExtractor(), Alibaba.codeInterpreter(), tool], + prompt: "Hello", + }) + const compiled = yield* compileRequest(request) + expect(compiled.body.tools).toMatchObject([ + { type: "web_search" }, + { type: "web_extractor" }, + { type: "code_interpreter" }, + { type: "function", name: "lookup" }, + ]) + const named = yield* compileRequest( + LLMRequest.update(request, { tools: [tool], toolChoice: { type: "tool", name: "lookup" } }), + ) + expect(named.body.tool_choice).toEqual({ + type: "allowed_tools", + mode: "required", + tools: [{ type: "function", name: "lookup" }], + }) + const response = yield* LLMClient.generate(request, { + webSocket: { execute: () => Effect.die("Unexpected WebSocket") }, + }) + expect(response.toolCalls).toMatchObject([ + { + name: "web_extractor", + providerExecuted: true, + input: { urls: ["https://example.com"], goal: "Read the page" }, + }, + ]) + const replay = yield* compileRequest( + LLMRequest.update(request, { messages: [...request.messages, response.message, Message.user("Continue")] }), + ) + expect(replay.body.input).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + type: "web_extractor_call", + id: "extract_1", + urls: ["https://example.com"], + goal: "Read the page", + result: { text: "fixture" }, + }), + ]), + ) + }).pipe( + Effect.provide( + dynamicResponse((input) => + Effect.sync(() => { + expect(input.request.url).toBe("https://dashscope-intl.aliyuncs.com/compatible-mode/v1/responses") + return input.respond( + sseEvents( + { + type: "response.output_item.done", + output_index: 0, + item: { + type: "web_extractor_call", + id: "extract_1", + status: "completed", + urls: ["https://example.com"], + goal: "Read the page", + result: { text: "fixture" }, + }, + }, + { type: "response.completed", response: {} }, + ), + { headers: { "content-type": "text/event-stream" } }, + ) + }), + ), + ), + ), +)