@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 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,eAAe,EACf,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Payload Builder Module
3
+ *
4
+ * Handles construction of Revenium API payloads.
5
+ * Extracted from tracking.ts for single responsibility.
6
+ */
7
+ import { ReveniumPayload, ProviderInfo } from '../../types/index.js';
8
+ import { OpenAIChatResponse, OpenAIEmbeddingResponse, OpenAIChatRequest, OpenAIEmbeddingRequest } from '../../types/function-parameters.js';
9
+ /**
10
+ * Build payload for Revenium API
11
+ *
12
+ * This shared payload builder eliminates payload duplication between
13
+ * chat completions and embeddings. Handles both CHAT and EMBED operation types.
14
+ *
15
+ * @param operationType - Type of operation (CHAT or EMBED)
16
+ * @param response - API response from OpenAI/Azure
17
+ * @param request - Original request parameters
18
+ * @param startTime - Request start timestamp
19
+ * @param duration - Request duration in milliseconds
20
+ * @param providerInfo - Provider information for Azure support
21
+ * @returns Constructed payload for Revenium API
22
+ */
23
+ export declare function buildPayload(operationType: 'CHAT' | 'EMBED', response: OpenAIChatResponse | OpenAIEmbeddingResponse, request: OpenAIChatRequest | OpenAIEmbeddingRequest, startTime: number, duration: number, providerInfo?: ProviderInfo): ReveniumPayload;
24
+ //# sourceMappingURL=payload-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload-builder.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/payload-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAU5C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,GAAG,OAAO,EAC/B,QAAQ,EAAE,kBAAkB,GAAG,uBAAuB,EACtD,OAAO,EAAE,iBAAiB,GAAG,sBAAsB,EACnD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,GAC1B,eAAe,CAsFjB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Usage Tracker Module
3
+ *
4
+ * High-level tracking functions that combine payload building and API communication.
5
+ * Extracted from tracking.ts for better organization.
6
+ */
7
+ import { UsageMetadata, ProviderInfo } from '../../types/index.js';
8
+ import { OpenAIChatResponse, OpenAIEmbeddingResponse, OpenAIChatRequest, OpenAIEmbeddingRequest } from '../../types/function-parameters.js';
9
+ /**
10
+ * Chat completions tracking - now a thin wrapper with Azure support
11
+ */
12
+ export declare function sendReveniumMetrics(response: OpenAIChatResponse, request: OpenAIChatRequest, startTime: number, duration: number, providerInfo?: ProviderInfo): Promise<void>;
13
+ /**
14
+ * Embeddings tracking - now a thin wrapper with Azure support
15
+ */
16
+ export declare function sendReveniumEmbeddingsMetrics(response: OpenAIEmbeddingResponse, request: OpenAIEmbeddingRequest, startTime: number, duration: number, providerInfo?: ProviderInfo): Promise<void>;
17
+ /**
18
+ * Fire-and-forget wrapper for chat completions with Azure support
19
+ */
20
+ export declare function trackUsageAsync(trackingData: {
21
+ requestId: string;
22
+ model: string;
23
+ promptTokens: number;
24
+ completionTokens: number;
25
+ totalTokens: number;
26
+ reasoningTokens?: number;
27
+ cachedTokens?: number;
28
+ duration: number;
29
+ finishReason: string | null;
30
+ usageMetadata?: UsageMetadata;
31
+ isStreamed?: boolean;
32
+ timeToFirstToken?: number;
33
+ providerInfo?: ProviderInfo;
34
+ }): void;
35
+ /**
36
+ * Fire-and-forget wrapper for embeddings with Azure support
37
+ */
38
+ export declare function trackEmbeddingsUsageAsync(trackingData: {
39
+ transactionId: string;
40
+ model: string;
41
+ promptTokens: number;
42
+ totalTokens: number;
43
+ duration: number;
44
+ usageMetadata?: UsageMetadata;
45
+ requestStartTime: number;
46
+ providerInfo?: ProviderInfo;
47
+ }): void;
48
+ //# sourceMappingURL=usage-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAS5C;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,uBAAuB,EACjC,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,GAAG,IAAI,CAiDP;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,GAAG,IAAI,CAmCP"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Wrapper module - Main exports
3
+ *
4
+ * This module provides a clean interface for OpenAI client wrapping,
5
+ * separating concerns into focused sub-modules.
6
+ */
7
+ export { patchOpenAI, patchOpenAIInstance, getProviderInfo } from './instance-patcher.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/wrapper/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Instance Patcher Module
3
+ *
4
+ * Handles patching of OpenAI client instances.
5
+ * Extracted from wrapper.ts for better organization.
6
+ */
7
+ import OpenAI from 'openai';
8
+ import { ProviderInfo } from '../../types/index.js';
9
+ import { OpenAIClientInstance } from '../../types/function-parameters.js';
10
+ import '../../types/openai-augmentation.js';
11
+ /**
12
+ * WeakMap to store provider information for each client instance
13
+ */
14
+ declare const instanceProviders: WeakMap<OpenAIClientInstance, ProviderInfo>;
15
+ /**
16
+ * Get provider information for a client instance
17
+ */
18
+ export declare function getProviderInfo(instance: OpenAIClientInstance): ProviderInfo | undefined;
19
+ /**
20
+ * Simple approach: Only patch instances when users create them
21
+ * No global patching, no dummy keys - just clean instance patching
22
+ */
23
+ export declare function patchOpenAI(): void;
24
+ /**
25
+ * Manually patch an existing OpenAI instance
26
+ * This is the main function users should call
27
+ */
28
+ export declare function patchOpenAIInstance(instance: OpenAI): OpenAI;
29
+ /**
30
+ * Export instance providers for request handlers
31
+ */
32
+ export { instanceProviders };
33
+ //# sourceMappingURL=instance-patcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-patcher.d.ts","sourceRoot":"","sources":["../../../../src/core/wrapper/instance-patcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACL,oBAAoB,EAKrB,MAAM,oCAAoC,CAAC;AAY5C,OAAO,oCAAoC,CAAC;AAc5C;;GAEG;AACH,QAAA,MAAM,iBAAiB,6CAAoD,CAAC;AAK5E;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,oBAAoB,GAAG,YAAY,GAAG,SAAS,CAExF;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyB5D;AA4LD;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Request Handler Module
3
+ *
4
+ * Handles different types of OpenAI requests (streaming, non-streaming, embeddings).
5
+ * Extracted from wrapper.ts for better organization.
6
+ */
7
+ import { UsageMetadata, OpenAIResponsesRequest } from '../../types/index.js';
8
+ import { OpenAIChatResponse, OpenAIEmbeddingResponse, OpenAIChatRequest, OpenAIEmbeddingRequest, OpenAIClientInstance, OpenAIRequestOptions, OpenAIOriginalFunction, OpenAIResponsesOriginalFunction } from '../../types/function-parameters.js';
9
+ /**
10
+ * Handle non-streaming OpenAI requests
11
+ */
12
+ export declare function handleNonStreamingRequest(originalCreate: OpenAIOriginalFunction, params: Omit<OpenAIChatRequest, 'usageMetadata'> | Omit<OpenAIEmbeddingRequest, 'usageMetadata'>, options: OpenAIRequestOptions | undefined, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance): Promise<OpenAIChatResponse | OpenAIEmbeddingResponse>;
13
+ /**
14
+ * Handle streaming OpenAI requests
15
+ */
16
+ export declare function handleStreamingRequest(originalCreate: OpenAIOriginalFunction, params: Omit<OpenAIChatRequest, 'usageMetadata'>, options: OpenAIRequestOptions | undefined, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance): Promise<AsyncIterable<unknown>>;
17
+ /**
18
+ * Handle embeddings requests
19
+ */
20
+ export declare function handleEmbeddingsRequest(originalCreate: OpenAIOriginalFunction, params: Omit<OpenAIEmbeddingRequest, 'usageMetadata'>, options: OpenAIRequestOptions | undefined, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance): Promise<OpenAIEmbeddingResponse>;
21
+ /**
22
+ * Handle non-streaming OpenAI Responses API requests
23
+ */
24
+ export declare function handleResponsesNonStreamingRequest(originalCreate: OpenAIResponsesOriginalFunction, params: Omit<OpenAIResponsesRequest, 'usageMetadata'>, options: OpenAIRequestOptions | undefined, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance): Promise<unknown>;
25
+ /**
26
+ * Handle streaming OpenAI Responses API requests
27
+ */
28
+ export declare function handleResponsesStreamingRequest(originalCreate: OpenAIResponsesOriginalFunction, params: Omit<OpenAIResponsesRequest, 'usageMetadata'>, options: OpenAIRequestOptions | undefined, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance): Promise<AsyncIterable<unknown>>;
29
+ //# sourceMappingURL=request-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-handler.d.ts","sourceRoot":"","sources":["../../../../src/core/wrapper/request-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,+BAA+B,EAChC,MAAM,oCAAoC,CAAC;AAgB5C;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,cAAc,EAAE,sBAAsB,EACtC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAAG,IAAI,CAAC,sBAAsB,EAAE,eAAe,CAAC,EAChG,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,CAuEvD;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,cAAc,EAAE,sBAAsB,EACtC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAChD,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAwCjC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,cAAc,EAAE,sBAAsB,EACtC,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,eAAe,CAAC,EACrD,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CA8ClC;AAED;;GAEG;AACH,wBAAsB,kCAAkC,CACtD,cAAc,EAAE,+BAA+B,EAC/C,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,eAAe,CAAC,EACrD,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAiElB;AAED;;GAEG;AACH,wBAAsB,+BAA+B,CACnD,cAAc,EAAE,+BAA+B,EAC/C,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,eAAe,CAAC,EACrD,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CA2BjC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Stream Wrapper Module
3
+ *
4
+ * Handles wrapping of streaming responses for usage tracking.
5
+ * Extracted from wrapper.ts for better organization.
6
+ */
7
+ import { UsageMetadata } from '../../types/index.js';
8
+ import { OpenAIClientInstance } from '../../types/function-parameters.js';
9
+ /**
10
+ * Create a simple stream wrapper that tracks usage when complete
11
+ */
12
+ export declare function createTrackingStreamWrapper(originalStream: AsyncIterable<unknown>, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance): AsyncIterable<unknown>;
13
+ //# sourceMappingURL=stream-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-wrapper.d.ts","sourceRoot":"","sources":["../../../../src/core/wrapper/stream-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,oBAAoB,EAGrB,MAAM,oCAAoC,CAAC;AAS5C;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC,EACtC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,oBAAoB,GAC7B,aAAa,CAAC,OAAO,CAAC,CAsExB"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Revenium OpenAI Middleware for TypeScript
3
+ *
4
+ * This middleware tracks OpenAI usage and sends metrics to Revenium.
5
+ * Uses hybrid initialization: auto-initializes on import with graceful fallback to manual init.
6
+ *
7
+ * Environment Variables:
8
+ * REVENIUM_METERING_API_KEY=hak_your_api_key
9
+ * REVENIUM_METERING_BASE_URL=https://api.revenium.io/meter (optional)
10
+ * OPENAI_API_KEY=sk_your_openai_key
11
+ *
12
+ * Simple Usage (auto-initialization):
13
+ * import { patchOpenAIInstance } from 'revenium-middleware-openai-node';
14
+ * import OpenAI from 'openai';
15
+ *
16
+ * const openai = patchOpenAIInstance(new OpenAI());
17
+ * // Auto-initializes from environment variables
18
+ *
19
+ * Advanced Usage (explicit initialization):
20
+ * import { initializeReveniumFromEnv, patchOpenAIInstance } from 'revenium-middleware-openai-node';
21
+ * import OpenAI from 'openai';
22
+ *
23
+ * const result = initializeReveniumFromEnv();
24
+ * if (!result.success) {
25
+ * throw new Error(result.message);
26
+ * }
27
+ * const openai = patchOpenAIInstance(new OpenAI());
28
+ *
29
+ * const response = await openai.chat.completions.create({
30
+ * model: 'gpt-4',
31
+ * messages: [{ role: 'user', content: 'Hello!' }],
32
+ * usageMetadata: {
33
+ * subscriber: {
34
+ * id: 'user-123',
35
+ * email: 'user@my-org.com'
36
+ * },
37
+ * organizationId: 'my-org',
38
+ * productId: 'my-app'
39
+ * }
40
+ * });
41
+ */
42
+ import './types/openai-augmentation.js';
43
+ import type { ReveniumConfig } from './types/index.js';
44
+ /**
45
+ * Core types for TypeScript developers using Revenium middleware
46
+ *
47
+ * These types provide comprehensive TypeScript support for the Revenium OpenAI middleware,
48
+ * enabling type-safe configuration, usage tracking, and integration with OpenAI APIs.
49
+ *
50
+ * @public
51
+ */
52
+ export type {
53
+ /**
54
+ * Configuration interface for Revenium middleware initialization
55
+ *
56
+ * Defines all required and optional settings for connecting to Revenium's
57
+ * metering API and configuring middleware behavior.
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const config: ReveniumConfig = {
62
+ * reveniumApiKey: 'hak_your_api_key',
63
+ * reveniumBaseUrl: 'https://api.revenium.io/meter',
64
+ * debug: true
65
+ * };
66
+ * ```
67
+ */
68
+ ReveniumConfig,
69
+ /**
70
+ * Usage metadata structure for tracking AI API calls
71
+ *
72
+ * Comprehensive metadata interface that allows tracking of user context,
73
+ * business information, and custom fields for detailed analytics and billing.
74
+ * All fields are optional to provide maximum flexibility.
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * const metadata: UsageMetadata = {
79
+ * subscriber: { id: 'user-123', email: 'user@company.com' },
80
+ * organizationId: 'company-456',
81
+ * productId: 'chat-app',
82
+ * taskType: 'customer-support'
83
+ * };
84
+ * ```
85
+ */
86
+ UsageMetadata,
87
+ /**
88
+ * Logger interface for custom logging implementations
89
+ *
90
+ * Standardized logging interface that allows custom logger integration
91
+ * while maintaining consistent log levels and metadata support.
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * const customLogger: Logger = {
96
+ * debug: (msg, meta) => console.debug(msg, meta),
97
+ * info: (msg, meta) => console.info(msg, meta),
98
+ * warn: (msg, meta) => console.warn(msg, meta),
99
+ * error: (msg, meta) => console.error(msg, meta)
100
+ * };
101
+ * ```
102
+ */
103
+ Logger,
104
+ /**
105
+ * Azure OpenAI configuration interface
106
+ *
107
+ * Specific configuration options for Azure OpenAI integration,
108
+ * including endpoint, API version, and deployment settings.
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * const azureConfig: AzureConfig = {
113
+ * endpoint: 'https://your-resource.openai.azure.com',
114
+ * apiVersion: '2024-02-01',
115
+ * deployment: 'gpt-4'
116
+ * };
117
+ * ```
118
+ */
119
+ AzureConfig,
120
+ /**
121
+ * AI provider enumeration
122
+ *
123
+ * Supported AI providers for automatic detection and routing.
124
+ * Used internally for provider-specific handling and metrics.
125
+ */
126
+ Provider,
127
+ /**
128
+ * Provider information structure
129
+ *
130
+ * Detailed information about the detected AI provider, including
131
+ * configuration details and Azure-specific settings when applicable.
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * const providerInfo: ProviderInfo = {
136
+ * provider: Provider.AZURE_OPENAI,
137
+ * isAzure: true,
138
+ * endpoint: 'https://your-resource.openai.azure.com',
139
+ * deployment: 'gpt-4'
140
+ * };
141
+ * ```
142
+ */
143
+ ProviderInfo, } from './types';
144
+ export { trackUsageAsync, trackEmbeddingsUsageAsync } from './core/tracking/index.js';
145
+ export { detectProvider, hasAzureConfig, validateAzureConfig, getProviderMetadata, } from './core/providers/index.js';
146
+ export { getProviderInfo } from './core/wrapper/index.js';
147
+ export { resolveAzureModelName, clearModelNameCache, getModelNameCacheStats, batchResolveModelNames, wouldTransformDeploymentName, } from './utils/azure-model-resolver.js';
148
+ /**
149
+ * Initialize Revenium middleware with configuration
150
+ */
151
+ export declare function initializeRevenium(config: ReveniumConfig): {
152
+ success: boolean;
153
+ message: string;
154
+ };
155
+ /**
156
+ * Initialize Revenium middleware from environment variables
157
+ */
158
+ export declare function initializeReveniumFromEnv(): {
159
+ success: boolean;
160
+ message: string;
161
+ };
162
+ /**
163
+ * Manually patch an OpenAI instance (for advanced use cases)
164
+ */
165
+ export { patchOpenAIInstance } from './core/wrapper/index.js';
166
+ /**
167
+ * Check if middleware has been initialized
168
+ */
169
+ export declare function isReveniumInitialized(): boolean;
170
+ /**
171
+ * Get detailed initialization status
172
+ */
173
+ export declare function getInitializationStatus(): {
174
+ initialized: boolean;
175
+ hasConfig: boolean;
176
+ hasApiKey: boolean;
177
+ autoInitAttempted: boolean;
178
+ };
179
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAGH,OAAO,gCAAgC,CAAC;AAWxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD;;;;;;;GAOG;AACH,YAAY;AACV;;;;;;;;;;;;;;GAcG;AACH,cAAc;AAEd;;;;;;;;;;;;;;;;GAgBG;AACH,aAAa;AAEb;;;;;;;;;;;;;;;GAeG;AACH,MAAM;AAEN;;;;;;;;;;;;;;GAcG;AACH,WAAW;AAEX;;;;;GAKG;AACH,QAAQ;AAER;;;;;;;;;;;;;;;GAeG;AACH,YAAY,GACb,MAAM,SAAS,CAAC;AAOjB,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAGtF,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AAKzC;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAoCA;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CA8BA;AAED;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AA6B9D;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAQA"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Function Parameter Types
3
+ *
4
+ * Comprehensive type definitions for function parameters throughout the middleware.
5
+ * These interfaces provide type safety by replacing 'any' types with proper,
6
+ * well-documented interfaces that match OpenAI API structures and internal requirements.
7
+ *
8
+ * @fileoverview Type-safe function parameter definitions
9
+ * @author Revenium
10
+ * @since 1.0.0
11
+ */
12
+ import { UsageMetadata } from './index';
13
+ import { OpenAIResponsesRequest } from './responses-api';
14
+ /**
15
+ * OpenAI API response structure for chat completions
16
+ *
17
+ * Represents the complete response structure returned by OpenAI's chat completions API.
18
+ * Includes usage statistics, response choices, and metadata. Used internally for
19
+ * processing responses and extracting usage metrics.
20
+ *
21
+ * @public
22
+ * @example
23
+ * ```typescript
24
+ * const response: OpenAIChatResponse = {
25
+ * id: 'chatcmpl-123',
26
+ * model: 'gpt-4o-mini',
27
+ * usage: {
28
+ * prompt_tokens: 10,
29
+ * completion_tokens: 20,
30
+ * total_tokens: 30
31
+ * },
32
+ * choices: [{
33
+ * finish_reason: 'stop',
34
+ * message: {
35
+ * content: 'Hello! How can I help you?',
36
+ * role: 'assistant'
37
+ * }
38
+ * }]
39
+ * };
40
+ * ```
41
+ */
42
+ export interface OpenAIChatResponse {
43
+ /** Unique identifier for the chat completion */
44
+ id: string;
45
+ /** Model used for the completion */
46
+ model: string;
47
+ /** Token usage statistics */
48
+ usage: {
49
+ /** Number of tokens in the prompt */
50
+ prompt_tokens: number;
51
+ /** Number of tokens in the completion */
52
+ completion_tokens: number;
53
+ /** Total tokens used (prompt + completion) */
54
+ total_tokens: number;
55
+ /** Number of reasoning tokens (for reasoning models) */
56
+ reasoning_tokens?: number;
57
+ /** Number of cached tokens used */
58
+ cached_tokens?: number;
59
+ };
60
+ /** Array of completion choices */
61
+ choices: Array<{
62
+ /** Reason why the completion finished */
63
+ finish_reason: string | null;
64
+ /** Complete message (for non-streaming responses) */
65
+ message?: {
66
+ /** Message content */
67
+ content: string;
68
+ /** Message role (assistant, user, system) */
69
+ role: string;
70
+ };
71
+ /** Delta message (for streaming responses) */
72
+ delta?: {
73
+ /** Incremental content */
74
+ content?: string;
75
+ /** Message role */
76
+ role?: string;
77
+ };
78
+ }>;
79
+ /** Unix timestamp of when the completion was created */
80
+ created?: number;
81
+ /** Object type identifier */
82
+ object?: string;
83
+ }
84
+ /**
85
+ * OpenAI API response structure for embeddings
86
+ */
87
+ export interface OpenAIEmbeddingResponse {
88
+ model: string;
89
+ usage: {
90
+ prompt_tokens: number;
91
+ total_tokens: number;
92
+ };
93
+ data: Array<{
94
+ embedding: number[];
95
+ index: number;
96
+ object: string;
97
+ }>;
98
+ object: string;
99
+ }
100
+ /**
101
+ * OpenAI chat completion request parameters
102
+ */
103
+ export interface OpenAIChatRequest {
104
+ model: string;
105
+ messages: Array<{
106
+ role: string;
107
+ content: string;
108
+ }>;
109
+ stream?: boolean;
110
+ usageMetadata?: UsageMetadata;
111
+ max_tokens?: number;
112
+ temperature?: number;
113
+ top_p?: number;
114
+ frequency_penalty?: number;
115
+ presence_penalty?: number;
116
+ stop?: string | string[];
117
+ [key: string]: unknown;
118
+ }
119
+ /**
120
+ * OpenAI embeddings request parameters
121
+ */
122
+ export interface OpenAIEmbeddingRequest {
123
+ model: string;
124
+ input: string | string[];
125
+ usageMetadata?: UsageMetadata;
126
+ encoding_format?: string;
127
+ dimensions?: number;
128
+ user?: string;
129
+ [key: string]: unknown;
130
+ }
131
+ /**
132
+ * OpenAI client instance interface
133
+ */
134
+ export interface OpenAIClientInstance {
135
+ baseURL?: string | URL;
136
+ constructor?: {
137
+ name: string;
138
+ };
139
+ chat?: {
140
+ completions?: {
141
+ create: any;
142
+ };
143
+ };
144
+ embeddings?: {
145
+ create: any;
146
+ };
147
+ [key: string]: unknown;
148
+ }
149
+ /**
150
+ * OpenAI request options
151
+ */
152
+ export interface OpenAIRequestOptions {
153
+ headers?: Record<string, string>;
154
+ timeout?: number;
155
+ signal?: AbortSignal;
156
+ [key: string]: unknown;
157
+ }
158
+ /**
159
+ * Azure model resolver function parameters
160
+ */
161
+ export interface AzureModelResolverParams {
162
+ deploymentName: string;
163
+ useCache?: boolean;
164
+ }
165
+ /**
166
+ * Provider detection function parameters
167
+ */
168
+ export interface ProviderDetectionParams {
169
+ client: OpenAIClientInstance;
170
+ }
171
+ /**
172
+ * Azure configuration validation result
173
+ */
174
+ export interface AzureConfigValidationResult {
175
+ isValid: boolean;
176
+ missingFields: string[];
177
+ warnings: string[];
178
+ }
179
+ /**
180
+ * Lazy loading function type for Azure modules
181
+ */
182
+ export interface LazyLoadedModule {
183
+ [key: string]: any;
184
+ }
185
+ /**
186
+ * Console logger arguments type
187
+ */
188
+ export type LoggerArgs = unknown[];
189
+ /**
190
+ * Generic function type for original OpenAI methods
191
+ */
192
+ export type OpenAIOriginalFunction = (params: OpenAIChatRequest | OpenAIEmbeddingRequest, options?: OpenAIRequestOptions) => Promise<OpenAIChatResponse | OpenAIEmbeddingResponse>;
193
+ /**
194
+ * Function type for original OpenAI Responses API methods
195
+ */
196
+ export type OpenAIResponsesOriginalFunction = (params: OpenAIResponsesRequest, options?: OpenAIRequestOptions) => Promise<unknown>;
197
+ /**
198
+ * Stream chunk interface for streaming responses
199
+ */
200
+ export interface StreamChunk {
201
+ id: string;
202
+ model: string;
203
+ usage?: {
204
+ prompt_tokens: number;
205
+ completion_tokens: number;
206
+ total_tokens: number;
207
+ reasoning_tokens?: number;
208
+ cached_tokens?: number;
209
+ };
210
+ choices?: Array<{
211
+ delta?: {
212
+ content?: string;
213
+ role?: string;
214
+ };
215
+ finish_reason?: string | null;
216
+ }>;
217
+ [key: string]: unknown;
218
+ }
219
+ /**
220
+ * Extended usage interface that includes optional reasoning and cached tokens
221
+ */
222
+ export interface ExtendedUsage {
223
+ prompt_tokens: number;
224
+ completion_tokens: number;
225
+ total_tokens: number;
226
+ reasoning_tokens?: number;
227
+ cached_tokens?: number;
228
+ }
229
+ //# sourceMappingURL=function-parameters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-parameters.d.ts","sourceRoot":"","sources":["../../../src/types/function-parameters.ts"],"names":[],"mappings":"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"}