@revenium/openai 1.0.13 → 1.0.14
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/.env.example +10 -15
- package/CHANGELOG.md +44 -11
- package/CODE_OF_CONDUCT.md +57 -0
- package/CONTRIBUTING.md +38 -0
- package/README.md +104 -216
- package/SECURITY.md +34 -0
- package/dist/cjs/core/client/index.js +14 -0
- package/dist/cjs/core/client/index.js.map +1 -0
- package/dist/cjs/core/client/manager.js +109 -0
- package/dist/cjs/core/client/manager.js.map +1 -0
- package/dist/cjs/core/config/azure-config.js +5 -17
- package/dist/cjs/core/config/azure-config.js.map +1 -1
- package/dist/cjs/core/config/index.js +2 -2
- package/dist/cjs/core/config/index.js.map +1 -1
- package/dist/cjs/core/config/loader.js +34 -14
- package/dist/cjs/core/config/loader.js.map +1 -1
- package/dist/cjs/core/config/manager.js +11 -5
- package/dist/cjs/core/config/manager.js.map +1 -1
- package/dist/cjs/core/config/validator.js +3 -45
- package/dist/cjs/core/config/validator.js.map +1 -1
- package/dist/cjs/core/middleware/index.js +17 -0
- package/dist/cjs/core/middleware/index.js.map +1 -0
- package/dist/cjs/core/middleware/interfaces.js +361 -0
- package/dist/cjs/core/middleware/interfaces.js.map +1 -0
- package/dist/cjs/core/middleware/revenium-client.js +142 -0
- package/dist/cjs/core/middleware/revenium-client.js.map +1 -0
- package/dist/cjs/core/providers/detector.js +45 -23
- package/dist/cjs/core/providers/detector.js.map +1 -1
- package/dist/cjs/core/providers/index.js +2 -1
- package/dist/cjs/core/providers/index.js.map +1 -1
- package/dist/cjs/core/tracking/api-client.js +14 -13
- package/dist/cjs/core/tracking/api-client.js.map +1 -1
- package/dist/cjs/core/tracking/payload-builder.js +15 -25
- package/dist/cjs/core/tracking/payload-builder.js.map +1 -1
- package/dist/cjs/core/tracking/usage-tracker.js +22 -18
- package/dist/cjs/core/tracking/usage-tracker.js.map +1 -1
- package/dist/cjs/index.js +26 -195
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/index.js +0 -8
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/openai-augmentation.js +0 -49
- package/dist/cjs/types/openai-augmentation.js.map +1 -1
- package/dist/cjs/utils/constants.js +17 -20
- package/dist/cjs/utils/constants.js.map +1 -1
- package/dist/cjs/utils/error-handler.js +18 -14
- package/dist/cjs/utils/error-handler.js.map +1 -1
- package/dist/cjs/utils/metadata-builder.js +17 -16
- package/dist/cjs/utils/metadata-builder.js.map +1 -1
- package/dist/cjs/utils/provider-detection.js +25 -28
- package/dist/cjs/utils/provider-detection.js.map +1 -1
- package/dist/esm/core/client/index.js +6 -0
- package/dist/esm/core/client/index.js.map +1 -0
- package/dist/esm/core/client/manager.js +102 -0
- package/dist/esm/core/client/manager.js.map +1 -0
- package/dist/esm/core/config/azure-config.js +6 -18
- package/dist/esm/core/config/azure-config.js.map +1 -1
- package/dist/esm/core/config/index.js +5 -4
- package/dist/esm/core/config/index.js.map +1 -1
- package/dist/esm/core/config/loader.js +33 -13
- package/dist/esm/core/config/loader.js.map +1 -1
- package/dist/esm/core/config/manager.js +13 -7
- package/dist/esm/core/config/manager.js.map +1 -1
- package/dist/esm/core/config/validator.js +3 -44
- package/dist/esm/core/config/validator.js.map +1 -1
- package/dist/esm/core/middleware/index.js +8 -0
- package/dist/esm/core/middleware/index.js.map +1 -0
- package/dist/esm/core/middleware/interfaces.js +353 -0
- package/dist/esm/core/middleware/interfaces.js.map +1 -0
- package/dist/esm/core/middleware/revenium-client.js +105 -0
- package/dist/esm/core/middleware/revenium-client.js.map +1 -0
- package/dist/esm/core/providers/detector.js +43 -22
- package/dist/esm/core/providers/detector.js.map +1 -1
- package/dist/esm/core/providers/index.js +2 -2
- package/dist/esm/core/providers/index.js.map +1 -1
- package/dist/esm/core/tracking/api-client.js +13 -12
- package/dist/esm/core/tracking/api-client.js.map +1 -1
- package/dist/esm/core/tracking/payload-builder.js +16 -26
- package/dist/esm/core/tracking/payload-builder.js.map +1 -1
- package/dist/esm/core/tracking/usage-tracker.js +24 -20
- package/dist/esm/core/tracking/usage-tracker.js.map +1 -1
- package/dist/esm/index.js +9 -177
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/index.js +2 -10
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/openai-augmentation.js +0 -49
- package/dist/esm/types/openai-augmentation.js.map +1 -1
- package/dist/esm/utils/constants.js +16 -19
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/esm/utils/error-handler.js +19 -15
- package/dist/esm/utils/error-handler.js.map +1 -1
- package/dist/esm/utils/metadata-builder.js +17 -16
- package/dist/esm/utils/metadata-builder.js.map +1 -1
- package/dist/esm/utils/provider-detection.js +26 -29
- package/dist/esm/utils/provider-detection.js.map +1 -1
- package/dist/types/core/client/index.d.ts +6 -0
- package/dist/types/core/client/index.d.ts.map +1 -0
- package/dist/types/core/client/manager.d.ts +32 -0
- package/dist/types/core/client/manager.d.ts.map +1 -0
- package/dist/types/core/config/azure-config.d.ts +2 -2
- package/dist/types/core/config/azure-config.d.ts.map +1 -1
- package/dist/types/core/config/index.d.ts +4 -4
- package/dist/types/core/config/index.d.ts.map +1 -1
- package/dist/types/core/config/loader.d.ts +3 -1
- package/dist/types/core/config/loader.d.ts.map +1 -1
- package/dist/types/core/config/manager.d.ts +1 -1
- package/dist/types/core/config/manager.d.ts.map +1 -1
- package/dist/types/core/config/validator.d.ts +1 -12
- package/dist/types/core/config/validator.d.ts.map +1 -1
- package/dist/types/core/middleware/index.d.ts +8 -0
- package/dist/types/core/middleware/index.d.ts.map +1 -0
- package/dist/types/core/middleware/interfaces.d.ts +74 -0
- package/dist/types/core/middleware/interfaces.d.ts.map +1 -0
- package/dist/types/core/middleware/revenium-client.d.ts +58 -0
- package/dist/types/core/middleware/revenium-client.d.ts.map +1 -0
- package/dist/types/core/providers/detector.d.ts +9 -2
- package/dist/types/core/providers/detector.d.ts.map +1 -1
- package/dist/types/core/providers/index.d.ts +2 -2
- package/dist/types/core/providers/index.d.ts.map +1 -1
- package/dist/types/core/tracking/api-client.d.ts +1 -1
- package/dist/types/core/tracking/api-client.d.ts.map +1 -1
- package/dist/types/core/tracking/payload-builder.d.ts +3 -3
- package/dist/types/core/tracking/payload-builder.d.ts.map +1 -1
- package/dist/types/core/tracking/usage-tracker.d.ts +2 -2
- package/dist/types/core/tracking/usage-tracker.d.ts.map +1 -1
- package/dist/types/index.d.ts +11 -135
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/function-parameters.d.ts +2 -23
- package/dist/types/types/function-parameters.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +11 -105
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/openai-augmentation.d.ts +4 -138
- package/dist/types/types/openai-augmentation.d.ts.map +1 -1
- package/dist/types/utils/constants.d.ts +7 -1
- package/dist/types/utils/constants.d.ts.map +1 -1
- package/dist/types/utils/error-handler.d.ts +2 -2
- package/dist/types/utils/error-handler.d.ts.map +1 -1
- package/dist/types/utils/metadata-builder.d.ts +2 -2
- package/dist/types/utils/metadata-builder.d.ts.map +1 -1
- package/dist/types/utils/provider-detection.d.ts +3 -3
- package/dist/types/utils/provider-detection.d.ts.map +1 -1
- package/examples/README.md +282 -198
- package/examples/azure/basic.ts +62 -0
- package/examples/azure/responses-basic.ts +45 -0
- package/examples/azure/responses-stream.ts +61 -0
- package/examples/azure/stream.ts +56 -0
- package/examples/getting_started.ts +31 -43
- package/examples/openai/basic.ts +45 -0
- package/examples/openai/metadata.ts +67 -0
- package/examples/openai/responses-basic.ts +44 -0
- package/examples/openai/responses-embed.ts +34 -0
- package/examples/openai/responses-streaming.ts +63 -0
- package/examples/openai/streaming.ts +59 -0
- package/package.json +20 -13
- package/dist/cjs/core/wrapper/index.js +0 -15
- package/dist/cjs/core/wrapper/index.js.map +0 -1
- package/dist/cjs/core/wrapper/instance-patcher.js +0 -202
- package/dist/cjs/core/wrapper/instance-patcher.js.map +0 -1
- package/dist/cjs/core/wrapper/request-handler.js +0 -317
- package/dist/cjs/core/wrapper/request-handler.js.map +0 -1
- package/dist/cjs/core/wrapper/stream-wrapper.js +0 -82
- package/dist/cjs/core/wrapper/stream-wrapper.js.map +0 -1
- package/dist/cjs/utils/azure-model-resolver.js +0 -211
- package/dist/cjs/utils/azure-model-resolver.js.map +0 -1
- package/dist/cjs/utils/request-handler-factory.js +0 -185
- package/dist/cjs/utils/request-handler-factory.js.map +0 -1
- package/dist/esm/core/wrapper/index.js +0 -9
- package/dist/esm/core/wrapper/index.js.map +0 -1
- package/dist/esm/core/wrapper/instance-patcher.js +0 -199
- package/dist/esm/core/wrapper/instance-patcher.js.map +0 -1
- package/dist/esm/core/wrapper/request-handler.js +0 -310
- package/dist/esm/core/wrapper/request-handler.js.map +0 -1
- package/dist/esm/core/wrapper/stream-wrapper.js +0 -79
- package/dist/esm/core/wrapper/stream-wrapper.js.map +0 -1
- package/dist/esm/utils/azure-model-resolver.js +0 -204
- package/dist/esm/utils/azure-model-resolver.js.map +0 -1
- package/dist/esm/utils/request-handler-factory.js +0 -146
- package/dist/esm/utils/request-handler-factory.js.map +0 -1
- package/dist/types/core/wrapper/index.d.ts +0 -8
- package/dist/types/core/wrapper/index.d.ts.map +0 -1
- package/dist/types/core/wrapper/instance-patcher.d.ts +0 -33
- package/dist/types/core/wrapper/instance-patcher.d.ts.map +0 -1
- package/dist/types/core/wrapper/request-handler.d.ts +0 -29
- package/dist/types/core/wrapper/request-handler.d.ts.map +0 -1
- package/dist/types/core/wrapper/stream-wrapper.d.ts +0 -13
- package/dist/types/core/wrapper/stream-wrapper.d.ts.map +0 -1
- package/dist/types/utils/azure-model-resolver.d.ts +0 -41
- package/dist/types/utils/azure-model-resolver.d.ts.map +0 -1
- package/dist/types/utils/request-handler-factory.d.ts +0 -81
- package/dist/types/utils/request-handler-factory.d.ts.map +0 -1
- package/examples/azure-basic.ts +0 -206
- package/examples/azure-responses-basic.ts +0 -233
- package/examples/azure-responses-streaming.ts +0 -255
- package/examples/azure-streaming.ts +0 -209
- package/examples/openai-basic.ts +0 -147
- package/examples/openai-function-calling.ts +0 -259
- package/examples/openai-responses-basic.ts +0 -212
- package/examples/openai-responses-streaming.ts +0 -232
- package/examples/openai-streaming.ts +0 -172
- package/examples/openai-vision.ts +0 -289
- package/src/core/config/azure-config.ts +0 -72
- package/src/core/config/index.ts +0 -23
- package/src/core/config/loader.ts +0 -66
- package/src/core/config/manager.ts +0 -95
- package/src/core/config/validator.ts +0 -89
- package/src/core/providers/detector.ts +0 -159
- package/src/core/providers/index.ts +0 -16
- package/src/core/tracking/api-client.ts +0 -78
- package/src/core/tracking/index.ts +0 -21
- package/src/core/tracking/payload-builder.ts +0 -137
- package/src/core/tracking/usage-tracker.ts +0 -189
- package/src/core/wrapper/index.ts +0 -9
- package/src/core/wrapper/instance-patcher.ts +0 -288
- package/src/core/wrapper/request-handler.ts +0 -423
- package/src/core/wrapper/stream-wrapper.ts +0 -100
- package/src/index.ts +0 -360
- package/src/types/function-parameters.ts +0 -251
- package/src/types/index.ts +0 -310
- package/src/types/openai-augmentation.ts +0 -232
- package/src/types/responses-api.ts +0 -308
- package/src/utils/azure-model-resolver.ts +0 -220
- package/src/utils/constants.ts +0 -21
- package/src/utils/error-handler.ts +0 -251
- package/src/utils/metadata-builder.ts +0 -228
- package/src/utils/provider-detection.ts +0 -257
- package/src/utils/request-handler-factory.ts +0 -285
- package/src/utils/stop-reason-mapper.ts +0 -78
- package/src/utils/type-guards.ts +0 -202
- package/src/utils/url-builder.ts +0 -68
|
@@ -4,46 +4,45 @@
|
|
|
4
4
|
* Simplifies complex provider detection logic using strategy pattern
|
|
5
5
|
* instead of nested conditionals.
|
|
6
6
|
*/
|
|
7
|
-
import { Provider } from
|
|
7
|
+
import { Provider } from "../types/index.js";
|
|
8
8
|
/**
|
|
9
9
|
* Provider detection strategies in priority order
|
|
10
10
|
*/
|
|
11
11
|
const DETECTION_STRATEGIES = [
|
|
12
12
|
{
|
|
13
|
-
name:
|
|
13
|
+
name: "Constructor Name",
|
|
14
14
|
priority: 100,
|
|
15
|
-
detect: client => {
|
|
16
|
-
return client?.constructor?.name?.includes(
|
|
15
|
+
detect: (client) => {
|
|
16
|
+
return client?.constructor?.name?.includes("Azure") || false;
|
|
17
17
|
},
|
|
18
|
-
getContext: client => ({
|
|
18
|
+
getContext: (client) => ({
|
|
19
19
|
constructorName: client?.constructor?.name,
|
|
20
20
|
}),
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
|
-
name:
|
|
23
|
+
name: "Base URL",
|
|
24
24
|
priority: 90,
|
|
25
|
-
detect: client => {
|
|
25
|
+
detect: (client) => {
|
|
26
26
|
const baseUrl = getBaseUrlString(client);
|
|
27
|
-
return baseUrl?.toLowerCase().includes(
|
|
27
|
+
return baseUrl?.toLowerCase().includes("azure") || false;
|
|
28
28
|
},
|
|
29
|
-
getContext: client => ({
|
|
29
|
+
getContext: (client) => ({
|
|
30
30
|
baseURL: getBaseUrlString(client),
|
|
31
31
|
}),
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
|
-
name:
|
|
34
|
+
name: "Environment Variables",
|
|
35
35
|
priority: 80,
|
|
36
|
-
detect: client => {
|
|
36
|
+
detect: (client) => {
|
|
37
37
|
// Only use env vars if not explicitly OpenAI
|
|
38
38
|
const baseUrl = getBaseUrlString(client);
|
|
39
|
-
const isExplicitlyOpenAI = baseUrl?.includes(
|
|
40
|
-
(client?.constructor?.name?.toLowerCase().includes(
|
|
41
|
-
!client?.constructor?.name?.toLowerCase().includes(
|
|
39
|
+
const isExplicitlyOpenAI = baseUrl?.includes("api.openai.com") ||
|
|
40
|
+
(client?.constructor?.name?.toLowerCase().includes("openai") &&
|
|
41
|
+
!client?.constructor?.name?.toLowerCase().includes("azure"));
|
|
42
42
|
return !isExplicitlyOpenAI && !!process.env.AZURE_OPENAI_ENDPOINT;
|
|
43
43
|
},
|
|
44
44
|
getContext: () => ({
|
|
45
45
|
hasAzureEndpoint: !!process.env.AZURE_OPENAI_ENDPOINT,
|
|
46
|
-
hasAzureDeployment: !!process.env.AZURE_OPENAI_DEPLOYMENT,
|
|
47
46
|
hasAzureApiKey: !!process.env.AZURE_OPENAI_API_KEY,
|
|
48
47
|
}),
|
|
49
48
|
},
|
|
@@ -54,7 +53,9 @@ const DETECTION_STRATEGIES = [
|
|
|
54
53
|
function getBaseUrlString(client) {
|
|
55
54
|
if (!client?.baseURL)
|
|
56
55
|
return undefined;
|
|
57
|
-
return typeof client.baseURL ===
|
|
56
|
+
return typeof client.baseURL === "string"
|
|
57
|
+
? client.baseURL
|
|
58
|
+
: client.baseURL.toString();
|
|
58
59
|
}
|
|
59
60
|
/**
|
|
60
61
|
* Detect provider using strategy pattern
|
|
@@ -93,27 +94,24 @@ export function detectProviderStrategy(client, logger) {
|
|
|
93
94
|
}
|
|
94
95
|
// Default to OpenAI
|
|
95
96
|
if (logger) {
|
|
96
|
-
logger.debug(
|
|
97
|
+
logger.debug("Standard OpenAI provider detected (no Azure indicators found)");
|
|
97
98
|
}
|
|
98
99
|
return { provider: Provider.OPENAI };
|
|
99
100
|
}
|
|
100
101
|
const AZURE_CONFIG_STRATEGIES = [
|
|
101
102
|
{
|
|
102
|
-
name:
|
|
103
|
-
gather: client => {
|
|
103
|
+
name: "Client BaseURL",
|
|
104
|
+
gather: (client) => {
|
|
104
105
|
const baseUrl = getBaseUrlString(client);
|
|
105
106
|
return baseUrl ? { endpoint: baseUrl } : {};
|
|
106
107
|
},
|
|
107
108
|
},
|
|
108
109
|
{
|
|
109
|
-
name:
|
|
110
|
+
name: "Environment Variables",
|
|
110
111
|
gather: () => ({
|
|
111
112
|
endpoint: process.env.AZURE_OPENAI_ENDPOINT,
|
|
112
|
-
|
|
113
|
-
apiVersion: process.env.AZURE_OPENAI_API_VERSION || '2024-12-01-preview',
|
|
113
|
+
apiVersion: process.env.AZURE_OPENAI_API_VERSION,
|
|
114
114
|
apiKey: process.env.AZURE_OPENAI_API_KEY,
|
|
115
|
-
tenantId: process.env.AZURE_OPENAI_TENANT_ID,
|
|
116
|
-
resourceGroup: process.env.AZURE_OPENAI_RESOURCE_GROUP,
|
|
117
115
|
}),
|
|
118
116
|
},
|
|
119
117
|
];
|
|
@@ -145,9 +143,8 @@ export function gatherAzureConfigStrategy(client, logger) {
|
|
|
145
143
|
}
|
|
146
144
|
}
|
|
147
145
|
if (logger) {
|
|
148
|
-
logger.debug(
|
|
146
|
+
logger.debug("Azure configuration gathered", {
|
|
149
147
|
hasEndpoint: !!config.endpoint,
|
|
150
|
-
hasDeployment: !!config.deployment,
|
|
151
148
|
hasApiKey: !!config.apiKey,
|
|
152
149
|
apiVersion: config.apiVersion,
|
|
153
150
|
});
|
|
@@ -187,14 +184,14 @@ export function validateProviderInfo(providerInfo) {
|
|
|
187
184
|
const warnings = [];
|
|
188
185
|
if (providerInfo.isAzure) {
|
|
189
186
|
if (!providerInfo.azureConfig) {
|
|
190
|
-
warnings.push(
|
|
187
|
+
warnings.push("Azure provider detected but no Azure configuration available");
|
|
191
188
|
}
|
|
192
189
|
else {
|
|
193
190
|
if (!providerInfo.azureConfig.endpoint) {
|
|
194
|
-
warnings.push(
|
|
191
|
+
warnings.push("Azure configuration missing endpoint");
|
|
195
192
|
}
|
|
196
193
|
if (!providerInfo.azureConfig.apiKey) {
|
|
197
|
-
warnings.push(
|
|
194
|
+
warnings.push("Azure configuration missing API key");
|
|
198
195
|
}
|
|
199
196
|
}
|
|
200
197
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-detection.js","sourceRoot":"","sources":["../../../src/utils/provider-detection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAA6B,MAAM,mBAAmB,CAAC;AAkBxE;;GAEG;AACH,MAAM,oBAAoB,GAAgC;IACxD;QACE,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"provider-detection.js","sourceRoot":"","sources":["../../../src/utils/provider-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/client/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,KAAK,EACL,SAAS,GACV,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client Manager
|
|
3
|
+
*/
|
|
4
|
+
import { ReveniumOpenAI } from "../middleware/revenium-client.js";
|
|
5
|
+
import { Config } from "../../types";
|
|
6
|
+
/**
|
|
7
|
+
* Initialize - Initialize Revenium client
|
|
8
|
+
* Can be called with explicit config or will load from environment variables.
|
|
9
|
+
* @param config - Optional configuration. If not provided, loads from environment.
|
|
10
|
+
*/
|
|
11
|
+
export declare function Initialize(config?: Partial<Config>): void;
|
|
12
|
+
/**
|
|
13
|
+
* GetClient - Get the global Revenium client
|
|
14
|
+
* @returns The global ReveniumOpenAI client
|
|
15
|
+
* @throws Error if client is not initialized
|
|
16
|
+
*/
|
|
17
|
+
export declare function GetClient(): ReveniumOpenAI;
|
|
18
|
+
/**
|
|
19
|
+
* IsInitialized - Check if client is initialized
|
|
20
|
+
* @returns true if client is initialized, false otherwise
|
|
21
|
+
*/
|
|
22
|
+
export declare function IsInitialized(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Reset - Reset the global client
|
|
25
|
+
*/
|
|
26
|
+
export declare function Reset(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Configure - Alias for Initialize
|
|
29
|
+
* @param config - Configuration object
|
|
30
|
+
*/
|
|
31
|
+
export declare function Configure(config: Partial<Config>): void;
|
|
32
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/core/client/manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAiBrC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CA0DzD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,cAAc,CAW1C;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAG5B;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAEvD"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Handles Azure-specific configuration logic.
|
|
5
5
|
* Extracted from provider.ts for better separation of concerns.
|
|
6
6
|
*/
|
|
7
|
-
import { AzureConfig } from
|
|
8
|
-
import { OpenAIClientInstance } from
|
|
7
|
+
import { AzureConfig } from "../../types";
|
|
8
|
+
import { OpenAIClientInstance } from "../../types/function-parameters.js";
|
|
9
9
|
/**
|
|
10
10
|
* Gather Azure configuration from client and environment
|
|
11
11
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azure-config.d.ts","sourceRoot":"","sources":["../../../../src/core/config/azure-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"azure-config.d.ts","sourceRoot":"","sources":["../../../../src/core/config/azure-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAM1E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,WAAW,CAqC3E"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* This module provides a clean interface for configuration management,
|
|
5
5
|
* separating concerns into focused sub-modules.
|
|
6
6
|
*/
|
|
7
|
-
export { loadConfigFromEnv, loadAzureConfigFromEnv, hasAzureConfigInEnv } from
|
|
8
|
-
export { validateConfig
|
|
9
|
-
export { getConfig, setConfig, getLogger, setLogger, initializeConfig, defaultLogger, } from
|
|
10
|
-
export * from
|
|
7
|
+
export { loadConfigFromEnv, loadAzureConfigFromEnv, hasAzureConfigInEnv, } from "./loader.js";
|
|
8
|
+
export { validateConfig } from "./validator.js";
|
|
9
|
+
export { getConfig, setConfig, getLogger, setLogger, initializeConfig, defaultLogger, } from "./manager.js";
|
|
10
|
+
export * from "./azure-config.js";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,aAAa,GACd,MAAM,cAAc,CAAC;AAGtB,cAAc,mBAAmB,CAAC"}
|
|
@@ -4,13 +4,15 @@
|
|
|
4
4
|
* Handles loading configuration from environment variables.
|
|
5
5
|
* Separated from validation and management for single responsibility.
|
|
6
6
|
*/
|
|
7
|
-
import { ReveniumConfig, AzureConfig } from
|
|
7
|
+
import { ReveniumConfig, AzureConfig } from "../../types";
|
|
8
8
|
/**
|
|
9
9
|
* Load configuration from environment variables
|
|
10
|
+
* Automatically loads .env files first
|
|
10
11
|
*/
|
|
11
12
|
export declare function loadConfigFromEnv(): ReveniumConfig | null;
|
|
12
13
|
/**
|
|
13
14
|
* Load Azure configuration from environment variables
|
|
15
|
+
* Automatically loads .env files first
|
|
14
16
|
*/
|
|
15
17
|
export declare function loadAzureConfigFromEnv(): AzureConfig | null;
|
|
16
18
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/core/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/core/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAkC1D;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAiBzD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,WAAW,GAAG,IAAI,CAc3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Handles global configuration state management and logging.
|
|
5
5
|
* Separated from loading and validation for single responsibility.
|
|
6
6
|
*/
|
|
7
|
-
import { ReveniumConfig, Logger } from
|
|
7
|
+
import { ReveniumConfig, Logger } from "../../types";
|
|
8
8
|
/**
|
|
9
9
|
* Default console logger implementation
|
|
10
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/core/config/manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/core/config/manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQrD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAgB3B,CAAC;AAQF;;GAEG;AACH,wBAAgB,SAAS,IAAI,cAAc,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAQtD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAgC1C"}
|
|
@@ -4,20 +4,9 @@
|
|
|
4
4
|
* Handles validation of configuration objects.
|
|
5
5
|
* Separated from loading and management for single responsibility.
|
|
6
6
|
*/
|
|
7
|
-
import { ReveniumConfig
|
|
7
|
+
import { ReveniumConfig } from "../../types";
|
|
8
8
|
/**
|
|
9
9
|
* Validate Revenium configuration
|
|
10
10
|
*/
|
|
11
11
|
export declare function validateConfig(config: ReveniumConfig): void;
|
|
12
|
-
/**
|
|
13
|
-
* Validate Azure configuration completeness
|
|
14
|
-
*
|
|
15
|
-
* @param config - Azure configuration to validate
|
|
16
|
-
* @returns validation result with missing fields
|
|
17
|
-
*/
|
|
18
|
-
export declare function validateAzureConfig(config: AzureConfig): {
|
|
19
|
-
isValid: boolean;
|
|
20
|
-
missingFields: string[];
|
|
21
|
-
warnings: string[];
|
|
22
|
-
};
|
|
23
12
|
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../src/core/config/validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../src/core/config/validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CA2B3D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware Module
|
|
3
|
+
*
|
|
4
|
+
* Exports all middleware components.
|
|
5
|
+
*/
|
|
6
|
+
export { ReveniumOpenAI } from './revenium-client.js';
|
|
7
|
+
export { ChatInterface, CompletionsInterface, EmbeddingsInterface, ResponsesInterface, StreamingWrapper, } from './interfaces.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware Interfaces
|
|
3
|
+
*
|
|
4
|
+
* Provides interfaces for OpenAI operations.
|
|
5
|
+
* Contains: ChatInterface, CompletionsInterface, EmbeddingsInterface, ResponsesInterface, StreamingWrapper
|
|
6
|
+
*/
|
|
7
|
+
import OpenAI from "openai";
|
|
8
|
+
import { Config, UsageMetadata, ProviderInfo } from "../../types";
|
|
9
|
+
import { ResponsesCreateParams, ResponsesResponse } from "../../types/responses-api.js";
|
|
10
|
+
/**
|
|
11
|
+
* StreamingWrapper - wraps OpenAI stream and tracks tokens
|
|
12
|
+
*/
|
|
13
|
+
export declare class StreamingWrapper implements AsyncIterable<OpenAI.ChatCompletionChunk> {
|
|
14
|
+
private stream;
|
|
15
|
+
private config;
|
|
16
|
+
private providerInfo;
|
|
17
|
+
private model;
|
|
18
|
+
private metadata?;
|
|
19
|
+
private startTime;
|
|
20
|
+
private firstTokenTime?;
|
|
21
|
+
private requestId;
|
|
22
|
+
private usage;
|
|
23
|
+
constructor(stream: AsyncIterable<OpenAI.ChatCompletionChunk>, config: Config, providerInfo: ProviderInfo, model: string, metadata?: UsageMetadata);
|
|
24
|
+
[Symbol.asyncIterator](): AsyncIterator<OpenAI.ChatCompletionChunk>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* CompletionsInterface - handles chat completions
|
|
28
|
+
*/
|
|
29
|
+
export declare class CompletionsInterface {
|
|
30
|
+
private client;
|
|
31
|
+
private config;
|
|
32
|
+
private providerInfo;
|
|
33
|
+
constructor(client: OpenAI, config: Config, providerInfo: ProviderInfo);
|
|
34
|
+
/**
|
|
35
|
+
* Create a non-streaming chat completion
|
|
36
|
+
*/
|
|
37
|
+
create(params: OpenAI.ChatCompletionCreateParamsNonStreaming, metadata?: UsageMetadata): Promise<OpenAI.ChatCompletion>;
|
|
38
|
+
/**
|
|
39
|
+
* Create a streaming chat completion
|
|
40
|
+
*/
|
|
41
|
+
createStreaming(params: OpenAI.ChatCompletionCreateParamsStreaming, metadata?: UsageMetadata): Promise<StreamingWrapper>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* ChatInterface - provides access to completions
|
|
45
|
+
*/
|
|
46
|
+
export declare class ChatInterface {
|
|
47
|
+
private client;
|
|
48
|
+
private config;
|
|
49
|
+
private providerInfo;
|
|
50
|
+
constructor(client: OpenAI, config: Config, providerInfo: ProviderInfo);
|
|
51
|
+
completions(): CompletionsInterface;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* EmbeddingsInterface - handles embeddings
|
|
55
|
+
*/
|
|
56
|
+
export declare class EmbeddingsInterface {
|
|
57
|
+
private client;
|
|
58
|
+
private config;
|
|
59
|
+
private providerInfo;
|
|
60
|
+
constructor(client: OpenAI, config: Config, providerInfo: ProviderInfo);
|
|
61
|
+
create(params: OpenAI.EmbeddingCreateParams, metadata?: UsageMetadata): Promise<OpenAI.CreateEmbeddingResponse>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* ResponsesInterface - handles Responses API (stateful API)
|
|
65
|
+
*/
|
|
66
|
+
export declare class ResponsesInterface {
|
|
67
|
+
private client;
|
|
68
|
+
private config;
|
|
69
|
+
private providerInfo;
|
|
70
|
+
constructor(client: OpenAI, config: Config, providerInfo: ProviderInfo);
|
|
71
|
+
create(params: ResponsesCreateParams, metadata?: UsageMetadata): Promise<ResponsesResponse>;
|
|
72
|
+
createStreaming(params: ResponsesCreateParams, metadata?: UsageMetadata): Promise<AsyncIterable<any>>;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/core/middleware/interfaces.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAY,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG5E,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AAItC;;GAEG;AACH,qBAAa,gBACX,YAAW,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAEpD,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAW;gBAGtB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC,EACjD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,aAAa;IAWnB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC;CA0E3E;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;gBAFZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY;IAGpC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,MAAM,CAAC,sCAAsC,EACrD,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;IA6DjC;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,CAAC,mCAAmC,EAClD,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,gBAAgB,CAAC;CAkB7B;AAED;;GAEG;AACH,qBAAa,aAAa;IAEtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;gBAFZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY;IAGpC,WAAW,IAAI,oBAAoB;CAOpC;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;gBAFZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY;IAG9B,MAAM,CACV,MAAM,EAAE,MAAM,CAAC,qBAAqB,EACpC,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC;CAyC3C;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;gBAFZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY;IAG9B,MAAM,CACV,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,iBAAiB,CAAC;IA0DvB,eAAe,CACnB,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CAkF/B"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Revenium OpenAI Client
|
|
3
|
+
*
|
|
4
|
+
* Main client class that wraps OpenAI/AzureOpenAI and provides tracking.
|
|
5
|
+
*/
|
|
6
|
+
import OpenAI, { AzureOpenAI } from "openai";
|
|
7
|
+
import { Config, Provider, ProviderInfo } from "../../types";
|
|
8
|
+
import { ChatInterface, EmbeddingsInterface, ResponsesInterface } from "./interfaces.js";
|
|
9
|
+
/**
|
|
10
|
+
* ReveniumOpenAI - Main client class
|
|
11
|
+
*
|
|
12
|
+
* Provides API for OpenAI operations with automatic usage tracking.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ReveniumOpenAI {
|
|
15
|
+
private client;
|
|
16
|
+
private config;
|
|
17
|
+
private providerInfo;
|
|
18
|
+
constructor(config: Config, provider: Provider);
|
|
19
|
+
/**
|
|
20
|
+
* Get chat interface
|
|
21
|
+
*
|
|
22
|
+
* @returns ChatInterface for chat completions
|
|
23
|
+
*/
|
|
24
|
+
chat(): ChatInterface;
|
|
25
|
+
/**
|
|
26
|
+
* Get embeddings interface
|
|
27
|
+
*
|
|
28
|
+
* @returns EmbeddingsInterface for embeddings
|
|
29
|
+
*/
|
|
30
|
+
embeddings(): EmbeddingsInterface;
|
|
31
|
+
/**
|
|
32
|
+
* Get responses interface (Responses API)
|
|
33
|
+
*
|
|
34
|
+
* @returns ResponsesInterface for Responses API
|
|
35
|
+
*/
|
|
36
|
+
responses(): ResponsesInterface;
|
|
37
|
+
/**
|
|
38
|
+
* Get the underlying OpenAI client
|
|
39
|
+
*
|
|
40
|
+
* For advanced use cases where direct access to OpenAI client is needed.
|
|
41
|
+
* Note: Direct usage bypasses Revenium tracking.
|
|
42
|
+
*
|
|
43
|
+
* @returns The underlying OpenAI or AzureOpenAI client
|
|
44
|
+
*/
|
|
45
|
+
getUnderlyingClient(): OpenAI | AzureOpenAI;
|
|
46
|
+
/**
|
|
47
|
+
* Get provider information
|
|
48
|
+
* @returns Provider information for this client
|
|
49
|
+
*/
|
|
50
|
+
getProviderInfo(): ProviderInfo;
|
|
51
|
+
/**
|
|
52
|
+
* Get configuration
|
|
53
|
+
*
|
|
54
|
+
* @returns Configuration for this client
|
|
55
|
+
*/
|
|
56
|
+
getConfig(): Config;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=revenium-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revenium-client.d.ts","sourceRoot":"","sources":["../../../../src/core/middleware/revenium-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAIzB;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAe;gBAEvB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IA8C9C;;;;OAIG;IACH,IAAI,IAAI,aAAa;IAIrB;;;;OAIG;IACH,UAAU,IAAI,mBAAmB;IAIjC;;;;OAIG;IACH,SAAS,IAAI,kBAAkB;IAI/B;;;;;;;OAOG;IACH,mBAAmB,IAAI,MAAM,GAAG,WAAW;IAI3C;;;OAGG;IACH,eAAe,IAAI,YAAY;IAI/B;;;;OAIG;IACH,SAAS,IAAI,MAAM;CAGpB"}
|
|
@@ -4,8 +4,15 @@
|
|
|
4
4
|
* Handles detection of AI providers (OpenAI vs Azure OpenAI).
|
|
5
5
|
* Extracted from provider.ts for better organization.
|
|
6
6
|
*/
|
|
7
|
-
import { ProviderInfo, AzureConfig } from
|
|
8
|
-
import { OpenAIClientInstance } from
|
|
7
|
+
import { ProviderInfo, AzureConfig, Config } from "../../types";
|
|
8
|
+
import { OpenAIClientInstance } from "../../types/function-parameters.js";
|
|
9
|
+
/**
|
|
10
|
+
* Detect provider from configuration
|
|
11
|
+
*
|
|
12
|
+
* @param config - Configuration object
|
|
13
|
+
* @returns ProviderInfo with detection results
|
|
14
|
+
*/
|
|
15
|
+
export declare function detectProviderFromConfig(config: Config): ProviderInfo;
|
|
9
16
|
/**
|
|
10
17
|
* Detect Azure OpenAI provider from client instance
|
|
11
18
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../../../src/core/providers/detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAY,YAAY,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../../../src/core/providers/detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAY,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAW1E;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAkBrE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,YAAY,CA+CzE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAMxC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAuCA;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAWA"}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
* This module provides a clean interface for provider detection and management,
|
|
5
5
|
* separating concerns into focused sub-modules.
|
|
6
6
|
*/
|
|
7
|
-
export { detectProvider, hasAzureConfig, validateAzureConfig, getProviderMetadata, } from
|
|
8
|
-
export { gatherAzureConfig } from
|
|
7
|
+
export { detectProvider, detectProviderFromConfig, hasAzureConfig, validateAzureConfig, getProviderMetadata, } from "./detector.js";
|
|
8
|
+
export { gatherAzureConfig } from "../config/azure-config.js";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Handles HTTP communication with the Revenium API.
|
|
5
5
|
* Extracted from tracking.ts for single responsibility.
|
|
6
6
|
*/
|
|
7
|
-
import { ReveniumPayload } from
|
|
7
|
+
import { ReveniumPayload } from "../../types";
|
|
8
8
|
/**
|
|
9
9
|
* Send payload to Revenium API
|
|
10
10
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/api-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/api-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAQ9C;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD5E"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Handles construction of Revenium API payloads.
|
|
5
5
|
* Extracted from tracking.ts for single responsibility.
|
|
6
6
|
*/
|
|
7
|
-
import { ReveniumPayload, ProviderInfo } from
|
|
8
|
-
import { OpenAIChatResponse, OpenAIEmbeddingResponse, OpenAIChatRequest, OpenAIEmbeddingRequest } from
|
|
7
|
+
import { ReveniumPayload, ProviderInfo } from "../../types";
|
|
8
|
+
import { OpenAIChatResponse, OpenAIEmbeddingResponse, OpenAIChatRequest, OpenAIEmbeddingRequest } from "../../types/function-parameters.js";
|
|
9
9
|
/**
|
|
10
10
|
* Build payload for Revenium API
|
|
11
11
|
*
|
|
@@ -20,5 +20,5 @@ import { OpenAIChatResponse, OpenAIEmbeddingResponse, OpenAIChatRequest, OpenAIE
|
|
|
20
20
|
* @param providerInfo - Provider information for Azure support
|
|
21
21
|
* @returns Constructed payload for Revenium API
|
|
22
22
|
*/
|
|
23
|
-
export declare function buildPayload(operationType:
|
|
23
|
+
export declare function buildPayload(operationType: "CHAT" | "EMBED", response: OpenAIChatResponse | OpenAIEmbeddingResponse, request: OpenAIChatRequest | OpenAIEmbeddingRequest, startTime: number, duration: number, providerInfo?: ProviderInfo): ReveniumPayload;
|
|
24
24
|
//# sourceMappingURL=payload-builder.d.ts.map
|
|
@@ -1 +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,
|
|
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,aAAa,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAS5C;;;;;;;;;;;;;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,CAiFjB"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* High-level tracking functions that combine payload building and API communication.
|
|
5
5
|
* Extracted from tracking.ts for better organization.
|
|
6
6
|
*/
|
|
7
|
-
import { UsageMetadata, ProviderInfo } from
|
|
8
|
-
import { OpenAIChatResponse, OpenAIEmbeddingResponse, OpenAIChatRequest, OpenAIEmbeddingRequest } from
|
|
7
|
+
import { UsageMetadata, ProviderInfo } from "../../types";
|
|
8
|
+
import { OpenAIChatResponse, OpenAIEmbeddingResponse, OpenAIChatRequest, OpenAIEmbeddingRequest } from "../../types/function-parameters.js";
|
|
9
9
|
/**
|
|
10
10
|
* Chat completions tracking - now a thin wrapper with Azure support
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1D,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,CAqBf;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,CAqBf;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,CAqDP;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"}
|