@revenium/perplexity 2.0.5 → 2.0.7
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/CHANGELOG.md +113 -97
- package/LICENSE +21 -21
- package/README.md +376 -290
- package/SECURITY.md +34 -34
- package/dist/cjs/core/client/manager.js +6 -3
- package/dist/cjs/core/client/manager.js.map +1 -1
- package/dist/cjs/core/config/index.js +0 -1
- package/dist/cjs/core/config/index.js.map +1 -1
- package/dist/cjs/core/config/manager.js +0 -1
- package/dist/cjs/core/config/manager.js.map +1 -1
- package/dist/cjs/core/config/validator.js +18 -16
- package/dist/cjs/core/config/validator.js.map +1 -1
- package/dist/cjs/core/middleware/interfaces.js +4 -4
- package/dist/cjs/core/middleware/interfaces.js.map +1 -1
- package/dist/cjs/core/middleware/streaming-wrapper.js +4 -4
- package/dist/cjs/core/middleware/streaming-wrapper.js.map +1 -1
- package/dist/cjs/core/providers/detector.js +0 -2
- package/dist/cjs/core/providers/detector.js.map +1 -1
- package/dist/cjs/core/providers/index.js +0 -1
- package/dist/cjs/core/providers/index.js.map +1 -1
- package/dist/cjs/core/tracking/api-client.js +3 -3
- package/dist/cjs/core/tracking/api-client.js.map +1 -1
- package/dist/cjs/index.js +2 -40
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/stop-reason-mapper.js +18 -20
- package/dist/cjs/utils/stop-reason-mapper.js.map +1 -1
- package/dist/esm/core/client/manager.js +6 -3
- package/dist/esm/core/client/manager.js.map +1 -1
- package/dist/esm/core/config/index.js +3 -4
- package/dist/esm/core/config/index.js.map +1 -1
- package/dist/esm/core/config/manager.js +0 -1
- package/dist/esm/core/config/manager.js.map +1 -1
- package/dist/esm/core/config/validator.js +18 -16
- package/dist/esm/core/config/validator.js.map +1 -1
- package/dist/esm/core/middleware/interfaces.js +1 -1
- package/dist/esm/core/middleware/interfaces.js.map +1 -1
- package/dist/esm/core/middleware/streaming-wrapper.js +2 -2
- package/dist/esm/core/middleware/streaming-wrapper.js.map +1 -1
- package/dist/esm/core/providers/detector.js +0 -2
- package/dist/esm/core/providers/detector.js.map +1 -1
- package/dist/esm/core/providers/index.js +0 -1
- package/dist/esm/core/providers/index.js.map +1 -1
- package/dist/esm/core/tracking/api-client.js +1 -1
- package/dist/esm/core/tracking/api-client.js.map +1 -1
- package/dist/esm/index.js +1 -38
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/stop-reason-mapper.js +18 -20
- package/dist/esm/utils/stop-reason-mapper.js.map +1 -1
- package/dist/types/core/client/manager.d.ts.map +1 -1
- package/dist/types/core/config/index.d.ts +3 -4
- package/dist/types/core/config/index.d.ts.map +1 -1
- package/dist/types/core/config/manager.d.ts +0 -1
- package/dist/types/core/config/manager.d.ts.map +1 -1
- package/dist/types/core/config/validator.d.ts.map +1 -1
- package/dist/types/core/providers/detector.d.ts +0 -2
- package/dist/types/core/providers/detector.d.ts.map +1 -1
- package/dist/types/core/providers/index.d.ts +0 -1
- package/dist/types/core/providers/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -37
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/utils/stop-reason-mapper.d.ts +1 -3
- package/dist/types/utils/stop-reason-mapper.d.ts.map +1 -1
- package/examples/README.md +230 -226
- package/examples/advanced.ts +123 -123
- package/examples/basic.ts +45 -45
- package/examples/getting_started.ts +41 -41
- package/examples/metadata.ts +68 -68
- package/examples/stream.ts +53 -53
- package/package.json +72 -71
- package/dist/cjs/constants/models.js +0 -38
- package/dist/cjs/constants/models.js.map +0 -1
- package/dist/esm/constants/models.js +0 -35
- package/dist/esm/constants/models.js.map +0 -1
- package/dist/types/constants/models.d.ts +0 -39
- package/dist/types/constants/models.d.ts.map +0 -1
package/SECURITY.md
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
# Security Policy
|
|
2
|
-
|
|
3
|
-
## Reporting a Vulnerability
|
|
4
|
-
|
|
5
|
-
If you discover a security vulnerability in this package, please report it to us.
|
|
6
|
-
|
|
7
|
-
**DO NOT** create a public GitHub issue for security vulnerabilities.
|
|
8
|
-
|
|
9
|
-
### How to Report
|
|
10
|
-
|
|
11
|
-
Email: support@revenium.io
|
|
12
|
-
|
|
13
|
-
Please include:
|
|
14
|
-
- Package name and version
|
|
15
|
-
- Description of the vulnerability
|
|
16
|
-
- Steps to reproduce (if applicable)
|
|
17
|
-
- Potential impact
|
|
18
|
-
- Suggested fix (if available)
|
|
19
|
-
|
|
20
|
-
We will review and respond to security reports in a timely manner.
|
|
21
|
-
|
|
22
|
-
## Security Best Practices
|
|
23
|
-
|
|
24
|
-
When using this middleware:
|
|
25
|
-
|
|
26
|
-
1. **API Keys**: Never commit API keys to version control
|
|
27
|
-
2. **Environment Variables**: Use environment variables for sensitive configuration
|
|
28
|
-
3. **PII Handling**: Ensure no PII is sent to Revenium unless explicitly configured for billing purposes
|
|
29
|
-
4. **Network Security**: Always use HTTPS connections
|
|
30
|
-
5. **Updates**: Keep the package updated to the latest version
|
|
31
|
-
|
|
32
|
-
## Additional Resources
|
|
33
|
-
|
|
34
|
-
- [Revenium Documentation](https://docs.revenium.io)
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Reporting a Vulnerability
|
|
4
|
+
|
|
5
|
+
If you discover a security vulnerability in this package, please report it to us.
|
|
6
|
+
|
|
7
|
+
**DO NOT** create a public GitHub issue for security vulnerabilities.
|
|
8
|
+
|
|
9
|
+
### How to Report
|
|
10
|
+
|
|
11
|
+
Email: support@revenium.io
|
|
12
|
+
|
|
13
|
+
Please include:
|
|
14
|
+
- Package name and version
|
|
15
|
+
- Description of the vulnerability
|
|
16
|
+
- Steps to reproduce (if applicable)
|
|
17
|
+
- Potential impact
|
|
18
|
+
- Suggested fix (if available)
|
|
19
|
+
|
|
20
|
+
We will review and respond to security reports in a timely manner.
|
|
21
|
+
|
|
22
|
+
## Security Best Practices
|
|
23
|
+
|
|
24
|
+
When using this middleware:
|
|
25
|
+
|
|
26
|
+
1. **API Keys**: Never commit API keys to version control
|
|
27
|
+
2. **Environment Variables**: Use environment variables for sensitive configuration
|
|
28
|
+
3. **PII Handling**: Ensure no PII is sent to Revenium unless explicitly configured for billing purposes
|
|
29
|
+
4. **Network Security**: Always use HTTPS connections
|
|
30
|
+
5. **Updates**: Keep the package updated to the latest version
|
|
31
|
+
|
|
32
|
+
## Additional Resources
|
|
33
|
+
|
|
34
|
+
- [Revenium Documentation](https://docs.revenium.io)
|
|
@@ -14,7 +14,6 @@ exports.IsInitialized = IsInitialized;
|
|
|
14
14
|
exports.Reset = Reset;
|
|
15
15
|
const revenium_client_js_1 = require("../middleware/revenium-client.js");
|
|
16
16
|
const manager_js_1 = require("../config/manager.js");
|
|
17
|
-
const validator_js_1 = require("../config/validator.js");
|
|
18
17
|
/**
|
|
19
18
|
* Singleton instance of ReveniumPerplexity client
|
|
20
19
|
*/
|
|
@@ -43,8 +42,12 @@ function Initialize() {
|
|
|
43
42
|
*/
|
|
44
43
|
function Configure(config) {
|
|
45
44
|
logger.debug("Configuring Revenium Perplexity client");
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
if (!config.reveniumApiKey) {
|
|
46
|
+
throw new Error("reveniumApiKey is required in configuration");
|
|
47
|
+
}
|
|
48
|
+
if (!config.perplexityApiKey) {
|
|
49
|
+
throw new Error("perplexityApiKey is required in configuration");
|
|
50
|
+
}
|
|
48
51
|
const fullConfig = {
|
|
49
52
|
...config,
|
|
50
53
|
reveniumBaseUrl: config.reveniumBaseUrl || "https://api.revenium.ai",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/core/client/manager.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/core/client/manager.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAqBH,gCAOC;AASD,8BAsBC;AASD,8BAOC;AAMD,sCAEC;AAKD,sBAEC;AAxFD,yEAAsE;AAEtE,qDAAmE;AAEnE;;GAEG;AACH,IAAI,cAAc,GAA8B,IAAI,CAAC;AACrD,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAC;AAG3B;;;;;;;GAOG;AACH,SAAgB,UAAU;IACxB,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,IAAA,6BAAgB,GAAE,CAAC;IAClC,SAAS,CAAC,MAAM,CAAC,CAAC;IAElB,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,MAAsB;IAC9C,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,UAAU,GAAmB;QACjC,GAAG,MAAM;QACT,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,yBAAyB;QACpE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,2BAA2B;QAC1E,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;KAC7B,CAAC;IAEF,cAAc,GAAG,IAAI,uCAAkB,CAAC,UAAU,CAAC,CAAC;IAEpD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,SAAS;IACvB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa;IAC3B,OAAO,cAAc,KAAK,IAAI,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,KAAK;IACnB,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* Configuration module - Main exports
|
|
4
4
|
*
|
|
5
5
|
* This module provides a clean interface for configuration management.
|
|
6
|
-
* Aligned with OpenAI modular implementation.
|
|
7
6
|
*/
|
|
8
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
8
|
exports.defaultLogger = exports.initializeConfig = exports.getLogger = exports.setConfig = exports.getConfig = exports.validateConfig = exports.loadConfigFromEnv = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,4CAA4C;AAC5C,yCAAgD;AAAvC,8GAAA,iBAAiB,OAAA;AAE1B,+CAAgD;AAAvC,8GAAA,cAAc,OAAA;AAEvB,2CAMsB;AALpB,uGAAA,SAAS,OAAA;AACT,uGAAA,SAAS,OAAA;AACT,uGAAA,SAAS,OAAA;AACT,8GAAA,gBAAgB,OAAA;AAChB,2GAAA,aAAa,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/core/config/manager.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/core/config/manager.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAoCH,8BAEC;AAKD,8BAQC;AAKD,8BAEC;AAKD,4CAkBC;AA9ED,2CAAgD;AAChD,iDAAgD;AAEhD;;GAEG;AACH,IAAI,YAAY,GAA0B,IAAI,CAAC;AAE/C;;GAEG;AACU,QAAA,aAAa,GAAW;IACnC,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;QAC7C,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,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,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc;QACvC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB;KAC5C,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS;IACvB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,MAAM,SAAS,GAAG,IAAA,6BAAiB,GAAE,CAAC;IAEtC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,YAAY,CAAC,KAAK,CAChB,iHAAiH,CAClH,CAAC;QACF,MAAM,IAAI,KAAK,CACb,iHAAiH,CAClH,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,SAAS,CAAC,CAAC;IACrB,YAAY,CAAC,KAAK,CAChB,4DAA4D,CAC7D,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -17,14 +17,15 @@ function validateConfig(config) {
|
|
|
17
17
|
if (!config.reveniumApiKey.startsWith("hak_")) {
|
|
18
18
|
throw new Error('Invalid Revenium API key format. Revenium API keys should start with "hak_"');
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
if (!config.reveniumBaseUrl) {
|
|
21
|
+
throw new Error("Revenium base URL is missing. This should not happen as a default URL should be provided.");
|
|
22
|
+
}
|
|
23
|
+
// Validate Revenium URL format
|
|
24
|
+
try {
|
|
25
|
+
new URL(config.reveniumBaseUrl);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
throw new Error(`Invalid Revenium base URL format: ${config.reveniumBaseUrl}`);
|
|
28
29
|
}
|
|
29
30
|
if (!config.perplexityApiKey) {
|
|
30
31
|
throw new Error("Perplexity API key is required. Set PERPLEXITY_API_KEY environment variable or provide perplexityApiKey in config.");
|
|
@@ -32,14 +33,15 @@ function validateConfig(config) {
|
|
|
32
33
|
if (!config.perplexityApiKey.startsWith("pplx-")) {
|
|
33
34
|
throw new Error('Invalid Perplexity API key format. Perplexity API keys should start with "pplx-"');
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
if (!config.perplexityBaseUrl) {
|
|
37
|
+
throw new Error("Perplexity base URL is missing. This should not happen as a default URL should be provided.");
|
|
38
|
+
}
|
|
39
|
+
// Validate Perplexity URL format
|
|
40
|
+
try {
|
|
41
|
+
new URL(config.perplexityBaseUrl);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
throw new Error(`Invalid Perplexity base URL format: ${config.perplexityBaseUrl}`);
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
47
|
//# 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,wCAsDC;AAzDD;;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,+BAA+B;IAC/B,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;IAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,oHAAoH,CACrH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;IACJ,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,uCAAuC,MAAM,CAAC,iBAAiB,EAAE,CAClE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.CompletionsInterface = exports.ChatInterface = void 0;
|
|
7
|
-
const
|
|
7
|
+
const config_1 = require("../config");
|
|
8
8
|
const transaction_id_js_1 = require("../../utils/transaction-id.js");
|
|
9
|
-
const
|
|
9
|
+
const index_js_1 = require("../tracking/index.js");
|
|
10
10
|
const streaming_wrapper_js_1 = require("./streaming-wrapper.js");
|
|
11
|
-
const logger = (0,
|
|
11
|
+
const logger = (0, config_1.getLogger)();
|
|
12
12
|
/**
|
|
13
13
|
* Chat interface - provides access to chat completions
|
|
14
14
|
*/
|
|
@@ -48,7 +48,7 @@ class CompletionsInterface {
|
|
|
48
48
|
if ("usage" in response && response.usage) {
|
|
49
49
|
// Extract cost if available (Perplexity-specific)
|
|
50
50
|
const usage = response.usage;
|
|
51
|
-
(0,
|
|
51
|
+
(0, index_js_1.trackUsageAsync)({
|
|
52
52
|
requestId: ("id" in response ? response.id : null) || transactionId,
|
|
53
53
|
model: params.model,
|
|
54
54
|
promptTokens: response.usage.prompt_tokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/core/middleware/interfaces.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH,
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/core/middleware/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.StreamingWrapper = void 0;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const logger = (0,
|
|
7
|
+
const config_1 = require("../config");
|
|
8
|
+
const tracking_1 = require("../tracking");
|
|
9
|
+
const logger = (0, config_1.getLogger)();
|
|
10
10
|
/**
|
|
11
11
|
* Wrapper for streaming responses that tracks usage
|
|
12
12
|
*/
|
|
@@ -55,7 +55,7 @@ class StreamingWrapper {
|
|
|
55
55
|
const endTime = Date.now();
|
|
56
56
|
const duration = endTime - this.startTime.getTime();
|
|
57
57
|
// fire-and-forget
|
|
58
|
-
(0,
|
|
58
|
+
(0, tracking_1.trackUsageAsync)({
|
|
59
59
|
requestId: this.transactionId,
|
|
60
60
|
model: this.model,
|
|
61
61
|
promptTokens: inputTokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streaming-wrapper.js","sourceRoot":"","sources":["../../../../src/core/middleware/streaming-wrapper.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,
|
|
1
|
+
{"version":3,"file":"streaming-wrapper.js","sourceRoot":"","sources":["../../../../src/core/middleware/streaming-wrapper.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,sCAAsC;AACtC,0CAA8C;AAE9C,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;AAE3B;;GAEG;AACH,MAAa,gBAAgB;IAQ3B,YACE,MAA0B,EAC1B,KAAa,EACb,SAAe,EACf,aAAqB,EACrB,QAAwB,EACxB,MAAY;QAEZ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,IAAI,SAAS,GAAQ,IAAI,CAAC;QAC1B,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,QAAQ,GAAQ,SAAS,CAAC;QAC9B,IAAI,cAAc,GAAgB,IAAI,CAAC;QACvC,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACtC,8BAA8B;gBAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;oBAC5B,gBAAgB;wBACd,cAAc,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACxD,CAAC;gBAED,SAAS,GAAG,KAAK,CAAC;gBAElB,oCAAoC;gBACpC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;oBAC7C,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC;oBAClD,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;oBAC5C,uDAAuD;oBACvD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBACrB,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBAED,MAAM,KAAK,CAAC;YACd,CAAC;YAED,6DAA6D;YAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAEpD,kBAAkB;YAClB,IAAA,0BAAe,EAAC;gBACd,SAAS,EAAE,IAAI,CAAC,aAAa;gBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY,EAAE,WAAW;gBACzB,gBAAgB,EAAE,YAAY;gBAC9B,WAAW;gBACX,QAAQ;gBACR,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,IAAI,IAAI;gBAC5D,aAAa,EAAE,IAAI,CAAC,QAAQ;gBAC5B,UAAU,EAAE,IAAI;gBAChB,gBAAgB;gBAChB,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,YAAY;YACZ,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACtE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AArFD,4CAqFC"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* Provider Detection Module
|
|
4
4
|
*
|
|
5
5
|
* Handles provider metadata for Perplexity AI.
|
|
6
|
-
* Simplified compared to OpenAI modular since Perplexity doesn't have Azure variant.
|
|
7
6
|
*/
|
|
8
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
8
|
exports.detectProvider = detectProvider;
|
|
@@ -13,7 +12,6 @@ const index_js_1 = require("../config/index.js");
|
|
|
13
12
|
const logger = (0, index_js_1.getLogger)();
|
|
14
13
|
/**
|
|
15
14
|
* Get provider info for Perplexity
|
|
16
|
-
* Always returns Perplexity since there's no Azure variant
|
|
17
15
|
*
|
|
18
16
|
* @returns ProviderInfo with Perplexity provider
|
|
19
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../../../src/core/providers/detector.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../../../src/core/providers/detector.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAaH,wCAMC;AAOD,kDAQC;AA/BD,iDAA+C;AAE/C,gBAAgB;AAChB,MAAM,MAAM,GAAG,IAAA,oBAAS,GAAE,CAAC;AAE3B;;;;GAIG;AACH,SAAgB,cAAc;IAC5B,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC7C,OAAO;QACL,QAAQ,EAAE,YAAY;QACtB,WAAW,EAAE,YAAY;KAC1B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB;IAIjC,OAAO;QACL,QAAQ,EAAE,YAAY;QACtB,WAAW,EAAE,YAAY;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* Providers module - Main exports
|
|
4
4
|
*
|
|
5
5
|
* This module provides a clean interface for provider detection and management.
|
|
6
|
-
* Simplified for Perplexity (no Azure variant).
|
|
7
6
|
*/
|
|
8
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
8
|
exports.getProviderMetadata = exports.detectProvider = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/providers/index.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/providers/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,uCAAuC;AACvC,6CAAoE;AAA3D,6GAAA,cAAc,OAAA;AAAE,kHAAA,mBAAmB,OAAA"}
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.sendToRevenium = sendToRevenium;
|
|
10
|
-
const
|
|
10
|
+
const config_1 = require("../config");
|
|
11
11
|
const url_builder_js_1 = require("../../utils/url-builder.js");
|
|
12
12
|
// Global logger
|
|
13
|
-
const logger = (0,
|
|
13
|
+
const logger = (0, config_1.getLogger)();
|
|
14
14
|
/**
|
|
15
15
|
* Send payload to Revenium API
|
|
16
16
|
*
|
|
@@ -20,7 +20,7 @@ const logger = (0, index_js_1.getLogger)();
|
|
|
20
20
|
* @param payload - The payload to send to Revenium
|
|
21
21
|
*/
|
|
22
22
|
async function sendToRevenium(payload) {
|
|
23
|
-
const config = (0,
|
|
23
|
+
const config = (0, config_1.getConfig)();
|
|
24
24
|
if (!config)
|
|
25
25
|
return logger.warn("Revenium configuration not found, skipping tracking");
|
|
26
26
|
const url = (0, url_builder_js_1.buildReveniumUrl)(config.reveniumBaseUrl || "https://api.revenium.ai", "/ai/completions");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../../src/core/tracking/api-client.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAiBH,wCAuDC;AArED,
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../../src/core/tracking/api-client.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAiBH,wCAuDC;AArED,sCAAiD;AACjD,+DAA8D;AAE9D,gBAAgB;AAChB,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;AAE3B;;;;;;;GAOG;AACI,KAAK,UAAU,cAAc,CAAC,OAAwB;IAC3D,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,IAAI,CAAC,MAAM;QACT,OAAO,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAE5E,MAAM,GAAG,GAAG,IAAA,iCAAgB,EAC1B,MAAM,CAAC,eAAe,IAAI,yBAAyB,EACnD,iBAAiB,CAClB,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;QAC3C,GAAG;QACH,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,eAAe;KACrC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;YAC1B,WAAW,EAAE,MAAM,CAAC,cAAc;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE;QACpC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE;YAC1C,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,IAAI,EAAE,YAAY;YAClB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,YAAY,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;QAC3C,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,QAAQ,EAAE,YAAY;KACvB,CAAC,CAAC;AACL,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,41 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Revenium Perplexity Middleware for TypeScript
|
|
4
|
-
*
|
|
5
|
-
* This middleware tracks Perplexity AI usage and sends metrics to Revenium.
|
|
6
|
-
* Uses Go-aligned API pattern with Initialize/GetClient.
|
|
7
|
-
*
|
|
8
|
-
* Environment Variables:
|
|
9
|
-
* REVENIUM_METERING_API_KEY=hak_your_api_key
|
|
10
|
-
* REVENIUM_METERING_BASE_URL=https://api.revenium.ai (optional)
|
|
11
|
-
* PERPLEXITY_API_KEY=pplx_your_perplexity_key
|
|
12
|
-
*
|
|
13
|
-
* Usage:
|
|
14
|
-
* import { Initialize, GetClient } from "@revenium/perplexity";
|
|
15
|
-
*
|
|
16
|
-
* // Initialize from environment
|
|
17
|
-
* Initialize();
|
|
18
|
-
*
|
|
19
|
-
* // Get client
|
|
20
|
-
* const client = GetClient();
|
|
21
|
-
*
|
|
22
|
-
* // Use client
|
|
23
|
-
* const response = await client.chat().completions().create({
|
|
24
|
-
* model: "sonar",
|
|
25
|
-
* messages: [{ role: "user", content: "Hello!" }]
|
|
26
|
-
* }, {
|
|
27
|
-
* organizationId: "my-org",
|
|
28
|
-
* productId: "my-app",
|
|
29
|
-
* subscriber: {
|
|
30
|
-
* id: "user-123",
|
|
31
|
-
* email: "user@my-org.com"
|
|
32
|
-
* }
|
|
33
|
-
* });
|
|
34
|
-
*/
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
3
|
+
exports.getProviderMetadata = exports.detectProvider = exports.trackUsageAsync = exports.StreamingWrapper = exports.CompletionsInterface = exports.ChatInterface = exports.ReveniumPerplexity = exports.Configure = exports.Reset = exports.IsInitialized = exports.GetClient = exports.Initialize = void 0;
|
|
37
4
|
/**
|
|
38
|
-
* Main API
|
|
5
|
+
* Main API
|
|
39
6
|
*/
|
|
40
7
|
var index_js_1 = require("./core/client/index.js");
|
|
41
8
|
Object.defineProperty(exports, "Initialize", { enumerable: true, get: function () { return index_js_1.Initialize; } });
|
|
@@ -62,9 +29,4 @@ Object.defineProperty(exports, "trackUsageAsync", { enumerable: true, get: funct
|
|
|
62
29
|
var index_js_4 = require("./core/providers/index.js");
|
|
63
30
|
Object.defineProperty(exports, "detectProvider", { enumerable: true, get: function () { return index_js_4.detectProvider; } });
|
|
64
31
|
Object.defineProperty(exports, "getProviderMetadata", { enumerable: true, get: function () { return index_js_4.getProviderMetadata; } });
|
|
65
|
-
/**
|
|
66
|
-
* Model constants
|
|
67
|
-
*/
|
|
68
|
-
var models_js_1 = require("./constants/models.js");
|
|
69
|
-
Object.defineProperty(exports, "PERPLEXITY_MODELS", { enumerable: true, get: function () { return models_js_1.PERPLEXITY_MODELS; } });
|
|
70
32
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AA+BA;;GAEG;AACH,mDAMgC;AAL9B,sGAAA,UAAU,OAAA;AACV,qGAAA,SAAS,OAAA;AACT,yGAAA,aAAa,OAAA;AACb,iGAAA,KAAK,OAAA;AACL,qGAAA,SAAS,OAAA;AAGX;;GAEG;AACH,uDAKoC;AAJlC,8GAAA,kBAAkB,OAAA;AAClB,yGAAA,aAAa,OAAA;AACb,gHAAA,oBAAoB,OAAA;AACpB,4GAAA,gBAAgB,OAAA;AAGlB;;GAEG;AACH,qDAA2D;AAAlD,2GAAA,eAAe,OAAA;AAExB;;GAEG;AACH,sDAAgF;AAAvE,0GAAA,cAAc,OAAA;AAAE,+GAAA,mBAAmB,OAAA"}
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
* Stop Reason Mapper Utilities
|
|
4
4
|
*
|
|
5
5
|
* Centralized stop reason mapping logic using lookup tables
|
|
6
|
-
* instead of nested conditionals.
|
|
7
|
-
* from the anthropic-node middleware.
|
|
6
|
+
* instead of nested conditionals.
|
|
8
7
|
*/
|
|
9
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
9
|
exports.mapStopReason = mapStopReason;
|
|
@@ -15,33 +14,32 @@ exports.isStopReasonSupported = isStopReasonSupported;
|
|
|
15
14
|
* Maps provider-specific stop reasons to Revenium's standardized set
|
|
16
15
|
*/
|
|
17
16
|
const STOP_REASON_MAP = {
|
|
18
|
-
// OpenAI
|
|
19
|
-
stop:
|
|
20
|
-
function_call:
|
|
21
|
-
tool_calls:
|
|
22
|
-
timeout:
|
|
23
|
-
length:
|
|
24
|
-
max_tokens:
|
|
25
|
-
cost_limit:
|
|
26
|
-
completion_limit:
|
|
27
|
-
content_filter:
|
|
28
|
-
error:
|
|
29
|
-
cancelled:
|
|
30
|
-
canceled:
|
|
17
|
+
// OpenAI OpenAI stop reasons
|
|
18
|
+
stop: "END",
|
|
19
|
+
function_call: "END_SEQUENCE",
|
|
20
|
+
tool_calls: "END_SEQUENCE",
|
|
21
|
+
timeout: "TIMEOUT",
|
|
22
|
+
length: "TOKEN_LIMIT",
|
|
23
|
+
max_tokens: "TOKEN_LIMIT",
|
|
24
|
+
cost_limit: "COST_LIMIT",
|
|
25
|
+
completion_limit: "COMPLETION_LIMIT",
|
|
26
|
+
content_filter: "ERROR",
|
|
27
|
+
error: "ERROR",
|
|
28
|
+
cancelled: "CANCELLED",
|
|
29
|
+
canceled: "CANCELLED", // Handle both spellings
|
|
31
30
|
// Anthropic stop reasons (for consistency across middleware)
|
|
32
|
-
end_turn:
|
|
33
|
-
stop_sequence:
|
|
34
|
-
tool_use:
|
|
31
|
+
end_turn: "END",
|
|
32
|
+
stop_sequence: "END_SEQUENCE",
|
|
33
|
+
tool_use: "END_SEQUENCE",
|
|
35
34
|
};
|
|
36
35
|
/**
|
|
37
36
|
* Default stop reason when mapping fails
|
|
38
37
|
*/
|
|
39
|
-
const DEFAULT_STOP_REASON =
|
|
38
|
+
const DEFAULT_STOP_REASON = "END";
|
|
40
39
|
/**
|
|
41
40
|
* Map provider stop reasons to Revenium stop reasons
|
|
42
41
|
*
|
|
43
42
|
* This replaces the nested if/switch logic with a clean lookup table approach.
|
|
44
|
-
* Based on the good example from the anthropic-node middleware.
|
|
45
43
|
*
|
|
46
44
|
* @param providerStopReason - Stop reason from the AI provider
|
|
47
45
|
* @param logger - Optional logger for warnings about unknown reasons
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-reason-mapper.js","sourceRoot":"","sources":["../../../src/utils/stop-reason-mapper.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"stop-reason-mapper.js","sourceRoot":"","sources":["../../../src/utils/stop-reason-mapper.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAyCH,sCAiBC;AAKD,0DAEC;AAKD,sDAEC;AAtED;;;GAGG;AACH,MAAM,eAAe,GAA2B;IAC9C,6BAA6B;IAC7B,IAAI,EAAE,KAAK;IACX,aAAa,EAAE,cAAc;IAC7B,UAAU,EAAE,cAAc;IAC1B,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,aAAa;IACrB,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,OAAO;IACvB,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,WAAW,EAAE,wBAAwB;IAE/C,6DAA6D;IAC7D,QAAQ,EAAE,KAAK;IACf,aAAa,EAAE,cAAc;IAC7B,QAAQ,EAAE,cAAc;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC;;;;;;;;GAQG;AACH,SAAgB,aAAa,CAC3B,kBAA6C,EAC7C,MAA4D;IAE5D,IAAI,CAAC,kBAAkB;QAAE,OAAO,mBAAmB,CAAC;IACpD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAEvD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,mEAAmE;QACnE,MAAM,EAAE,IAAI,CACV,wBAAwB,kBAAkB,gBAAgB,mBAAmB,EAAE,CAChF,CAAC;QACF,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB;IACrC,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,MAAc;IAClD,OAAO,MAAM,CAAC,WAAW,EAAE,IAAI,eAAe,CAAC;AACjD,CAAC"}
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { ReveniumPerplexity } from "../middleware/revenium-client.js";
|
|
9
9
|
import { initializeConfig, getLogger } from "../config/manager.js";
|
|
10
|
-
import { validateConfig } from "../config/validator.js";
|
|
11
10
|
/**
|
|
12
11
|
* Singleton instance of ReveniumPerplexity client
|
|
13
12
|
*/
|
|
@@ -36,8 +35,12 @@ export function Initialize() {
|
|
|
36
35
|
*/
|
|
37
36
|
export function Configure(config) {
|
|
38
37
|
logger.debug("Configuring Revenium Perplexity client");
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
if (!config.reveniumApiKey) {
|
|
39
|
+
throw new Error("reveniumApiKey is required in configuration");
|
|
40
|
+
}
|
|
41
|
+
if (!config.perplexityApiKey) {
|
|
42
|
+
throw new Error("perplexityApiKey is required in configuration");
|
|
43
|
+
}
|
|
41
44
|
const fullConfig = {
|
|
42
45
|
...config,
|
|
43
46
|
reveniumBaseUrl: config.reveniumBaseUrl || "https://api.revenium.ai",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/core/client/manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/core/client/manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;GAEG;AACH,IAAI,cAAc,GAA8B,IAAI,CAAC;AACrD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAG3B;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,SAAS,CAAC,MAAM,CAAC,CAAC;IAElB,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,MAAsB;IAC9C,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,UAAU,GAAmB;QACjC,GAAG,MAAM;QACT,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,yBAAyB;QACpE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,2BAA2B;QAC1E,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;KAC7B,CAAC;IAEF,cAAc,GAAG,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAEpD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,cAAc,KAAK,IAAI,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK;IACnB,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC"}
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
* Configuration module - Main exports
|
|
3
3
|
*
|
|
4
4
|
* This module provides a clean interface for configuration management.
|
|
5
|
-
* Aligned with OpenAI modular implementation.
|
|
6
5
|
*/
|
|
7
6
|
// Re-export all configuration functionality
|
|
8
|
-
export { loadConfigFromEnv } from
|
|
9
|
-
export { validateConfig } from
|
|
10
|
-
export { getConfig, setConfig, getLogger, initializeConfig, defaultLogger, } from
|
|
7
|
+
export { loadConfigFromEnv } from "./loader.js";
|
|
8
|
+
export { validateConfig } from "./validator.js";
|
|
9
|
+
export { getConfig, setConfig, getLogger, initializeConfig, defaultLogger, } from "./manager.js";
|
|
11
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,4CAA4C;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,aAAa,GACd,MAAM,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/core/config/manager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/core/config/manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;GAEG;AACH,IAAI,YAAY,GAA0B,IAAI,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;QAC7C,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,IAAI,YAAY,GAAW,aAAa,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,MAAsB;IAC9C,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,YAAY,GAAG,MAAM,CAAC;IACtB,YAAY,CAAC,KAAK,CAAC,gCAAgC,EAAE;QACnD,OAAO,EAAE,MAAM,CAAC,eAAe;QAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc;QACvC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB;KAC5C,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IAEtC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,YAAY,CAAC,KAAK,CAChB,iHAAiH,CAClH,CAAC;QACF,MAAM,IAAI,KAAK,CACb,iHAAiH,CAClH,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,SAAS,CAAC,CAAC;IACrB,YAAY,CAAC,KAAK,CAChB,4DAA4D,CAC7D,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -14,14 +14,15 @@ export function validateConfig(config) {
|
|
|
14
14
|
if (!config.reveniumApiKey.startsWith("hak_")) {
|
|
15
15
|
throw new Error('Invalid Revenium API key format. Revenium API keys should start with "hak_"');
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
if (!config.reveniumBaseUrl) {
|
|
18
|
+
throw new Error("Revenium base URL is missing. This should not happen as a default URL should be provided.");
|
|
19
|
+
}
|
|
20
|
+
// Validate Revenium URL format
|
|
21
|
+
try {
|
|
22
|
+
new URL(config.reveniumBaseUrl);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
throw new Error(`Invalid Revenium base URL format: ${config.reveniumBaseUrl}`);
|
|
25
26
|
}
|
|
26
27
|
if (!config.perplexityApiKey) {
|
|
27
28
|
throw new Error("Perplexity API key is required. Set PERPLEXITY_API_KEY environment variable or provide perplexityApiKey in config.");
|
|
@@ -29,14 +30,15 @@ export function validateConfig(config) {
|
|
|
29
30
|
if (!config.perplexityApiKey.startsWith("pplx-")) {
|
|
30
31
|
throw new Error('Invalid Perplexity API key format. Perplexity API keys should start with "pplx-"');
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
if (!config.perplexityBaseUrl) {
|
|
34
|
+
throw new Error("Perplexity base URL is missing. This should not happen as a default URL should be provided.");
|
|
35
|
+
}
|
|
36
|
+
// Validate Perplexity URL format
|
|
37
|
+
try {
|
|
38
|
+
new URL(config.perplexityBaseUrl);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
throw new Error(`Invalid Perplexity base URL format: ${config.perplexityBaseUrl}`);
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
//# sourceMappingURL=validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../src/core/config/validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,UAAU,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,
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../src/core/config/validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,UAAU,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,+BAA+B;IAC/B,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;IAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,oHAAoH,CACrH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;IACJ,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,uCAAuC,MAAM,CAAC,iBAAiB,EAAE,CAClE,CAAC;IACJ,CAAC;AACH,CAAC"}
|