ai-functions 2.1.1 → 2.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.
- package/.turbo/turbo-build.log +1 -4
- package/CHANGELOG.md +68 -1
- package/README.md +397 -157
- package/dist/ai-promise.d.ts +50 -3
- package/dist/ai-promise.d.ts.map +1 -1
- package/dist/ai-promise.js +410 -51
- package/dist/ai-promise.js.map +1 -1
- package/dist/ai-schemas.d.ts +56 -0
- package/dist/ai-schemas.d.ts.map +1 -0
- package/dist/ai-schemas.js +53 -0
- package/dist/ai-schemas.js.map +1 -0
- package/dist/ai.d.ts +16 -242
- package/dist/ai.d.ts.map +1 -1
- package/dist/ai.js +54 -837
- package/dist/ai.js.map +1 -1
- package/dist/batch/anthropic.d.ts +6 -4
- package/dist/batch/anthropic.d.ts.map +1 -1
- package/dist/batch/anthropic.js +83 -145
- package/dist/batch/anthropic.js.map +1 -1
- package/dist/batch/bedrock.d.ts +8 -30
- package/dist/batch/bedrock.d.ts.map +1 -1
- package/dist/batch/bedrock.js +155 -338
- package/dist/batch/bedrock.js.map +1 -1
- package/dist/batch/cloudflare.d.ts +8 -20
- package/dist/batch/cloudflare.d.ts.map +1 -1
- package/dist/batch/cloudflare.js +68 -189
- package/dist/batch/cloudflare.js.map +1 -1
- package/dist/batch/google.d.ts +6 -20
- package/dist/batch/google.d.ts.map +1 -1
- package/dist/batch/google.js +70 -238
- package/dist/batch/google.js.map +1 -1
- package/dist/batch/index.d.ts +4 -1
- package/dist/batch/index.d.ts.map +1 -1
- package/dist/batch/index.js +4 -1
- package/dist/batch/index.js.map +1 -1
- package/dist/batch/memory.d.ts +1 -1
- package/dist/batch/memory.d.ts.map +1 -1
- package/dist/batch/memory.js +14 -10
- package/dist/batch/memory.js.map +1 -1
- package/dist/batch/openai.d.ts +11 -14
- package/dist/batch/openai.d.ts.map +1 -1
- package/dist/batch/openai.js +52 -156
- package/dist/batch/openai.js.map +1 -1
- package/dist/batch/provider.d.ts +111 -0
- package/dist/batch/provider.d.ts.map +1 -0
- package/dist/batch/provider.js +233 -0
- package/dist/batch/provider.js.map +1 -0
- package/dist/batch-map.d.ts.map +1 -1
- package/dist/batch-map.js +23 -17
- package/dist/batch-map.js.map +1 -1
- package/dist/batch-queue.d.ts +65 -0
- package/dist/batch-queue.d.ts.map +1 -1
- package/dist/batch-queue.js +169 -14
- package/dist/batch-queue.js.map +1 -1
- package/dist/budget.d.ts +272 -0
- package/dist/budget.d.ts.map +1 -0
- package/dist/budget.js +513 -0
- package/dist/budget.js.map +1 -0
- package/dist/cache.d.ts +295 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +433 -0
- package/dist/cache.js.map +1 -0
- package/dist/context.d.ts +42 -8
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +64 -62
- package/dist/context.js.map +1 -1
- package/dist/digital-objects-registry.d.ts +229 -0
- package/dist/digital-objects-registry.d.ts.map +1 -0
- package/dist/digital-objects-registry.js +617 -0
- package/dist/digital-objects-registry.js.map +1 -0
- package/dist/embeddings.d.ts +2 -2
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +35 -0
- package/dist/errors.js.map +1 -0
- package/dist/eval/runner.d.ts +10 -1
- package/dist/eval/runner.d.ts.map +1 -1
- package/dist/eval/runner.js +41 -35
- package/dist/eval/runner.js.map +1 -1
- package/dist/eval-log/in-memory.d.ts +34 -0
- package/dist/eval-log/in-memory.d.ts.map +1 -0
- package/dist/eval-log/in-memory.js +84 -0
- package/dist/eval-log/in-memory.js.map +1 -0
- package/dist/eval-log/index.d.ts +29 -0
- package/dist/eval-log/index.d.ts.map +1 -0
- package/dist/eval-log/index.js +39 -0
- package/dist/eval-log/index.js.map +1 -0
- package/dist/eval-log/types.d.ts +101 -0
- package/dist/eval-log/types.d.ts.map +1 -0
- package/dist/eval-log/types.js +16 -0
- package/dist/eval-log/types.js.map +1 -0
- package/dist/function-registry.d.ts +116 -0
- package/dist/function-registry.d.ts.map +1 -0
- package/dist/function-registry.js +546 -0
- package/dist/function-registry.js.map +1 -0
- package/dist/generate.d.ts +9 -3
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +18 -22
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +35 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +89 -42
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +118 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +187 -0
- package/dist/logger.js.map +1 -0
- package/dist/middleware/budget.d.ts +84 -0
- package/dist/middleware/budget.d.ts.map +1 -0
- package/dist/middleware/budget.js +110 -0
- package/dist/middleware/budget.js.map +1 -0
- package/dist/middleware/cache.d.ts +103 -0
- package/dist/middleware/cache.d.ts.map +1 -0
- package/dist/middleware/cache.js +228 -0
- package/dist/middleware/cache.js.map +1 -0
- package/dist/middleware/embed-cache.d.ts +99 -0
- package/dist/middleware/embed-cache.d.ts.map +1 -0
- package/dist/middleware/embed-cache.js +128 -0
- package/dist/middleware/embed-cache.js.map +1 -0
- package/dist/middleware/index.d.ts +11 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +11 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/trace.d.ts +103 -0
- package/dist/middleware/trace.d.ts.map +1 -0
- package/dist/middleware/trace.js +176 -0
- package/dist/middleware/trace.js.map +1 -0
- package/dist/primitives.d.ts +120 -1
- package/dist/primitives.d.ts.map +1 -1
- package/dist/primitives.js +398 -26
- package/dist/primitives.js.map +1 -1
- package/dist/retry.d.ts +368 -0
- package/dist/retry.d.ts.map +1 -0
- package/dist/retry.js +646 -0
- package/dist/retry.js.map +1 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +2 -10
- package/dist/schema.js.map +1 -1
- package/dist/telemetry.d.ts +128 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +285 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/template.d.ts.map +1 -1
- package/dist/template.js +6 -1
- package/dist/template.js.map +1 -1
- package/dist/tool-orchestration.d.ts +453 -0
- package/dist/tool-orchestration.d.ts.map +1 -0
- package/dist/tool-orchestration.js +763 -0
- package/dist/tool-orchestration.js.map +1 -0
- package/dist/type-guards.d.ts +28 -0
- package/dist/type-guards.d.ts.map +1 -0
- package/dist/type-guards.js +29 -0
- package/dist/type-guards.js.map +1 -0
- package/dist/types.d.ts +135 -17
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +36 -1
- package/dist/types.js.map +1 -1
- package/dist/wrap-for-v3.d.ts +80 -0
- package/dist/wrap-for-v3.d.ts.map +1 -0
- package/dist/wrap-for-v3.js +89 -0
- package/dist/wrap-for-v3.js.map +1 -0
- package/examples/00-quickstart.ts +232 -0
- package/examples/01-rag-chatbot.ts +212 -0
- package/examples/02-multi-agent-research.ts +290 -0
- package/examples/03-email-classification.ts +379 -0
- package/examples/04-content-moderation.ts +400 -0
- package/examples/05-document-extraction.ts +455 -0
- package/examples/06-streaming-chat-nextjs.ts +437 -0
- package/examples/07-cloudflare-worker.ts +483 -0
- package/examples/08-batch-processing.ts +491 -0
- package/examples/09-budget-constrained.ts +527 -0
- package/examples/10-tool-orchestration.ts +565 -0
- package/examples/11-retry-resilience.ts +403 -0
- package/examples/12-caching-strategies.ts +422 -0
- package/examples/README.md +145 -0
- package/package.json +10 -6
- package/src/ai-promise.ts +528 -99
- package/src/ai-schemas.ts +122 -0
- package/src/ai.ts +69 -1153
- package/src/batch/anthropic.ts +96 -161
- package/src/batch/bedrock.ts +203 -454
- package/src/batch/cloudflare.ts +99 -282
- package/src/batch/google.ts +91 -297
- package/src/batch/index.ts +4 -1
- package/src/batch/memory.ts +15 -10
- package/src/batch/openai.ts +65 -193
- package/src/batch/provider.ts +336 -0
- package/src/batch-map.ts +29 -24
- package/src/batch-queue.ts +200 -11
- package/src/budget.ts +740 -0
- package/src/cache.ts +681 -0
- package/src/context.ts +122 -76
- package/src/digital-objects-registry.ts +750 -0
- package/src/errors.ts +37 -0
- package/src/eval/runner.ts +63 -38
- package/src/eval-log/in-memory.ts +90 -0
- package/src/eval-log/index.ts +46 -0
- package/src/eval-log/types.ts +110 -0
- package/src/function-registry.ts +671 -0
- package/src/generate.ts +33 -33
- package/src/index.ts +325 -49
- package/src/logger.ts +232 -0
- package/src/middleware/budget.ts +171 -0
- package/src/middleware/cache.ts +299 -0
- package/src/middleware/embed-cache.ts +195 -0
- package/src/middleware/index.ts +23 -0
- package/src/middleware/trace.ts +248 -0
- package/src/primitives.ts +589 -62
- package/src/retry.ts +902 -0
- package/src/schema.ts +8 -17
- package/src/telemetry.ts +403 -0
- package/src/template.ts +8 -4
- package/src/tool-orchestration.ts +1173 -0
- package/src/type-guards.ts +31 -0
- package/src/types.ts +164 -25
- package/src/wrap-for-v3.ts +105 -0
- package/test/ai-promise.test.ts +1080 -0
- package/test/ai-proxy.test.ts +1 -1
- package/test/backward-compat.test.ts +147 -0
- package/test/batch-autosubmit-errors.test.ts +610 -0
- package/test/batch-blog-posts.test.ts +87 -129
- package/test/budget-tracking.test.ts +800 -0
- package/test/cache.test.ts +712 -0
- package/test/context-isolation.test.ts +687 -0
- package/test/core-functions.test.ts +183 -579
- package/test/decide.test.ts +154 -322
- package/test/define.test.ts +211 -8
- package/test/digital-objects-registry.test.ts +760 -0
- package/test/embedding-cache-middleware.test.ts +140 -0
- package/test/evals/deterministic.eval.test.ts +376 -0
- package/test/generate-core.test.ts +140 -229
- package/test/implicit-batch.test.ts +22 -65
- package/test/json-parse-error-handling.test.ts +463 -0
- package/test/retry-policy-integration.test.ts +117 -0
- package/test/retry.test.ts +1016 -0
- package/test/schema.test.ts +55 -19
- package/test/streaming.test.ts +316 -0
- package/test/template.test.ts +1164 -0
- package/test/tool-orchestration.test.ts +1040 -0
- package/test/wrap-for-v3.test.ts +612 -0
- package/vitest.config.js +6 -0
- package/vitest.config.ts +20 -0
- package/dist/rpc/auth.d.ts +0 -69
- package/dist/rpc/auth.d.ts.map +0 -1
- package/dist/rpc/auth.js +0 -136
- package/dist/rpc/auth.js.map +0 -1
- package/dist/rpc/client.d.ts +0 -62
- package/dist/rpc/client.d.ts.map +0 -1
- package/dist/rpc/client.js +0 -103
- package/dist/rpc/client.js.map +0 -1
- package/dist/rpc/deferred.d.ts +0 -60
- package/dist/rpc/deferred.d.ts.map +0 -1
- package/dist/rpc/deferred.js +0 -96
- package/dist/rpc/deferred.js.map +0 -1
- package/dist/rpc/index.d.ts +0 -22
- package/dist/rpc/index.d.ts.map +0 -1
- package/dist/rpc/index.js +0 -38
- package/dist/rpc/index.js.map +0 -1
- package/dist/rpc/local.d.ts +0 -42
- package/dist/rpc/local.d.ts.map +0 -1
- package/dist/rpc/local.js +0 -50
- package/dist/rpc/local.js.map +0 -1
- package/dist/rpc/server.d.ts +0 -165
- package/dist/rpc/server.d.ts.map +0 -1
- package/dist/rpc/server.js +0 -405
- package/dist/rpc/server.js.map +0 -1
- package/dist/rpc/session.d.ts +0 -32
- package/dist/rpc/session.d.ts.map +0 -1
- package/dist/rpc/session.js +0 -43
- package/dist/rpc/session.js.map +0 -1
- package/dist/rpc/transport.d.ts +0 -306
- package/dist/rpc/transport.d.ts.map +0 -1
- package/dist/rpc/transport.js +0 -731
- package/dist/rpc/transport.js.map +0 -1
- package/src/batch/anthropic.js +0 -256
- package/src/batch/bedrock.js +0 -584
- package/src/batch/cloudflare.js +0 -287
- package/src/batch/google.js +0 -359
- package/src/batch/index.js +0 -30
- package/src/batch/memory.js +0 -187
- package/src/batch/openai.js +0 -402
- package/src/eval/index.js +0 -7
- package/src/eval/models.js +0 -119
- package/src/eval/runner.js +0 -147
- package/test/schema.test.js +0 -96
package/dist/cache.d.ts
ADDED
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Caching layer for embeddings and generations
|
|
3
|
+
*
|
|
4
|
+
* Provides content-addressable caching for embeddings and parameter-aware
|
|
5
|
+
* caching for text/object generations with TTL support and LRU eviction.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Cache entry with metadata for tracking and eviction
|
|
11
|
+
*/
|
|
12
|
+
export interface CacheEntry<T> {
|
|
13
|
+
/** The cached value */
|
|
14
|
+
value: T;
|
|
15
|
+
/** When the entry was created */
|
|
16
|
+
createdAt: number;
|
|
17
|
+
/** When the entry was last accessed */
|
|
18
|
+
lastAccessedAt: number;
|
|
19
|
+
/** Number of times this entry has been accessed */
|
|
20
|
+
accessCount: number;
|
|
21
|
+
/** When the entry expires (if TTL is set) */
|
|
22
|
+
expiresAt?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Options for cache operations
|
|
26
|
+
*/
|
|
27
|
+
export interface CacheOptions {
|
|
28
|
+
/** Time-to-live in milliseconds */
|
|
29
|
+
ttl?: number;
|
|
30
|
+
/** Whether to bypass cache and force fresh result */
|
|
31
|
+
bypass?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Cache statistics for monitoring
|
|
35
|
+
*/
|
|
36
|
+
export interface CacheStats {
|
|
37
|
+
/** Number of cache hits */
|
|
38
|
+
hits: number;
|
|
39
|
+
/** Number of cache misses */
|
|
40
|
+
misses: number;
|
|
41
|
+
/** Hit rate (0-1) */
|
|
42
|
+
hitRate: number;
|
|
43
|
+
/** Current number of entries */
|
|
44
|
+
size: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Configuration options for MemoryCache
|
|
48
|
+
*/
|
|
49
|
+
export interface MemoryCacheOptions {
|
|
50
|
+
/** Default TTL for entries in milliseconds */
|
|
51
|
+
defaultTTL?: number;
|
|
52
|
+
/** Maximum number of entries (enables LRU eviction) */
|
|
53
|
+
maxSize?: number;
|
|
54
|
+
/** Whether to refresh TTL on access (sliding window) */
|
|
55
|
+
slidingExpiration?: boolean;
|
|
56
|
+
/** Interval for cleanup of expired entries in milliseconds */
|
|
57
|
+
cleanupInterval?: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Abstract cache storage interface for pluggable backends
|
|
61
|
+
*/
|
|
62
|
+
export interface CacheStorage<T> {
|
|
63
|
+
/** Get a value by key */
|
|
64
|
+
get(key: string): Promise<T | undefined>;
|
|
65
|
+
/** Set a value by key */
|
|
66
|
+
set(key: string, value: T, options?: CacheOptions): Promise<void>;
|
|
67
|
+
/** Check if a key exists */
|
|
68
|
+
has(key: string): Promise<boolean>;
|
|
69
|
+
/** Delete a key */
|
|
70
|
+
delete(key: string): Promise<void>;
|
|
71
|
+
/** Clear all entries */
|
|
72
|
+
clear(): Promise<void>;
|
|
73
|
+
/** Get the number of entries */
|
|
74
|
+
size(): Promise<number>;
|
|
75
|
+
/** Get all keys */
|
|
76
|
+
keys(): Promise<string[]>;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* In-memory cache implementation with TTL and LRU eviction support
|
|
80
|
+
*
|
|
81
|
+
* @deprecated Phase C Week 1 — `MemoryCache` has zero production callers in
|
|
82
|
+
* primitives.org.ai (audited 2026-05-06; see `bd show aip-ibid`). New code
|
|
83
|
+
* should use `cacheMiddleware` (for `wrapLanguageModel`) or
|
|
84
|
+
* `embeddingCacheMiddleware` (for `wrapEmbeddingModel`) instead — both
|
|
85
|
+
* compose with AI SDK 6's `wrapLanguageModel` / `wrapEmbeddingModel` and
|
|
86
|
+
* carry per-call telemetry (TraceEvent emission) and budget tracking when
|
|
87
|
+
* paired via `wrapForV3`. The `MemoryCache` class will be removed in the
|
|
88
|
+
* Phase C semver bump alongside `EmbeddingCache` and `GenerationCache`.
|
|
89
|
+
*/
|
|
90
|
+
export declare class MemoryCache<T> implements CacheStorage<T> {
|
|
91
|
+
private cache;
|
|
92
|
+
private accessOrder;
|
|
93
|
+
private options;
|
|
94
|
+
private cleanupTimer?;
|
|
95
|
+
constructor(options?: MemoryCacheOptions);
|
|
96
|
+
/**
|
|
97
|
+
* Get a value by key
|
|
98
|
+
*/
|
|
99
|
+
get(key: string): Promise<T | undefined>;
|
|
100
|
+
/**
|
|
101
|
+
* Set a value by key
|
|
102
|
+
*/
|
|
103
|
+
set(key: string, value: T, options?: CacheOptions): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Check if a key exists
|
|
106
|
+
*/
|
|
107
|
+
has(key: string): Promise<boolean>;
|
|
108
|
+
/**
|
|
109
|
+
* Delete a key
|
|
110
|
+
*/
|
|
111
|
+
delete(key: string): Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Clear all entries
|
|
114
|
+
*/
|
|
115
|
+
clear(): Promise<void>;
|
|
116
|
+
/**
|
|
117
|
+
* Get the number of entries (excluding expired)
|
|
118
|
+
*/
|
|
119
|
+
size(): Promise<number>;
|
|
120
|
+
/**
|
|
121
|
+
* Get all keys
|
|
122
|
+
*/
|
|
123
|
+
keys(): Promise<string[]>;
|
|
124
|
+
/**
|
|
125
|
+
* Get full entry with metadata
|
|
126
|
+
*/
|
|
127
|
+
getEntry(key: string): Promise<CacheEntry<T> | undefined>;
|
|
128
|
+
/**
|
|
129
|
+
* Dispose cleanup timer
|
|
130
|
+
*/
|
|
131
|
+
dispose(): void;
|
|
132
|
+
/**
|
|
133
|
+
* Clean up expired entries
|
|
134
|
+
*/
|
|
135
|
+
private cleanup;
|
|
136
|
+
/**
|
|
137
|
+
* Evict the least recently used entry
|
|
138
|
+
*/
|
|
139
|
+
private evictLRU;
|
|
140
|
+
/**
|
|
141
|
+
* Update access order for LRU tracking
|
|
142
|
+
*/
|
|
143
|
+
private updateAccessOrder;
|
|
144
|
+
/**
|
|
145
|
+
* Remove a key from access order
|
|
146
|
+
*/
|
|
147
|
+
private removeFromAccessOrder;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Generate a hash for cache keys
|
|
151
|
+
* Uses a fast, non-cryptographic hash suitable for cache keys
|
|
152
|
+
*/
|
|
153
|
+
export declare function hashKey(input: unknown): string;
|
|
154
|
+
/**
|
|
155
|
+
* Cache key type
|
|
156
|
+
*/
|
|
157
|
+
export type CacheKeyType = 'embedding' | 'generation';
|
|
158
|
+
/**
|
|
159
|
+
* Create a cache key for a specific type and parameters
|
|
160
|
+
*/
|
|
161
|
+
export declare function createCacheKey(type: CacheKeyType, params: Record<string, unknown>): string;
|
|
162
|
+
/**
|
|
163
|
+
* Options for embedding cache operations
|
|
164
|
+
*/
|
|
165
|
+
export interface EmbeddingCacheOptions {
|
|
166
|
+
/** The embedding model used */
|
|
167
|
+
model: string;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Result from batch embedding cache lookup
|
|
171
|
+
*/
|
|
172
|
+
export interface BatchEmbeddingResult {
|
|
173
|
+
/** Map of text to cached embedding */
|
|
174
|
+
hits: Record<string, number[]>;
|
|
175
|
+
/** Texts that were not in cache */
|
|
176
|
+
misses: string[];
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Specialized cache for embedding vectors
|
|
180
|
+
*
|
|
181
|
+
* @deprecated Phase C Week 1 — `EmbeddingCache` has zero production callers
|
|
182
|
+
* in primitives.org.ai (audited 2026-05-06; see `bd show aip-ibid`). New
|
|
183
|
+
* code should use `embeddingCacheMiddleware` (for `wrapEmbeddingModel`) —
|
|
184
|
+
* it composes with AI SDK 6 directly and carries trace + budget telemetry
|
|
185
|
+
* when paired via `wrapForV3`. Note: `embeddingCacheMiddleware` keys on the
|
|
186
|
+
* whole batch, not per-text — callers wanting per-text caching should pass
|
|
187
|
+
* stable per-text batches. Will be removed in the Phase C semver bump.
|
|
188
|
+
*/
|
|
189
|
+
export declare class EmbeddingCache {
|
|
190
|
+
private storage;
|
|
191
|
+
private stats;
|
|
192
|
+
constructor(options?: MemoryCacheOptions);
|
|
193
|
+
/**
|
|
194
|
+
* Get a cached embedding
|
|
195
|
+
*/
|
|
196
|
+
get(content: string, options: EmbeddingCacheOptions): Promise<number[] | undefined>;
|
|
197
|
+
/**
|
|
198
|
+
* Set a cached embedding
|
|
199
|
+
*/
|
|
200
|
+
set(content: string, embedding: number[], options: EmbeddingCacheOptions): Promise<void>;
|
|
201
|
+
/**
|
|
202
|
+
* Set multiple embeddings at once
|
|
203
|
+
*/
|
|
204
|
+
setMany(texts: string[], embeddings: number[][], options: EmbeddingCacheOptions): Promise<void>;
|
|
205
|
+
/**
|
|
206
|
+
* Get multiple embeddings, returning hits and misses
|
|
207
|
+
*/
|
|
208
|
+
getMany(texts: string[], options: EmbeddingCacheOptions): Promise<BatchEmbeddingResult>;
|
|
209
|
+
/**
|
|
210
|
+
* Get cache statistics
|
|
211
|
+
*/
|
|
212
|
+
getStats(): CacheStats;
|
|
213
|
+
/**
|
|
214
|
+
* Clear the cache
|
|
215
|
+
*/
|
|
216
|
+
clear(): Promise<void>;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Parameters for generation cache key
|
|
220
|
+
*/
|
|
221
|
+
export interface GenerationParams {
|
|
222
|
+
/** The prompt text */
|
|
223
|
+
prompt: string;
|
|
224
|
+
/** The model to use */
|
|
225
|
+
model: string;
|
|
226
|
+
/** System prompt */
|
|
227
|
+
system?: string;
|
|
228
|
+
/** Temperature setting */
|
|
229
|
+
temperature?: number;
|
|
230
|
+
/** Schema version for structured outputs */
|
|
231
|
+
schemaVersion?: string;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Options for generation cache retrieval
|
|
235
|
+
*/
|
|
236
|
+
export interface GenerationCacheGetOptions {
|
|
237
|
+
/** Bypass cache and return undefined */
|
|
238
|
+
bypass?: boolean;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Specialized cache for generation results
|
|
242
|
+
*
|
|
243
|
+
* @deprecated Phase C Week 1 — `GenerationCache` has zero production callers
|
|
244
|
+
* in primitives.org.ai (audited 2026-05-06; see `bd show aip-ibid`). New
|
|
245
|
+
* code should use `cacheMiddleware` (for `wrapLanguageModel`) — it composes
|
|
246
|
+
* with AI SDK 6 directly and carries trace + budget telemetry when paired
|
|
247
|
+
* via `wrapForV3`. Will be removed in the Phase C semver bump.
|
|
248
|
+
*/
|
|
249
|
+
export declare class GenerationCache {
|
|
250
|
+
private storage;
|
|
251
|
+
private stats;
|
|
252
|
+
constructor(options?: MemoryCacheOptions);
|
|
253
|
+
/**
|
|
254
|
+
* Get a cached generation result
|
|
255
|
+
*/
|
|
256
|
+
get<T = unknown>(params: GenerationParams, options?: GenerationCacheGetOptions): Promise<T | undefined>;
|
|
257
|
+
/**
|
|
258
|
+
* Set a cached generation result
|
|
259
|
+
*/
|
|
260
|
+
set<T = unknown>(params: GenerationParams, result: T): Promise<void>;
|
|
261
|
+
/**
|
|
262
|
+
* Get cache statistics
|
|
263
|
+
*/
|
|
264
|
+
getStats(): CacheStats;
|
|
265
|
+
/**
|
|
266
|
+
* Clear the cache
|
|
267
|
+
*/
|
|
268
|
+
clear(): Promise<void>;
|
|
269
|
+
/**
|
|
270
|
+
* Create a cache key from generation parameters
|
|
271
|
+
*/
|
|
272
|
+
private createKey;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Options for withCache wrapper
|
|
276
|
+
*/
|
|
277
|
+
export interface WithCacheOptions<TArgs extends unknown[]> {
|
|
278
|
+
/** Function to generate cache key from arguments */
|
|
279
|
+
keyFn: (...args: TArgs) => string;
|
|
280
|
+
/** TTL for cached entries */
|
|
281
|
+
ttl?: number;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Cached function type with bypass support
|
|
285
|
+
*/
|
|
286
|
+
export interface CachedFunction<TArgs extends unknown[], TResult> {
|
|
287
|
+
(...args: TArgs): Promise<TResult>;
|
|
288
|
+
/** Call with cache bypass (force fresh result) */
|
|
289
|
+
bypass: (...args: TArgs) => Promise<TResult>;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Wrap an async function with caching
|
|
293
|
+
*/
|
|
294
|
+
export declare function withCache<TArgs extends unknown[], TResult>(cache: CacheStorage<TResult>, fn: (...args: TArgs) => Promise<TResult>, options: WithCacheOptions<TArgs>): CachedFunction<TArgs, TResult>;
|
|
295
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|