@stackbilt/llm-providers 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +112 -85
  2. package/dist/errors.d.ts +32 -1
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/errors.js +29 -2
  5. package/dist/errors.js.map +1 -1
  6. package/dist/factory.d.ts +62 -4
  7. package/dist/factory.d.ts.map +1 -1
  8. package/dist/factory.js +651 -92
  9. package/dist/factory.js.map +1 -1
  10. package/dist/index.d.ts +45 -12
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +72 -14
  13. package/dist/index.js.map +1 -1
  14. package/dist/providers/anthropic.d.ts +5 -2
  15. package/dist/providers/anthropic.d.ts.map +1 -1
  16. package/dist/providers/anthropic.js +157 -43
  17. package/dist/providers/anthropic.js.map +1 -1
  18. package/dist/providers/base.d.ts +18 -2
  19. package/dist/providers/base.d.ts.map +1 -1
  20. package/dist/providers/base.js +107 -5
  21. package/dist/providers/base.js.map +1 -1
  22. package/dist/providers/cerebras.d.ts.map +1 -1
  23. package/dist/providers/cerebras.js +21 -13
  24. package/dist/providers/cerebras.js.map +1 -1
  25. package/dist/providers/cloudflare.d.ts +3 -0
  26. package/dist/providers/cloudflare.d.ts.map +1 -1
  27. package/dist/providers/cloudflare.js +86 -9
  28. package/dist/providers/cloudflare.js.map +1 -1
  29. package/dist/providers/groq.d.ts +2 -1
  30. package/dist/providers/groq.d.ts.map +1 -1
  31. package/dist/providers/groq.js +95 -15
  32. package/dist/providers/groq.js.map +1 -1
  33. package/dist/providers/openai.d.ts +2 -0
  34. package/dist/providers/openai.d.ts.map +1 -1
  35. package/dist/providers/openai.js +56 -24
  36. package/dist/providers/openai.js.map +1 -1
  37. package/dist/types.d.ts +114 -4
  38. package/dist/types.d.ts.map +1 -1
  39. package/dist/utils/circuit-breaker.d.ts +5 -2
  40. package/dist/utils/circuit-breaker.d.ts.map +1 -1
  41. package/dist/utils/circuit-breaker.js +18 -13
  42. package/dist/utils/circuit-breaker.js.map +1 -1
  43. package/dist/utils/cost-tracker.d.ts +9 -2
  44. package/dist/utils/cost-tracker.d.ts.map +1 -1
  45. package/dist/utils/cost-tracker.js +20 -9
  46. package/dist/utils/cost-tracker.js.map +1 -1
  47. package/dist/utils/credit-ledger.d.ts +3 -0
  48. package/dist/utils/credit-ledger.d.ts.map +1 -1
  49. package/dist/utils/credit-ledger.js +5 -2
  50. package/dist/utils/credit-ledger.js.map +1 -1
  51. package/dist/utils/exhaustion.d.ts +38 -0
  52. package/dist/utils/exhaustion.d.ts.map +1 -0
  53. package/dist/utils/exhaustion.js +74 -0
  54. package/dist/utils/exhaustion.js.map +1 -0
  55. package/dist/utils/hooks.d.ts +123 -0
  56. package/dist/utils/hooks.d.ts.map +1 -0
  57. package/dist/utils/hooks.js +44 -0
  58. package/dist/utils/hooks.js.map +1 -0
  59. package/dist/utils/latency-histogram.d.ts +38 -0
  60. package/dist/utils/latency-histogram.d.ts.map +1 -0
  61. package/dist/utils/latency-histogram.js +81 -0
  62. package/dist/utils/latency-histogram.js.map +1 -0
  63. package/dist/utils/logger.d.ts +18 -0
  64. package/dist/utils/logger.d.ts.map +1 -0
  65. package/dist/utils/logger.js +22 -0
  66. package/dist/utils/logger.js.map +1 -0
  67. package/dist/utils/retry.d.ts +4 -2
  68. package/dist/utils/retry.d.ts.map +1 -1
  69. package/dist/utils/retry.js +12 -8
  70. package/dist/utils/retry.js.map +1 -1
  71. package/dist/utils/schema-validator.d.ts +67 -0
  72. package/dist/utils/schema-validator.d.ts.map +1 -0
  73. package/dist/utils/schema-validator.js +140 -0
  74. package/dist/utils/schema-validator.js.map +1 -0
  75. package/package.json +1 -1
@@ -4,12 +4,50 @@
4
4
  */
5
5
  import { BaseProvider } from './base';
6
6
  import { LLMErrorFactory, AuthenticationError } from '../errors';
7
+ import { validateSchema } from '../utils/schema-validator';
8
+ /**
9
+ * Minimum envelope fields the Anthropic response parser reads. Changing this
10
+ * list is a contract change — keep it in sync with formatResponse below.
11
+ *
12
+ * Content blocks are validated as a discriminated union on `type`. Unknown
13
+ * block types are forward-compatible (skipped) so Anthropic adding a new
14
+ * block variant doesn't instantly break the fallback routing on every deploy.
15
+ */
16
+ const ANTHROPIC_RESPONSE_SCHEMA = [
17
+ { path: 'id', type: 'string' },
18
+ {
19
+ path: 'content',
20
+ type: 'array',
21
+ items: {
22
+ discriminator: 'type',
23
+ variants: {
24
+ text: [
25
+ { path: 'text', type: 'string' },
26
+ ],
27
+ tool_use: [
28
+ { path: 'id', type: 'string' },
29
+ { path: 'name', type: 'string' },
30
+ { path: 'input', type: 'object' },
31
+ ],
32
+ },
33
+ },
34
+ },
35
+ { path: 'model', type: 'string' },
36
+ { path: 'stop_reason', type: 'string' },
37
+ { path: 'stop_sequence', type: 'string', optional: true },
38
+ { path: 'usage', type: 'object' },
39
+ { path: 'usage.input_tokens', type: 'number' },
40
+ { path: 'usage.output_tokens', type: 'number' },
41
+ ];
7
42
  export class AnthropicProvider extends BaseProvider {
8
43
  name = 'anthropic';
9
44
  models = [
45
+ 'claude-opus-4-6-20250618',
46
+ 'claude-sonnet-4-6-20250618',
47
+ 'claude-opus-4-20250618',
10
48
  'claude-sonnet-4-20250514',
11
- 'claude-opus-4-20250514',
12
- 'claude-sonnet-3.7-20241120',
49
+ 'claude-haiku-4-5-20251001',
50
+ 'claude-3-7-sonnet-20250219',
13
51
  'claude-3-5-sonnet-20241022',
14
52
  'claude-3-5-haiku-20241022',
15
53
  'claude-3-opus-20240229',
@@ -19,6 +57,7 @@ export class AnthropicProvider extends BaseProvider {
19
57
  supportsStreaming = true;
20
58
  supportsTools = true;
21
59
  supportsBatching = false;
60
+ supportsVision = true;
22
61
  apiKey;
23
62
  baseUrl;
24
63
  version;
@@ -38,14 +77,16 @@ export class AnthropicProvider extends BaseProvider {
38
77
  try {
39
78
  const response = await this.executeWithResiliency(async () => {
40
79
  const anthropicRequest = this.formatRequest(request);
41
- const httpResponse = await this.makeAnthropicRequest('/v1/messages', anthropicRequest);
80
+ const httpResponse = await this.makeAnthropicRequest('/v1/messages', anthropicRequest, 'POST', request);
42
81
  if (!httpResponse.ok) {
43
82
  throw await LLMErrorFactory.fromFetchResponse('anthropic', httpResponse);
44
83
  }
45
84
  const data = await httpResponse.json();
85
+ validateSchema('anthropic', data, ANTHROPIC_RESPONSE_SCHEMA);
46
86
  const formatted = this.formatResponse(data, Date.now() - startTime);
47
- // Prepend the prefilled '{' that was consumed by the assistant turn
48
- if (jsonMode) {
87
+ // Restore the prefilled '{' consumed by the assistant turn,
88
+ // but only if the response doesn't already start with one
89
+ if (jsonMode && !formatted.message.startsWith('{')) {
49
90
  const restored = '{' + formatted.message;
50
91
  formatted.message = restored;
51
92
  formatted.content = restored;
@@ -70,7 +111,7 @@ export class AnthropicProvider extends BaseProvider {
70
111
  return [...this.models];
71
112
  }
72
113
  estimateCost(request) {
73
- const model = request.model || 'claude-3-5-haiku-20241022';
114
+ const model = request.model || 'claude-haiku-4-5-20251001';
74
115
  const capabilities = this.getModelCapabilities()[model];
75
116
  if (!capabilities)
76
117
  return 0;
@@ -81,48 +122,100 @@ export class AnthropicProvider extends BaseProvider {
81
122
  }
82
123
  async healthCheck() {
83
124
  try {
84
- // Anthropic doesn't have a simple health check endpoint
85
- // So we'll make a minimal request
86
- const testRequest = {
87
- model: 'claude-3-5-haiku-20241022',
88
- messages: [{ role: 'user', content: 'Hi' }],
89
- max_tokens: 1
90
- };
91
- const response = await this.makeAnthropicRequest('/v1/messages', testRequest);
92
- return response.ok;
125
+ // Lightweight reachability check HEAD to base URL avoids burning tokens
126
+ const response = await this.makeAnthropicRequest('/v1/messages', null, 'OPTIONS');
127
+ // Anthropic returns 405 for OPTIONS but that confirms the API is reachable
128
+ return response.status !== 0;
93
129
  }
94
130
  catch {
95
131
  return false;
96
132
  }
97
133
  }
134
+ async getProviderBalance() {
135
+ try {
136
+ const response = await this.makeAnthropicRequest('/v1/organizations/cost_report', null, 'GET');
137
+ if (!response.ok) {
138
+ return {
139
+ provider: this.name,
140
+ status: 'unavailable',
141
+ source: 'provider_api',
142
+ message: `Anthropic usage API returned HTTP ${response.status}`
143
+ };
144
+ }
145
+ const raw = await response.json();
146
+ return {
147
+ provider: this.name,
148
+ status: 'available',
149
+ source: 'provider_api',
150
+ raw
151
+ };
152
+ }
153
+ catch (error) {
154
+ return {
155
+ provider: this.name,
156
+ status: 'error',
157
+ source: 'provider_api',
158
+ message: error.message
159
+ };
160
+ }
161
+ }
98
162
  getModelCapabilities() {
99
163
  return {
164
+ 'claude-opus-4-6-20250618': {
165
+ maxContextLength: 200000,
166
+ supportsStreaming: true,
167
+ supportsTools: true,
168
+ supportsVision: true,
169
+ supportsBatching: false,
170
+ inputTokenCost: 0.015, // $15 per 1M tokens
171
+ outputTokenCost: 0.075, // $75 per 1M tokens
172
+ description: 'Claude Opus 4.6 - Latest, highest intelligence and capability'
173
+ },
174
+ 'claude-sonnet-4-6-20250618': {
175
+ maxContextLength: 200000,
176
+ supportsStreaming: true,
177
+ supportsTools: true,
178
+ supportsVision: true,
179
+ supportsBatching: false,
180
+ inputTokenCost: 0.003, // $3 per 1M tokens
181
+ outputTokenCost: 0.015, // $15 per 1M tokens
182
+ description: 'Claude Sonnet 4.6 - Latest balanced performance model'
183
+ },
184
+ 'claude-opus-4-20250618': {
185
+ maxContextLength: 200000,
186
+ supportsStreaming: true,
187
+ supportsTools: true,
188
+ supportsBatching: false,
189
+ inputTokenCost: 0.015, // $15 per 1M tokens
190
+ outputTokenCost: 0.075, // $75 per 1M tokens
191
+ description: 'Claude Opus 4 - Highest level of intelligence and capability'
192
+ },
100
193
  'claude-sonnet-4-20250514': {
101
194
  maxContextLength: 200000,
102
195
  supportsStreaming: true,
103
196
  supportsTools: true,
104
197
  supportsBatching: false,
105
- inputTokenCost: 0.003, // Estimated - actual pricing TBD
106
- outputTokenCost: 0.015, // Estimated - actual pricing TBD
198
+ inputTokenCost: 0.003, // $3 per 1M tokens
199
+ outputTokenCost: 0.015, // $15 per 1M tokens
107
200
  description: 'Claude Sonnet 4 - High intelligence and balanced performance'
108
201
  },
109
- 'claude-opus-4-20250514': {
202
+ 'claude-haiku-4-5-20251001': {
110
203
  maxContextLength: 200000,
111
204
  supportsStreaming: true,
112
205
  supportsTools: true,
113
206
  supportsBatching: false,
114
- inputTokenCost: 0.015, // Estimated - actual pricing TBD
115
- outputTokenCost: 0.075, // Estimated - actual pricing TBD
116
- description: 'Claude Opus 4 - Highest level of intelligence and capability'
207
+ inputTokenCost: 0.001, // $1 per 1M tokens
208
+ outputTokenCost: 0.005, // $5 per 1M tokens
209
+ description: 'Claude Haiku 4.5 - Fast and cost-effective'
117
210
  },
118
- 'claude-sonnet-3.7-20241120': {
211
+ 'claude-3-7-sonnet-20250219': {
119
212
  maxContextLength: 200000,
120
213
  supportsStreaming: true,
121
214
  supportsTools: true,
122
215
  supportsBatching: false,
123
- inputTokenCost: 0.003, // Estimated - actual pricing TBD
124
- outputTokenCost: 0.015, // Estimated - actual pricing TBD
125
- description: 'Claude Sonnet 3.7 - High intelligence with toggleable extended thinking'
216
+ inputTokenCost: 0.003, // $3 per 1M tokens
217
+ outputTokenCost: 0.015, // $15 per 1M tokens
218
+ description: 'Claude 3.7 Sonnet - Extended thinking with hybrid reasoning'
126
219
  },
127
220
  'claude-3-5-sonnet-20241022': {
128
221
  maxContextLength: 200000,
@@ -171,11 +264,12 @@ export class AnthropicProvider extends BaseProvider {
171
264
  }
172
265
  };
173
266
  }
174
- async makeAnthropicRequest(endpoint, body, method = 'POST') {
267
+ async makeAnthropicRequest(endpoint, body, method = 'POST', request) {
175
268
  const headers = {
176
269
  'x-api-key': this.apiKey,
177
270
  'anthropic-version': this.version,
178
- 'Content-Type': 'application/json'
271
+ 'Content-Type': 'application/json',
272
+ ...this.getAIGatewayHeaders(request)
179
273
  };
180
274
  const options = {
181
275
  method,
@@ -195,7 +289,7 @@ export class AnthropicProvider extends BaseProvider {
195
289
  continue;
196
290
  const anthropicMessage = {
197
291
  role: message.role,
198
- content: message.content
292
+ content: this.formatMessageContent(message.content, message.role === 'user' ? request.images : undefined)
199
293
  };
200
294
  // Handle tool calls and results
201
295
  if (message.toolCalls && message.toolCalls.length > 0) {
@@ -221,7 +315,7 @@ export class AnthropicProvider extends BaseProvider {
221
315
  messages.push({ role: 'assistant', content: '{' });
222
316
  }
223
317
  const anthropicRequest = {
224
- model: request.model || 'claude-3-5-haiku-20241022',
318
+ model: request.model || 'claude-haiku-4-5-20251001',
225
319
  messages,
226
320
  max_tokens: request.maxTokens || 1000,
227
321
  temperature: request.temperature,
@@ -256,6 +350,30 @@ export class AnthropicProvider extends BaseProvider {
256
350
  }
257
351
  return anthropicRequest;
258
352
  }
353
+ formatMessageContent(text, images) {
354
+ if (!images || images.length === 0) {
355
+ return text;
356
+ }
357
+ return [
358
+ { type: 'text', text },
359
+ ...images.map(image => {
360
+ if (image.url) {
361
+ return {
362
+ type: 'text',
363
+ text: `[Image URL: ${image.url}]`
364
+ };
365
+ }
366
+ return {
367
+ type: 'image',
368
+ source: {
369
+ type: 'base64',
370
+ media_type: image.mimeType || 'image/jpeg',
371
+ data: image.data || ''
372
+ }
373
+ };
374
+ })
375
+ ];
376
+ }
259
377
  formatResponse(data, responseTime) {
260
378
  // Extract text content from response
261
379
  const textContent = data.content
@@ -281,10 +399,13 @@ export class AnthropicProvider extends BaseProvider {
281
399
  stopSequence: data.stop_sequence
282
400
  }
283
401
  };
284
- // Extract tool calls if present
402
+ // Extract tool calls if present. id/name/input are guaranteed non-null
403
+ // for tool_use blocks by ANTHROPIC_RESPONSE_SCHEMA's discriminated-union
404
+ // validation — if they were missing, validateSchema would have thrown
405
+ // SchemaDriftError before we got here.
285
406
  const toolUses = data.content.filter(block => block.type === 'tool_use');
286
407
  if (toolUses.length > 0) {
287
- response.toolCalls = toolUses.map(tool => ({
408
+ const raw = toolUses.map(tool => ({
288
409
  id: tool.id,
289
410
  type: 'function',
290
411
  function: {
@@ -292,6 +413,7 @@ export class AnthropicProvider extends BaseProvider {
292
413
  arguments: JSON.stringify(tool.input)
293
414
  }
294
415
  }));
416
+ response.toolCalls = this.validateToolCalls(raw);
295
417
  }
296
418
  return response;
297
419
  }
@@ -316,7 +438,7 @@ export class AnthropicProvider extends BaseProvider {
316
438
  return new ReadableStream({
317
439
  start: async (controller) => {
318
440
  try {
319
- const response = await this.makeAnthropicRequest('/v1/messages', anthropicRequest);
441
+ const response = await this.makeAnthropicRequest('/v1/messages', anthropicRequest, 'POST', request);
320
442
  if (!response.ok) {
321
443
  throw await LLMErrorFactory.fromFetchResponse('anthropic', response);
322
444
  }
@@ -346,8 +468,8 @@ export class AnthropicProvider extends BaseProvider {
346
468
  controller.enqueue(parsed.delta.text);
347
469
  }
348
470
  }
349
- catch (error) {
350
- console.warn('Failed to parse SSE data:', error);
471
+ catch {
472
+ // Malformed SSE chunk — skip silently
351
473
  }
352
474
  }
353
475
  }
@@ -364,15 +486,7 @@ export class AnthropicProvider extends BaseProvider {
364
486
  * Tool usage support
365
487
  */
366
488
  async generateWithTools(request) {
367
- const response = await this.generateResponse(request);
368
- // If the response contains tool calls, we need to execute them
369
- // and potentially make another request with the results
370
- if (response.toolCalls && response.toolCalls.length > 0) {
371
- // This would typically involve executing the tools and making another request
372
- // For now, we just return the response with tool calls
373
- console.log('Tool calls detected in Anthropic response:', response.toolCalls);
374
- }
375
- return response;
489
+ return this.generateResponse(request);
376
490
  }
377
491
  }
378
492
  //# sourceMappingURL=anthropic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
  * Base Provider
3
3
  * Abstract base class for all LLM providers with common functionality
4
4
  */
5
- import type { LLMProvider, LLMRequest, LLMResponse, ProviderConfig, ModelCapabilities, ProviderMetrics } from '../types';
5
+ import type { LLMProvider, LLMImageInput, LLMRequest, LLMResponse, ProviderConfig, ModelCapabilities, ProviderMetrics, ToolCall } from '../types';
6
+ import type { Logger } from '../utils/logger';
6
7
  import { RetryManager } from '../utils/retry';
7
8
  import { CircuitBreaker } from '../utils/circuit-breaker';
8
9
  import { CostTracker } from '../utils/cost-tracker';
@@ -13,6 +14,7 @@ export declare abstract class BaseProvider implements LLMProvider {
13
14
  abstract supportsTools: boolean;
14
15
  abstract supportsBatching: boolean;
15
16
  protected config: ProviderConfig;
17
+ protected logger: Logger;
16
18
  protected retryManager: RetryManager;
17
19
  protected circuitBreaker: CircuitBreaker;
18
20
  protected costTracker: CostTracker;
@@ -88,6 +90,20 @@ export declare abstract class BaseProvider implements LLMProvider {
88
90
  * Validate request before processing
89
91
  */
90
92
  protected validateRequest(request: LLMRequest): void;
93
+ protected estimateTextTokens(request: LLMRequest): number;
94
+ protected validateImageInput(image: LLMImageInput): void;
95
+ protected getAIGatewayHeaders(request?: LLMRequest): Record<string, string>;
96
+ /**
97
+ * Validate and sanitize tool calls returned by the provider.
98
+ *
99
+ * Ensures each tool call has the required fields (`id`, `type`, `function.name`,
100
+ * `function.arguments`) and that their types are correct. Malformed entries are
101
+ * dropped and logged rather than propagated to the caller.
102
+ *
103
+ * Returns `undefined` when the input is empty or all entries are invalid, so the
104
+ * result can be assigned directly to `response.toolCalls`.
105
+ */
106
+ protected validateToolCalls(toolCalls: ToolCall[] | undefined): ToolCall[] | undefined;
91
107
  /**
92
108
  * Calculate token usage cost
93
109
  */
@@ -98,7 +114,7 @@ export declare abstract class BaseProvider implements LLMProvider {
98
114
  protected buildResponse(content: string, usage: {
99
115
  inputTokens: number;
100
116
  outputTokens: number;
101
- }, model: string, responseTime: number, metadata?: Record<string, any>): LLMResponse;
117
+ }, model: string, responseTime: number, metadata?: Record<string, unknown>): LLMResponse;
102
118
  /**
103
119
  * Log request/response for debugging
104
120
  */
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,15 @@
2
2
  * Base Provider
3
3
  * Abstract base class for all LLM providers with common functionality
4
4
  */
5
+ import { noopLogger } from '../utils/logger';
5
6
  import { RetryManager } from '../utils/retry';
6
7
  import { CircuitBreaker, defaultCircuitBreakerManager } from '../utils/circuit-breaker';
7
8
  import { CostTracker } from '../utils/cost-tracker';
9
+ import { defaultLatencyHistogram } from '../utils/latency-histogram';
8
10
  import { ConfigurationError, TimeoutError } from '../errors';
9
11
  export class BaseProvider {
10
12
  config;
13
+ logger;
11
14
  retryManager;
12
15
  circuitBreaker;
13
16
  costTracker;
@@ -19,14 +22,15 @@ export class BaseProvider {
19
22
  retryDelay: config.retryDelay ?? 1000,
20
23
  ...config
21
24
  };
25
+ this.logger = config.logger ?? noopLogger;
22
26
  this.retryManager = new RetryManager({
23
27
  maxRetries: this.config.maxRetries,
24
28
  initialDelay: this.config.retryDelay
25
- });
29
+ }, this.logger);
26
30
  // Note: this.name is set by the subclass after super() returns.
27
31
  // The circuit breaker name is updated lazily on first use.
28
- this.circuitBreaker = new CircuitBreaker('pending');
29
- this.costTracker = new CostTracker();
32
+ this.circuitBreaker = new CircuitBreaker('pending', {}, this.logger);
33
+ this.costTracker = new CostTracker({}, undefined, this.logger);
30
34
  this.metrics = {
31
35
  requestCount: 0,
32
36
  successCount: 0,
@@ -88,6 +92,8 @@ export class BaseProvider {
88
92
  const totalLatency = this.metrics.averageLatency * (this.metrics.requestCount - 1);
89
93
  this.metrics.averageLatency = (totalLatency + measuredLatency) / this.metrics.requestCount;
90
94
  this.metrics.totalCost += cost;
95
+ // Record to latency histogram for percentile tracking
96
+ defaultLatencyHistogram.record(this.name, measuredLatency);
91
97
  }
92
98
  /**
93
99
  * Get provider metrics
@@ -171,6 +177,102 @@ export class BaseProvider {
171
177
  if (request.model && !this.models.includes(request.model)) {
172
178
  throw new ConfigurationError(this.name, `Model '${request.model}' not supported. Available models: ${this.models.join(', ')}`);
173
179
  }
180
+ if (request.images) {
181
+ for (const image of request.images) {
182
+ this.validateImageInput(image);
183
+ }
184
+ }
185
+ }
186
+ estimateTextTokens(request) {
187
+ return ((request.systemPrompt ? Math.ceil(request.systemPrompt.length / 4) : 0) +
188
+ request.messages.reduce((sum, msg) => sum + Math.ceil(msg.content.length / 4), 0));
189
+ }
190
+ validateImageInput(image) {
191
+ if (!image.data && !image.url) {
192
+ throw new ConfigurationError(this.name, 'Image input must include data or url');
193
+ }
194
+ if (image.data && !image.mimeType) {
195
+ throw new ConfigurationError(this.name, 'Base64 image input must include mimeType');
196
+ }
197
+ }
198
+ getAIGatewayHeaders(request) {
199
+ const baseUrl = typeof this.config.baseUrl === 'string' ? this.config.baseUrl : '';
200
+ if (!baseUrl.includes('gateway.ai.cloudflare.com') || !request?.gatewayMetadata) {
201
+ return {};
202
+ }
203
+ const headers = {};
204
+ const metadata = {
205
+ ...(request.gatewayMetadata.customMetadata ?? {}),
206
+ ...(request.gatewayMetadata.requestId ? { requestId: request.gatewayMetadata.requestId } : {}),
207
+ ...(request.requestId ? { llmRequestId: request.requestId } : {}),
208
+ ...(request.tenantId ? { tenantId: request.tenantId } : {}),
209
+ };
210
+ if (Object.keys(metadata).length > 0) {
211
+ headers['cf-aig-metadata'] = JSON.stringify(metadata);
212
+ }
213
+ if (request.gatewayMetadata.cacheKey) {
214
+ headers['cf-aig-cache-key'] = request.gatewayMetadata.cacheKey;
215
+ }
216
+ if (typeof request.gatewayMetadata.cacheTtl === 'number') {
217
+ headers['cf-aig-cache-ttl'] = String(request.gatewayMetadata.cacheTtl);
218
+ }
219
+ return headers;
220
+ }
221
+ /**
222
+ * Validate and sanitize tool calls returned by the provider.
223
+ *
224
+ * Ensures each tool call has the required fields (`id`, `type`, `function.name`,
225
+ * `function.arguments`) and that their types are correct. Malformed entries are
226
+ * dropped and logged rather than propagated to the caller.
227
+ *
228
+ * Returns `undefined` when the input is empty or all entries are invalid, so the
229
+ * result can be assigned directly to `response.toolCalls`.
230
+ */
231
+ validateToolCalls(toolCalls) {
232
+ if (!toolCalls || toolCalls.length === 0) {
233
+ return undefined;
234
+ }
235
+ const valid = [];
236
+ for (let i = 0; i < toolCalls.length; i++) {
237
+ const tc = toolCalls[i];
238
+ // Must be an object
239
+ if (tc == null || typeof tc !== 'object') {
240
+ this.logger.warn(`[${this.name}] Dropping tool_call[${i}]: not an object`);
241
+ continue;
242
+ }
243
+ // id — must be a non-empty string
244
+ if (typeof tc.id !== 'string' || tc.id.length === 0) {
245
+ this.logger.warn(`[${this.name}] Dropping tool_call[${i}]: missing or empty id`);
246
+ continue;
247
+ }
248
+ // type — must be 'function'
249
+ if (tc.type !== 'function') {
250
+ this.logger.warn(`[${this.name}] Dropping tool_call[${i}]: invalid type "${String(tc.type)}"`);
251
+ continue;
252
+ }
253
+ // function — must be an object with name and arguments
254
+ if (tc.function == null || typeof tc.function !== 'object') {
255
+ this.logger.warn(`[${this.name}] Dropping tool_call[${i}]: missing function object`);
256
+ continue;
257
+ }
258
+ if (typeof tc.function.name !== 'string' || tc.function.name.length === 0) {
259
+ this.logger.warn(`[${this.name}] Dropping tool_call[${i}]: missing or empty function.name`);
260
+ continue;
261
+ }
262
+ if (typeof tc.function.arguments !== 'string') {
263
+ this.logger.warn(`[${this.name}] Dropping tool_call[${i}]: function.arguments is not a string`);
264
+ continue;
265
+ }
266
+ valid.push({
267
+ id: tc.id,
268
+ type: 'function',
269
+ function: {
270
+ name: tc.function.name,
271
+ arguments: tc.function.arguments,
272
+ },
273
+ });
274
+ }
275
+ return valid.length > 0 ? valid : undefined;
174
276
  }
175
277
  /**
176
278
  * Calculate token usage cost
@@ -220,10 +322,10 @@ export class BaseProvider {
220
322
  error: error?.message
221
323
  };
222
324
  if (error) {
223
- console.error(`[${this.name}] Request failed:`, logData);
325
+ this.logger.error(`[${this.name}] Request failed:`, logData);
224
326
  }
225
327
  else {
226
- console.log(`[${this.name}] Request completed:`, logData);
328
+ this.logger.debug(`[${this.name}] Request completed:`, logData);
227
329
  }
228
330
  }
229
331
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}