vern-llm 0.4.0 → 1.0.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/dist/index.d.cts CHANGED
@@ -1,52 +1,4 @@
1
- //#region src/logger.d.ts
2
- interface Logger {
3
- debug(message: string): void;
4
- warn(message: string): void;
5
- error(message: string, meta?: Record<string, unknown>): void;
6
- }
7
- /**
8
- * Default logger. `debug` is gated by the `debug` option on VernLLM
9
- * warn/error always fire since they indicate real problems (retries, cache failures)
10
- */
11
- declare class ConsoleLogger implements Logger {
12
- private debugEnabled;
13
- constructor(debugEnabled: boolean);
14
- debug(message: string): void;
15
- warn(message: string): void;
16
- error(message: string, meta?: Record<string, unknown>): void;
17
- } //#endregion
18
- //#region src/circuitBreaker.d.ts
19
-
20
- //# sourceMappingURL=logger.d.ts.map
21
- interface CircuitBreakerOptions {
22
- /** Consecutive failures before the circuit opens, default 5 */
23
- threshold?: number;
24
- /** How long the circuit stays open before allowing a trial request, in ms. Default 30000 */
25
- cooldownMs?: number;
26
- }
27
- type CircuitState = 'closed' | 'open' | 'half-open';
28
- /**
29
- * Per retry VernLLM-instance circuit breaker. Tracks consecutive failures across
30
- * calls. Once the threshold is hit, short-circuits new calls with an
31
- * LLMError('circuit_open') instead of hitting the provider, until the
32
- * cooldown elapses and a single trial call is allowed through
33
- */
34
- declare class CircuitBreaker {
35
- private state;
36
- private consecutiveFailures;
37
- private openedAt;
38
- private threshold;
39
- private cooldownMs;
40
- constructor(options?: CircuitBreakerOptions);
41
- /** Throws if the circuit is open and the cooldown hasnt elapsed */
42
- assertClosed(): void;
43
- recordSuccess(): void;
44
- recordFailure(): void;
45
- getState(): CircuitState;
46
- }
47
-
48
- //#endregion
49
- //#region src/types.d.ts
1
+ //#region src/types/errors.d.ts
50
2
  type LLMErrorType = 'timeout' | 'api' | 'parse' | 'validation' | 'circuit_open' | 'unknown' | 'aborted';
51
3
  declare class LLMError extends Error {
52
4
  type: LLMErrorType;
@@ -55,19 +7,39 @@ declare class LLMError extends Error {
55
7
  constructor(message: string, type: LLMErrorType, status?: number | undefined, issues?: unknown | undefined);
56
8
  }
57
9
  declare function isLLMError(err: unknown): err is LLMError;
10
+
11
+ //#endregion
12
+ //#region src/types/cache.d.ts
13
+ //# sourceMappingURL=errors.d.ts.map
58
14
  interface CacheAdapter<T = unknown> {
59
- get(key: string): Promise<T | null>;
15
+ get(key: string): Promise<{
16
+ hit: boolean;
17
+ value: T | null;
18
+ }>;
60
19
  set(key: string, value: T, ttl: number): Promise<void>;
20
+ delete?(key: string): Promise<void>;
61
21
  }
62
22
  /**
63
23
  * Trivial default so the package works out of the box with no external deps
64
24
  * Not shared across processes, swap in Redis/Upstash/etc for production
65
25
  */
66
26
  declare class InMemoryCacheAdapter<T = unknown> implements CacheAdapter<T> {
27
+ private readonly maxSize;
67
28
  private store;
68
- get(key: string): Promise<T | null>;
29
+ constructor(maxSize?: number);
30
+ get(key: string): Promise<{
31
+ hit: boolean;
32
+ value: T | null;
33
+ }>;
69
34
  set(key: string, value: T, ttl: number): Promise<void>;
35
+ delete(key: string): Promise<void>;
36
+ private cleanupExpiredEntries;
37
+ private enforceSizeLimit;
70
38
  }
39
+
40
+ //#endregion
41
+ //#region src/types/client.d.ts
42
+ //# sourceMappingURL=cache.d.ts.map
71
43
  /**
72
44
  * Minimal shape compatible with the OpenAI SDKs chat.completions.create,
73
45
  * so consumers can pass an OpenAI client directly
@@ -117,6 +89,10 @@ interface LLMClient {
117
89
  };
118
90
  };
119
91
  }
92
+
93
+ //#endregion
94
+ //#region src/types/usage.d.ts
95
+ //# sourceMappingURL=client.d.ts.map
120
96
  type ReserveUsage = () => Promise<void>;
121
97
  type RefundUsage = () => Promise<void>;
122
98
  interface TokenUsage {
@@ -127,6 +103,10 @@ interface TokenUsage {
127
103
  model: string;
128
104
  }
129
105
  type OnUsage = (usage: TokenUsage) => void;
106
+
107
+ //#endregion
108
+ //#region src/types/schema.d.ts
109
+ //# sourceMappingURL=usage.d.ts.map
130
110
  /**
131
111
  * Minimal structural type for a Zod-like schema, so this package doesnt need
132
112
  * a hard dependency on a specific Zod major version. Any object exposing
@@ -141,6 +121,74 @@ interface SchemaLike<T> {
141
121
  error: unknown;
142
122
  };
143
123
  }
124
+ /**
125
+ * A provider-native JSON Schema for structured outputs (OpenAI/Groq
126
+ * `response_format: { type: 'json_schema' }`) This is the wire-format
127
+ * schema the model is constrained to generate against, distinct from
128
+ * `schema`, which is a client-side Zod validator run on the parsed result
129
+ * You can use one, both, or neither; using both gets you provider-level
130
+ * constraint plus client-side type inference/validation as a safety net
131
+ */
132
+ interface JsonSchemaSpec {
133
+ name: string;
134
+ schema: Record<string, unknown>;
135
+ /** Enforces the schema strictly (OpenAI-specific), default true when supported */
136
+ strict?: boolean;
137
+ description?: string;
138
+ }
139
+
140
+ //#endregion
141
+ //#region src/circuitBreaker.d.ts
142
+ //# sourceMappingURL=schema.d.ts.map
143
+ interface CircuitBreakerOptions {
144
+ /** Consecutive failures before the circuit opens, default 5 */
145
+ threshold?: number;
146
+ /** How long the circuit stays open before allowing a trial request, in ms. Default 30000 */
147
+ cooldownMs?: number;
148
+ }
149
+ type CircuitState = 'closed' | 'open' | 'half-open';
150
+ /**
151
+ * Per retry VernLLM-instance circuit breaker. Tracks consecutive failures across
152
+ * calls. Once the threshold is hit, short-circuits new calls with an
153
+ * LLMError('circuit_open') instead of hitting the provider, until the
154
+ * cooldown elapses and a single trial call is allowed through
155
+ */
156
+ declare class CircuitBreaker {
157
+ private state;
158
+ private consecutiveFailures;
159
+ private openedAt;
160
+ private threshold;
161
+ private cooldownMs;
162
+ constructor(options?: CircuitBreakerOptions);
163
+ /** Throws if the circuit is open and the cooldown hasnt elapsed */
164
+ assertClosed(): void;
165
+ recordSuccess(): void;
166
+ recordFailure(): void;
167
+ getState(): CircuitState;
168
+ }
169
+
170
+ //#endregion
171
+ //#region src/logger.d.ts
172
+ interface Logger {
173
+ debug(message: string): void;
174
+ warn(message: string): void;
175
+ error(message: string, meta?: Record<string, unknown>): void;
176
+ }
177
+ /**
178
+ * Default logger. `debug` is gated by the `debug` option on VernLLM
179
+ * warn/error always fire since they indicate real problems (retries, cache failures)
180
+ */
181
+ declare class ConsoleLogger implements Logger {
182
+ private debugEnabled;
183
+ constructor(debugEnabled: boolean);
184
+ debug(message: string): void;
185
+ warn(message: string): void;
186
+ error(message: string, meta?: Record<string, unknown>): void;
187
+ }
188
+
189
+ //#endregion
190
+ //#region src/types/options.d.ts
191
+ //# sourceMappingURL=logger.d.ts.map
144
192
  interface VernLLMOptions {
145
193
  client: LLMClient;
146
194
  model: string;
@@ -171,28 +219,17 @@ interface VernLLMOptions {
171
219
  */
172
220
  circuitBreaker?: boolean | CircuitBreakerOptions;
173
221
  }
174
- /**
175
- * A provider-native JSON Schema for structured outputs (OpenAI/Groq
176
- * `response_format: { type: 'json_schema' }`) This is the wire-format
177
- * schema the model is constrained to generate against, distinct from
178
- * `schema`, which is a client-side Zod validator run on the parsed result
179
- * You can use one, both, or neither; using both gets you provider-level
180
- * constraint plus client-side type inference/validation as a safety net
181
- */
182
- interface JsonSchemaSpec {
183
- name: string;
184
- schema: Record<string, unknown>;
185
- /** Enforces the schema strictly (OpenAI-specific), default true when supported */
186
- strict?: boolean;
187
- description?: string;
188
- }
222
+
223
+ //#endregion
224
+ //#region src/types/call.d.ts
225
+ //# sourceMappingURL=options.d.ts.map
189
226
  /** A single prior turn in a multi-turn conversation, passed via `history`. */
190
227
  interface ConversationTurn {
191
228
  role: 'user' | 'assistant';
192
229
  content: string;
193
230
  }
194
231
  interface CallParams<T = unknown> {
195
- systemPrompt: string;
232
+ systemPrompt?: string;
196
233
  userContent: string;
197
234
  /**
198
235
  * Prior turns in the conversation, oldest first, NOT including the current
@@ -236,10 +273,11 @@ interface CachedCallParams<T> {
236
273
  fn: () => Promise<T>;
237
274
  reserveUsage?: ReserveUsage;
238
275
  refundUsage?: RefundUsage;
239
- } //#endregion
240
- //#region src/vernLLM.d.ts
276
+ }
241
277
 
242
- //# sourceMappingURL=types.d.ts.map
278
+ //#endregion
279
+ //#region src/vernLLM.d.ts
280
+ //# sourceMappingURL=call.d.ts.map
243
281
  /**
244
282
  * A resilient wrapper around an LLM chat completions client, this is VernLLM!
245
283
  *
@@ -370,6 +408,14 @@ declare class VernLLM {
370
408
  * marked as non retryable. Retries everything else
371
409
  */
372
410
  private shouldRetry;
411
+ /**
412
+ * Removes a cached response by key when the configured cache adapter
413
+ * supports deletion.
414
+ *
415
+ * Cache invalidation remains the responsibility of the caller because
416
+ * only the application knows when cached data is stale.
417
+ */
418
+ deleteCache(key: string): Promise<void>;
373
419
  /**
374
420
  * Thin cache wrapper around caller supplied logic. `params.fn` is expected
375
421
  * to be a call that itself invokes `this.call(...)` (see `cachedLLMCall`
@@ -390,9 +436,10 @@ declare class VernLLM {
390
436
  * circuit breaker was configured on this instance
391
437
  */
392
438
  getCircuitState(): ("closed" | "open" | "half-open") | undefined;
393
- } //#endregion
394
- //#region src/adapters/anthropic.d.ts
439
+ }
395
440
 
441
+ //#endregion
442
+ //#region src/adapters/anthropic.d.ts
396
443
  //# sourceMappingURL=vernLLM.d.ts.map
397
444
  /** Minimal structural type for the Anthropic SDKs `messages.create` */
398
445
  interface AnthropicClient {
@@ -679,5 +726,5 @@ declare const fromOllama: typeof fromOpenAICompatible;
679
726
  //#endregion
680
727
  //# sourceMappingURL=openaiCompatible.d.ts.map
681
728
 
682
- export { CacheAdapter, CachedCallParams, CallParams, CircuitBreaker, CircuitBreakerOptions, ConsoleLogger, ConversationTurn, FetchAdapterConfig, InMemoryCacheAdapter, JsonSchemaSpec, LLMClient, LLMError, LLMErrorType, Logger, OnUsage, RefundUsage, ReserveUsage, SchemaLike, TokenUsage, VernLLM, VernLLMOptions, fromAnthropic, fromBedrock, fromCerebras, fromDeepSeek, fromFetch, fromFireworks, fromGemini, fromGroq, fromMistral, fromOllama, fromOpenAICompatible, fromTogether, isLLMError };
729
+ export { AnthropicClient, BedrockConverseClient, CacheAdapter, CachedCallParams, CallParams, CircuitBreaker, CircuitBreakerOptions, ConsoleLogger, ConversationTurn, FetchAdapterConfig, GeminiClient, InMemoryCacheAdapter, JsonSchemaSpec, LLMClient, LLMError, LLMErrorType, Logger, OnUsage, RefundUsage, ReserveUsage, SchemaLike, TokenUsage, VernLLM, VernLLMOptions, fromAnthropic, fromBedrock, fromCerebras, fromDeepSeek, fromFetch, fromFireworks, fromGemini, fromGroq, fromMistral, fromOllama, fromOpenAICompatible, fromTogether, isLLMError };
683
730
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/logger.ts","../src/circuitBreaker.ts","../src/types.ts","../src/vernLLM.ts","../src/adapters/anthropic.ts","../src/adapters/gemini.ts","../src/adapters/bedrock.ts","../src/adapters/fetch.ts","../src/adapters/openaiCompatible.ts"],"sourcesContent":null,"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types/errors.ts","../src/types/cache.ts","../src/types/client.ts","../src/types/usage.ts","../src/types/schema.ts","../src/circuitBreaker.ts","../src/logger.ts","../src/types/options.ts","../src/types/call.ts","../src/vernLLM.ts","../src/adapters/anthropic.ts","../src/adapters/gemini.ts","../src/adapters/bedrock.ts","../src/adapters/fetch.ts","../src/adapters/openaiCompatible.ts"],"sourcesContent":null,"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,52 +1,4 @@
1
- //#region src/logger.d.ts
2
- interface Logger {
3
- debug(message: string): void;
4
- warn(message: string): void;
5
- error(message: string, meta?: Record<string, unknown>): void;
6
- }
7
- /**
8
- * Default logger. `debug` is gated by the `debug` option on VernLLM
9
- * warn/error always fire since they indicate real problems (retries, cache failures)
10
- */
11
- declare class ConsoleLogger implements Logger {
12
- private debugEnabled;
13
- constructor(debugEnabled: boolean);
14
- debug(message: string): void;
15
- warn(message: string): void;
16
- error(message: string, meta?: Record<string, unknown>): void;
17
- } //#endregion
18
- //#region src/circuitBreaker.d.ts
19
-
20
- //# sourceMappingURL=logger.d.ts.map
21
- interface CircuitBreakerOptions {
22
- /** Consecutive failures before the circuit opens, default 5 */
23
- threshold?: number;
24
- /** How long the circuit stays open before allowing a trial request, in ms. Default 30000 */
25
- cooldownMs?: number;
26
- }
27
- type CircuitState = 'closed' | 'open' | 'half-open';
28
- /**
29
- * Per retry VernLLM-instance circuit breaker. Tracks consecutive failures across
30
- * calls. Once the threshold is hit, short-circuits new calls with an
31
- * LLMError('circuit_open') instead of hitting the provider, until the
32
- * cooldown elapses and a single trial call is allowed through
33
- */
34
- declare class CircuitBreaker {
35
- private state;
36
- private consecutiveFailures;
37
- private openedAt;
38
- private threshold;
39
- private cooldownMs;
40
- constructor(options?: CircuitBreakerOptions);
41
- /** Throws if the circuit is open and the cooldown hasnt elapsed */
42
- assertClosed(): void;
43
- recordSuccess(): void;
44
- recordFailure(): void;
45
- getState(): CircuitState;
46
- }
47
-
48
- //#endregion
49
- //#region src/types.d.ts
1
+ //#region src/types/errors.d.ts
50
2
  type LLMErrorType = 'timeout' | 'api' | 'parse' | 'validation' | 'circuit_open' | 'unknown' | 'aborted';
51
3
  declare class LLMError extends Error {
52
4
  type: LLMErrorType;
@@ -55,19 +7,39 @@ declare class LLMError extends Error {
55
7
  constructor(message: string, type: LLMErrorType, status?: number | undefined, issues?: unknown | undefined);
56
8
  }
57
9
  declare function isLLMError(err: unknown): err is LLMError;
10
+
11
+ //#endregion
12
+ //#region src/types/cache.d.ts
13
+ //# sourceMappingURL=errors.d.ts.map
58
14
  interface CacheAdapter<T = unknown> {
59
- get(key: string): Promise<T | null>;
15
+ get(key: string): Promise<{
16
+ hit: boolean;
17
+ value: T | null;
18
+ }>;
60
19
  set(key: string, value: T, ttl: number): Promise<void>;
20
+ delete?(key: string): Promise<void>;
61
21
  }
62
22
  /**
63
23
  * Trivial default so the package works out of the box with no external deps
64
24
  * Not shared across processes, swap in Redis/Upstash/etc for production
65
25
  */
66
26
  declare class InMemoryCacheAdapter<T = unknown> implements CacheAdapter<T> {
27
+ private readonly maxSize;
67
28
  private store;
68
- get(key: string): Promise<T | null>;
29
+ constructor(maxSize?: number);
30
+ get(key: string): Promise<{
31
+ hit: boolean;
32
+ value: T | null;
33
+ }>;
69
34
  set(key: string, value: T, ttl: number): Promise<void>;
35
+ delete(key: string): Promise<void>;
36
+ private cleanupExpiredEntries;
37
+ private enforceSizeLimit;
70
38
  }
39
+
40
+ //#endregion
41
+ //#region src/types/client.d.ts
42
+ //# sourceMappingURL=cache.d.ts.map
71
43
  /**
72
44
  * Minimal shape compatible with the OpenAI SDKs chat.completions.create,
73
45
  * so consumers can pass an OpenAI client directly
@@ -117,6 +89,10 @@ interface LLMClient {
117
89
  };
118
90
  };
119
91
  }
92
+
93
+ //#endregion
94
+ //#region src/types/usage.d.ts
95
+ //# sourceMappingURL=client.d.ts.map
120
96
  type ReserveUsage = () => Promise<void>;
121
97
  type RefundUsage = () => Promise<void>;
122
98
  interface TokenUsage {
@@ -127,6 +103,10 @@ interface TokenUsage {
127
103
  model: string;
128
104
  }
129
105
  type OnUsage = (usage: TokenUsage) => void;
106
+
107
+ //#endregion
108
+ //#region src/types/schema.d.ts
109
+ //# sourceMappingURL=usage.d.ts.map
130
110
  /**
131
111
  * Minimal structural type for a Zod-like schema, so this package doesnt need
132
112
  * a hard dependency on a specific Zod major version. Any object exposing
@@ -141,6 +121,74 @@ interface SchemaLike<T> {
141
121
  error: unknown;
142
122
  };
143
123
  }
124
+ /**
125
+ * A provider-native JSON Schema for structured outputs (OpenAI/Groq
126
+ * `response_format: { type: 'json_schema' }`) This is the wire-format
127
+ * schema the model is constrained to generate against, distinct from
128
+ * `schema`, which is a client-side Zod validator run on the parsed result
129
+ * You can use one, both, or neither; using both gets you provider-level
130
+ * constraint plus client-side type inference/validation as a safety net
131
+ */
132
+ interface JsonSchemaSpec {
133
+ name: string;
134
+ schema: Record<string, unknown>;
135
+ /** Enforces the schema strictly (OpenAI-specific), default true when supported */
136
+ strict?: boolean;
137
+ description?: string;
138
+ }
139
+
140
+ //#endregion
141
+ //#region src/circuitBreaker.d.ts
142
+ //# sourceMappingURL=schema.d.ts.map
143
+ interface CircuitBreakerOptions {
144
+ /** Consecutive failures before the circuit opens, default 5 */
145
+ threshold?: number;
146
+ /** How long the circuit stays open before allowing a trial request, in ms. Default 30000 */
147
+ cooldownMs?: number;
148
+ }
149
+ type CircuitState = 'closed' | 'open' | 'half-open';
150
+ /**
151
+ * Per retry VernLLM-instance circuit breaker. Tracks consecutive failures across
152
+ * calls. Once the threshold is hit, short-circuits new calls with an
153
+ * LLMError('circuit_open') instead of hitting the provider, until the
154
+ * cooldown elapses and a single trial call is allowed through
155
+ */
156
+ declare class CircuitBreaker {
157
+ private state;
158
+ private consecutiveFailures;
159
+ private openedAt;
160
+ private threshold;
161
+ private cooldownMs;
162
+ constructor(options?: CircuitBreakerOptions);
163
+ /** Throws if the circuit is open and the cooldown hasnt elapsed */
164
+ assertClosed(): void;
165
+ recordSuccess(): void;
166
+ recordFailure(): void;
167
+ getState(): CircuitState;
168
+ }
169
+
170
+ //#endregion
171
+ //#region src/logger.d.ts
172
+ interface Logger {
173
+ debug(message: string): void;
174
+ warn(message: string): void;
175
+ error(message: string, meta?: Record<string, unknown>): void;
176
+ }
177
+ /**
178
+ * Default logger. `debug` is gated by the `debug` option on VernLLM
179
+ * warn/error always fire since they indicate real problems (retries, cache failures)
180
+ */
181
+ declare class ConsoleLogger implements Logger {
182
+ private debugEnabled;
183
+ constructor(debugEnabled: boolean);
184
+ debug(message: string): void;
185
+ warn(message: string): void;
186
+ error(message: string, meta?: Record<string, unknown>): void;
187
+ }
188
+
189
+ //#endregion
190
+ //#region src/types/options.d.ts
191
+ //# sourceMappingURL=logger.d.ts.map
144
192
  interface VernLLMOptions {
145
193
  client: LLMClient;
146
194
  model: string;
@@ -171,28 +219,17 @@ interface VernLLMOptions {
171
219
  */
172
220
  circuitBreaker?: boolean | CircuitBreakerOptions;
173
221
  }
174
- /**
175
- * A provider-native JSON Schema for structured outputs (OpenAI/Groq
176
- * `response_format: { type: 'json_schema' }`) This is the wire-format
177
- * schema the model is constrained to generate against, distinct from
178
- * `schema`, which is a client-side Zod validator run on the parsed result
179
- * You can use one, both, or neither; using both gets you provider-level
180
- * constraint plus client-side type inference/validation as a safety net
181
- */
182
- interface JsonSchemaSpec {
183
- name: string;
184
- schema: Record<string, unknown>;
185
- /** Enforces the schema strictly (OpenAI-specific), default true when supported */
186
- strict?: boolean;
187
- description?: string;
188
- }
222
+
223
+ //#endregion
224
+ //#region src/types/call.d.ts
225
+ //# sourceMappingURL=options.d.ts.map
189
226
  /** A single prior turn in a multi-turn conversation, passed via `history`. */
190
227
  interface ConversationTurn {
191
228
  role: 'user' | 'assistant';
192
229
  content: string;
193
230
  }
194
231
  interface CallParams<T = unknown> {
195
- systemPrompt: string;
232
+ systemPrompt?: string;
196
233
  userContent: string;
197
234
  /**
198
235
  * Prior turns in the conversation, oldest first, NOT including the current
@@ -236,10 +273,11 @@ interface CachedCallParams<T> {
236
273
  fn: () => Promise<T>;
237
274
  reserveUsage?: ReserveUsage;
238
275
  refundUsage?: RefundUsage;
239
- } //#endregion
240
- //#region src/vernLLM.d.ts
276
+ }
241
277
 
242
- //# sourceMappingURL=types.d.ts.map
278
+ //#endregion
279
+ //#region src/vernLLM.d.ts
280
+ //# sourceMappingURL=call.d.ts.map
243
281
  /**
244
282
  * A resilient wrapper around an LLM chat completions client, this is VernLLM!
245
283
  *
@@ -370,6 +408,14 @@ declare class VernLLM {
370
408
  * marked as non retryable. Retries everything else
371
409
  */
372
410
  private shouldRetry;
411
+ /**
412
+ * Removes a cached response by key when the configured cache adapter
413
+ * supports deletion.
414
+ *
415
+ * Cache invalidation remains the responsibility of the caller because
416
+ * only the application knows when cached data is stale.
417
+ */
418
+ deleteCache(key: string): Promise<void>;
373
419
  /**
374
420
  * Thin cache wrapper around caller supplied logic. `params.fn` is expected
375
421
  * to be a call that itself invokes `this.call(...)` (see `cachedLLMCall`
@@ -390,9 +436,10 @@ declare class VernLLM {
390
436
  * circuit breaker was configured on this instance
391
437
  */
392
438
  getCircuitState(): ("closed" | "open" | "half-open") | undefined;
393
- } //#endregion
394
- //#region src/adapters/anthropic.d.ts
439
+ }
395
440
 
441
+ //#endregion
442
+ //#region src/adapters/anthropic.d.ts
396
443
  //# sourceMappingURL=vernLLM.d.ts.map
397
444
  /** Minimal structural type for the Anthropic SDKs `messages.create` */
398
445
  interface AnthropicClient {
@@ -679,5 +726,5 @@ declare const fromOllama: typeof fromOpenAICompatible;
679
726
  //#endregion
680
727
  //# sourceMappingURL=openaiCompatible.d.ts.map
681
728
 
682
- export { CacheAdapter, CachedCallParams, CallParams, CircuitBreaker, CircuitBreakerOptions, ConsoleLogger, ConversationTurn, FetchAdapterConfig, InMemoryCacheAdapter, JsonSchemaSpec, LLMClient, LLMError, LLMErrorType, Logger, OnUsage, RefundUsage, ReserveUsage, SchemaLike, TokenUsage, VernLLM, VernLLMOptions, fromAnthropic, fromBedrock, fromCerebras, fromDeepSeek, fromFetch, fromFireworks, fromGemini, fromGroq, fromMistral, fromOllama, fromOpenAICompatible, fromTogether, isLLMError };
729
+ export { AnthropicClient, BedrockConverseClient, CacheAdapter, CachedCallParams, CallParams, CircuitBreaker, CircuitBreakerOptions, ConsoleLogger, ConversationTurn, FetchAdapterConfig, GeminiClient, InMemoryCacheAdapter, JsonSchemaSpec, LLMClient, LLMError, LLMErrorType, Logger, OnUsage, RefundUsage, ReserveUsage, SchemaLike, TokenUsage, VernLLM, VernLLMOptions, fromAnthropic, fromBedrock, fromCerebras, fromDeepSeek, fromFetch, fromFireworks, fromGemini, fromGroq, fromMistral, fromOllama, fromOpenAICompatible, fromTogether, isLLMError };
683
730
  //# sourceMappingURL=index.d.ts.map