cost-katana 2.2.1 → 2.2.2

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.
@@ -9,6 +9,9 @@ class BaseProvider {
9
9
  this.config = config;
10
10
  this.provider = config.provider;
11
11
  }
12
+ setComprehensiveTrackingCallback(callback) {
13
+ this.comprehensiveTrackingCallback = callback;
14
+ }
12
15
  async estimateCost(prompt, model, expectedCompletion) {
13
16
  const modelInfo = (0, models_1.getModelById)(model);
14
17
  if (!modelInfo) {
@@ -18,6 +21,167 @@ class BaseProvider {
18
21
  const completionTokens = expectedCompletion || Math.floor(promptTokens * 0.5);
19
22
  return (0, pricing_1.calculateCost)(promptTokens, completionTokens, modelInfo, this.config.customPricing);
20
23
  }
24
+ trackUsageWithComprehensiveData(request, response, startTime, clientSideData) {
25
+ const baseUsage = this.trackUsage(request, response, startTime);
26
+ if (!clientSideData) {
27
+ return baseUsage;
28
+ }
29
+ return {
30
+ ...baseUsage,
31
+ requestMetadata: {
32
+ ...baseUsage.requestMetadata,
33
+ clientEnvironment: clientSideData.clientEnvironment,
34
+ networking: clientSideData.networking,
35
+ performanceMetrics: clientSideData.performance,
36
+ headers: clientSideData.request.headers,
37
+ requestSize: clientSideData.request.size
38
+ },
39
+ responseMetadata: {
40
+ ...baseUsage.responseMetadata,
41
+ headers: clientSideData.response?.headers,
42
+ responseSize: clientSideData.response?.size,
43
+ statusCode: clientSideData.response?.statusCode
44
+ },
45
+ comprehensiveTracking: {
46
+ clientSideTime: clientSideData.performance.totalTime,
47
+ networkTime: clientSideData.performance.totalTime - (baseUsage.responseTime || 0),
48
+ serverProcessingTime: baseUsage.responseTime || 0,
49
+ dataTransferEfficiency: this.calculateDataTransferEfficiency(clientSideData),
50
+ networkMetrics: {
51
+ dnsTime: clientSideData.performance.dnsTime,
52
+ connectTime: clientSideData.performance.connectTime,
53
+ uploadTime: clientSideData.performance.uploadTime,
54
+ downloadTime: clientSideData.performance.downloadTime
55
+ },
56
+ compressionRatio: this.calculateCompressionRatio(clientSideData)
57
+ }
58
+ };
59
+ }
60
+ calculateDataTransferEfficiency(clientSideData) {
61
+ const totalBytes = clientSideData.request.size + (clientSideData.response?.size || 0);
62
+ const totalTimeSeconds = clientSideData.performance.totalTime / 1000;
63
+ if (totalTimeSeconds === 0)
64
+ return 0;
65
+ return totalBytes / totalTimeSeconds;
66
+ }
67
+ calculateCompressionRatio(clientSideData) {
68
+ const contentEncoding = clientSideData.response?.headers['content-encoding'];
69
+ if (!contentEncoding || !contentEncoding.includes('gzip')) {
70
+ return undefined;
71
+ }
72
+ const responseSize = clientSideData.response?.size || 0;
73
+ const estimatedUncompressed = responseSize * 3;
74
+ return responseSize / estimatedUncompressed;
75
+ }
76
+ async interceptRequest(request) {
77
+ try {
78
+ const requestData = {
79
+ requestId: this.generateRequestId(),
80
+ environment: {
81
+ userAgent: typeof navigator !== 'undefined' ? navigator.userAgent : 'Node.js SDK',
82
+ platform: typeof process !== 'undefined' ? process.platform : 'unknown',
83
+ hostname: typeof window !== 'undefined' ? window.location.hostname : 'localhost',
84
+ sdkVersion: '2.0.0'
85
+ },
86
+ network: {
87
+ endpoint: request.url || request.baseURL || 'unknown',
88
+ method: request.method?.toUpperCase() || 'POST',
89
+ protocol: 'https:',
90
+ port: 443
91
+ },
92
+ request: {
93
+ method: request.method?.toUpperCase() || 'POST',
94
+ url: request.url || '',
95
+ path: new URL(request.url || '', request.baseURL).pathname,
96
+ headers: this.sanitizeHeaders(request.headers || {}),
97
+ body: this.sanitizeBody(request.data || request.body),
98
+ size: this.calculateSize(request.data || request.body),
99
+ timestamp: new Date()
100
+ },
101
+ timestamp: new Date()
102
+ };
103
+ return requestData;
104
+ }
105
+ catch (error) {
106
+ return null;
107
+ }
108
+ }
109
+ async interceptResponse(response, requestData) {
110
+ if (!requestData) {
111
+ return null;
112
+ }
113
+ try {
114
+ const responseEndTime = Date.now();
115
+ const requestStartTime = requestData.request.timestamp?.getTime() || responseEndTime;
116
+ const updatedData = {
117
+ ...requestData,
118
+ response: {
119
+ statusCode: response.status || 200,
120
+ headers: this.sanitizeHeaders(response.headers || {}),
121
+ body: this.sanitizeBody(response.data || response.body),
122
+ size: this.calculateSize(response.data || response.body),
123
+ timestamp: new Date()
124
+ },
125
+ performance: {
126
+ totalTime: responseEndTime - requestStartTime,
127
+ dnsTime: 0,
128
+ connectTime: 0,
129
+ uploadTime: 0
130
+ }
131
+ };
132
+ return updatedData;
133
+ }
134
+ catch (error) {
135
+ return requestData;
136
+ }
137
+ }
138
+ generateRequestId() {
139
+ return `req_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
140
+ }
141
+ sanitizeHeaders(headers) {
142
+ const sanitized = {};
143
+ const sensitiveKeys = ['authorization', 'x-api-key', 'cookie', 'set-cookie'];
144
+ for (const [key, value] of Object.entries(headers)) {
145
+ if (sensitiveKeys.some(sensitive => key.toLowerCase().includes(sensitive))) {
146
+ sanitized[key] = '[REDACTED]';
147
+ }
148
+ else {
149
+ sanitized[key] = String(value);
150
+ }
151
+ }
152
+ return sanitized;
153
+ }
154
+ sanitizeBody(body) {
155
+ if (!body)
156
+ return '';
157
+ try {
158
+ let bodyStr = typeof body === 'string' ? body : JSON.stringify(body);
159
+ const sensitivePatterns = [
160
+ /(api_key["']?\s*:\s*["'])[^"']*["']/gi,
161
+ /(password["']?\s*:\s*["'])[^"']*["']/gi,
162
+ /(secret["']?\s*:\s*["'])[^"']*["']/gi,
163
+ /(token["']?\s*:\s*["'])[^"']*["']/gi
164
+ ];
165
+ sensitivePatterns.forEach(pattern => {
166
+ bodyStr = bodyStr.replace(pattern, '$1[REDACTED]"');
167
+ });
168
+ return bodyStr;
169
+ }
170
+ catch (error) {
171
+ return '[Unable to serialize body]';
172
+ }
173
+ }
174
+ calculateSize(data) {
175
+ if (!data)
176
+ return 0;
177
+ try {
178
+ const str = typeof data === 'string' ? data : JSON.stringify(data);
179
+ return new Blob([str]).size;
180
+ }
181
+ catch (error) {
182
+ return 0;
183
+ }
184
+ }
21
185
  trackUsage(request, response, startTime) {
22
186
  const endTime = Date.now();
23
187
  const usage = this.parseUsage(response.usage);
@@ -31,7 +195,7 @@ class BaseProvider {
31
195
  const cost = (0, pricing_1.calculateCost)(promptTokens, completionTokens, model, this.config.customPricing);
32
196
  const prompt = request.prompt || (request.messages ? this.messagesToPrompt(request.messages) : '');
33
197
  const completion = response.choices[0]?.text || response.choices[0]?.message?.content || '';
34
- return {
198
+ const usageMetadata = {
35
199
  provider: this.provider,
36
200
  model: request.model,
37
201
  promptTokens,
@@ -43,8 +207,50 @@ class BaseProvider {
43
207
  responseTime: endTime - startTime,
44
208
  tags: request.metadata?.tags,
45
209
  sessionId: request.metadata?.sessionId || (0, uuid_1.v4)(),
46
- projectId: request.metadata?.projectId
210
+ projectId: request.metadata?.projectId,
211
+ requestMetadata: {
212
+ messages: request.messages?.filter(msg => msg.role !== 'function'),
213
+ system: request.system,
214
+ input: prompt,
215
+ prompt,
216
+ temperature: request.temperature,
217
+ maxTokens: request.maxTokens,
218
+ topP: request.topP,
219
+ frequencyPenalty: request.frequencyPenalty,
220
+ presencePenalty: request.presencePenalty
221
+ },
222
+ responseMetadata: {
223
+ completion,
224
+ output: completion,
225
+ finishReason: response.choices[0]?.finishReason,
226
+ processingTime: endTime - startTime
227
+ }
47
228
  };
229
+ if (this.comprehensiveTrackingCallback) {
230
+ this.triggerComprehensiveTracking(request, response, startTime, endTime)
231
+ .catch(error => {
232
+ console.warn('Comprehensive tracking failed:', error);
233
+ });
234
+ }
235
+ return usageMetadata;
236
+ }
237
+ async triggerComprehensiveTracking(request, response, startTime, endTime) {
238
+ try {
239
+ const requestData = await this.interceptRequest(request);
240
+ if (requestData) {
241
+ const comprehensiveData = await this.interceptResponse(response, requestData);
242
+ if (comprehensiveData && this.comprehensiveTrackingCallback) {
243
+ comprehensiveData.performance = {
244
+ ...comprehensiveData.performance,
245
+ totalTime: endTime - startTime
246
+ };
247
+ await this.comprehensiveTrackingCallback(comprehensiveData);
248
+ }
249
+ }
250
+ }
251
+ catch (error) {
252
+ console.warn('Error in automatic comprehensive tracking:', error);
253
+ }
48
254
  }
49
255
  messagesToPrompt(messages) {
50
256
  return messages.map(msg => `${msg.role}: ${msg.content}`).join('\n\n');
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cost-katana",
3
- "version": "2.2.1",
3
+ "version": "2.2.2",
4
4
  "description": "The simplest way to use AI with automatic cost tracking and optimization. Native SDK support for OpenAI and Google Gemini with automatic AWS Bedrock fallback.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",