@jaypie/llm 1.2.37 → 1.2.38
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/cjs/constants.d.ts +33 -4
- package/dist/cjs/index.cjs +70 -47
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/operate/adapters/{GeminiAdapter.d.ts → GoogleAdapter.d.ts} +4 -4
- package/dist/cjs/operate/adapters/index.d.ts +1 -1
- package/dist/cjs/operate/index.d.ts +1 -1
- package/dist/cjs/providers/{gemini/GeminiProvider.class.d.ts → google/GoogleProvider.class.d.ts} +1 -1
- package/dist/cjs/providers/google/index.d.ts +3 -0
- package/dist/cjs/types/LlmProvider.interface.d.ts +1 -1
- package/dist/esm/constants.d.ts +33 -4
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +69 -47
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/operate/adapters/{GeminiAdapter.d.ts → GoogleAdapter.d.ts} +4 -4
- package/dist/esm/operate/adapters/index.d.ts +1 -1
- package/dist/esm/operate/index.d.ts +1 -1
- package/dist/esm/providers/{gemini/GeminiProvider.class.d.ts → google/GoogleProvider.class.d.ts} +1 -1
- package/dist/esm/providers/google/index.d.ts +3 -0
- package/dist/esm/types/LlmProvider.interface.d.ts +1 -1
- package/package.json +1 -1
- package/dist/cjs/providers/gemini/index.d.ts +0 -3
- package/dist/esm/providers/gemini/index.d.ts +0 -3
- /package/dist/cjs/providers/{gemini → google}/types.d.ts +0 -0
- /package/dist/cjs/providers/{gemini → google}/utils.d.ts +0 -0
- /package/dist/esm/providers/{gemini → google}/types.d.ts +0 -0
- /package/dist/esm/providers/{gemini → google}/utils.d.ts +0 -0
package/dist/cjs/index.d.ts
CHANGED
|
@@ -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
|
-
|
|
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/
|
|
8
|
+
import { GeminiPart, GeminiRawResponse, GeminiRequest } from "../../providers/google/types.js";
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
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
|
|
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
|
|
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 {
|
|
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,
|
|
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";
|
package/dist/cjs/providers/{gemini/GeminiProvider.class.d.ts → google/GoogleProvider.class.d.ts}
RENAMED
|
@@ -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
|
|
4
|
+
export declare class GoogleProvider implements LlmProvider {
|
|
5
5
|
private model;
|
|
6
6
|
private _client?;
|
|
7
7
|
private _operateLoop?;
|
|
@@ -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", "
|
|
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;
|
package/dist/esm/constants.d.ts
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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
|
};
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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.
|
|
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.5-mini",
|
|
58
|
+
GPT_NANO: "gpt-5.5-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
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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.
|
|
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.
|
|
178
|
-
PROVIDER.
|
|
179
|
-
PROVIDER.
|
|
180
|
-
PROVIDER.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
276
|
+
if (input === PROVIDER.GOOGLE.NAME || input === "gemini") {
|
|
255
277
|
return {
|
|
256
|
-
model: PROVIDER.
|
|
257
|
-
provider: PROVIDER.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
377
|
+
provider: PROVIDER.GOOGLE.NAME,
|
|
356
378
|
};
|
|
357
379
|
}
|
|
358
380
|
}
|
|
@@ -2508,15 +2530,15 @@ const NOT_RETRYABLE_STATUS_CODES = [
|
|
|
2508
2530
|
// Main
|
|
2509
2531
|
//
|
|
2510
2532
|
/**
|
|
2511
|
-
*
|
|
2533
|
+
* GoogleAdapter implements the ProviderAdapter interface for Google's Gemini API.
|
|
2512
2534
|
* It handles request building, response parsing, and error classification
|
|
2513
2535
|
* specific to Gemini's generateContent API.
|
|
2514
2536
|
*/
|
|
2515
|
-
class
|
|
2537
|
+
class GoogleAdapter extends BaseProviderAdapter {
|
|
2516
2538
|
constructor() {
|
|
2517
2539
|
super(...arguments);
|
|
2518
|
-
this.name = PROVIDER.
|
|
2519
|
-
this.defaultModel = PROVIDER.
|
|
2540
|
+
this.name = PROVIDER.GOOGLE.NAME;
|
|
2541
|
+
this.defaultModel = PROVIDER.GOOGLE.MODEL.DEFAULT;
|
|
2520
2542
|
// Session-level cache of Gemini 3 models observed to reject the native
|
|
2521
2543
|
// `responseJsonSchema` + tools combo. When a model is in this set,
|
|
2522
2544
|
// buildRequest engages the legacy fake-tool path instead.
|
|
@@ -2571,7 +2593,7 @@ class GeminiAdapter extends BaseProviderAdapter {
|
|
|
2571
2593
|
? [...request.tools]
|
|
2572
2594
|
: [];
|
|
2573
2595
|
if (request.format && hasUserTools && !useNativeCombo) {
|
|
2574
|
-
log$2.warn(`[
|
|
2596
|
+
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
2597
|
allTools.push({
|
|
2576
2598
|
name: STRUCTURED_OUTPUT_TOOL_NAME$1,
|
|
2577
2599
|
description: "Output a structured JSON object, " +
|
|
@@ -2702,7 +2724,7 @@ class GeminiAdapter extends BaseProviderAdapter {
|
|
|
2702
2724
|
if (wantsNativeCombo && isStructuredOutputComboUnsupportedError(error)) {
|
|
2703
2725
|
const model = geminiRequest.model;
|
|
2704
2726
|
this.rememberModelRejectsStructuredOutputCombo(model);
|
|
2705
|
-
log$2.warn(`[
|
|
2727
|
+
log$2.warn(`[GoogleAdapter] Model ${model} rejected native responseJsonSchema + tools combo; falling back to legacy structured_output tool emulation.`);
|
|
2706
2728
|
const fallbackRequest = this.toFallbackStructuredOutputRequest(geminiRequest);
|
|
2707
2729
|
const response = await genAI.models.generateContent({
|
|
2708
2730
|
model: fallbackRequest.model,
|
|
@@ -3284,7 +3306,7 @@ class GeminiAdapter extends BaseProviderAdapter {
|
|
|
3284
3306
|
}
|
|
3285
3307
|
}
|
|
3286
3308
|
// Export singleton instance
|
|
3287
|
-
const
|
|
3309
|
+
const googleAdapter = new GoogleAdapter();
|
|
3288
3310
|
|
|
3289
3311
|
// Patterns for OpenAI reasoning models that support extended thinking
|
|
3290
3312
|
const REASONING_MODEL_PATTERNS = [
|
|
@@ -6835,8 +6857,8 @@ function prepareMessages$2(message, { data, placeholders } = {}) {
|
|
|
6835
6857
|
return { messages, systemInstruction: undefined };
|
|
6836
6858
|
}
|
|
6837
6859
|
|
|
6838
|
-
class
|
|
6839
|
-
constructor(model = PROVIDER.
|
|
6860
|
+
class GoogleProvider {
|
|
6861
|
+
constructor(model = PROVIDER.GOOGLE.MODEL.DEFAULT, { apiKey } = {}) {
|
|
6840
6862
|
this.log = getLogger$3();
|
|
6841
6863
|
this.conversationHistory = [];
|
|
6842
6864
|
this.model = model;
|
|
@@ -6855,7 +6877,7 @@ class GeminiProvider {
|
|
|
6855
6877
|
}
|
|
6856
6878
|
const client = await this.getClient();
|
|
6857
6879
|
this._operateLoop = createOperateLoop({
|
|
6858
|
-
adapter:
|
|
6880
|
+
adapter: googleAdapter,
|
|
6859
6881
|
client,
|
|
6860
6882
|
});
|
|
6861
6883
|
return this._operateLoop;
|
|
@@ -6866,7 +6888,7 @@ class GeminiProvider {
|
|
|
6866
6888
|
}
|
|
6867
6889
|
const client = await this.getClient();
|
|
6868
6890
|
this._streamLoop = createStreamLoop({
|
|
6869
|
-
adapter:
|
|
6891
|
+
adapter: googleAdapter,
|
|
6870
6892
|
client,
|
|
6871
6893
|
});
|
|
6872
6894
|
return this._streamLoop;
|
|
@@ -7391,7 +7413,7 @@ class Llm {
|
|
|
7391
7413
|
let finalModel = model;
|
|
7392
7414
|
// Legacy: accept "gemini" but warn
|
|
7393
7415
|
if (providerName === "gemini") {
|
|
7394
|
-
log$2.warn(`Provider "gemini" is deprecated, use "${PROVIDER.
|
|
7416
|
+
log$2.warn(`Provider "gemini" is deprecated, use "${PROVIDER.GOOGLE.NAME}" instead`);
|
|
7395
7417
|
}
|
|
7396
7418
|
if (model) {
|
|
7397
7419
|
const modelDetermined = determineModelProvider(model);
|
|
@@ -7435,8 +7457,8 @@ class Llm {
|
|
|
7435
7457
|
return new AnthropicProvider(model || PROVIDER.ANTHROPIC.MODEL.DEFAULT, { apiKey });
|
|
7436
7458
|
case PROVIDER.BEDROCK.NAME:
|
|
7437
7459
|
return new BedrockProvider(model || PROVIDER.BEDROCK.MODEL.DEFAULT);
|
|
7438
|
-
case PROVIDER.
|
|
7439
|
-
return new
|
|
7460
|
+
case PROVIDER.GOOGLE.NAME:
|
|
7461
|
+
return new GoogleProvider(model || PROVIDER.GOOGLE.MODEL.DEFAULT, {
|
|
7440
7462
|
apiKey,
|
|
7441
7463
|
});
|
|
7442
7464
|
case PROVIDER.OPENAI.NAME:
|
|
@@ -7892,5 +7914,5 @@ const toolkit = new JaypieToolkit(tools);
|
|
|
7892
7914
|
[LlmMessageRole.Developer]: "user",
|
|
7893
7915
|
});
|
|
7894
7916
|
|
|
7895
|
-
export { BedrockProvider, GeminiProvider, JaypieToolkit, constants as LLM, Llm, LlmMessageRole, LlmMessageType, LlmStreamChunkType, OpenRouterProvider, Toolkit, XaiProvider, extractReasoning, isLlmOperateInput, isLlmOperateInputContent, isLlmOperateInputFile, isLlmOperateInputImage, toolkit, tools };
|
|
7917
|
+
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
7918
|
//# sourceMappingURL=index.js.map
|