@rudderjs/ai 1.1.1 → 1.3.0

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.
Files changed (56) hide show
  1. package/README.md +129 -0
  2. package/boost/guidelines.md +32 -1
  3. package/dist/agent.d.ts +69 -1
  4. package/dist/agent.d.ts.map +1 -1
  5. package/dist/agent.js +72 -1
  6. package/dist/agent.js.map +1 -1
  7. package/dist/audio.d.ts +12 -0
  8. package/dist/audio.d.ts.map +1 -1
  9. package/dist/audio.js +32 -15
  10. package/dist/audio.js.map +1 -1
  11. package/dist/fake.d.ts +23 -0
  12. package/dist/fake.d.ts.map +1 -1
  13. package/dist/fake.js +32 -0
  14. package/dist/fake.js.map +1 -1
  15. package/dist/image.d.ts +13 -0
  16. package/dist/image.d.ts.map +1 -1
  17. package/dist/image.js +39 -21
  18. package/dist/image.js.map +1 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/providers/anthropic.d.ts +3 -0
  23. package/dist/providers/anthropic.d.ts.map +1 -1
  24. package/dist/providers/anthropic.js +61 -10
  25. package/dist/providers/anthropic.js.map +1 -1
  26. package/dist/providers/google-cache-registry.d.ts +145 -0
  27. package/dist/providers/google-cache-registry.d.ts.map +1 -0
  28. package/dist/providers/google-cache-registry.js +209 -0
  29. package/dist/providers/google-cache-registry.js.map +1 -0
  30. package/dist/providers/google.d.ts +21 -2
  31. package/dist/providers/google.d.ts.map +1 -1
  32. package/dist/providers/google.js +90 -36
  33. package/dist/providers/google.js.map +1 -1
  34. package/dist/providers/openai.d.ts +10 -1
  35. package/dist/providers/openai.d.ts.map +1 -1
  36. package/dist/providers/openai.js +57 -6
  37. package/dist/providers/openai.js.map +1 -1
  38. package/dist/registry.d.ts +17 -0
  39. package/dist/registry.d.ts.map +1 -1
  40. package/dist/registry.js +31 -0
  41. package/dist/registry.js.map +1 -1
  42. package/dist/server/provider.d.ts +8 -0
  43. package/dist/server/provider.d.ts.map +1 -1
  44. package/dist/server/provider.js +17 -1
  45. package/dist/server/provider.js.map +1 -1
  46. package/dist/transcription.d.ts +12 -0
  47. package/dist/transcription.d.ts.map +1 -1
  48. package/dist/transcription.js +31 -14
  49. package/dist/transcription.js.map +1 -1
  50. package/dist/types.d.ts +77 -0
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/util/hash.d.ts +11 -0
  53. package/dist/util/hash.d.ts.map +1 -0
  54. package/dist/util/hash.js +23 -0
  55. package/dist/util/hash.js.map +1 -0
  56. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Minimal structural shape of a cache store the registry can use. Matches
3
+ * `@rudderjs/cache`'s `CacheAdapter` (see `packages/cache/src/index.ts`)
4
+ * for the methods we touch. Defined locally so this file (which lives in
5
+ * the runtime-agnostic main entry) doesn't take a cross-package dep — the
6
+ * AiProvider hands in the real adapter at boot.
7
+ */
8
+ export interface CacheStoreLike {
9
+ get<T = unknown>(key: string): Promise<T | null>;
10
+ set(key: string, value: unknown, ttlSeconds?: number): Promise<void>;
11
+ forget(key: string): Promise<void>;
12
+ }
13
+ export interface GoogleCacheRegistryOptions {
14
+ /** Optional cache backend (cross-process / cross-restart). Falls back to in-process Map. */
15
+ store?: CacheStoreLike;
16
+ /** Default TTL for newly-created Google `cachedContent` resources. Default `'1h'`. */
17
+ defaultTtl?: string;
18
+ /**
19
+ * Test-only override for the wall clock — pass `() => fakeNow` from tests.
20
+ * Production code never sets this.
21
+ * @internal
22
+ */
23
+ now?: () => number;
24
+ }
25
+ export interface ResolveArgs {
26
+ /** Live `@google/genai` client. */
27
+ client: GoogleClientLike;
28
+ /** Model id the request is going to. Caches are model-bound. */
29
+ model: string;
30
+ /** Stable hash of cached regions (system + tools + leading-N messages, by model). */
31
+ cacheKey: string;
32
+ systemInstruction?: {
33
+ parts: {
34
+ text: string;
35
+ }[];
36
+ } | undefined;
37
+ contents?: unknown[] | undefined;
38
+ tools?: unknown[] | undefined;
39
+ /** Override the registry's default TTL for this call. Duration string. */
40
+ ttl?: string | undefined;
41
+ }
42
+ export interface GoogleClientLike {
43
+ caches: {
44
+ create(args: {
45
+ model: string;
46
+ config: {
47
+ systemInstruction?: {
48
+ parts: {
49
+ text: string;
50
+ }[];
51
+ };
52
+ contents?: unknown[];
53
+ tools?: unknown[];
54
+ ttl?: string;
55
+ displayName?: string;
56
+ };
57
+ }): Promise<{
58
+ name: string;
59
+ expireTime?: string;
60
+ }>;
61
+ delete?(args: {
62
+ name: string;
63
+ }): Promise<void>;
64
+ };
65
+ }
66
+ /**
67
+ * Owns the `cacheKey → cachedContents/*` resource-name map for the Google
68
+ * provider. Coordinates concurrent creates, memoizes "too-small" failures,
69
+ * and drops stale entries on demand (so the adapter can recreate-on-404).
70
+ *
71
+ * Storage is pluggable: the AiProvider passes a `CacheStoreLike` (typically
72
+ * `@rudderjs/cache`'s adapter) when available, otherwise the registry uses
73
+ * an in-process `Map` and warns once. Either way, in-process locking keeps
74
+ * concurrent same-key requests from racing on `caches.create` within one
75
+ * worker.
76
+ */
77
+ export declare class GoogleCacheRegistry {
78
+ private readonly store?;
79
+ private readonly memory;
80
+ private readonly inFlight;
81
+ private readonly defaultTtl;
82
+ private readonly now;
83
+ private warnedNoStore;
84
+ constructor(opts?: GoogleCacheRegistryOptions);
85
+ /**
86
+ * Returns the `cachedContents/*` resource name for `args.cacheKey`,
87
+ * creating a Google cache resource if one doesn't exist yet. Returns
88
+ * `null` when the prompt is below the model's minimum-cacheable size
89
+ * (the failure is memoized for ~5min so a tight loop doesn't pound the
90
+ * create endpoint).
91
+ */
92
+ resolve(args: ResolveArgs): Promise<string | null>;
93
+ /**
94
+ * Drop a cached entry — used when `generateContent` returns 404 because
95
+ * the resource expired between create and use. The adapter recreates by
96
+ * calling `resolve()` again.
97
+ */
98
+ forget(cacheKey: string): Promise<void>;
99
+ private lookup;
100
+ private remember;
101
+ private expiryFromTtl;
102
+ }
103
+ /**
104
+ * Build a stable cache key for a Google request. The key combines the
105
+ * model id with the marked regions — switching models invalidates the
106
+ * cache (Google ties resources to a single model id).
107
+ */
108
+ export declare function buildGoogleCacheKey(model: string, cache: {
109
+ instructions?: boolean;
110
+ tools?: boolean;
111
+ messages?: number;
112
+ } | undefined, system: string | undefined, contents: unknown[], tools: unknown[] | undefined): string | undefined;
113
+ /**
114
+ * Split a `contents` array at the cache breakpoint. The first part is what
115
+ * lives inside the cached resource; the second part is what the request
116
+ * sends fresh on every call.
117
+ */
118
+ export declare function splitContentsAtCache(contents: unknown[], cache: {
119
+ messages?: number;
120
+ } | undefined): {
121
+ cached: unknown[];
122
+ fresh: unknown[];
123
+ };
124
+ /**
125
+ * Parse a duration string into milliseconds. Accepts plain seconds-string
126
+ * (`'3600s'`) or compact units (`'1h'`, `'30m'`, `'1d'`). Falls back to
127
+ * 1 hour on unparseable input.
128
+ */
129
+ declare function parseDurationMs(s: string): number;
130
+ /**
131
+ * Convert a duration string to the Google API's `Ns` format (seconds with
132
+ * an `s` suffix). Used when forwarding `ttl` to `caches.create`.
133
+ *
134
+ * @internal exported for tests
135
+ */
136
+ export declare function durationToGoogleTtl(s: string): string;
137
+ declare function isTooSmallError(err: unknown): boolean;
138
+ declare function isNotFoundError(err: unknown): boolean;
139
+ export declare const _internals: {
140
+ isTooSmallError: typeof isTooSmallError;
141
+ isNotFoundError: typeof isNotFoundError;
142
+ parseDurationMs: typeof parseDurationMs;
143
+ };
144
+ export {};
145
+ //# sourceMappingURL=google-cache-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-cache-registry.d.ts","sourceRoot":"","sources":["../../src/providers/google-cache-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,209 @@
1
+ import { cyrb53Hex } from '../util/hash.js';
2
+ const TOO_SMALL_TTL_MS = 5 * 60 * 1000; // 5 minutes — Q4 in plan
3
+ const KEY_PREFIX = 'rudderjs:ai:google-cache:';
4
+ /**
5
+ * Owns the `cacheKey → cachedContents/*` resource-name map for the Google
6
+ * provider. Coordinates concurrent creates, memoizes "too-small" failures,
7
+ * and drops stale entries on demand (so the adapter can recreate-on-404).
8
+ *
9
+ * Storage is pluggable: the AiProvider passes a `CacheStoreLike` (typically
10
+ * `@rudderjs/cache`'s adapter) when available, otherwise the registry uses
11
+ * an in-process `Map` and warns once. Either way, in-process locking keeps
12
+ * concurrent same-key requests from racing on `caches.create` within one
13
+ * worker.
14
+ */
15
+ export class GoogleCacheRegistry {
16
+ store;
17
+ memory = new Map();
18
+ inFlight = new Map();
19
+ defaultTtl;
20
+ now;
21
+ warnedNoStore = false;
22
+ constructor(opts = {}) {
23
+ if (opts.store)
24
+ this.store = opts.store;
25
+ this.defaultTtl = opts.defaultTtl ?? '1h';
26
+ this.now = opts.now ?? Date.now;
27
+ }
28
+ /**
29
+ * Returns the `cachedContents/*` resource name for `args.cacheKey`,
30
+ * creating a Google cache resource if one doesn't exist yet. Returns
31
+ * `null` when the prompt is below the model's minimum-cacheable size
32
+ * (the failure is memoized for ~5min so a tight loop doesn't pound the
33
+ * create endpoint).
34
+ */
35
+ async resolve(args) {
36
+ const storeKey = KEY_PREFIX + args.cacheKey;
37
+ const existing = await this.lookup(storeKey);
38
+ if (existing) {
39
+ if ('tooSmall' in existing)
40
+ return null;
41
+ return existing.name;
42
+ }
43
+ // In-process dedup — same-worker concurrent calls share one create.
44
+ const pending = this.inFlight.get(storeKey);
45
+ if (pending)
46
+ return pending;
47
+ const work = (async () => {
48
+ try {
49
+ const cache = await args.client.caches.create({
50
+ model: args.model,
51
+ config: {
52
+ ...(args.systemInstruction ? { systemInstruction: args.systemInstruction } : {}),
53
+ ...(args.contents ? { contents: args.contents } : {}),
54
+ ...(args.tools ? { tools: args.tools } : {}),
55
+ ttl: args.ttl ?? this.defaultTtl,
56
+ displayName: `rudderjs:${args.cacheKey}`,
57
+ },
58
+ });
59
+ await this.remember(storeKey, { name: cache.name, expiresAt: this.expiryFromTtl(args.ttl ?? this.defaultTtl) });
60
+ return cache.name;
61
+ }
62
+ catch (err) {
63
+ if (isTooSmallError(err)) {
64
+ await this.remember(storeKey, { tooSmall: true, expiresAt: this.now() + TOO_SMALL_TTL_MS });
65
+ console.warn(`[RudderJS AI] Google cache for hash ${args.cacheKey} below model minimum — running uncached. ` +
66
+ `Future calls with the same prefix will skip cache attempts for 5m.`);
67
+ return null;
68
+ }
69
+ // Any other error — let the caller fall back to uncached for THIS request,
70
+ // but don't poison the registry with a "tooSmall" entry.
71
+ console.warn(`[RudderJS AI] Google caches.create failed for hash ${args.cacheKey} — running uncached. ${err.message}`);
72
+ return null;
73
+ }
74
+ finally {
75
+ this.inFlight.delete(storeKey);
76
+ }
77
+ })();
78
+ this.inFlight.set(storeKey, work);
79
+ return work;
80
+ }
81
+ /**
82
+ * Drop a cached entry — used when `generateContent` returns 404 because
83
+ * the resource expired between create and use. The adapter recreates by
84
+ * calling `resolve()` again.
85
+ */
86
+ async forget(cacheKey) {
87
+ const storeKey = KEY_PREFIX + cacheKey;
88
+ this.memory.delete(storeKey);
89
+ if (this.store)
90
+ await this.store.forget(storeKey);
91
+ }
92
+ // ─── Internals ──────────────────────────────────────────
93
+ async lookup(storeKey) {
94
+ if (this.store) {
95
+ const entry = await this.store.get(storeKey);
96
+ if (entry && entry.expiresAt > this.now())
97
+ return entry;
98
+ if (entry)
99
+ await this.store.forget(storeKey);
100
+ return null;
101
+ }
102
+ if (!this.warnedNoStore) {
103
+ this.warnedNoStore = true;
104
+ console.warn('[RudderJS AI] Google prompt caching is using in-memory storage; ' +
105
+ 'install @rudderjs/cache for cross-process/restart persistence.');
106
+ }
107
+ const entry = this.memory.get(storeKey);
108
+ if (!entry)
109
+ return null;
110
+ if (entry.expiresAt > this.now())
111
+ return entry;
112
+ this.memory.delete(storeKey);
113
+ return null;
114
+ }
115
+ async remember(storeKey, entry) {
116
+ if (this.store) {
117
+ const ttlSeconds = Math.max(1, Math.ceil((entry.expiresAt - this.now()) / 1000));
118
+ await this.store.set(storeKey, entry, ttlSeconds);
119
+ return;
120
+ }
121
+ this.memory.set(storeKey, entry);
122
+ }
123
+ expiryFromTtl(ttl) {
124
+ return this.now() + parseDurationMs(ttl);
125
+ }
126
+ }
127
+ // ─── Helpers ────────────────────────────────────────────────
128
+ /**
129
+ * Build a stable cache key for a Google request. The key combines the
130
+ * model id with the marked regions — switching models invalidates the
131
+ * cache (Google ties resources to a single model id).
132
+ */
133
+ export function buildGoogleCacheKey(model, cache, system, contents, tools) {
134
+ if (!cache)
135
+ return undefined;
136
+ const parts = [{ model }];
137
+ if (cache.instructions && system)
138
+ parts.push({ s: system });
139
+ if (cache.tools && tools && tools.length > 0)
140
+ parts.push({ t: tools });
141
+ if (cache.messages && cache.messages > 0) {
142
+ const sliced = contents.slice(0, cache.messages);
143
+ if (sliced.length > 0)
144
+ parts.push({ m: sliced });
145
+ }
146
+ if (parts.length === 1)
147
+ return undefined; // only `{ model }` — no actual region
148
+ return cyrb53Hex(JSON.stringify(parts));
149
+ }
150
+ /**
151
+ * Split a `contents` array at the cache breakpoint. The first part is what
152
+ * lives inside the cached resource; the second part is what the request
153
+ * sends fresh on every call.
154
+ */
155
+ export function splitContentsAtCache(contents, cache) {
156
+ const n = Math.max(0, Math.min(contents.length, cache?.messages ?? 0));
157
+ return {
158
+ cached: contents.slice(0, n),
159
+ fresh: contents.slice(n),
160
+ };
161
+ }
162
+ const DURATION_RE = /^(\d+(?:\.\d+)?)(ms|s|m|h|d)$/i;
163
+ /**
164
+ * Parse a duration string into milliseconds. Accepts plain seconds-string
165
+ * (`'3600s'`) or compact units (`'1h'`, `'30m'`, `'1d'`). Falls back to
166
+ * 1 hour on unparseable input.
167
+ */
168
+ function parseDurationMs(s) {
169
+ const m = DURATION_RE.exec(s.trim());
170
+ if (!m)
171
+ return 60 * 60 * 1000;
172
+ const n = Number(m[1]);
173
+ const unit = (m[2] ?? 'h').toLowerCase();
174
+ switch (unit) {
175
+ case 'ms': return n;
176
+ case 's': return n * 1000;
177
+ case 'm': return n * 60 * 1000;
178
+ case 'h': return n * 60 * 60 * 1000;
179
+ case 'd': return n * 24 * 60 * 60 * 1000;
180
+ default: return 60 * 60 * 1000;
181
+ }
182
+ }
183
+ /**
184
+ * Convert a duration string to the Google API's `Ns` format (seconds with
185
+ * an `s` suffix). Used when forwarding `ttl` to `caches.create`.
186
+ *
187
+ * @internal exported for tests
188
+ */
189
+ export function durationToGoogleTtl(s) {
190
+ return `${Math.max(1, Math.ceil(parseDurationMs(s) / 1000))}s`;
191
+ }
192
+ function isTooSmallError(err) {
193
+ if (!err)
194
+ return false;
195
+ const msg = String(err.message ?? err).toLowerCase();
196
+ // Google returns INVALID_ARGUMENT with "minimum input token count" or similar wording.
197
+ return msg.includes('minimum') && (msg.includes('token') || msg.includes('input'));
198
+ }
199
+ function isNotFoundError(err) {
200
+ if (!err)
201
+ return false;
202
+ const status = err.status ?? err.code;
203
+ if (status === 404)
204
+ return true;
205
+ const msg = String(err.message ?? err).toLowerCase();
206
+ return msg.includes('not found') || msg.includes('404');
207
+ }
208
+ export const _internals = { isTooSmallError, isNotFoundError, parseDurationMs };
209
+ //# sourceMappingURL=google-cache-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-cache-registry.js","sourceRoot":"","sources":["../../src/providers/google-cache-registry.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,33 @@
1
- import type { ProviderFactory, ProviderAdapter, EmbeddingAdapter, ImageGenerationAdapter, FileAdapter } from '../types.js';
1
+ import type { ProviderFactory, ProviderAdapter, ProviderRequestOptions, ProviderResponse, StreamChunk, EmbeddingAdapter, ImageGenerationAdapter, FileAdapter } from '../types.js';
2
+ import { GoogleCacheRegistry } from './google-cache-registry.js';
2
3
  export interface GoogleConfig {
3
4
  apiKey: string;
4
5
  }
5
6
  export declare class GoogleProvider implements ProviderFactory {
6
7
  readonly name = "google";
7
8
  private readonly config;
8
- constructor(config: GoogleConfig);
9
+ private readonly cacheRegistry?;
10
+ constructor(config: GoogleConfig, cacheRegistry?: GoogleCacheRegistry);
9
11
  create(model: string): ProviderAdapter;
10
12
  createEmbedding(model: string): EmbeddingAdapter;
11
13
  createImage(model: string): ImageGenerationAdapter;
12
14
  createFiles(): FileAdapter;
13
15
  }
16
+ export declare class GoogleAdapter implements ProviderAdapter {
17
+ private readonly config;
18
+ private readonly model;
19
+ private readonly cacheRegistry?;
20
+ private client;
21
+ constructor(config: GoogleConfig, model: string, cacheRegistry?: GoogleCacheRegistry | undefined);
22
+ private getClient;
23
+ /**
24
+ * Build the request payload, consulting the cache registry if `options.cache`
25
+ * is set. Returns the payload for `generateContent` / `generateContentStream`
26
+ * plus the cache key (so the caller can `forget()` it on a 404 stale-cache
27
+ * retry).
28
+ */
29
+ private buildPayload;
30
+ generate(options: ProviderRequestOptions): Promise<ProviderResponse>;
31
+ stream(options: ProviderRequestOptions): AsyncIterable<StreamChunk>;
32
+ }
14
33
  //# sourceMappingURL=google.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/providers/google.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAQf,gBAAgB,EAEhB,sBAAsB,EAGtB,WAAW,EAIZ,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,IAAI,YAAW;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,EAAE,YAAY;IAIhC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;IAItC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB;IAIhD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAIlD,WAAW,IAAI,WAAW;CAG3B"}
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/providers/google.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EAKX,gBAAgB,EAEhB,sBAAsB,EAGtB,WAAW,EAIZ,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,mBAAmB,EAKpB,MAAM,4BAA4B,CAAA;AAEnC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,IAAI,YAAW;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAqB;gBAExC,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,mBAAmB;IAKrE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;IAItC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB;IAIhD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAIlD,WAAW,IAAI,WAAW;CAG3B;AAID,qBAAa,aAAc,YAAW,eAAe;IAIjD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IALjC,OAAO,CAAC,MAAM,CAAY;gBAGP,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,mBAAmB,GAAG,SAAS;YAGpD,SAAS;IAQvB;;;;;OAKG;YACW,YAAY;IA0DpB,QAAQ,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmBnE,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,aAAa,CAAC,WAAW,CAAC;CAkD3E"}
@@ -1,11 +1,15 @@
1
+ import { buildGoogleCacheKey, splitContentsAtCache, durationToGoogleTtl, _internals as _registryInternals, } from './google-cache-registry.js';
1
2
  export class GoogleProvider {
2
3
  name = 'google';
3
4
  config;
4
- constructor(config) {
5
+ cacheRegistry;
6
+ constructor(config, cacheRegistry) {
5
7
  this.config = config;
8
+ if (cacheRegistry)
9
+ this.cacheRegistry = cacheRegistry;
6
10
  }
7
11
  create(model) {
8
- return new GoogleAdapter(this.config, model);
12
+ return new GoogleAdapter(this.config, model, this.cacheRegistry);
9
13
  }
10
14
  createEmbedding(model) {
11
15
  return new GoogleEmbeddingAdapter(this.config, model);
@@ -18,13 +22,15 @@ export class GoogleProvider {
18
22
  }
19
23
  }
20
24
  // ─── Adapter ──────────────────────────────────────────────
21
- class GoogleAdapter {
25
+ export class GoogleAdapter {
22
26
  config;
23
27
  model;
28
+ cacheRegistry;
24
29
  client = null;
25
- constructor(config, model) {
30
+ constructor(config, model, cacheRegistry) {
26
31
  this.config = config;
27
32
  this.model = model;
33
+ this.cacheRegistry = cacheRegistry;
28
34
  }
29
35
  async getClient() {
30
36
  if (this.client)
@@ -34,9 +40,16 @@ class GoogleAdapter {
34
40
  this.client = new GoogleGenAI({ apiKey: this.config.apiKey });
35
41
  return this.client;
36
42
  }
37
- async generate(options) {
43
+ /**
44
+ * Build the request payload, consulting the cache registry if `options.cache`
45
+ * is set. Returns the payload for `generateContent` / `generateContentStream`
46
+ * plus the cache key (so the caller can `forget()` it on a 404 stale-cache
47
+ * retry).
48
+ */
49
+ async buildPayload(options) {
38
50
  const client = await this.getClient();
39
51
  const { system, contents } = toGeminiContents(options.messages);
52
+ const geminiTools = options.tools?.length ? toGeminiTools(options.tools) : undefined;
40
53
  const config = {};
41
54
  if (options.maxTokens)
42
55
  config['maxOutputTokens'] = options.maxTokens;
@@ -46,45 +59,86 @@ class GoogleAdapter {
46
59
  config['topP'] = options.topP;
47
60
  if (options.stop)
48
61
  config['stopSequences'] = options.stop;
49
- if (options.tools?.length)
50
- config['tools'] = [{ functionDeclarations: toGeminiTools(options.tools) }];
62
+ if (geminiTools)
63
+ config['tools'] = [{ functionDeclarations: geminiTools }];
51
64
  if (options.toolChoice)
52
65
  config['toolConfig'] = toGeminiToolConfig(options.toolChoice);
53
66
  // The Gemini SDK reads abortSignal from the config block.
54
67
  if (options.signal)
55
68
  config['abortSignal'] = options.signal;
56
- const response = await client.models.generateContent({
57
- model: this.model,
58
- contents,
59
- ...(system ? { systemInstruction: { parts: [{ text: system }] } } : {}),
60
- config,
61
- });
62
- return fromGeminiResponse(response);
69
+ let cacheName = null;
70
+ let cacheKey;
71
+ if (this.cacheRegistry && options.cache) {
72
+ cacheKey = buildGoogleCacheKey(this.model, options.cache, system, contents, geminiTools);
73
+ if (cacheKey) {
74
+ const { cached: cachedSlice } = splitContentsAtCache(contents, options.cache);
75
+ cacheName = await this.cacheRegistry.resolve({
76
+ client,
77
+ model: this.model,
78
+ cacheKey,
79
+ ...(options.cache.instructions && system ? { systemInstruction: { parts: [{ text: system }] } } : {}),
80
+ ...(cachedSlice.length > 0 ? { contents: cachedSlice } : {}),
81
+ ...(options.cache.tools && geminiTools ? { tools: [{ functionDeclarations: geminiTools }] } : {}),
82
+ ...(options.cache.ttl ? { ttl: durationToGoogleTtl(options.cache.ttl) } : {}),
83
+ });
84
+ }
85
+ }
86
+ if (cacheName) {
87
+ // Drop tools / system from the request — they're inherited from the cache resource.
88
+ const { fresh } = splitContentsAtCache(contents, options.cache);
89
+ const configForCachedRequest = { ...config };
90
+ delete configForCachedRequest['tools'];
91
+ configForCachedRequest['cachedContent'] = cacheName;
92
+ return {
93
+ payload: { model: this.model, contents: fresh, config: configForCachedRequest },
94
+ cacheKey,
95
+ };
96
+ }
97
+ return {
98
+ payload: {
99
+ model: this.model,
100
+ contents,
101
+ ...(system ? { systemInstruction: { parts: [{ text: system }] } } : {}),
102
+ config,
103
+ },
104
+ cacheKey,
105
+ };
106
+ }
107
+ async generate(options) {
108
+ const { payload, cacheKey } = await this.buildPayload(options);
109
+ const client = await this.getClient();
110
+ try {
111
+ const response = await client.models.generateContent(payload);
112
+ return fromGeminiResponse(response);
113
+ }
114
+ catch (err) {
115
+ if (cacheKey && this.cacheRegistry && _registryInternals.isNotFoundError(err)) {
116
+ // Stale `cachedContent` resource — drop and retry once with a fresh build.
117
+ await this.cacheRegistry.forget(cacheKey);
118
+ const { payload: retryPayload } = await this.buildPayload(options);
119
+ const response = await client.models.generateContent(retryPayload);
120
+ return fromGeminiResponse(response);
121
+ }
122
+ throw err;
123
+ }
63
124
  }
64
125
  async *stream(options) {
126
+ let payloadAndKey = await this.buildPayload(options);
65
127
  const client = await this.getClient();
66
- const { system, contents } = toGeminiContents(options.messages);
67
- const config = {};
68
- if (options.maxTokens)
69
- config['maxOutputTokens'] = options.maxTokens;
70
- if (options.temperature !== undefined)
71
- config['temperature'] = options.temperature;
72
- if (options.topP !== undefined)
73
- config['topP'] = options.topP;
74
- if (options.stop)
75
- config['stopSequences'] = options.stop;
76
- if (options.tools?.length)
77
- config['tools'] = [{ functionDeclarations: toGeminiTools(options.tools) }];
78
- if (options.toolChoice)
79
- config['toolConfig'] = toGeminiToolConfig(options.toolChoice);
80
- if (options.signal)
81
- config['abortSignal'] = options.signal;
82
- const response = await client.models.generateContentStream({
83
- model: this.model,
84
- contents,
85
- ...(system ? { systemInstruction: { parts: [{ text: system }] } } : {}),
86
- config,
87
- });
128
+ let response;
129
+ try {
130
+ response = await client.models.generateContentStream(payloadAndKey.payload);
131
+ }
132
+ catch (err) {
133
+ if (payloadAndKey.cacheKey && this.cacheRegistry && _registryInternals.isNotFoundError(err)) {
134
+ await this.cacheRegistry.forget(payloadAndKey.cacheKey);
135
+ payloadAndKey = await this.buildPayload(options);
136
+ response = await client.models.generateContentStream(payloadAndKey.payload);
137
+ }
138
+ else {
139
+ throw err;
140
+ }
141
+ }
88
142
  for await (const chunk of response) {
89
143
  const candidate = chunk.candidates?.[0];
90
144
  if (!candidate)