cost-katana 2.0.0

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.
Files changed (215) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +550 -0
  3. package/dist/analyzers/cost-analyzer.d.ts +28 -0
  4. package/dist/analyzers/cost-analyzer.d.ts.map +1 -0
  5. package/dist/analyzers/cost-analyzer.js +165 -0
  6. package/dist/analyzers/cost-analyzer.js.map +1 -0
  7. package/dist/analyzers/token-counter.d.ts +21 -0
  8. package/dist/analyzers/token-counter.d.ts.map +1 -0
  9. package/dist/analyzers/token-counter.js +100 -0
  10. package/dist/analyzers/token-counter.js.map +1 -0
  11. package/dist/analyzers/usage-tracker.d.ts +29 -0
  12. package/dist/analyzers/usage-tracker.d.ts.map +1 -0
  13. package/dist/analyzers/usage-tracker.js +142 -0
  14. package/dist/analyzers/usage-tracker.js.map +1 -0
  15. package/dist/config/default.d.ts +45 -0
  16. package/dist/config/default.d.ts.map +1 -0
  17. package/dist/config/default.js +103 -0
  18. package/dist/config/default.js.map +1 -0
  19. package/dist/config/model-types.d.ts +45 -0
  20. package/dist/config/model-types.d.ts.map +1 -0
  21. package/dist/config/model-types.js +101 -0
  22. package/dist/config/model-types.js.map +1 -0
  23. package/dist/config/pricing/anthropic.d.ts +3 -0
  24. package/dist/config/pricing/anthropic.d.ts.map +1 -0
  25. package/dist/config/pricing/anthropic.js +191 -0
  26. package/dist/config/pricing/anthropic.js.map +1 -0
  27. package/dist/config/pricing/aws-bedrock.d.ts +3 -0
  28. package/dist/config/pricing/aws-bedrock.d.ts.map +1 -0
  29. package/dist/config/pricing/aws-bedrock.js +747 -0
  30. package/dist/config/pricing/aws-bedrock.js.map +1 -0
  31. package/dist/config/pricing/cohere.d.ts +3 -0
  32. package/dist/config/pricing/cohere.d.ts.map +1 -0
  33. package/dist/config/pricing/cohere.js +371 -0
  34. package/dist/config/pricing/cohere.js.map +1 -0
  35. package/dist/config/pricing/deepseek.d.ts +3 -0
  36. package/dist/config/pricing/deepseek.d.ts.map +1 -0
  37. package/dist/config/pricing/deepseek.js +102 -0
  38. package/dist/config/pricing/deepseek.js.map +1 -0
  39. package/dist/config/pricing/google.d.ts +3 -0
  40. package/dist/config/pricing/google.d.ts.map +1 -0
  41. package/dist/config/pricing/google.js +671 -0
  42. package/dist/config/pricing/google.js.map +1 -0
  43. package/dist/config/pricing/grok.d.ts +3 -0
  44. package/dist/config/pricing/grok.d.ts.map +1 -0
  45. package/dist/config/pricing/grok.js +59 -0
  46. package/dist/config/pricing/grok.js.map +1 -0
  47. package/dist/config/pricing/index.d.ts +11 -0
  48. package/dist/config/pricing/index.d.ts.map +1 -0
  49. package/dist/config/pricing/index.js +24 -0
  50. package/dist/config/pricing/index.js.map +1 -0
  51. package/dist/config/pricing/meta.d.ts +3 -0
  52. package/dist/config/pricing/meta.d.ts.map +1 -0
  53. package/dist/config/pricing/meta.js +69 -0
  54. package/dist/config/pricing/meta.js.map +1 -0
  55. package/dist/config/pricing/mistral.d.ts +3 -0
  56. package/dist/config/pricing/mistral.d.ts.map +1 -0
  57. package/dist/config/pricing/mistral.js +690 -0
  58. package/dist/config/pricing/mistral.js.map +1 -0
  59. package/dist/config/pricing/openai.d.ts +3 -0
  60. package/dist/config/pricing/openai.d.ts.map +1 -0
  61. package/dist/config/pricing/openai.js +475 -0
  62. package/dist/config/pricing/openai.js.map +1 -0
  63. package/dist/config/pricing/xai.d.ts +3 -0
  64. package/dist/config/pricing/xai.d.ts.map +1 -0
  65. package/dist/config/pricing/xai.js +141 -0
  66. package/dist/config/pricing/xai.js.map +1 -0
  67. package/dist/config/pricing-data.d.ts +55 -0
  68. package/dist/config/pricing-data.d.ts.map +1 -0
  69. package/dist/config/pricing-data.js +179 -0
  70. package/dist/config/pricing-data.js.map +1 -0
  71. package/dist/feedback/client.d.ts +14 -0
  72. package/dist/feedback/client.d.ts.map +1 -0
  73. package/dist/feedback/client.js +95 -0
  74. package/dist/feedback/client.js.map +1 -0
  75. package/dist/feedback/index.d.ts +3 -0
  76. package/dist/feedback/index.d.ts.map +1 -0
  77. package/dist/feedback/index.js +21 -0
  78. package/dist/feedback/index.js.map +1 -0
  79. package/dist/gateway/client.d.ts +77 -0
  80. package/dist/gateway/client.d.ts.map +1 -0
  81. package/dist/gateway/client.js +630 -0
  82. package/dist/gateway/client.js.map +1 -0
  83. package/dist/gateway/index.d.ts +9 -0
  84. package/dist/gateway/index.d.ts.map +1 -0
  85. package/dist/gateway/index.js +66 -0
  86. package/dist/gateway/index.js.map +1 -0
  87. package/dist/index.d.ts +183 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +1438 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/optimizers/context-trimmer.d.ts +18 -0
  92. package/dist/optimizers/context-trimmer.d.ts.map +1 -0
  93. package/dist/optimizers/context-trimmer.js +221 -0
  94. package/dist/optimizers/context-trimmer.js.map +1 -0
  95. package/dist/optimizers/index.d.ts +6 -0
  96. package/dist/optimizers/index.d.ts.map +1 -0
  97. package/dist/optimizers/index.js +14 -0
  98. package/dist/optimizers/index.js.map +1 -0
  99. package/dist/optimizers/prompt-compressor.d.ts +15 -0
  100. package/dist/optimizers/prompt-compressor.d.ts.map +1 -0
  101. package/dist/optimizers/prompt-compressor.js +268 -0
  102. package/dist/optimizers/prompt-compressor.js.map +1 -0
  103. package/dist/optimizers/prompt-optimizer.d.ts +29 -0
  104. package/dist/optimizers/prompt-optimizer.d.ts.map +1 -0
  105. package/dist/optimizers/prompt-optimizer.js +381 -0
  106. package/dist/optimizers/prompt-optimizer.js.map +1 -0
  107. package/dist/optimizers/request-fusion.d.ts +34 -0
  108. package/dist/optimizers/request-fusion.d.ts.map +1 -0
  109. package/dist/optimizers/request-fusion.js +284 -0
  110. package/dist/optimizers/request-fusion.js.map +1 -0
  111. package/dist/optimizers/suggestion-engine.d.ts +29 -0
  112. package/dist/optimizers/suggestion-engine.d.ts.map +1 -0
  113. package/dist/optimizers/suggestion-engine.js +234 -0
  114. package/dist/optimizers/suggestion-engine.js.map +1 -0
  115. package/dist/providers/anthropic.d.ts +23 -0
  116. package/dist/providers/anthropic.d.ts.map +1 -0
  117. package/dist/providers/anthropic.js +108 -0
  118. package/dist/providers/anthropic.js.map +1 -0
  119. package/dist/providers/azure.d.ts +15 -0
  120. package/dist/providers/azure.d.ts.map +1 -0
  121. package/dist/providers/azure.js +115 -0
  122. package/dist/providers/azure.js.map +1 -0
  123. package/dist/providers/base.d.ts +20 -0
  124. package/dist/providers/base.d.ts.map +1 -0
  125. package/dist/providers/base.js +67 -0
  126. package/dist/providers/base.js.map +1 -0
  127. package/dist/providers/bedrock.d.ts +23 -0
  128. package/dist/providers/bedrock.d.ts.map +1 -0
  129. package/dist/providers/bedrock.js +247 -0
  130. package/dist/providers/bedrock.js.map +1 -0
  131. package/dist/providers/cohere.d.ts +17 -0
  132. package/dist/providers/cohere.d.ts.map +1 -0
  133. package/dist/providers/cohere.js +122 -0
  134. package/dist/providers/cohere.js.map +1 -0
  135. package/dist/providers/deepseek.d.ts +6 -0
  136. package/dist/providers/deepseek.d.ts.map +1 -0
  137. package/dist/providers/deepseek.js +17 -0
  138. package/dist/providers/deepseek.js.map +1 -0
  139. package/dist/providers/google.d.ts +17 -0
  140. package/dist/providers/google.d.ts.map +1 -0
  141. package/dist/providers/google.js +141 -0
  142. package/dist/providers/google.js.map +1 -0
  143. package/dist/providers/index.d.ts +13 -0
  144. package/dist/providers/index.d.ts.map +1 -0
  145. package/dist/providers/index.js +61 -0
  146. package/dist/providers/index.js.map +1 -0
  147. package/dist/providers/openai.d.ts +16 -0
  148. package/dist/providers/openai.d.ts.map +1 -0
  149. package/dist/providers/openai.js +194 -0
  150. package/dist/providers/openai.js.map +1 -0
  151. package/dist/trace/client.d.ts +48 -0
  152. package/dist/trace/client.d.ts.map +1 -0
  153. package/dist/trace/client.js +130 -0
  154. package/dist/trace/client.js.map +1 -0
  155. package/dist/trace/index.d.ts +7 -0
  156. package/dist/trace/index.d.ts.map +1 -0
  157. package/dist/trace/index.js +30 -0
  158. package/dist/trace/index.js.map +1 -0
  159. package/dist/trace/middleware.d.ts +70 -0
  160. package/dist/trace/middleware.d.ts.map +1 -0
  161. package/dist/trace/middleware.js +104 -0
  162. package/dist/trace/middleware.js.map +1 -0
  163. package/dist/trace/providers.d.ts +83 -0
  164. package/dist/trace/providers.d.ts.map +1 -0
  165. package/dist/trace/providers.js +340 -0
  166. package/dist/trace/providers.js.map +1 -0
  167. package/dist/trace/service.d.ts +59 -0
  168. package/dist/trace/service.d.ts.map +1 -0
  169. package/dist/trace/service.js +425 -0
  170. package/dist/trace/service.js.map +1 -0
  171. package/dist/trace/types.d.ts +102 -0
  172. package/dist/trace/types.d.ts.map +1 -0
  173. package/dist/trace/types.js +3 -0
  174. package/dist/trace/types.js.map +1 -0
  175. package/dist/types/failover.d.ts +29 -0
  176. package/dist/types/failover.d.ts.map +1 -0
  177. package/dist/types/failover.js +3 -0
  178. package/dist/types/failover.js.map +1 -0
  179. package/dist/types/feedback.d.ts +69 -0
  180. package/dist/types/feedback.d.ts.map +1 -0
  181. package/dist/types/feedback.js +3 -0
  182. package/dist/types/feedback.js.map +1 -0
  183. package/dist/types/gateway.d.ts +303 -0
  184. package/dist/types/gateway.d.ts.map +1 -0
  185. package/dist/types/gateway.js +3 -0
  186. package/dist/types/gateway.js.map +1 -0
  187. package/dist/types/index.d.ts +242 -0
  188. package/dist/types/index.d.ts.map +1 -0
  189. package/dist/types/index.js +37 -0
  190. package/dist/types/index.js.map +1 -0
  191. package/dist/types/models.d.ts +7 -0
  192. package/dist/types/models.d.ts.map +1 -0
  193. package/dist/types/models.js +3838 -0
  194. package/dist/types/models.js.map +1 -0
  195. package/dist/types/providers.d.ts +128 -0
  196. package/dist/types/providers.d.ts.map +1 -0
  197. package/dist/types/providers.js +10 -0
  198. package/dist/types/providers.js.map +1 -0
  199. package/dist/types/simplified.d.ts +65 -0
  200. package/dist/types/simplified.d.ts.map +1 -0
  201. package/dist/types/simplified.js +4 -0
  202. package/dist/types/simplified.js.map +1 -0
  203. package/dist/utils/logger.d.ts +35 -0
  204. package/dist/utils/logger.d.ts.map +1 -0
  205. package/dist/utils/logger.js +154 -0
  206. package/dist/utils/logger.js.map +1 -0
  207. package/dist/utils/pricing.d.ts +30 -0
  208. package/dist/utils/pricing.d.ts.map +1 -0
  209. package/dist/utils/pricing.js +148 -0
  210. package/dist/utils/pricing.js.map +1 -0
  211. package/dist/utils/validators.d.ts +10 -0
  212. package/dist/utils/validators.d.ts.map +1 -0
  213. package/dist/utils/validators.js +133 -0
  214. package/dist/utils/validators.js.map +1 -0
  215. package/package.json +92 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { StartSpanInput, EndSpanInput, RecordMessageInput, SessionGraph, SessionDetails, TraceService } from './types';
2
+ export interface TraceClientConfig {
3
+ apiUrl?: string;
4
+ apiKey: string;
5
+ projectId: string;
6
+ headers?: Record<string, string>;
7
+ timeout?: number;
8
+ }
9
+ export declare class TraceClient implements TraceService {
10
+ private config;
11
+ constructor(config: TraceClientConfig);
12
+ private request;
13
+ startSpan(input: StartSpanInput): Promise<{
14
+ traceId: string;
15
+ sessionId: string;
16
+ }>;
17
+ endSpan(traceId: string, input: EndSpanInput): Promise<void>;
18
+ recordMessage(input: RecordMessageInput): Promise<void>;
19
+ getSessionGraph(sessionId: string): Promise<SessionGraph>;
20
+ getSessionDetails(sessionId: string): Promise<SessionDetails>;
21
+ listSessions(params?: {
22
+ userId?: string;
23
+ label?: string;
24
+ from?: Date;
25
+ to?: Date;
26
+ page?: number;
27
+ limit?: number;
28
+ }): Promise<{
29
+ sessions: SessionDetails[];
30
+ total: number;
31
+ page: number;
32
+ pages: number;
33
+ }>;
34
+ getSessionsSummary(params?: {
35
+ from?: Date;
36
+ to?: Date;
37
+ }): Promise<{
38
+ totalSessions: number;
39
+ activeSessions: number;
40
+ totalCost: number;
41
+ avgDuration: number;
42
+ errorRate: number;
43
+ }>;
44
+ ingestBatch(spans: Array<StartSpanInput & EndSpanInput & {
45
+ traceId: string;
46
+ }>): Promise<void>;
47
+ }
48
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/trace/client.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,iBAAiB;IAIhC,MAAM,CAAC,EAAE,MAAM,CAAC;IAKhB,MAAM,EAAE,MAAM,CAAC;IAKf,SAAS,EAAE,MAAM,CAAC;IAKlB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAKjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA2BD,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,MAAM,CAA8B;gBAEhC,MAAM,EAAE,iBAAiB;YAkBvB,OAAO;IAoCf,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBjF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5D,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IASvD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAKzD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAQ7D,YAAY,CAAC,MAAM,CAAC,EAAE;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,IAAI,CAAC;QACZ,EAAE,CAAC,EAAE,IAAI,CAAC;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC;QACV,QAAQ,EAAE,cAAc,EAAE,CAAC;QAC3B,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAmBI,kBAAkB,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,IAAI,CAAC;QAAC,EAAE,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC;QACrE,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAeI,WAAW,CACf,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,YAAY,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAChE,OAAO,CAAC,IAAI,CAAC;CAOjB"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TraceClient = void 0;
4
+ class TraceClient {
5
+ constructor(config) {
6
+ this.config = {
7
+ apiUrl: config.apiUrl || 'https://cost-katana-backend.store',
8
+ apiKey: config.apiKey,
9
+ projectId: config.projectId,
10
+ headers: config.headers || {},
11
+ timeout: config.timeout || 30000
12
+ };
13
+ if (!this.config.apiKey) {
14
+ throw new Error('API key is required for TraceClient');
15
+ }
16
+ if (!this.config.projectId) {
17
+ throw new Error('Project ID is required for TraceClient');
18
+ }
19
+ }
20
+ async request(method, path, body) {
21
+ const controller = new AbortController();
22
+ const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);
23
+ try {
24
+ const response = await fetch(`${this.config.apiUrl}${path}`, {
25
+ method,
26
+ headers: {
27
+ 'Content-Type': 'application/json',
28
+ Authorization: `Bearer ${this.config.apiKey}`,
29
+ 'X-Project-ID': this.config.projectId,
30
+ ...this.config.headers
31
+ },
32
+ body: body ? JSON.stringify(body) : undefined,
33
+ signal: controller.signal
34
+ });
35
+ clearTimeout(timeoutId);
36
+ if (!response.ok) {
37
+ const error = await response.json().catch(() => ({ message: response.statusText }));
38
+ throw new Error(`Trace API error: ${error.message || response.statusText}`);
39
+ }
40
+ return response.json();
41
+ }
42
+ catch (error) {
43
+ clearTimeout(timeoutId);
44
+ if (error.name === 'AbortError') {
45
+ throw new Error('Trace API request timeout');
46
+ }
47
+ throw error;
48
+ }
49
+ }
50
+ async startSpan(input) {
51
+ try {
52
+ const response = await this.request('POST', '/v1/traces/start', input);
53
+ return {
54
+ traceId: response.traceId,
55
+ sessionId: response.sessionId
56
+ };
57
+ }
58
+ catch (error) {
59
+ console.error('Failed to start trace span:', error);
60
+ return {
61
+ traceId: `mock-${Date.now()}-${Math.random()}`,
62
+ sessionId: input.sessionId || `mock-session-${Date.now()}`
63
+ };
64
+ }
65
+ }
66
+ async endSpan(traceId, input) {
67
+ try {
68
+ await this.request('POST', `/v1/traces/${traceId}/end`, input);
69
+ }
70
+ catch (error) {
71
+ console.error('Failed to end trace span:', error);
72
+ }
73
+ }
74
+ async recordMessage(input) {
75
+ try {
76
+ await this.request('POST', '/v1/traces/messages', input);
77
+ }
78
+ catch (error) {
79
+ console.error('Failed to record message:', error);
80
+ }
81
+ }
82
+ async getSessionGraph(sessionId) {
83
+ const response = await this.request('GET', `/v1/sessions/${sessionId}/graph`);
84
+ return response;
85
+ }
86
+ async getSessionDetails(sessionId) {
87
+ const response = await this.request('GET', `/v1/sessions/${sessionId}/details`);
88
+ return response;
89
+ }
90
+ async listSessions(params) {
91
+ const queryParams = new URLSearchParams();
92
+ if (params) {
93
+ if (params.userId)
94
+ queryParams.append('userId', params.userId);
95
+ if (params.label)
96
+ queryParams.append('label', params.label);
97
+ if (params.from)
98
+ queryParams.append('from', params.from.toISOString());
99
+ if (params.to)
100
+ queryParams.append('to', params.to.toISOString());
101
+ if (params.page)
102
+ queryParams.append('page', params.page.toString());
103
+ if (params.limit)
104
+ queryParams.append('limit', params.limit.toString());
105
+ }
106
+ const response = await this.request('GET', `/v1/sessions?${queryParams}`);
107
+ return response;
108
+ }
109
+ async getSessionsSummary(params) {
110
+ const queryParams = new URLSearchParams();
111
+ if (params) {
112
+ if (params.from)
113
+ queryParams.append('from', params.from.toISOString());
114
+ if (params.to)
115
+ queryParams.append('to', params.to.toISOString());
116
+ }
117
+ const response = await this.request('GET', `/v1/sessions/summary?${queryParams}`);
118
+ return response;
119
+ }
120
+ async ingestBatch(spans) {
121
+ try {
122
+ await this.request('POST', '/v1/traces/ingest', { spans });
123
+ }
124
+ catch (error) {
125
+ console.error('Failed to ingest trace batch:', error);
126
+ }
127
+ }
128
+ }
129
+ exports.TraceClient = TraceClient;
130
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/trace/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './types';
2
+ export { createTraceMiddleware, createChildSpan, type Request, type Response, type NextFunction } from './middleware';
3
+ export { TrackedOpenAI, TrackedAnthropic, createTrackedProvider } from './providers';
4
+ export { LocalTraceService, type LocalTraceServiceConfig } from './service';
5
+ export { TraceClient, type TraceClientConfig } from './client';
6
+ export type { TraceContext, StartSpanInput, EndSpanInput, RecordMessageInput, TraceNode, SessionGraph, SessionDetails, TraceService } from './types';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trace/index.ts"],"names":[],"mappings":"AA2CA,cAAc,SAAS,CAAC;AAGxB,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGrF,OAAO,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG/D,YAAY,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,cAAc,EACd,YAAY,EACb,MAAM,SAAS,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.TraceClient = exports.LocalTraceService = exports.createTrackedProvider = exports.TrackedAnthropic = exports.TrackedOpenAI = exports.createChildSpan = exports.createTraceMiddleware = void 0;
18
+ __exportStar(require("./types"), exports);
19
+ var middleware_1 = require("./middleware");
20
+ Object.defineProperty(exports, "createTraceMiddleware", { enumerable: true, get: function () { return middleware_1.createTraceMiddleware; } });
21
+ Object.defineProperty(exports, "createChildSpan", { enumerable: true, get: function () { return middleware_1.createChildSpan; } });
22
+ var providers_1 = require("./providers");
23
+ Object.defineProperty(exports, "TrackedOpenAI", { enumerable: true, get: function () { return providers_1.TrackedOpenAI; } });
24
+ Object.defineProperty(exports, "TrackedAnthropic", { enumerable: true, get: function () { return providers_1.TrackedAnthropic; } });
25
+ Object.defineProperty(exports, "createTrackedProvider", { enumerable: true, get: function () { return providers_1.createTrackedProvider; } });
26
+ var service_1 = require("./service");
27
+ Object.defineProperty(exports, "LocalTraceService", { enumerable: true, get: function () { return service_1.LocalTraceService; } });
28
+ var client_1 = require("./client");
29
+ Object.defineProperty(exports, "TraceClient", { enumerable: true, get: function () { return client_1.TraceClient; } });
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trace/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AA2CA,0CAAwB;AAGxB,2CAMsB;AALpB,mHAAA,qBAAqB,OAAA;AACrB,6GAAA,eAAe,OAAA;AAOjB,yCAAqF;AAA5E,0GAAA,aAAa,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAG/D,qCAA4E;AAAnE,4GAAA,iBAAiB,OAAA;AAC1B,mCAA+D;AAAtD,qGAAA,WAAW,OAAA"}
@@ -0,0 +1,70 @@
1
+ import { TraceContext } from './types';
2
+ export interface Request {
3
+ headers: {
4
+ [key: string]: string | string[] | undefined;
5
+ };
6
+ method: string;
7
+ path: string;
8
+ query: any;
9
+ ip?: string;
10
+ traceContext?: TraceContext;
11
+ get(name: string): string | undefined;
12
+ }
13
+ export interface Response {
14
+ locals: {
15
+ sessionId?: string;
16
+ traceId?: string;
17
+ traceContext?: TraceContext;
18
+ };
19
+ statusCode: number;
20
+ send: (body?: any) => Response;
21
+ json: (body: any) => Response;
22
+ end: (chunk?: any) => Response;
23
+ on(event: string, listener: (chunk?: any) => void): this;
24
+ getHeaders(): {
25
+ [key: string]: string | string[] | number | undefined;
26
+ };
27
+ }
28
+ export interface NextFunction {
29
+ (err?: Error | string): void;
30
+ }
31
+ interface TraceMiddlewareOptions {
32
+ sessionHeader?: string;
33
+ startSpan: (input: {
34
+ sessionId: string;
35
+ name: string;
36
+ type: string;
37
+ metadata?: Record<string, any>;
38
+ }) => Promise<{
39
+ traceId: string;
40
+ }>;
41
+ endSpan: (traceId: string, input: {
42
+ status: 'ok' | 'error';
43
+ error?: {
44
+ message: string;
45
+ stack?: string;
46
+ };
47
+ metadata?: Record<string, any>;
48
+ }) => Promise<void>;
49
+ includeDetails?: boolean;
50
+ }
51
+ export declare function createTraceMiddleware(options: TraceMiddlewareOptions): (req: Request, res: Response, next: NextFunction) => Promise<void>;
52
+ export declare function createChildSpan(req: Request, input: {
53
+ name: string;
54
+ type: string;
55
+ metadata?: Record<string, any>;
56
+ }, startSpanFn: (input: any) => Promise<{
57
+ traceId: string;
58
+ }>): Promise<{
59
+ traceId: string;
60
+ end: (_endInput: {
61
+ status: "ok" | "error";
62
+ error?: {
63
+ message: string;
64
+ stack?: string;
65
+ };
66
+ metadata?: Record<string, any>;
67
+ }) => Promise<void>;
68
+ }>;
69
+ export {};
70
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/trace/middleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTraceMiddleware = createTraceMiddleware;
4
+ exports.createChildSpan = createChildSpan;
5
+ const uuid_1 = require("uuid");
6
+ function createTraceMiddleware(options) {
7
+ const { sessionHeader = 'x-session-id', startSpan, endSpan, includeDetails = false } = options;
8
+ return async (req, res, next) => {
9
+ const sessionId = req.headers[sessionHeader] || (0, uuid_1.v4)();
10
+ const metadata = {
11
+ method: req.method,
12
+ path: req.path,
13
+ query: req.query
14
+ };
15
+ if (includeDetails) {
16
+ metadata.headers = req.headers;
17
+ metadata.ip = req.ip;
18
+ metadata.userAgent = req.get('user-agent');
19
+ }
20
+ try {
21
+ const { traceId } = await startSpan({
22
+ sessionId,
23
+ name: `${req.method} ${req.path}`,
24
+ type: 'http',
25
+ metadata
26
+ });
27
+ const traceContext = {
28
+ sessionId,
29
+ traceId,
30
+ parentId: undefined
31
+ };
32
+ req.traceContext = traceContext;
33
+ res.locals.sessionId = sessionId;
34
+ res.locals.traceId = traceId;
35
+ res.locals.traceContext = traceContext;
36
+ const originalSend = res.send;
37
+ const originalJson = res.json;
38
+ const originalEnd = res.end;
39
+ const endTrace = async (error) => {
40
+ try {
41
+ await endSpan(traceId, {
42
+ status: error || res.statusCode >= 400 ? 'error' : 'ok',
43
+ error: error
44
+ ? {
45
+ message: error.message,
46
+ stack: error.stack
47
+ }
48
+ : undefined,
49
+ metadata: {
50
+ statusCode: res.statusCode,
51
+ ...(includeDetails
52
+ ? {
53
+ responseHeaders: res.getHeaders()
54
+ }
55
+ : {})
56
+ }
57
+ });
58
+ }
59
+ catch (err) {
60
+ console.error('Failed to end trace span:', err);
61
+ }
62
+ };
63
+ res.send = function (data) {
64
+ endTrace();
65
+ return originalSend.call(this, data);
66
+ };
67
+ res.json = function (data) {
68
+ endTrace();
69
+ return originalJson.call(this, data);
70
+ };
71
+ res.end = function (chunk) {
72
+ endTrace();
73
+ return originalEnd.call(this, chunk);
74
+ };
75
+ res.on('error', (error) => {
76
+ endTrace(error);
77
+ });
78
+ next();
79
+ }
80
+ catch (error) {
81
+ console.error('Failed to start trace span:', error);
82
+ next();
83
+ }
84
+ };
85
+ }
86
+ async function createChildSpan(req, input, startSpanFn) {
87
+ const parentContext = req.traceContext;
88
+ if (!parentContext) {
89
+ throw new Error('No trace context found on request');
90
+ }
91
+ const { traceId } = await startSpanFn({
92
+ sessionId: parentContext.sessionId,
93
+ parentId: parentContext.traceId,
94
+ name: input.name,
95
+ type: input.type,
96
+ metadata: input.metadata
97
+ });
98
+ return {
99
+ traceId,
100
+ end: async (_endInput) => {
101
+ }
102
+ };
103
+ }
104
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/trace/middleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import { TraceContext } from './types';
2
+ import { OpenAIProvider } from '../providers/openai';
3
+ import { AnthropicProvider } from '../providers/anthropic';
4
+ import { ProviderRequest, ProviderResponse } from '../types/providers';
5
+ interface TracedProviderOptions {
6
+ traceContext?: TraceContext;
7
+ startSpan: (input: {
8
+ sessionId: string;
9
+ parentId?: string;
10
+ name: string;
11
+ type: string;
12
+ metadata?: Record<string, any>;
13
+ }) => Promise<{
14
+ traceId: string;
15
+ }>;
16
+ endSpan: (traceId: string, input: {
17
+ status: 'ok' | 'error';
18
+ error?: {
19
+ message: string;
20
+ stack?: string;
21
+ };
22
+ model?: string;
23
+ tokens?: {
24
+ input: number;
25
+ output: number;
26
+ };
27
+ costUSD?: number;
28
+ metadata?: Record<string, any>;
29
+ }) => Promise<void>;
30
+ recordMessage?: (input: {
31
+ sessionId: string;
32
+ traceId: string;
33
+ role: 'user' | 'assistant' | 'system';
34
+ content: string;
35
+ }) => Promise<void>;
36
+ calculateCost?: (input: {
37
+ model: string;
38
+ inputTokens: number;
39
+ outputTokens: number;
40
+ provider: string;
41
+ }) => number;
42
+ }
43
+ export declare class TrackedOpenAI {
44
+ private provider;
45
+ private options;
46
+ constructor(config: any & TracedProviderOptions);
47
+ makeRequest(request: ProviderRequest): Promise<ProviderResponse>;
48
+ chatCompletion(params: {
49
+ model: string;
50
+ messages: Array<{
51
+ role: string;
52
+ content: string;
53
+ }>;
54
+ maxTokens?: number;
55
+ temperature?: number;
56
+ topP?: number;
57
+ }): Promise<ProviderResponse>;
58
+ getProvider(): OpenAIProvider;
59
+ }
60
+ export declare class TrackedAnthropic {
61
+ private provider;
62
+ private options;
63
+ constructor(config: any & TracedProviderOptions);
64
+ makeRequest(request: ProviderRequest): Promise<ProviderResponse>;
65
+ messages(params: {
66
+ model: string;
67
+ messages: Array<{
68
+ role: string;
69
+ content: string;
70
+ }>;
71
+ system?: string;
72
+ maxTokens?: number;
73
+ temperature?: number;
74
+ }): Promise<ProviderResponse>;
75
+ getProvider(): AnthropicProvider;
76
+ }
77
+ export declare function createTrackedProvider<T extends object>(provider: T, methodName: keyof T, traceContext: TraceContext | undefined, traceService: {
78
+ startSpan: TracedProviderOptions['startSpan'];
79
+ endSpan: TracedProviderOptions['endSpan'];
80
+ recordMessage?: TracedProviderOptions['recordMessage'];
81
+ }): T;
82
+ export {};
83
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/trace/providers.ts"],"names":[],"mappings":"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"}