@revenium/perplexity 2.0.4 → 2.0.5
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 +32 -33
- package/README.md +120 -101
- package/SECURITY.md +34 -0
- package/dist/cjs/constants/models.js +38 -0
- package/dist/cjs/constants/models.js.map +1 -0
- package/dist/cjs/core/client/index.js +13 -0
- package/dist/cjs/core/client/index.js.map +1 -0
- package/dist/cjs/core/client/manager.js +85 -0
- package/dist/cjs/core/client/manager.js.map +1 -0
- package/dist/cjs/core/config/index.js +21 -0
- package/dist/cjs/core/config/index.js.map +1 -0
- package/dist/cjs/core/config/loader.js +48 -0
- package/dist/cjs/core/config/loader.js.map +1 -0
- package/dist/cjs/core/config/manager.js +77 -0
- package/dist/cjs/core/config/manager.js.map +1 -0
- package/dist/cjs/core/config/validator.js +45 -0
- package/dist/cjs/core/config/validator.js.map +1 -0
- package/dist/cjs/core/middleware/index.js +14 -0
- package/dist/cjs/core/middleware/index.js.map +1 -0
- package/dist/cjs/core/middleware/interfaces.js +94 -0
- package/dist/cjs/core/middleware/interfaces.js.map +1 -0
- package/dist/cjs/core/middleware/revenium-client.js +44 -0
- package/dist/cjs/core/middleware/revenium-client.js.map +1 -0
- package/dist/cjs/core/middleware/streaming-wrapper.js +80 -0
- package/dist/cjs/core/middleware/streaming-wrapper.js.map +1 -0
- package/dist/cjs/core/providers/detector.js +38 -0
- package/dist/cjs/core/providers/detector.js.map +1 -0
- package/dist/cjs/core/providers/index.js +14 -0
- package/dist/cjs/core/providers/index.js.map +1 -0
- package/dist/cjs/core/tracking/api-client.js +67 -0
- package/dist/cjs/core/tracking/api-client.js.map +1 -0
- package/dist/cjs/core/tracking/index.js +21 -0
- package/dist/cjs/core/tracking/index.js.map +1 -0
- package/dist/cjs/core/tracking/payload-builder.js +95 -0
- package/dist/cjs/core/tracking/payload-builder.js.map +1 -0
- package/dist/cjs/core/tracking/usage-tracker.js +83 -0
- package/dist/cjs/core/tracking/usage-tracker.js.map +1 -0
- package/dist/cjs/index.js +60 -59
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/function-parameters.js +14 -0
- package/dist/cjs/types/function-parameters.js.map +1 -0
- package/dist/cjs/types/index.js +20 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/utils/constants.js +20 -0
- package/dist/cjs/utils/constants.js.map +1 -0
- package/dist/cjs/utils/error-handler.js +194 -0
- package/dist/cjs/utils/error-handler.js.map +1 -0
- package/dist/cjs/utils/metadata-builder.js +191 -0
- package/dist/cjs/utils/metadata-builder.js.map +1 -0
- package/dist/cjs/utils/stop-reason-mapper.js +74 -0
- package/dist/cjs/utils/stop-reason-mapper.js.map +1 -0
- package/dist/cjs/utils/transaction-id.js +19 -0
- package/dist/cjs/utils/transaction-id.js.map +1 -0
- package/dist/cjs/utils/url-builder.js +57 -0
- package/dist/cjs/utils/url-builder.js.map +1 -0
- package/dist/esm/constants/models.js +35 -0
- package/dist/esm/constants/models.js.map +1 -0
- package/dist/esm/core/client/index.js +5 -0
- package/dist/esm/core/client/index.js.map +1 -0
- package/dist/esm/core/client/manager.js +78 -0
- package/dist/esm/core/client/manager.js.map +1 -0
- package/dist/esm/core/config/index.js +11 -0
- package/dist/esm/core/config/index.js.map +1 -0
- package/dist/esm/core/config/loader.js +45 -0
- package/dist/esm/core/config/loader.js.map +1 -0
- package/dist/esm/core/config/manager.js +70 -0
- package/dist/esm/core/config/manager.js.map +1 -0
- package/dist/esm/core/config/validator.js +42 -0
- package/dist/esm/core/config/validator.js.map +1 -0
- package/dist/esm/core/middleware/index.js +7 -0
- package/dist/esm/core/middleware/index.js.map +1 -0
- package/dist/esm/core/middleware/interfaces.js +89 -0
- package/dist/esm/core/middleware/interfaces.js.map +1 -0
- package/dist/esm/core/middleware/revenium-client.js +37 -0
- package/dist/esm/core/middleware/revenium-client.js.map +1 -0
- package/dist/esm/core/middleware/streaming-wrapper.js +76 -0
- package/dist/esm/core/middleware/streaming-wrapper.js.map +1 -0
- package/dist/esm/core/providers/detector.js +34 -0
- package/dist/esm/core/providers/detector.js.map +1 -0
- package/dist/esm/core/providers/index.js +9 -0
- package/dist/esm/core/providers/index.js.map +1 -0
- package/dist/esm/core/tracking/api-client.js +64 -0
- package/dist/esm/core/tracking/api-client.js.map +1 -0
- package/dist/esm/core/tracking/index.js +13 -0
- package/dist/esm/core/tracking/index.js.map +1 -0
- package/dist/esm/core/tracking/payload-builder.js +92 -0
- package/dist/esm/core/tracking/payload-builder.js.map +1 -0
- package/dist/esm/core/tracking/usage-tracker.js +79 -0
- package/dist/esm/core/tracking/usage-tracker.js.map +1 -0
- package/dist/esm/index.js +46 -39
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/function-parameters.js +13 -0
- package/dist/esm/types/function-parameters.js.map +1 -0
- package/dist/esm/types/index.js +6 -2
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/constants.js +17 -0
- package/dist/esm/utils/constants.js.map +1 -0
- package/dist/esm/utils/error-handler.js +182 -0
- package/dist/esm/utils/error-handler.js.map +1 -0
- package/dist/esm/utils/metadata-builder.js +183 -0
- package/dist/esm/utils/metadata-builder.js.map +1 -0
- package/dist/esm/utils/stop-reason-mapper.js +69 -0
- package/dist/esm/utils/stop-reason-mapper.js.map +1 -0
- package/dist/esm/utils/transaction-id.js +16 -0
- package/dist/esm/utils/transaction-id.js.map +1 -0
- package/dist/esm/utils/url-builder.js +53 -0
- package/dist/esm/utils/url-builder.js.map +1 -0
- package/dist/types/constants/models.d.ts +39 -0
- package/dist/types/constants/models.d.ts.map +1 -0
- package/dist/types/core/client/index.d.ts +5 -0
- package/dist/types/core/client/index.d.ts.map +1 -0
- package/dist/types/core/client/manager.d.ts +44 -0
- package/dist/types/core/client/manager.d.ts.map +1 -0
- package/dist/types/core/config/index.d.ts +10 -0
- package/dist/types/core/config/index.d.ts.map +1 -0
- package/dist/types/core/config/loader.d.ts +13 -0
- package/dist/types/core/config/loader.d.ts.map +1 -0
- package/dist/types/core/config/manager.d.ts +28 -0
- package/dist/types/core/config/manager.d.ts.map +1 -0
- package/dist/types/core/config/validator.d.ts +12 -0
- package/dist/types/core/config/validator.d.ts.map +1 -0
- package/dist/types/core/middleware/index.d.ts +7 -0
- package/dist/types/core/middleware/index.d.ts.map +1 -0
- package/dist/types/core/middleware/interfaces.d.ts +35 -0
- package/dist/types/core/middleware/interfaces.d.ts.map +1 -0
- package/dist/types/core/middleware/revenium-client.d.ts +25 -0
- package/dist/types/core/middleware/revenium-client.d.ts.map +1 -0
- package/dist/types/core/middleware/streaming-wrapper.d.ts +21 -0
- package/dist/types/core/middleware/streaming-wrapper.d.ts.map +1 -0
- package/dist/types/core/providers/detector.d.ts +24 -0
- package/dist/types/core/providers/detector.d.ts.map +1 -0
- package/dist/types/core/providers/index.d.ts +8 -0
- package/dist/types/core/providers/index.d.ts.map +1 -0
- package/dist/types/core/tracking/api-client.d.ts +17 -0
- package/dist/types/core/tracking/api-client.d.ts.map +1 -0
- package/dist/types/core/tracking/index.d.ts +11 -0
- package/dist/types/core/tracking/index.d.ts.map +1 -0
- package/dist/types/core/tracking/payload-builder.d.ts +24 -0
- package/dist/types/core/tracking/payload-builder.d.ts.map +1 -0
- package/dist/types/core/tracking/usage-tracker.d.ts +30 -0
- package/dist/types/core/tracking/usage-tracker.d.ts.map +1 -0
- package/dist/types/index.d.ts +56 -27
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/function-parameters.d.ts +185 -0
- package/dist/types/types/function-parameters.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +108 -129
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/utils/constants.d.ts +9 -0
- package/dist/types/utils/constants.d.ts.map +1 -0
- package/dist/types/utils/error-handler.d.ts +95 -0
- package/dist/types/utils/error-handler.d.ts.map +1 -0
- package/dist/types/utils/metadata-builder.d.ts +65 -0
- package/dist/types/utils/metadata-builder.d.ts.map +1 -0
- package/dist/types/utils/stop-reason-mapper.d.ts +29 -0
- package/dist/types/utils/stop-reason-mapper.d.ts.map +1 -0
- package/dist/types/utils/transaction-id.d.ts +14 -0
- package/dist/types/utils/transaction-id.d.ts.map +1 -0
- package/dist/types/utils/url-builder.d.ts +22 -0
- package/dist/types/utils/url-builder.d.ts.map +1 -0
- package/examples/README.md +124 -220
- package/examples/advanced.ts +123 -0
- package/examples/basic.ts +32 -37
- package/examples/getting_started.ts +26 -49
- package/examples/metadata.ts +51 -48
- package/examples/stream.ts +53 -0
- package/package.json +9 -10
- package/dist/cjs/constants.js +0 -70
- package/dist/cjs/constants.js.map +0 -1
- package/dist/cjs/core/config/perplexity-config.js +0 -45
- package/dist/cjs/core/config/perplexity-config.js.map +0 -1
- package/dist/cjs/core/config/revenium-config.js +0 -80
- package/dist/cjs/core/config/revenium-config.js.map +0 -1
- package/dist/cjs/core/tracking/metering.js +0 -211
- package/dist/cjs/core/tracking/metering.js.map +0 -1
- package/dist/cjs/core/wrapper/perplexity-client.js +0 -187
- package/dist/cjs/core/wrapper/perplexity-client.js.map +0 -1
- package/dist/cjs/utils/logger.js +0 -23
- package/dist/cjs/utils/logger.js.map +0 -1
- package/dist/esm/constants.js +0 -67
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/core/config/perplexity-config.js +0 -40
- package/dist/esm/core/config/perplexity-config.js.map +0 -1
- package/dist/esm/core/config/revenium-config.js +0 -72
- package/dist/esm/core/config/revenium-config.js.map +0 -1
- package/dist/esm/core/tracking/metering.js +0 -206
- package/dist/esm/core/tracking/metering.js.map +0 -1
- package/dist/esm/core/wrapper/perplexity-client.js +0 -180
- package/dist/esm/core/wrapper/perplexity-client.js.map +0 -1
- package/dist/esm/utils/logger.js +0 -20
- package/dist/esm/utils/logger.js.map +0 -1
- package/dist/types/constants.d.ts +0 -67
- package/dist/types/constants.d.ts.map +0 -1
- package/dist/types/core/config/perplexity-config.d.ts +0 -24
- package/dist/types/core/config/perplexity-config.d.ts.map +0 -1
- package/dist/types/core/config/revenium-config.d.ts +0 -37
- package/dist/types/core/config/revenium-config.d.ts.map +0 -1
- package/dist/types/core/tracking/metering.d.ts +0 -31
- package/dist/types/core/tracking/metering.d.ts.map +0 -1
- package/dist/types/core/wrapper/perplexity-client.d.ts +0 -32
- package/dist/types/core/wrapper/perplexity-client.d.ts.map +0 -1
- package/dist/types/utils/logger.d.ts +0 -10
- package/dist/types/utils/logger.d.ts.map +0 -1
- package/examples/advanced-features.ts +0 -148
- package/examples/chat.ts +0 -73
- package/examples/streaming.ts +0 -50
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* URL Builder Utilities
|
|
3
|
+
*
|
|
4
|
+
* Centralized URL construction logic to eliminate nested conditionals.
|
|
5
|
+
* Replaces the complex URL building logic from tracking.ts.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Build Revenium API URL with proper path handling
|
|
9
|
+
*
|
|
10
|
+
* @param baseUrl - The base URL from configuration (may include /meter or /meter/v2)
|
|
11
|
+
* @param endpoint - The API endpoint to append (e.g., '/ai/completions')
|
|
12
|
+
* @returns Complete URL for the API call
|
|
13
|
+
*/
|
|
14
|
+
export function buildReveniumUrl(baseUrl, endpoint) {
|
|
15
|
+
// Normalize the base URL by removing trailing slashes
|
|
16
|
+
let normalizedBase = baseUrl.replace(/\/+$/, '');
|
|
17
|
+
// Check if /meter/v2 is already at the end
|
|
18
|
+
const hasMeterV2AtEnd = /\/meter\/v2$/i.test(normalizedBase);
|
|
19
|
+
if (hasMeterV2AtEnd) {
|
|
20
|
+
// Already has /meter/v2, just append endpoint
|
|
21
|
+
return `${normalizedBase}${endpoint}`;
|
|
22
|
+
}
|
|
23
|
+
// Check if /meter is at the end (but not /meter/v2)
|
|
24
|
+
const hasMeterAtEnd = /\/meter$/i.test(normalizedBase);
|
|
25
|
+
if (hasMeterAtEnd) {
|
|
26
|
+
// Has /meter but not /v2, append /v2 and endpoint
|
|
27
|
+
return `${normalizedBase}/v2${endpoint}`;
|
|
28
|
+
}
|
|
29
|
+
// Check if /v2 is at the end (without /meter)
|
|
30
|
+
const hasV2AtEnd = /\/v2$/i.test(normalizedBase);
|
|
31
|
+
if (hasV2AtEnd) {
|
|
32
|
+
// Has /v2 but not /meter, append endpoint as-is
|
|
33
|
+
return `${normalizedBase}${endpoint}`;
|
|
34
|
+
}
|
|
35
|
+
// Has neither /meter nor /v2, append /meter/v2 and endpoint
|
|
36
|
+
return `${normalizedBase}/meter/v2${endpoint}`;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Validate URL format
|
|
40
|
+
*
|
|
41
|
+
* @param url - URL to validate
|
|
42
|
+
* @returns true if valid, false otherwise
|
|
43
|
+
*/
|
|
44
|
+
export function isValidUrl(url) {
|
|
45
|
+
try {
|
|
46
|
+
new URL(url);
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=url-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-builder.js","sourceRoot":"","sources":["../../../src/utils/url-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,QAAgB;IAChE,sDAAsD;IACtD,IAAI,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEjD,2CAA2C;IAC3C,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7D,IAAI,eAAe,EAAE,CAAC;QACpB,8CAA8C;QAC9C,OAAO,GAAG,cAAc,GAAG,QAAQ,EAAE,CAAC;IACxC,CAAC;IAED,oDAAoD;IACpD,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvD,IAAI,aAAa,EAAE,CAAC;QAClB,kDAAkD;QAClD,OAAO,GAAG,cAAc,MAAM,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAED,8CAA8C;IAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjD,IAAI,UAAU,EAAE,CAAC;QACf,gDAAgD;QAChD,OAAO,GAAG,cAAc,GAAG,QAAQ,EAAE,CAAC;IACxC,CAAC;IAED,4DAA4D;IAC5D,OAAO,GAAG,cAAc,YAAY,QAAQ,EAAE,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Perplexity Model Constants
|
|
3
|
+
*
|
|
4
|
+
* Official model names for Perplexity AI.
|
|
5
|
+
* Use these constants instead of hardcoding model strings.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { PERPLEXITY_MODELS } from "@revenium/perplexity";
|
|
10
|
+
*
|
|
11
|
+
* const response = await client.chat().completions().create({
|
|
12
|
+
* model: PERPLEXITY_MODELS.SONAR_PRO,
|
|
13
|
+
* messages: [{ role: "user", content: "Hello!" }]
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Available Perplexity AI models
|
|
19
|
+
* @see https://docs.perplexity.ai/docs/model-cards
|
|
20
|
+
*/
|
|
21
|
+
export declare const PERPLEXITY_MODELS: {
|
|
22
|
+
/**
|
|
23
|
+
* Sonar Pro - Most capable model for complex queries
|
|
24
|
+
*/
|
|
25
|
+
readonly SONAR_PRO: "sonar-pro";
|
|
26
|
+
/**
|
|
27
|
+
* Sonar - Standard model for most use cases
|
|
28
|
+
*/
|
|
29
|
+
readonly SONAR: "sonar";
|
|
30
|
+
/**
|
|
31
|
+
* Sonar Reasoning - Specialized for reasoning tasks
|
|
32
|
+
*/
|
|
33
|
+
readonly SONAR_REASONING: "sonar-reasoning";
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Type representing valid Perplexity model names
|
|
37
|
+
*/
|
|
38
|
+
export type PerplexityModel = (typeof PERPLEXITY_MODELS)[keyof typeof PERPLEXITY_MODELS];
|
|
39
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/constants/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,eAAe,GACzB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/client/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client Manager - singleton pattern
|
|
3
|
+
*
|
|
4
|
+
* Provides Initialize/GetClient pattern.
|
|
5
|
+
* Manages singleton instance of ReveniumPerplexity client.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
import { ReveniumPerplexity } from "../middleware/revenium-client.js";
|
|
9
|
+
import type { ReveniumConfig } from "../../types/index.js";
|
|
10
|
+
/**
|
|
11
|
+
* Initialize Revenium Perplexity client from environment variables
|
|
12
|
+
*
|
|
13
|
+
* Loads configuration from environment:
|
|
14
|
+
* - REVENIUM_METERING_API_KEY (required)
|
|
15
|
+
* - PERPLEXITY_API_KEY (required)
|
|
16
|
+
* @throws {Error} If required environment variables are missing
|
|
17
|
+
*/
|
|
18
|
+
export declare function Initialize(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Configure Revenium Perplexity client with custom configuration
|
|
21
|
+
*
|
|
22
|
+
* @param config - Configuration object
|
|
23
|
+
* @throws {Error} If required configuration fields are missing
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
26
|
+
export declare function Configure(config: ReveniumConfig): void;
|
|
27
|
+
/**
|
|
28
|
+
* Get the singleton ReveniumPerplexity client instance
|
|
29
|
+
*
|
|
30
|
+
* @returns {ReveniumPerplexity} The client instance
|
|
31
|
+
* @throws {Error} If client has not been initialized
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
export declare function GetClient(): ReveniumPerplexity;
|
|
35
|
+
/**
|
|
36
|
+
* Check if client has been initialized
|
|
37
|
+
* @returns {boolean} True if client is initialized
|
|
38
|
+
*/
|
|
39
|
+
export declare function IsInitialized(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Reset the client instance (useful for testing)
|
|
42
|
+
*/
|
|
43
|
+
export declare function Reset(): void;
|
|
44
|
+
//# 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;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAW3D;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAOjC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAkBtD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAO9C;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAE5B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration module - Main exports
|
|
3
|
+
*
|
|
4
|
+
* This module provides a clean interface for configuration management.
|
|
5
|
+
* Aligned with OpenAI modular implementation.
|
|
6
|
+
*/
|
|
7
|
+
export { loadConfigFromEnv } from './loader.js';
|
|
8
|
+
export { validateConfig } from './validator.js';
|
|
9
|
+
export { getConfig, setConfig, getLogger, initializeConfig, defaultLogger, } from './manager.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Loader Module
|
|
3
|
+
*
|
|
4
|
+
* Handles loading configuration from environment variables.
|
|
5
|
+
* Separated from validation and management for single responsibility.
|
|
6
|
+
*/
|
|
7
|
+
import { ReveniumConfig } from "../../types/index.js";
|
|
8
|
+
/**
|
|
9
|
+
* Load configuration from environment variables
|
|
10
|
+
* Automatically loads .env file from current directory if present
|
|
11
|
+
*/
|
|
12
|
+
export declare function loadConfigFromEnv(): ReveniumConfig | null;
|
|
13
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/core/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AActD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CA2BzD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Manager Module
|
|
3
|
+
*
|
|
4
|
+
* Handles global configuration state management and logging.
|
|
5
|
+
* Aligned with OpenAI modular implementation.
|
|
6
|
+
*/
|
|
7
|
+
import { ReveniumConfig, Logger } from "../../types/index.js";
|
|
8
|
+
/**
|
|
9
|
+
* Default console logger implementation
|
|
10
|
+
*/
|
|
11
|
+
export declare const defaultLogger: Logger;
|
|
12
|
+
/**
|
|
13
|
+
* Get the current global configuration
|
|
14
|
+
*/
|
|
15
|
+
export declare function getConfig(): ReveniumConfig | null;
|
|
16
|
+
/**
|
|
17
|
+
* Set the global configuration
|
|
18
|
+
*/
|
|
19
|
+
export declare function setConfig(config: ReveniumConfig): void;
|
|
20
|
+
/**
|
|
21
|
+
* Get the current logger
|
|
22
|
+
*/
|
|
23
|
+
export declare function getLogger(): Logger;
|
|
24
|
+
/**
|
|
25
|
+
* Initialize configuration from environment variables
|
|
26
|
+
*/
|
|
27
|
+
export declare function initializeConfig(): ReveniumConfig;
|
|
28
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +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,sBAAsB,CAAC;AAY9D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAe3B,CAAC;AAIF;;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,gBAAgB,IAAI,cAAc,CAkBjD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Validator Module
|
|
3
|
+
*
|
|
4
|
+
* Handles validation of configuration objects.
|
|
5
|
+
* Separated from loading and management for single responsibility.
|
|
6
|
+
*/
|
|
7
|
+
import { ReveniumConfig } from "../../types/index.js";
|
|
8
|
+
/**
|
|
9
|
+
* Validate Revenium configuration
|
|
10
|
+
*/
|
|
11
|
+
export declare function validateConfig(config: ReveniumConfig): void;
|
|
12
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../src/core/config/validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CA8C3D"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware module exports
|
|
3
|
+
*/
|
|
4
|
+
export { ReveniumPerplexity } from "./revenium-client.js";
|
|
5
|
+
export { ChatInterface, CompletionsInterface } from "./interfaces.js";
|
|
6
|
+
export { StreamingWrapper } from "./streaming-wrapper.js";
|
|
7
|
+
//# 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;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware interfaces for Perplexity API
|
|
3
|
+
*/
|
|
4
|
+
import type OpenAI from "openai";
|
|
5
|
+
import type { UsageMetadata } from "../../types";
|
|
6
|
+
import { StreamingWrapper } from "./streaming-wrapper.js";
|
|
7
|
+
/**
|
|
8
|
+
* Chat interface - provides access to chat completions
|
|
9
|
+
*/
|
|
10
|
+
export declare class ChatInterface {
|
|
11
|
+
private client;
|
|
12
|
+
private config;
|
|
13
|
+
constructor(client: OpenAI, config: any);
|
|
14
|
+
/**
|
|
15
|
+
* Get completions interface
|
|
16
|
+
*/
|
|
17
|
+
completions(): CompletionsInterface;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Completions interface - handles chat completion requests
|
|
21
|
+
*/
|
|
22
|
+
export declare class CompletionsInterface {
|
|
23
|
+
private client;
|
|
24
|
+
private config;
|
|
25
|
+
constructor(client: OpenAI, config: any);
|
|
26
|
+
/**
|
|
27
|
+
* Create a chat completion
|
|
28
|
+
*/
|
|
29
|
+
create(params: OpenAI.Chat.ChatCompletionCreateParams, metadata?: UsageMetadata): Promise<any>;
|
|
30
|
+
/**
|
|
31
|
+
* Create a streaming chat completion
|
|
32
|
+
*/
|
|
33
|
+
createStreaming(params: OpenAI.Chat.ChatCompletionCreateParams, metadata?: UsageMetadata): Promise<StreamingWrapper>;
|
|
34
|
+
}
|
|
35
|
+
//# 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;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,MAAM;gBAA9B,MAAM,EAAE,MAAM,EAAU,MAAM,EAAE,GAAG;IAEvD;;OAEG;IACH,WAAW,IAAI,oBAAoB;CAGpC;AAED;;GAEG;AACH,qBAAa,oBAAoB;IACnB,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,MAAM;gBAA9B,MAAM,EAAE,MAAM,EAAU,MAAM,EAAE,GAAG;IAEvD;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAC9C,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,GAAG,CAAC;IA2Cf;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAC9C,QAAQ,CAAC,EAAE,aAAa;CA8B3B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Revenium Perplexity Client
|
|
3
|
+
*
|
|
4
|
+
* Main client class that wraps Perplexity API with Revenium tracking
|
|
5
|
+
*/
|
|
6
|
+
import OpenAI from "openai";
|
|
7
|
+
import { ChatInterface } from "./interfaces.js";
|
|
8
|
+
import type { ReveniumConfig } from "../../types/index.js";
|
|
9
|
+
/**
|
|
10
|
+
* Revenium Perplexity client with usage tracking
|
|
11
|
+
*/
|
|
12
|
+
export declare class ReveniumPerplexity {
|
|
13
|
+
private client;
|
|
14
|
+
private config;
|
|
15
|
+
constructor(config: ReveniumConfig);
|
|
16
|
+
/**
|
|
17
|
+
* Get chat interface
|
|
18
|
+
*/
|
|
19
|
+
chat(): ChatInterface;
|
|
20
|
+
/**
|
|
21
|
+
* Get underlying OpenAI client (for advanced use cases)
|
|
22
|
+
*/
|
|
23
|
+
getUnderlyingClient(): OpenAI;
|
|
24
|
+
}
|
|
25
|
+
//# 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,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAclC;;OAEG;IACH,IAAI,IAAI,aAAa;IAIrB;;OAEG;IACH,mBAAmB,IAAI,MAAM;CAG9B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streaming wrapper for Perplexity API
|
|
3
|
+
*/
|
|
4
|
+
import type { UsageMetadata } from "../../types";
|
|
5
|
+
/**
|
|
6
|
+
* Wrapper for streaming responses that tracks usage
|
|
7
|
+
*/
|
|
8
|
+
export declare class StreamingWrapper {
|
|
9
|
+
private stream;
|
|
10
|
+
private model;
|
|
11
|
+
private startTime;
|
|
12
|
+
private transactionId;
|
|
13
|
+
private metadata?;
|
|
14
|
+
private config;
|
|
15
|
+
constructor(stream: AsyncIterable<any>, model: string, startTime: Date, transactionId: string, metadata?: UsageMetadata, config?: any);
|
|
16
|
+
/**
|
|
17
|
+
* Iterate over stream chunks
|
|
18
|
+
*/
|
|
19
|
+
[Symbol.asyncIterator](): AsyncGenerator<any>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=streaming-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-wrapper.d.ts","sourceRoot":"","sources":["../../../../src/core/middleware/streaming-wrapper.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,MAAM,CAAM;gBAGlB,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAC1B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,aAAa,EACxB,MAAM,CAAC,EAAE,GAAG;IAUd;;OAEG;IACI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC;CA0DrD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Detection Module
|
|
3
|
+
*
|
|
4
|
+
* Handles provider metadata for Perplexity AI.
|
|
5
|
+
* Simplified compared to OpenAI modular since Perplexity doesn't have Azure variant.
|
|
6
|
+
*/
|
|
7
|
+
import { ProviderInfo } from "../../types/index.js";
|
|
8
|
+
/**
|
|
9
|
+
* Get provider info for Perplexity
|
|
10
|
+
* Always returns Perplexity since there's no Azure variant
|
|
11
|
+
*
|
|
12
|
+
* @returns ProviderInfo with Perplexity provider
|
|
13
|
+
*/
|
|
14
|
+
export declare function detectProvider(): ProviderInfo;
|
|
15
|
+
/**
|
|
16
|
+
* Get provider metadata for Revenium payload
|
|
17
|
+
*
|
|
18
|
+
* @returns metadata object for Revenium
|
|
19
|
+
*/
|
|
20
|
+
export declare function getProviderMetadata(): {
|
|
21
|
+
provider: string;
|
|
22
|
+
modelSource: string;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../../../src/core/providers/detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAMpD;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,YAAY,CAM7C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAKA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Providers module - Main exports
|
|
3
|
+
*
|
|
4
|
+
* This module provides a clean interface for provider detection and management.
|
|
5
|
+
* Simplified for Perplexity (no Azure variant).
|
|
6
|
+
*/
|
|
7
|
+
export { detectProvider, getProviderMetadata } from "./detector.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Revenium API Client Module
|
|
3
|
+
*
|
|
4
|
+
* Handles HTTP communication with the Revenium API.
|
|
5
|
+
* Extracted from tracking.ts for single responsibility.
|
|
6
|
+
*/
|
|
7
|
+
import { ReveniumPayload } from "../../types";
|
|
8
|
+
/**
|
|
9
|
+
* Send payload to Revenium API
|
|
10
|
+
*
|
|
11
|
+
* This is the shared HTTP function that eliminates all duplication
|
|
12
|
+
* between chat completions and embeddings tracking.
|
|
13
|
+
*
|
|
14
|
+
* @param payload - The payload to send to Revenium
|
|
15
|
+
*/
|
|
16
|
+
export declare function sendToRevenium(payload: ReveniumPayload): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -0,0 +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,aAAa,CAAC;AAO9C;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tracking module - Main exports
|
|
3
|
+
*
|
|
4
|
+
* This module provides a clean interface for usage tracking,
|
|
5
|
+
* separating concerns into focused sub-modules.
|
|
6
|
+
*/
|
|
7
|
+
export { sendToRevenium } from './api-client.js';
|
|
8
|
+
export { buildPayload } from './payload-builder.js';
|
|
9
|
+
export { sendReveniumMetrics, trackUsageAsync } from './usage-tracker.js';
|
|
10
|
+
export { mapStopReason } from '../../utils/stop-reason-mapper.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payload Builder Module
|
|
3
|
+
*
|
|
4
|
+
* Handles construction of Revenium API payloads.
|
|
5
|
+
* Extracted from tracking.ts for single responsibility.
|
|
6
|
+
*/
|
|
7
|
+
import { ReveniumPayload, PerplexityResponse, PerplexityChatRequest, ProviderInfo } from "../../types/index.js";
|
|
8
|
+
/**
|
|
9
|
+
* Build payload for Revenium API
|
|
10
|
+
*
|
|
11
|
+
* This shared payload builder eliminates payload duplication.
|
|
12
|
+
* Handles CHAT operation type for Perplexity.
|
|
13
|
+
*
|
|
14
|
+
* @param operationType - Type of operation (CHAT)
|
|
15
|
+
* @param response - API response from Perplexity
|
|
16
|
+
* @param request - Original request parameters
|
|
17
|
+
* @param startTime - Request start timestamp
|
|
18
|
+
* @param duration - Request duration in milliseconds
|
|
19
|
+
* @param providerInfo - Provider information (always Perplexity)
|
|
20
|
+
* @param timeToFirstToken - Time to first token in milliseconds (for streaming)
|
|
21
|
+
* @returns Constructed payload for Revenium API
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildPayload(operationType: "CHAT", response: PerplexityResponse, request: PerplexityChatRequest, startTime: number, duration: number, providerInfo?: ProviderInfo, timeToFirstToken?: number): ReveniumPayload;
|
|
24
|
+
//# sourceMappingURL=payload-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-builder.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/payload-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAS9B;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,MAAM,GACxB,eAAe,CA4EjB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Usage Tracker Module
|
|
3
|
+
*
|
|
4
|
+
* High-level tracking functions that combine payload building and API communication.
|
|
5
|
+
* Extracted from tracking.ts for better organization.
|
|
6
|
+
*/
|
|
7
|
+
import { UsageMetadata, ProviderInfo, PerplexityResponse, PerplexityChatRequest, PerplexityCost } from "../../types/index.js";
|
|
8
|
+
/**
|
|
9
|
+
* Chat completions tracking - thin wrapper
|
|
10
|
+
*/
|
|
11
|
+
export declare function sendReveniumMetrics(response: PerplexityResponse, request: PerplexityChatRequest, startTime: number, duration: number, providerInfo?: ProviderInfo, timeToFirstToken?: number): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Fire-and-forget wrapper for chat completions
|
|
14
|
+
* Constructs DTO objects from simple tracking data to call sendReveniumMetrics
|
|
15
|
+
*/
|
|
16
|
+
export declare function trackUsageAsync(trackingData: {
|
|
17
|
+
requestId: string;
|
|
18
|
+
model: string;
|
|
19
|
+
promptTokens: number;
|
|
20
|
+
completionTokens: number;
|
|
21
|
+
totalTokens: number;
|
|
22
|
+
duration: number;
|
|
23
|
+
finishReason: string | null;
|
|
24
|
+
usageMetadata?: UsageMetadata;
|
|
25
|
+
isStreamed?: boolean;
|
|
26
|
+
timeToFirstToken?: number;
|
|
27
|
+
providerInfo?: ProviderInfo;
|
|
28
|
+
cost?: PerplexityCost;
|
|
29
|
+
}): void;
|
|
30
|
+
//# sourceMappingURL=usage-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAS9B;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;GAGG;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,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;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB,GAAG,IAAI,CA0DP"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,34 +1,63 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Revenium Middleware for
|
|
2
|
+
* Revenium Perplexity Middleware for TypeScript
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* This middleware tracks Perplexity AI usage and sends metrics to Revenium.
|
|
5
|
+
* Uses Go-aligned API pattern with Initialize/GetClient.
|
|
5
6
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* initializePerplexityFromEnv,
|
|
11
|
-
* createChatCompletion,
|
|
12
|
-
* } from '@revenium/perplexity';
|
|
7
|
+
* Environment Variables:
|
|
8
|
+
* REVENIUM_METERING_API_KEY=hak_your_api_key
|
|
9
|
+
* REVENIUM_METERING_BASE_URL=https://api.revenium.ai (optional)
|
|
10
|
+
* PERPLEXITY_API_KEY=pplx_your_perplexity_key
|
|
13
11
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* initializePerplexityFromEnv();
|
|
12
|
+
* Usage:
|
|
13
|
+
* import { Initialize, GetClient } from "@revenium/perplexity";
|
|
17
14
|
*
|
|
18
|
-
* //
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
15
|
+
* // Initialize from environment
|
|
16
|
+
* Initialize();
|
|
17
|
+
*
|
|
18
|
+
* // Get client
|
|
19
|
+
* const client = GetClient();
|
|
23
20
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
21
|
+
* // Use client
|
|
22
|
+
* const response = await client.chat().completions().create({
|
|
23
|
+
* model: "sonar",
|
|
24
|
+
* messages: [{ role: "user", content: "Hello!" }]
|
|
25
|
+
* }, {
|
|
26
|
+
* organizationId: "my-org",
|
|
27
|
+
* productId: "my-app",
|
|
28
|
+
* subscriber: {
|
|
29
|
+
* id: "user-123",
|
|
30
|
+
* email: "user@my-org.com"
|
|
31
|
+
* }
|
|
32
|
+
* });
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* Core types for TypeScript developers using Revenium middleware
|
|
36
|
+
*/
|
|
37
|
+
export type { ReveniumConfig, UsageMetadata, Logger, ProviderInfo, Subscriber, Credential, ReveniumPayload, MeteringData, } from "./types/index.js";
|
|
38
|
+
/**
|
|
39
|
+
* Perplexity API types
|
|
40
|
+
*/
|
|
41
|
+
export type { PerplexityChatRequest, PerplexityChatResponse, PerplexityMessage, PerplexityChoice, PerplexityUsage, PerplexityStreamChunk, PerplexityResponse, TrackingData, } from "./types/function-parameters.js";
|
|
42
|
+
/**
|
|
43
|
+
* Main API - Go-aligned pattern
|
|
44
|
+
*/
|
|
45
|
+
export { Initialize, GetClient, IsInitialized, Reset, Configure, } from "./core/client/index.js";
|
|
46
|
+
/**
|
|
47
|
+
* Middleware classes
|
|
48
|
+
*/
|
|
49
|
+
export { ReveniumPerplexity, ChatInterface, CompletionsInterface, StreamingWrapper, } from "./core/middleware/index.js";
|
|
50
|
+
/**
|
|
51
|
+
* Tracking functions (for advanced use cases)
|
|
52
|
+
*/
|
|
53
|
+
export { trackUsageAsync } from "./core/tracking/index.js";
|
|
54
|
+
/**
|
|
55
|
+
* Provider detection functions
|
|
56
|
+
*/
|
|
57
|
+
export { detectProvider, getProviderMetadata } from "./core/providers/index.js";
|
|
58
|
+
/**
|
|
59
|
+
* Model constants
|
|
60
|
+
*/
|
|
61
|
+
export { PERPLEXITY_MODELS } from "./constants/models.js";
|
|
62
|
+
export type { PerplexityModel } from "./constants/models.js";
|
|
34
63
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;GAEG;AACH,YAAY,EACV,cAAc,EACd,aAAa,EACb,MAAM,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,eAAe,EACf,YAAY,GACb,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,GACb,MAAM,gCAAgC,CAAC;AAExC;;GAEG;AACH,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,KAAK,EACL,SAAS,GACV,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AAEpC;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhF;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
|