@revenium/litellm 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +630 -0
- package/dist/client.d.ts +17 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +713 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +42 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +332 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.d.ts +15 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +101 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +189 -0
- package/dist/index.js.map +1 -0
- package/dist/prompt-extraction.d.ts +11 -0
- package/dist/prompt-extraction.d.ts.map +1 -0
- package/dist/prompt-extraction.js +201 -0
- package/dist/prompt-extraction.js.map +1 -0
- package/dist/tracking.d.ts +47 -0
- package/dist/tracking.d.ts.map +1 -0
- package/dist/tracking.js +299 -0
- package/dist/tracking.js.map +1 -0
- package/dist/types.d.ts +348 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/circuit-breaker.d.ts +114 -0
- package/dist/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/utils/circuit-breaker.js +216 -0
- package/dist/utils/circuit-breaker.js.map +1 -0
- package/dist/utils/error-handling.d.ts +166 -0
- package/dist/utils/error-handling.d.ts.map +1 -0
- package/dist/utils/error-handling.js +306 -0
- package/dist/utils/error-handling.js.map +1 -0
- package/dist/utils/logger-types.d.ts +171 -0
- package/dist/utils/logger-types.d.ts.map +1 -0
- package/dist/utils/logger-types.js +210 -0
- package/dist/utils/logger-types.js.map +1 -0
- package/dist/utils/provider-detection.d.ts +43 -0
- package/dist/utils/provider-detection.d.ts.map +1 -0
- package/dist/utils/provider-detection.js +103 -0
- package/dist/utils/provider-detection.js.map +1 -0
- package/dist/utils/stop-reason.d.ts +58 -0
- package/dist/utils/stop-reason.d.ts.map +1 -0
- package/dist/utils/stop-reason.js +136 -0
- package/dist/utils/stop-reason.js.map +1 -0
- package/dist/utils/summary-printer.d.ts +23 -0
- package/dist/utils/summary-printer.d.ts.map +1 -0
- package/dist/utils/summary-printer.js +234 -0
- package/dist/utils/summary-printer.js.map +1 -0
- package/dist/utils/trace-fields.d.ts +10 -0
- package/dist/utils/trace-fields.d.ts.map +1 -0
- package/dist/utils/trace-fields.js +117 -0
- package/dist/utils/trace-fields.js.map +1 -0
- package/dist/utils/validation.d.ts +121 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +451 -0
- package/dist/utils/validation.js.map +1 -0
- package/examples/README.md +321 -0
- package/examples/litellm-basic.ts +240 -0
- package/examples/litellm-streaming.ts +309 -0
- package/examples/prompt-capture.ts +128 -0
- package/package.json +85 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-types.js","sourceRoot":"","sources":["../../src/utils/logger-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider detection utilities for LiteLLM models
|
|
3
|
+
*
|
|
4
|
+
* This module replaces nested if/else statements with Map-based lookups
|
|
5
|
+
* for better maintainability and performance.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Extract standardized model source from LiteLLM model string
|
|
9
|
+
* Maps to standardized provider constants matching Python implementation
|
|
10
|
+
*
|
|
11
|
+
* @param model - LiteLLM model string
|
|
12
|
+
* @returns Standardized provider source constant
|
|
13
|
+
*/
|
|
14
|
+
export declare function extractModelSource(model: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Extract provider display name from LiteLLM model string
|
|
17
|
+
* @param model - LiteLLM model string
|
|
18
|
+
* @returns Human-readable provider name
|
|
19
|
+
*/
|
|
20
|
+
export declare function extractProvider(model: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Extract clean model name from LiteLLM model string
|
|
23
|
+
* Examples: "openai/gpt-4" -> "gpt-4", "anthropic/claude-3-opus" -> "claude-3-opus"
|
|
24
|
+
*
|
|
25
|
+
* @param model - LiteLLM model string
|
|
26
|
+
* @returns Clean model name without provider prefix
|
|
27
|
+
*/
|
|
28
|
+
export declare function extractModelName(model: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Validate if a model string appears to be a valid LiteLLM format
|
|
31
|
+
* @param model - Model string to validate
|
|
32
|
+
* @returns True if model appears valid
|
|
33
|
+
*/
|
|
34
|
+
export declare function isValidModelFormat(model: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Get all supported providers
|
|
37
|
+
* @returns Array of provider information
|
|
38
|
+
*/
|
|
39
|
+
export declare function getSupportedProviders(): Array<{
|
|
40
|
+
source: string;
|
|
41
|
+
displayName: string;
|
|
42
|
+
}>;
|
|
43
|
+
//# sourceMappingURL=provider-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-detection.d.ts","sourceRoot":"","sources":["../../src/utils/provider-detection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBxD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBrD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKzD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,CAAC,CAKpF"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Provider detection utilities for LiteLLM models
|
|
4
|
+
*
|
|
5
|
+
* This module replaces nested if/else statements with Map-based lookups
|
|
6
|
+
* for better maintainability and performance.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.extractModelSource = extractModelSource;
|
|
10
|
+
exports.extractProvider = extractProvider;
|
|
11
|
+
exports.extractModelName = extractModelName;
|
|
12
|
+
exports.isValidModelFormat = isValidModelFormat;
|
|
13
|
+
exports.getSupportedProviders = getSupportedProviders;
|
|
14
|
+
const constants_1 = require("../constants");
|
|
15
|
+
/**
|
|
16
|
+
* Extract provider prefix from LiteLLM model string
|
|
17
|
+
* @param model - Model string (e.g., "openai/gpt-4", "anthropic/claude-3")
|
|
18
|
+
* @returns Provider prefix or null if not found
|
|
19
|
+
*/
|
|
20
|
+
function extractProviderPrefix(model) {
|
|
21
|
+
const parts = model.split('/');
|
|
22
|
+
return parts.length > 1 ? parts[0].toLowerCase() : null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Extract standardized model source from LiteLLM model string
|
|
26
|
+
* Maps to standardized provider constants matching Python implementation
|
|
27
|
+
*
|
|
28
|
+
* @param model - LiteLLM model string
|
|
29
|
+
* @returns Standardized provider source constant
|
|
30
|
+
*/
|
|
31
|
+
function extractModelSource(model) {
|
|
32
|
+
const modelLower = model.toLowerCase();
|
|
33
|
+
const prefix = extractProviderPrefix(model);
|
|
34
|
+
// First, try to match by provider prefix (most reliable)
|
|
35
|
+
if (prefix) {
|
|
36
|
+
for (const provider of constants_1.PROVIDER_REGISTRY) {
|
|
37
|
+
if (provider.prefixes.includes(prefix))
|
|
38
|
+
return provider.source;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Fallback to pattern matching for models without explicit prefixes
|
|
42
|
+
for (const provider of constants_1.PROVIDER_REGISTRY) {
|
|
43
|
+
if (provider.patterns.some(pattern => modelLower.includes(pattern)))
|
|
44
|
+
return provider.source;
|
|
45
|
+
}
|
|
46
|
+
// Default fallback
|
|
47
|
+
return 'LITELLM';
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Extract provider display name from LiteLLM model string
|
|
51
|
+
* @param model - LiteLLM model string
|
|
52
|
+
* @returns Human-readable provider name
|
|
53
|
+
*/
|
|
54
|
+
function extractProvider(model) {
|
|
55
|
+
const modelLower = model.toLowerCase();
|
|
56
|
+
const prefix = extractProviderPrefix(model);
|
|
57
|
+
// First, try to match by provider prefix
|
|
58
|
+
if (prefix) {
|
|
59
|
+
for (const provider of constants_1.PROVIDER_REGISTRY) {
|
|
60
|
+
if (provider.prefixes.includes(prefix))
|
|
61
|
+
return provider.displayName;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Fallback to pattern matching
|
|
65
|
+
for (const provider of constants_1.PROVIDER_REGISTRY) {
|
|
66
|
+
if (provider.patterns.some(pattern => modelLower.includes(pattern)))
|
|
67
|
+
return provider.displayName;
|
|
68
|
+
}
|
|
69
|
+
// Return the prefix if found but not in registry, otherwise 'Unknown'
|
|
70
|
+
return prefix || 'Unknown';
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Extract clean model name from LiteLLM model string
|
|
74
|
+
* Examples: "openai/gpt-4" -> "gpt-4", "anthropic/claude-3-opus" -> "claude-3-opus"
|
|
75
|
+
*
|
|
76
|
+
* @param model - LiteLLM model string
|
|
77
|
+
* @returns Clean model name without provider prefix
|
|
78
|
+
*/
|
|
79
|
+
function extractModelName(model) {
|
|
80
|
+
return model.includes('/') ? model.split('/').slice(1).join('/') : model;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Validate if a model string appears to be a valid LiteLLM format
|
|
84
|
+
* @param model - Model string to validate
|
|
85
|
+
* @returns True if model appears valid
|
|
86
|
+
*/
|
|
87
|
+
function isValidModelFormat(model) {
|
|
88
|
+
if (!model || typeof model !== 'string')
|
|
89
|
+
return false;
|
|
90
|
+
// Basic validation - model should not be empty and should contain valid characters
|
|
91
|
+
return model.trim().length > 0 && /^[a-zA-Z0-9/_.-]+$/.test(model.trim());
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get all supported providers
|
|
95
|
+
* @returns Array of provider information
|
|
96
|
+
*/
|
|
97
|
+
function getSupportedProviders() {
|
|
98
|
+
return constants_1.PROVIDER_REGISTRY.map(p => ({
|
|
99
|
+
source: p.source,
|
|
100
|
+
displayName: p.displayName
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=provider-detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-detection.js","sourceRoot":"","sources":["../../src/utils/provider-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stop reason mapping utilities
|
|
3
|
+
*
|
|
4
|
+
* This module provides consistent mapping of completion finish reasons
|
|
5
|
+
* to Revenium stop reason constants across different LLM providers.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Revenium stop reason constants
|
|
9
|
+
*/
|
|
10
|
+
export declare const STOP_REASONS: {
|
|
11
|
+
readonly END: "END";
|
|
12
|
+
readonly TOKEN_LIMIT: "TOKEN_LIMIT";
|
|
13
|
+
readonly ERROR: "ERROR";
|
|
14
|
+
readonly END_SEQUENCE: "END_SEQUENCE";
|
|
15
|
+
readonly TIMEOUT: "TIMEOUT";
|
|
16
|
+
};
|
|
17
|
+
export type StopReason = typeof STOP_REASONS[keyof typeof STOP_REASONS];
|
|
18
|
+
/**
|
|
19
|
+
* Map completion finish reason to Revenium stop reason
|
|
20
|
+
* Works with multiple LLM providers through LiteLLM
|
|
21
|
+
*
|
|
22
|
+
* @param finishReason - The finish reason from the LLM provider
|
|
23
|
+
* @returns Standardized Revenium stop reason
|
|
24
|
+
*/
|
|
25
|
+
export declare function getStopReason(finishReason: string | null | undefined): StopReason;
|
|
26
|
+
/**
|
|
27
|
+
* Check if a finish reason indicates a successful completion
|
|
28
|
+
* @param finishReason - The finish reason to check
|
|
29
|
+
* @returns True if the completion was successful
|
|
30
|
+
*/
|
|
31
|
+
export declare function isSuccessfulCompletion(finishReason: string | null | undefined): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Check if a finish reason indicates a token limit was reached
|
|
34
|
+
* @param finishReason - The finish reason to check
|
|
35
|
+
* @returns True if token limit was reached
|
|
36
|
+
*/
|
|
37
|
+
export declare function isTokenLimitReached(finishReason: string | null | undefined): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Check if a finish reason indicates an error occurred
|
|
40
|
+
* @param finishReason - The finish reason to check
|
|
41
|
+
* @returns True if an error occurred
|
|
42
|
+
*/
|
|
43
|
+
export declare function isErrorCompletion(finishReason: string | null | undefined): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Get all supported finish reasons and their mappings
|
|
46
|
+
* @returns Array of finish reason mappings
|
|
47
|
+
*/
|
|
48
|
+
export declare function getSupportedFinishReasons(): Array<{
|
|
49
|
+
finishReason: string;
|
|
50
|
+
stopReason: StopReason;
|
|
51
|
+
}>;
|
|
52
|
+
/**
|
|
53
|
+
* Add custom finish reason mapping
|
|
54
|
+
* @param finishReason - The finish reason to map
|
|
55
|
+
* @param stopReason - The Revenium stop reason to map to
|
|
56
|
+
*/
|
|
57
|
+
export declare function addFinishReasonMapping(finishReason: string, stopReason: StopReason): void;
|
|
58
|
+
//# sourceMappingURL=stop-reason.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop-reason.d.ts","sourceRoot":"","sources":["../../src/utils/stop-reason.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,OAAO,YAAY,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AA6CxE;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,CAmBjF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAGvF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAGpF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAGlF;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,KAAK,CAAC;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC,CAKD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAEzF"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Stop reason mapping utilities
|
|
4
|
+
*
|
|
5
|
+
* This module provides consistent mapping of completion finish reasons
|
|
6
|
+
* to Revenium stop reason constants across different LLM providers.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.STOP_REASONS = void 0;
|
|
10
|
+
exports.getStopReason = getStopReason;
|
|
11
|
+
exports.isSuccessfulCompletion = isSuccessfulCompletion;
|
|
12
|
+
exports.isTokenLimitReached = isTokenLimitReached;
|
|
13
|
+
exports.isErrorCompletion = isErrorCompletion;
|
|
14
|
+
exports.getSupportedFinishReasons = getSupportedFinishReasons;
|
|
15
|
+
exports.addFinishReasonMapping = addFinishReasonMapping;
|
|
16
|
+
/**
|
|
17
|
+
* Revenium stop reason constants
|
|
18
|
+
*/
|
|
19
|
+
exports.STOP_REASONS = {
|
|
20
|
+
END: 'END',
|
|
21
|
+
TOKEN_LIMIT: 'TOKEN_LIMIT',
|
|
22
|
+
ERROR: 'ERROR',
|
|
23
|
+
END_SEQUENCE: 'END_SEQUENCE',
|
|
24
|
+
TIMEOUT: 'TIMEOUT'
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Mapping of provider finish reasons to Revenium stop reasons
|
|
28
|
+
* Organized by provider for better maintainability
|
|
29
|
+
*/
|
|
30
|
+
const FINISH_REASON_MAPPINGS = new Map([
|
|
31
|
+
// Standard OpenAI reasons
|
|
32
|
+
['stop', exports.STOP_REASONS.END],
|
|
33
|
+
['length', exports.STOP_REASONS.TOKEN_LIMIT],
|
|
34
|
+
['max_tokens', exports.STOP_REASONS.TOKEN_LIMIT],
|
|
35
|
+
['content_filter', exports.STOP_REASONS.ERROR],
|
|
36
|
+
['function_call', exports.STOP_REASONS.END_SEQUENCE],
|
|
37
|
+
['tool_calls', exports.STOP_REASONS.END_SEQUENCE],
|
|
38
|
+
// Anthropic reasons
|
|
39
|
+
['end_turn', exports.STOP_REASONS.END],
|
|
40
|
+
['max_tokens', exports.STOP_REASONS.TOKEN_LIMIT],
|
|
41
|
+
['stop_sequence', exports.STOP_REASONS.END_SEQUENCE],
|
|
42
|
+
// Google/Vertex AI reasons
|
|
43
|
+
['STOP', exports.STOP_REASONS.END],
|
|
44
|
+
['MAX_TOKENS', exports.STOP_REASONS.TOKEN_LIMIT],
|
|
45
|
+
['SAFETY', exports.STOP_REASONS.ERROR],
|
|
46
|
+
['RECITATION', exports.STOP_REASONS.ERROR],
|
|
47
|
+
['OTHER', exports.STOP_REASONS.ERROR],
|
|
48
|
+
// Cohere reasons
|
|
49
|
+
['COMPLETE', exports.STOP_REASONS.END],
|
|
50
|
+
['MAX_TOKENS', exports.STOP_REASONS.TOKEN_LIMIT],
|
|
51
|
+
['ERROR', exports.STOP_REASONS.ERROR],
|
|
52
|
+
['ERROR_TOXIC', exports.STOP_REASONS.ERROR],
|
|
53
|
+
// Common timeout/error reasons
|
|
54
|
+
['timeout', exports.STOP_REASONS.TIMEOUT],
|
|
55
|
+
['error', exports.STOP_REASONS.ERROR],
|
|
56
|
+
['cancelled', exports.STOP_REASONS.ERROR],
|
|
57
|
+
['failed', exports.STOP_REASONS.ERROR],
|
|
58
|
+
// End-of-sequence markers
|
|
59
|
+
['eos', exports.STOP_REASONS.END],
|
|
60
|
+
['end_sequence', exports.STOP_REASONS.END_SEQUENCE],
|
|
61
|
+
['end_of_sequence', exports.STOP_REASONS.END_SEQUENCE]
|
|
62
|
+
]);
|
|
63
|
+
/**
|
|
64
|
+
* Map completion finish reason to Revenium stop reason
|
|
65
|
+
* Works with multiple LLM providers through LiteLLM
|
|
66
|
+
*
|
|
67
|
+
* @param finishReason - The finish reason from the LLM provider
|
|
68
|
+
* @returns Standardized Revenium stop reason
|
|
69
|
+
*/
|
|
70
|
+
function getStopReason(finishReason) {
|
|
71
|
+
if (!finishReason)
|
|
72
|
+
return exports.STOP_REASONS.END;
|
|
73
|
+
// Normalize the finish reason (lowercase, trim whitespace)
|
|
74
|
+
const normalizedReason = finishReason.toLowerCase().trim();
|
|
75
|
+
// Look up in the mapping
|
|
76
|
+
const mappedReason = FINISH_REASON_MAPPINGS.get(normalizedReason);
|
|
77
|
+
if (mappedReason)
|
|
78
|
+
return mappedReason;
|
|
79
|
+
// Fallback pattern matching for unknown reasons
|
|
80
|
+
if (normalizedReason.includes('token') || normalizedReason.includes('length'))
|
|
81
|
+
return exports.STOP_REASONS.TOKEN_LIMIT;
|
|
82
|
+
if (normalizedReason.includes('error') || normalizedReason.includes('fail'))
|
|
83
|
+
return exports.STOP_REASONS.ERROR;
|
|
84
|
+
if (normalizedReason.includes('timeout'))
|
|
85
|
+
return exports.STOP_REASONS.TIMEOUT;
|
|
86
|
+
if (normalizedReason.includes('function') || normalizedReason.includes('tool'))
|
|
87
|
+
return exports.STOP_REASONS.END_SEQUENCE;
|
|
88
|
+
// Default fallback
|
|
89
|
+
return exports.STOP_REASONS.END;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Check if a finish reason indicates a successful completion
|
|
93
|
+
* @param finishReason - The finish reason to check
|
|
94
|
+
* @returns True if the completion was successful
|
|
95
|
+
*/
|
|
96
|
+
function isSuccessfulCompletion(finishReason) {
|
|
97
|
+
const stopReason = getStopReason(finishReason);
|
|
98
|
+
return stopReason === exports.STOP_REASONS.END || stopReason === exports.STOP_REASONS.END_SEQUENCE;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Check if a finish reason indicates a token limit was reached
|
|
102
|
+
* @param finishReason - The finish reason to check
|
|
103
|
+
* @returns True if token limit was reached
|
|
104
|
+
*/
|
|
105
|
+
function isTokenLimitReached(finishReason) {
|
|
106
|
+
const stopReason = getStopReason(finishReason);
|
|
107
|
+
return stopReason === exports.STOP_REASONS.TOKEN_LIMIT;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Check if a finish reason indicates an error occurred
|
|
111
|
+
* @param finishReason - The finish reason to check
|
|
112
|
+
* @returns True if an error occurred
|
|
113
|
+
*/
|
|
114
|
+
function isErrorCompletion(finishReason) {
|
|
115
|
+
const stopReason = getStopReason(finishReason);
|
|
116
|
+
return stopReason === exports.STOP_REASONS.ERROR || stopReason === exports.STOP_REASONS.TIMEOUT;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get all supported finish reasons and their mappings
|
|
120
|
+
* @returns Array of finish reason mappings
|
|
121
|
+
*/
|
|
122
|
+
function getSupportedFinishReasons() {
|
|
123
|
+
return Array.from(FINISH_REASON_MAPPINGS.entries()).map(([finishReason, stopReason]) => ({
|
|
124
|
+
finishReason,
|
|
125
|
+
stopReason
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Add custom finish reason mapping
|
|
130
|
+
* @param finishReason - The finish reason to map
|
|
131
|
+
* @param stopReason - The Revenium stop reason to map to
|
|
132
|
+
*/
|
|
133
|
+
function addFinishReasonMapping(finishReason, stopReason) {
|
|
134
|
+
FINISH_REASON_MAPPINGS.set(finishReason.toLowerCase().trim(), stopReason);
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=stop-reason.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop-reason.js","sourceRoot":"","sources":["../../src/utils/stop-reason.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Summary Printer Module
|
|
3
|
+
*
|
|
4
|
+
* Provides terminal output for cost/metrics summary after API requests.
|
|
5
|
+
* Fetches cost data from Revenium's completions API and formats for console display.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: This module intentionally uses console.log() for user-facing output,
|
|
8
|
+
* which is an exception to the standard logging practices.
|
|
9
|
+
* The Logger class is used for debug/error messages, while console.log
|
|
10
|
+
* is used for the formatted summary that users want to see in their terminal.
|
|
11
|
+
*/
|
|
12
|
+
import { ReveniumPayload } from "../types";
|
|
13
|
+
type SummaryFormat = "human" | "json";
|
|
14
|
+
interface Config {
|
|
15
|
+
reveniumApiKey?: string;
|
|
16
|
+
reveniumBaseUrl?: string;
|
|
17
|
+
teamId?: string;
|
|
18
|
+
printSummary?: boolean | SummaryFormat;
|
|
19
|
+
}
|
|
20
|
+
export declare function setConfig(config: Config): void;
|
|
21
|
+
export declare function printUsageSummary(payload: ReveniumPayload): void;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=summary-printer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary-printer.d.ts","sourceRoot":"","sources":["../../src/utils/summary-printer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,KAAK,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtC,UAAU,MAAM;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;CACxC;AAID,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9C;AAsSD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CA0BhE"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setConfig = setConfig;
|
|
4
|
+
exports.printUsageSummary = printUsageSummary;
|
|
5
|
+
const config_1 = require("../config");
|
|
6
|
+
let globalConfig = null;
|
|
7
|
+
function setConfig(config) {
|
|
8
|
+
globalConfig = config;
|
|
9
|
+
}
|
|
10
|
+
function getConfig() {
|
|
11
|
+
return globalConfig;
|
|
12
|
+
}
|
|
13
|
+
const DEFAULT_REVENIUM_BASE_URL = "https://api.revenium.ai";
|
|
14
|
+
const MAX_RETRIES = 3;
|
|
15
|
+
const RETRY_DELAY = 2000;
|
|
16
|
+
const FETCH_TIMEOUT = 10000;
|
|
17
|
+
function delayWithUnref(ms) {
|
|
18
|
+
return new Promise((resolve) => {
|
|
19
|
+
const timer = setTimeout(resolve, ms);
|
|
20
|
+
if (typeof timer.unref === "function") {
|
|
21
|
+
timer.unref();
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
async function fetchCompletionMetrics(transactionId, maxRetries = MAX_RETRIES, retryDelay = RETRY_DELAY) {
|
|
26
|
+
const config = getConfig();
|
|
27
|
+
if (!config) {
|
|
28
|
+
(0, config_1.getLogger)().debug("No config available for summary printing");
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
if (!config.teamId) {
|
|
32
|
+
(0, config_1.getLogger)().debug("Team ID not configured, skipping cost retrieval for summary");
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const baseUrl = (config.reveniumBaseUrl || DEFAULT_REVENIUM_BASE_URL).replace(/\/+$/, "");
|
|
36
|
+
const url = `${baseUrl}/profitstream/v2/api/sources/metrics/ai/completions`;
|
|
37
|
+
const teamId = config.teamId.trim();
|
|
38
|
+
const urlWithParams = `${url}?teamId=${encodeURIComponent(teamId)}&transactionId=${encodeURIComponent(transactionId)}`;
|
|
39
|
+
(0, config_1.getLogger)().debug("Fetching completion metrics", { url: urlWithParams });
|
|
40
|
+
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
41
|
+
// Create an AbortController with timeout to prevent hung requests from keeping Node process alive
|
|
42
|
+
const controller = new AbortController();
|
|
43
|
+
const timeoutId = setTimeout(() => controller.abort(), FETCH_TIMEOUT);
|
|
44
|
+
// Unref the timer so it doesn't keep the process alive
|
|
45
|
+
if (typeof timeoutId.unref === "function") {
|
|
46
|
+
timeoutId.unref();
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
const response = await fetch(urlWithParams, {
|
|
50
|
+
method: "GET",
|
|
51
|
+
headers: {
|
|
52
|
+
Accept: "application/json",
|
|
53
|
+
"x-api-key": config.reveniumApiKey || "",
|
|
54
|
+
},
|
|
55
|
+
signal: controller.signal,
|
|
56
|
+
});
|
|
57
|
+
if (!response.ok) {
|
|
58
|
+
try {
|
|
59
|
+
await response.text();
|
|
60
|
+
}
|
|
61
|
+
catch { }
|
|
62
|
+
(0, config_1.getLogger)().debug(`Completions metrics API returned ${response.status}`, {
|
|
63
|
+
attempt: attempt + 1,
|
|
64
|
+
});
|
|
65
|
+
if (attempt < maxRetries - 1) {
|
|
66
|
+
await delayWithUnref(retryDelay);
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
const data = (await response.json());
|
|
72
|
+
const completions = data._embedded?.aICompletionMetricResourceList;
|
|
73
|
+
if (completions && completions.length > 0) {
|
|
74
|
+
return completions[0];
|
|
75
|
+
}
|
|
76
|
+
if (attempt < maxRetries - 1) {
|
|
77
|
+
(0, config_1.getLogger)().debug(`Waiting for metrics to aggregate (attempt ${attempt + 1}/${maxRetries})...`);
|
|
78
|
+
await delayWithUnref(retryDelay);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
(0, config_1.getLogger)().debug("Failed to fetch completion metrics", {
|
|
83
|
+
error: error instanceof Error ? error.message : String(error),
|
|
84
|
+
attempt: attempt + 1,
|
|
85
|
+
});
|
|
86
|
+
if (attempt < maxRetries - 1) {
|
|
87
|
+
await delayWithUnref(retryDelay);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
clearTimeout(timeoutId);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
function isSummaryFormat(value) {
|
|
97
|
+
return value === "human" || value === "json";
|
|
98
|
+
}
|
|
99
|
+
function formatAndPrintJsonSummary(payload, metrics) {
|
|
100
|
+
const config = getConfig();
|
|
101
|
+
const summary = {
|
|
102
|
+
model: payload.model,
|
|
103
|
+
provider: payload.provider,
|
|
104
|
+
durationSeconds: payload.requestDuration / 1000,
|
|
105
|
+
inputTokenCount: payload.inputTokenCount,
|
|
106
|
+
outputTokenCount: payload.outputTokenCount,
|
|
107
|
+
totalTokenCount: payload.totalTokenCount,
|
|
108
|
+
cost: typeof metrics?.totalCost === "number" ? metrics.totalCost : null,
|
|
109
|
+
};
|
|
110
|
+
if (summary.cost === null) {
|
|
111
|
+
summary.costStatus = config?.teamId ? "pending" : "unavailable";
|
|
112
|
+
}
|
|
113
|
+
if (payload.traceId) {
|
|
114
|
+
summary.traceId = payload.traceId;
|
|
115
|
+
}
|
|
116
|
+
console.log(JSON.stringify(summary));
|
|
117
|
+
}
|
|
118
|
+
function formatAndPrintHumanSummary(payload, metrics) {
|
|
119
|
+
console.log("\n" + "=".repeat(60));
|
|
120
|
+
console.log("š REVENIUM USAGE SUMMARY");
|
|
121
|
+
console.log("=".repeat(60));
|
|
122
|
+
console.log(`š¤ Model: ${payload.model}`);
|
|
123
|
+
console.log(`š¢ Provider: ${payload.provider}`);
|
|
124
|
+
console.log(`ā±ļø Duration: ${(payload.requestDuration / 1000).toFixed(2)}s`);
|
|
125
|
+
console.log("\nš¬ Token Usage:");
|
|
126
|
+
console.log(` š„ Input Tokens: ${(payload.inputTokenCount ?? 0).toLocaleString()}`);
|
|
127
|
+
console.log(` š¤ Output Tokens: ${(payload.outputTokenCount ?? 0).toLocaleString()}`);
|
|
128
|
+
console.log(` š Total Tokens: ${(payload.totalTokenCount ?? 0).toLocaleString()}`);
|
|
129
|
+
if (typeof metrics?.totalCost === "number") {
|
|
130
|
+
console.log(`\nš° Cost: $${metrics.totalCost.toFixed(6)}`);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
const config = getConfig();
|
|
134
|
+
if (!config?.teamId) {
|
|
135
|
+
console.log(`\nš° Cost: Set REVENIUM_TEAM_ID in .env to see pricing`);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
console.log(`\nš° Cost: (pending aggregation)`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (payload.traceId) {
|
|
142
|
+
console.log(`\nš Trace ID: ${payload.traceId}`);
|
|
143
|
+
}
|
|
144
|
+
console.log("=".repeat(60) + "\n");
|
|
145
|
+
}
|
|
146
|
+
function formatAndPrintSummary(payload, metrics, format) {
|
|
147
|
+
if (format === "json") {
|
|
148
|
+
formatAndPrintJsonSummary(payload, metrics);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
formatAndPrintHumanSummary(payload, metrics);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function safeFormatAndPrintSummary(payload, metrics, format) {
|
|
155
|
+
try {
|
|
156
|
+
formatAndPrintSummary(payload, metrics, format);
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
(0, config_1.getLogger)().debug("Failed to format and print summary", {
|
|
160
|
+
error: error instanceof Error ? error.message : String(error),
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
function getSummaryFormat(value) {
|
|
165
|
+
if (!value)
|
|
166
|
+
return null;
|
|
167
|
+
if (value === true)
|
|
168
|
+
return "human";
|
|
169
|
+
if (isSummaryFormat(value)) {
|
|
170
|
+
return value;
|
|
171
|
+
}
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Initialize config from environment variables if not already set
|
|
176
|
+
* This ensures the summary printer works even if setConfig() is never called
|
|
177
|
+
*/
|
|
178
|
+
function initializeConfigFromEnv() {
|
|
179
|
+
if (globalConfig) {
|
|
180
|
+
return; // Already initialized
|
|
181
|
+
}
|
|
182
|
+
const printSummaryEnv = process.env.REVENIUM_PRINT_SUMMARY;
|
|
183
|
+
const teamId = process.env.REVENIUM_TEAM_ID;
|
|
184
|
+
const reveniumApiKey = process.env.REVENIUM_METERING_API_KEY;
|
|
185
|
+
const reveniumBaseUrl = process.env.REVENIUM_METERING_BASE_URL;
|
|
186
|
+
// Parse REVENIUM_PRINT_SUMMARY: env vars are always strings, so "true" !== true
|
|
187
|
+
let parsedPrintSummary;
|
|
188
|
+
if (printSummaryEnv === "true") {
|
|
189
|
+
parsedPrintSummary = true;
|
|
190
|
+
}
|
|
191
|
+
else if (printSummaryEnv === "false") {
|
|
192
|
+
parsedPrintSummary = false;
|
|
193
|
+
}
|
|
194
|
+
else if (printSummaryEnv === "human" || printSummaryEnv === "json") {
|
|
195
|
+
parsedPrintSummary = printSummaryEnv;
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
parsedPrintSummary = undefined;
|
|
199
|
+
}
|
|
200
|
+
if (parsedPrintSummary || teamId) {
|
|
201
|
+
globalConfig = {
|
|
202
|
+
printSummary: parsedPrintSummary,
|
|
203
|
+
teamId,
|
|
204
|
+
reveniumApiKey,
|
|
205
|
+
reveniumBaseUrl,
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
function printUsageSummary(payload) {
|
|
210
|
+
// Initialize from env vars if needed
|
|
211
|
+
initializeConfigFromEnv();
|
|
212
|
+
const config = getConfig();
|
|
213
|
+
const format = getSummaryFormat(config?.printSummary);
|
|
214
|
+
if (!format) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
if (config?.teamId && payload.transactionId) {
|
|
218
|
+
fetchCompletionMetrics(payload.transactionId)
|
|
219
|
+
.then((metrics) => {
|
|
220
|
+
safeFormatAndPrintSummary(payload, metrics, format);
|
|
221
|
+
})
|
|
222
|
+
.catch((error) => {
|
|
223
|
+
(0, config_1.getLogger)().debug("Failed to print usage summary with metrics", {
|
|
224
|
+
error: error instanceof Error ? error.message : String(error),
|
|
225
|
+
});
|
|
226
|
+
safeFormatAndPrintSummary(payload, null, format);
|
|
227
|
+
})
|
|
228
|
+
.catch(() => { });
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
safeFormatAndPrintSummary(payload, null, format);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=summary-printer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary-printer.js","sourceRoot":"","sources":["../../src/utils/summary-printer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function getEnvironment(): string | null;
|
|
2
|
+
export declare function getRegion(): Promise<string | null>;
|
|
3
|
+
export declare function getCredentialAlias(): string | null;
|
|
4
|
+
export declare function getTraceType(): string | null;
|
|
5
|
+
export declare function getTraceName(): string | null;
|
|
6
|
+
export declare function detectOperationSubtype(requestBody?: any): string | null;
|
|
7
|
+
export declare function getParentTransactionId(): string | null;
|
|
8
|
+
export declare function getTransactionName(): string | null;
|
|
9
|
+
export declare function getRetryNumber(): number;
|
|
10
|
+
//# sourceMappingURL=trace-fields.d.ts.map
|