@opencode/ai 0.0.0-dev-20221 → 0.0.0-dev-20225

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.
@@ -90,12 +90,17 @@ export declare const protocol: Protocol<{
90
90
  readonly ttl?: string | undefined;
91
91
  } | undefined;
92
92
  readonly tool_calls?: readonly {
93
- readonly id: string;
94
- readonly type: "function";
95
93
  readonly function: {
96
94
  readonly name: string;
97
95
  readonly arguments: string;
98
96
  };
97
+ readonly id: string;
98
+ readonly type: "function";
99
+ readonly extra_content?: {
100
+ readonly google: {
101
+ readonly thought_signature: string;
102
+ };
103
+ } | undefined;
99
104
  }[] | undefined;
100
105
  readonly reasoning_details?: unknown;
101
106
  } | {
@@ -208,6 +213,7 @@ export declare const protocol: Protocol<{
208
213
  } | null | undefined;
209
214
  readonly id?: string | null | undefined;
210
215
  readonly index?: number | null | undefined;
216
+ readonly extra_content?: unknown;
211
217
  }[] | null | undefined;
212
218
  readonly reasoning_details?: unknown;
213
219
  } | null | undefined;
@@ -12,6 +12,11 @@ declare const OpenAIChatCacheControl: Schema.Struct<{
12
12
  readonly type: Schema.Literal<"ephemeral">;
13
13
  readonly ttl: Schema.optional<Schema.String>;
14
14
  }>;
15
+ declare const ExtraContent: Schema.Struct<{
16
+ readonly google: Schema.Struct<{
17
+ readonly thought_signature: Schema.String;
18
+ }>;
19
+ }>;
15
20
  declare const ReasoningDetail: Schema.Union<readonly [Schema.StructWithRest<Schema.Struct<{
16
21
  readonly id: Schema.optional<Schema.NullOr<Schema.String>>;
17
22
  readonly format: Schema.optional<Schema.String>;
@@ -97,6 +102,11 @@ export declare const bodyFields: {
97
102
  readonly name: Schema.String;
98
103
  readonly arguments: Schema.String;
99
104
  }>;
105
+ readonly extra_content: Schema.optional<Schema.Struct<{
106
+ readonly google: Schema.Struct<{
107
+ readonly thought_signature: Schema.String;
108
+ }>;
109
+ }>>;
100
110
  }>>>;
101
111
  readonly reasoning_content: Schema.optional<Schema.String>;
102
112
  readonly reasoning: Schema.optional<Schema.String>;
@@ -205,6 +215,11 @@ declare const OpenAIChatBody: Schema.Struct<{
205
215
  readonly name: Schema.String;
206
216
  readonly arguments: Schema.String;
207
217
  }>;
218
+ readonly extra_content: Schema.optional<Schema.Struct<{
219
+ readonly google: Schema.Struct<{
220
+ readonly thought_signature: Schema.String;
221
+ }>;
222
+ }>>;
208
223
  }>>>;
209
224
  readonly reasoning_content: Schema.optional<Schema.String>;
210
225
  readonly reasoning: Schema.optional<Schema.String>;
@@ -276,6 +291,7 @@ export declare const OpenAIChatEvent: Schema.StructWithRest<Schema.Struct<{
276
291
  readonly name: Schema.optional<Schema.NullOr<Schema.String>>;
277
292
  readonly arguments: Schema.optional<Schema.NullOr<Schema.String>>;
278
293
  }>>>;
294
+ readonly extra_content: Schema.optional<Schema.NullOr<Schema.Unknown>>;
279
295
  }>>>>;
280
296
  }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>>;
281
297
  readonly finish_reason: Schema.optional<Schema.NullOr<Schema.String>>;
@@ -323,6 +339,7 @@ interface PendingToolDelta {
323
339
  readonly id?: string;
324
340
  readonly name?: string;
325
341
  readonly input: string;
342
+ readonly extraContent?: Schema.Schema.Type<typeof ExtraContent>;
326
343
  }
327
344
  export interface ParserState {
328
345
  readonly providerMetadataKey: string;
@@ -418,12 +435,17 @@ export declare const fromRequest: (request: LLMRequest<import("../schema/options
418
435
  readonly ttl?: string | undefined;
419
436
  } | undefined;
420
437
  readonly tool_calls?: readonly {
421
- readonly id: string;
422
- readonly type: "function";
423
438
  readonly function: {
424
439
  readonly name: string;
425
440
  readonly arguments: string;
426
441
  };
442
+ readonly id: string;
443
+ readonly type: "function";
444
+ readonly extra_content?: {
445
+ readonly google: {
446
+ readonly thought_signature: string;
447
+ };
448
+ } | undefined;
427
449
  }[] | undefined;
428
450
  readonly reasoning_details?: unknown;
429
451
  } | {
@@ -527,12 +549,17 @@ export declare const fromRequest: (request: LLMRequest<import("../schema/options
527
549
  readonly ttl?: string | undefined;
528
550
  } | undefined;
529
551
  readonly tool_calls?: readonly {
530
- readonly id: string;
531
- readonly type: "function";
532
552
  readonly function: {
533
553
  readonly name: string;
534
554
  readonly arguments: string;
535
555
  };
556
+ readonly id: string;
557
+ readonly type: "function";
558
+ readonly extra_content?: {
559
+ readonly google: {
560
+ readonly thought_signature: string;
561
+ };
562
+ } | undefined;
536
563
  }[] | undefined;
537
564
  readonly reasoning_details?: unknown;
538
565
  } | {
@@ -629,12 +656,17 @@ export declare const protocol: Protocol<{
629
656
  readonly ttl?: string | undefined;
630
657
  } | undefined;
631
658
  readonly tool_calls?: readonly {
632
- readonly id: string;
633
- readonly type: "function";
634
659
  readonly function: {
635
660
  readonly name: string;
636
661
  readonly arguments: string;
637
662
  };
663
+ readonly id: string;
664
+ readonly type: "function";
665
+ readonly extra_content?: {
666
+ readonly google: {
667
+ readonly thought_signature: string;
668
+ };
669
+ } | undefined;
638
670
  }[] | undefined;
639
671
  readonly reasoning_details?: unknown;
640
672
  } | {
@@ -725,6 +757,7 @@ export declare const protocol: Protocol<{
725
757
  } | null | undefined;
726
758
  readonly id?: string | null | undefined;
727
759
  readonly index?: number | null | undefined;
760
+ readonly extra_content?: unknown;
728
761
  }[] | null | undefined;
729
762
  readonly reasoning_details?: unknown;
730
763
  } | null | undefined;
@@ -808,12 +841,17 @@ export declare const httpTransport: HttpTransport.HttpJsonTransport<{
808
841
  readonly ttl?: string | undefined;
809
842
  } | undefined;
810
843
  readonly tool_calls?: readonly {
811
- readonly id: string;
812
- readonly type: "function";
813
844
  readonly function: {
814
845
  readonly name: string;
815
846
  readonly arguments: string;
816
847
  };
848
+ readonly id: string;
849
+ readonly type: "function";
850
+ readonly extra_content?: {
851
+ readonly google: {
852
+ readonly thought_signature: string;
853
+ };
854
+ } | undefined;
817
855
  }[] | undefined;
818
856
  readonly reasoning_details?: unknown;
819
857
  } | {
@@ -919,12 +957,17 @@ export declare const route: Route<{
919
957
  readonly ttl?: string | undefined;
920
958
  } | undefined;
921
959
  readonly tool_calls?: readonly {
922
- readonly id: string;
923
- readonly type: "function";
924
960
  readonly function: {
925
961
  readonly name: string;
926
962
  readonly arguments: string;
927
963
  };
964
+ readonly id: string;
965
+ readonly type: "function";
966
+ readonly extra_content?: {
967
+ readonly google: {
968
+ readonly thought_signature: string;
969
+ };
970
+ } | undefined;
928
971
  }[] | undefined;
929
972
  readonly reasoning_details?: unknown;
930
973
  } | {
@@ -41,6 +41,13 @@ const OpenAIChatTool = Schema.Struct({
41
41
  }),
42
42
  cache_control: Schema.optional(OpenAIChatCacheControl),
43
43
  });
44
+ // Gemini's OpenAI-compatible surface carries thought signatures in tool call
45
+ // `extra_content` and rejects replayed parallel calls without them:
46
+ // https://ai.google.dev/gemini-api/docs/thinking#signatures
47
+ const ExtraContent = Schema.Struct({
48
+ google: Schema.Struct({ thought_signature: Schema.String }),
49
+ });
50
+ const decodeExtraContent = (value) => Option.getOrUndefined(Schema.decodeUnknownOption(ExtraContent)(value));
44
51
  const OpenAIChatAssistantToolCall = Schema.Struct({
45
52
  id: Schema.String,
46
53
  type: Schema.tag("function"),
@@ -48,6 +55,7 @@ const OpenAIChatAssistantToolCall = Schema.Struct({
48
55
  name: Schema.String,
49
56
  arguments: Schema.String,
50
57
  }),
58
+ extra_content: Schema.optional(ExtraContent),
51
59
  });
52
60
  // `reasoning_details` carries two dialects. OpenRouter's `reasoning.*` entries
53
61
  // must be replayed unmodified (`index` included), so they keep every field they
@@ -75,11 +83,6 @@ const ReasoningDetail = Schema.Union([
75
83
  ]);
76
84
  const decodeReasoningDetail = Schema.decodeUnknownOption(ReasoningDetail);
77
85
  const knownReasoningDetails = (details) => details.flatMap((detail) => Option.toArray(decodeReasoningDetail(detail)));
78
- // Intentionally omit Gemini's provider-specific `extra_content.google.thought_signature`
79
- // extension until direct Google OpenAI-compatible routing is supported here:
80
- // https://github.com/vercel/ai/issues/11590
81
- // https://github.com/vercel/ai/pull/11745
82
- // https://ai.google.dev/gemini-api/docs/thought-signatures#openai
83
86
  const OpenAIChatUserContent = Schema.Union([
84
87
  Schema.Struct({
85
88
  type: Schema.Literal("text"),
@@ -180,6 +183,7 @@ const OpenAIChatToolCallDelta = Schema.Struct({
180
183
  index: optionalNull(Schema.Number),
181
184
  id: optionalNull(Schema.String),
182
185
  function: optionalNull(OpenAIChatToolCallDeltaFunction),
186
+ extra_content: optionalNull(Schema.Unknown),
183
187
  });
184
188
  const OpenAIChatDelta = Schema.StructWithRest(Schema.Struct({
185
189
  content: optionalNull(Schema.String),
@@ -231,6 +235,7 @@ const lowerToolCall = (part, options) => ({
231
235
  name: part.name,
232
236
  arguments: ProviderShared.encodeJson(part.input === undefined ? {} : part.input),
233
237
  },
238
+ extra_content: decodeExtraContent(part.providerMetadata?.[options.providerMetadataKey]?.extraContent),
234
239
  });
235
240
  const lowerMedia = Effect.fn("OpenAIChat.lowerMedia")(function* (part) {
236
241
  // Chat Completions accepts PDFs, and no other documents, as inline `file` parts; file URLs are not supported.
@@ -566,7 +571,9 @@ const detectSupportsStore = (provider, baseURL) => {
566
571
  const isVercelAiGateway = p === "vercel-ai-gateway" || url.includes("ai-gateway.vercel.sh") || url.includes("vercel.sh");
567
572
  const isAntLing = p === "ant-ling" || url.includes("api.ant-ling.com");
568
573
  const isOpencode = p === "opencode" || url.includes("opencode.ai");
569
- const isNonStandard = isNvidia ||
574
+ const isGemini = url.includes("generativelanguage.googleapis.com");
575
+ const isNonStandard = isGemini ||
576
+ isNvidia ||
570
577
  isCerebras ||
571
578
  isXai ||
572
579
  isTogether ||
@@ -908,12 +915,13 @@ const step = (state, event) => Effect.gen(function* () {
908
915
  const id = current?.id ?? pending?.id ?? (tool.id || undefined);
909
916
  const name = current?.name ?? pending?.name ?? (tool.function?.name || undefined);
910
917
  const text = `${pending?.input ?? ""}${tool.function?.arguments ?? ""}`;
918
+ const extraContent = pending?.extraContent ?? decodeExtraContent(tool.extra_content);
911
919
  latestToolIndex = index;
912
920
  nextToolIndex = Math.max(nextToolIndex, index + 1);
913
921
  if (!current && (!id || !name)) {
914
922
  pendingTools = {
915
923
  ...pendingTools,
916
- [index]: { id: id || undefined, name: name || undefined, input: text },
924
+ [index]: { id: id || undefined, name: name || undefined, input: text, extraContent },
917
925
  };
918
926
  continue;
919
927
  }
@@ -921,7 +929,12 @@ const step = (state, event) => Effect.gen(function* () {
921
929
  pendingTools = { ...pendingTools };
922
930
  delete pendingTools[index];
923
931
  }
924
- const result = ToolStream.appendOrStart(ADAPTER, tools, index, { id: id || undefined, name: name || undefined, text }, "OpenAI Chat tool call delta is missing id or name");
932
+ const result = ToolStream.appendOrStart(ADAPTER, tools, index, {
933
+ id: id || undefined,
934
+ name: name || undefined,
935
+ text,
936
+ providerMetadata: extraContent && { [state.providerMetadataKey]: { extraContent } },
937
+ }, "OpenAI Chat tool call delta is missing id or name");
925
938
  if (ToolStream.isError(result))
926
939
  return yield* new AIError({
927
940
  reason: AIErrorReason.make({
@@ -63,12 +63,17 @@ export declare const route: Route<{
63
63
  readonly ttl?: string | undefined;
64
64
  } | undefined;
65
65
  readonly tool_calls?: readonly {
66
- readonly id: string;
67
- readonly type: "function";
68
66
  readonly function: {
69
67
  readonly name: string;
70
68
  readonly arguments: string;
71
69
  };
70
+ readonly id: string;
71
+ readonly type: "function";
72
+ readonly extra_content?: {
73
+ readonly google: {
74
+ readonly thought_signature: string;
75
+ };
76
+ } | undefined;
72
77
  }[] | undefined;
73
78
  readonly reasoning_details?: unknown;
74
79
  } | {
@@ -52,6 +52,7 @@ export declare const appendOrStart: <K extends StreamKey>(route: string, tools:
52
52
  readonly id?: string;
53
53
  readonly name?: string;
54
54
  readonly text: string;
55
+ readonly providerMetadata?: ProviderMetadata;
55
56
  }, missingToolMessage: string) => AppendOutcome<K> | AIError;
56
57
  /**
57
58
  * Append argument text to a started tool. Returns `undefined` when no tool is
@@ -87,7 +87,7 @@ export const appendOrStart = (route, tools, key, delta, missingToolMessage) => {
87
87
  namespace: current?.namespace,
88
88
  input: `${current?.input ?? ""}${delta.text}`,
89
89
  providerExecuted: current?.providerExecuted,
90
- providerMetadata: current?.providerMetadata,
90
+ providerMetadata: current?.providerMetadata ?? delta.providerMetadata,
91
91
  };
92
92
  if (current && delta.text.length === 0 && current.id === id && current.name === name)
93
93
  return { tools, tool: current, events: [] };
@@ -79,12 +79,17 @@ export declare const protocol: Protocol<{
79
79
  readonly ttl?: string | undefined;
80
80
  } | undefined;
81
81
  readonly tool_calls?: readonly {
82
- readonly id: string;
83
- readonly type: "function";
84
82
  readonly function: {
85
83
  readonly name: string;
86
84
  readonly arguments: string;
87
85
  };
86
+ readonly id: string;
87
+ readonly type: "function";
88
+ readonly extra_content?: {
89
+ readonly google: {
90
+ readonly thought_signature: string;
91
+ };
92
+ } | undefined;
88
93
  }[] | undefined;
89
94
  readonly reasoning_details?: unknown;
90
95
  } | {
@@ -185,6 +190,7 @@ export declare const protocol: Protocol<{
185
190
  } | null | undefined;
186
191
  readonly id?: string | null | undefined;
187
192
  readonly index?: number | null | undefined;
193
+ readonly extra_content?: unknown;
188
194
  }[] | null | undefined;
189
195
  readonly reasoning_details?: unknown;
190
196
  } | null | undefined;
@@ -79,12 +79,17 @@ export declare const routes: (Route<{
79
79
  readonly ttl?: string | undefined;
80
80
  } | undefined;
81
81
  readonly tool_calls?: readonly {
82
- readonly id: string;
83
- readonly type: "function";
84
82
  readonly function: {
85
83
  readonly name: string;
86
84
  readonly arguments: string;
87
85
  };
86
+ readonly id: string;
87
+ readonly type: "function";
88
+ readonly extra_content?: {
89
+ readonly google: {
90
+ readonly thought_signature: string;
91
+ };
92
+ } | undefined;
88
93
  }[] | undefined;
89
94
  readonly reasoning_details?: unknown;
90
95
  } | {
@@ -82,12 +82,17 @@ export declare const routes: (Route<{
82
82
  readonly ttl?: string | undefined;
83
83
  } | undefined;
84
84
  readonly tool_calls?: readonly {
85
- readonly id: string;
86
- readonly type: "function";
87
85
  readonly function: {
88
86
  readonly name: string;
89
87
  readonly arguments: string;
90
88
  };
89
+ readonly id: string;
90
+ readonly type: "function";
91
+ readonly extra_content?: {
92
+ readonly google: {
93
+ readonly thought_signature: string;
94
+ };
95
+ } | undefined;
91
96
  }[] | undefined;
92
97
  readonly reasoning_details?: unknown;
93
98
  } | {
@@ -307,12 +307,17 @@ export declare const routes: (Route<{
307
307
  readonly ttl?: string | undefined;
308
308
  } | undefined;
309
309
  readonly tool_calls?: readonly {
310
- readonly id: string;
311
- readonly type: "function";
312
310
  readonly function: {
313
311
  readonly name: string;
314
312
  readonly arguments: string;
315
313
  };
314
+ readonly id: string;
315
+ readonly type: "function";
316
+ readonly extra_content?: {
317
+ readonly google: {
318
+ readonly thought_signature: string;
319
+ };
320
+ } | undefined;
316
321
  }[] | undefined;
317
322
  readonly reasoning_details?: unknown;
318
323
  } | {
@@ -68,12 +68,17 @@ export declare const route: Route<{
68
68
  readonly ttl?: string | undefined;
69
69
  } | undefined;
70
70
  readonly tool_calls?: readonly {
71
- readonly id: string;
72
- readonly type: "function";
73
71
  readonly function: {
74
72
  readonly name: string;
75
73
  readonly arguments: string;
76
74
  };
75
+ readonly id: string;
76
+ readonly type: "function";
77
+ readonly extra_content?: {
78
+ readonly google: {
79
+ readonly thought_signature: string;
80
+ };
81
+ } | undefined;
77
82
  }[] | undefined;
78
83
  readonly reasoning_details?: unknown;
79
84
  } | {
@@ -179,12 +184,17 @@ export declare const routes: Route<{
179
184
  readonly ttl?: string | undefined;
180
185
  } | undefined;
181
186
  readonly tool_calls?: readonly {
182
- readonly id: string;
183
- readonly type: "function";
184
187
  readonly function: {
185
188
  readonly name: string;
186
189
  readonly arguments: string;
187
190
  };
191
+ readonly id: string;
192
+ readonly type: "function";
193
+ readonly extra_content?: {
194
+ readonly google: {
195
+ readonly thought_signature: string;
196
+ };
197
+ } | undefined;
188
198
  }[] | undefined;
189
199
  readonly reasoning_details?: unknown;
190
200
  } | {
@@ -68,12 +68,17 @@ export declare const route: Route<{
68
68
  readonly ttl?: string | undefined;
69
69
  } | undefined;
70
70
  readonly tool_calls?: readonly {
71
- readonly id: string;
72
- readonly type: "function";
73
71
  readonly function: {
74
72
  readonly name: string;
75
73
  readonly arguments: string;
76
74
  };
75
+ readonly id: string;
76
+ readonly type: "function";
77
+ readonly extra_content?: {
78
+ readonly google: {
79
+ readonly thought_signature: string;
80
+ };
81
+ } | undefined;
77
82
  }[] | undefined;
78
83
  readonly reasoning_details?: unknown;
79
84
  } | {
@@ -179,12 +184,17 @@ export declare const routes: Route<{
179
184
  readonly ttl?: string | undefined;
180
185
  } | undefined;
181
186
  readonly tool_calls?: readonly {
182
- readonly id: string;
183
- readonly type: "function";
184
187
  readonly function: {
185
188
  readonly name: string;
186
189
  readonly arguments: string;
187
190
  };
191
+ readonly id: string;
192
+ readonly type: "function";
193
+ readonly extra_content?: {
194
+ readonly google: {
195
+ readonly thought_signature: string;
196
+ };
197
+ } | undefined;
188
198
  }[] | undefined;
189
199
  readonly reasoning_details?: unknown;
190
200
  } | {
@@ -587,12 +587,17 @@ export declare const route: import("../route/client.js").Route<{
587
587
  readonly ttl?: string | undefined;
588
588
  } | undefined;
589
589
  readonly tool_calls?: readonly {
590
- readonly id: string;
591
- readonly type: "function";
592
590
  readonly function: {
593
591
  readonly name: string;
594
592
  readonly arguments: string;
595
593
  };
594
+ readonly id: string;
595
+ readonly type: "function";
596
+ readonly extra_content?: {
597
+ readonly google: {
598
+ readonly thought_signature: string;
599
+ };
600
+ } | undefined;
596
601
  }[] | undefined;
597
602
  readonly reasoning_details?: unknown;
598
603
  } | {
@@ -970,12 +975,17 @@ export declare const routes: (import("../route/client.js").Route<{
970
975
  readonly ttl?: string | undefined;
971
976
  } | undefined;
972
977
  readonly tool_calls?: readonly {
973
- readonly id: string;
974
- readonly type: "function";
975
978
  readonly function: {
976
979
  readonly name: string;
977
980
  readonly arguments: string;
978
981
  };
982
+ readonly id: string;
983
+ readonly type: "function";
984
+ readonly extra_content?: {
985
+ readonly google: {
986
+ readonly thought_signature: string;
987
+ };
988
+ } | undefined;
979
989
  }[] | undefined;
980
990
  readonly reasoning_details?: unknown;
981
991
  } | {
@@ -72,12 +72,17 @@ export declare const route: Route<{
72
72
  readonly ttl?: string | undefined;
73
73
  } | undefined;
74
74
  readonly tool_calls?: readonly {
75
- readonly id: string;
76
- readonly type: "function";
77
75
  readonly function: {
78
76
  readonly name: string;
79
77
  readonly arguments: string;
80
78
  };
79
+ readonly id: string;
80
+ readonly type: "function";
81
+ readonly extra_content?: {
82
+ readonly google: {
83
+ readonly thought_signature: string;
84
+ };
85
+ } | undefined;
81
86
  }[] | undefined;
82
87
  readonly reasoning_details?: unknown;
83
88
  } | {
@@ -183,12 +188,17 @@ export declare const routes: Route<{
183
188
  readonly ttl?: string | undefined;
184
189
  } | undefined;
185
190
  readonly tool_calls?: readonly {
186
- readonly id: string;
187
- readonly type: "function";
188
191
  readonly function: {
189
192
  readonly name: string;
190
193
  readonly arguments: string;
191
194
  };
195
+ readonly id: string;
196
+ readonly type: "function";
197
+ readonly extra_content?: {
198
+ readonly google: {
199
+ readonly thought_signature: string;
200
+ };
201
+ } | undefined;
192
202
  }[] | undefined;
193
203
  readonly reasoning_details?: unknown;
194
204
  } | {
@@ -68,12 +68,17 @@ export declare const route: Route<{
68
68
  readonly ttl?: string | undefined;
69
69
  } | undefined;
70
70
  readonly tool_calls?: readonly {
71
- readonly id: string;
72
- readonly type: "function";
73
71
  readonly function: {
74
72
  readonly name: string;
75
73
  readonly arguments: string;
76
74
  };
75
+ readonly id: string;
76
+ readonly type: "function";
77
+ readonly extra_content?: {
78
+ readonly google: {
79
+ readonly thought_signature: string;
80
+ };
81
+ } | undefined;
77
82
  }[] | undefined;
78
83
  readonly reasoning_details?: unknown;
79
84
  } | {
@@ -179,12 +184,17 @@ export declare const routes: Route<{
179
184
  readonly ttl?: string | undefined;
180
185
  } | undefined;
181
186
  readonly tool_calls?: readonly {
182
- readonly id: string;
183
- readonly type: "function";
184
187
  readonly function: {
185
188
  readonly name: string;
186
189
  readonly arguments: string;
187
190
  };
191
+ readonly id: string;
192
+ readonly type: "function";
193
+ readonly extra_content?: {
194
+ readonly google: {
195
+ readonly thought_signature: string;
196
+ };
197
+ } | undefined;
188
198
  }[] | undefined;
189
199
  readonly reasoning_details?: unknown;
190
200
  } | {
@@ -68,12 +68,17 @@ export declare const route: Route<{
68
68
  readonly ttl?: string | undefined;
69
69
  } | undefined;
70
70
  readonly tool_calls?: readonly {
71
- readonly id: string;
72
- readonly type: "function";
73
71
  readonly function: {
74
72
  readonly name: string;
75
73
  readonly arguments: string;
76
74
  };
75
+ readonly id: string;
76
+ readonly type: "function";
77
+ readonly extra_content?: {
78
+ readonly google: {
79
+ readonly thought_signature: string;
80
+ };
81
+ } | undefined;
77
82
  }[] | undefined;
78
83
  readonly reasoning_details?: unknown;
79
84
  } | {
@@ -179,12 +184,17 @@ export declare const routes: Route<{
179
184
  readonly ttl?: string | undefined;
180
185
  } | undefined;
181
186
  readonly tool_calls?: readonly {
182
- readonly id: string;
183
- readonly type: "function";
184
187
  readonly function: {
185
188
  readonly name: string;
186
189
  readonly arguments: string;
187
190
  };
191
+ readonly id: string;
192
+ readonly type: "function";
193
+ readonly extra_content?: {
194
+ readonly google: {
195
+ readonly thought_signature: string;
196
+ };
197
+ } | undefined;
188
198
  }[] | undefined;
189
199
  readonly reasoning_details?: unknown;
190
200
  } | {
@@ -68,12 +68,17 @@ export declare const route: Route<{
68
68
  readonly ttl?: string | undefined;
69
69
  } | undefined;
70
70
  readonly tool_calls?: readonly {
71
- readonly id: string;
72
- readonly type: "function";
73
71
  readonly function: {
74
72
  readonly name: string;
75
73
  readonly arguments: string;
76
74
  };
75
+ readonly id: string;
76
+ readonly type: "function";
77
+ readonly extra_content?: {
78
+ readonly google: {
79
+ readonly thought_signature: string;
80
+ };
81
+ } | undefined;
77
82
  }[] | undefined;
78
83
  readonly reasoning_details?: unknown;
79
84
  } | {
@@ -179,12 +184,17 @@ export declare const routes: Route<{
179
184
  readonly ttl?: string | undefined;
180
185
  } | undefined;
181
186
  readonly tool_calls?: readonly {
182
- readonly id: string;
183
- readonly type: "function";
184
187
  readonly function: {
185
188
  readonly name: string;
186
189
  readonly arguments: string;
187
190
  };
191
+ readonly id: string;
192
+ readonly type: "function";
193
+ readonly extra_content?: {
194
+ readonly google: {
195
+ readonly thought_signature: string;
196
+ };
197
+ } | undefined;
188
198
  }[] | undefined;
189
199
  readonly reasoning_details?: unknown;
190
200
  } | {
@@ -73,12 +73,17 @@ export declare const routes: Route<{
73
73
  readonly ttl?: string | undefined;
74
74
  } | undefined;
75
75
  readonly tool_calls?: readonly {
76
- readonly id: string;
77
- readonly type: "function";
78
76
  readonly function: {
79
77
  readonly name: string;
80
78
  readonly arguments: string;
81
79
  };
80
+ readonly id: string;
81
+ readonly type: "function";
82
+ readonly extra_content?: {
83
+ readonly google: {
84
+ readonly thought_signature: string;
85
+ };
86
+ } | undefined;
82
87
  }[] | undefined;
83
88
  readonly reasoning_details?: unknown;
84
89
  } | {
@@ -77,12 +77,17 @@ export declare const protocol: Protocol<{
77
77
  readonly ttl?: string | undefined;
78
78
  } | undefined;
79
79
  readonly tool_calls?: readonly {
80
- readonly id: string;
81
- readonly type: "function";
82
80
  readonly function: {
83
81
  readonly name: string;
84
82
  readonly arguments: string;
85
83
  };
84
+ readonly id: string;
85
+ readonly type: "function";
86
+ readonly extra_content?: {
87
+ readonly google: {
88
+ readonly thought_signature: string;
89
+ };
90
+ } | undefined;
86
91
  }[] | undefined;
87
92
  readonly reasoning_details?: unknown;
88
93
  } | {
@@ -178,6 +183,7 @@ export declare const protocol: Protocol<{
178
183
  } | null | undefined;
179
184
  readonly id?: string | null | undefined;
180
185
  readonly index?: number | null | undefined;
186
+ readonly extra_content?: unknown;
181
187
  }[] | null | undefined;
182
188
  readonly reasoning_details?: unknown;
183
189
  } | null | undefined;
@@ -260,12 +266,17 @@ export declare const route: Route<{
260
266
  readonly ttl?: string | undefined;
261
267
  } | undefined;
262
268
  readonly tool_calls?: readonly {
263
- readonly id: string;
264
- readonly type: "function";
265
269
  readonly function: {
266
270
  readonly name: string;
267
271
  readonly arguments: string;
268
272
  };
273
+ readonly id: string;
274
+ readonly type: "function";
275
+ readonly extra_content?: {
276
+ readonly google: {
277
+ readonly thought_signature: string;
278
+ };
279
+ } | undefined;
269
280
  }[] | undefined;
270
281
  readonly reasoning_details?: unknown;
271
282
  } | {
@@ -94,12 +94,17 @@ export declare const routes: (Route<{
94
94
  readonly ttl?: string | undefined;
95
95
  } | undefined;
96
96
  readonly tool_calls?: readonly {
97
- readonly id: string;
98
- readonly type: "function";
99
97
  readonly function: {
100
98
  readonly name: string;
101
99
  readonly arguments: string;
102
100
  };
101
+ readonly id: string;
102
+ readonly type: "function";
103
+ readonly extra_content?: {
104
+ readonly google: {
105
+ readonly thought_signature: string;
106
+ };
107
+ } | undefined;
103
108
  }[] | undefined;
104
109
  readonly reasoning_details?: unknown;
105
110
  } | {
@@ -526,12 +526,17 @@ export declare const routes: (Route<{
526
526
  readonly ttl?: string | undefined;
527
527
  } | undefined;
528
528
  readonly tool_calls?: readonly {
529
- readonly id: string;
530
- readonly type: "function";
531
529
  readonly function: {
532
530
  readonly name: string;
533
531
  readonly arguments: string;
534
532
  };
533
+ readonly id: string;
534
+ readonly type: "function";
535
+ readonly extra_content?: {
536
+ readonly google: {
537
+ readonly thought_signature: string;
538
+ };
539
+ } | undefined;
535
540
  }[] | undefined;
536
541
  readonly reasoning_details?: unknown;
537
542
  } | {
@@ -524,12 +524,17 @@ export declare const routes: (Route<{
524
524
  readonly ttl?: string | undefined;
525
525
  } | undefined;
526
526
  readonly tool_calls?: readonly {
527
- readonly id: string;
528
- readonly type: "function";
529
527
  readonly function: {
530
528
  readonly name: string;
531
529
  readonly arguments: string;
532
530
  };
531
+ readonly id: string;
532
+ readonly type: "function";
533
+ readonly extra_content?: {
534
+ readonly google: {
535
+ readonly thought_signature: string;
536
+ };
537
+ } | undefined;
533
538
  }[] | undefined;
534
539
  readonly reasoning_details?: unknown;
535
540
  } | {
@@ -70,12 +70,17 @@ export declare const routes: import("../route/client.js").Route<{
70
70
  readonly ttl?: string | undefined;
71
71
  } | undefined;
72
72
  readonly tool_calls?: readonly {
73
- readonly id: string;
74
- readonly type: "function";
75
73
  readonly function: {
76
74
  readonly name: string;
77
75
  readonly arguments: string;
78
76
  };
77
+ readonly id: string;
78
+ readonly type: "function";
79
+ readonly extra_content?: {
80
+ readonly google: {
81
+ readonly thought_signature: string;
82
+ };
83
+ } | undefined;
79
84
  }[] | undefined;
80
85
  readonly reasoning_details?: unknown;
81
86
  } | {
@@ -65,12 +65,17 @@ export declare const routes: (Route<{
65
65
  readonly ttl?: string | undefined;
66
66
  } | undefined;
67
67
  readonly tool_calls?: readonly {
68
- readonly id: string;
69
- readonly type: "function";
70
68
  readonly function: {
71
69
  readonly name: string;
72
70
  readonly arguments: string;
73
71
  };
72
+ readonly id: string;
73
+ readonly type: "function";
74
+ readonly extra_content?: {
75
+ readonly google: {
76
+ readonly thought_signature: string;
77
+ };
78
+ } | undefined;
74
79
  }[] | undefined;
75
80
  readonly reasoning_details?: unknown;
76
81
  } | {
@@ -141,6 +141,11 @@ declare const OpenRouterBody: Schema.StructWithRest<Schema.Struct<{
141
141
  readonly name: Schema.String;
142
142
  readonly arguments: Schema.String;
143
143
  }>;
144
+ readonly extra_content: Schema.optional<Schema.Struct<{
145
+ readonly google: Schema.Struct<{
146
+ readonly thought_signature: Schema.String;
147
+ }>;
148
+ }>>;
144
149
  }>>>;
145
150
  readonly reasoning_content: Schema.optional<Schema.String>;
146
151
  readonly reasoning: Schema.optional<Schema.String>;
@@ -253,12 +258,17 @@ export declare const protocol: Protocol<{
253
258
  readonly ttl?: string | undefined;
254
259
  } | undefined;
255
260
  readonly tool_calls?: readonly {
256
- readonly id: string;
257
- readonly type: "function";
258
261
  readonly function: {
259
262
  readonly name: string;
260
263
  readonly arguments: string;
261
264
  };
265
+ readonly id: string;
266
+ readonly type: "function";
267
+ readonly extra_content?: {
268
+ readonly google: {
269
+ readonly thought_signature: string;
270
+ };
271
+ } | undefined;
262
272
  }[] | undefined;
263
273
  readonly reasoning_details?: unknown;
264
274
  } | {
@@ -349,6 +359,7 @@ export declare const protocol: Protocol<{
349
359
  } | null | undefined;
350
360
  readonly id?: string | null | undefined;
351
361
  readonly index?: number | null | undefined;
362
+ readonly extra_content?: unknown;
352
363
  }[] | null | undefined;
353
364
  readonly reasoning_details?: unknown;
354
365
  } | null | undefined;
@@ -432,12 +443,17 @@ export declare const route: Route<{
432
443
  readonly ttl?: string | undefined;
433
444
  } | undefined;
434
445
  readonly tool_calls?: readonly {
435
- readonly id: string;
436
- readonly type: "function";
437
446
  readonly function: {
438
447
  readonly name: string;
439
448
  readonly arguments: string;
440
449
  };
450
+ readonly id: string;
451
+ readonly type: "function";
452
+ readonly extra_content?: {
453
+ readonly google: {
454
+ readonly thought_signature: string;
455
+ };
456
+ } | undefined;
441
457
  }[] | undefined;
442
458
  readonly reasoning_details?: unknown;
443
459
  } | {
@@ -544,12 +560,17 @@ export declare const routes: Route<{
544
560
  readonly ttl?: string | undefined;
545
561
  } | undefined;
546
562
  readonly tool_calls?: readonly {
547
- readonly id: string;
548
- readonly type: "function";
549
563
  readonly function: {
550
564
  readonly name: string;
551
565
  readonly arguments: string;
552
566
  };
567
+ readonly id: string;
568
+ readonly type: "function";
569
+ readonly extra_content?: {
570
+ readonly google: {
571
+ readonly thought_signature: string;
572
+ };
573
+ } | undefined;
553
574
  }[] | undefined;
554
575
  readonly reasoning_details?: unknown;
555
576
  } | {
@@ -68,12 +68,17 @@ export declare const route: Route<{
68
68
  readonly ttl?: string | undefined;
69
69
  } | undefined;
70
70
  readonly tool_calls?: readonly {
71
- readonly id: string;
72
- readonly type: "function";
73
71
  readonly function: {
74
72
  readonly name: string;
75
73
  readonly arguments: string;
76
74
  };
75
+ readonly id: string;
76
+ readonly type: "function";
77
+ readonly extra_content?: {
78
+ readonly google: {
79
+ readonly thought_signature: string;
80
+ };
81
+ } | undefined;
77
82
  }[] | undefined;
78
83
  readonly reasoning_details?: unknown;
79
84
  } | {
@@ -179,12 +184,17 @@ export declare const routes: Route<{
179
184
  readonly ttl?: string | undefined;
180
185
  } | undefined;
181
186
  readonly tool_calls?: readonly {
182
- readonly id: string;
183
- readonly type: "function";
184
187
  readonly function: {
185
188
  readonly name: string;
186
189
  readonly arguments: string;
187
190
  };
191
+ readonly id: string;
192
+ readonly type: "function";
193
+ readonly extra_content?: {
194
+ readonly google: {
195
+ readonly thought_signature: string;
196
+ };
197
+ } | undefined;
188
198
  }[] | undefined;
189
199
  readonly reasoning_details?: unknown;
190
200
  } | {
@@ -76,12 +76,17 @@ export declare const routes: (Route<{
76
76
  readonly ttl?: string | undefined;
77
77
  } | undefined;
78
78
  readonly tool_calls?: readonly {
79
- readonly id: string;
80
- readonly type: "function";
81
79
  readonly function: {
82
80
  readonly name: string;
83
81
  readonly arguments: string;
84
82
  };
83
+ readonly id: string;
84
+ readonly type: "function";
85
+ readonly extra_content?: {
86
+ readonly google: {
87
+ readonly thought_signature: string;
88
+ };
89
+ } | undefined;
85
90
  }[] | undefined;
86
91
  readonly reasoning_details?: unknown;
87
92
  } | {
@@ -240,12 +240,17 @@ export declare const routes: (Route<{
240
240
  readonly ttl?: string | undefined;
241
241
  } | undefined;
242
242
  readonly tool_calls?: readonly {
243
- readonly id: string;
244
- readonly type: "function";
245
243
  readonly function: {
246
244
  readonly name: string;
247
245
  readonly arguments: string;
248
246
  };
247
+ readonly id: string;
248
+ readonly type: "function";
249
+ readonly extra_content?: {
250
+ readonly google: {
251
+ readonly thought_signature: string;
252
+ };
253
+ } | undefined;
249
254
  }[] | undefined;
250
255
  readonly reasoning_details?: unknown;
251
256
  } | {
@@ -70,12 +70,17 @@ export declare const routes: Route<{
70
70
  readonly ttl?: string | undefined;
71
71
  } | undefined;
72
72
  readonly tool_calls?: readonly {
73
- readonly id: string;
74
- readonly type: "function";
75
73
  readonly function: {
76
74
  readonly name: string;
77
75
  readonly arguments: string;
78
76
  };
77
+ readonly id: string;
78
+ readonly type: "function";
79
+ readonly extra_content?: {
80
+ readonly google: {
81
+ readonly thought_signature: string;
82
+ };
83
+ } | undefined;
79
84
  }[] | undefined;
80
85
  readonly reasoning_details?: unknown;
81
86
  } | {
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-20221",
3
+ "version": "0.0.0-dev-20225",
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": "0.0.0-dev-20221",
37
+ "@opencode/http-recorder": "0.0.0-dev-20225",
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": "0.0.0-dev-20221",
47
+ "@opencode/schema": "0.0.0-dev-20225",
48
48
  "aws4fetch": "1.0.20",
49
49
  "effect": "4.0.0-rc.112",
50
50
  "google-auth-library": "10.5.0"