@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
@@ -0,0 +1,454 @@
1
+ "use strict";
2
+ /**
3
+ * Middleware Interfaces
4
+ *
5
+ * Provides interfaces for OpenAI operations.
6
+ * Contains: ChatInterface, CompletionsInterface, EmbeddingsInterface, ResponsesInterface, StreamingWrapper
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AudioSpeechInterface = exports.AudioTranslationsInterface = exports.AudioTranscriptionsInterface = exports.ImagesInterface = exports.ResponsesInterface = exports.EmbeddingsInterface = exports.ChatInterface = exports.CompletionsInterface = exports.StreamingWrapper = void 0;
10
+ const crypto_1 = require("crypto");
11
+ const config_1 = require("../config");
12
+ const tracking_1 = require("../tracking");
13
+ const logger = (0, config_1.getLogger)();
14
+ /**
15
+ * StreamingWrapper - wraps OpenAI stream and tracks tokens
16
+ */
17
+ class StreamingWrapper {
18
+ constructor(stream, config, providerInfo, model, metadata) {
19
+ this.usage = {};
20
+ this.stream = stream;
21
+ this.config = config;
22
+ this.providerInfo = providerInfo;
23
+ this.model = model;
24
+ this.metadata = metadata;
25
+ this.startTime = Date.now();
26
+ this.requestId = (0, crypto_1.randomUUID)();
27
+ }
28
+ async *[Symbol.asyncIterator]() {
29
+ try {
30
+ for await (const chunk of this.stream) {
31
+ // Record time to first token
32
+ if (!this.firstTokenTime && chunk.choices[0]?.delta?.content) {
33
+ this.firstTokenTime = Date.now();
34
+ }
35
+ // Accumulate usage data
36
+ if (chunk.usage) {
37
+ this.usage = chunk.usage;
38
+ }
39
+ // Get request ID from chunk
40
+ if (chunk.id) {
41
+ this.requestId = chunk.id;
42
+ }
43
+ yield chunk;
44
+ }
45
+ // Stream completed - track usage
46
+ const duration = Date.now() - this.startTime;
47
+ const timeToFirstToken = this.firstTokenTime
48
+ ? this.firstTokenTime - this.startTime
49
+ : undefined;
50
+ (0, tracking_1.trackUsageAsync)({
51
+ requestId: this.requestId,
52
+ model: this.model,
53
+ promptTokens: this.usage.prompt_tokens || 0,
54
+ completionTokens: this.usage.completion_tokens || 0,
55
+ totalTokens: this.usage.total_tokens || 0,
56
+ reasoningTokens: this.usage.completion_tokens_details?.reasoning_tokens,
57
+ cachedTokens: this.usage.prompt_tokens_details?.cached_tokens,
58
+ duration,
59
+ finishReason: null, // Will be in final chunk
60
+ usageMetadata: this.metadata,
61
+ isStreamed: true,
62
+ timeToFirstToken,
63
+ providerInfo: this.providerInfo,
64
+ });
65
+ logger.debug("Streaming completed", {
66
+ requestId: this.requestId,
67
+ model: this.model,
68
+ duration,
69
+ timeToFirstToken,
70
+ });
71
+ }
72
+ catch (error) {
73
+ const duration = Date.now() - this.startTime;
74
+ // Track error
75
+ (0, tracking_1.trackUsageAsync)({
76
+ requestId: this.requestId,
77
+ model: this.model,
78
+ promptTokens: this.usage.prompt_tokens || 0,
79
+ completionTokens: this.usage.completion_tokens || 0,
80
+ totalTokens: this.usage.total_tokens || 0,
81
+ duration,
82
+ finishReason: "error",
83
+ usageMetadata: this.metadata,
84
+ isStreamed: true,
85
+ providerInfo: this.providerInfo,
86
+ });
87
+ logger.error("Streaming error", {
88
+ error: error instanceof Error ? error.message : String(error),
89
+ requestId: this.requestId,
90
+ });
91
+ throw error;
92
+ }
93
+ }
94
+ }
95
+ exports.StreamingWrapper = StreamingWrapper;
96
+ /**
97
+ * CompletionsInterface - handles chat completions
98
+ */
99
+ class CompletionsInterface {
100
+ constructor(client, config, providerInfo) {
101
+ this.client = client;
102
+ this.config = config;
103
+ this.providerInfo = providerInfo;
104
+ }
105
+ /**
106
+ * Create a non-streaming chat completion
107
+ */
108
+ async create(params, metadata) {
109
+ const startTime = Date.now();
110
+ const requestId = (0, crypto_1.randomUUID)();
111
+ logger.debug("Creating chat completion", { model: params.model });
112
+ try {
113
+ const response = await this.client.chat.completions.create(params);
114
+ const duration = Date.now() - startTime;
115
+ // Track usage
116
+ (0, tracking_1.trackUsageAsync)({
117
+ requestId: response.id || requestId,
118
+ model: response.model,
119
+ promptTokens: response.usage?.prompt_tokens || 0,
120
+ completionTokens: response.usage?.completion_tokens || 0,
121
+ totalTokens: response.usage?.total_tokens || 0,
122
+ reasoningTokens: response.usage?.completion_tokens_details?.reasoning_tokens,
123
+ cachedTokens: response.usage?.prompt_tokens_details?.cached_tokens,
124
+ duration,
125
+ finishReason: response.choices[0]?.finish_reason || null,
126
+ usageMetadata: metadata,
127
+ isStreamed: false,
128
+ providerInfo: this.providerInfo,
129
+ });
130
+ logger.debug("Chat completion created", {
131
+ requestId: response.id,
132
+ model: response.model,
133
+ duration,
134
+ });
135
+ return response;
136
+ }
137
+ catch (error) {
138
+ const duration = Date.now() - startTime;
139
+ // Track error
140
+ (0, tracking_1.trackUsageAsync)({
141
+ requestId,
142
+ model: params.model,
143
+ promptTokens: 0,
144
+ completionTokens: 0,
145
+ totalTokens: 0,
146
+ duration,
147
+ finishReason: "error",
148
+ usageMetadata: metadata,
149
+ isStreamed: false,
150
+ providerInfo: this.providerInfo,
151
+ });
152
+ logger.error("Chat completion failed", {
153
+ error: error instanceof Error ? error.message : String(error),
154
+ model: params.model,
155
+ duration,
156
+ });
157
+ throw error;
158
+ }
159
+ }
160
+ /**
161
+ * Create a streaming chat completion
162
+ */
163
+ async createStreaming(params, metadata) {
164
+ logger.debug("Creating streaming completion", { model: params.model });
165
+ // Ensure stream_options includes usage data
166
+ const stream = await this.client.chat.completions.create({
167
+ ...params,
168
+ stream: true,
169
+ stream_options: { include_usage: true },
170
+ });
171
+ return new StreamingWrapper(stream, this.config, this.providerInfo, params.model, metadata);
172
+ }
173
+ }
174
+ exports.CompletionsInterface = CompletionsInterface;
175
+ /**
176
+ * ChatInterface - provides access to completions
177
+ */
178
+ class ChatInterface {
179
+ constructor(client, config, providerInfo) {
180
+ this.client = client;
181
+ this.config = config;
182
+ this.providerInfo = providerInfo;
183
+ }
184
+ completions() {
185
+ return new CompletionsInterface(this.client, this.config, this.providerInfo);
186
+ }
187
+ }
188
+ exports.ChatInterface = ChatInterface;
189
+ /**
190
+ * EmbeddingsInterface - handles embeddings
191
+ */
192
+ class EmbeddingsInterface {
193
+ constructor(client, config, providerInfo) {
194
+ this.client = client;
195
+ this.config = config;
196
+ this.providerInfo = providerInfo;
197
+ }
198
+ async create(params, metadata) {
199
+ const startTime = Date.now();
200
+ const requestId = (0, crypto_1.randomUUID)();
201
+ logger.debug("Creating embeddings", { model: params.model });
202
+ try {
203
+ const response = await this.client.embeddings.create(params);
204
+ const duration = Date.now() - startTime;
205
+ // Track embeddings usage
206
+ (0, tracking_1.trackEmbeddingsUsageAsync)({
207
+ transactionId: requestId,
208
+ model: response.model,
209
+ promptTokens: response.usage.prompt_tokens,
210
+ totalTokens: response.usage.total_tokens,
211
+ duration,
212
+ usageMetadata: metadata,
213
+ requestStartTime: startTime,
214
+ providerInfo: this.providerInfo,
215
+ });
216
+ logger.debug("Embeddings created", {
217
+ requestId,
218
+ model: response.model,
219
+ duration,
220
+ });
221
+ return response;
222
+ }
223
+ catch (error) {
224
+ const duration = Date.now() - startTime;
225
+ logger.error("Embeddings failed", {
226
+ error: error instanceof Error ? error.message : String(error),
227
+ model: params.model,
228
+ duration,
229
+ });
230
+ throw error;
231
+ }
232
+ }
233
+ }
234
+ exports.EmbeddingsInterface = EmbeddingsInterface;
235
+ /**
236
+ * ResponsesInterface - handles Responses API (stateful API)
237
+ */
238
+ class ResponsesInterface {
239
+ constructor(client, config, providerInfo) {
240
+ this.client = client;
241
+ this.config = config;
242
+ this.providerInfo = providerInfo;
243
+ }
244
+ async create(params, metadata) {
245
+ const startTime = Date.now();
246
+ const requestId = (0, crypto_1.randomUUID)();
247
+ logger.debug("Creating response (Responses API)", { model: params.model });
248
+ try {
249
+ // Type assertion for Responses API (not yet in official types)
250
+ const responsesAPI = this.client.responses;
251
+ if (!responsesAPI || !responsesAPI.create) {
252
+ throw new Error("Responses API not available in this OpenAI SDK version");
253
+ }
254
+ const response = await responsesAPI.create(params);
255
+ const duration = Date.now() - startTime;
256
+ // Track usage (Responses API has different usage structure)
257
+ const usage = response.usage;
258
+ if (usage) {
259
+ (0, tracking_1.trackUsageAsync)({
260
+ requestId: response.id || requestId,
261
+ model: response.model || params.model,
262
+ promptTokens: usage.input_tokens || 0,
263
+ completionTokens: usage.output_tokens || 0,
264
+ totalTokens: usage.total_tokens || 0,
265
+ reasoningTokens: usage.reasoning_tokens,
266
+ cachedTokens: usage.cached_tokens,
267
+ duration,
268
+ finishReason: response.finish_reason || "completed",
269
+ usageMetadata: metadata,
270
+ isStreamed: false,
271
+ providerInfo: this.providerInfo,
272
+ });
273
+ }
274
+ logger.debug("Response created (Responses API)", {
275
+ requestId: response.id,
276
+ model: response.model,
277
+ duration,
278
+ });
279
+ return response;
280
+ }
281
+ catch (error) {
282
+ const duration = Date.now() - startTime;
283
+ logger.error("Responses API failed", {
284
+ error: error instanceof Error ? error.message : String(error),
285
+ model: params.model,
286
+ duration,
287
+ });
288
+ throw error;
289
+ }
290
+ }
291
+ async createStreaming(params, metadata) {
292
+ const startTime = Date.now();
293
+ const requestId = (0, crypto_1.randomUUID)();
294
+ logger.debug("Creating streaming response (Responses API)", {
295
+ model: params.model,
296
+ });
297
+ try {
298
+ // Type assertion for Responses API (not yet in official types)
299
+ const responsesAPI = this.client.responses;
300
+ if (!responsesAPI || !responsesAPI.create) {
301
+ throw new Error("Responses API not available in this OpenAI SDK version");
302
+ }
303
+ // Ensure stream is enabled
304
+ const streamParams = { ...params, stream: true };
305
+ const stream = await responsesAPI.create(streamParams);
306
+ // Wrap the stream to track usage
307
+ const self = this;
308
+ const wrappedStream = (async function* () {
309
+ let fullContent = "";
310
+ let finalResponse = null;
311
+ for await (const chunk of stream) {
312
+ // Accumulate content from text deltas
313
+ if (chunk.type === "response.output_text.delta" && chunk.delta) {
314
+ fullContent += chunk.delta;
315
+ }
316
+ // Capture final response with usage
317
+ if (chunk.type === "response.completed" && chunk.response) {
318
+ finalResponse = chunk.response;
319
+ }
320
+ yield chunk;
321
+ }
322
+ // Track final usage
323
+ const duration = Date.now() - startTime;
324
+ if (finalResponse?.usage) {
325
+ const usage = finalResponse.usage;
326
+ (0, tracking_1.trackUsageAsync)({
327
+ requestId: finalResponse.id || requestId,
328
+ model: finalResponse.model || params.model,
329
+ promptTokens: usage.input_tokens || 0,
330
+ completionTokens: usage.output_tokens || 0,
331
+ totalTokens: usage.total_tokens || 0,
332
+ reasoningTokens: usage.output_tokens_details?.reasoning_tokens,
333
+ cachedTokens: usage.input_tokens_details?.cached_tokens,
334
+ duration,
335
+ finishReason: finalResponse.status || "completed",
336
+ usageMetadata: metadata,
337
+ isStreamed: true,
338
+ providerInfo: self.providerInfo,
339
+ });
340
+ }
341
+ logger.debug("Streaming response completed (Responses API)", {
342
+ requestId,
343
+ model: params.model,
344
+ duration,
345
+ });
346
+ })();
347
+ return wrappedStream;
348
+ }
349
+ catch (error) {
350
+ const duration = Date.now() - startTime;
351
+ logger.error("Responses API streaming failed", {
352
+ error: error instanceof Error ? error.message : String(error),
353
+ model: params.model,
354
+ duration,
355
+ });
356
+ throw error;
357
+ }
358
+ }
359
+ }
360
+ exports.ResponsesInterface = ResponsesInterface;
361
+ async function wrapApiCall(apiCall, trackingCall, params, errorMessage) {
362
+ const startTime = Date.now();
363
+ const { usageMetadata: metadata, ...cleanParams } = params;
364
+ try {
365
+ const response = await apiCall();
366
+ const duration = Date.now() - startTime;
367
+ await trackingCall(response, duration, metadata);
368
+ return response;
369
+ }
370
+ catch (error) {
371
+ const duration = Date.now() - startTime;
372
+ logger.error(errorMessage, {
373
+ error: error instanceof Error ? error.message : String(error),
374
+ model: params.model,
375
+ duration,
376
+ });
377
+ throw error;
378
+ }
379
+ }
380
+ class ImagesInterface {
381
+ constructor(originalImages, config, providerInfo) {
382
+ this.originalImages = originalImages;
383
+ this.config = config;
384
+ this.providerInfo = providerInfo;
385
+ }
386
+ async generate(params) {
387
+ const { usageMetadata: metadata, ...cleanParams } = params;
388
+ const startTime = Date.now();
389
+ return wrapApiCall(() => this.originalImages.generate(cleanParams), async (response, duration) => {
390
+ await (0, tracking_1.trackImageUsageAsync)("generation", response, params, startTime, duration, this.config, this.providerInfo, metadata);
391
+ }, params, "Image generation failed");
392
+ }
393
+ async edit(params) {
394
+ const { usageMetadata: metadata, ...cleanParams } = params;
395
+ const startTime = Date.now();
396
+ return wrapApiCall(() => this.originalImages.edit(cleanParams), async (response, duration) => {
397
+ await (0, tracking_1.trackImageUsageAsync)("edit", response, params, startTime, duration, this.config, this.providerInfo, metadata);
398
+ }, params, "Image edit failed");
399
+ }
400
+ async createVariation(params) {
401
+ const { usageMetadata: metadata, ...cleanParams } = params;
402
+ const startTime = Date.now();
403
+ return wrapApiCall(() => this.originalImages.createVariation(cleanParams), async (response, duration) => {
404
+ await (0, tracking_1.trackImageUsageAsync)("variation", response, params, startTime, duration, this.config, this.providerInfo, metadata);
405
+ }, params, "Image variation failed");
406
+ }
407
+ }
408
+ exports.ImagesInterface = ImagesInterface;
409
+ class AudioTranscriptionsInterface {
410
+ constructor(originalTranscriptions, config, providerInfo) {
411
+ this.originalTranscriptions = originalTranscriptions;
412
+ this.config = config;
413
+ this.providerInfo = providerInfo;
414
+ }
415
+ async create(params) {
416
+ const { usageMetadata: metadata, ...cleanParams } = params;
417
+ const startTime = Date.now();
418
+ return wrapApiCall(() => this.originalTranscriptions.create(cleanParams), async (response, duration) => {
419
+ await (0, tracking_1.trackAudioUsageAsync)("transcription", response, params, startTime, duration, this.config, this.providerInfo, metadata);
420
+ }, params, "Audio transcription failed");
421
+ }
422
+ }
423
+ exports.AudioTranscriptionsInterface = AudioTranscriptionsInterface;
424
+ class AudioTranslationsInterface {
425
+ constructor(originalTranslations, config, providerInfo) {
426
+ this.originalTranslations = originalTranslations;
427
+ this.config = config;
428
+ this.providerInfo = providerInfo;
429
+ }
430
+ async create(params) {
431
+ const { usageMetadata: metadata, ...cleanParams } = params;
432
+ const startTime = Date.now();
433
+ return wrapApiCall(() => this.originalTranslations.create(cleanParams), async (response, duration) => {
434
+ await (0, tracking_1.trackAudioUsageAsync)("translation", response, params, startTime, duration, this.config, this.providerInfo, metadata);
435
+ }, params, "Audio translation failed");
436
+ }
437
+ }
438
+ exports.AudioTranslationsInterface = AudioTranslationsInterface;
439
+ class AudioSpeechInterface {
440
+ constructor(originalSpeech, config, providerInfo) {
441
+ this.originalSpeech = originalSpeech;
442
+ this.config = config;
443
+ this.providerInfo = providerInfo;
444
+ }
445
+ async create(params) {
446
+ const { usageMetadata: metadata, ...cleanParams } = params;
447
+ const startTime = Date.now();
448
+ return wrapApiCall(() => this.originalSpeech.create(cleanParams), async (response, duration) => {
449
+ await (0, tracking_1.trackAudioUsageAsync)("speech_synthesis", response, params, startTime, duration, this.config, this.providerInfo, metadata);
450
+ }, params, "Audio speech synthesis failed");
451
+ }
452
+ }
453
+ exports.AudioSpeechInterface = AudioSpeechInterface;
454
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/core/middleware/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ /**
3
+ * Revenium OpenAI Client
4
+ *
5
+ * Main client class that wraps OpenAI/AzureOpenAI and provides tracking.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.ReveniumOpenAI = void 0;
42
+ const openai_1 = __importStar(require("openai"));
43
+ const types_1 = require("../../types");
44
+ const config_1 = require("../config");
45
+ const interfaces_js_1 = require("./interfaces.js");
46
+ const logger = (0, config_1.getLogger)();
47
+ /**
48
+ * ReveniumOpenAI - Main client class
49
+ *
50
+ * Provides API for OpenAI operations with automatic usage tracking.
51
+ */
52
+ class ReveniumOpenAI {
53
+ constructor(config, provider) {
54
+ this.config = config;
55
+ // Create OpenAI or AzureOpenAI client based on provider
56
+ if (provider === types_1.Provider.AZURE_OPENAI) {
57
+ if (!config.azure) {
58
+ throw new Error("Azure configuration required for Azure OpenAI provider");
59
+ }
60
+ logger.debug("Creating AzureOpenAI client", {
61
+ endpoint: config.azure.endpoint,
62
+ apiVersion: config.azure.apiVersion,
63
+ });
64
+ this.client = new openai_1.AzureOpenAI({
65
+ apiKey: config.azure.apiKey,
66
+ endpoint: config.azure.endpoint,
67
+ apiVersion: config.azure.apiVersion,
68
+ });
69
+ this.providerInfo = {
70
+ provider: types_1.Provider.AZURE_OPENAI,
71
+ isAzure: true,
72
+ azureConfig: config.azure,
73
+ };
74
+ }
75
+ else {
76
+ logger.debug("Creating OpenAI client");
77
+ this.client = new openai_1.default({
78
+ apiKey: config.openaiApiKey,
79
+ });
80
+ this.providerInfo = {
81
+ provider: types_1.Provider.OPENAI,
82
+ isAzure: false,
83
+ };
84
+ }
85
+ logger.info("Revenium OpenAI client created", {
86
+ provider: this.providerInfo.provider,
87
+ isAzure: this.providerInfo.isAzure,
88
+ });
89
+ }
90
+ /**
91
+ * Get chat interface
92
+ *
93
+ * @returns ChatInterface for chat completions
94
+ */
95
+ chat() {
96
+ return new interfaces_js_1.ChatInterface(this.client, this.config, this.providerInfo);
97
+ }
98
+ /**
99
+ * Get embeddings interface
100
+ *
101
+ * @returns EmbeddingsInterface for embeddings
102
+ */
103
+ embeddings() {
104
+ return new interfaces_js_1.EmbeddingsInterface(this.client, this.config, this.providerInfo);
105
+ }
106
+ /**
107
+ * Get responses interface (Responses API)
108
+ *
109
+ * @returns ResponsesInterface for Responses API
110
+ */
111
+ responses() {
112
+ return new interfaces_js_1.ResponsesInterface(this.client, this.config, this.providerInfo);
113
+ }
114
+ images() {
115
+ return new interfaces_js_1.ImagesInterface(this.client.images, this.config, this.providerInfo);
116
+ }
117
+ audio() {
118
+ return {
119
+ transcriptions: new interfaces_js_1.AudioTranscriptionsInterface(this.client.audio.transcriptions, this.config, this.providerInfo),
120
+ translations: new interfaces_js_1.AudioTranslationsInterface(this.client.audio.translations, this.config, this.providerInfo),
121
+ speech: new interfaces_js_1.AudioSpeechInterface(this.client.audio.speech, this.config, this.providerInfo),
122
+ };
123
+ }
124
+ /**
125
+ * Get the underlying OpenAI client
126
+ *
127
+ * For advanced use cases where direct access to OpenAI client is needed.
128
+ * Note: Direct usage bypasses Revenium tracking.
129
+ *
130
+ * @returns The underlying OpenAI or AzureOpenAI client
131
+ */
132
+ getUnderlyingClient() {
133
+ return this.client;
134
+ }
135
+ /**
136
+ * Get provider information
137
+ * @returns Provider information for this client
138
+ */
139
+ getProviderInfo() {
140
+ return this.providerInfo;
141
+ }
142
+ /**
143
+ * Get configuration
144
+ *
145
+ * @returns Configuration for this client
146
+ */
147
+ getConfig() {
148
+ return this.config;
149
+ }
150
+ }
151
+ exports.ReveniumOpenAI = ReveniumOpenAI;
152
+ //# sourceMappingURL=revenium-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revenium-client.js","sourceRoot":"","sources":["../../../../src/core/middleware/revenium-client.ts"],"names":[],"mappings":"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"}