@opencode/ai 0.0.0-dev-21259 → 0.0.0-dev-21266

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -562,7 +562,6 @@ const detectSupportsStore = (provider, baseURL) => {
562
562
  url.includes(".cognitiveservices.azure.com") ||
563
563
  url.includes(".services.ai.azure.com"));
564
564
  };
565
- const detectSupportsUsageInStreaming = () => true;
566
565
  const detectSupportsStrictMode = (provider, baseURL) => {
567
566
  const p = provider.toLowerCase();
568
567
  const url = (baseURL ?? "").toLowerCase();
@@ -613,7 +612,6 @@ export const fromRequest = Effect.fn("OpenAIChat.fromRequest")(function* (reques
613
612
  const detectedMaxTokensField = detectMaxTokensField(provider, baseURL);
614
613
  const maxTokensField = request.model.compatibility?.maxTokensField ?? detectedMaxTokensField;
615
614
  const supportsStore = request.model.compatibility?.supportsStore ?? detectSupportsStore(provider, baseURL);
616
- const supportsUsageInStreaming = request.model.compatibility?.supportsUsageInStreaming ?? detectSupportsUsageInStreaming();
617
615
  const supportsStrictMode = request.model.compatibility?.supportsStrictMode ?? detectSupportsStrictMode(provider, baseURL);
618
616
  const zaiToolStream = request.model.compatibility?.zaiToolStream ?? detectZaiToolStream(provider, baseURL, request.model.id);
619
617
  const hasHistory = hasToolHistory(request.messages);
@@ -629,7 +627,7 @@ export const fromRequest = Effect.fn("OpenAIChat.fromRequest")(function* (reques
629
627
  : flattened.tools.map((tool) => lowerTool(tool, lowering, supportsStrictMode)),
630
628
  tool_choice: hasActiveTools && request.toolChoice ? yield* lowerToolChoice(request.toolChoice) : undefined,
631
629
  stream: true,
632
- ...(supportsUsageInStreaming ? { stream_options: { include_usage: true } } : {}),
630
+ ...((request.model.compatibility?.streamUsage ?? true) ? { stream_options: { include_usage: true } } : {}),
633
631
  ...(zaiToolStream && hasActiveTools ? { tool_stream: true } : {}),
634
632
  ...(maxTokensField === "max_completion_tokens"
635
633
  ? { max_completion_tokens: generation?.maxTokens }
@@ -28,7 +28,6 @@ export const configure = (input = {}) => {
28
28
  id: modelID,
29
29
  compatibility: {
30
30
  maxTokensField: "max_tokens",
31
- supportsUsageInStreaming: true,
32
31
  reasoningField: "reasoning_content",
33
32
  supportsStrictMode: false,
34
33
  },
@@ -110,7 +110,8 @@ declare const LanguageModelCompatibility_base: Schema.Class<LanguageModelCompati
110
110
  readonly requireFinishReason: Schema.optional<Schema.Boolean>;
111
111
  readonly requireAssistantAfterTool: Schema.optional<Schema.Boolean>;
112
112
  readonly supportsStore: Schema.optional<Schema.Boolean>;
113
- readonly supportsUsageInStreaming: Schema.optional<Schema.Boolean>;
113
+ /** Request usage in the stream with `stream_options.include_usage`. Defaults to true. */
114
+ readonly streamUsage: Schema.optional<Schema.Boolean>;
114
115
  readonly supportsStrictMode: Schema.optional<Schema.Boolean>;
115
116
  readonly supportsPromptCacheKey: Schema.optional<Schema.Boolean>;
116
117
  /** Prompt-cache marker syntax the endpoint accepts. Overrides the route default; both send `cache_control`, and `alibaba` skips tool definitions. */
@@ -145,7 +145,8 @@ export class LanguageModelCompatibility extends Schema.Class("LLM.LanguageModelC
145
145
  requireFinishReason: Schema.optional(Schema.Boolean),
146
146
  requireAssistantAfterTool: Schema.optional(Schema.Boolean),
147
147
  supportsStore: Schema.optional(Schema.Boolean),
148
- supportsUsageInStreaming: Schema.optional(Schema.Boolean),
148
+ /** Request usage in the stream with `stream_options.include_usage`. Defaults to true. */
149
+ streamUsage: Schema.optional(Schema.Boolean),
149
150
  supportsStrictMode: Schema.optional(Schema.Boolean),
150
151
  // Accepts `prompt_cache_key` in the request body. Chat omits the key unless
151
152
  // this is true; other protocols omit it only when this is false.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
- "version": "0.0.0-dev-21259",
3
+ "version": "0.0.0-dev-21266",
4
4
  "name": "@opencode/ai",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -34,7 +34,7 @@
34
34
  "devDependencies": {
35
35
  "@clack/prompts": "1.0.0-alpha.1",
36
36
  "@effect/platform-node": "4.0.1",
37
- "@opencode/http-recorder": "0.0.0-dev-21259",
37
+ "@opencode/http-recorder": "0.0.0-dev-21266",
38
38
  "@tsconfig/bun": "1.0.9",
39
39
  "@types/bun": "1.4.0",
40
40
  "@typescript/native": "npm:typescript@7.0.2",
@@ -44,7 +44,7 @@
44
44
  "@aws-sdk/credential-providers": "3.1057.0",
45
45
  "@smithy/eventstream-codec": "4.2.14",
46
46
  "@smithy/util-utf8": "4.2.2",
47
- "@opencode/schema": "0.0.0-dev-21259",
47
+ "@opencode/schema": "0.0.0-dev-21266",
48
48
  "aws4fetch": "1.0.20",
49
49
  "effect": "4.0.1",
50
50
  "google-auth-library": "10.5.0"