@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.
- package/LICENSE +21 -0
- package/README.md +1095 -0
- package/dist/cjs/core/config/azure-config.js +64 -0
- package/dist/cjs/core/config/azure-config.js.map +1 -0
- package/dist/cjs/core/config/index.js +41 -0
- package/dist/cjs/core/config/index.js.map +1 -0
- package/dist/cjs/core/config/loader.js +63 -0
- package/dist/cjs/core/config/loader.js.map +1 -0
- package/dist/cjs/core/config/manager.js +93 -0
- package/dist/cjs/core/config/manager.js.map +1 -0
- package/dist/cjs/core/config/validator.js +73 -0
- package/dist/cjs/core/config/validator.js.map +1 -0
- package/dist/cjs/core/providers/detector.js +140 -0
- package/dist/cjs/core/providers/detector.js.map +1 -0
- package/dist/cjs/core/providers/index.js +18 -0
- package/dist/cjs/core/providers/index.js.map +1 -0
- package/dist/cjs/core/tracking/api-client.js +68 -0
- package/dist/cjs/core/tracking/api-client.js.map +1 -0
- package/dist/cjs/core/tracking/index.js +23 -0
- package/dist/cjs/core/tracking/index.js.map +1 -0
- package/dist/cjs/core/tracking/payload-builder.js +107 -0
- package/dist/cjs/core/tracking/payload-builder.js.map +1 -0
- package/dist/cjs/core/tracking/usage-tracker.js +120 -0
- package/dist/cjs/core/tracking/usage-tracker.js.map +1 -0
- package/dist/cjs/core/wrapper/index.js +15 -0
- package/dist/cjs/core/wrapper/index.js.map +1 -0
- package/dist/cjs/core/wrapper/instance-patcher.js +202 -0
- package/dist/cjs/core/wrapper/instance-patcher.js.map +1 -0
- package/dist/cjs/core/wrapper/request-handler.js +317 -0
- package/dist/cjs/core/wrapper/request-handler.js.map +1 -0
- package/dist/cjs/core/wrapper/stream-wrapper.js +82 -0
- package/dist/cjs/core/wrapper/stream-wrapper.js.map +1 -0
- package/dist/cjs/index.js +195 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/types/function-parameters.js +14 -0
- package/dist/cjs/types/function-parameters.js.map +1 -0
- package/dist/cjs/types/index.js +49 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/openai-augmentation.js +55 -0
- package/dist/cjs/types/openai-augmentation.js.map +1 -0
- package/dist/cjs/types/responses-api.js +30 -0
- package/dist/cjs/types/responses-api.js.map +1 -0
- package/dist/cjs/utils/azure-model-resolver.js +211 -0
- package/dist/cjs/utils/azure-model-resolver.js.map +1 -0
- package/dist/cjs/utils/constants.js +24 -0
- package/dist/cjs/utils/constants.js.map +1 -0
- package/dist/cjs/utils/error-handler.js +194 -0
- package/dist/cjs/utils/error-handler.js.map +1 -0
- package/dist/cjs/utils/metadata-builder.js +184 -0
- package/dist/cjs/utils/metadata-builder.js.map +1 -0
- package/dist/cjs/utils/provider-detection.js +212 -0
- package/dist/cjs/utils/provider-detection.js.map +1 -0
- package/dist/cjs/utils/request-handler-factory.js +185 -0
- package/dist/cjs/utils/request-handler-factory.js.map +1 -0
- package/dist/cjs/utils/stop-reason-mapper.js +70 -0
- package/dist/cjs/utils/stop-reason-mapper.js.map +1 -0
- package/dist/cjs/utils/type-guards.js +175 -0
- package/dist/cjs/utils/type-guards.js.map +1 -0
- package/dist/cjs/utils/url-builder.js +43 -0
- package/dist/cjs/utils/url-builder.js.map +1 -0
- package/dist/esm/core/config/azure-config.js +61 -0
- package/dist/esm/core/config/azure-config.js.map +1 -0
- package/dist/esm/core/config/index.js +13 -0
- package/dist/esm/core/config/index.js.map +1 -0
- package/dist/esm/core/config/loader.js +58 -0
- package/dist/esm/core/config/loader.js.map +1 -0
- package/dist/esm/core/config/manager.js +85 -0
- package/dist/esm/core/config/manager.js.map +1 -0
- package/dist/esm/core/config/validator.js +69 -0
- package/dist/esm/core/config/validator.js.map +1 -0
- package/dist/esm/core/providers/detector.js +134 -0
- package/dist/esm/core/providers/detector.js.map +1 -0
- package/dist/esm/core/providers/index.js +10 -0
- package/dist/esm/core/providers/index.js.map +1 -0
- package/dist/esm/core/tracking/api-client.js +65 -0
- package/dist/esm/core/tracking/api-client.js.map +1 -0
- package/dist/esm/core/tracking/index.js +13 -0
- package/dist/esm/core/tracking/index.js.map +1 -0
- package/dist/esm/core/tracking/payload-builder.js +104 -0
- package/dist/esm/core/tracking/payload-builder.js.map +1 -0
- package/dist/esm/core/tracking/usage-tracker.js +114 -0
- package/dist/esm/core/tracking/usage-tracker.js.map +1 -0
- package/dist/esm/core/wrapper/index.js +9 -0
- package/dist/esm/core/wrapper/index.js.map +1 -0
- package/dist/esm/core/wrapper/instance-patcher.js +199 -0
- package/dist/esm/core/wrapper/instance-patcher.js.map +1 -0
- package/dist/esm/core/wrapper/request-handler.js +310 -0
- package/dist/esm/core/wrapper/request-handler.js.map +1 -0
- package/dist/esm/core/wrapper/stream-wrapper.js +79 -0
- package/dist/esm/core/wrapper/stream-wrapper.js.map +1 -0
- package/dist/esm/index.js +175 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types/function-parameters.js +13 -0
- package/dist/esm/types/function-parameters.js.map +1 -0
- package/dist/esm/types/index.js +32 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/openai-augmentation.js +54 -0
- package/dist/esm/types/openai-augmentation.js.map +1 -0
- package/dist/esm/types/responses-api.js +26 -0
- package/dist/esm/types/responses-api.js.map +1 -0
- package/dist/esm/utils/azure-model-resolver.js +204 -0
- package/dist/esm/utils/azure-model-resolver.js.map +1 -0
- package/dist/esm/utils/constants.js +21 -0
- package/dist/esm/utils/constants.js.map +1 -0
- package/dist/esm/utils/error-handler.js +182 -0
- package/dist/esm/utils/error-handler.js.map +1 -0
- package/dist/esm/utils/metadata-builder.js +176 -0
- package/dist/esm/utils/metadata-builder.js.map +1 -0
- package/dist/esm/utils/provider-detection.js +206 -0
- package/dist/esm/utils/provider-detection.js.map +1 -0
- package/dist/esm/utils/request-handler-factory.js +146 -0
- package/dist/esm/utils/request-handler-factory.js.map +1 -0
- package/dist/esm/utils/stop-reason-mapper.js +65 -0
- package/dist/esm/utils/stop-reason-mapper.js.map +1 -0
- package/dist/esm/utils/type-guards.js +158 -0
- package/dist/esm/utils/type-guards.js.map +1 -0
- package/dist/esm/utils/url-builder.js +39 -0
- package/dist/esm/utils/url-builder.js.map +1 -0
- package/dist/types/core/config/azure-config.d.ts +16 -0
- package/dist/types/core/config/azure-config.d.ts.map +1 -0
- package/dist/types/core/config/index.d.ts +11 -0
- package/dist/types/core/config/index.d.ts.map +1 -0
- package/dist/types/core/config/loader.d.ts +20 -0
- package/dist/types/core/config/loader.d.ts.map +1 -0
- package/dist/types/core/config/manager.d.ts +32 -0
- package/dist/types/core/config/manager.d.ts.map +1 -0
- package/dist/types/core/config/validator.d.ts +23 -0
- package/dist/types/core/config/validator.d.ts.map +1 -0
- package/dist/types/core/providers/detector.d.ts +44 -0
- package/dist/types/core/providers/detector.d.ts.map +1 -0
- package/dist/types/core/providers/index.d.ts +9 -0
- package/dist/types/core/providers/index.d.ts.map +1 -0
- package/dist/types/core/tracking/api-client.d.ts +17 -0
- package/dist/types/core/tracking/api-client.d.ts.map +1 -0
- package/dist/types/core/tracking/index.d.ts +11 -0
- package/dist/types/core/tracking/index.d.ts.map +1 -0
- package/dist/types/core/tracking/payload-builder.d.ts +24 -0
- package/dist/types/core/tracking/payload-builder.d.ts.map +1 -0
- package/dist/types/core/tracking/usage-tracker.d.ts +48 -0
- package/dist/types/core/tracking/usage-tracker.d.ts.map +1 -0
- package/dist/types/core/wrapper/index.d.ts +8 -0
- package/dist/types/core/wrapper/index.d.ts.map +1 -0
- package/dist/types/core/wrapper/instance-patcher.d.ts +33 -0
- package/dist/types/core/wrapper/instance-patcher.d.ts.map +1 -0
- package/dist/types/core/wrapper/request-handler.d.ts +29 -0
- package/dist/types/core/wrapper/request-handler.d.ts.map +1 -0
- package/dist/types/core/wrapper/stream-wrapper.d.ts +13 -0
- package/dist/types/core/wrapper/stream-wrapper.d.ts.map +1 -0
- package/dist/types/index.d.ts +179 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/types/function-parameters.d.ts +229 -0
- package/dist/types/types/function-parameters.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +283 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/openai-augmentation.d.ts +226 -0
- package/dist/types/types/openai-augmentation.d.ts.map +1 -0
- package/dist/types/types/responses-api.d.ts +247 -0
- package/dist/types/types/responses-api.d.ts.map +1 -0
- package/dist/types/utils/azure-model-resolver.d.ts +41 -0
- package/dist/types/utils/azure-model-resolver.d.ts.map +1 -0
- package/dist/types/utils/constants.d.ts +4 -0
- package/dist/types/utils/constants.d.ts.map +1 -0
- package/dist/types/utils/error-handler.d.ts +95 -0
- package/dist/types/utils/error-handler.d.ts.map +1 -0
- package/dist/types/utils/metadata-builder.d.ts +64 -0
- package/dist/types/utils/metadata-builder.d.ts.map +1 -0
- package/dist/types/utils/provider-detection.d.ts +51 -0
- package/dist/types/utils/provider-detection.d.ts.map +1 -0
- package/dist/types/utils/request-handler-factory.d.ts +81 -0
- package/dist/types/utils/request-handler-factory.d.ts.map +1 -0
- package/dist/types/utils/stop-reason-mapper.d.ts +29 -0
- package/dist/types/utils/stop-reason-mapper.d.ts.map +1 -0
- package/dist/types/utils/type-guards.d.ts +73 -0
- package/dist/types/utils/type-guards.d.ts.map +1 -0
- package/dist/types/utils/url-builder.d.ts +25 -0
- package/dist/types/utils/url-builder.d.ts.map +1 -0
- 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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"}
|