@revenium/openai 1.0.13 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +10 -15
- package/CHANGELOG.md +65 -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 +21 -0
- package/dist/cjs/core/middleware/index.js.map +1 -0
- package/dist/cjs/core/middleware/interfaces.js +454 -0
- package/dist/cjs/core/middleware/interfaces.js.map +1 -0
- package/dist/cjs/core/middleware/revenium-client.js +152 -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 +21 -14
- package/dist/cjs/core/tracking/api-client.js.map +1 -1
- package/dist/cjs/core/tracking/index.js +5 -1
- package/dist/cjs/core/tracking/index.js.map +1 -1
- package/dist/cjs/core/tracking/payload-builder.js +143 -25
- package/dist/cjs/core/tracking/payload-builder.js.map +1 -1
- package/dist/cjs/core/tracking/usage-tracker.js +111 -18
- package/dist/cjs/core/tracking/usage-tracker.js.map +1 -1
- package/dist/cjs/index.js +39 -202
- 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/cjs/utils/trace-fields.js +115 -0
- package/dist/cjs/utils/trace-fields.js.map +1 -0
- 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 +442 -0
- package/dist/esm/core/middleware/interfaces.js.map +1 -0
- package/dist/esm/core/middleware/revenium-client.js +115 -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 +20 -13
- package/dist/esm/core/tracking/api-client.js.map +1 -1
- package/dist/esm/core/tracking/index.js +4 -4
- package/dist/esm/core/tracking/index.js.map +1 -1
- package/dist/esm/core/tracking/payload-builder.js +142 -26
- package/dist/esm/core/tracking/payload-builder.js.map +1 -1
- package/dist/esm/core/tracking/usage-tracker.js +78 -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/esm/utils/trace-fields.js +100 -0
- package/dist/esm/utils/trace-fields.js.map +1 -0
- 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 +104 -0
- package/dist/types/core/middleware/interfaces.d.ts.map +1 -0
- package/dist/types/core/middleware/revenium-client.d.ts +64 -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/index.d.ts +4 -4
- package/dist/types/core/tracking/index.d.ts.map +1 -1
- package/dist/types/core/tracking/payload-builder.d.ts +5 -3
- package/dist/types/core/tracking/payload-builder.d.ts.map +1 -1
- package/dist/types/core/tracking/usage-tracker.d.ts +4 -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 +91 -23
- package/dist/types/types/function-parameters.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +53 -108
- 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/dist/types/utils/trace-fields.d.ts +11 -0
- package/dist/types/utils/trace-fields.d.ts.map +1 -0
- 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 +23 -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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azure-config.js","sourceRoot":"","sources":["../../../../src/core/config/azure-config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAeH,
|
|
1
|
+
{"version":3,"file":"azure-config.js","sourceRoot":"","sources":["../../../../src/core/config/azure-config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAeH,8CAqCC;AAhDD,6CAAyC;AAEzC,gBAAgB;AAChB,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAC;AAE3B;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,MAA4B;IAC5D,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,2CAA2C;QAC3C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,OAAO,GACX,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;gBAChC,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC5B,CAAC;QAED,qCAAqC;QACrC,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;YACtC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACtD,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;YACzC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;QAC3D,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;YACrC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACnD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;YAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ;YAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;YAC1B,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;YACjD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -20,15 +20,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
20
20
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
21
|
};
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.defaultLogger = exports.initializeConfig = exports.setLogger = exports.getLogger = exports.setConfig = exports.getConfig = exports.
|
|
23
|
+
exports.defaultLogger = exports.initializeConfig = exports.setLogger = exports.getLogger = exports.setConfig = exports.getConfig = exports.validateConfig = exports.hasAzureConfigInEnv = exports.loadAzureConfigFromEnv = exports.loadConfigFromEnv = void 0;
|
|
24
24
|
// Re-export all configuration functionality
|
|
25
25
|
var loader_js_1 = require("./loader.js");
|
|
26
26
|
Object.defineProperty(exports, "loadConfigFromEnv", { enumerable: true, get: function () { return loader_js_1.loadConfigFromEnv; } });
|
|
27
27
|
Object.defineProperty(exports, "loadAzureConfigFromEnv", { enumerable: true, get: function () { return loader_js_1.loadAzureConfigFromEnv; } });
|
|
28
28
|
Object.defineProperty(exports, "hasAzureConfigInEnv", { enumerable: true, get: function () { return loader_js_1.hasAzureConfigInEnv; } });
|
|
29
|
+
// Note: validateAzureConfig is exported from src/core/providers/index.ts
|
|
29
30
|
var validator_js_1 = require("./validator.js");
|
|
30
31
|
Object.defineProperty(exports, "validateConfig", { enumerable: true, get: function () { return validator_js_1.validateConfig; } });
|
|
31
|
-
Object.defineProperty(exports, "validateAzureConfig", { enumerable: true, get: function () { return validator_js_1.validateAzureConfig; } });
|
|
32
32
|
var manager_js_1 = require("./manager.js");
|
|
33
33
|
Object.defineProperty(exports, "getConfig", { enumerable: true, get: function () { return manager_js_1.getConfig; } });
|
|
34
34
|
Object.defineProperty(exports, "setConfig", { enumerable: true, get: function () { return manager_js_1.setConfig; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;AAEH,4CAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;AAEH,4CAA4C;AAC5C,yCAIqB;AAHnB,8GAAA,iBAAiB,OAAA;AACjB,mHAAA,sBAAsB,OAAA;AACtB,gHAAA,mBAAmB,OAAA;AAGrB,yEAAyE;AACzE,+CAAgD;AAAvC,8GAAA,cAAc,OAAA;AAEvB,2CAOsB;AANpB,uGAAA,SAAS,OAAA;AACT,uGAAA,SAAS,OAAA;AACT,uGAAA,SAAS,OAAA;AACT,uGAAA,SAAS,OAAA;AACT,8GAAA,gBAAgB,OAAA;AAChB,2GAAA,aAAa,OAAA;AAGf,sCAAsC;AACtC,oDAAkC"}
|
|
@@ -9,18 +9,44 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.loadConfigFromEnv = loadConfigFromEnv;
|
|
10
10
|
exports.loadAzureConfigFromEnv = loadAzureConfigFromEnv;
|
|
11
11
|
exports.hasAzureConfigInEnv = hasAzureConfigInEnv;
|
|
12
|
+
const dotenv_1 = require("dotenv");
|
|
13
|
+
const fs_1 = require("fs");
|
|
14
|
+
const path_1 = require("path");
|
|
15
|
+
const constants_js_1 = require("../../utils/constants.js");
|
|
12
16
|
/**
|
|
13
|
-
*
|
|
17
|
+
* Flag to track if .env files have been loaded
|
|
14
18
|
*/
|
|
15
|
-
|
|
19
|
+
let envFilesLoaded = false;
|
|
20
|
+
/**
|
|
21
|
+
* Load .env files automatically
|
|
22
|
+
* Tries to load .env.local and .env files from current and parent directories
|
|
23
|
+
*/
|
|
24
|
+
function loadEnvFiles() {
|
|
25
|
+
if (envFilesLoaded)
|
|
26
|
+
return;
|
|
27
|
+
const envFiles = [".env.local", ".env"];
|
|
28
|
+
const cwd = process.cwd();
|
|
29
|
+
const searchDirs = [cwd, (0, path_1.join)(cwd, "..")];
|
|
30
|
+
for (const dir of searchDirs) {
|
|
31
|
+
for (const envFile of envFiles) {
|
|
32
|
+
const envPath = (0, path_1.join)(dir, envFile);
|
|
33
|
+
if ((0, fs_1.existsSync)(envPath)) {
|
|
34
|
+
(0, dotenv_1.config)({ path: envPath });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
envFilesLoaded = true;
|
|
39
|
+
}
|
|
16
40
|
/**
|
|
17
41
|
* Load configuration from environment variables
|
|
42
|
+
* Automatically loads .env files first
|
|
18
43
|
*/
|
|
19
44
|
function loadConfigFromEnv() {
|
|
45
|
+
loadEnvFiles();
|
|
20
46
|
const reveniumApiKey = process.env.REVENIUM_METERING_API_KEY || process.env.REVENIUM_API_KEY;
|
|
21
47
|
const reveniumBaseUrl = process.env.REVENIUM_METERING_BASE_URL ||
|
|
22
48
|
process.env.REVENIUM_BASE_URL ||
|
|
23
|
-
DEFAULT_REVENIUM_BASE_URL;
|
|
49
|
+
constants_js_1.DEFAULT_REVENIUM_BASE_URL;
|
|
24
50
|
const openaiApiKey = process.env.OPENAI_API_KEY;
|
|
25
51
|
if (!reveniumApiKey)
|
|
26
52
|
return null;
|
|
@@ -32,32 +58,26 @@ function loadConfigFromEnv() {
|
|
|
32
58
|
}
|
|
33
59
|
/**
|
|
34
60
|
* Load Azure configuration from environment variables
|
|
61
|
+
* Automatically loads .env files first
|
|
35
62
|
*/
|
|
36
63
|
function loadAzureConfigFromEnv() {
|
|
64
|
+
loadEnvFiles();
|
|
37
65
|
const endpoint = process.env.AZURE_OPENAI_ENDPOINT;
|
|
38
|
-
const deployment = process.env.AZURE_OPENAI_DEPLOYMENT;
|
|
39
66
|
const apiVersion = process.env.AZURE_OPENAI_API_VERSION;
|
|
40
67
|
const apiKey = process.env.AZURE_OPENAI_API_KEY;
|
|
41
|
-
const tenantId = process.env.AZURE_OPENAI_TENANT_ID;
|
|
42
|
-
const resourceGroup = process.env.AZURE_OPENAI_RESOURCE_GROUP;
|
|
43
68
|
// Return null if no Azure config is present
|
|
44
|
-
if (!endpoint && !
|
|
69
|
+
if (!endpoint && !apiKey)
|
|
45
70
|
return null;
|
|
46
71
|
return {
|
|
47
72
|
endpoint,
|
|
48
|
-
|
|
49
|
-
apiVersion: apiVersion || '2024-12-01-preview', // Default from Python learnings
|
|
73
|
+
apiVersion,
|
|
50
74
|
apiKey,
|
|
51
|
-
tenantId,
|
|
52
|
-
resourceGroup,
|
|
53
75
|
};
|
|
54
76
|
}
|
|
55
77
|
/**
|
|
56
78
|
* Check if Azure configuration is available in environment
|
|
57
79
|
*/
|
|
58
80
|
function hasAzureConfigInEnv() {
|
|
59
|
-
return !!(process.env.AZURE_OPENAI_ENDPOINT ||
|
|
60
|
-
process.env.AZURE_OPENAI_DEPLOYMENT ||
|
|
61
|
-
process.env.AZURE_OPENAI_API_KEY);
|
|
81
|
+
return !!(process.env.AZURE_OPENAI_ENDPOINT || process.env.AZURE_OPENAI_API_KEY);
|
|
62
82
|
}
|
|
63
83
|
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../src/core/config/loader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../src/core/config/loader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAwCH,8CAiBC;AAMD,wDAcC;AAKD,kDAIC;AAnFD,mCAA8C;AAC9C,2BAAgC;AAChC,+BAA4B;AAC5B,2DAAqE;AAErE;;GAEG;AACH,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B;;;GAGG;AACH,SAAS,YAAY;IACnB,IAAI,cAAc;QAAE,OAAO;IAE3B,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAE1C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACnC,IAAI,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,IAAA,eAAU,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB;IAC/B,YAAY,EAAE,CAAC;IAEf,MAAM,cAAc,GAClB,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACxE,MAAM,eAAe,GACnB,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACtC,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC7B,wCAAyB,CAAC;IAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAEhD,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO;QACL,cAAc;QACd,eAAe;QACf,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,sBAAsB;IACpC,YAAY,EAAE,CAAC;IAEf,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAEhD,4CAA4C;IAC5C,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO;QACL,QAAQ;QACR,UAAU;QACV,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO,CAAC,CAAC,CACP,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CACtE,CAAC;AACJ,CAAC"}
|
|
@@ -20,7 +20,7 @@ const validator_js_1 = require("./validator.js");
|
|
|
20
20
|
exports.defaultLogger = {
|
|
21
21
|
debug: (message, ...args) => {
|
|
22
22
|
// Check both config.debug and environment variable
|
|
23
|
-
if (globalConfig?.debug || process.env.REVENIUM_DEBUG ===
|
|
23
|
+
if (globalConfig?.debug || process.env.REVENIUM_DEBUG === "true") {
|
|
24
24
|
console.debug(`[Revenium Debug] ${message}`, ...args);
|
|
25
25
|
}
|
|
26
26
|
},
|
|
@@ -51,7 +51,7 @@ function getConfig() {
|
|
|
51
51
|
function setConfig(config) {
|
|
52
52
|
(0, validator_js_1.validateConfig)(config);
|
|
53
53
|
globalConfig = config;
|
|
54
|
-
globalLogger.debug(
|
|
54
|
+
globalLogger.debug("Revenium configuration updated", {
|
|
55
55
|
baseUrl: config.reveniumBaseUrl,
|
|
56
56
|
hasApiKey: !!config.reveniumApiKey,
|
|
57
57
|
hasOpenAIKey: !!config.openaiApiKey,
|
|
@@ -76,16 +76,22 @@ function initializeConfig() {
|
|
|
76
76
|
const envConfig = (0, loader_js_1.loadConfigFromEnv)();
|
|
77
77
|
if (envConfig) {
|
|
78
78
|
try {
|
|
79
|
+
// Load Azure configuration if available
|
|
80
|
+
const azureConfig = (0, loader_js_1.loadAzureConfigFromEnv)();
|
|
81
|
+
if (azureConfig) {
|
|
82
|
+
envConfig.azure = azureConfig;
|
|
83
|
+
globalLogger.debug("Azure OpenAI configuration loaded from environment");
|
|
84
|
+
}
|
|
79
85
|
setConfig(envConfig);
|
|
80
|
-
globalLogger.debug(
|
|
86
|
+
globalLogger.debug("Revenium middleware initialized from environment variables");
|
|
81
87
|
// Log Azure config availability for debugging
|
|
82
88
|
if ((0, loader_js_1.hasAzureConfigInEnv)()) {
|
|
83
|
-
globalLogger.debug(
|
|
89
|
+
globalLogger.debug("Azure OpenAI configuration detected in environment");
|
|
84
90
|
}
|
|
85
91
|
return true;
|
|
86
92
|
}
|
|
87
93
|
catch (error) {
|
|
88
|
-
globalLogger.error(
|
|
94
|
+
globalLogger.error("Failed to initialize Revenium configuration:", error);
|
|
89
95
|
return false;
|
|
90
96
|
}
|
|
91
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/core/config/manager.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/core/config/manager.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAwCH,8BAEC;AAKD,8BAQC;AAKD,8BAEC;AAKD,8BAEC;AAKD,4CAgCC;AAvGD,2CAIqB;AACrB,iDAAgD;AAEhD;;GAEG;AACU,QAAA,aAAa,GAAW;IACnC,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;QAC7C,mDAAmD;QACnD,IAAI,YAAY,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;QAC5C,OAAO,CAAC,IAAI,CAAC,cAAc,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;QAC5C,OAAO,CAAC,IAAI,CAAC,sBAAsB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;QAC7C,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACxD,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,IAAI,YAAY,GAA0B,IAAI,CAAC;AAC/C,IAAI,YAAY,GAAW,qBAAa,CAAC;AAEzC;;GAEG;AACH,SAAgB,SAAS;IACvB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,MAAsB;IAC9C,IAAA,6BAAc,EAAC,MAAM,CAAC,CAAC;IACvB,YAAY,GAAG,MAAM,CAAC;IACtB,YAAY,CAAC,KAAK,CAAC,gCAAgC,EAAE;QACnD,OAAO,EAAE,MAAM,CAAC,eAAe;QAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc;QAClC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;KACpC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS;IACvB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,MAAc;IACtC,YAAY,GAAG,MAAM,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,MAAM,SAAS,GAAG,IAAA,6BAAiB,GAAE,CAAC;IACtC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,wCAAwC;YACxC,MAAM,WAAW,GAAG,IAAA,kCAAsB,GAAE,CAAC;YAC7C,IAAI,WAAW,EAAE,CAAC;gBACf,SAAiB,CAAC,KAAK,GAAG,WAAW,CAAC;gBACvC,YAAY,CAAC,KAAK,CAChB,oDAAoD,CACrD,CAAC;YACJ,CAAC;YAED,SAAS,CAAC,SAAS,CAAC,CAAC;YACrB,YAAY,CAAC,KAAK,CAChB,4DAA4D,CAC7D,CAAC;YAEF,8CAA8C;YAC9C,IAAI,IAAA,+BAAmB,GAAE,EAAE,CAAC;gBAC1B,YAAY,CAAC,KAAK,CAChB,oDAAoD,CACrD,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;YAC1E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -7,19 +7,18 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.validateConfig = validateConfig;
|
|
10
|
-
exports.validateAzureConfig = validateAzureConfig;
|
|
11
10
|
/**
|
|
12
11
|
* Validate Revenium configuration
|
|
13
12
|
*/
|
|
14
13
|
function validateConfig(config) {
|
|
15
14
|
if (!config.reveniumApiKey) {
|
|
16
|
-
throw new Error(
|
|
15
|
+
throw new Error("Revenium API key is required. Set REVENIUM_METERING_API_KEY environment variable or provide reveniumApiKey in config.");
|
|
17
16
|
}
|
|
18
|
-
if (!config.reveniumApiKey.startsWith(
|
|
17
|
+
if (!config.reveniumApiKey.startsWith("hak_")) {
|
|
19
18
|
throw new Error('Invalid Revenium API key format. Revenium API keys should start with "hak_"');
|
|
20
19
|
}
|
|
21
20
|
if (!config.reveniumBaseUrl) {
|
|
22
|
-
throw new Error(
|
|
21
|
+
throw new Error("Revenium base URL is missing. This should not happen as a default URL should be provided.");
|
|
23
22
|
}
|
|
24
23
|
// Validate URL format
|
|
25
24
|
try {
|
|
@@ -29,45 +28,4 @@ function validateConfig(config) {
|
|
|
29
28
|
throw new Error(`Invalid Revenium base URL format: ${config.reveniumBaseUrl}`);
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Validate Azure configuration completeness
|
|
34
|
-
*
|
|
35
|
-
* @param config - Azure configuration to validate
|
|
36
|
-
* @returns validation result with missing fields
|
|
37
|
-
*/
|
|
38
|
-
function validateAzureConfig(config) {
|
|
39
|
-
const missingFields = [];
|
|
40
|
-
const warnings = [];
|
|
41
|
-
// Required fields for basic Azure OpenAI operation
|
|
42
|
-
if (!config.endpoint) {
|
|
43
|
-
missingFields.push('endpoint');
|
|
44
|
-
}
|
|
45
|
-
if (!config.apiKey) {
|
|
46
|
-
missingFields.push('apiKey');
|
|
47
|
-
}
|
|
48
|
-
// Optional but recommended fields
|
|
49
|
-
if (!config.deployment) {
|
|
50
|
-
warnings.push('deployment name not specified - may need to be included in model parameter');
|
|
51
|
-
}
|
|
52
|
-
if (!config.apiVersion) {
|
|
53
|
-
warnings.push('API version not specified - using default 2024-12-01-preview');
|
|
54
|
-
}
|
|
55
|
-
// Validate endpoint format
|
|
56
|
-
if (config.endpoint) {
|
|
57
|
-
try {
|
|
58
|
-
new URL(config.endpoint);
|
|
59
|
-
if (!config.endpoint.toLowerCase().includes('azure')) {
|
|
60
|
-
warnings.push('endpoint does not contain "azure" - please verify this is an Azure OpenAI endpoint');
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
missingFields.push('valid endpoint URL');
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return {
|
|
68
|
-
isValid: missingFields.length === 0,
|
|
69
|
-
missingFields,
|
|
70
|
-
warnings,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
31
|
//# sourceMappingURL=validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../src/core/config/validator.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAOH,
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../src/core/config/validator.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAOH,wCA2BC;AA9BD;;GAEG;AACH,SAAgB,cAAc,CAAC,MAAsB;IACnD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,uHAAuH,CACxH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,qCAAqC,MAAM,CAAC,eAAe,EAAE,CAC9D,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Middleware Module
|
|
4
|
+
*
|
|
5
|
+
* Exports all middleware components.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.AudioSpeechInterface = exports.AudioTranslationsInterface = exports.AudioTranscriptionsInterface = exports.ImagesInterface = exports.StreamingWrapper = exports.ResponsesInterface = exports.EmbeddingsInterface = exports.CompletionsInterface = exports.ChatInterface = exports.ReveniumOpenAI = void 0;
|
|
9
|
+
var revenium_client_js_1 = require("./revenium-client.js");
|
|
10
|
+
Object.defineProperty(exports, "ReveniumOpenAI", { enumerable: true, get: function () { return revenium_client_js_1.ReveniumOpenAI; } });
|
|
11
|
+
var interfaces_js_1 = require("./interfaces.js");
|
|
12
|
+
Object.defineProperty(exports, "ChatInterface", { enumerable: true, get: function () { return interfaces_js_1.ChatInterface; } });
|
|
13
|
+
Object.defineProperty(exports, "CompletionsInterface", { enumerable: true, get: function () { return interfaces_js_1.CompletionsInterface; } });
|
|
14
|
+
Object.defineProperty(exports, "EmbeddingsInterface", { enumerable: true, get: function () { return interfaces_js_1.EmbeddingsInterface; } });
|
|
15
|
+
Object.defineProperty(exports, "ResponsesInterface", { enumerable: true, get: function () { return interfaces_js_1.ResponsesInterface; } });
|
|
16
|
+
Object.defineProperty(exports, "StreamingWrapper", { enumerable: true, get: function () { return interfaces_js_1.StreamingWrapper; } });
|
|
17
|
+
Object.defineProperty(exports, "ImagesInterface", { enumerable: true, get: function () { return interfaces_js_1.ImagesInterface; } });
|
|
18
|
+
Object.defineProperty(exports, "AudioTranscriptionsInterface", { enumerable: true, get: function () { return interfaces_js_1.AudioTranscriptionsInterface; } });
|
|
19
|
+
Object.defineProperty(exports, "AudioTranslationsInterface", { enumerable: true, get: function () { return interfaces_js_1.AudioTranslationsInterface; } });
|
|
20
|
+
Object.defineProperty(exports, "AudioSpeechInterface", { enumerable: true, get: function () { return interfaces_js_1.AudioSpeechInterface; } });
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/middleware/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AACvB,iDAUyB;AATvB,8GAAA,aAAa,OAAA;AACb,qHAAA,oBAAoB,OAAA;AACpB,oHAAA,mBAAmB,OAAA;AACnB,mHAAA,kBAAkB,OAAA;AAClB,iHAAA,gBAAgB,OAAA;AAChB,gHAAA,eAAe,OAAA;AACf,6HAAA,4BAA4B,OAAA;AAC5B,2HAAA,0BAA0B,OAAA;AAC1B,qHAAA,oBAAoB,OAAA"}
|