@jaypie/llm 1.2.37 → 1.2.39

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.
@@ -9,6 +9,8 @@ export { LlmStreamChunkType } from "./types/LlmStreamChunk.interface.js";
9
9
  export { JaypieToolkit, toolkit, Toolkit, tools } from "./tools/index.js";
10
10
  export { extractReasoning } from "./util/extractReasoning.js";
11
11
  export { BedrockProvider } from "./providers/bedrock/index.js";
12
- export { GeminiProvider } from "./providers/gemini/index.js";
12
+ /** @deprecated Use GoogleProvider "Google" is the provider; Gemini is the model family */
13
+ export { GoogleProvider as GeminiProvider } from "./providers/google/index.js";
14
+ export { GoogleProvider } from "./providers/google/index.js";
13
15
  export { OpenRouterProvider } from "./providers/openrouter/index.js";
14
16
  export { XaiProvider } from "./providers/xai/index.js";
@@ -5,13 +5,13 @@ import { LlmHistory, LlmOperateOptions, LlmUsageItem } from "../../types/LlmProv
5
5
  import { LlmStreamChunk } from "../../types/LlmStreamChunk.interface.js";
6
6
  import { ClassifiedError, OperateRequest, ParsedResponse, ProviderToolDefinition, StandardToolCall, StandardToolResult } from "../types.js";
7
7
  import { BaseProviderAdapter } from "./ProviderAdapter.interface.js";
8
- import { GeminiPart, GeminiRawResponse, GeminiRequest } from "../../providers/gemini/types.js";
8
+ import { GeminiPart, GeminiRawResponse, GeminiRequest } from "../../providers/google/types.js";
9
9
  /**
10
- * GeminiAdapter implements the ProviderAdapter interface for Google's Gemini API.
10
+ * GoogleAdapter implements the ProviderAdapter interface for Google's Gemini API.
11
11
  * It handles request building, response parsing, and error classification
12
12
  * specific to Gemini's generateContent API.
13
13
  */
14
- export declare class GeminiAdapter extends BaseProviderAdapter {
14
+ export declare class GoogleAdapter extends BaseProviderAdapter {
15
15
  readonly name: "google";
16
16
  readonly defaultModel: "gemini-3.1-pro-preview";
17
17
  private runtimeNoStructuredOutputComboModels;
@@ -47,4 +47,4 @@ export declare class GeminiAdapter extends BaseProviderAdapter {
47
47
  private extractContent;
48
48
  private generateCallId;
49
49
  }
50
- export declare const geminiAdapter: GeminiAdapter;
50
+ export declare const googleAdapter: GoogleAdapter;
@@ -2,7 +2,7 @@ export { BaseProviderAdapter } from "./ProviderAdapter.interface.js";
2
2
  export type { ProviderAdapter } from "./ProviderAdapter.interface.js";
3
3
  export { AnthropicAdapter, anthropicAdapter } from "./AnthropicAdapter.js";
4
4
  export { BedrockAdapter, bedrockAdapter } from "./BedrockAdapter.js";
5
- export { GeminiAdapter, geminiAdapter } from "./GeminiAdapter.js";
5
+ export { GoogleAdapter, googleAdapter } from "./GoogleAdapter.js";
6
6
  export { OpenAiAdapter, openAiAdapter } from "./OpenAiAdapter.js";
7
7
  export { OpenRouterAdapter, openRouterAdapter } from "./OpenRouterAdapter.js";
8
8
  export { XaiAdapter, xaiAdapter } from "./XaiAdapter.js";
@@ -1,4 +1,4 @@
1
- export { AnthropicAdapter, anthropicAdapter, BaseProviderAdapter, BedrockAdapter, bedrockAdapter, GeminiAdapter, geminiAdapter, OpenAiAdapter, openAiAdapter, OpenRouterAdapter, openRouterAdapter, XaiAdapter, xaiAdapter, } from "./adapters/index.js";
1
+ export { AnthropicAdapter, anthropicAdapter, BaseProviderAdapter, BedrockAdapter, bedrockAdapter, GoogleAdapter, googleAdapter, OpenAiAdapter, openAiAdapter, OpenRouterAdapter, openRouterAdapter, XaiAdapter, xaiAdapter, } from "./adapters/index.js";
2
2
  export type { ProviderAdapter } from "./adapters/index.js";
3
3
  export { createOperateLoop, OperateLoop } from "./OperateLoop.js";
4
4
  export type { OperateLoopConfig } from "./OperateLoop.js";
@@ -1,7 +1,7 @@
1
1
  import { JsonObject } from "@jaypie/types";
2
2
  import { LlmHistory, LlmInputMessage, LlmMessageOptions, LlmOperateOptions, LlmOperateResponse, LlmProvider } from "../../types/LlmProvider.interface.js";
3
3
  import { LlmStreamChunk } from "../../types/LlmStreamChunk.interface.js";
4
- export declare class GeminiProvider implements LlmProvider {
4
+ export declare class GoogleProvider implements LlmProvider {
5
5
  private model;
6
6
  private _client?;
7
7
  private _operateLoop?;
@@ -0,0 +1,3 @@
1
+ export { GoogleProvider } from "./GoogleProvider.class.js";
2
+ export * from "./types.js";
3
+ export * from "./utils.js";
@@ -149,7 +149,7 @@ export type LlmHistory = LlmHistoryItem[];
149
149
  * Used when the primary provider fails with an unrecoverable error.
150
150
  */
151
151
  export interface LlmFallbackConfig {
152
- /** Provider name (e.g., "openai", "anthropic", "gemini") */
152
+ /** Provider name (e.g., "openai", "anthropic", "google") */
153
153
  provider: string;
154
154
  /** Model to use with this provider (optional, uses provider default if not specified) */
155
155
  model?: string;
@@ -1,3 +1,17 @@
1
+ export declare const MODEL: {
2
+ OPUS: string;
3
+ SONNET: string;
4
+ HAIKU: string;
5
+ FABLE: string;
6
+ MYTHOS: string;
7
+ GEMINI_FLASH: string;
8
+ GEMINI_FLASH_LITE: string;
9
+ GEMINI_PRO: string;
10
+ GPT: string;
11
+ GPT_MINI: string;
12
+ GPT_NANO: string;
13
+ GROK: string;
14
+ };
1
15
  export declare const PROVIDER: {
2
16
  readonly BEDROCK: {
3
17
  readonly MODEL: {
@@ -35,12 +49,27 @@ export declare const PROVIDER: {
35
49
  readonly SCHEMA_VERSION: "v2";
36
50
  };
37
51
  };
52
+ /** @deprecated Use PROVIDER.GOOGLE — "Google" is the provider; Gemini is the model family */
38
53
  readonly GEMINI: {
39
54
  readonly MODEL: {
40
55
  readonly DEFAULT: "gemini-3.1-pro-preview";
41
56
  readonly LARGE: "gemini-3.1-pro-preview";
42
57
  readonly SMALL: "gemini-3.5-flash";
43
- readonly TINY: "gemini-3.5-flash";
58
+ readonly TINY: "gemini-3.1-flash-lite";
59
+ };
60
+ readonly MODEL_MATCH_WORDS: readonly ["gemini", "google"];
61
+ readonly NAME: "google";
62
+ readonly ROLE: {
63
+ readonly MODEL: "model";
64
+ readonly USER: "user";
65
+ };
66
+ };
67
+ readonly GOOGLE: {
68
+ readonly MODEL: {
69
+ readonly DEFAULT: "gemini-3.1-pro-preview";
70
+ readonly LARGE: "gemini-3.1-pro-preview";
71
+ readonly SMALL: "gemini-3.5-flash";
72
+ readonly TINY: "gemini-3.1-flash-lite";
44
73
  };
45
74
  readonly MODEL_MATCH_WORDS: readonly ["gemini", "google"];
46
75
  readonly NAME: "google";
@@ -88,7 +117,7 @@ export declare const PROVIDER: {
88
117
  readonly NAME: "xai";
89
118
  };
90
119
  };
91
- export type LlmProviderName = typeof PROVIDER.ANTHROPIC.NAME | typeof PROVIDER.BEDROCK.NAME | typeof PROVIDER.GEMINI.NAME | typeof PROVIDER.OPENAI.NAME | typeof PROVIDER.OPENROUTER.NAME | typeof PROVIDER.XAI.NAME;
120
+ export type LlmProviderName = typeof PROVIDER.ANTHROPIC.NAME | typeof PROVIDER.BEDROCK.NAME | typeof PROVIDER.GOOGLE.NAME | typeof PROVIDER.OPENAI.NAME | typeof PROVIDER.OPENROUTER.NAME | typeof PROVIDER.XAI.NAME;
92
121
  export declare const DEFAULT: {
93
122
  readonly MODEL: {
94
123
  readonly BASE: "gpt-5.4";
@@ -109,8 +138,8 @@ export declare const DEFAULT: {
109
138
  };
110
139
  export declare const ALL: {
111
140
  readonly BASE: readonly ["claude-sonnet-4-6", "gemini-3.1-pro-preview", "gpt-5.4", "grok-latest"];
112
- readonly COMBINED: readonly ("claude-sonnet-4-6" | "claude-opus-4-8" | "claude-haiku-4-5" | "gemini-3.1-pro-preview" | "gemini-3.5-flash" | "gpt-5.4" | "gpt-5.5" | "gpt-5.4-mini" | "gpt-5.4-nano" | "grok-latest" | "grok-4.3-latest" | "grok-4-1-fast-reasoning" | "grok-4-1-fast-non-reasoning")[];
141
+ readonly COMBINED: readonly ("claude-sonnet-4-6" | "claude-opus-4-8" | "claude-haiku-4-5" | "gemini-3.1-pro-preview" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gpt-5.4" | "gpt-5.5" | "gpt-5.4-mini" | "gpt-5.4-nano" | "grok-latest" | "grok-4.3-latest" | "grok-4-1-fast-reasoning" | "grok-4-1-fast-non-reasoning")[];
113
142
  readonly LARGE: readonly ["claude-opus-4-8", "gemini-3.1-pro-preview", "gpt-5.5", "grok-4.3-latest"];
114
143
  readonly SMALL: readonly ["claude-sonnet-4-6", "gemini-3.5-flash", "gpt-5.4-mini", "grok-4-1-fast-reasoning"];
115
- readonly TINY: readonly ["claude-haiku-4-5", "gemini-3.5-flash", "gpt-5.4-nano", "grok-4-1-fast-non-reasoning"];
144
+ readonly TINY: readonly ["claude-haiku-4-5", "gemini-3.1-flash-lite", "gpt-5.4-nano", "grok-4-1-fast-non-reasoning"];
116
145
  };
@@ -9,6 +9,8 @@ export { LlmStreamChunkType } from "./types/LlmStreamChunk.interface.js";
9
9
  export { JaypieToolkit, toolkit, Toolkit, tools } from "./tools/index.js";
10
10
  export { extractReasoning } from "./util/extractReasoning.js";
11
11
  export { BedrockProvider } from "./providers/bedrock/index.js";
12
- export { GeminiProvider } from "./providers/gemini/index.js";
12
+ /** @deprecated Use GoogleProvider "Google" is the provider; Gemini is the model family */
13
+ export { GoogleProvider as GeminiProvider } from "./providers/google/index.js";
14
+ export { GoogleProvider } from "./providers/google/index.js";
13
15
  export { OpenRouterProvider } from "./providers/openrouter/index.js";
14
16
  export { XaiProvider } from "./providers/xai/index.js";
package/dist/esm/index.js CHANGED
@@ -20,11 +20,11 @@ const FIRST_CLASS_PROVIDER = {
20
20
  TINY: "claude-haiku-4-5",
21
21
  },
22
22
  // https://ai.google.dev/gemini-api/docs/models
23
- GEMINI: {
23
+ GOOGLE: {
24
24
  DEFAULT: "gemini-3.1-pro-preview",
25
25
  LARGE: "gemini-3.1-pro-preview",
26
26
  SMALL: "gemini-3.5-flash",
27
- TINY: "gemini-3.5-flash",
27
+ TINY: "gemini-3.1-flash-lite",
28
28
  },
29
29
  // https://developers.openai.com/api/docs/models
30
30
  OPENAI: {
@@ -41,6 +41,39 @@ const FIRST_CLASS_PROVIDER = {
41
41
  TINY: "grok-4-1-fast-non-reasoning",
42
42
  },
43
43
  };
44
+ const MODEL = {
45
+ // Anthropic
46
+ OPUS: "claude-opus-4-8",
47
+ SONNET: "claude-sonnet-4-6",
48
+ HAIKU: "claude-haiku-4-5",
49
+ FABLE: "claude-fable-5",
50
+ MYTHOS: "claude-mythos-5",
51
+ // Google
52
+ GEMINI_FLASH: "gemini-3.5-flash",
53
+ GEMINI_FLASH_LITE: "gemini-3.1-flash-lite",
54
+ GEMINI_PRO: "gemini-3.1-pro-preview",
55
+ // OpenAI
56
+ GPT: "gpt-5.5",
57
+ GPT_MINI: "gpt-5.4-mini",
58
+ GPT_NANO: "gpt-5.4-nano",
59
+ // xAI
60
+ GROK: "grok-latest",
61
+ };
62
+ const GOOGLE_PROVIDER = {
63
+ // https://ai.google.dev/gemini-api/docs/models
64
+ MODEL: {
65
+ DEFAULT: FIRST_CLASS_PROVIDER.GOOGLE.DEFAULT,
66
+ LARGE: FIRST_CLASS_PROVIDER.GOOGLE.LARGE,
67
+ SMALL: FIRST_CLASS_PROVIDER.GOOGLE.SMALL,
68
+ TINY: FIRST_CLASS_PROVIDER.GOOGLE.TINY,
69
+ },
70
+ MODEL_MATCH_WORDS: ["gemini", "google"],
71
+ NAME: "google",
72
+ ROLE: {
73
+ MODEL: "model",
74
+ USER: "user",
75
+ },
76
+ };
44
77
  const PROVIDER = {
45
78
  // https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html
46
79
  BEDROCK: {
@@ -94,21 +127,9 @@ const PROVIDER = {
94
127
  SCHEMA_VERSION: "v2",
95
128
  },
96
129
  },
97
- GEMINI: {
98
- // https://ai.google.dev/gemini-api/docs/models
99
- MODEL: {
100
- DEFAULT: FIRST_CLASS_PROVIDER.GEMINI.DEFAULT,
101
- LARGE: FIRST_CLASS_PROVIDER.GEMINI.LARGE,
102
- SMALL: FIRST_CLASS_PROVIDER.GEMINI.SMALL,
103
- TINY: FIRST_CLASS_PROVIDER.GEMINI.TINY,
104
- },
105
- MODEL_MATCH_WORDS: ["gemini", "google"],
106
- NAME: "google",
107
- ROLE: {
108
- MODEL: "model",
109
- USER: "user",
110
- },
111
- },
130
+ /** @deprecated Use PROVIDER.GOOGLE — "Google" is the provider; Gemini is the model family */
131
+ GEMINI: GOOGLE_PROVIDER,
132
+ GOOGLE: GOOGLE_PROVIDER,
112
133
  OPENAI: {
113
134
  // https://platform.openai.com/docs/models
114
135
  MODEL: {
@@ -164,7 +185,7 @@ const DEFAULT = {
164
185
  const ALL = {
165
186
  BASE: [
166
187
  PROVIDER.ANTHROPIC.MODEL.DEFAULT,
167
- PROVIDER.GEMINI.MODEL.DEFAULT,
188
+ PROVIDER.GOOGLE.MODEL.DEFAULT,
168
189
  PROVIDER.OPENAI.MODEL.DEFAULT,
169
190
  PROVIDER.XAI.MODEL.DEFAULT,
170
191
  ],
@@ -174,10 +195,10 @@ const ALL = {
174
195
  PROVIDER.ANTHROPIC.MODEL.LARGE,
175
196
  PROVIDER.ANTHROPIC.MODEL.SMALL,
176
197
  PROVIDER.ANTHROPIC.MODEL.TINY,
177
- PROVIDER.GEMINI.MODEL.DEFAULT,
178
- PROVIDER.GEMINI.MODEL.LARGE,
179
- PROVIDER.GEMINI.MODEL.SMALL,
180
- PROVIDER.GEMINI.MODEL.TINY,
198
+ PROVIDER.GOOGLE.MODEL.DEFAULT,
199
+ PROVIDER.GOOGLE.MODEL.LARGE,
200
+ PROVIDER.GOOGLE.MODEL.SMALL,
201
+ PROVIDER.GOOGLE.MODEL.TINY,
181
202
  PROVIDER.OPENAI.MODEL.DEFAULT,
182
203
  PROVIDER.OPENAI.MODEL.LARGE,
183
204
  PROVIDER.OPENAI.MODEL.SMALL,
@@ -190,19 +211,19 @@ const ALL = {
190
211
  ],
191
212
  LARGE: [
192
213
  PROVIDER.ANTHROPIC.MODEL.LARGE,
193
- PROVIDER.GEMINI.MODEL.LARGE,
214
+ PROVIDER.GOOGLE.MODEL.LARGE,
194
215
  PROVIDER.OPENAI.MODEL.LARGE,
195
216
  PROVIDER.XAI.MODEL.LARGE,
196
217
  ],
197
218
  SMALL: [
198
219
  PROVIDER.ANTHROPIC.MODEL.SMALL,
199
- PROVIDER.GEMINI.MODEL.SMALL,
220
+ PROVIDER.GOOGLE.MODEL.SMALL,
200
221
  PROVIDER.OPENAI.MODEL.SMALL,
201
222
  PROVIDER.XAI.MODEL.SMALL,
202
223
  ],
203
224
  TINY: [
204
225
  PROVIDER.ANTHROPIC.MODEL.TINY,
205
- PROVIDER.GEMINI.MODEL.TINY,
226
+ PROVIDER.GOOGLE.MODEL.TINY,
206
227
  PROVIDER.OPENAI.MODEL.TINY,
207
228
  PROVIDER.XAI.MODEL.TINY,
208
229
  ],
@@ -212,6 +233,7 @@ var constants = /*#__PURE__*/Object.freeze({
212
233
  __proto__: null,
213
234
  ALL: ALL,
214
235
  DEFAULT: DEFAULT,
236
+ MODEL: MODEL,
215
237
  PROVIDER: PROVIDER
216
238
  });
217
239
 
@@ -251,10 +273,10 @@ function determineModelProvider(input) {
251
273
  provider: PROVIDER.ANTHROPIC.NAME,
252
274
  };
253
275
  }
254
- if (input === PROVIDER.GEMINI.NAME || input === "gemini") {
276
+ if (input === PROVIDER.GOOGLE.NAME || input === "gemini") {
255
277
  return {
256
- model: PROVIDER.GEMINI.MODEL.DEFAULT,
257
- provider: PROVIDER.GEMINI.NAME,
278
+ model: PROVIDER.GOOGLE.MODEL.DEFAULT,
279
+ provider: PROVIDER.GOOGLE.NAME,
258
280
  };
259
281
  }
260
282
  if (input === PROVIDER.OPENAI.NAME) {
@@ -285,11 +307,11 @@ function determineModelProvider(input) {
285
307
  }
286
308
  }
287
309
  // Check if input matches a Gemini model exactly
288
- for (const [, modelValue] of Object.entries(PROVIDER.GEMINI.MODEL)) {
310
+ for (const [, modelValue] of Object.entries(PROVIDER.GOOGLE.MODEL)) {
289
311
  if (input === modelValue) {
290
312
  return {
291
313
  model: input,
292
- provider: PROVIDER.GEMINI.NAME,
314
+ provider: PROVIDER.GOOGLE.NAME,
293
315
  };
294
316
  }
295
317
  }
@@ -348,11 +370,11 @@ function determineModelProvider(input) {
348
370
  }
349
371
  }
350
372
  // Check Gemini match words
351
- for (const matchWord of PROVIDER.GEMINI.MODEL_MATCH_WORDS) {
373
+ for (const matchWord of PROVIDER.GOOGLE.MODEL_MATCH_WORDS) {
352
374
  if (lowerInput.includes(matchWord)) {
353
375
  return {
354
376
  model: input,
355
- provider: PROVIDER.GEMINI.NAME,
377
+ provider: PROVIDER.GOOGLE.NAME,
356
378
  };
357
379
  }
358
380
  }
@@ -2046,8 +2068,7 @@ class BedrockAdapter extends BaseProviderAdapter {
2046
2068
  if (request.system) {
2047
2069
  bedrockRequest.system = [{ text: request.system }];
2048
2070
  }
2049
- if (request.temperature !== undefined &&
2050
- this.supportsTemperature(model)) {
2071
+ if (request.temperature !== undefined && this.supportsTemperature(model)) {
2051
2072
  bedrockRequest.inferenceConfig = {
2052
2073
  ...bedrockRequest.inferenceConfig,
2053
2074
  temperature: request.temperature,
@@ -2188,10 +2209,7 @@ class BedrockAdapter extends BaseProviderAdapter {
2188
2209
  return {
2189
2210
  ...rest,
2190
2211
  toolConfig: {
2191
- tools: [
2192
- ...(rest.toolConfig?.tools ?? []),
2193
- fakeTool,
2194
- ],
2212
+ tools: [...(rest.toolConfig?.tools ?? []), fakeTool],
2195
2213
  },
2196
2214
  };
2197
2215
  }
@@ -2415,7 +2433,8 @@ class BedrockAdapter extends BaseProviderAdapter {
2415
2433
  return this.extractStructuredOutput(response) !== undefined;
2416
2434
  }
2417
2435
  // Fake-tool path: last content block is a structured_output toolUse
2418
- const content = (bedrockResponse.output?.message?.content ?? []);
2436
+ const content = (bedrockResponse.output?.message?.content ??
2437
+ []);
2419
2438
  const last = content[content.length - 1];
2420
2439
  return (!!last &&
2421
2440
  "toolUse" in last &&
@@ -2424,14 +2443,16 @@ class BedrockAdapter extends BaseProviderAdapter {
2424
2443
  extractStructuredOutput(response) {
2425
2444
  const bedrockResponse = response;
2426
2445
  if (bedrockResponse.__jaypieStructuredOutput) {
2427
- const content = (bedrockResponse.output?.message?.content ?? []);
2446
+ const content = (bedrockResponse.output?.message?.content ??
2447
+ []);
2428
2448
  const textBlock = content.find((b) => "text" in b);
2429
2449
  if (!textBlock)
2430
2450
  return undefined;
2431
2451
  return extractJson(textBlock.text);
2432
2452
  }
2433
2453
  // Fake-tool path
2434
- const content = (bedrockResponse.output?.message?.content ?? []);
2454
+ const content = (bedrockResponse.output?.message?.content ??
2455
+ []);
2435
2456
  const last = content[content.length - 1];
2436
2457
  if (last &&
2437
2458
  "toolUse" in last &&
@@ -2508,15 +2529,15 @@ const NOT_RETRYABLE_STATUS_CODES = [
2508
2529
  // Main
2509
2530
  //
2510
2531
  /**
2511
- * GeminiAdapter implements the ProviderAdapter interface for Google's Gemini API.
2532
+ * GoogleAdapter implements the ProviderAdapter interface for Google's Gemini API.
2512
2533
  * It handles request building, response parsing, and error classification
2513
2534
  * specific to Gemini's generateContent API.
2514
2535
  */
2515
- class GeminiAdapter extends BaseProviderAdapter {
2536
+ class GoogleAdapter extends BaseProviderAdapter {
2516
2537
  constructor() {
2517
2538
  super(...arguments);
2518
- this.name = PROVIDER.GEMINI.NAME;
2519
- this.defaultModel = PROVIDER.GEMINI.MODEL.DEFAULT;
2539
+ this.name = PROVIDER.GOOGLE.NAME;
2540
+ this.defaultModel = PROVIDER.GOOGLE.MODEL.DEFAULT;
2520
2541
  // Session-level cache of Gemini 3 models observed to reject the native
2521
2542
  // `responseJsonSchema` + tools combo. When a model is in this set,
2522
2543
  // buildRequest engages the legacy fake-tool path instead.
@@ -2571,7 +2592,7 @@ class GeminiAdapter extends BaseProviderAdapter {
2571
2592
  ? [...request.tools]
2572
2593
  : [];
2573
2594
  if (request.format && hasUserTools && !useNativeCombo) {
2574
- log$2.warn(`[GeminiAdapter] Using legacy structured_output tool fallback for model ${geminiRequest.model}; native responseJsonSchema + tools combo is only available on Gemini 3.`);
2595
+ log$2.warn(`[GoogleAdapter] Using legacy structured_output tool fallback for model ${geminiRequest.model}; native responseJsonSchema + tools combo is only available on Gemini 3.`);
2575
2596
  allTools.push({
2576
2597
  name: STRUCTURED_OUTPUT_TOOL_NAME$1,
2577
2598
  description: "Output a structured JSON object, " +
@@ -2702,7 +2723,7 @@ class GeminiAdapter extends BaseProviderAdapter {
2702
2723
  if (wantsNativeCombo && isStructuredOutputComboUnsupportedError(error)) {
2703
2724
  const model = geminiRequest.model;
2704
2725
  this.rememberModelRejectsStructuredOutputCombo(model);
2705
- log$2.warn(`[GeminiAdapter] Model ${model} rejected native responseJsonSchema + tools combo; falling back to legacy structured_output tool emulation.`);
2726
+ log$2.warn(`[GoogleAdapter] Model ${model} rejected native responseJsonSchema + tools combo; falling back to legacy structured_output tool emulation.`);
2706
2727
  const fallbackRequest = this.toFallbackStructuredOutputRequest(geminiRequest);
2707
2728
  const response = await genAI.models.generateContent({
2708
2729
  model: fallbackRequest.model,
@@ -3284,7 +3305,7 @@ class GeminiAdapter extends BaseProviderAdapter {
3284
3305
  }
3285
3306
  }
3286
3307
  // Export singleton instance
3287
- const geminiAdapter = new GeminiAdapter();
3308
+ const googleAdapter = new GoogleAdapter();
3288
3309
 
3289
3310
  // Patterns for OpenAI reasoning models that support extended thinking
3290
3311
  const REASONING_MODEL_PATTERNS = [
@@ -6835,8 +6856,8 @@ function prepareMessages$2(message, { data, placeholders } = {}) {
6835
6856
  return { messages, systemInstruction: undefined };
6836
6857
  }
6837
6858
 
6838
- class GeminiProvider {
6839
- constructor(model = PROVIDER.GEMINI.MODEL.DEFAULT, { apiKey } = {}) {
6859
+ class GoogleProvider {
6860
+ constructor(model = PROVIDER.GOOGLE.MODEL.DEFAULT, { apiKey } = {}) {
6840
6861
  this.log = getLogger$3();
6841
6862
  this.conversationHistory = [];
6842
6863
  this.model = model;
@@ -6855,7 +6876,7 @@ class GeminiProvider {
6855
6876
  }
6856
6877
  const client = await this.getClient();
6857
6878
  this._operateLoop = createOperateLoop({
6858
- adapter: geminiAdapter,
6879
+ adapter: googleAdapter,
6859
6880
  client,
6860
6881
  });
6861
6882
  return this._operateLoop;
@@ -6866,7 +6887,7 @@ class GeminiProvider {
6866
6887
  }
6867
6888
  const client = await this.getClient();
6868
6889
  this._streamLoop = createStreamLoop({
6869
- adapter: geminiAdapter,
6890
+ adapter: googleAdapter,
6870
6891
  client,
6871
6892
  });
6872
6893
  return this._streamLoop;
@@ -7391,7 +7412,7 @@ class Llm {
7391
7412
  let finalModel = model;
7392
7413
  // Legacy: accept "gemini" but warn
7393
7414
  if (providerName === "gemini") {
7394
- log$2.warn(`Provider "gemini" is deprecated, use "${PROVIDER.GEMINI.NAME}" instead`);
7415
+ log$2.warn(`Provider "gemini" is deprecated, use "${PROVIDER.GOOGLE.NAME}" instead`);
7395
7416
  }
7396
7417
  if (model) {
7397
7418
  const modelDetermined = determineModelProvider(model);
@@ -7435,8 +7456,8 @@ class Llm {
7435
7456
  return new AnthropicProvider(model || PROVIDER.ANTHROPIC.MODEL.DEFAULT, { apiKey });
7436
7457
  case PROVIDER.BEDROCK.NAME:
7437
7458
  return new BedrockProvider(model || PROVIDER.BEDROCK.MODEL.DEFAULT);
7438
- case PROVIDER.GEMINI.NAME:
7439
- return new GeminiProvider(model || PROVIDER.GEMINI.MODEL.DEFAULT, {
7459
+ case PROVIDER.GOOGLE.NAME:
7460
+ return new GoogleProvider(model || PROVIDER.GOOGLE.MODEL.DEFAULT, {
7440
7461
  apiKey,
7441
7462
  });
7442
7463
  case PROVIDER.OPENAI.NAME:
@@ -7892,5 +7913,5 @@ const toolkit = new JaypieToolkit(tools);
7892
7913
  [LlmMessageRole.Developer]: "user",
7893
7914
  });
7894
7915
 
7895
- export { BedrockProvider, GeminiProvider, JaypieToolkit, constants as LLM, Llm, LlmMessageRole, LlmMessageType, LlmStreamChunkType, OpenRouterProvider, Toolkit, XaiProvider, extractReasoning, isLlmOperateInput, isLlmOperateInputContent, isLlmOperateInputFile, isLlmOperateInputImage, toolkit, tools };
7916
+ export { BedrockProvider, GoogleProvider as GeminiProvider, GoogleProvider, JaypieToolkit, constants as LLM, Llm, LlmMessageRole, LlmMessageType, LlmStreamChunkType, OpenRouterProvider, Toolkit, XaiProvider, extractReasoning, isLlmOperateInput, isLlmOperateInputContent, isLlmOperateInputFile, isLlmOperateInputImage, toolkit, tools };
7896
7917
  //# sourceMappingURL=index.js.map