@stackbilt/llm-providers 1.10.0 → 1.12.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 (60) hide show
  1. package/README.md +122 -4
  2. package/dist/canonical.d.ts +118 -0
  3. package/dist/canonical.d.ts.map +1 -0
  4. package/dist/canonical.js +287 -0
  5. package/dist/canonical.js.map +1 -0
  6. package/dist/factory.d.ts.map +1 -1
  7. package/dist/factory.js +36 -13
  8. package/dist/factory.js.map +1 -1
  9. package/dist/index.d.ts +7 -4
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +4 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/model-catalog.d.ts +6 -0
  14. package/dist/model-catalog.d.ts.map +1 -1
  15. package/dist/model-catalog.js +53 -0
  16. package/dist/model-catalog.js.map +1 -1
  17. package/dist/providers/anthropic.d.ts.map +1 -1
  18. package/dist/providers/anthropic.js +79 -7
  19. package/dist/providers/anthropic.js.map +1 -1
  20. package/dist/providers/base.d.ts +3 -1
  21. package/dist/providers/base.d.ts.map +1 -1
  22. package/dist/providers/base.js +30 -0
  23. package/dist/providers/base.js.map +1 -1
  24. package/dist/providers/cerebras.d.ts +1 -0
  25. package/dist/providers/cerebras.d.ts.map +1 -1
  26. package/dist/providers/cerebras.js +18 -2
  27. package/dist/providers/cerebras.js.map +1 -1
  28. package/dist/providers/cloudflare.d.ts.map +1 -1
  29. package/dist/providers/cloudflare.js +24 -3
  30. package/dist/providers/cloudflare.js.map +1 -1
  31. package/dist/providers/groq.d.ts +1 -0
  32. package/dist/providers/groq.d.ts.map +1 -1
  33. package/dist/providers/groq.js +18 -2
  34. package/dist/providers/groq.js.map +1 -1
  35. package/dist/providers/nvidia.d.ts +1 -0
  36. package/dist/providers/nvidia.d.ts.map +1 -1
  37. package/dist/providers/nvidia.js +18 -2
  38. package/dist/providers/nvidia.js.map +1 -1
  39. package/dist/providers/openai.d.ts.map +1 -1
  40. package/dist/providers/openai.js +17 -2
  41. package/dist/providers/openai.js.map +1 -1
  42. package/dist/types.d.ts +2 -0
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/utils/circuit-breaker.d.ts +45 -1
  45. package/dist/utils/circuit-breaker.d.ts.map +1 -1
  46. package/dist/utils/circuit-breaker.js +105 -0
  47. package/dist/utils/circuit-breaker.js.map +1 -1
  48. package/dist/utils/exhaustion.d.ts +13 -1
  49. package/dist/utils/exhaustion.d.ts.map +1 -1
  50. package/dist/utils/exhaustion.js +36 -0
  51. package/dist/utils/exhaustion.js.map +1 -1
  52. package/dist/utils/stream-usage.d.ts +13 -0
  53. package/dist/utils/stream-usage.d.ts.map +1 -0
  54. package/dist/utils/stream-usage.js +27 -0
  55. package/dist/utils/stream-usage.js.map +1 -0
  56. package/dist/version.d.ts +2 -0
  57. package/dist/version.d.ts.map +1 -0
  58. package/dist/version.js +3 -0
  59. package/dist/version.js.map +1 -0
  60. package/package.json +8 -7
package/README.md CHANGED
@@ -9,8 +9,9 @@ A multi-provider LLM abstraction layer with automatic failover, graduated circui
9
9
  - **Exponential backoff retry** -- configurable delays, jitter, and per-error-class behavior
10
10
  - **Cost tracking and optimization** -- per-provider cost attribution, budget alerts with CreditLedger, automatic routing to cheaper providers
11
11
  - **Declarative model catalog** -- semantic model metadata drives recommendations, provider defaults, and fallback routing
12
+ - **Workload-aware model defaults** -- gateways can request provider-tuned defaults for `summary`, `planning`, `code_draft`, `long_context`, `tool_loop`, and related workload classes
12
13
  - **Rate limit enforcement** -- CreditLedger tracks RPM/RPD/TPM/TPD per provider; factory skips providers that exceed limits
13
- - **Streaming with fallback** -- SSE streaming on all providers; factory-level streaming routes through the same circuit-breaker and fallback chain as non-streaming requests
14
+ - **Streaming with fallback and usage accounting** -- SSE streaming on all providers; factory-level streaming routes through the same circuit-breaker and fallback chain as non-streaming requests and records final usage after the stream drains
14
15
  - **Tool/function calling** -- OpenAI, Anthropic, Cerebras, and Cloudflare tool use with unified response format
15
16
  - **Tool-use loop helper** -- `generateResponseWithTools` owns the request → parse → execute → repeat cycle with iteration caps, cost limits, abort signal support, and `onIteration` early-exit via `{ abort: true }`
16
17
  - **Server-side built-in tools** -- `LLMRequest.builtInTools` (e.g. `[{ type: 'web_search' }]`) drives Groq's Compound systems and GPT-OSS 120B to run web search / code interpreter server-side; capability-gated per model and routed to the capable provider automatically
@@ -63,6 +64,42 @@ console.log(response.message);
63
64
  console.log(`Provider: ${response.provider}, Cost: $${response.usage.cost}`);
64
65
  ```
65
66
 
67
+ ## Canonical Provider Contract
68
+
69
+ `llm-providers` now exposes an explicit canonical boundary for downstream gateways and coding-agent orchestrators:
70
+
71
+ ```typescript
72
+ import {
73
+ canonicalToLLMRequest,
74
+ normalizeLLMRequest,
75
+ normalizeLLMResponse,
76
+ type CanonicalLLMRequest,
77
+ } from '@stackbilt/llm-providers';
78
+ ```
79
+
80
+ The intended architecture is:
81
+
82
+ ```text
83
+ client protocol -> gateway adapter -> CanonicalLLMRequest -> llm-providers -> vendor API
84
+ ```
85
+
86
+ Gateways should terminate Anthropic Messages, OpenAI Chat/Responses, Ollama-style local proxy calls, or other client protocols at their own boundary, then normalize into `CanonicalLLMRequest`. Provider selection and vendor translation remain inside this package.
87
+
88
+ The canonical request is capability-oriented rather than vendor-oriented:
89
+
90
+ - `messages` and `system` separate normalized chat history from system instructions
91
+ - `sampling` carries `temperature`, `maxTokens`, and `seed`
92
+ - `tools`, `toolMode`, and `builtInTools` describe requested tool behavior
93
+ - `output` describes text, JSON-object, or JSON-schema structured output
94
+ - `media` carries vision inputs independently of provider wire format
95
+ - `workload` and `requirements` describe routing intent and required capabilities
96
+ - `providerOptions` contains namespaced vendor-specific extensions such as Cloudflare `lora` or Cerebras `reasoning`
97
+ - `metadata` carries request identity, tenancy, gateway metadata, cache hints, and custom caller metadata
98
+
99
+ Existing `LLMRequest` fields are still supported as compatibility input. `normalizeLLMRequest()` maps legacy aliases such as `response_format`, `toolChoice`, `images`, `lora`, `topP`, `frequencyPenalty`, `reasoning`, and `prediction` into the canonical shape. `canonicalToLLMRequest()` converts canonical requests back into the existing adapter input while providers migrate internally.
100
+
101
+ `normalizeLLMResponse()` provides a stable canonical response shape with normalized routing metadata (`selectedProvider`, `selectedModel`, fallback chain, and capability degradations) while preserving raw provider extras under `metadata`.
102
+
66
103
  ### Auto-Discovery from Environment
67
104
 
68
105
  ```typescript
@@ -109,6 +146,23 @@ const llm = LLMProviders.fromEnv(env, {
109
146
  { apiKey: 'nvapi-...' }
110
147
  ```
111
148
 
149
+ ## Vision Inputs
150
+
151
+ Vision requests use `request.images`. The factory routes image inputs only to providers that advertise `supportsVision === true`; providers that cannot see images reject the request instead of silently dropping image content.
152
+
153
+ ```typescript
154
+ await llm.generateResponse({
155
+ messages: [{ role: 'user', content: 'What is in this image?' }],
156
+ images: [{ data: base64Png, mimeType: 'image/png' }],
157
+ });
158
+ ```
159
+
160
+ Provider notes:
161
+
162
+ - OpenAI-compatible providers that support URL images may accept `images: [{ url }]`.
163
+ - Anthropic requires base64 image bytes. URL images throw `ConfigurationError`; convert the URL to bytes before dispatch or route URL-based vision to an OpenAI-compatible provider.
164
+ - Cerebras, Groq, and NVIDIA currently advertise `supportsVision = false`, so the factory skips them for image requests.
165
+
112
166
  ## Logging
113
167
 
114
168
  The library is silent by default. Opt in to logging by passing a `Logger`:
@@ -151,6 +205,51 @@ const breaker = manager.getBreaker('openai');
151
205
  console.log(breaker.getHealth());
152
206
  ```
153
207
 
208
+ ### Workers State Persistence
209
+
210
+ The default circuit breaker manager, exhaustion registry, and `CreditLedger` keep state in memory. In Cloudflare Workers that state is per isolate and can reset between requests. Persist snapshots to KV, D1, Redis, Durable Objects, or another store when you need circuit state, quota exhaustion, or budget spend to survive across invocations.
211
+
212
+ ```typescript
213
+ import {
214
+ CreditLedger,
215
+ defaultCircuitBreakerManager,
216
+ defaultExhaustionRegistry,
217
+ } from '@stackbilt/llm-providers';
218
+
219
+ interface Env {
220
+ LLM_STATE: KVNamespace;
221
+ }
222
+
223
+ const ledger = new CreditLedger();
224
+
225
+ export default {
226
+ async fetch(request: Request, env: Env): Promise<Response> {
227
+ const [breakersJson, exhaustionJson, ledgerJson] = await Promise.all([
228
+ env.LLM_STATE.get('circuit-breakers'),
229
+ env.LLM_STATE.get('exhaustion'),
230
+ env.LLM_STATE.get('credit-ledger'),
231
+ ]);
232
+
233
+ if (breakersJson) defaultCircuitBreakerManager.restore(breakersJson);
234
+ if (exhaustionJson) defaultExhaustionRegistry.restore(exhaustionJson);
235
+ if (ledgerJson) ledger.restore(JSON.parse(ledgerJson));
236
+
237
+ try {
238
+ // Create/use LLMProviders here with { ledger, enableCircuitBreaker: true }.
239
+ return new Response('ok');
240
+ } finally {
241
+ await Promise.all([
242
+ env.LLM_STATE.put('circuit-breakers', defaultCircuitBreakerManager.serialize()),
243
+ env.LLM_STATE.put('exhaustion', defaultExhaustionRegistry.serialize()),
244
+ env.LLM_STATE.put('credit-ledger', JSON.stringify(ledger.snapshot())),
245
+ ]);
246
+ }
247
+ },
248
+ };
249
+ ```
250
+
251
+ For standalone lower-level use, `CircuitBreaker.deserialize(json)`, `CircuitBreakerManager.deserialize(json)`, and `ExhaustionRegistry.deserialize(json)` reconstruct fresh instances from persisted JSON.
252
+
154
253
  ## Cost Tracking & Budget Management
155
254
 
156
255
  ```typescript
@@ -223,6 +322,19 @@ const recommended = llm.getRecommendedModel({
223
322
  });
224
323
  ```
225
324
 
325
+ Gateway layers can also ask directly by workload class instead of carrying their own provider/model maps:
326
+
327
+ ```typescript
328
+ import { getProviderDefaultModelForWorkload } from '@stackbilt/llm-providers';
329
+
330
+ const fastSummaryModel = getProviderDefaultModelForWorkload('groq', 'summary');
331
+ const toolLoopModel = getProviderDefaultModelForWorkload('groq', 'tool_loop', {
332
+ modelPreferences: {
333
+ tool_loop: { groq: 'openai/gpt-oss-120b' },
334
+ },
335
+ });
336
+ ```
337
+
226
338
  ## Routing Introspection
227
339
 
228
340
  `getRoutingInfo()` lets gateways and agent orchestrators inspect what the catalog engine *would* do — without dispatching the request. Use this at ingress to classify intent once, log the routing decision, enforce policies, or pre-warm the right provider.
@@ -344,7 +456,7 @@ const model = getRecommendedModel('COST_EFFECTIVE', ['openai', 'cloudflare']);
344
456
 
345
457
  ## Factory-Level Streaming
346
458
 
347
- `generateResponseStream` uses the same provider-selection, circuit-breaker, and exhaustion-registry path as `generateResponse`. Pre-stream HTTP errors (401, 429, 503, circuit open) fall over to the next provider before emitting the first chunk.
459
+ `generateResponseStream` uses the same provider-selection, circuit-breaker, and exhaustion-registry path as `generateResponse`. Pre-stream HTTP errors (401, 429, 503, circuit open) fall over to the next provider before emitting the first chunk. After the stream drains, the factory records attached usage to cost tracking, quota hooks, and request-end hooks.
348
460
 
349
461
  ```typescript
350
462
  const stream = await llm.generateResponseStream({
@@ -455,6 +567,7 @@ const response = await llm.generateResponse({
455
567
 
456
568
  // Cached token counts are normalized in TokenUsage
457
569
  console.log(response.usage.cacheReadInputTokens); // Anthropic cache hit tokens
570
+ console.log(response.usage.cacheWriteInputTokens); // Anthropic cache create/write tokens
458
571
  console.log(response.usage.cachedInputTokens); // OpenAI / Groq / Cerebras cache hit tokens
459
572
  ```
460
573
 
@@ -522,7 +635,7 @@ fs.writeFileSync('fixtures/openai.json', JSON.stringify(shape, null, 2));
522
635
  | Class / Export | Description |
523
636
  |----------------|-------------|
524
637
  | `CircuitBreaker` | Graduated 4-state circuit breaker with probabilistic degradation |
525
- | `CircuitBreakerManager` | Manages circuit breakers across multiple providers |
638
+ | `CircuitBreakerManager` | Manages and serializes circuit breakers across multiple providers |
526
639
  | `RetryManager` | Exponential backoff retry with jitter |
527
640
  | `CostTracker` | Per-provider cost accumulation and budget alerts |
528
641
  | `CreditLedger` | Monthly budgets, rate limits, burn rate projection, threshold events |
@@ -550,12 +663,15 @@ fs.writeFileSync('fixtures/openai.json', JSON.stringify(shape, null, 2));
550
663
  | `LLMResponse` | Unified response: message, usage (with cost), provider, tool calls, metadata (builtInToolResults, reasoning) |
551
664
  | `BuiltInTool` / `BuiltInToolType` | Server-side tool request: `{ type }` where type is `web_search` \| `visit_website` \| `browser_automation` \| `code_interpreter` \| `wolfram_alpha` |
552
665
  | `BuiltInToolResult` | A surfaced built-in execution: `{ type, name?, arguments?, results: [{ title, url, content, score }] }` on `metadata.builtInToolResults` |
553
- | `TokenUsage` | Token counts, cost, and cached token fields (cachedInputTokens, cacheReadInputTokens, cacheCreationInputTokens) |
666
+ | `TokenUsage` | Token counts, cost, and cached token fields (cachedInputTokens, cacheReadInputTokens, cacheCreationInputTokens, cacheWriteInputTokens) |
554
667
  | `CacheHints` | Cache strategy, key, ttl, sessionId, cacheablePrefix for provider-agnostic prompt caching |
555
668
  | `ToolExecutor` | Interface for `generateResponseWithTools`: `execute(name, args) => Promise<unknown>` |
556
669
  | `ToolLoopOptions` | Loop config: maxIterations, maxCostUSD, onIteration, abortSignal |
557
670
  | `ToolLoopAbortSignal` | `{ abort: true; reason?: string }` — return from `onIteration` to stop the loop and throw `ToolLoopAbortedError` |
558
671
  | `RoutingInfo` | Pre-flight routing snapshot: useCase, provider, model, estimatedInputTokens, lifecycle, deprecationWarning |
672
+ | `ModelWorkloadClass` | Gateway-friendly workload class: `summary`, `planning`, `code_draft`, `long_context`, `tool_loop`, `vision`, `research`, `cost_effective`, `balanced`, `high_performance` |
673
+ | `ModelPreferenceMap` | Optional provider+workload override map for workload-aware recommendation APIs |
674
+ | `CircuitBreakerSnapshot` / `CircuitBreakerManagerSnapshot` | Serializable reliability state for external persistence |
559
675
  | `CanaryReport` | Schema canary result: provider, status ('ok'|'drift'), diff |
560
676
  | `ShapeMap` | Flat `path → JSON-type` map produced by `extractShape` |
561
677
  | `ProviderFactoryConfig` | Factory config: provider configs, fallback rules, ledger, logger |
@@ -575,6 +691,8 @@ fs.writeFileSync('fixtures/openai.json', JSON.stringify(shape, null, 2));
575
691
  | `llm.generateResponseWithTools(request, executor, opts?)` | Managed tool-use loop with caps and abort-signal support |
576
692
  | `llm.getRecommendedModel(request, useCase?)` | Runtime recommendation using configured providers, health, and ledger state |
577
693
  | `getRecommendedModel(useCase, providers, context?)` | Pick the best active model for a use case |
694
+ | `getRecommendedModelForWorkload(workload, providers, context?)` | Pick a model using gateway-friendly workload classes like `summary`, `planning`, `code_draft`, `long_context`, `tool_loop` |
695
+ | `getProviderDefaultModelForWorkload(provider, workload, context?)` | Provider-scoped workload default with optional `modelPreferences` overrides |
578
696
  | `getRoutingInfo(request, providers?, context?)` | Pre-flight routing snapshot — use case, model, lifecycle, deprecation warning — without dispatching |
579
697
  | `runCanaryCheck(provider, golden, liveResponse)` | Compare live response shape against golden fixture |
580
698
  | `extractShape(obj)` | Extract flat path → type map from any object |
@@ -0,0 +1,118 @@
1
+ import type { BuiltInTool, CacheHints, GatewayMetadata, LLMRequest, LLMResponse, TokenUsage, Tool, ToolCall, ToolResult } from './types.js';
2
+ import type { ModelRecommendationUseCase, ProviderName } from './model-catalog.js';
3
+ export interface CanonicalMessage {
4
+ role: 'user' | 'assistant' | 'system';
5
+ content: string;
6
+ timestamp?: string;
7
+ toolCalls?: ToolCall[];
8
+ toolResults?: ToolResult[];
9
+ }
10
+ export interface CanonicalMediaPart {
11
+ type: 'image';
12
+ data?: string;
13
+ url?: string;
14
+ mimeType?: string;
15
+ }
16
+ export type CanonicalTool = Tool;
17
+ export type CanonicalToolMode = 'auto' | 'none' | 'required' | {
18
+ toolName: string;
19
+ };
20
+ export interface CanonicalOutputFormat {
21
+ kind: 'text' | 'json_object' | 'json_schema';
22
+ schemaName?: string;
23
+ schema?: Record<string, unknown>;
24
+ strict?: boolean;
25
+ }
26
+ export interface CanonicalSamplingOptions {
27
+ temperature?: number;
28
+ maxTokens?: number;
29
+ seed?: number;
30
+ }
31
+ export interface CanonicalRequirements {
32
+ toolCalling?: boolean;
33
+ structuredOutput?: boolean;
34
+ vision?: boolean;
35
+ longContext?: boolean;
36
+ builtInTools?: boolean;
37
+ }
38
+ export interface CanonicalProviderOptions {
39
+ cloudflare?: {
40
+ lora?: string;
41
+ topP?: number;
42
+ frequencyPenalty?: number;
43
+ };
44
+ cerebras?: {
45
+ reasoning?: LLMRequest['reasoning'];
46
+ prediction?: string;
47
+ };
48
+ groq?: Record<string, unknown>;
49
+ nvidia?: Record<string, unknown>;
50
+ openai?: Record<string, unknown>;
51
+ anthropic?: Record<string, unknown>;
52
+ }
53
+ export interface CanonicalRequestMetadata {
54
+ requestId?: string;
55
+ tenantId?: string;
56
+ gateway?: GatewayMetadata;
57
+ cache?: CacheHints;
58
+ custom?: Record<string, unknown>;
59
+ }
60
+ export interface CanonicalLLMRequest {
61
+ messages: CanonicalMessage[];
62
+ system?: string;
63
+ model?: string;
64
+ stream?: boolean;
65
+ sampling?: CanonicalSamplingOptions;
66
+ tools?: CanonicalTool[];
67
+ toolMode?: CanonicalToolMode;
68
+ builtInTools?: BuiltInTool[];
69
+ output?: CanonicalOutputFormat;
70
+ media?: CanonicalMediaPart[];
71
+ workload?: ModelRecommendationUseCase;
72
+ requirements?: CanonicalRequirements;
73
+ providerOptions?: CanonicalProviderOptions;
74
+ metadata?: CanonicalRequestMetadata;
75
+ }
76
+ export interface CanonicalFallbackHop {
77
+ provider: ProviderName;
78
+ model?: string;
79
+ reason?: string;
80
+ }
81
+ export interface CanonicalDegradation {
82
+ capability: string;
83
+ action: 'stripped' | 'downgraded' | 'emulated' | 'failed';
84
+ reason: string;
85
+ }
86
+ export interface CanonicalRoutingMetadata {
87
+ selectedProvider: ProviderName;
88
+ selectedModel: string;
89
+ selectionReason?: string;
90
+ fallbackChain?: CanonicalFallbackHop[];
91
+ degradations?: CanonicalDegradation[];
92
+ }
93
+ export interface CanonicalResponseError {
94
+ class: string;
95
+ provider?: ProviderName;
96
+ retryable?: boolean;
97
+ message: string;
98
+ }
99
+ export interface CanonicalLLMResponse {
100
+ id?: string;
101
+ message: string;
102
+ model: string;
103
+ provider: ProviderName;
104
+ finishReason?: 'stop' | 'length' | 'tool_calls' | 'content_filter' | 'error';
105
+ toolCalls?: ToolCall[];
106
+ usage: TokenUsage;
107
+ responseTime: number;
108
+ routing?: CanonicalRoutingMetadata;
109
+ error?: CanonicalResponseError;
110
+ metadata?: Record<string, unknown>;
111
+ }
112
+ export declare function normalizeLLMRequest(request: LLMRequest | CanonicalLLMRequest): CanonicalLLMRequest;
113
+ export declare function canonicalToLLMRequest(request: CanonicalLLMRequest): LLMRequest;
114
+ export declare function normalizeLLMResponse(response: LLMResponse, options?: {
115
+ routing?: CanonicalRoutingMetadata;
116
+ error?: CanonicalResponseError;
117
+ }): CanonicalLLMResponse;
118
+ //# sourceMappingURL=canonical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,287 @@
1
+ const MODEL_USE_CASES = new Set([
2
+ 'COST_EFFECTIVE',
3
+ 'HIGH_PERFORMANCE',
4
+ 'BALANCED',
5
+ 'TOOL_CALLING',
6
+ 'LONG_CONTEXT',
7
+ 'VISION',
8
+ 'RESEARCH',
9
+ ]);
10
+ export function normalizeLLMRequest(request) {
11
+ if (isCanonicalLLMRequest(request)) {
12
+ return normalizeCanonicalInput(request);
13
+ }
14
+ const legacyMetadata = copyRecord(request.metadata);
15
+ const systemMessage = request.messages.find(message => message.role === 'system');
16
+ const output = normalizeOutputFormat(request.response_format);
17
+ const media = request.images?.map(imageToMediaPart);
18
+ const providerOptions = normalizeProviderOptions(request);
19
+ const workload = normalizeWorkload(legacyMetadata?.useCase);
20
+ const requirements = normalizeRequirements(request, output, media, workload);
21
+ return {
22
+ messages: request.messages
23
+ .filter(message => message.role !== 'system')
24
+ .map(copyMessage),
25
+ system: request.systemPrompt ?? systemMessage?.content,
26
+ model: request.model,
27
+ stream: request.stream,
28
+ sampling: {
29
+ temperature: request.temperature,
30
+ maxTokens: request.maxTokens,
31
+ seed: request.seed,
32
+ },
33
+ tools: request.tools?.map(copyTool),
34
+ toolMode: normalizeToolMode(request.toolChoice),
35
+ builtInTools: request.builtInTools?.map(tool => ({ ...tool })),
36
+ output,
37
+ media,
38
+ workload,
39
+ requirements,
40
+ providerOptions,
41
+ metadata: {
42
+ requestId: request.requestId,
43
+ tenantId: request.tenantId,
44
+ gateway: request.gatewayMetadata,
45
+ cache: request.cache,
46
+ custom: legacyMetadata,
47
+ },
48
+ };
49
+ }
50
+ export function canonicalToLLMRequest(request) {
51
+ const customMetadata = copyRecord(request.metadata?.custom) ?? {};
52
+ if (request.workload && customMetadata.useCase === undefined) {
53
+ customMetadata.useCase = request.workload;
54
+ }
55
+ const legacy = {
56
+ messages: request.messages.map(copyMessage),
57
+ model: request.model,
58
+ stream: request.stream,
59
+ systemPrompt: request.system,
60
+ temperature: request.sampling?.temperature,
61
+ maxTokens: request.sampling?.maxTokens,
62
+ seed: request.sampling?.seed,
63
+ tools: request.tools?.map(copyTool),
64
+ builtInTools: request.builtInTools?.map(tool => ({ ...tool })),
65
+ toolChoice: canonicalToolModeToLegacy(request.toolMode),
66
+ response_format: canonicalOutputToLegacy(request.output),
67
+ images: request.media?.map(mediaPartToImage),
68
+ tenantId: request.metadata?.tenantId,
69
+ requestId: request.metadata?.requestId,
70
+ gatewayMetadata: request.metadata?.gateway,
71
+ cache: request.metadata?.cache,
72
+ metadata: Object.keys(customMetadata).length > 0 ? customMetadata : undefined,
73
+ };
74
+ const cloudflare = request.providerOptions?.cloudflare;
75
+ if (cloudflare) {
76
+ legacy.lora = cloudflare.lora;
77
+ legacy.topP = cloudflare.topP;
78
+ legacy.frequencyPenalty = cloudflare.frequencyPenalty;
79
+ }
80
+ const cerebras = request.providerOptions?.cerebras;
81
+ if (cerebras) {
82
+ legacy.reasoning = cerebras.reasoning;
83
+ legacy.prediction = cerebras.prediction;
84
+ }
85
+ return legacy;
86
+ }
87
+ export function normalizeLLMResponse(response, options = {}) {
88
+ return {
89
+ id: response.id,
90
+ message: response.message,
91
+ model: response.model,
92
+ provider: response.provider,
93
+ finishReason: response.finishReason,
94
+ toolCalls: response.toolCalls,
95
+ usage: response.usage,
96
+ responseTime: response.responseTime,
97
+ routing: options.routing ?? {
98
+ selectedProvider: response.provider,
99
+ selectedModel: response.model,
100
+ },
101
+ error: options.error,
102
+ metadata: response.metadata,
103
+ };
104
+ }
105
+ function isCanonicalLLMRequest(request) {
106
+ return ('sampling' in request ||
107
+ 'output' in request ||
108
+ 'media' in request ||
109
+ 'providerOptions' in request ||
110
+ 'requirements' in request ||
111
+ 'workload' in request ||
112
+ 'system' in request ||
113
+ 'toolMode' in request);
114
+ }
115
+ function normalizeCanonicalInput(request) {
116
+ return {
117
+ ...request,
118
+ messages: request.messages.map(copyMessage),
119
+ sampling: request.sampling ? { ...request.sampling } : undefined,
120
+ tools: request.tools?.map(copyTool),
121
+ builtInTools: request.builtInTools?.map(tool => ({ ...tool })),
122
+ output: request.output ? { ...request.output } : { kind: 'text' },
123
+ media: request.media?.map(part => ({ ...part })),
124
+ requirements: request.requirements ? { ...request.requirements } : undefined,
125
+ providerOptions: copyProviderOptions(request.providerOptions),
126
+ metadata: request.metadata ? {
127
+ ...request.metadata,
128
+ custom: copyRecord(request.metadata.custom),
129
+ } : undefined,
130
+ };
131
+ }
132
+ function normalizeOutputFormat(format) {
133
+ if (!format) {
134
+ return { kind: 'text' };
135
+ }
136
+ if (format.type === 'json_schema') {
137
+ return {
138
+ kind: 'json_schema',
139
+ schemaName: format.json_schema.name,
140
+ schema: format.json_schema.schema,
141
+ strict: format.json_schema.strict,
142
+ };
143
+ }
144
+ return { kind: format.type };
145
+ }
146
+ function canonicalOutputToLegacy(output) {
147
+ if (!output || output.kind === 'text') {
148
+ return output?.kind === 'text' ? { type: 'text' } : undefined;
149
+ }
150
+ if (output.kind === 'json_schema') {
151
+ return {
152
+ type: 'json_schema',
153
+ json_schema: {
154
+ name: output.schemaName ?? 'response',
155
+ schema: output.schema ?? {},
156
+ strict: output.strict,
157
+ },
158
+ };
159
+ }
160
+ return { type: output.kind };
161
+ }
162
+ function normalizeToolMode(toolChoice) {
163
+ if (!toolChoice)
164
+ return undefined;
165
+ if (toolChoice === 'auto' || toolChoice === 'none')
166
+ return toolChoice;
167
+ return { toolName: toolChoice.function.name };
168
+ }
169
+ function canonicalToolModeToLegacy(toolMode) {
170
+ if (!toolMode)
171
+ return undefined;
172
+ if (toolMode === 'auto' || toolMode === 'none')
173
+ return toolMode;
174
+ if (toolMode === 'required')
175
+ return 'auto';
176
+ return { type: 'function', function: { name: toolMode.toolName } };
177
+ }
178
+ function normalizeProviderOptions(request) {
179
+ const cloudflare = {};
180
+ if (request.lora !== undefined)
181
+ cloudflare.lora = request.lora;
182
+ if (request.topP !== undefined)
183
+ cloudflare.topP = request.topP;
184
+ if (request.frequencyPenalty !== undefined)
185
+ cloudflare.frequencyPenalty = request.frequencyPenalty;
186
+ const cerebras = {};
187
+ if (request.reasoning !== undefined)
188
+ cerebras.reasoning = request.reasoning;
189
+ if (request.prediction !== undefined)
190
+ cerebras.prediction = request.prediction;
191
+ const providerOptions = {};
192
+ if (Object.keys(cloudflare).length > 0)
193
+ providerOptions.cloudflare = cloudflare;
194
+ if (Object.keys(cerebras).length > 0)
195
+ providerOptions.cerebras = cerebras;
196
+ return Object.keys(providerOptions).length > 0 ? providerOptions : undefined;
197
+ }
198
+ function normalizeRequirements(request, output, media, workload) {
199
+ const requirements = {};
200
+ const hasToolProtocol = (request.tools?.length ?? 0) > 0 ||
201
+ request.messages.some(message => (message.toolCalls?.length ?? 0) > 0 || (message.toolResults?.length ?? 0) > 0);
202
+ if (hasToolProtocol)
203
+ requirements.toolCalling = true;
204
+ if (output.kind !== 'text')
205
+ requirements.structuredOutput = true;
206
+ if ((media?.length ?? 0) > 0)
207
+ requirements.vision = true;
208
+ if ((request.builtInTools?.length ?? 0) > 0)
209
+ requirements.builtInTools = true;
210
+ if (workload === 'LONG_CONTEXT')
211
+ requirements.longContext = true;
212
+ return Object.keys(requirements).length > 0 ? requirements : undefined;
213
+ }
214
+ function normalizeWorkload(value) {
215
+ if (typeof value !== 'string')
216
+ return undefined;
217
+ const normalized = value.toUpperCase();
218
+ return MODEL_USE_CASES.has(normalized)
219
+ ? normalized
220
+ : undefined;
221
+ }
222
+ function copyMessage(message) {
223
+ return {
224
+ role: message.role,
225
+ content: message.content,
226
+ timestamp: message.timestamp,
227
+ toolCalls: message.toolCalls?.map(copyToolCall),
228
+ toolResults: message.toolResults?.map(copyToolResult),
229
+ };
230
+ }
231
+ function copyTool(tool) {
232
+ return {
233
+ type: tool.type,
234
+ function: {
235
+ name: tool.function.name,
236
+ description: tool.function.description,
237
+ parameters: {
238
+ type: tool.function.parameters.type,
239
+ properties: { ...tool.function.parameters.properties },
240
+ required: tool.function.parameters.required
241
+ ? [...tool.function.parameters.required]
242
+ : undefined,
243
+ },
244
+ },
245
+ };
246
+ }
247
+ function copyToolCall(toolCall) {
248
+ return {
249
+ id: toolCall.id,
250
+ type: toolCall.type,
251
+ function: { ...toolCall.function },
252
+ };
253
+ }
254
+ function copyToolResult(toolResult) {
255
+ return { ...toolResult };
256
+ }
257
+ function imageToMediaPart(image) {
258
+ return {
259
+ type: 'image',
260
+ data: image.data,
261
+ url: image.url,
262
+ mimeType: image.mimeType,
263
+ };
264
+ }
265
+ function mediaPartToImage(part) {
266
+ return {
267
+ data: part.data,
268
+ url: part.url,
269
+ mimeType: part.mimeType,
270
+ };
271
+ }
272
+ function copyRecord(value) {
273
+ return value ? { ...value } : undefined;
274
+ }
275
+ function copyProviderOptions(options) {
276
+ if (!options)
277
+ return undefined;
278
+ return {
279
+ cloudflare: options.cloudflare ? { ...options.cloudflare } : undefined,
280
+ cerebras: options.cerebras ? { ...options.cerebras } : undefined,
281
+ groq: copyRecord(options.groq),
282
+ nvidia: copyRecord(options.nvidia),
283
+ openai: copyRecord(options.openai),
284
+ anthropic: copyRecord(options.anthropic),
285
+ };
286
+ }
287
+ //# sourceMappingURL=canonical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}