@stackbilt/llm-providers 1.2.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 (91) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/dist/errors.d.ts +14 -0
  4. package/dist/errors.d.ts.map +1 -1
  5. package/dist/errors.js +19 -0
  6. package/dist/errors.js.map +1 -1
  7. package/dist/factory.d.ts +0 -0
  8. package/dist/factory.d.ts.map +1 -1
  9. package/dist/factory.js +23 -2
  10. package/dist/factory.js.map +1 -1
  11. package/dist/image/index.d.ts +0 -0
  12. package/dist/image/index.d.ts.map +0 -0
  13. package/dist/image/index.js +0 -0
  14. package/dist/image/index.js.map +0 -0
  15. package/dist/image/provider.d.ts +0 -0
  16. package/dist/image/provider.d.ts.map +0 -0
  17. package/dist/image/provider.js +0 -0
  18. package/dist/image/provider.js.map +0 -0
  19. package/dist/image/types.d.ts +0 -0
  20. package/dist/image/types.d.ts.map +0 -0
  21. package/dist/image/types.js +0 -0
  22. package/dist/image/types.js.map +0 -0
  23. package/dist/index.d.ts +4 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +3 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/providers/anthropic.d.ts +0 -0
  28. package/dist/providers/anthropic.d.ts.map +1 -1
  29. package/dist/providers/anthropic.js +40 -1
  30. package/dist/providers/anthropic.js.map +1 -1
  31. package/dist/providers/base.d.ts +0 -0
  32. package/dist/providers/base.d.ts.map +0 -0
  33. package/dist/providers/base.js +0 -0
  34. package/dist/providers/base.js.map +0 -0
  35. package/dist/providers/cerebras.d.ts +0 -0
  36. package/dist/providers/cerebras.d.ts.map +0 -0
  37. package/dist/providers/cerebras.js +0 -0
  38. package/dist/providers/cerebras.js.map +0 -0
  39. package/dist/providers/cloudflare.d.ts +3 -0
  40. package/dist/providers/cloudflare.d.ts.map +1 -1
  41. package/dist/providers/cloudflare.js +74 -1
  42. package/dist/providers/cloudflare.js.map +1 -1
  43. package/dist/providers/groq.d.ts +0 -0
  44. package/dist/providers/groq.d.ts.map +0 -0
  45. package/dist/providers/groq.js +0 -0
  46. package/dist/providers/groq.js.map +0 -0
  47. package/dist/providers/openai.d.ts +0 -0
  48. package/dist/providers/openai.d.ts.map +0 -0
  49. package/dist/providers/openai.js +0 -0
  50. package/dist/providers/openai.js.map +0 -0
  51. package/dist/types.d.ts +0 -0
  52. package/dist/types.d.ts.map +0 -0
  53. package/dist/types.js +0 -0
  54. package/dist/types.js.map +0 -0
  55. package/dist/utils/circuit-breaker.d.ts +0 -0
  56. package/dist/utils/circuit-breaker.d.ts.map +0 -0
  57. package/dist/utils/circuit-breaker.js +0 -0
  58. package/dist/utils/circuit-breaker.js.map +0 -0
  59. package/dist/utils/cost-tracker.d.ts +0 -0
  60. package/dist/utils/cost-tracker.d.ts.map +0 -0
  61. package/dist/utils/cost-tracker.js +0 -0
  62. package/dist/utils/cost-tracker.js.map +0 -0
  63. package/dist/utils/credit-ledger.d.ts +0 -0
  64. package/dist/utils/credit-ledger.d.ts.map +0 -0
  65. package/dist/utils/credit-ledger.js +0 -0
  66. package/dist/utils/credit-ledger.js.map +0 -0
  67. package/dist/utils/exhaustion.d.ts +0 -0
  68. package/dist/utils/exhaustion.d.ts.map +0 -0
  69. package/dist/utils/exhaustion.js +0 -0
  70. package/dist/utils/exhaustion.js.map +0 -0
  71. package/dist/utils/hooks.d.ts +10 -0
  72. package/dist/utils/hooks.d.ts.map +1 -1
  73. package/dist/utils/hooks.js +1 -1
  74. package/dist/utils/hooks.js.map +1 -1
  75. package/dist/utils/latency-histogram.d.ts +0 -0
  76. package/dist/utils/latency-histogram.d.ts.map +0 -0
  77. package/dist/utils/latency-histogram.js +0 -0
  78. package/dist/utils/latency-histogram.js.map +0 -0
  79. package/dist/utils/logger.d.ts +0 -0
  80. package/dist/utils/logger.d.ts.map +0 -0
  81. package/dist/utils/logger.js +0 -0
  82. package/dist/utils/logger.js.map +0 -0
  83. package/dist/utils/retry.d.ts +0 -0
  84. package/dist/utils/retry.d.ts.map +0 -0
  85. package/dist/utils/retry.js +0 -0
  86. package/dist/utils/retry.js.map +0 -0
  87. package/dist/utils/schema-validator.d.ts +67 -0
  88. package/dist/utils/schema-validator.d.ts.map +1 -0
  89. package/dist/utils/schema-validator.js +140 -0
  90. package/dist/utils/schema-validator.js.map +1 -0
  91. package/package.json +1 -1
File without changes
File without changes
File without changes
File without changes
@@ -10,6 +10,7 @@ export declare class CloudflareProvider extends BaseProvider {
10
10
  supportsStreaming: boolean;
11
11
  supportsTools: boolean;
12
12
  supportsBatching: boolean;
13
+ supportsVision: boolean;
13
14
  private ai;
14
15
  private accountId?;
15
16
  constructor(config: CloudflareConfig);
@@ -20,6 +21,8 @@ export declare class CloudflareProvider extends BaseProvider {
20
21
  healthCheck(): Promise<boolean>;
21
22
  protected getModelCapabilities(): Record<string, ModelCapabilities>;
22
23
  private formatRequest;
24
+ private attachImagesToLastUserMessage;
25
+ private buildImageDataUrl;
23
26
  private formatResponse;
24
27
  private extractText;
25
28
  private extractToolCalls;
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EAGlB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAoEtC,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,IAAI,SAAgB;IACpB,MAAM,WAcJ;IACF,iBAAiB,UAAQ;IACzB,aAAa,UAAQ;IACrB,gBAAgB,UAAQ;IAExB,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEf,MAAM,EAAE,gBAAgB;IAW9B,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAkCjE,cAAc,IAAI,OAAO;IAIzB,SAAS,IAAI,MAAM,EAAE;IAIrB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAiBnC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAerC,SAAS,CAAC,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;IA2HnE,OAAO,CAAC,aAAa;IA2FrB,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,WAAW;IAqDnB,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,YAAY;IAmDpB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IA+C1E;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA+BlE;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAkBhD;;OAEG;IACG,4BAA4B,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;CAS9E"}
1
+ {"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EAEX,gBAAgB,EAChB,iBAAiB,EAGlB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AA0EtC,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,IAAI,SAAgB;IACpB,MAAM,WAiBJ;IACF,iBAAiB,UAAQ;IACzB,aAAa,UAAQ;IACrB,gBAAgB,UAAQ;IACxB,cAAc,UAAQ;IAEtB,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEf,MAAM,EAAE,gBAAgB;IAW9B,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAkCjE,cAAc,IAAI,OAAO;IAIzB,SAAS,IAAI,MAAM,EAAE;IAIrB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAiBnC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAerC,SAAS,CAAC,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;IA2JnE,OAAO,CAAC,aAAa;IAuGrB,OAAO,CAAC,6BAA6B;IA+BrC,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,WAAW;IAqDnB,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,YAAY;IAmDpB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IA+C1E;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA+BlE;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAkBhD;;OAEG;IACG,4BAA4B,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;CAS9E"}
@@ -19,11 +19,15 @@ export class CloudflareProvider extends BaseProvider {
19
19
  '@cf/qwen/qwen1.5-0.5b-chat',
20
20
  '@cf/qwen/qwen1.5-1.8b-chat',
21
21
  '@cf/qwen/qwen1.5-14b-chat-awq',
22
- '@cf/qwen/qwen1.5-7b-chat-awq'
22
+ '@cf/qwen/qwen1.5-7b-chat-awq',
23
+ '@cf/google/gemma-4-26b-a4b-it',
24
+ '@cf/meta/llama-4-scout-17b-16e-instruct',
25
+ '@cf/meta/llama-3.2-11b-vision-instruct'
23
26
  ];
24
27
  supportsStreaming = true;
25
28
  supportsTools = true;
26
29
  supportsBatching = true;
30
+ supportsVision = true;
27
31
  ai;
28
32
  accountId;
29
33
  constructor(config) {
@@ -212,6 +216,38 @@ export class CloudflareProvider extends BaseProvider {
212
216
  inputTokenCost: 0.0000001,
213
217
  outputTokenCost: 0.0000001,
214
218
  description: 'Qwen 1.5 7B - Optimized performance'
219
+ },
220
+ '@cf/google/gemma-4-26b-a4b-it': {
221
+ maxContextLength: 256000,
222
+ supportsStreaming: true,
223
+ supportsTools: true,
224
+ toolCalling: true,
225
+ supportsVision: true,
226
+ supportsBatching: true,
227
+ inputTokenCost: 0.0000001,
228
+ outputTokenCost: 0.0000003,
229
+ description: 'Gemma 4 26B — vision + tools + reasoning, 256K context'
230
+ },
231
+ '@cf/meta/llama-4-scout-17b-16e-instruct': {
232
+ maxContextLength: 131000,
233
+ supportsStreaming: true,
234
+ supportsTools: true,
235
+ toolCalling: true,
236
+ supportsVision: true,
237
+ supportsBatching: true,
238
+ inputTokenCost: 0.0000003,
239
+ outputTokenCost: 0.0000009,
240
+ description: 'Llama 4 Scout 17B — natively multimodal, tool calling'
241
+ },
242
+ '@cf/meta/llama-3.2-11b-vision-instruct': {
243
+ maxContextLength: 128000,
244
+ supportsStreaming: true,
245
+ supportsTools: false,
246
+ supportsVision: true,
247
+ supportsBatching: true,
248
+ inputTokenCost: 0.0000005,
249
+ outputTokenCost: 0.0000005,
250
+ description: 'Llama 3.2 11B Vision — image understanding'
215
251
  }
216
252
  };
217
253
  }
@@ -222,6 +258,10 @@ export class CloudflareProvider extends BaseProvider {
222
258
  if (usesTools && !capabilities?.supportsTools) {
223
259
  throw new ConfigurationError(this.name, `Model '${model}' does not support tool calling on Cloudflare Workers AI`);
224
260
  }
261
+ const hasImages = (request.images?.length ?? 0) > 0;
262
+ if (hasImages && !capabilities?.supportsVision) {
263
+ throw new ConfigurationError(this.name, `Model '${model}' does not support image input. Use a vision-capable model like @cf/google/gemma-4-26b-a4b-it, @cf/meta/llama-4-scout-17b-16e-instruct, or @cf/meta/llama-3.2-11b-vision-instruct.`);
264
+ }
225
265
  const messages = [];
226
266
  const jsonMode = request.response_format?.type === 'json_object';
227
267
  const jsonInstruction = '\n\nYou must respond with valid JSON only. No markdown fences, no commentary, no text outside the JSON.';
@@ -271,6 +311,9 @@ export class CloudflareProvider extends BaseProvider {
271
311
  }
272
312
  }
273
313
  }
314
+ if (hasImages) {
315
+ this.attachImagesToLastUserMessage(messages, request.images, model);
316
+ }
274
317
  const cloudflareRequest = {
275
318
  messages,
276
319
  temperature: request.temperature,
@@ -288,6 +331,36 @@ export class CloudflareProvider extends BaseProvider {
288
331
  }
289
332
  return cloudflareRequest;
290
333
  }
334
+ attachImagesToLastUserMessage(messages, images, model) {
335
+ const lastUserIndex = (() => {
336
+ for (let i = messages.length - 1; i >= 0; i--) {
337
+ if (messages[i].role === 'user')
338
+ return i;
339
+ }
340
+ return -1;
341
+ })();
342
+ if (lastUserIndex === -1) {
343
+ throw new ConfigurationError(this.name, `Vision request must include at least one user message (model: ${model})`);
344
+ }
345
+ const existing = messages[lastUserIndex].content;
346
+ const text = typeof existing === 'string' ? existing : '';
347
+ const parts = [{ type: 'text', text }];
348
+ for (const image of images) {
349
+ const url = this.buildImageDataUrl(image, model);
350
+ parts.push({ type: 'image_url', image_url: { url } });
351
+ }
352
+ messages[lastUserIndex].content = parts;
353
+ }
354
+ buildImageDataUrl(image, model) {
355
+ if (image.data) {
356
+ const mime = image.mimeType ?? 'image/jpeg';
357
+ return `data:${mime};base64,${image.data}`;
358
+ }
359
+ if (image.url?.startsWith('data:')) {
360
+ return image.url;
361
+ }
362
+ throw new ConfigurationError(this.name, `Cloudflare vision models (${model}) require base64 image data or a data: URL. HTTP image URLs are not supported — fetch the image and pass bytes in image.data.`);
363
+ }
291
364
  formatResponse(result, model, request, responseTime) {
292
365
  const payload = this.unwrapResult(result);
293
366
  const content = this.extractText(result);
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/providers/cloudflare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/providers/cloudflare.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/types.d.ts CHANGED
File without changes
File without changes
package/dist/types.js CHANGED
File without changes
package/dist/types.js.map CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -90,6 +90,15 @@ export interface ProviderBalanceEvent {
90
90
  balance: ProviderBalance;
91
91
  timestamp: number;
92
92
  }
93
+ export interface SchemaDriftEvent {
94
+ provider: string;
95
+ model?: string;
96
+ requestId?: string;
97
+ path: string;
98
+ expected: string;
99
+ actual: string;
100
+ timestamp: number;
101
+ }
93
102
  export interface ObservabilityHooks {
94
103
  onRequestStart?(event: RequestStartEvent): void;
95
104
  onRequestEnd?(event: RequestEndEvent): void;
@@ -102,6 +111,7 @@ export interface ObservabilityHooks {
102
111
  onQuotaCheck?(event: QuotaCheckEvent): void;
103
112
  onQuotaDenied?(event: QuotaDeniedEvent): void;
104
113
  onProviderBalance?(event: ProviderBalanceEvent): void;
114
+ onSchemaDrift?(event: SchemaDriftEvent): void;
105
115
  }
106
116
  /** Silent hooks — default. */
107
117
  export declare const noopHooks: ObservabilityHooks;
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/utils/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/utils/hooks.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export function composeHooks(...implementations) {
19
19
  'onRequestStart', 'onRequestEnd', 'onRequestError',
20
20
  'onRetry', 'onFallback', 'onCircuitStateChange',
21
21
  'onQuotaExhausted', 'onBudgetThreshold', 'onQuotaCheck',
22
- 'onQuotaDenied', 'onProviderBalance',
22
+ 'onQuotaDenied', 'onProviderBalance', 'onSchemaDrift',
23
23
  ];
24
24
  const composed = {};
25
25
  for (const method of methods) {
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/utils/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyHH,8BAA8B;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAuB,EAAE,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAG,eAAqC;IACnE,MAAM,OAAO,GAAG;QACd,gBAAgB,EAAE,cAAc,EAAE,gBAAgB;QAClD,SAAS,EAAE,YAAY,EAAE,sBAAsB;QAC/C,kBAAkB,EAAE,mBAAmB,EAAE,cAAc;QACvD,eAAe,EAAE,mBAAmB;KAC5B,CAAC;IAEX,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,eAAe;aAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACzB,MAAM,CAAC,CAAC,EAAE,EAAgC,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;QAE5D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,QAAqC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAc,EAAE,EAAE;gBAClE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,IAAI,CAAC;wBACH,OAAO,CAAC,KAAc,CAAC,CAAC;oBAC1B,CAAC;oBAAC,MAAM,CAAC;wBACP,iDAAiD;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/utils/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoIH,8BAA8B;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAuB,EAAE,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAG,eAAqC;IACnE,MAAM,OAAO,GAAG;QACd,gBAAgB,EAAE,cAAc,EAAE,gBAAgB;QAClD,SAAS,EAAE,YAAY,EAAE,sBAAsB;QAC/C,kBAAkB,EAAE,mBAAmB,EAAE,cAAc;QACvD,eAAe,EAAE,mBAAmB,EAAE,eAAe;KAC7C,CAAC;IAEX,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,eAAe;aAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACzB,MAAM,CAAC,CAAC,EAAE,EAAgC,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;QAE5D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,QAAqC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAc,EAAE,EAAE;gBAClE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,IAAI,CAAC;wBACH,OAAO,CAAC,KAAc,CAAC,CAAC;oBAC1B,CAAC;oBAAC,MAAM,CAAC;wBACP,iDAAiD;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Response Envelope Schema Validator
3
+ *
4
+ * Zero-dependency runtime validator for provider response shapes. Used at the
5
+ * provider boundary to detect when an upstream API silently changes its
6
+ * response envelope — the classic "field renamed at 2am, parser throws at
7
+ * 3am" failure mode.
8
+ *
9
+ * Philosophy: validate the *minimum* fields each provider's parser actually
10
+ * reads. Don't re-type the full upstream schema — that creates brittle
11
+ * over-specification that churns every time the provider adds an optional
12
+ * field. Only the fields we touch matter.
13
+ *
14
+ * Usage:
15
+ * validateSchema('anthropic', data, [
16
+ * { path: 'content', type: 'array' },
17
+ * { path: 'usage.input_tokens', type: 'number' },
18
+ * { path: 'usage.output_tokens', type: 'number' },
19
+ * { path: 'model', type: 'string' },
20
+ * ]);
21
+ *
22
+ * On first failure, throws SchemaDriftError. The caller (typically the
23
+ * factory) catches it, fires the onSchemaDrift hook, and falls over to
24
+ * another provider.
25
+ */
26
+ export type SchemaFieldType = 'string' | 'number' | 'boolean' | 'array' | 'object' | 'string-or-null';
27
+ export interface SchemaField {
28
+ /**
29
+ * Dot-separated path into the response object. Array indices not supported
30
+ * in the path itself — use `items` to validate array element shapes.
31
+ */
32
+ path: string;
33
+ type: SchemaFieldType;
34
+ /**
35
+ * If true, missing paths are allowed and skipped. Useful for fields that
36
+ * are genuinely optional (e.g. stop_sequence on Anthropic).
37
+ */
38
+ optional?: boolean;
39
+ /**
40
+ * For type: 'array' — validate each element against a nested schema.
41
+ *
42
+ * - `shape`: a flat SchemaField[] applied to every element (all elements
43
+ * the same shape).
44
+ * - `variants` + `discriminator`: discriminated union. Each element is
45
+ * routed by the value of `discriminator` (a field name on the element)
46
+ * to the matching variant schema. **Unknown discriminator values are
47
+ * allowed and skipped** — we want forward-compat for additive API
48
+ * changes (e.g. Anthropic adds a new content block type). Only *missing*
49
+ * discriminators or *wrong-typed* known variants trigger drift.
50
+ */
51
+ items?: {
52
+ shape?: SchemaField[];
53
+ discriminator?: string;
54
+ variants?: Record<string, SchemaField[]>;
55
+ };
56
+ }
57
+ /**
58
+ * Validate a response envelope against a minimal field schema.
59
+ * Throws SchemaDriftError on the first mismatch, with provider + path +
60
+ * expected/actual types surfaced for observability.
61
+ *
62
+ * We fail fast rather than collecting all errors: the first drift is enough
63
+ * to trigger fallback, and walking the whole schema when we're already
64
+ * broken wastes budget.
65
+ */
66
+ export declare function validateSchema(provider: string, data: unknown, fields: SchemaField[]): void;
67
+ //# sourceMappingURL=schema-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../src/utils/schema-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,MAAM,MAAM,eAAe,GACvB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,GACR,gBAAgB,CAAC;AAErB,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;KAC1C,CAAC;CACH;AAoID;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,WAAW,EAAE,GACpB,IAAI,CAEN"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Response Envelope Schema Validator
3
+ *
4
+ * Zero-dependency runtime validator for provider response shapes. Used at the
5
+ * provider boundary to detect when an upstream API silently changes its
6
+ * response envelope — the classic "field renamed at 2am, parser throws at
7
+ * 3am" failure mode.
8
+ *
9
+ * Philosophy: validate the *minimum* fields each provider's parser actually
10
+ * reads. Don't re-type the full upstream schema — that creates brittle
11
+ * over-specification that churns every time the provider adds an optional
12
+ * field. Only the fields we touch matter.
13
+ *
14
+ * Usage:
15
+ * validateSchema('anthropic', data, [
16
+ * { path: 'content', type: 'array' },
17
+ * { path: 'usage.input_tokens', type: 'number' },
18
+ * { path: 'usage.output_tokens', type: 'number' },
19
+ * { path: 'model', type: 'string' },
20
+ * ]);
21
+ *
22
+ * On first failure, throws SchemaDriftError. The caller (typically the
23
+ * factory) catches it, fires the onSchemaDrift hook, and falls over to
24
+ * another provider.
25
+ */
26
+ import { SchemaDriftError } from '../errors';
27
+ /**
28
+ * Walk a dot-path into an object. Returns undefined if any segment is missing.
29
+ * Does NOT distinguish "path missing" from "path present but undefined" —
30
+ * callers should treat both as missing.
31
+ */
32
+ function getPath(obj, path) {
33
+ const segments = path.split('.');
34
+ let current = obj;
35
+ for (const segment of segments) {
36
+ if (current == null || typeof current !== 'object') {
37
+ return undefined;
38
+ }
39
+ current = current[segment];
40
+ }
41
+ return current;
42
+ }
43
+ /**
44
+ * Describe the actual runtime type of a value for error messages.
45
+ * Separates null / undefined / array from generic object.
46
+ */
47
+ function describeType(value) {
48
+ if (value === null)
49
+ return 'null';
50
+ if (value === undefined)
51
+ return 'undefined';
52
+ if (Array.isArray(value))
53
+ return 'array';
54
+ return typeof value;
55
+ }
56
+ function matchesType(value, type) {
57
+ switch (type) {
58
+ case 'string':
59
+ return typeof value === 'string';
60
+ case 'number':
61
+ return typeof value === 'number' && Number.isFinite(value);
62
+ case 'boolean':
63
+ return typeof value === 'boolean';
64
+ case 'array':
65
+ return Array.isArray(value);
66
+ case 'object':
67
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
68
+ case 'string-or-null':
69
+ return value === null || typeof value === 'string';
70
+ }
71
+ }
72
+ /**
73
+ * Validate a single object against a flat SchemaField list, prefixing any
74
+ * error path with `pathPrefix` so nested element errors read like
75
+ * `content[2].id` instead of bare `id`.
76
+ */
77
+ function validateFields(provider, data, fields, pathPrefix) {
78
+ if (data == null || typeof data !== 'object') {
79
+ throw new SchemaDriftError(provider, pathPrefix || '$root', 'object', describeType(data));
80
+ }
81
+ for (const field of fields) {
82
+ const fullPath = pathPrefix ? `${pathPrefix}.${field.path}` : field.path;
83
+ const value = getPath(data, field.path);
84
+ if (value === undefined) {
85
+ if (field.optional)
86
+ continue;
87
+ throw new SchemaDriftError(provider, fullPath, field.type, 'undefined');
88
+ }
89
+ if (!matchesType(value, field.type)) {
90
+ throw new SchemaDriftError(provider, fullPath, field.type, describeType(value));
91
+ }
92
+ if (field.type === 'array' && field.items) {
93
+ validateArrayItems(provider, value, field.items, fullPath);
94
+ }
95
+ }
96
+ }
97
+ /**
98
+ * Validate the elements of an array against either a flat `shape` or a
99
+ * discriminated `variants` map. Unknown discriminator values are
100
+ * forward-compatible and skipped.
101
+ */
102
+ function validateArrayItems(provider, items, spec, arrayPath) {
103
+ for (let i = 0; i < items.length; i++) {
104
+ const element = items[i];
105
+ const elementPath = `${arrayPath}[${i}]`;
106
+ if (element == null || typeof element !== 'object') {
107
+ throw new SchemaDriftError(provider, elementPath, 'object', describeType(element));
108
+ }
109
+ if (spec.discriminator && spec.variants) {
110
+ const disc = element[spec.discriminator];
111
+ if (typeof disc !== 'string') {
112
+ throw new SchemaDriftError(provider, `${elementPath}.${spec.discriminator}`, 'string', describeType(disc));
113
+ }
114
+ const variantFields = spec.variants[disc];
115
+ // Unknown discriminator value — forward-compat. Skip validation
116
+ // rather than reject, so adding a new block type upstream doesn't
117
+ // break every consumer on the next deploy.
118
+ if (!variantFields)
119
+ continue;
120
+ validateFields(provider, element, variantFields, elementPath);
121
+ continue;
122
+ }
123
+ if (spec.shape) {
124
+ validateFields(provider, element, spec.shape, elementPath);
125
+ }
126
+ }
127
+ }
128
+ /**
129
+ * Validate a response envelope against a minimal field schema.
130
+ * Throws SchemaDriftError on the first mismatch, with provider + path +
131
+ * expected/actual types surfaced for observability.
132
+ *
133
+ * We fail fast rather than collecting all errors: the first drift is enough
134
+ * to trigger fallback, and walking the whole schema when we're already
135
+ * broken wastes budget.
136
+ */
137
+ export function validateSchema(provider, data, fields) {
138
+ validateFields(provider, data, fields, '');
139
+ }
140
+ //# sourceMappingURL=schema-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../src/utils/schema-validator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackbilt/llm-providers",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Multi-LLM failover with circuit breakers, cost tracking, and intelligent retry. Cloudflare Workers native.",
5
5
  "author": "Stackbilt <admin@stackbilt.dev>",
6
6
  "license": "Apache-2.0",