@revenium/openai 1.0.8

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 (177) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1095 -0
  3. package/dist/cjs/core/config/azure-config.js +64 -0
  4. package/dist/cjs/core/config/azure-config.js.map +1 -0
  5. package/dist/cjs/core/config/index.js +41 -0
  6. package/dist/cjs/core/config/index.js.map +1 -0
  7. package/dist/cjs/core/config/loader.js +63 -0
  8. package/dist/cjs/core/config/loader.js.map +1 -0
  9. package/dist/cjs/core/config/manager.js +93 -0
  10. package/dist/cjs/core/config/manager.js.map +1 -0
  11. package/dist/cjs/core/config/validator.js +73 -0
  12. package/dist/cjs/core/config/validator.js.map +1 -0
  13. package/dist/cjs/core/providers/detector.js +140 -0
  14. package/dist/cjs/core/providers/detector.js.map +1 -0
  15. package/dist/cjs/core/providers/index.js +18 -0
  16. package/dist/cjs/core/providers/index.js.map +1 -0
  17. package/dist/cjs/core/tracking/api-client.js +68 -0
  18. package/dist/cjs/core/tracking/api-client.js.map +1 -0
  19. package/dist/cjs/core/tracking/index.js +23 -0
  20. package/dist/cjs/core/tracking/index.js.map +1 -0
  21. package/dist/cjs/core/tracking/payload-builder.js +107 -0
  22. package/dist/cjs/core/tracking/payload-builder.js.map +1 -0
  23. package/dist/cjs/core/tracking/usage-tracker.js +120 -0
  24. package/dist/cjs/core/tracking/usage-tracker.js.map +1 -0
  25. package/dist/cjs/core/wrapper/index.js +15 -0
  26. package/dist/cjs/core/wrapper/index.js.map +1 -0
  27. package/dist/cjs/core/wrapper/instance-patcher.js +202 -0
  28. package/dist/cjs/core/wrapper/instance-patcher.js.map +1 -0
  29. package/dist/cjs/core/wrapper/request-handler.js +317 -0
  30. package/dist/cjs/core/wrapper/request-handler.js.map +1 -0
  31. package/dist/cjs/core/wrapper/stream-wrapper.js +82 -0
  32. package/dist/cjs/core/wrapper/stream-wrapper.js.map +1 -0
  33. package/dist/cjs/index.js +195 -0
  34. package/dist/cjs/index.js.map +1 -0
  35. package/dist/cjs/types/function-parameters.js +14 -0
  36. package/dist/cjs/types/function-parameters.js.map +1 -0
  37. package/dist/cjs/types/index.js +49 -0
  38. package/dist/cjs/types/index.js.map +1 -0
  39. package/dist/cjs/types/openai-augmentation.js +55 -0
  40. package/dist/cjs/types/openai-augmentation.js.map +1 -0
  41. package/dist/cjs/types/responses-api.js +30 -0
  42. package/dist/cjs/types/responses-api.js.map +1 -0
  43. package/dist/cjs/utils/azure-model-resolver.js +211 -0
  44. package/dist/cjs/utils/azure-model-resolver.js.map +1 -0
  45. package/dist/cjs/utils/constants.js +24 -0
  46. package/dist/cjs/utils/constants.js.map +1 -0
  47. package/dist/cjs/utils/error-handler.js +194 -0
  48. package/dist/cjs/utils/error-handler.js.map +1 -0
  49. package/dist/cjs/utils/metadata-builder.js +184 -0
  50. package/dist/cjs/utils/metadata-builder.js.map +1 -0
  51. package/dist/cjs/utils/provider-detection.js +212 -0
  52. package/dist/cjs/utils/provider-detection.js.map +1 -0
  53. package/dist/cjs/utils/request-handler-factory.js +185 -0
  54. package/dist/cjs/utils/request-handler-factory.js.map +1 -0
  55. package/dist/cjs/utils/stop-reason-mapper.js +70 -0
  56. package/dist/cjs/utils/stop-reason-mapper.js.map +1 -0
  57. package/dist/cjs/utils/type-guards.js +175 -0
  58. package/dist/cjs/utils/type-guards.js.map +1 -0
  59. package/dist/cjs/utils/url-builder.js +43 -0
  60. package/dist/cjs/utils/url-builder.js.map +1 -0
  61. package/dist/esm/core/config/azure-config.js +61 -0
  62. package/dist/esm/core/config/azure-config.js.map +1 -0
  63. package/dist/esm/core/config/index.js +13 -0
  64. package/dist/esm/core/config/index.js.map +1 -0
  65. package/dist/esm/core/config/loader.js +58 -0
  66. package/dist/esm/core/config/loader.js.map +1 -0
  67. package/dist/esm/core/config/manager.js +85 -0
  68. package/dist/esm/core/config/manager.js.map +1 -0
  69. package/dist/esm/core/config/validator.js +69 -0
  70. package/dist/esm/core/config/validator.js.map +1 -0
  71. package/dist/esm/core/providers/detector.js +134 -0
  72. package/dist/esm/core/providers/detector.js.map +1 -0
  73. package/dist/esm/core/providers/index.js +10 -0
  74. package/dist/esm/core/providers/index.js.map +1 -0
  75. package/dist/esm/core/tracking/api-client.js +65 -0
  76. package/dist/esm/core/tracking/api-client.js.map +1 -0
  77. package/dist/esm/core/tracking/index.js +13 -0
  78. package/dist/esm/core/tracking/index.js.map +1 -0
  79. package/dist/esm/core/tracking/payload-builder.js +104 -0
  80. package/dist/esm/core/tracking/payload-builder.js.map +1 -0
  81. package/dist/esm/core/tracking/usage-tracker.js +114 -0
  82. package/dist/esm/core/tracking/usage-tracker.js.map +1 -0
  83. package/dist/esm/core/wrapper/index.js +9 -0
  84. package/dist/esm/core/wrapper/index.js.map +1 -0
  85. package/dist/esm/core/wrapper/instance-patcher.js +199 -0
  86. package/dist/esm/core/wrapper/instance-patcher.js.map +1 -0
  87. package/dist/esm/core/wrapper/request-handler.js +310 -0
  88. package/dist/esm/core/wrapper/request-handler.js.map +1 -0
  89. package/dist/esm/core/wrapper/stream-wrapper.js +79 -0
  90. package/dist/esm/core/wrapper/stream-wrapper.js.map +1 -0
  91. package/dist/esm/index.js +175 -0
  92. package/dist/esm/index.js.map +1 -0
  93. package/dist/esm/types/function-parameters.js +13 -0
  94. package/dist/esm/types/function-parameters.js.map +1 -0
  95. package/dist/esm/types/index.js +32 -0
  96. package/dist/esm/types/index.js.map +1 -0
  97. package/dist/esm/types/openai-augmentation.js +54 -0
  98. package/dist/esm/types/openai-augmentation.js.map +1 -0
  99. package/dist/esm/types/responses-api.js +26 -0
  100. package/dist/esm/types/responses-api.js.map +1 -0
  101. package/dist/esm/utils/azure-model-resolver.js +204 -0
  102. package/dist/esm/utils/azure-model-resolver.js.map +1 -0
  103. package/dist/esm/utils/constants.js +21 -0
  104. package/dist/esm/utils/constants.js.map +1 -0
  105. package/dist/esm/utils/error-handler.js +182 -0
  106. package/dist/esm/utils/error-handler.js.map +1 -0
  107. package/dist/esm/utils/metadata-builder.js +176 -0
  108. package/dist/esm/utils/metadata-builder.js.map +1 -0
  109. package/dist/esm/utils/provider-detection.js +206 -0
  110. package/dist/esm/utils/provider-detection.js.map +1 -0
  111. package/dist/esm/utils/request-handler-factory.js +146 -0
  112. package/dist/esm/utils/request-handler-factory.js.map +1 -0
  113. package/dist/esm/utils/stop-reason-mapper.js +65 -0
  114. package/dist/esm/utils/stop-reason-mapper.js.map +1 -0
  115. package/dist/esm/utils/type-guards.js +158 -0
  116. package/dist/esm/utils/type-guards.js.map +1 -0
  117. package/dist/esm/utils/url-builder.js +39 -0
  118. package/dist/esm/utils/url-builder.js.map +1 -0
  119. package/dist/types/core/config/azure-config.d.ts +16 -0
  120. package/dist/types/core/config/azure-config.d.ts.map +1 -0
  121. package/dist/types/core/config/index.d.ts +11 -0
  122. package/dist/types/core/config/index.d.ts.map +1 -0
  123. package/dist/types/core/config/loader.d.ts +20 -0
  124. package/dist/types/core/config/loader.d.ts.map +1 -0
  125. package/dist/types/core/config/manager.d.ts +32 -0
  126. package/dist/types/core/config/manager.d.ts.map +1 -0
  127. package/dist/types/core/config/validator.d.ts +23 -0
  128. package/dist/types/core/config/validator.d.ts.map +1 -0
  129. package/dist/types/core/providers/detector.d.ts +44 -0
  130. package/dist/types/core/providers/detector.d.ts.map +1 -0
  131. package/dist/types/core/providers/index.d.ts +9 -0
  132. package/dist/types/core/providers/index.d.ts.map +1 -0
  133. package/dist/types/core/tracking/api-client.d.ts +17 -0
  134. package/dist/types/core/tracking/api-client.d.ts.map +1 -0
  135. package/dist/types/core/tracking/index.d.ts +11 -0
  136. package/dist/types/core/tracking/index.d.ts.map +1 -0
  137. package/dist/types/core/tracking/payload-builder.d.ts +24 -0
  138. package/dist/types/core/tracking/payload-builder.d.ts.map +1 -0
  139. package/dist/types/core/tracking/usage-tracker.d.ts +48 -0
  140. package/dist/types/core/tracking/usage-tracker.d.ts.map +1 -0
  141. package/dist/types/core/wrapper/index.d.ts +8 -0
  142. package/dist/types/core/wrapper/index.d.ts.map +1 -0
  143. package/dist/types/core/wrapper/instance-patcher.d.ts +33 -0
  144. package/dist/types/core/wrapper/instance-patcher.d.ts.map +1 -0
  145. package/dist/types/core/wrapper/request-handler.d.ts +29 -0
  146. package/dist/types/core/wrapper/request-handler.d.ts.map +1 -0
  147. package/dist/types/core/wrapper/stream-wrapper.d.ts +13 -0
  148. package/dist/types/core/wrapper/stream-wrapper.d.ts.map +1 -0
  149. package/dist/types/index.d.ts +179 -0
  150. package/dist/types/index.d.ts.map +1 -0
  151. package/dist/types/types/function-parameters.d.ts +229 -0
  152. package/dist/types/types/function-parameters.d.ts.map +1 -0
  153. package/dist/types/types/index.d.ts +283 -0
  154. package/dist/types/types/index.d.ts.map +1 -0
  155. package/dist/types/types/openai-augmentation.d.ts +226 -0
  156. package/dist/types/types/openai-augmentation.d.ts.map +1 -0
  157. package/dist/types/types/responses-api.d.ts +247 -0
  158. package/dist/types/types/responses-api.d.ts.map +1 -0
  159. package/dist/types/utils/azure-model-resolver.d.ts +41 -0
  160. package/dist/types/utils/azure-model-resolver.d.ts.map +1 -0
  161. package/dist/types/utils/constants.d.ts +4 -0
  162. package/dist/types/utils/constants.d.ts.map +1 -0
  163. package/dist/types/utils/error-handler.d.ts +95 -0
  164. package/dist/types/utils/error-handler.d.ts.map +1 -0
  165. package/dist/types/utils/metadata-builder.d.ts +64 -0
  166. package/dist/types/utils/metadata-builder.d.ts.map +1 -0
  167. package/dist/types/utils/provider-detection.d.ts +51 -0
  168. package/dist/types/utils/provider-detection.d.ts.map +1 -0
  169. package/dist/types/utils/request-handler-factory.d.ts +81 -0
  170. package/dist/types/utils/request-handler-factory.d.ts.map +1 -0
  171. package/dist/types/utils/stop-reason-mapper.d.ts +29 -0
  172. package/dist/types/utils/stop-reason-mapper.d.ts.map +1 -0
  173. package/dist/types/utils/type-guards.d.ts +73 -0
  174. package/dist/types/utils/type-guards.d.ts.map +1 -0
  175. package/dist/types/utils/url-builder.d.ts +25 -0
  176. package/dist/types/utils/url-builder.d.ts.map +1 -0
  177. package/package.json +84 -0
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ /**
3
+ * Core Types Module
4
+ *
5
+ * Central type definitions for the Revenium OpenAI middleware.
6
+ * This module exports all core types used throughout the application.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.Provider = void 0;
24
+ // Re-export function parameter types
25
+ __exportStar(require("./function-parameters.js"), exports);
26
+ // Re-export Responses API types
27
+ __exportStar(require("./responses-api.js"), exports);
28
+ /**
29
+ * Supported AI providers
30
+ *
31
+ * Enumeration of AI providers supported by the Revenium middleware.
32
+ * Used for automatic detection, routing, and provider-specific handling.
33
+ *
34
+ * @public
35
+ * @example
36
+ * ```typescript
37
+ * if (providerInfo.provider === Provider.AZURE_OPENAI) {
38
+ * console.log('Using Azure OpenAI');
39
+ * }
40
+ * ```
41
+ */
42
+ var Provider;
43
+ (function (Provider) {
44
+ /** Standard OpenAI API */
45
+ Provider["OPENAI"] = "OPENAI";
46
+ /** Azure OpenAI Service */
47
+ Provider["AZURE_OPENAI"] = "AZURE_OPENAI";
48
+ })(Provider || (exports.Provider = Provider = {}));
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;AAEH,qCAAqC;AACrC,2DAAyC;AAEzC,gCAAgC;AAChC,qDAAmC;AA0InC;;;;;;;;;;;;;GAaG;AACH,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,0BAA0B;IAC1B,6BAAiB,CAAA;IACjB,2BAA2B;IAC3B,yCAA6B,CAAA;AAC/B,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /**
3
+ * TypeScript module augmentation for OpenAI SDK
4
+ *
5
+ * This file extends OpenAI's existing types to include the usageMetadata field
6
+ * through TypeScript's declaration merging feature. This provides seamless
7
+ * integration with the OpenAI SDK, allowing developers to use usageMetadata
8
+ * directly in OpenAI API calls without type casting or additional imports.
9
+ *
10
+ * The augmentation covers all major OpenAI API endpoints including:
11
+ * - Chat completions (streaming and non-streaming)
12
+ * - Embeddings
13
+ * - Future API endpoints as they become available
14
+ *
15
+ * @fileoverview OpenAI SDK type augmentation for Revenium middleware
16
+ * @author Revenium
17
+ * @since 1.0.0
18
+ *
19
+ * @example Basic usage with chat completions
20
+ * ```typescript
21
+ * import 'revenium-middleware-openai-node';
22
+ * import OpenAI from 'openai';
23
+ *
24
+ * const openai = new OpenAI();
25
+ *
26
+ * const response = await openai.chat.completions.create({
27
+ * model: 'gpt-4o-mini',
28
+ * messages: [{ role: 'user', content: 'Hello!' }],
29
+ * usageMetadata: { // TypeScript recognizes this natively
30
+ * subscriber: {
31
+ * id: 'user-123',
32
+ * email: 'user@my-company.com'
33
+ * },
34
+ * organizationId: 'my-company',
35
+ * productId: 'chat-app',
36
+ * taskType: 'customer-support'
37
+ * }
38
+ * });
39
+ * ```
40
+ *
41
+ * @example Usage with embeddings
42
+ * ```typescript
43
+ * const embedding = await openai.embeddings.create({
44
+ * model: 'text-embedding-ada-002',
45
+ * input: 'Text to embed',
46
+ * usageMetadata: {
47
+ * subscriber: { id: 'user-456' },
48
+ * productId: 'search-engine',
49
+ * taskType: 'document-indexing'
50
+ * }
51
+ * });
52
+ * ```
53
+ */
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ //# sourceMappingURL=openai-augmentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-augmentation.js","sourceRoot":"","sources":["../../../src/types/openai-augmentation.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /**
3
+ * Types for OpenAI Responses API support
4
+ *
5
+ * This module defines types for the new OpenAI Responses API that replaces
6
+ * the traditional Chat Completions API. The Responses API provides a unified
7
+ * interface for building agent-like applications with built-in tools and capabilities.
8
+ *
9
+ * Reference: https://platform.openai.com/docs/guides/migrate-to-responses
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.isResponsesRequest = isResponsesRequest;
13
+ exports.isResponsesResponse = isResponsesResponse;
14
+ /**
15
+ * Type guard to check if a request is for Responses API
16
+ */
17
+ function isResponsesRequest(params) {
18
+ return typeof params === 'object' && params !== null && 'input' in params && 'model' in params;
19
+ }
20
+ /**
21
+ * Type guard to check if a response is from Responses API
22
+ */
23
+ function isResponsesResponse(response) {
24
+ return (typeof response === 'object' &&
25
+ response !== null &&
26
+ 'id' in response &&
27
+ 'model' in response &&
28
+ ('output' in response || 'usage' in response));
29
+ }
30
+ //# sourceMappingURL=responses-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses-api.js","sourceRoot":"","sources":["../../../src/types/responses-api.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AA2OH,gDAEC;AAKD,kDAQC;AAlBD;;GAEG;AACH,SAAgB,kBAAkB,CAAC,MAAe;IAChD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;AACjG,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,QAAiB;IACnD,OAAO,CACL,OAAO,QAAQ,KAAK,QAAQ;QAC5B,QAAQ,KAAK,IAAI;QACjB,IAAI,IAAI,QAAQ;QAChB,OAAO,IAAI,QAAQ;QACnB,CAAC,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,CAAC,CAC9C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveAzureModelName = resolveAzureModelName;
4
+ exports.clearModelNameCache = clearModelNameCache;
5
+ exports.getModelNameCacheStats = getModelNameCacheStats;
6
+ exports.batchResolveModelNames = batchResolveModelNames;
7
+ exports.wouldTransformDeploymentName = wouldTransformDeploymentName;
8
+ const index_js_1 = require("../core/config/index.js");
9
+ const constants_js_1 = require("./constants.js");
10
+ /**
11
+ * Azure Model Name Resolution Module
12
+ *
13
+ * This module maps Azure deployment names to LiteLLM-compatible model names for accurate pricing.
14
+ * Based on learnings from the Python implementation, it uses heuristic pattern matching
15
+ * with fallback strategies to ensure reliable model name resolution.
16
+ *
17
+ * Key patterns observed in real Azure deployments:
18
+ * - "gpt-4o-2024-11-20" → "gpt-4o"
19
+ * - "text-embedding-3-large" → "text-embedding-3-large" (exact match)
20
+ * - "o4-mini" → "gpt-4o-mini"
21
+ * - "gpt4o-prod" → "gpt-4o"
22
+ * - "gpt-35-turbo-dev" → "gpt-3.5-turbo"
23
+ */
24
+ /**
25
+ * In-memory cache for resolved model names
26
+ * Using Map for thread-safe operations in Node.js
27
+ */
28
+ const modelNameCache = new Map();
29
+ /**
30
+ * Cache for failed resolution attempts to avoid repeated warnings
31
+ */
32
+ const failedResolutionCache = new Set();
33
+ // Global logger
34
+ const logger = (0, index_js_1.getLogger)();
35
+ /**
36
+ * Resolve Azure deployment name to LiteLLM-compatible model name
37
+ *
38
+ * @param deploymentName - Azure deployment name
39
+ * @param useCache - Whether to use cached results (default: true)
40
+ * @returns LiteLLM-compatible model name
41
+ */
42
+ function resolveAzureModelName(deploymentName, useCache = true) {
43
+ if (!deploymentName) {
44
+ logger.warn('Empty deployment name provided to model resolver');
45
+ return deploymentName;
46
+ }
47
+ // Check cache first
48
+ if (useCache && modelNameCache.has(deploymentName)) {
49
+ const cachedResult = modelNameCache.get(deploymentName);
50
+ logger.debug('Model name resolved from cache', {
51
+ deployment: deploymentName,
52
+ resolved: cachedResult,
53
+ });
54
+ return cachedResult;
55
+ }
56
+ try {
57
+ const resolved = resolveModelNameHeuristic(deploymentName);
58
+ // Cache the result
59
+ if (useCache) {
60
+ modelNameCache.set(deploymentName, resolved);
61
+ }
62
+ // Log successful resolution
63
+ if (resolved !== deploymentName) {
64
+ logger.debug('Model name resolved via heuristics', {
65
+ deployment: deploymentName,
66
+ resolved,
67
+ });
68
+ }
69
+ return resolved;
70
+ }
71
+ catch (error) {
72
+ logger.error('Error during model name resolution', {
73
+ deployment: deploymentName,
74
+ error: error instanceof Error ? error.message : String(error),
75
+ });
76
+ // Fallback to deployment name
77
+ return deploymentName;
78
+ }
79
+ }
80
+ /**
81
+ * Heuristic pattern matching for Azure deployment names
82
+ * Based on real-world patterns observed in the Python implementation
83
+ *
84
+ * @param deploymentName - Azure deployment name
85
+ * @returns LiteLLM-compatible model name
86
+ */
87
+ function resolveModelNameHeuristic(deploymentName) {
88
+ const nameLower = deploymentName.toLowerCase();
89
+ // GPT-4o family - handle both "gpt-4o" and "o4" patterns
90
+ if (/gpt-?4o/.test(nameLower) || /o4/.test(nameLower)) {
91
+ if (/mini/.test(nameLower))
92
+ return 'gpt-4o-mini';
93
+ return 'gpt-4o';
94
+ }
95
+ // GPT-4 family (non-omni)
96
+ if (/gpt-?4(?!o)/.test(nameLower)) {
97
+ if (/turbo/.test(nameLower))
98
+ return 'gpt-4-turbo';
99
+ if (/vision/.test(nameLower) || /v/.test(nameLower))
100
+ return 'gpt-4-vision-preview';
101
+ return 'gpt-4';
102
+ }
103
+ // GPT-3.5 family
104
+ if (/gpt-?3\.?5/.test(nameLower) || /35-turbo/.test(nameLower) || /gpt-35/.test(nameLower)) {
105
+ if (/instruct/.test(nameLower))
106
+ return 'gpt-3.5-turbo-instruct';
107
+ return 'gpt-3.5-turbo';
108
+ }
109
+ // Embedding models - exact matches work well
110
+ if (/embed/.test(nameLower)) {
111
+ if (/text-embedding-3-large/.test(nameLower))
112
+ return 'text-embedding-3-large';
113
+ if (/text-embedding-3-small/.test(nameLower))
114
+ return 'text-embedding-3-small';
115
+ if (/text-embedding-ada-002/.test(nameLower) || /ada-002/.test(nameLower))
116
+ return 'text-embedding-ada-002';
117
+ if (/3-large/.test(nameLower))
118
+ return 'text-embedding-3-large';
119
+ if (/3-small/.test(nameLower))
120
+ return 'text-embedding-3-small';
121
+ }
122
+ // Ada-002 pattern (can appear without "embed" in deployment name)
123
+ if (/ada-002/.test(nameLower))
124
+ return 'text-embedding-ada-002';
125
+ // DALL-E models
126
+ if (/dall-?e/.test(nameLower)) {
127
+ if (/3/.test(nameLower))
128
+ return 'dall-e-3';
129
+ if (/2/.test(nameLower))
130
+ return 'dall-e-2';
131
+ }
132
+ // Whisper models
133
+ if (/whisper/.test(nameLower))
134
+ return 'whisper-1';
135
+ // TTS models
136
+ if (/tts/.test(nameLower)) {
137
+ if (/hd/.test(nameLower))
138
+ return 'tts-1-hd';
139
+ return 'tts-1';
140
+ }
141
+ if (constants_js_1.knownModels.includes(nameLower))
142
+ return nameLower;
143
+ // No heuristic match found - log warning and use deployment name
144
+ if (!failedResolutionCache.has(deploymentName)) {
145
+ logger.warn(`⚠️ No heuristic match for Azure deployment: ${deploymentName}. Using deployment name for pricing. Consider adding pattern to azure-model-resolver.ts`);
146
+ failedResolutionCache.add(deploymentName);
147
+ }
148
+ return deploymentName;
149
+ }
150
+ /**
151
+ * Clear the model name cache
152
+ * Useful for testing or when deployment configurations change
153
+ */
154
+ function clearModelNameCache() {
155
+ modelNameCache.clear();
156
+ failedResolutionCache.clear();
157
+ (0, index_js_1.getLogger)().debug('Model name cache cleared');
158
+ }
159
+ /**
160
+ * Get cache statistics for monitoring
161
+ */
162
+ function getModelNameCacheStats() {
163
+ return {
164
+ cacheSize: modelNameCache.size,
165
+ failedResolutionCount: failedResolutionCache.size,
166
+ cacheEntries: Array.from(modelNameCache.entries()).map(([deployment, resolved]) => ({
167
+ deployment,
168
+ resolved,
169
+ })),
170
+ };
171
+ }
172
+ /**
173
+ * Batch resolve multiple deployment names
174
+ * Useful for pre-warming cache or bulk operations
175
+ *
176
+ * @param deploymentNames - Array of deployment names to resolve
177
+ * @returns Map of deployment name to resolved model name
178
+ */
179
+ function batchResolveModelNames(deploymentNames) {
180
+ const results = new Map();
181
+ logger.debug('Batch resolving model names', {
182
+ count: deploymentNames.length,
183
+ deployments: deploymentNames,
184
+ });
185
+ for (const deployment of deploymentNames) {
186
+ try {
187
+ const resolved = resolveAzureModelName(deployment);
188
+ results.set(deployment, resolved);
189
+ }
190
+ catch (error) {
191
+ logger.error('Error in batch resolution', {
192
+ deployment,
193
+ error: error instanceof Error ? error.message : String(error),
194
+ });
195
+ results.set(deployment, deployment); // Fallback to original name
196
+ }
197
+ }
198
+ return results;
199
+ }
200
+ /**
201
+ * Check if a deployment name would be resolved to a different model name
202
+ * Useful for validation and testing
203
+ *
204
+ * @param deploymentName - Azure deployment name
205
+ * @returns true if the deployment name would be transformed
206
+ */
207
+ function wouldTransformDeploymentName(deploymentName) {
208
+ const resolved = resolveAzureModelName(deploymentName, false); // Don't use cache for this check
209
+ return resolved !== deploymentName;
210
+ }
211
+ //# sourceMappingURL=azure-model-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-model-resolver.js","sourceRoot":"","sources":["../../../src/utils/azure-model-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERROR_MESSAGE_PATTERNS_TYPE_CONFIG = exports.MESSAGE_PATTERNS_TYPE_NETWORK = exports.knownModels = void 0;
4
+ // Direct match check for known LiteLLM model names
5
+ exports.knownModels = [
6
+ 'gpt-4o',
7
+ 'gpt-4o-mini',
8
+ 'gpt-4',
9
+ 'gpt-4-turbo',
10
+ 'gpt-4-vision-preview',
11
+ 'gpt-3.5-turbo',
12
+ 'gpt-3.5-turbo-instruct',
13
+ 'text-embedding-3-large',
14
+ 'text-embedding-3-small',
15
+ 'text-embedding-ada-002',
16
+ 'dall-e-3',
17
+ 'dall-e-2',
18
+ 'whisper-1',
19
+ 'tts-1',
20
+ 'tts-1-hd'
21
+ ];
22
+ exports.MESSAGE_PATTERNS_TYPE_NETWORK = ["network", "timeout", "ECONNRESET"];
23
+ exports.ERROR_MESSAGE_PATTERNS_TYPE_CONFIG = ["config", "key", "unauthorized"];
24
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AACtC,QAAA,WAAW,GAAG;IAC3B,QAAQ;IACR,aAAa;IACb,OAAO;IACP,aAAa;IACb,sBAAsB;IACtB,eAAe;IACf,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,UAAU;IACV,UAAU;IACV,WAAW;IACX,OAAO;IACP,UAAU;CACT,CAAC;AAEW,QAAA,6BAA6B,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AACrE,QAAA,kCAAkC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC"}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ /**
3
+ * Error Handler Utilities
4
+ *
5
+ * Centralized error handling patterns to eliminate repetitive try/catch blocks
6
+ * and provide consistent error logging and recovery strategies.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.NetworkError = exports.ConfigurationError = exports.ValidationError = void 0;
10
+ exports.safeAsyncOperation = safeAsyncOperation;
11
+ exports.safeSyncOperation = safeSyncOperation;
12
+ exports.validateOrThrow = validateOrThrow;
13
+ exports.validateOrUndefined = validateOrUndefined;
14
+ exports.withRetry = withRetry;
15
+ exports.classifyError = classifyError;
16
+ const constants_js_1 = require("./constants.js");
17
+ /**
18
+ * Default error handling strategy
19
+ */
20
+ const DEFAULT_STRATEGY = {
21
+ logError: true,
22
+ rethrow: true,
23
+ messagePrefix: '',
24
+ fallbackValue: undefined,
25
+ transformError: (error) => (error instanceof Error ? error : new Error(String(error))),
26
+ };
27
+ /**
28
+ * Safe async operation wrapper with comprehensive error handling
29
+ *
30
+ * @param operation - The async operation to execute
31
+ * @param context - Context information for logging
32
+ * @param strategy - Error handling strategy
33
+ * @param logger - Logger instance
34
+ * @returns Promise with result or fallback value
35
+ */
36
+ async function safeAsyncOperation(operation, context, strategy = {}, logger) {
37
+ const config = { ...DEFAULT_STRATEGY, ...strategy };
38
+ try {
39
+ return await operation();
40
+ }
41
+ catch (error) {
42
+ const transformedError = config.transformError(error);
43
+ if (config.logError && logger) {
44
+ logger.error(`${config.messagePrefix}${context}`, {
45
+ error: transformedError.message,
46
+ stack: transformedError.stack,
47
+ });
48
+ }
49
+ if (config.rethrow)
50
+ throw transformedError;
51
+ return config.fallbackValue;
52
+ }
53
+ }
54
+ /**
55
+ * Safe sync operation wrapper
56
+ *
57
+ * @param operation - The sync operation to execute
58
+ * @param context - Context information for logging
59
+ * @param strategy - Error handling strategy
60
+ * @param logger - Logger instance
61
+ * @returns Result or fallback value
62
+ */
63
+ function safeSyncOperation(operation, context, strategy = {}, logger) {
64
+ const config = { ...DEFAULT_STRATEGY, ...strategy };
65
+ try {
66
+ return operation();
67
+ }
68
+ catch (error) {
69
+ const transformedError = config.transformError(error);
70
+ if (config.logError && logger) {
71
+ logger.error(`${config.messagePrefix}${context}`, {
72
+ error: transformedError.message,
73
+ stack: transformedError.stack,
74
+ });
75
+ }
76
+ if (config.rethrow)
77
+ throw transformedError;
78
+ return config.fallbackValue;
79
+ }
80
+ }
81
+ /**
82
+ * Validation wrapper that provides clear error messages
83
+ *
84
+ * @param value - Value to validate
85
+ * @param validator - Validation function
86
+ * @param errorMessage - Error message if validation fails
87
+ * @returns Validated value
88
+ */
89
+ function validateOrThrow(value, validator, errorMessage) {
90
+ if (!validator(value))
91
+ throw new Error(errorMessage);
92
+ return value;
93
+ }
94
+ /**
95
+ * Validation wrapper that returns undefined on failure
96
+ *
97
+ * @param value - Value to validate
98
+ * @param validator - Validation function
99
+ * @param logger - Optional logger for warnings
100
+ * @param context - Context for logging
101
+ * @returns Validated value or undefined
102
+ */
103
+ function validateOrUndefined(value, validator, logger, context) {
104
+ if (!validator(value)) {
105
+ if (logger && context) {
106
+ logger.warn(`Validation failed: ${context}`, { value });
107
+ }
108
+ return;
109
+ }
110
+ return value;
111
+ }
112
+ /**
113
+ * Create a retry wrapper for operations that might fail temporarily
114
+ *
115
+ * @param operation - Operation to retry
116
+ * @param maxRetries - Maximum number of retries
117
+ * @param delayMs - Delay between retries in milliseconds
118
+ * @param logger - Logger for retry attempts
119
+ * @returns Promise with operation result
120
+ */
121
+ async function withRetry(operation, maxRetries = 3, delayMs = 1000, logger) {
122
+ let lastError;
123
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
124
+ try {
125
+ return await operation();
126
+ }
127
+ catch (error) {
128
+ lastError = error instanceof Error ? error : new Error(String(error));
129
+ if (attempt === maxRetries) {
130
+ break;
131
+ }
132
+ if (logger) {
133
+ logger.warn(`Operation failed, retrying (${attempt}/${maxRetries})`, {
134
+ error: lastError.message,
135
+ nextRetryIn: delayMs,
136
+ });
137
+ }
138
+ await new Promise(resolve => setTimeout(resolve, delayMs));
139
+ }
140
+ }
141
+ // eslint-disable-next-line no-throw-literal
142
+ throw lastError;
143
+ }
144
+ /**
145
+ * Common error types for better error handling
146
+ */
147
+ class ValidationError extends Error {
148
+ constructor(message, context) {
149
+ super(message);
150
+ this.context = context;
151
+ this.name = 'ValidationError';
152
+ }
153
+ }
154
+ exports.ValidationError = ValidationError;
155
+ class ConfigurationError extends Error {
156
+ constructor(message, context) {
157
+ super(message);
158
+ this.context = context;
159
+ this.name = 'ConfigurationError';
160
+ }
161
+ }
162
+ exports.ConfigurationError = ConfigurationError;
163
+ class NetworkError extends Error {
164
+ constructor(message, context) {
165
+ super(message);
166
+ this.context = context;
167
+ this.name = 'NetworkError';
168
+ }
169
+ }
170
+ exports.NetworkError = NetworkError;
171
+ /**
172
+ * Error classification utility
173
+ */
174
+ function classifyError(error) {
175
+ if (error instanceof ValidationError) {
176
+ return { type: 'validation', message: error.message, isRetryable: false };
177
+ }
178
+ if (error instanceof ConfigurationError) {
179
+ return { type: 'configuration', message: error.message, isRetryable: false };
180
+ }
181
+ if (error instanceof NetworkError) {
182
+ return { type: 'network', message: error.message, isRetryable: true };
183
+ }
184
+ const message = error instanceof Error ? error.message : String(error);
185
+ // Classify based on message patterns
186
+ if (constants_js_1.MESSAGE_PATTERNS_TYPE_NETWORK.some(pattern => message.includes(pattern))) {
187
+ return { type: 'network', message, isRetryable: true };
188
+ }
189
+ if (constants_js_1.ERROR_MESSAGE_PATTERNS_TYPE_CONFIG.some(pattern => message.includes(pattern))) {
190
+ return { type: 'configuration', message, isRetryable: false };
191
+ }
192
+ return { type: 'unknown', message, isRetryable: false };
193
+ }
194
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/utils/error-handler.ts"],"names":[],"mappings":"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"}