@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.
- package/dist/cjs/constants.d.ts +33 -4
- package/dist/cjs/index.cjs +78 -56
- 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 +77 -56
- 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.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
|
-
|
|
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
|
}
|
|
@@ -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
|
-
*
|
|
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
|
|
2536
|
+
class GoogleAdapter extends BaseProviderAdapter {
|
|
2516
2537
|
constructor() {
|
|
2517
2538
|
super(...arguments);
|
|
2518
|
-
this.name = PROVIDER.
|
|
2519
|
-
this.defaultModel = PROVIDER.
|
|
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(`[
|
|
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(`[
|
|
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
|
|
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
|
|
6839
|
-
constructor(model = PROVIDER.
|
|
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:
|
|
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:
|
|
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.
|
|
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.
|
|
7439
|
-
return new
|
|
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
|