@opencode/ai 2.0.24 → 2.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/protocols/anthropic-messages.d.ts +5 -5
- package/dist/protocols/anthropic-messages.js +10 -7
- package/dist/protocols/bedrock-converse.js +3 -1
- package/dist/protocols/google-interactions.d.ts +1 -1
- package/dist/protocols/meta-messages.d.ts +1 -1
- package/dist/protocols/open-responses.js +2 -0
- package/dist/protocols/utils/bedrock-auth.js +2 -1
- package/dist/protocols/utils/openai-options.d.ts +1 -1
- package/dist/protocols/utils/openai-options.js +2 -1
- package/dist/protocols/utils/tool-stream.d.ts +1 -1
- package/dist/protocols/utils/tool-stream.js +5 -5
- package/dist/providers/amazon-bedrock-mantle.d.ts +1 -1
- package/dist/providers/amazon-bedrock-mantle.js +4 -3
- package/dist/providers/anthropic-compatible.d.ts +1 -1
- package/dist/providers/anthropic.d.ts +1 -1
- package/dist/providers/cloudflare-ai-gateway.d.ts +2 -2
- package/dist/providers/google-vertex-messages.d.ts +1 -1
- package/dist/providers/google-vertex.js +1 -1
- package/dist/providers/google.d.ts +4 -4
- package/dist/providers/meta.d.ts +1 -1
- package/dist/providers/minimax.d.ts +1 -1
- package/dist/providers/moonshot.d.ts +1 -1
- package/package.json +3 -3
|
@@ -58,7 +58,7 @@ declare const Thinking: Schema.Union<readonly [Schema.decodeTo<Schema.Struct<{
|
|
|
58
58
|
}>>;
|
|
59
59
|
readonly type: Schema.tag<"adaptive">;
|
|
60
60
|
}>, Schema.Struct<{
|
|
61
|
-
readonly type: Schema.
|
|
61
|
+
readonly type: Schema.Literals<readonly ["disabled", "between_tools"]>;
|
|
62
62
|
}>]>;
|
|
63
63
|
declare const Options: Schema.Struct<{
|
|
64
64
|
/** Advanced in-band compaction. The caller owns checkpoint persistence and recovery. */
|
|
@@ -101,7 +101,7 @@ declare const Options: Schema.Struct<{
|
|
|
101
101
|
}>>;
|
|
102
102
|
readonly type: Schema.tag<"adaptive">;
|
|
103
103
|
}>, Schema.Struct<{
|
|
104
|
-
readonly type: Schema.
|
|
104
|
+
readonly type: Schema.Literals<readonly ["disabled", "between_tools"]>;
|
|
105
105
|
}>]>>;
|
|
106
106
|
readonly effort: Schema.optional<Schema.String>;
|
|
107
107
|
readonly service_tier: Schema.optional<Schema.declare<import("../schema/options.js").OpenString<"auto" | "standard_only">, import("../schema/options.js").OpenString<"auto" | "standard_only">>>;
|
|
@@ -382,7 +382,7 @@ export declare const AnthropicMessagesBody: Schema.Struct<{
|
|
|
382
382
|
}>>;
|
|
383
383
|
readonly type: Schema.tag<"adaptive">;
|
|
384
384
|
}>, Schema.Struct<{
|
|
385
|
-
readonly type: Schema.
|
|
385
|
+
readonly type: Schema.Literals<readonly ["disabled", "between_tools"]>;
|
|
386
386
|
}>]>>;
|
|
387
387
|
output_config: Schema.optional<Schema.Struct<{
|
|
388
388
|
readonly effort: Schema.optional<Schema.String>;
|
|
@@ -638,7 +638,7 @@ export declare const protocol: Protocol<{
|
|
|
638
638
|
readonly prefix_mismatch_behavior?: import("../schema/options.js").OpenString<"error" | "drop_block"> | undefined;
|
|
639
639
|
} | undefined;
|
|
640
640
|
} | {
|
|
641
|
-
readonly type: "disabled";
|
|
641
|
+
readonly type: "disabled" | "between_tools";
|
|
642
642
|
} | undefined;
|
|
643
643
|
readonly service_tier?: import("../schema/options.js").OpenString<"auto" | "standard_only"> | undefined;
|
|
644
644
|
readonly container?: string | {
|
|
@@ -998,7 +998,7 @@ export declare const route: Route<{
|
|
|
998
998
|
readonly prefix_mismatch_behavior?: import("../schema/options.js").OpenString<"error" | "drop_block"> | undefined;
|
|
999
999
|
} | undefined;
|
|
1000
1000
|
} | {
|
|
1001
|
-
readonly type: "disabled";
|
|
1001
|
+
readonly type: "disabled" | "between_tools";
|
|
1002
1002
|
} | undefined;
|
|
1003
1003
|
readonly service_tier?: import("../schema/options.js").OpenString<"auto" | "standard_only"> | undefined;
|
|
1004
1004
|
readonly container?: string | {
|
|
@@ -223,7 +223,7 @@ const AnthropicThinkingEnabled = Schema.Struct({
|
|
|
223
223
|
...AnthropicThinkingFields,
|
|
224
224
|
});
|
|
225
225
|
const AnthropicThinkingAdaptive = Schema.Struct({ type: Schema.tag("adaptive"), ...AnthropicThinkingFields });
|
|
226
|
-
const AnthropicThinkingDisabled = Schema.Struct({ type: Schema.
|
|
226
|
+
const AnthropicThinkingDisabled = Schema.Struct({ type: Schema.Literals(["disabled", "between_tools"]) });
|
|
227
227
|
const AnthropicThinking = Schema.Union([AnthropicThinkingEnabled, AnthropicThinkingAdaptive, AnthropicThinkingDisabled]);
|
|
228
228
|
// SDK OutputConfig:2684 {effort?: "low"|"medium"|"high"|"xhigh"|"max"|null, format?: JSONOutputFormat:2399}
|
|
229
229
|
const AnthropicJsonOutputFormat = Schema.Struct({
|
|
@@ -855,12 +855,15 @@ const lowerMessages = Effect.fnUntraced(function* (request, breakpoints) {
|
|
|
855
855
|
// TODO: Move per-model capability heuristics (`supportsEffortUpdates`, `supportsNativeSystemUpdates`,
|
|
856
856
|
// `supportsThinkingBlockBinding`) into explicit model/provider `compatibility` metadata so the protocol
|
|
857
857
|
// only reads `request.model.compatibility`.
|
|
858
|
+
const isThinkingOff = Schema.is(AnthropicThinkingDisabled);
|
|
858
859
|
// Per-turn effort started with Claude Opus 5 and every Claude 5.1 model; later versions of any family inherit it.
|
|
859
|
-
const supportsEffortUpdates = (
|
|
860
|
-
|
|
860
|
+
const supportsEffortUpdates = (request) => {
|
|
861
|
+
if (isThinkingOff(request.providerOptions?.thinking))
|
|
862
|
+
return false;
|
|
863
|
+
const override = request.model.compatibility?.supportsEffortUpdates;
|
|
861
864
|
if (override !== undefined)
|
|
862
865
|
return override;
|
|
863
|
-
const version = claudeVersion(model.id);
|
|
866
|
+
const version = claudeVersion(request.model.id);
|
|
864
867
|
if (version === undefined)
|
|
865
868
|
return false;
|
|
866
869
|
if (version.family === "opus" && version.major >= 5)
|
|
@@ -868,7 +871,7 @@ const supportsEffortUpdates = (model) => {
|
|
|
868
871
|
return version.major > 5 || (version.major === 5 && version.minor >= 1);
|
|
869
872
|
};
|
|
870
873
|
const applyThinkingBindingDefault = (model, thinking) => {
|
|
871
|
-
if (thinking
|
|
874
|
+
if (isThinkingOff(thinking))
|
|
872
875
|
return thinking;
|
|
873
876
|
if (!supportsThinkingBlockBinding(model))
|
|
874
877
|
return thinking;
|
|
@@ -1390,7 +1393,7 @@ export const protocol = Protocol.make({
|
|
|
1390
1393
|
}),
|
|
1391
1394
|
step,
|
|
1392
1395
|
},
|
|
1393
|
-
supportsEffortUpdates
|
|
1396
|
+
supportsEffortUpdates,
|
|
1394
1397
|
});
|
|
1395
1398
|
export const transport = () => {
|
|
1396
1399
|
const http = HttpTransport.httpJson({ framing });
|
|
@@ -1430,7 +1433,7 @@ function requiredBetaHeaders(body) {
|
|
|
1430
1433
|
if (body.messages.some((message) => message.role === "system" && message.output_config !== undefined))
|
|
1431
1434
|
betas.push("mid-conversation-output-config-2026-07-01");
|
|
1432
1435
|
const thinking = body.thinking;
|
|
1433
|
-
if (thinking && thinking
|
|
1436
|
+
if (thinking && !isThinkingOff(thinking) && thinking.block_binding)
|
|
1434
1437
|
betas.push(THINKING_BINDING_BETA);
|
|
1435
1438
|
return betas;
|
|
1436
1439
|
}
|
|
@@ -382,7 +382,9 @@ const decodeOptions = ProviderShared.validateWith(Schema.decodeUnknownEffect(Opt
|
|
|
382
382
|
// Claude on Bedrock requires the thinking budget below `maxTokens`, with a minimum of 1,024.
|
|
383
383
|
const MIN_THINKING_BUDGET = 1_024;
|
|
384
384
|
const isThinkingDisabled = Schema.is(Schema.Struct({
|
|
385
|
-
additionalModelRequestFields: Schema.Struct({
|
|
385
|
+
additionalModelRequestFields: Schema.Struct({
|
|
386
|
+
thinking: Schema.Struct({ type: Schema.Literals(["disabled", "between_tools"]) }),
|
|
387
|
+
}),
|
|
386
388
|
}));
|
|
387
389
|
// Claude 5.1+ binds each thinking signature to the prefix above it. Ask Bedrock to drop the affected blocks instead of
|
|
388
390
|
// failing when that prefix changes. `http.body` overlays this field by field, so callers can still override it.
|
|
@@ -9,7 +9,7 @@ declare const Options: Schema.Struct<{
|
|
|
9
9
|
readonly store: Schema.optionalKey<Schema.middlewareDecoding<Schema.UndefinedOr<Schema.Boolean>, never>>;
|
|
10
10
|
readonly thinkingLevel: Schema.optionalKey<Schema.middlewareDecoding<Schema.UndefinedOr<Schema.declare<import("../schema/options.js").OpenString<"minimal" | "low" | "medium" | "high">, import("../schema/options.js").OpenString<"minimal" | "low" | "medium" | "high">>>, never>>;
|
|
11
11
|
readonly thinkingSummaries: Schema.optionalKey<Schema.middlewareDecoding<Schema.UndefinedOr<Schema.declare<import("../schema/options.js").OpenString<"auto" | "none">, import("../schema/options.js").OpenString<"auto" | "none">>>, never>>;
|
|
12
|
-
readonly serviceTier: Schema.optionalKey<Schema.middlewareDecoding<Schema.UndefinedOr<Schema.declare<import("../schema/options.js").OpenString<"standard" | "flex" | "priority">, import("../schema/options.js").OpenString<"standard" | "flex" | "priority">>>, never>>;
|
|
12
|
+
readonly serviceTier: Schema.optionalKey<Schema.middlewareDecoding<Schema.UndefinedOr<Schema.declare<import("../schema/options.js").OpenString<"standard" | "flex" | "priority" | "deferred">, import("../schema/options.js").OpenString<"standard" | "flex" | "priority" | "deferred">>>, never>>;
|
|
13
13
|
}>;
|
|
14
14
|
export type OptionsInput = typeof Options.Encoded;
|
|
15
15
|
export type ProviderOptionsInput = OptionsInput;
|
|
@@ -236,7 +236,7 @@ export declare const protocol: Protocol<{
|
|
|
236
236
|
readonly prefix_mismatch_behavior?: import("../schema/options.js").OpenString<"error" | "drop_block"> | undefined;
|
|
237
237
|
} | undefined;
|
|
238
238
|
} | {
|
|
239
|
-
readonly type: "disabled";
|
|
239
|
+
readonly type: "disabled" | "between_tools";
|
|
240
240
|
} | undefined;
|
|
241
241
|
readonly service_tier?: import("../schema/options.js").OpenString<"auto" | "standard_only"> | undefined;
|
|
242
242
|
readonly container?: string | {
|
|
@@ -336,6 +336,8 @@ const lowerReasoning = (part, providerMetadataKey) => {
|
|
|
336
336
|
const encryptedContent = typeof metadata.reasoningEncryptedContent === "string" || metadata.reasoningEncryptedContent === null
|
|
337
337
|
? metadata.reasoningEncryptedContent
|
|
338
338
|
: undefined;
|
|
339
|
+
if (part.text.length === 0 && !encryptedContent)
|
|
340
|
+
return undefined;
|
|
339
341
|
return {
|
|
340
342
|
type: "reasoning",
|
|
341
343
|
...(id === undefined ? {} : { id }),
|
|
@@ -15,7 +15,8 @@ import { ProviderShared } from "../shared.js";
|
|
|
15
15
|
export const defaultChain = (options) => Effect.tryPromise({
|
|
16
16
|
try: async () => {
|
|
17
17
|
const { fromNodeProviderChain } = await import("@aws-sdk/credential-providers");
|
|
18
|
-
|
|
18
|
+
// ignoreCache re-reads shared config and SSO token files, so `aws sso login` takes effect without a restart.
|
|
19
|
+
const identity = await fromNodeProviderChain({ ignoreCache: true, profile: options.profile })();
|
|
19
20
|
return {
|
|
20
21
|
region: options.region,
|
|
21
22
|
accessKeyId: identity.accessKeyId,
|
|
@@ -5,7 +5,7 @@ export declare const OpenAITextVerbosities: readonly ["low", "medium", "high"];
|
|
|
5
5
|
export type OpenAITextVerbosity = OpenResponsesOptions.TextVerbosity;
|
|
6
6
|
export declare const OpenAIResponseIncludables: readonly ["file_search_call.results", "web_search_call.results", "web_search_call.action.sources", "message.input_image.image_url", "computer_call_output.output.image_url", "code_interpreter_call.outputs", "reasoning.encrypted_content", "message.output_text.logprobs"];
|
|
7
7
|
export type OpenAIResponseIncludable = OpenResponsesOptions.ResponseIncludable;
|
|
8
|
-
export declare const OpenAIServiceTiers: readonly ["auto", "default", "flex", "priority", "scale"];
|
|
8
|
+
export declare const OpenAIServiceTiers: readonly ["auto", "default", "flex", "priority", "scale", "fast", "ultrafast"];
|
|
9
9
|
export type OpenAIServiceTier = (typeof OpenAIServiceTiers)[number] | (string & {});
|
|
10
10
|
export declare const OpenAIReasoningEffort: import("effect/Schema").declare<OpenResponsesOptions.ReasoningEffort, OpenResponsesOptions.ReasoningEffort>;
|
|
11
11
|
export declare const OpenAITextVerbosity: import("effect/Schema").declare<OpenResponsesOptions.TextVerbosity, OpenResponsesOptions.TextVerbosity>;
|
|
@@ -4,7 +4,8 @@ export const OpenAITextVerbosities = OpenResponsesOptions.TextVerbosities;
|
|
|
4
4
|
// Mirrors OpenAI's `ResponseIncludable` union from the official SDK. Keep this
|
|
5
5
|
// in lockstep with `openai-node/src/resources/responses/responses.ts`.
|
|
6
6
|
export const OpenAIResponseIncludables = OpenResponsesOptions.ResponseIncludables;
|
|
7
|
-
|
|
7
|
+
// Mirrors OpenAI's `ServiceTier` union from the official SDK.
|
|
8
|
+
export const OpenAIServiceTiers = [...OpenResponsesOptions.ServiceTiers, "scale", "fast", "ultrafast"];
|
|
8
9
|
export const OpenAIReasoningEffort = OpenResponsesOptions.ReasoningEffort;
|
|
9
10
|
export const OpenAITextVerbosity = OpenResponsesOptions.TextVerbosity;
|
|
10
11
|
export const OpenAIResponseIncludable = OpenResponsesOptions.ResponseIncludableSchema;
|
|
@@ -67,7 +67,7 @@ export declare const append: <K extends StreamKey>(tools: State<K>, key: K, text
|
|
|
67
67
|
export declare const appendExisting: <K extends StreamKey>(route: string, tools: State<K>, key: K, text: string, missingToolMessage: string) => AppendOutcome<K> | AIError;
|
|
68
68
|
/**
|
|
69
69
|
* Finalize one pending tool call: parse the accumulated raw JSON, remove it
|
|
70
|
-
* from state, and
|
|
70
|
+
* from state, and reject malformed local arguments without repairing them.
|
|
71
71
|
* Missing keys are a no-op because some providers emit stop events for
|
|
72
72
|
* non-tool content blocks.
|
|
73
73
|
*/
|
|
@@ -37,16 +37,16 @@ const inputDelta = (tool, text) => {
|
|
|
37
37
|
};
|
|
38
38
|
const toolCall = (route, tool, inputOverride) => {
|
|
39
39
|
const raw = inputOverride ?? tool.input;
|
|
40
|
-
return parseToolInput(route, tool.name, raw).pipe(Effect.
|
|
41
|
-
? Effect.fail(error)
|
|
42
|
-
: Effect.succeed(Option.getOrElse(Option.map(parsePartialInput(raw), (input) => input ?? {}), () => ({})))), Effect.map((input) => LLMEvent.toolCall({
|
|
40
|
+
return parseToolInput(route, tool.name, raw).pipe(Effect.map((input) => LLMEvent.toolCall({
|
|
43
41
|
id: tool.id,
|
|
44
42
|
name: tool.name,
|
|
45
43
|
namespace: tool.namespace,
|
|
46
44
|
input,
|
|
47
45
|
providerExecuted: tool.providerExecuted ? true : undefined,
|
|
48
46
|
providerMetadata: tool.providerMetadata,
|
|
49
|
-
})))
|
|
47
|
+
})), Effect.catch((error) => tool.providerExecuted
|
|
48
|
+
? Effect.fail(error)
|
|
49
|
+
: Effect.succeed(LLMEvent.toolInputError({ id: tool.id, name: tool.name, namespace: tool.namespace, raw }))));
|
|
50
50
|
};
|
|
51
51
|
const finishEvents = (tool, event) => [
|
|
52
52
|
LLMEvent.toolInputEnd({
|
|
@@ -121,7 +121,7 @@ export const append = (tools, key, text) => {
|
|
|
121
121
|
export const appendExisting = (route, tools, key, text, missingToolMessage) => append(tools, key, text) ?? eventError(route, missingToolMessage);
|
|
122
122
|
/**
|
|
123
123
|
* Finalize one pending tool call: parse the accumulated raw JSON, remove it
|
|
124
|
-
* from state, and
|
|
124
|
+
* from state, and reject malformed local arguments without repairing them.
|
|
125
125
|
* Missing keys are a no-op because some providers emit stop events for
|
|
126
126
|
* non-tool content blocks.
|
|
127
127
|
*/
|
|
@@ -257,7 +257,7 @@ export declare const routes: (Route<{
|
|
|
257
257
|
readonly prefix_mismatch_behavior?: import("../schema/options.js").OpenString<"error" | "drop_block"> | undefined;
|
|
258
258
|
} | undefined;
|
|
259
259
|
} | {
|
|
260
|
-
readonly type: "disabled";
|
|
260
|
+
readonly type: "disabled" | "between_tools";
|
|
261
261
|
} | undefined;
|
|
262
262
|
readonly service_tier?: import("../schema/options.js").OpenString<"auto" | "standard_only"> | undefined;
|
|
263
263
|
readonly container?: string | {
|
|
@@ -30,9 +30,10 @@ const messagesRoute = Route.make({
|
|
|
30
30
|
...AnthropicMessages.protocol,
|
|
31
31
|
// Mantle rejects mid-conversation `output_config` on Opus 5.0; support starts at 5.1+.
|
|
32
32
|
supportsEffortUpdates: (request) => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
if (!(AnthropicMessages.protocol.supportsEffortUpdates?.(request) ?? false))
|
|
34
|
+
return false;
|
|
35
|
+
if (request.model.compatibility?.supportsEffortUpdates !== undefined)
|
|
36
|
+
return true;
|
|
36
37
|
const version = claudeVersion(request.model.id);
|
|
37
38
|
return version !== undefined && (version.major > 5 || (version.major === 5 && version.minor >= 1));
|
|
38
39
|
},
|
|
@@ -249,7 +249,7 @@ export declare const routes: import("../route/client.js").Route<{
|
|
|
249
249
|
readonly prefix_mismatch_behavior?: import("../schema/options.js").OpenString<"error" | "drop_block"> | undefined;
|
|
250
250
|
} | undefined;
|
|
251
251
|
} | {
|
|
252
|
-
readonly type: "disabled";
|
|
252
|
+
readonly type: "disabled" | "between_tools";
|
|
253
253
|
} | undefined;
|
|
254
254
|
readonly service_tier?: import("../schema/options.js").OpenString<"auto" | "standard_only"> | undefined;
|
|
255
255
|
readonly container?: string | {
|
|
@@ -234,7 +234,7 @@ export declare const routes: import("../route/client.js").Route<{
|
|
|
234
234
|
readonly prefix_mismatch_behavior?: import("../schema/options.js").OpenString<"error" | "drop_block"> | undefined;
|
|
235
235
|
} | undefined;
|
|
236
236
|
} | {
|
|
237
|
-
readonly type: "disabled";
|
|
237
|
+
readonly type: "disabled" | "between_tools";
|
|
238
238
|
} | undefined;
|
|
239
239
|
readonly service_tier?: import("../schema/options.js").OpenString<"auto" | "standard_only"> | undefined;
|
|
240
240
|
readonly container?: string | {
|
|
@@ -461,7 +461,7 @@ export declare const messagesRoute: import("../route/client.js").Route<{
|
|
|
461
461
|
readonly prefix_mismatch_behavior?: import("../schema/options.js").OpenString<"error" | "drop_block"> | undefined;
|
|
462
462
|
} | undefined;
|
|
463
463
|
} | {
|
|
464
|
-
readonly type: "disabled";
|
|
464
|
+
readonly type: "disabled" | "between_tools";
|
|
465
465
|
} | undefined;
|
|
466
466
|
readonly service_tier?: import("../schema/options.js").OpenString<"auto" | "standard_only"> | undefined;
|
|
467
467
|
readonly container?: string | {
|
|
@@ -856,7 +856,7 @@ export declare const routes: (import("../route/client.js").Route<{
|
|
|
856
856
|
readonly prefix_mismatch_behavior?: import("../schema/options.js").OpenString<"error" | "drop_block"> | undefined;
|
|
857
857
|
} | undefined;
|
|
858
858
|
} | {
|
|
859
|
-
readonly type: "disabled";
|
|
859
|
+
readonly type: "disabled" | "between_tools";
|
|
860
860
|
} | undefined;
|
|
861
861
|
readonly service_tier?: import("../schema/options.js").OpenString<"auto" | "standard_only"> | undefined;
|
|
862
862
|
readonly container?: string | {
|
|
@@ -247,7 +247,7 @@ export declare const routes: Route<{
|
|
|
247
247
|
readonly prefix_mismatch_behavior?: import("../schema/options.js").OpenString<"error" | "drop_block"> | undefined;
|
|
248
248
|
} | undefined;
|
|
249
249
|
} | {
|
|
250
|
-
readonly type: "disabled";
|
|
250
|
+
readonly type: "disabled" | "between_tools";
|
|
251
251
|
} | undefined;
|
|
252
252
|
service_tier?: import("../schema/options.js").OpenString<"auto" | "standard_only"> | undefined;
|
|
253
253
|
container?: string | {
|
|
@@ -49,7 +49,7 @@ const configuredRoute = (input, modelID) => {
|
|
|
49
49
|
provider: id,
|
|
50
50
|
message: "Google Vertex tuned models do not support Express Mode API keys",
|
|
51
51
|
});
|
|
52
|
-
const location = GoogleVertexShared.location(inputLocation, "
|
|
52
|
+
const location = GoogleVertexShared.location(inputLocation, "global");
|
|
53
53
|
const project = GoogleVertexShared.project(inputProject);
|
|
54
54
|
const endpoint = baseURL ??
|
|
55
55
|
(apiKey
|
|
@@ -170,7 +170,7 @@ export declare const configure: (input?: Config) => {
|
|
|
170
170
|
id: string & import("effect/Brand").Brand<"AI.ProviderID">;
|
|
171
171
|
model: (modelID: string | ModelID) => import("../schema/options.js").LanguageModel<Gemini.OptionsInput, import("../route/client.js").CompactionOperations | undefined>;
|
|
172
172
|
interactions: (modelID: string | ModelID) => import("../schema/options.js").LanguageModel<{
|
|
173
|
-
readonly serviceTier?: import("../schema/options.js").OpenString<"standard" | "flex" | "priority"> | undefined;
|
|
173
|
+
readonly serviceTier?: import("../schema/options.js").OpenString<"standard" | "flex" | "priority" | "deferred"> | undefined;
|
|
174
174
|
readonly thinkingLevel?: import("../schema/options.js").OpenString<"minimal" | "low" | "medium" | "high"> | undefined;
|
|
175
175
|
readonly previousInteractionId?: string | undefined;
|
|
176
176
|
readonly store?: boolean | undefined;
|
|
@@ -186,7 +186,7 @@ export declare const provider: {
|
|
|
186
186
|
id: string & import("effect/Brand").Brand<"AI.ProviderID">;
|
|
187
187
|
model: (modelID: string | ModelID) => import("../schema/options.js").LanguageModel<Gemini.OptionsInput, import("../route/client.js").CompactionOperations | undefined>;
|
|
188
188
|
interactions: (modelID: string | ModelID) => import("../schema/options.js").LanguageModel<{
|
|
189
|
-
readonly serviceTier?: import("../schema/options.js").OpenString<"standard" | "flex" | "priority"> | undefined;
|
|
189
|
+
readonly serviceTier?: import("../schema/options.js").OpenString<"standard" | "flex" | "priority" | "deferred"> | undefined;
|
|
190
190
|
readonly thinkingLevel?: import("../schema/options.js").OpenString<"minimal" | "low" | "medium" | "high"> | undefined;
|
|
191
191
|
readonly previousInteractionId?: string | undefined;
|
|
192
192
|
readonly store?: boolean | undefined;
|
|
@@ -200,7 +200,7 @@ export declare const provider: {
|
|
|
200
200
|
id: string & import("effect/Brand").Brand<"AI.ProviderID">;
|
|
201
201
|
model: (modelID: string | ModelID) => import("../schema/options.js").LanguageModel<Gemini.OptionsInput, import("../route/client.js").CompactionOperations | undefined>;
|
|
202
202
|
interactions: (modelID: string | ModelID) => import("../schema/options.js").LanguageModel<{
|
|
203
|
-
readonly serviceTier?: import("../schema/options.js").OpenString<"standard" | "flex" | "priority"> | undefined;
|
|
203
|
+
readonly serviceTier?: import("../schema/options.js").OpenString<"standard" | "flex" | "priority" | "deferred"> | undefined;
|
|
204
204
|
readonly thinkingLevel?: import("../schema/options.js").OpenString<"minimal" | "low" | "medium" | "high"> | undefined;
|
|
205
205
|
readonly previousInteractionId?: string | undefined;
|
|
206
206
|
readonly store?: boolean | undefined;
|
|
@@ -216,7 +216,7 @@ export declare const provider: {
|
|
|
216
216
|
export declare const model: ProviderPackage.Definition<Settings, Gemini.ProviderOptionsInput>["model"];
|
|
217
217
|
export declare const image: (modelID: string | ModelID) => import("../image.js").ImageModel<import("../protocols/google-images.js").GoogleImageOptions>;
|
|
218
218
|
export declare const interactions: (modelID: string | ModelID) => import("../schema/options.js").LanguageModel<{
|
|
219
|
-
readonly serviceTier?: import("../schema/options.js").OpenString<"standard" | "flex" | "priority"> | undefined;
|
|
219
|
+
readonly serviceTier?: import("../schema/options.js").OpenString<"standard" | "flex" | "priority" | "deferred"> | undefined;
|
|
220
220
|
readonly thinkingLevel?: import("../schema/options.js").OpenString<"minimal" | "low" | "medium" | "high"> | undefined;
|
|
221
221
|
readonly previousInteractionId?: string | undefined;
|
|
222
222
|
readonly store?: boolean | undefined;
|
package/dist/providers/meta.d.ts
CHANGED
|
@@ -573,7 +573,7 @@ export declare const routes: (Route<{
|
|
|
573
573
|
readonly prefix_mismatch_behavior?: OpenString<"error" | "drop_block"> | undefined;
|
|
574
574
|
} | undefined;
|
|
575
575
|
} | {
|
|
576
|
-
readonly type: "disabled";
|
|
576
|
+
readonly type: "disabled" | "between_tools";
|
|
577
577
|
} | undefined;
|
|
578
578
|
readonly service_tier?: OpenString<"auto" | "standard_only"> | undefined;
|
|
579
579
|
readonly container?: string | {
|
|
@@ -260,7 +260,7 @@ export declare const routes: (Route<{
|
|
|
260
260
|
readonly prefix_mismatch_behavior?: import("../schema/options.js").OpenString<"error" | "drop_block"> | undefined;
|
|
261
261
|
} | undefined;
|
|
262
262
|
} | {
|
|
263
|
-
readonly type: "disabled";
|
|
263
|
+
readonly type: "disabled" | "between_tools";
|
|
264
264
|
} | undefined;
|
|
265
265
|
readonly service_tier?: import("../schema/options.js").OpenString<"auto" | "standard_only"> | undefined;
|
|
266
266
|
readonly container?: string | {
|
|
@@ -258,7 +258,7 @@ export declare const routes: (Route<{
|
|
|
258
258
|
readonly prefix_mismatch_behavior?: import("../schema/options.js").OpenString<"error" | "drop_block"> | undefined;
|
|
259
259
|
} | undefined;
|
|
260
260
|
} | {
|
|
261
|
-
readonly type: "disabled";
|
|
261
|
+
readonly type: "disabled" | "between_tools";
|
|
262
262
|
} | undefined;
|
|
263
263
|
readonly service_tier?: import("../schema/options.js").OpenString<"auto" | "standard_only"> | undefined;
|
|
264
264
|
readonly container?: string | {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.25",
|
|
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.0-rc.112",
|
|
37
|
-
"@opencode/http-recorder": "2.0.
|
|
37
|
+
"@opencode/http-recorder": "2.0.25",
|
|
38
38
|
"@tsconfig/bun": "1.0.9",
|
|
39
39
|
"@types/bun": "1.4.0",
|
|
40
40
|
"@typescript/native-preview": "7.0.0-dev.20251207.1",
|
|
@@ -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": "2.0.
|
|
47
|
+
"@opencode/schema": "2.0.25",
|
|
48
48
|
"aws4fetch": "1.0.20",
|
|
49
49
|
"effect": "4.0.0-rc.112",
|
|
50
50
|
"google-auth-library": "10.5.0"
|