@gullabs/any-llm 0.10.1 → 0.11.1
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/README.md +8 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/skills/any-llm/SKILL.md +22 -15
package/README.md
CHANGED
|
@@ -52,7 +52,7 @@ const result = await client.runStructured(
|
|
|
52
52
|
{ auth: { apiKey: process.env.GEMINI_API_KEY! } },
|
|
53
53
|
)
|
|
54
54
|
|
|
55
|
-
const descriptor = defaultGeminiRegistry.resolve('google', 'gemini-3.
|
|
55
|
+
const descriptor = defaultGeminiRegistry.resolve('google', 'gemini-3.6-flash')
|
|
56
56
|
if (!descriptor) throw new Error('unknown model')
|
|
57
57
|
|
|
58
58
|
const parsedConfig = descriptor.configSchema.parse({
|
|
@@ -67,6 +67,13 @@ Built-in descriptors own the strict model-config contract:
|
|
|
67
67
|
provider's standard tier, and set `flex` explicitly when that trade-off is
|
|
68
68
|
intended. `priority` remains rejected by the library for now.
|
|
69
69
|
|
|
70
|
+
Registered Google ids: `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-2.5-flash-lite`,
|
|
71
|
+
`gemini-3.1-pro-preview`, `gemini-3.1-flash-lite`, `gemini-3.5-flash-lite`,
|
|
72
|
+
`gemini-3.6-flash`, `gemini-3.7-flash`, `gemini-3.8-flash`, `gemma-4-31b-it`,
|
|
73
|
+
`gemma-4-26b-a4b-it`. `gemini-3.1-pro-preview`, `gemini-3.7-flash`, and
|
|
74
|
+
`gemini-3.8-flash` do not admit `effort: 'none'`. `gemini-3-flash-preview` and
|
|
75
|
+
`gemini-3.5-flash` do not resolve.
|
|
76
|
+
|
|
70
77
|
## Key exports
|
|
71
78
|
|
|
72
79
|
This package re-exports the full public API of `@gullabs/core` and `@gullabs/google` verbatim —
|
package/dist/index.cjs
CHANGED
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";;;;;;;;AAEE,IAAA,OAAA,GAAW,QAAA;;;ACcN,IAAM,eAAA,GAA0B","file":"index.cjs","sourcesContent":["{\n \"name\": \"@gullabs/any-llm\",\n \"version\": \"0.
|
|
1
|
+
{"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";;;;;;;;AAEE,IAAA,OAAA,GAAW,QAAA;;;ACcN,IAAM,eAAA,GAA0B","file":"index.cjs","sourcesContent":["{\n \"name\": \"@gullabs/any-llm\",\n \"version\": \"0.11.1\",\n \"description\": \"Batteries-included any-llm client for Gemini: engine, adapter, and Google SDK in one install.\",\n \"type\": \"module\",\n \"license\": \"Apache-2.0\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/gul-labs/any-llm.git\",\n \"directory\": \"packages/any-llm\"\n },\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n }\n },\n \"files\": [\n \"dist\",\n \"skills\"\n ],\n \"scripts\": {\n \"build\": \"tsup\"\n },\n \"dependencies\": {\n \"@google/genai\": \"^2.24.0\",\n \"@gullabs/core\": \"workspace:*\",\n \"@gullabs/google\": \"workspace:*\"\n },\n \"engines\": {\n \"node\": \">=22.12.0\"\n },\n \"sideEffects\": false,\n \"keywords\": [\n \"llm\",\n \"gemini\",\n \"google-genai\",\n \"ai\",\n \"tokens\",\n \"cost\",\n \"usage\",\n \"observability\",\n \"typescript\"\n ],\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"homepage\": \"https://github.com/gul-labs/any-llm/tree/main/packages/any-llm#readme\",\n \"bugs\": \"https://github.com/gul-labs/any-llm/issues\"\n}\n","/**\n * @gullabs/any-llm — batteries-included public entrypoint.\n *\n * This package is the default client install path. It re-exports the core\n * engine and Gemini adapter while depending on the Gemini SDK for a one-package\n * setup.\n *\n * @module\n */\n\nexport * from '@gullabs/core'\nexport * from '@gullabs/google'\n\nimport { version } from '../package.json'\n\n/** Library version, sourced from package.json at build time. */\nexport const ANY_LLM_VERSION: string = version\n"]}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";;;;;;AAEE,IAAA,OAAA,GAAW,QAAA;;;ACcN,IAAM,eAAA,GAA0B","file":"index.js","sourcesContent":["{\n \"name\": \"@gullabs/any-llm\",\n \"version\": \"0.
|
|
1
|
+
{"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";;;;;;AAEE,IAAA,OAAA,GAAW,QAAA;;;ACcN,IAAM,eAAA,GAA0B","file":"index.js","sourcesContent":["{\n \"name\": \"@gullabs/any-llm\",\n \"version\": \"0.11.1\",\n \"description\": \"Batteries-included any-llm client for Gemini: engine, adapter, and Google SDK in one install.\",\n \"type\": \"module\",\n \"license\": \"Apache-2.0\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/gul-labs/any-llm.git\",\n \"directory\": \"packages/any-llm\"\n },\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n }\n },\n \"files\": [\n \"dist\",\n \"skills\"\n ],\n \"scripts\": {\n \"build\": \"tsup\"\n },\n \"dependencies\": {\n \"@google/genai\": \"^2.24.0\",\n \"@gullabs/core\": \"workspace:*\",\n \"@gullabs/google\": \"workspace:*\"\n },\n \"engines\": {\n \"node\": \">=22.12.0\"\n },\n \"sideEffects\": false,\n \"keywords\": [\n \"llm\",\n \"gemini\",\n \"google-genai\",\n \"ai\",\n \"tokens\",\n \"cost\",\n \"usage\",\n \"observability\",\n \"typescript\"\n ],\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"homepage\": \"https://github.com/gul-labs/any-llm/tree/main/packages/any-llm#readme\",\n \"bugs\": \"https://github.com/gul-labs/any-llm/issues\"\n}\n","/**\n * @gullabs/any-llm — batteries-included public entrypoint.\n *\n * This package is the default client install path. It re-exports the core\n * engine and Gemini adapter while depending on the Gemini SDK for a one-package\n * setup.\n *\n * @module\n */\n\nexport * from '@gullabs/core'\nexport * from '@gullabs/google'\n\nimport { version } from '../package.json'\n\n/** Library version, sourced from package.json at build time. */\nexport const ANY_LLM_VERSION: string = version\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gullabs/any-llm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "Batteries-included any-llm client for Gemini: engine, adapter, and Google SDK in one install.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"skills"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@google/genai": "^2.
|
|
28
|
-
"@gullabs/core": "0.
|
|
29
|
-
"@gullabs/google": "0.
|
|
27
|
+
"@google/genai": "^2.24.0",
|
|
28
|
+
"@gullabs/core": "0.15.0",
|
|
29
|
+
"@gullabs/google": "0.13.0"
|
|
30
30
|
},
|
|
31
31
|
"engines": {
|
|
32
32
|
"node": ">=22.12.0"
|
package/skills/any-llm/SKILL.md
CHANGED
|
@@ -158,11 +158,9 @@ const result = await client.generate(
|
|
|
158
158
|
)
|
|
159
159
|
```
|
|
160
160
|
|
|
161
|
-
`grok-4.5`
|
|
162
|
-
`grok-4.6`
|
|
163
|
-
`'
|
|
164
|
-
price, confirmed by live `cost_in_usd_ticks`). `grok-4.5` still rejects every
|
|
165
|
-
`serviceTier`. No `topK`.
|
|
161
|
+
`grok-4.5` admits `reasoning.effort` `'low' | 'medium' | 'high'`.
|
|
162
|
+
`grok-4.6` and `grok-4.7` also admit `'xhigh'`. All three admit
|
|
163
|
+
`serviceTier: 'priority'` (2× list price). `'none'` is rejected. No `topK`.
|
|
166
164
|
|
|
167
165
|
## xAI structured-output schemas vs. OpenAI-strict / codex-cli schemas
|
|
168
166
|
|
|
@@ -367,7 +365,7 @@ Treat model config as descriptor-owned:
|
|
|
367
365
|
```ts
|
|
368
366
|
import { defaultGeminiRegistry } from '@gullabs/google'
|
|
369
367
|
|
|
370
|
-
const descriptor = defaultGeminiRegistry.resolve('google', 'gemini-3.
|
|
368
|
+
const descriptor = defaultGeminiRegistry.resolve('google', 'gemini-3.6-flash')
|
|
371
369
|
if (!descriptor) throw new Error('unknown model')
|
|
372
370
|
|
|
373
371
|
// UI/forms:
|
|
@@ -538,23 +536,32 @@ config: {
|
|
|
538
536
|
}
|
|
539
537
|
```
|
|
540
538
|
|
|
541
|
-
`ReasoningEffort` is `'none' | 'low' | 'medium' | 'high' | 'xhigh'`. Admitted values
|
|
539
|
+
`ReasoningEffort` is `'none' | 'low' | 'medium' | 'high' | 'xhigh' | 'max'`. Admitted values
|
|
542
540
|
are per-model. Two provider APIs exist under the hood: Gemini 2.5 models take a
|
|
543
541
|
token `budgetTokens`; Gemini 3.x / Gemma 4 / xAI take a discrete `effort` level.
|
|
544
542
|
|
|
545
543
|
Use the model-native boundary directly:
|
|
546
544
|
|
|
547
|
-
- Gemini 2.5: `reasoning.budgetTokens` or admitted `reasoning.effort` (not `xhigh`)
|
|
548
|
-
- Gemini 3 / Gemma 4: `reasoning.effort` (not `xhigh`)
|
|
549
|
-
- xAI `grok-4.5`: `reasoning.effort` `'low' | 'high'`
|
|
550
|
-
- xAI `grok-4.6`: `reasoning.effort` `'low' | 'medium' | 'high' | 'xhigh'`
|
|
545
|
+
- Gemini 2.5: `reasoning.budgetTokens` or admitted `reasoning.effort` (not `xhigh` or `max`)
|
|
546
|
+
- Gemini 3 / Gemma 4: `reasoning.effort` (not `xhigh` or `max`)
|
|
547
|
+
- xAI `grok-4.5`: `reasoning.effort` `'low' | 'medium' | 'high'`
|
|
548
|
+
- xAI `grok-4.6` and `grok-4.7`: `reasoning.effort` `'low' | 'medium' | 'high' | 'xhigh'`
|
|
549
|
+
|
|
550
|
+
Registered Google ids: `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-2.5-flash-lite`,
|
|
551
|
+
`gemini-3.1-pro-preview`, `gemini-3.1-flash-lite`, `gemini-3.5-flash-lite`,
|
|
552
|
+
`gemini-3.6-flash`, `gemini-3.7-flash`, `gemini-3.8-flash`, `gemma-4-31b-it`,
|
|
553
|
+
`gemma-4-26b-a4b-it`. `gemini-3-flash-preview` and `gemini-3.5-flash` do not resolve.
|
|
551
554
|
|
|
552
555
|
Exact model reminders:
|
|
553
556
|
|
|
554
|
-
- `gemini-3.1-pro-preview`
|
|
557
|
+
- `gemini-3.1-pro-preview`, `gemini-3.7-flash`, and `gemini-3.8-flash` do **not** admit `effort: 'none'`
|
|
558
|
+
- Explicit-cache floors: 1024 on all six registered Gemini 3.x ids, live-verified on 2026-09-26 by a 103-token rejection and exact 1024-token create; 2048 remains configured on Gemini 2.5.
|
|
555
559
|
- Gemma 4 is binary: only `effort: 'none'` or `effort: 'high'`
|
|
556
560
|
- Omit `serviceTier` for provider-standard; set `flex` explicitly
|
|
557
561
|
- `priority` remains rejected by the library even though Google documents it
|
|
562
|
+
- July 21, 2026: Google deprecated sampling parameters `temperature`, `top_p`, and `top_k`. Gemini 3.x schemas already omit them. Gemini 2.5 and Gemma stay tunable.
|
|
563
|
+
- September 18, 2026: Gemini 2.5 access is restricted to projects that already used 2.5. The three 2.5 ids stay registered.
|
|
564
|
+
- xAI long-context rates apply at gross input `>= 200_000` (`long_context_threshold` is inclusive).
|
|
558
565
|
|
|
559
566
|
## Context caching — `GoogleCacheStore`
|
|
560
567
|
|
|
@@ -568,8 +575,8 @@ Optional preflight gate: pass `preflight` to the constructor to refuse a cache
|
|
|
568
575
|
`create()` — including through `getOrCreate()` and its coalesced in-flight path —
|
|
569
576
|
when the token-bearing payload (`model` + `contents` + `systemInstruction` only;
|
|
570
577
|
`ttl` and `displayName` are excluded) doesn't clear a minimum token count. This
|
|
571
|
-
mirrors
|
|
572
|
-
hard-coding it into the store.
|
|
578
|
+
mirrors the selected model's explicit-caching minimum (1024 on Gemini 3.x;
|
|
579
|
+
2048 on Gemini 2.5) without hard-coding it into the store.
|
|
573
580
|
|
|
574
581
|
```ts
|
|
575
582
|
import { GoogleCacheStore } from '@gullabs/google'
|
|
@@ -577,7 +584,7 @@ import { GoogleCacheStore } from '@gullabs/google'
|
|
|
577
584
|
const cacheStore = new GoogleCacheStore({
|
|
578
585
|
auth: { apiKey: myResolvedGeminiKey },
|
|
579
586
|
preflight: {
|
|
580
|
-
minTokens:
|
|
587
|
+
minTokens: 1024,
|
|
581
588
|
// Receives genai-native Content[]/Content|string — NOT the library's
|
|
582
589
|
// Message[] shape; there is no automatic conversion. Hosts building from
|
|
583
590
|
// Message[] should call client.countTokens separately instead.
|