vern-llm 0.3.0 → 0.5.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/README.md +3 -3
- package/dist/index.cjs +118 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +91 -16
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +91 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +118 -36
- package/dist/index.js.map +1 -1
- package/package.json +19 -1
package/dist/index.d.cts
CHANGED
|
@@ -58,6 +58,7 @@ declare function isLLMError(err: unknown): err is LLMError;
|
|
|
58
58
|
interface CacheAdapter<T = unknown> {
|
|
59
59
|
get(key: string): Promise<T | null>;
|
|
60
60
|
set(key: string, value: T, ttl: number): Promise<void>;
|
|
61
|
+
delete?(key: string): Promise<void>;
|
|
61
62
|
}
|
|
62
63
|
/**
|
|
63
64
|
* Trivial default so the package works out of the box with no external deps
|
|
@@ -67,6 +68,7 @@ declare class InMemoryCacheAdapter<T = unknown> implements CacheAdapter<T> {
|
|
|
67
68
|
private store;
|
|
68
69
|
get(key: string): Promise<T | null>;
|
|
69
70
|
set(key: string, value: T, ttl: number): Promise<void>;
|
|
71
|
+
delete(key: string): Promise<void>;
|
|
70
72
|
}
|
|
71
73
|
/**
|
|
72
74
|
* Minimal shape compatible with the OpenAI SDKs chat.completions.create,
|
|
@@ -97,7 +99,7 @@ interface LLMClient {
|
|
|
97
99
|
/** OpenAI reasoning-model param (o-series, gpt-5), ignored by providers that don't support it */
|
|
98
100
|
reasoning_effort?: 'minimal' | 'low' | 'medium' | 'high';
|
|
99
101
|
messages: Array<{
|
|
100
|
-
role: 'system' | 'user';
|
|
102
|
+
role: 'system' | 'user' | 'assistant';
|
|
101
103
|
content: string;
|
|
102
104
|
}>;
|
|
103
105
|
}, options: {
|
|
@@ -186,9 +188,23 @@ interface JsonSchemaSpec {
|
|
|
186
188
|
strict?: boolean;
|
|
187
189
|
description?: string;
|
|
188
190
|
}
|
|
191
|
+
/** A single prior turn in a multi-turn conversation, passed via `history`. */
|
|
192
|
+
interface ConversationTurn {
|
|
193
|
+
role: 'user' | 'assistant';
|
|
194
|
+
content: string;
|
|
195
|
+
}
|
|
189
196
|
interface CallParams<T = unknown> {
|
|
190
197
|
systemPrompt: string;
|
|
191
198
|
userContent: string;
|
|
199
|
+
/**
|
|
200
|
+
* Prior turns in the conversation, oldest first, NOT including the current
|
|
201
|
+
* `userContent` (that's appended automatically as the final user turn).
|
|
202
|
+
* Passed straight through to the provider so follow-up questions have
|
|
203
|
+
* access to earlier context. Must strictly alternate user/assistant and
|
|
204
|
+
* end on an assistant turn; validated up front and rejected with an
|
|
205
|
+
* LLMError('validation') before any request is made if malformed.
|
|
206
|
+
*/
|
|
207
|
+
history?: ConversationTurn[];
|
|
192
208
|
temperature?: number;
|
|
193
209
|
jsonMode?: boolean;
|
|
194
210
|
maxTokens?: number;
|
|
@@ -305,6 +321,15 @@ declare class VernLLM {
|
|
|
305
321
|
* usage and a circuit breaker success before returning
|
|
306
322
|
*/
|
|
307
323
|
private executeCall;
|
|
324
|
+
/**
|
|
325
|
+
* Anthropic and Gemini both require strict user/assistant alternation
|
|
326
|
+
* (and reject or silently mishandle two consecutive same-role turns), so
|
|
327
|
+
* this validates `history` up front rather than letting a malformed
|
|
328
|
+
* request surface as a confusing provider-side error. Thrown as a
|
|
329
|
+
* validation LLMError, which `shouldRetry` never retries, since retrying
|
|
330
|
+
* the same malformed input can't succeed
|
|
331
|
+
*/
|
|
332
|
+
private validateHistory;
|
|
308
333
|
/**
|
|
309
334
|
* Applies per call defaults and shapes the params into the request
|
|
310
335
|
* object expected by the underlying client, including the resolved
|
|
@@ -347,6 +372,14 @@ declare class VernLLM {
|
|
|
347
372
|
* marked as non retryable. Retries everything else
|
|
348
373
|
*/
|
|
349
374
|
private shouldRetry;
|
|
375
|
+
/**
|
|
376
|
+
* Removes a cached response by key when the configured cache adapter
|
|
377
|
+
* supports deletion.
|
|
378
|
+
*
|
|
379
|
+
* Cache invalidation remains the responsibility of the caller because
|
|
380
|
+
* only the application knows when cached data is stale.
|
|
381
|
+
*/
|
|
382
|
+
deleteCache(key: string): Promise<void>;
|
|
350
383
|
/**
|
|
351
384
|
* Thin cache wrapper around caller supplied logic. `params.fn` is expected
|
|
352
385
|
* to be a call that itself invokes `this.call(...)` (see `cachedLLMCall`
|
|
@@ -367,10 +400,9 @@ declare class VernLLM {
|
|
|
367
400
|
* circuit breaker was configured on this instance
|
|
368
401
|
*/
|
|
369
402
|
getCircuitState(): ("closed" | "open" | "half-open") | undefined;
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
//#endregion
|
|
403
|
+
} //#endregion
|
|
373
404
|
//#region src/adapters/anthropic.d.ts
|
|
405
|
+
|
|
374
406
|
//# sourceMappingURL=vernLLM.d.ts.map
|
|
375
407
|
/** Minimal structural type for the Anthropic SDKs `messages.create` */
|
|
376
408
|
interface AnthropicClient {
|
|
@@ -384,12 +416,23 @@ interface AnthropicClient {
|
|
|
384
416
|
role: 'user' | 'assistant';
|
|
385
417
|
content: string;
|
|
386
418
|
}>;
|
|
419
|
+
tools?: Array<{
|
|
420
|
+
name: string;
|
|
421
|
+
description?: string;
|
|
422
|
+
input_schema: Record<string, unknown>;
|
|
423
|
+
}>;
|
|
424
|
+
tool_choice?: {
|
|
425
|
+
type: 'tool';
|
|
426
|
+
name: string;
|
|
427
|
+
};
|
|
387
428
|
}, options: {
|
|
388
429
|
signal: AbortSignal;
|
|
389
430
|
}): Promise<{
|
|
390
431
|
content: Array<{
|
|
391
432
|
type: string;
|
|
392
433
|
text?: string;
|
|
434
|
+
name?: string;
|
|
435
|
+
input?: unknown;
|
|
393
436
|
}>;
|
|
394
437
|
usage?: {
|
|
395
438
|
input_tokens?: number;
|
|
@@ -400,10 +443,18 @@ interface AnthropicClient {
|
|
|
400
443
|
}
|
|
401
444
|
/**
|
|
402
445
|
* Wraps an Anthropic SDK client so it satisfies the same `LLMClient`
|
|
403
|
-
* interface VernLLM uses for OpenAI/Groq.
|
|
404
|
-
*
|
|
405
|
-
*
|
|
406
|
-
*
|
|
446
|
+
* interface VernLLM uses for OpenAI/Groq.
|
|
447
|
+
*
|
|
448
|
+
* `response_format: json_schema` is mapped to Anthropics forced tool-use:
|
|
449
|
+
* a single tool is defined with `input_schema` set to the caller's schema,
|
|
450
|
+
* and `tool_choice` forces the model to call it, so the output is
|
|
451
|
+
* provider-constrained to match the schema rather than merely instructed
|
|
452
|
+
* to via prompt text (the same guarantee OpenAIs native `json_schema` mode
|
|
453
|
+
* gives, built on Anthropics tool-calling primitive instead).
|
|
454
|
+
*
|
|
455
|
+
* `response_format: json_object` (no schema to build a tool from) falls
|
|
456
|
+
* back to a system-prompt instruction, since theres nothing to constrain
|
|
457
|
+
* generation against.
|
|
407
458
|
*/
|
|
408
459
|
declare function fromAnthropic(anthropicClient: AnthropicClient): LLMClient;
|
|
409
460
|
|
|
@@ -420,7 +471,7 @@ interface GeminiClient {
|
|
|
420
471
|
generateContent(params: {
|
|
421
472
|
model?: string;
|
|
422
473
|
contents: Array<{
|
|
423
|
-
role: 'user';
|
|
474
|
+
role: 'user' | 'model';
|
|
424
475
|
parts: Array<{
|
|
425
476
|
text: string;
|
|
426
477
|
}>;
|
|
@@ -489,7 +540,7 @@ interface BedrockConverseClient {
|
|
|
489
540
|
converse(params: {
|
|
490
541
|
modelId: string;
|
|
491
542
|
messages: Array<{
|
|
492
|
-
role: 'user';
|
|
543
|
+
role: 'user' | 'assistant';
|
|
493
544
|
content: Array<{
|
|
494
545
|
text: string;
|
|
495
546
|
}>;
|
|
@@ -501,6 +552,22 @@ interface BedrockConverseClient {
|
|
|
501
552
|
temperature?: number;
|
|
502
553
|
maxTokens?: number;
|
|
503
554
|
};
|
|
555
|
+
toolConfig?: {
|
|
556
|
+
tools: Array<{
|
|
557
|
+
toolSpec: {
|
|
558
|
+
name: string;
|
|
559
|
+
description?: string;
|
|
560
|
+
inputSchema: {
|
|
561
|
+
json: Record<string, unknown>;
|
|
562
|
+
};
|
|
563
|
+
};
|
|
564
|
+
}>;
|
|
565
|
+
toolChoice?: {
|
|
566
|
+
tool: {
|
|
567
|
+
name: string;
|
|
568
|
+
};
|
|
569
|
+
};
|
|
570
|
+
};
|
|
504
571
|
}, options: {
|
|
505
572
|
signal: AbortSignal;
|
|
506
573
|
}): Promise<{
|
|
@@ -508,6 +575,10 @@ interface BedrockConverseClient {
|
|
|
508
575
|
message?: {
|
|
509
576
|
content?: Array<{
|
|
510
577
|
text?: string;
|
|
578
|
+
toolUse?: {
|
|
579
|
+
name?: string;
|
|
580
|
+
input?: unknown;
|
|
581
|
+
};
|
|
511
582
|
}>;
|
|
512
583
|
};
|
|
513
584
|
};
|
|
@@ -526,11 +597,15 @@ interface BedrockConverseClient {
|
|
|
526
597
|
* regardless of which underlying model `modelId` points at, as long as
|
|
527
598
|
* that model supports Converse (most current-generation ones do)
|
|
528
599
|
*
|
|
529
|
-
*
|
|
530
|
-
*
|
|
531
|
-
*
|
|
532
|
-
*
|
|
533
|
-
*
|
|
600
|
+
* `response_format: json_schema` is mapped to Converses `toolConfig`: a
|
|
601
|
+
* single tool is defined from the schema and `toolChoice` forces the model
|
|
602
|
+
* to call it, constraining output at generation time rather than merely
|
|
603
|
+
* instructing for it via prompt text. Native tool support varies by model
|
|
604
|
+
* family (most current-generation ones support it via Converse; check your
|
|
605
|
+
* specific `modelId` if a call fails with an unsupported-parameter error).
|
|
606
|
+
* `response_format: json_object` (no schema to build a tool from) and
|
|
607
|
+
* `reasoning_effort` (no Converse equivalent) fall back to a system-prompt
|
|
608
|
+
* instruction and are dropped respectively.
|
|
534
609
|
*/
|
|
535
610
|
declare function fromBedrock(bedrockClient: BedrockConverseClient): LLMClient;
|
|
536
611
|
|
|
@@ -614,5 +689,5 @@ declare const fromOllama: typeof fromOpenAICompatible;
|
|
|
614
689
|
//#endregion
|
|
615
690
|
//# sourceMappingURL=openaiCompatible.d.ts.map
|
|
616
691
|
|
|
617
|
-
export { CacheAdapter, CachedCallParams, CallParams, CircuitBreaker, CircuitBreakerOptions, ConsoleLogger, 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 };
|
|
692
|
+
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 };
|
|
618
693
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -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":";UAAiB,MAAA;EAAA,KAAA,CAAA,OAAM,EAAA,MAGS,CAAA,EAAA,IAAM;;gCAAN;;;AAOhC;;;AAAsC,cAAzB,aAAA,YAAyB,MAAA,CAAA;EAAM,QAAA,YAAA;;;;ECR3B,KAAA,CAAA,OAAA,EAAA,MAAA,EAAA,IAAqB,CAAA,EDmBN,MCnBM,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,EAAA,IAAA;AAKrC,CAAA;;;;UALgB,qBAAA;EDFA;;;;;AAUjB,KCDK,YAAA,GDCsB,QAAA,GAAA,MAAA,GAAA,WAAA;;;;AAAiB;;;cCO/B,cAAA;EAfI,QAAA,KAAA;EAOZ,QAAA,mBAAY;;;;wBAeM;;;EAPV,aAAA,CAAA,CAAA,EAAc,IAAA;EAAA,aAAA,CAAA,CAAA,EAAA,IAAA;EAAA,QAOJ,CAAA,CAAA,EA0CT,YA1CS;;;;;KCxBX,YAAA;AFAK,cESJ,QAAA,SAAiB,KAAA,CFNQ;QESrB;;;qCAAA;AFFjB;AAA2B,iBEWX,UAAA,CFXW,GAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IEWsB,QFXtB;AAWK,UEIf,YFJe,CAAA,IAAA,OAAA,CAAA,CAAA;EAAM,GAXA,CAAA,GAAA,EAAA,MAAA,CAAA,EEgBlB,OFhBkB,CEgBV,CFhBU,GAAA,IAAA,CAAA;EAAM,GAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EEiBlB,CFjBkB,EAAA,GAAA,EAAA,MAAA,CAAA,EEiBD,OFjBC,CAAA,IAAA,CAAA
|
|
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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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -58,6 +58,7 @@ declare function isLLMError(err: unknown): err is LLMError;
|
|
|
58
58
|
interface CacheAdapter<T = unknown> {
|
|
59
59
|
get(key: string): Promise<T | null>;
|
|
60
60
|
set(key: string, value: T, ttl: number): Promise<void>;
|
|
61
|
+
delete?(key: string): Promise<void>;
|
|
61
62
|
}
|
|
62
63
|
/**
|
|
63
64
|
* Trivial default so the package works out of the box with no external deps
|
|
@@ -67,6 +68,7 @@ declare class InMemoryCacheAdapter<T = unknown> implements CacheAdapter<T> {
|
|
|
67
68
|
private store;
|
|
68
69
|
get(key: string): Promise<T | null>;
|
|
69
70
|
set(key: string, value: T, ttl: number): Promise<void>;
|
|
71
|
+
delete(key: string): Promise<void>;
|
|
70
72
|
}
|
|
71
73
|
/**
|
|
72
74
|
* Minimal shape compatible with the OpenAI SDKs chat.completions.create,
|
|
@@ -97,7 +99,7 @@ interface LLMClient {
|
|
|
97
99
|
/** OpenAI reasoning-model param (o-series, gpt-5), ignored by providers that don't support it */
|
|
98
100
|
reasoning_effort?: 'minimal' | 'low' | 'medium' | 'high';
|
|
99
101
|
messages: Array<{
|
|
100
|
-
role: 'system' | 'user';
|
|
102
|
+
role: 'system' | 'user' | 'assistant';
|
|
101
103
|
content: string;
|
|
102
104
|
}>;
|
|
103
105
|
}, options: {
|
|
@@ -186,9 +188,23 @@ interface JsonSchemaSpec {
|
|
|
186
188
|
strict?: boolean;
|
|
187
189
|
description?: string;
|
|
188
190
|
}
|
|
191
|
+
/** A single prior turn in a multi-turn conversation, passed via `history`. */
|
|
192
|
+
interface ConversationTurn {
|
|
193
|
+
role: 'user' | 'assistant';
|
|
194
|
+
content: string;
|
|
195
|
+
}
|
|
189
196
|
interface CallParams<T = unknown> {
|
|
190
197
|
systemPrompt: string;
|
|
191
198
|
userContent: string;
|
|
199
|
+
/**
|
|
200
|
+
* Prior turns in the conversation, oldest first, NOT including the current
|
|
201
|
+
* `userContent` (that's appended automatically as the final user turn).
|
|
202
|
+
* Passed straight through to the provider so follow-up questions have
|
|
203
|
+
* access to earlier context. Must strictly alternate user/assistant and
|
|
204
|
+
* end on an assistant turn; validated up front and rejected with an
|
|
205
|
+
* LLMError('validation') before any request is made if malformed.
|
|
206
|
+
*/
|
|
207
|
+
history?: ConversationTurn[];
|
|
192
208
|
temperature?: number;
|
|
193
209
|
jsonMode?: boolean;
|
|
194
210
|
maxTokens?: number;
|
|
@@ -305,6 +321,15 @@ declare class VernLLM {
|
|
|
305
321
|
* usage and a circuit breaker success before returning
|
|
306
322
|
*/
|
|
307
323
|
private executeCall;
|
|
324
|
+
/**
|
|
325
|
+
* Anthropic and Gemini both require strict user/assistant alternation
|
|
326
|
+
* (and reject or silently mishandle two consecutive same-role turns), so
|
|
327
|
+
* this validates `history` up front rather than letting a malformed
|
|
328
|
+
* request surface as a confusing provider-side error. Thrown as a
|
|
329
|
+
* validation LLMError, which `shouldRetry` never retries, since retrying
|
|
330
|
+
* the same malformed input can't succeed
|
|
331
|
+
*/
|
|
332
|
+
private validateHistory;
|
|
308
333
|
/**
|
|
309
334
|
* Applies per call defaults and shapes the params into the request
|
|
310
335
|
* object expected by the underlying client, including the resolved
|
|
@@ -347,6 +372,14 @@ declare class VernLLM {
|
|
|
347
372
|
* marked as non retryable. Retries everything else
|
|
348
373
|
*/
|
|
349
374
|
private shouldRetry;
|
|
375
|
+
/**
|
|
376
|
+
* Removes a cached response by key when the configured cache adapter
|
|
377
|
+
* supports deletion.
|
|
378
|
+
*
|
|
379
|
+
* Cache invalidation remains the responsibility of the caller because
|
|
380
|
+
* only the application knows when cached data is stale.
|
|
381
|
+
*/
|
|
382
|
+
deleteCache(key: string): Promise<void>;
|
|
350
383
|
/**
|
|
351
384
|
* Thin cache wrapper around caller supplied logic. `params.fn` is expected
|
|
352
385
|
* to be a call that itself invokes `this.call(...)` (see `cachedLLMCall`
|
|
@@ -367,10 +400,9 @@ declare class VernLLM {
|
|
|
367
400
|
* circuit breaker was configured on this instance
|
|
368
401
|
*/
|
|
369
402
|
getCircuitState(): ("closed" | "open" | "half-open") | undefined;
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
//#endregion
|
|
403
|
+
} //#endregion
|
|
373
404
|
//#region src/adapters/anthropic.d.ts
|
|
405
|
+
|
|
374
406
|
//# sourceMappingURL=vernLLM.d.ts.map
|
|
375
407
|
/** Minimal structural type for the Anthropic SDKs `messages.create` */
|
|
376
408
|
interface AnthropicClient {
|
|
@@ -384,12 +416,23 @@ interface AnthropicClient {
|
|
|
384
416
|
role: 'user' | 'assistant';
|
|
385
417
|
content: string;
|
|
386
418
|
}>;
|
|
419
|
+
tools?: Array<{
|
|
420
|
+
name: string;
|
|
421
|
+
description?: string;
|
|
422
|
+
input_schema: Record<string, unknown>;
|
|
423
|
+
}>;
|
|
424
|
+
tool_choice?: {
|
|
425
|
+
type: 'tool';
|
|
426
|
+
name: string;
|
|
427
|
+
};
|
|
387
428
|
}, options: {
|
|
388
429
|
signal: AbortSignal;
|
|
389
430
|
}): Promise<{
|
|
390
431
|
content: Array<{
|
|
391
432
|
type: string;
|
|
392
433
|
text?: string;
|
|
434
|
+
name?: string;
|
|
435
|
+
input?: unknown;
|
|
393
436
|
}>;
|
|
394
437
|
usage?: {
|
|
395
438
|
input_tokens?: number;
|
|
@@ -400,10 +443,18 @@ interface AnthropicClient {
|
|
|
400
443
|
}
|
|
401
444
|
/**
|
|
402
445
|
* Wraps an Anthropic SDK client so it satisfies the same `LLMClient`
|
|
403
|
-
* interface VernLLM uses for OpenAI/Groq.
|
|
404
|
-
*
|
|
405
|
-
*
|
|
406
|
-
*
|
|
446
|
+
* interface VernLLM uses for OpenAI/Groq.
|
|
447
|
+
*
|
|
448
|
+
* `response_format: json_schema` is mapped to Anthropics forced tool-use:
|
|
449
|
+
* a single tool is defined with `input_schema` set to the caller's schema,
|
|
450
|
+
* and `tool_choice` forces the model to call it, so the output is
|
|
451
|
+
* provider-constrained to match the schema rather than merely instructed
|
|
452
|
+
* to via prompt text (the same guarantee OpenAIs native `json_schema` mode
|
|
453
|
+
* gives, built on Anthropics tool-calling primitive instead).
|
|
454
|
+
*
|
|
455
|
+
* `response_format: json_object` (no schema to build a tool from) falls
|
|
456
|
+
* back to a system-prompt instruction, since theres nothing to constrain
|
|
457
|
+
* generation against.
|
|
407
458
|
*/
|
|
408
459
|
declare function fromAnthropic(anthropicClient: AnthropicClient): LLMClient;
|
|
409
460
|
|
|
@@ -420,7 +471,7 @@ interface GeminiClient {
|
|
|
420
471
|
generateContent(params: {
|
|
421
472
|
model?: string;
|
|
422
473
|
contents: Array<{
|
|
423
|
-
role: 'user';
|
|
474
|
+
role: 'user' | 'model';
|
|
424
475
|
parts: Array<{
|
|
425
476
|
text: string;
|
|
426
477
|
}>;
|
|
@@ -489,7 +540,7 @@ interface BedrockConverseClient {
|
|
|
489
540
|
converse(params: {
|
|
490
541
|
modelId: string;
|
|
491
542
|
messages: Array<{
|
|
492
|
-
role: 'user';
|
|
543
|
+
role: 'user' | 'assistant';
|
|
493
544
|
content: Array<{
|
|
494
545
|
text: string;
|
|
495
546
|
}>;
|
|
@@ -501,6 +552,22 @@ interface BedrockConverseClient {
|
|
|
501
552
|
temperature?: number;
|
|
502
553
|
maxTokens?: number;
|
|
503
554
|
};
|
|
555
|
+
toolConfig?: {
|
|
556
|
+
tools: Array<{
|
|
557
|
+
toolSpec: {
|
|
558
|
+
name: string;
|
|
559
|
+
description?: string;
|
|
560
|
+
inputSchema: {
|
|
561
|
+
json: Record<string, unknown>;
|
|
562
|
+
};
|
|
563
|
+
};
|
|
564
|
+
}>;
|
|
565
|
+
toolChoice?: {
|
|
566
|
+
tool: {
|
|
567
|
+
name: string;
|
|
568
|
+
};
|
|
569
|
+
};
|
|
570
|
+
};
|
|
504
571
|
}, options: {
|
|
505
572
|
signal: AbortSignal;
|
|
506
573
|
}): Promise<{
|
|
@@ -508,6 +575,10 @@ interface BedrockConverseClient {
|
|
|
508
575
|
message?: {
|
|
509
576
|
content?: Array<{
|
|
510
577
|
text?: string;
|
|
578
|
+
toolUse?: {
|
|
579
|
+
name?: string;
|
|
580
|
+
input?: unknown;
|
|
581
|
+
};
|
|
511
582
|
}>;
|
|
512
583
|
};
|
|
513
584
|
};
|
|
@@ -526,11 +597,15 @@ interface BedrockConverseClient {
|
|
|
526
597
|
* regardless of which underlying model `modelId` points at, as long as
|
|
527
598
|
* that model supports Converse (most current-generation ones do)
|
|
528
599
|
*
|
|
529
|
-
*
|
|
530
|
-
*
|
|
531
|
-
*
|
|
532
|
-
*
|
|
533
|
-
*
|
|
600
|
+
* `response_format: json_schema` is mapped to Converses `toolConfig`: a
|
|
601
|
+
* single tool is defined from the schema and `toolChoice` forces the model
|
|
602
|
+
* to call it, constraining output at generation time rather than merely
|
|
603
|
+
* instructing for it via prompt text. Native tool support varies by model
|
|
604
|
+
* family (most current-generation ones support it via Converse; check your
|
|
605
|
+
* specific `modelId` if a call fails with an unsupported-parameter error).
|
|
606
|
+
* `response_format: json_object` (no schema to build a tool from) and
|
|
607
|
+
* `reasoning_effort` (no Converse equivalent) fall back to a system-prompt
|
|
608
|
+
* instruction and are dropped respectively.
|
|
534
609
|
*/
|
|
535
610
|
declare function fromBedrock(bedrockClient: BedrockConverseClient): LLMClient;
|
|
536
611
|
|
|
@@ -614,5 +689,5 @@ declare const fromOllama: typeof fromOpenAICompatible;
|
|
|
614
689
|
//#endregion
|
|
615
690
|
//# sourceMappingURL=openaiCompatible.d.ts.map
|
|
616
691
|
|
|
617
|
-
export { CacheAdapter, CachedCallParams, CallParams, CircuitBreaker, CircuitBreakerOptions, ConsoleLogger, 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 };
|
|
692
|
+
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 };
|
|
618
693
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","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":";UAAiB,MAAA;EAAA,KAAA,CAAA,OAAM,EAAA,MAGS,CAAA,EAAA,IAAM;;gCAAN;;;AAOhC;;;AAAsC,cAAzB,aAAA,YAAyB,MAAA,CAAA;EAAM,QAAA,YAAA;;;;ECR3B,KAAA,CAAA,OAAA,EAAA,MAAA,EAAA,IAAqB,CAAA,EDmBN,MCnBM,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,EAAA,IAAA;AAKrC,CAAA;;;;UALgB,qBAAA;EDFA;;;;;AAUjB,KCDK,YAAA,GDCsB,QAAA,GAAA,MAAA,GAAA,WAAA;;;;AAAiB;;;cCO/B,cAAA;EAfI,QAAA,KAAA;EAOZ,QAAA,mBAAY;;;;wBAeM;;;EAPV,aAAA,CAAA,CAAA,EAAc,IAAA;EAAA,aAAA,CAAA,CAAA,EAAA,IAAA;EAAA,QAOJ,CAAA,CAAA,EA0CT,YA1CS;;;;;KCxBX,YAAA;AFAK,cESJ,QAAA,SAAiB,KAAA,CFNQ;QESrB;;;qCAAA;AFFjB;AAA2B,iBEWX,UAAA,CFXW,GAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IEWsB,QFXtB;AAWK,UEIf,YFJe,CAAA,IAAA,OAAA,CAAA,CAAA;EAAM,GAXA,CAAA,GAAA,EAAA,MAAA,CAAA,EEgBlB,OFhBkB,CEgBV,CFhBU,GAAA,IAAA,CAAA;EAAM,GAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EEiBlB,CFjBkB,EAAA,GAAA,EAAA,MAAA,CAAA,EEiBD,OFjBC,CAAA,IAAA,CAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","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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"}
|