@revenium/openai 1.0.13 → 1.0.15

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 (240) hide show
  1. package/.env.example +10 -15
  2. package/CHANGELOG.md +65 -11
  3. package/CODE_OF_CONDUCT.md +57 -0
  4. package/CONTRIBUTING.md +38 -0
  5. package/README.md +104 -216
  6. package/SECURITY.md +34 -0
  7. package/dist/cjs/core/client/index.js +14 -0
  8. package/dist/cjs/core/client/index.js.map +1 -0
  9. package/dist/cjs/core/client/manager.js +109 -0
  10. package/dist/cjs/core/client/manager.js.map +1 -0
  11. package/dist/cjs/core/config/azure-config.js +5 -17
  12. package/dist/cjs/core/config/azure-config.js.map +1 -1
  13. package/dist/cjs/core/config/index.js +2 -2
  14. package/dist/cjs/core/config/index.js.map +1 -1
  15. package/dist/cjs/core/config/loader.js +34 -14
  16. package/dist/cjs/core/config/loader.js.map +1 -1
  17. package/dist/cjs/core/config/manager.js +11 -5
  18. package/dist/cjs/core/config/manager.js.map +1 -1
  19. package/dist/cjs/core/config/validator.js +3 -45
  20. package/dist/cjs/core/config/validator.js.map +1 -1
  21. package/dist/cjs/core/middleware/index.js +21 -0
  22. package/dist/cjs/core/middleware/index.js.map +1 -0
  23. package/dist/cjs/core/middleware/interfaces.js +454 -0
  24. package/dist/cjs/core/middleware/interfaces.js.map +1 -0
  25. package/dist/cjs/core/middleware/revenium-client.js +152 -0
  26. package/dist/cjs/core/middleware/revenium-client.js.map +1 -0
  27. package/dist/cjs/core/providers/detector.js +45 -23
  28. package/dist/cjs/core/providers/detector.js.map +1 -1
  29. package/dist/cjs/core/providers/index.js +2 -1
  30. package/dist/cjs/core/providers/index.js.map +1 -1
  31. package/dist/cjs/core/tracking/api-client.js +21 -14
  32. package/dist/cjs/core/tracking/api-client.js.map +1 -1
  33. package/dist/cjs/core/tracking/index.js +5 -1
  34. package/dist/cjs/core/tracking/index.js.map +1 -1
  35. package/dist/cjs/core/tracking/payload-builder.js +143 -25
  36. package/dist/cjs/core/tracking/payload-builder.js.map +1 -1
  37. package/dist/cjs/core/tracking/usage-tracker.js +111 -18
  38. package/dist/cjs/core/tracking/usage-tracker.js.map +1 -1
  39. package/dist/cjs/index.js +39 -202
  40. package/dist/cjs/index.js.map +1 -1
  41. package/dist/cjs/types/index.js +0 -8
  42. package/dist/cjs/types/index.js.map +1 -1
  43. package/dist/cjs/types/openai-augmentation.js +0 -49
  44. package/dist/cjs/types/openai-augmentation.js.map +1 -1
  45. package/dist/cjs/utils/constants.js +17 -20
  46. package/dist/cjs/utils/constants.js.map +1 -1
  47. package/dist/cjs/utils/error-handler.js +18 -14
  48. package/dist/cjs/utils/error-handler.js.map +1 -1
  49. package/dist/cjs/utils/metadata-builder.js +17 -16
  50. package/dist/cjs/utils/metadata-builder.js.map +1 -1
  51. package/dist/cjs/utils/provider-detection.js +25 -28
  52. package/dist/cjs/utils/provider-detection.js.map +1 -1
  53. package/dist/cjs/utils/trace-fields.js +115 -0
  54. package/dist/cjs/utils/trace-fields.js.map +1 -0
  55. package/dist/esm/core/client/index.js +6 -0
  56. package/dist/esm/core/client/index.js.map +1 -0
  57. package/dist/esm/core/client/manager.js +102 -0
  58. package/dist/esm/core/client/manager.js.map +1 -0
  59. package/dist/esm/core/config/azure-config.js +6 -18
  60. package/dist/esm/core/config/azure-config.js.map +1 -1
  61. package/dist/esm/core/config/index.js +5 -4
  62. package/dist/esm/core/config/index.js.map +1 -1
  63. package/dist/esm/core/config/loader.js +33 -13
  64. package/dist/esm/core/config/loader.js.map +1 -1
  65. package/dist/esm/core/config/manager.js +13 -7
  66. package/dist/esm/core/config/manager.js.map +1 -1
  67. package/dist/esm/core/config/validator.js +3 -44
  68. package/dist/esm/core/config/validator.js.map +1 -1
  69. package/dist/esm/core/middleware/index.js +8 -0
  70. package/dist/esm/core/middleware/index.js.map +1 -0
  71. package/dist/esm/core/middleware/interfaces.js +442 -0
  72. package/dist/esm/core/middleware/interfaces.js.map +1 -0
  73. package/dist/esm/core/middleware/revenium-client.js +115 -0
  74. package/dist/esm/core/middleware/revenium-client.js.map +1 -0
  75. package/dist/esm/core/providers/detector.js +43 -22
  76. package/dist/esm/core/providers/detector.js.map +1 -1
  77. package/dist/esm/core/providers/index.js +2 -2
  78. package/dist/esm/core/providers/index.js.map +1 -1
  79. package/dist/esm/core/tracking/api-client.js +20 -13
  80. package/dist/esm/core/tracking/api-client.js.map +1 -1
  81. package/dist/esm/core/tracking/index.js +4 -4
  82. package/dist/esm/core/tracking/index.js.map +1 -1
  83. package/dist/esm/core/tracking/payload-builder.js +142 -26
  84. package/dist/esm/core/tracking/payload-builder.js.map +1 -1
  85. package/dist/esm/core/tracking/usage-tracker.js +78 -20
  86. package/dist/esm/core/tracking/usage-tracker.js.map +1 -1
  87. package/dist/esm/index.js +9 -177
  88. package/dist/esm/index.js.map +1 -1
  89. package/dist/esm/types/index.js +2 -10
  90. package/dist/esm/types/index.js.map +1 -1
  91. package/dist/esm/types/openai-augmentation.js +0 -49
  92. package/dist/esm/types/openai-augmentation.js.map +1 -1
  93. package/dist/esm/utils/constants.js +16 -19
  94. package/dist/esm/utils/constants.js.map +1 -1
  95. package/dist/esm/utils/error-handler.js +19 -15
  96. package/dist/esm/utils/error-handler.js.map +1 -1
  97. package/dist/esm/utils/metadata-builder.js +17 -16
  98. package/dist/esm/utils/metadata-builder.js.map +1 -1
  99. package/dist/esm/utils/provider-detection.js +26 -29
  100. package/dist/esm/utils/provider-detection.js.map +1 -1
  101. package/dist/esm/utils/trace-fields.js +100 -0
  102. package/dist/esm/utils/trace-fields.js.map +1 -0
  103. package/dist/types/core/client/index.d.ts +6 -0
  104. package/dist/types/core/client/index.d.ts.map +1 -0
  105. package/dist/types/core/client/manager.d.ts +32 -0
  106. package/dist/types/core/client/manager.d.ts.map +1 -0
  107. package/dist/types/core/config/azure-config.d.ts +2 -2
  108. package/dist/types/core/config/azure-config.d.ts.map +1 -1
  109. package/dist/types/core/config/index.d.ts +4 -4
  110. package/dist/types/core/config/index.d.ts.map +1 -1
  111. package/dist/types/core/config/loader.d.ts +3 -1
  112. package/dist/types/core/config/loader.d.ts.map +1 -1
  113. package/dist/types/core/config/manager.d.ts +1 -1
  114. package/dist/types/core/config/manager.d.ts.map +1 -1
  115. package/dist/types/core/config/validator.d.ts +1 -12
  116. package/dist/types/core/config/validator.d.ts.map +1 -1
  117. package/dist/types/core/middleware/index.d.ts +8 -0
  118. package/dist/types/core/middleware/index.d.ts.map +1 -0
  119. package/dist/types/core/middleware/interfaces.d.ts +104 -0
  120. package/dist/types/core/middleware/interfaces.d.ts.map +1 -0
  121. package/dist/types/core/middleware/revenium-client.d.ts +64 -0
  122. package/dist/types/core/middleware/revenium-client.d.ts.map +1 -0
  123. package/dist/types/core/providers/detector.d.ts +9 -2
  124. package/dist/types/core/providers/detector.d.ts.map +1 -1
  125. package/dist/types/core/providers/index.d.ts +2 -2
  126. package/dist/types/core/providers/index.d.ts.map +1 -1
  127. package/dist/types/core/tracking/api-client.d.ts +1 -1
  128. package/dist/types/core/tracking/api-client.d.ts.map +1 -1
  129. package/dist/types/core/tracking/index.d.ts +4 -4
  130. package/dist/types/core/tracking/index.d.ts.map +1 -1
  131. package/dist/types/core/tracking/payload-builder.d.ts +5 -3
  132. package/dist/types/core/tracking/payload-builder.d.ts.map +1 -1
  133. package/dist/types/core/tracking/usage-tracker.d.ts +4 -2
  134. package/dist/types/core/tracking/usage-tracker.d.ts.map +1 -1
  135. package/dist/types/index.d.ts +11 -135
  136. package/dist/types/index.d.ts.map +1 -1
  137. package/dist/types/types/function-parameters.d.ts +91 -23
  138. package/dist/types/types/function-parameters.d.ts.map +1 -1
  139. package/dist/types/types/index.d.ts +53 -108
  140. package/dist/types/types/index.d.ts.map +1 -1
  141. package/dist/types/types/openai-augmentation.d.ts +4 -138
  142. package/dist/types/types/openai-augmentation.d.ts.map +1 -1
  143. package/dist/types/utils/constants.d.ts +7 -1
  144. package/dist/types/utils/constants.d.ts.map +1 -1
  145. package/dist/types/utils/error-handler.d.ts +2 -2
  146. package/dist/types/utils/error-handler.d.ts.map +1 -1
  147. package/dist/types/utils/metadata-builder.d.ts +2 -2
  148. package/dist/types/utils/metadata-builder.d.ts.map +1 -1
  149. package/dist/types/utils/provider-detection.d.ts +3 -3
  150. package/dist/types/utils/provider-detection.d.ts.map +1 -1
  151. package/dist/types/utils/trace-fields.d.ts +11 -0
  152. package/dist/types/utils/trace-fields.d.ts.map +1 -0
  153. package/examples/README.md +282 -198
  154. package/examples/azure/basic.ts +62 -0
  155. package/examples/azure/responses-basic.ts +45 -0
  156. package/examples/azure/responses-stream.ts +61 -0
  157. package/examples/azure/stream.ts +56 -0
  158. package/examples/getting_started.ts +31 -43
  159. package/examples/openai/basic.ts +45 -0
  160. package/examples/openai/metadata.ts +67 -0
  161. package/examples/openai/responses-basic.ts +44 -0
  162. package/examples/openai/responses-embed.ts +34 -0
  163. package/examples/openai/responses-streaming.ts +63 -0
  164. package/examples/openai/streaming.ts +59 -0
  165. package/package.json +23 -13
  166. package/dist/cjs/core/wrapper/index.js +0 -15
  167. package/dist/cjs/core/wrapper/index.js.map +0 -1
  168. package/dist/cjs/core/wrapper/instance-patcher.js +0 -202
  169. package/dist/cjs/core/wrapper/instance-patcher.js.map +0 -1
  170. package/dist/cjs/core/wrapper/request-handler.js +0 -317
  171. package/dist/cjs/core/wrapper/request-handler.js.map +0 -1
  172. package/dist/cjs/core/wrapper/stream-wrapper.js +0 -82
  173. package/dist/cjs/core/wrapper/stream-wrapper.js.map +0 -1
  174. package/dist/cjs/utils/azure-model-resolver.js +0 -211
  175. package/dist/cjs/utils/azure-model-resolver.js.map +0 -1
  176. package/dist/cjs/utils/request-handler-factory.js +0 -185
  177. package/dist/cjs/utils/request-handler-factory.js.map +0 -1
  178. package/dist/esm/core/wrapper/index.js +0 -9
  179. package/dist/esm/core/wrapper/index.js.map +0 -1
  180. package/dist/esm/core/wrapper/instance-patcher.js +0 -199
  181. package/dist/esm/core/wrapper/instance-patcher.js.map +0 -1
  182. package/dist/esm/core/wrapper/request-handler.js +0 -310
  183. package/dist/esm/core/wrapper/request-handler.js.map +0 -1
  184. package/dist/esm/core/wrapper/stream-wrapper.js +0 -79
  185. package/dist/esm/core/wrapper/stream-wrapper.js.map +0 -1
  186. package/dist/esm/utils/azure-model-resolver.js +0 -204
  187. package/dist/esm/utils/azure-model-resolver.js.map +0 -1
  188. package/dist/esm/utils/request-handler-factory.js +0 -146
  189. package/dist/esm/utils/request-handler-factory.js.map +0 -1
  190. package/dist/types/core/wrapper/index.d.ts +0 -8
  191. package/dist/types/core/wrapper/index.d.ts.map +0 -1
  192. package/dist/types/core/wrapper/instance-patcher.d.ts +0 -33
  193. package/dist/types/core/wrapper/instance-patcher.d.ts.map +0 -1
  194. package/dist/types/core/wrapper/request-handler.d.ts +0 -29
  195. package/dist/types/core/wrapper/request-handler.d.ts.map +0 -1
  196. package/dist/types/core/wrapper/stream-wrapper.d.ts +0 -13
  197. package/dist/types/core/wrapper/stream-wrapper.d.ts.map +0 -1
  198. package/dist/types/utils/azure-model-resolver.d.ts +0 -41
  199. package/dist/types/utils/azure-model-resolver.d.ts.map +0 -1
  200. package/dist/types/utils/request-handler-factory.d.ts +0 -81
  201. package/dist/types/utils/request-handler-factory.d.ts.map +0 -1
  202. package/examples/azure-basic.ts +0 -206
  203. package/examples/azure-responses-basic.ts +0 -233
  204. package/examples/azure-responses-streaming.ts +0 -255
  205. package/examples/azure-streaming.ts +0 -209
  206. package/examples/openai-basic.ts +0 -147
  207. package/examples/openai-function-calling.ts +0 -259
  208. package/examples/openai-responses-basic.ts +0 -212
  209. package/examples/openai-responses-streaming.ts +0 -232
  210. package/examples/openai-streaming.ts +0 -172
  211. package/examples/openai-vision.ts +0 -289
  212. package/src/core/config/azure-config.ts +0 -72
  213. package/src/core/config/index.ts +0 -23
  214. package/src/core/config/loader.ts +0 -66
  215. package/src/core/config/manager.ts +0 -95
  216. package/src/core/config/validator.ts +0 -89
  217. package/src/core/providers/detector.ts +0 -159
  218. package/src/core/providers/index.ts +0 -16
  219. package/src/core/tracking/api-client.ts +0 -78
  220. package/src/core/tracking/index.ts +0 -21
  221. package/src/core/tracking/payload-builder.ts +0 -137
  222. package/src/core/tracking/usage-tracker.ts +0 -189
  223. package/src/core/wrapper/index.ts +0 -9
  224. package/src/core/wrapper/instance-patcher.ts +0 -288
  225. package/src/core/wrapper/request-handler.ts +0 -423
  226. package/src/core/wrapper/stream-wrapper.ts +0 -100
  227. package/src/index.ts +0 -360
  228. package/src/types/function-parameters.ts +0 -251
  229. package/src/types/index.ts +0 -310
  230. package/src/types/openai-augmentation.ts +0 -232
  231. package/src/types/responses-api.ts +0 -308
  232. package/src/utils/azure-model-resolver.ts +0 -220
  233. package/src/utils/constants.ts +0 -21
  234. package/src/utils/error-handler.ts +0 -251
  235. package/src/utils/metadata-builder.ts +0 -228
  236. package/src/utils/provider-detection.ts +0 -257
  237. package/src/utils/request-handler-factory.ts +0 -285
  238. package/src/utils/stop-reason-mapper.ts +0 -78
  239. package/src/utils/type-guards.ts +0 -202
  240. package/src/utils/url-builder.ts +0 -68
@@ -1,202 +0,0 @@
1
- "use strict";
2
- /**
3
- * Instance Patcher Module
4
- *
5
- * Handles patching of OpenAI client instances.
6
- * Extracted from wrapper.ts for better organization.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.instanceProviders = void 0;
10
- exports.getProviderInfo = getProviderInfo;
11
- exports.patchOpenAI = patchOpenAI;
12
- exports.patchOpenAIInstance = patchOpenAIInstance;
13
- const type_guards_js_1 = require("../../utils/type-guards.js");
14
- const metadata_builder_js_1 = require("../../utils/metadata-builder.js");
15
- const request_handler_factory_js_1 = require("../../utils/request-handler-factory.js");
16
- const index_js_1 = require("../config/index.js");
17
- const index_js_2 = require("../providers/index.js");
18
- // Import the type augmentations to ensure they're available
19
- require("../../types/openai-augmentation.js");
20
- /**
21
- * Set to track patched instances
22
- */
23
- const patchedInstances = new WeakSet();
24
- /**
25
- * WeakMap to store provider information for each client instance
26
- */
27
- const instanceProviders = new WeakMap();
28
- exports.instanceProviders = instanceProviders;
29
- // Global logger
30
- const logger = (0, index_js_1.getLogger)();
31
- /**
32
- * Get provider information for a client instance
33
- */
34
- function getProviderInfo(instance) {
35
- return instanceProviders.get(instance);
36
- }
37
- /**
38
- * Simple approach: Only patch instances when users create them
39
- * No global patching, no dummy keys - just clean instance patching
40
- */
41
- function patchOpenAI() {
42
- logger.info('Revenium OpenAI middleware loaded and ready');
43
- logger.debug('Use patchOpenAIInstance() to patch specific OpenAI instances');
44
- }
45
- /**
46
- * Manually patch an existing OpenAI instance
47
- * This is the main function users should call
48
- */
49
- function patchOpenAIInstance(instance) {
50
- // Check if middleware is initialized
51
- const config = (0, index_js_1.getConfig)();
52
- if (!config) {
53
- logger.warn('Revenium middleware not initialized.');
54
- logger.warn('Auto-initialization may have failed. Try calling initializeReveniumFromEnv() explicitly.');
55
- logger.warn('Check that REVENIUM_METERING_API_KEY environment variable is set.');
56
- logger.warn('OpenAI instance will be patched but tracking may not work without proper configuration.');
57
- }
58
- else {
59
- logger.debug('Revenium middleware is properly configured');
60
- }
61
- if (patchedInstances.has(instance)) {
62
- logger.debug('OpenAI instance already patched, skipping');
63
- return instance;
64
- }
65
- patchInstance(instance);
66
- logger.debug('OpenAI instance patched successfully');
67
- return instance;
68
- }
69
- /**
70
- * Patch an individual OpenAI instance
71
- */
72
- function patchInstance(instance) {
73
- try {
74
- // Validate instance
75
- if (!(0, type_guards_js_1.isOpenAIClientInstance)(instance)) {
76
- logger.error('Invalid OpenAI client instance provided to patchInstance');
77
- return;
78
- }
79
- // Detect provider type for this instance
80
- const providerInfo = (0, index_js_2.detectProvider)(instance);
81
- instanceProviders.set(instance, providerInfo);
82
- logger.debug('Provider detection completed for instance', {
83
- provider: providerInfo.provider,
84
- isAzure: providerInfo.isAzure,
85
- hasAzureConfig: !!providerInfo.azureConfig,
86
- });
87
- // Patch chat completions
88
- patchChatCompletions(instance);
89
- // Patch embeddings
90
- patchEmbeddings(instance);
91
- // Patch responses API (new OpenAI Responses API)
92
- patchResponses(instance);
93
- // Mark as patched
94
- patchedInstances.add(instance);
95
- }
96
- catch (error) {
97
- logger.error('Failed to patch OpenAI instance', {
98
- error: error instanceof Error ? error.message : String(error),
99
- });
100
- }
101
- }
102
- /**
103
- * Patch chat completions endpoint
104
- */
105
- function patchChatCompletions(instance) {
106
- if (!instance.chat || !instance.chat.completions || !instance.chat.completions.create) {
107
- return logger.warn('OpenAI instance missing chat.completions.create, skipping chat patch');
108
- }
109
- // Store the original create method
110
- const originalCreate = instance.chat.completions.create.bind(instance.chat.completions);
111
- // Replace the create method with our wrapped version
112
- instance.chat.completions.create = async function (params, options) {
113
- // Extract metadata using utility
114
- const { metadata, cleanParams } = (0, metadata_builder_js_1.extractMetadata)(params);
115
- const typedParams = params;
116
- logger.debug('OpenAI chat.completions.create intercepted', {
117
- ...(0, metadata_builder_js_1.createLoggingContext)(metadata),
118
- model: typedParams.model,
119
- stream: !!typedParams.stream,
120
- });
121
- // Record request start time
122
- const requestStartTime = Date.now();
123
- // Ensure factory is initialized and route request
124
- try {
125
- await (0, request_handler_factory_js_1.ensureFactoryInitialized)();
126
- }
127
- catch (error) {
128
- logger.error('Failed to initialize request handler factory', { error });
129
- throw new Error('Middleware initialization failed - cannot process request');
130
- }
131
- return request_handler_factory_js_1.requestHandlerFactory.routeChatRequest(originalCreate, cleanParams, options, metadata, requestStartTime, instance);
132
- };
133
- }
134
- /**
135
- * Patch embeddings endpoint
136
- */
137
- function patchEmbeddings(instance) {
138
- if (!instance.embeddings || !instance.embeddings.create) {
139
- return logger.warn('OpenAI instance missing embeddings.create, skipping embeddings patch');
140
- }
141
- // Store the original embeddings create method
142
- const originalEmbeddingsCreate = instance.embeddings.create.bind(instance.embeddings);
143
- // Replace the embeddings create method with our wrapped version
144
- instance.embeddings.create = async function (params, options) {
145
- // Extract metadata using utility
146
- const { metadata, cleanParams } = (0, metadata_builder_js_1.extractMetadata)(params);
147
- const typedParams = params;
148
- logger.debug('OpenAI embeddings.create intercepted', {
149
- ...(0, metadata_builder_js_1.createLoggingContext)(metadata),
150
- model: typedParams.model,
151
- inputType: typeof typedParams.input,
152
- });
153
- // Record request start time
154
- const requestStartTime = Date.now();
155
- // Ensure factory is initialized and route request
156
- try {
157
- await (0, request_handler_factory_js_1.ensureFactoryInitialized)();
158
- }
159
- catch (error) {
160
- logger.error('Failed to initialize request handler factory', { error });
161
- throw new Error('Middleware initialization failed - cannot process request');
162
- }
163
- return request_handler_factory_js_1.requestHandlerFactory.routeEmbeddingsRequest(originalEmbeddingsCreate, cleanParams, options, metadata, requestStartTime, instance);
164
- };
165
- }
166
- /**
167
- * Patch responses endpoint (new OpenAI Responses API)
168
- */
169
- function patchResponses(instance) {
170
- // Type assertion for new Responses API (not yet in OpenAI types)
171
- const responsesAPI = instance;
172
- // Check if the instance has the responses API (it's a newer feature)
173
- if (!responsesAPI.responses || !responsesAPI.responses.create) {
174
- logger.debug('OpenAI instance missing responses.create, skipping responses patch (this is normal for older SDK versions)');
175
- return;
176
- }
177
- // Store the original responses create method
178
- const originalResponsesCreate = responsesAPI.responses.create.bind(responsesAPI.responses);
179
- // Replace the responses create method with our wrapped version
180
- responsesAPI.responses.create = async function (params, options) {
181
- // Extract metadata using utility (similar to chat completions)
182
- const { metadata, cleanParams } = (0, metadata_builder_js_1.extractMetadata)(params);
183
- logger.debug('OpenAI responses.create intercepted', {
184
- ...(0, metadata_builder_js_1.createLoggingContext)(metadata),
185
- model: params.model,
186
- stream: !!params.stream,
187
- inputType: typeof params.input,
188
- });
189
- // Record request start time
190
- const requestStartTime = Date.now();
191
- // Ensure factory is initialized and route request
192
- try {
193
- await (0, request_handler_factory_js_1.ensureFactoryInitialized)();
194
- }
195
- catch (error) {
196
- logger.error('Failed to initialize request handler factory', { error });
197
- throw new Error('Middleware initialization failed - cannot process request');
198
- }
199
- return request_handler_factory_js_1.requestHandlerFactory.routeResponsesRequest(originalResponsesCreate, cleanParams, options, metadata, requestStartTime, instance);
200
- };
201
- }
202
- //# sourceMappingURL=instance-patcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"instance-patcher.js","sourceRoot":"","sources":["../../../../src/core/wrapper/instance-patcher.ts"],"names":[],"mappings":"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"}
@@ -1,317 +0,0 @@
1
- "use strict";
2
- /**
3
- * Request Handler Module
4
- *
5
- * Handles different types of OpenAI requests (streaming, non-streaming, embeddings).
6
- * Extracted from wrapper.ts for better organization.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.handleNonStreamingRequest = handleNonStreamingRequest;
10
- exports.handleStreamingRequest = handleStreamingRequest;
11
- exports.handleEmbeddingsRequest = handleEmbeddingsRequest;
12
- exports.handleResponsesNonStreamingRequest = handleResponsesNonStreamingRequest;
13
- exports.handleResponsesStreamingRequest = handleResponsesStreamingRequest;
14
- const crypto_1 = require("crypto");
15
- const type_guards_js_1 = require("../../utils/type-guards.js");
16
- const error_handler_js_1 = require("../../utils/error-handler.js");
17
- const metadata_builder_js_1 = require("../../utils/metadata-builder.js");
18
- const index_js_1 = require("../tracking/index.js");
19
- const index_js_2 = require("../config/index.js");
20
- const instance_patcher_js_1 = require("./instance-patcher.js");
21
- const stream_wrapper_js_1 = require("./stream-wrapper.js");
22
- // Global logger
23
- const logger = (0, index_js_2.getLogger)();
24
- /**
25
- * Handle non-streaming OpenAI requests
26
- */
27
- async function handleNonStreamingRequest(originalCreate, params, options, usageMetadata, requestStartTime, instance) {
28
- const loggingContext = (0, metadata_builder_js_1.createLoggingContext)(usageMetadata);
29
- const result = await (0, error_handler_js_1.safeAsyncOperation)(async () => {
30
- // Call the original OpenAI method (cast params back to original type since usageMetadata is removed)
31
- const response = await originalCreate(params, options);
32
- // Validate response structure
33
- if (!(0, type_guards_js_1.hasValidUsage)(response)) {
34
- logger.warn('Invalid response structure from OpenAI API', {
35
- ...loggingContext,
36
- response,
37
- });
38
- return response;
39
- }
40
- // Calculate duration
41
- const duration = Date.now() - requestStartTime;
42
- // Get provider info for this instance
43
- const providerInfo = instance_patcher_js_1.instanceProviders.get(instance);
44
- // Track usage for chat completions
45
- if ((0, type_guards_js_1.isOpenAIChatResponse)(response)) {
46
- (0, index_js_1.trackUsageAsync)({
47
- requestId: response.id,
48
- model: response.model,
49
- promptTokens: response.usage.prompt_tokens,
50
- completionTokens: response.usage.completion_tokens || 0,
51
- totalTokens: response.usage.total_tokens,
52
- reasoningTokens: response.usage.reasoning_tokens,
53
- cachedTokens: response.usage.cached_tokens,
54
- duration,
55
- finishReason: response.choices?.[0]?.finish_reason || null,
56
- usageMetadata,
57
- isStreamed: false,
58
- providerInfo,
59
- });
60
- }
61
- logger.debug('Chat completion request completed', {
62
- ...loggingContext,
63
- model: response.model,
64
- duration,
65
- totalTokens: response.usage.total_tokens,
66
- });
67
- return response;
68
- }, 'Non-streaming OpenAI request', {
69
- logError: true,
70
- rethrow: true,
71
- messagePrefix: 'Chat completion request failed: ',
72
- transformError: error => {
73
- const classified = (0, error_handler_js_1.classifyError)(error);
74
- if (classified.type === 'network') {
75
- return new error_handler_js_1.NetworkError(classified.message, {
76
- ...loggingContext,
77
- duration: Date.now() - requestStartTime,
78
- });
79
- }
80
- return error instanceof Error ? error : new Error(String(error));
81
- },
82
- }, logger);
83
- if (!result)
84
- throw new Error('OpenAI request failed without specific error');
85
- return result;
86
- }
87
- /**
88
- * Handle streaming OpenAI requests
89
- */
90
- async function handleStreamingRequest(originalCreate, params, options, usageMetadata, requestStartTime, instance) {
91
- try {
92
- // Ensure stream_options includes usage data for token tracking
93
- const enhancedParams = {
94
- ...params,
95
- stream_options: {
96
- include_usage: true,
97
- ...(params.stream_options || {}),
98
- },
99
- };
100
- logger.debug('Enhanced streaming params with usage tracking', {
101
- originalStreamOptions: params.stream_options,
102
- enhancedStreamOptions: enhancedParams.stream_options,
103
- });
104
- // Call the original OpenAI method to get the stream (cast params back to original type since usageMetadata is removed)
105
- const originalStream = await originalCreate(enhancedParams, options);
106
- logger.debug('Chat completion streaming request initiated', {
107
- model: params.model,
108
- });
109
- // Return a wrapped stream that tracks usage when complete
110
- return (0, stream_wrapper_js_1.createTrackingStreamWrapper)(originalStream, usageMetadata, requestStartTime, instance);
111
- }
112
- catch (error) {
113
- const duration = Date.now() - requestStartTime;
114
- logger.error('Chat completion streaming request failed', {
115
- error: error instanceof Error ? error.message : String(error),
116
- duration,
117
- });
118
- // Re-throw the error to maintain original behavior
119
- throw error;
120
- }
121
- }
122
- /**
123
- * Handle embeddings requests
124
- */
125
- async function handleEmbeddingsRequest(originalCreate, params, options, usageMetadata, requestStartTime, instance) {
126
- try {
127
- // Call the original OpenAI method (cast params back to original type since usageMetadata is removed)
128
- const response = await originalCreate(params, options);
129
- // Validate response structure
130
- if (!(0, type_guards_js_1.isOpenAIEmbeddingResponse)(response)) {
131
- logger.warn('Invalid embeddings response structure from OpenAI API', { response });
132
- return response;
133
- }
134
- // Calculate duration
135
- const duration = Date.now() - requestStartTime;
136
- // Get provider info for this instance
137
- const providerInfo = instance_patcher_js_1.instanceProviders.get(instance);
138
- // Track embeddings usage
139
- (0, index_js_1.trackEmbeddingsUsageAsync)({
140
- transactionId: `embed-${(0, crypto_1.randomUUID)()}`,
141
- model: response.model,
142
- promptTokens: response.usage.prompt_tokens,
143
- totalTokens: response.usage.total_tokens,
144
- duration,
145
- usageMetadata,
146
- requestStartTime,
147
- providerInfo,
148
- });
149
- logger.debug('Embeddings request completed', {
150
- model: response.model,
151
- duration,
152
- totalTokens: response.usage.total_tokens,
153
- });
154
- return response;
155
- }
156
- catch (error) {
157
- const duration = Date.now() - requestStartTime;
158
- logger.error('Embeddings request failed', {
159
- error: error instanceof Error ? error.message : String(error),
160
- duration,
161
- });
162
- // Re-throw the error to maintain original behavior
163
- throw error;
164
- }
165
- }
166
- /**
167
- * Handle non-streaming OpenAI Responses API requests
168
- */
169
- async function handleResponsesNonStreamingRequest(originalCreate, params, options, usageMetadata, requestStartTime, instance) {
170
- const loggingContext = (0, metadata_builder_js_1.createLoggingContext)(usageMetadata);
171
- const result = await (0, error_handler_js_1.safeAsyncOperation)(async () => {
172
- // Call the original OpenAI method (cast params back to original type since usageMetadata is removed)
173
- const response = await originalCreate(params, options);
174
- // Validate response structure
175
- if (!response || typeof response !== 'object') {
176
- throw new Error('Invalid response from OpenAI Responses API');
177
- }
178
- const duration = Date.now() - requestStartTime;
179
- // Extract usage information (Responses API may have different structure)
180
- const usage = response.usage;
181
- if (usage) {
182
- // Track usage asynchronously using similar pattern to chat completions
183
- (0, index_js_1.trackUsageAsync)({
184
- requestId: response.id || (0, crypto_1.randomUUID)(),
185
- model: response.model || params.model,
186
- promptTokens: usage.input_tokens || 0,
187
- completionTokens: usage.output_tokens || 0,
188
- totalTokens: usage.total_tokens || 0,
189
- reasoningTokens: usage.reasoning_tokens,
190
- cachedTokens: usage.cached_tokens,
191
- duration,
192
- finishReason: response.finish_reason || 'completed',
193
- usageMetadata,
194
- isStreamed: false,
195
- providerInfo: instance_patcher_js_1.instanceProviders.get(instance),
196
- });
197
- }
198
- logger.debug('Responses API request completed', {
199
- ...loggingContext,
200
- model: response.model,
201
- duration,
202
- totalTokens: usage?.total_tokens,
203
- });
204
- return response;
205
- }, 'Non-streaming OpenAI Responses API request', {
206
- logError: true,
207
- rethrow: true,
208
- messagePrefix: 'Responses API request failed: ',
209
- transformError: error => {
210
- const classified = (0, error_handler_js_1.classifyError)(error);
211
- if (classified.type === 'network') {
212
- return new error_handler_js_1.NetworkError(classified.message, {
213
- ...loggingContext,
214
- duration: Date.now() - requestStartTime,
215
- });
216
- }
217
- return error instanceof Error ? error : new Error(String(error));
218
- },
219
- }, logger);
220
- if (!result)
221
- throw new Error('OpenAI Responses API request failed without specific error');
222
- return result;
223
- }
224
- /**
225
- * Handle streaming OpenAI Responses API requests
226
- */
227
- async function handleResponsesStreamingRequest(originalCreate, params, options, usageMetadata, requestStartTime, instance) {
228
- try {
229
- // Call the original OpenAI method to get the stream (cast params back to original type since usageMetadata is removed)
230
- const originalStream = await originalCreate(params, options);
231
- logger.debug('Responses API streaming request initiated', {
232
- model: params.model,
233
- });
234
- // Return a wrapped stream that tracks usage when complete
235
- // We'll use a similar pattern to chat completions but adapted for Responses API
236
- return createResponsesTrackingStreamWrapper(originalStream, usageMetadata, requestStartTime, instance);
237
- }
238
- catch (error) {
239
- const duration = Date.now() - requestStartTime;
240
- logger.error('Responses API streaming request failed', {
241
- error: error instanceof Error ? error.message : String(error),
242
- duration,
243
- });
244
- // Re-throw the error to maintain original behavior
245
- throw error;
246
- }
247
- }
248
- /**
249
- * Create a tracking stream wrapper for Responses API
250
- * Similar to createTrackingStreamWrapper but adapted for Responses API structure
251
- */
252
- async function* createResponsesTrackingStreamWrapper(originalStream, usageMetadata, requestStartTime, instance) {
253
- let firstChunkTime;
254
- let finalUsage = null;
255
- let model = '';
256
- let requestId = '';
257
- let finishReason = null;
258
- try {
259
- for await (const chunk of originalStream) {
260
- // Record time to first token
261
- if (!firstChunkTime) {
262
- firstChunkTime = Date.now();
263
- }
264
- // Extract information from chunk (Responses API structure may differ)
265
- if (chunk && typeof chunk === 'object') {
266
- const chunkObj = chunk;
267
- // Extract model and ID from chunk
268
- if (chunkObj.model)
269
- model = chunkObj.model;
270
- if (chunkObj.id)
271
- requestId = chunkObj.id;
272
- // Check for final usage information
273
- if (chunkObj.usage) {
274
- finalUsage = chunkObj.usage;
275
- }
276
- // Check for finish reason
277
- if (chunkObj.finish_reason) {
278
- finishReason = chunkObj.finish_reason;
279
- }
280
- }
281
- yield chunk;
282
- }
283
- // Track usage after stream completes
284
- if (finalUsage) {
285
- const duration = Date.now() - requestStartTime;
286
- const timeToFirstToken = firstChunkTime ? firstChunkTime - requestStartTime : undefined;
287
- (0, index_js_1.trackUsageAsync)({
288
- requestId: requestId || (0, crypto_1.randomUUID)(),
289
- model: model,
290
- promptTokens: finalUsage.input_tokens || 0,
291
- completionTokens: finalUsage.output_tokens || 0,
292
- totalTokens: finalUsage.total_tokens || 0,
293
- reasoningTokens: finalUsage.reasoning_tokens,
294
- cachedTokens: finalUsage.cached_tokens,
295
- duration,
296
- finishReason: finishReason || 'completed',
297
- usageMetadata,
298
- isStreamed: true,
299
- timeToFirstToken,
300
- providerInfo: instance_patcher_js_1.instanceProviders.get(instance),
301
- });
302
- logger.debug('Responses API streaming completed', {
303
- model,
304
- duration,
305
- timeToFirstToken,
306
- totalTokens: finalUsage.total_tokens,
307
- });
308
- }
309
- }
310
- catch (error) {
311
- logger.error('Error in Responses API stream wrapper', {
312
- error: error instanceof Error ? error.message : String(error),
313
- });
314
- throw error;
315
- }
316
- }
317
- //# sourceMappingURL=request-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-handler.js","sourceRoot":"","sources":["../../../../src/core/wrapper/request-handler.ts"],"names":[],"mappings":"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"}
@@ -1,82 +0,0 @@
1
- "use strict";
2
- /**
3
- * Stream Wrapper Module
4
- *
5
- * Handles wrapping of streaming responses for usage tracking.
6
- * Extracted from wrapper.ts for better organization.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.createTrackingStreamWrapper = createTrackingStreamWrapper;
10
- const type_guards_js_1 = require("../../utils/type-guards.js");
11
- const index_js_1 = require("../tracking/index.js");
12
- const index_js_2 = require("../config/index.js");
13
- const instance_patcher_js_1 = require("./instance-patcher.js");
14
- // Global logger
15
- const logger = (0, index_js_2.getLogger)();
16
- /**
17
- * Create a simple stream wrapper that tracks usage when complete
18
- */
19
- function createTrackingStreamWrapper(originalStream, usageMetadata, requestStartTime, instance) {
20
- // For streaming, we need to collect the final response data
21
- let accumulatedResponse = null;
22
- // Create async iterator
23
- const wrappedIterator = {
24
- async *[Symbol.asyncIterator]() {
25
- try {
26
- for await (const chunk of originalStream) {
27
- // Validate and accumulate response data for tracking
28
- if ((0, type_guards_js_1.isStreamChunk)(chunk)) {
29
- if (!accumulatedResponse) {
30
- accumulatedResponse = {
31
- id: chunk.id,
32
- model: chunk.model,
33
- usage: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 },
34
- };
35
- }
36
- // Update usage if available in chunk
37
- if (chunk.usage) {
38
- accumulatedResponse.usage = chunk.usage;
39
- }
40
- }
41
- // Forward the chunk to the client
42
- yield chunk;
43
- }
44
- // Stream completed - track usage
45
- if (accumulatedResponse && accumulatedResponse.usage) {
46
- const duration = Date.now() - requestStartTime;
47
- // Get provider info for this instance
48
- const providerInfo = instance_patcher_js_1.instanceProviders.get(instance);
49
- // Safely access extended usage fields
50
- const usage = accumulatedResponse.usage;
51
- (0, index_js_1.trackUsageAsync)({
52
- requestId: accumulatedResponse.id,
53
- model: accumulatedResponse.model,
54
- promptTokens: usage.prompt_tokens,
55
- completionTokens: usage.completion_tokens || 0,
56
- totalTokens: usage.total_tokens,
57
- reasoningTokens: usage.reasoning_tokens,
58
- cachedTokens: usage.cached_tokens,
59
- duration,
60
- finishReason: null, // Will be determined from final chunk
61
- usageMetadata,
62
- isStreamed: true,
63
- providerInfo,
64
- });
65
- logger.debug('Chat completion streaming completed', {
66
- model: accumulatedResponse.model,
67
- duration,
68
- totalTokens: accumulatedResponse.usage.total_tokens,
69
- });
70
- }
71
- }
72
- catch (error) {
73
- logger.error('Chat completion streaming error', {
74
- error: error instanceof Error ? error.message : String(error),
75
- });
76
- throw error;
77
- }
78
- },
79
- };
80
- return wrappedIterator;
81
- }
82
- //# sourceMappingURL=stream-wrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream-wrapper.js","sourceRoot":"","sources":["../../../../src/core/wrapper/stream-wrapper.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAmBH,kEA2EC;AAtFD,+DAA2D;AAC3D,mDAAuD;AACvD,iDAA+C;AAC/C,+DAA0D;AAE1D,gBAAgB;AAChB,MAAM,MAAM,GAAG,IAAA,oBAAS,GAAE,CAAC;AAE3B;;GAEG;AACH,SAAgB,2BAA2B,CACzC,cAAsC,EACtC,aAAwC,EACxC,gBAAwB,EACxB,QAA8B;IAE9B,4DAA4D;IAC5D,IAAI,mBAAmB,GAAuB,IAAI,CAAC;IAEnD,wBAAwB;IACxB,MAAM,eAAe,GAAG;QACtB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3B,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;oBACzC,qDAAqD;oBACrD,IAAI,IAAA,8BAAa,EAAC,KAAK,CAAC,EAAE,CAAC;wBACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;4BACzB,mBAAmB,GAAG;gCACpB,EAAE,EAAE,KAAK,CAAC,EAAE;gCACZ,KAAK,EAAE,KAAK,CAAC,KAAK;gCAClB,KAAK,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;6BACnE,CAAC;wBACJ,CAAC;wBAED,qCAAqC;wBACrC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;4BAChB,mBAAmB,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;wBAC1C,CAAC;oBACH,CAAC;oBAED,kCAAkC;oBAClC,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,iCAAiC;gBACjC,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,KAAK,EAAE,CAAC;oBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;oBAE/C,sCAAsC;oBACtC,MAAM,YAAY,GAAG,uCAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAErD,sCAAsC;oBACtC,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAsB,CAAC;oBAEzD,IAAA,0BAAe,EAAC;wBACd,SAAS,EAAE,mBAAmB,CAAC,EAAE;wBACjC,KAAK,EAAE,mBAAmB,CAAC,KAAK;wBAChC,YAAY,EAAE,KAAK,CAAC,aAAa;wBACjC,gBAAgB,EAAE,KAAK,CAAC,iBAAiB,IAAI,CAAC;wBAC9C,WAAW,EAAE,KAAK,CAAC,YAAY;wBAC/B,eAAe,EAAE,KAAK,CAAC,gBAAgB;wBACvC,YAAY,EAAE,KAAK,CAAC,aAAa;wBACjC,QAAQ;wBACR,YAAY,EAAE,IAAI,EAAE,sCAAsC;wBAC1D,aAAa;wBACb,UAAU,EAAE,IAAI;wBAChB,YAAY;qBACb,CAAC,CAAC;oBAEH,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE;wBAClD,KAAK,EAAE,mBAAmB,CAAC,KAAK;wBAChC,QAAQ;wBACR,WAAW,EAAE,mBAAmB,CAAC,KAAK,CAAC,YAAY;qBACpD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE;oBAC9C,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,eAAe,CAAC;AACzB,CAAC"}