agentic-qe 2.1.2 → 2.2.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 (100) hide show
  1. package/CHANGELOG.md +123 -0
  2. package/README.md +1 -1
  3. package/dist/agents/index.d.ts.map +1 -1
  4. package/dist/agents/index.js +5 -1
  5. package/dist/agents/index.js.map +1 -1
  6. package/dist/core/di/AgentDependencies.d.ts +127 -0
  7. package/dist/core/di/AgentDependencies.d.ts.map +1 -0
  8. package/dist/core/di/AgentDependencies.js +251 -0
  9. package/dist/core/di/AgentDependencies.js.map +1 -0
  10. package/dist/core/di/DIContainer.d.ts +149 -0
  11. package/dist/core/di/DIContainer.d.ts.map +1 -0
  12. package/dist/core/di/DIContainer.js +333 -0
  13. package/dist/core/di/DIContainer.js.map +1 -0
  14. package/dist/core/di/index.d.ts +11 -0
  15. package/dist/core/di/index.d.ts.map +1 -0
  16. package/dist/core/di/index.js +22 -0
  17. package/dist/core/di/index.js.map +1 -0
  18. package/dist/core/index.d.ts +1 -0
  19. package/dist/core/index.d.ts.map +1 -1
  20. package/dist/core/index.js +11 -1
  21. package/dist/core/index.js.map +1 -1
  22. package/dist/learning/ExperienceSharingProtocol.d.ts +243 -0
  23. package/dist/learning/ExperienceSharingProtocol.d.ts.map +1 -0
  24. package/dist/learning/ExperienceSharingProtocol.js +538 -0
  25. package/dist/learning/ExperienceSharingProtocol.js.map +1 -0
  26. package/dist/learning/LearningEngine.d.ts +101 -1
  27. package/dist/learning/LearningEngine.d.ts.map +1 -1
  28. package/dist/learning/LearningEngine.js +330 -3
  29. package/dist/learning/LearningEngine.js.map +1 -1
  30. package/dist/learning/QLearning.d.ts +38 -125
  31. package/dist/learning/QLearning.d.ts.map +1 -1
  32. package/dist/learning/QLearning.js +46 -267
  33. package/dist/learning/QLearning.js.map +1 -1
  34. package/dist/learning/QLearningLegacy.d.ts +154 -0
  35. package/dist/learning/QLearningLegacy.d.ts.map +1 -0
  36. package/dist/learning/QLearningLegacy.js +337 -0
  37. package/dist/learning/QLearningLegacy.js.map +1 -0
  38. package/dist/learning/algorithms/AbstractRLLearner.d.ts +162 -0
  39. package/dist/learning/algorithms/AbstractRLLearner.d.ts.map +1 -0
  40. package/dist/learning/algorithms/AbstractRLLearner.js +300 -0
  41. package/dist/learning/algorithms/AbstractRLLearner.js.map +1 -0
  42. package/dist/learning/algorithms/ActorCriticLearner.d.ts +201 -0
  43. package/dist/learning/algorithms/ActorCriticLearner.d.ts.map +1 -0
  44. package/dist/learning/algorithms/ActorCriticLearner.js +447 -0
  45. package/dist/learning/algorithms/ActorCriticLearner.js.map +1 -0
  46. package/dist/learning/algorithms/PPOLearner.d.ts +207 -0
  47. package/dist/learning/algorithms/PPOLearner.d.ts.map +1 -0
  48. package/dist/learning/algorithms/PPOLearner.js +490 -0
  49. package/dist/learning/algorithms/PPOLearner.js.map +1 -0
  50. package/dist/learning/algorithms/QLearning.d.ts +68 -0
  51. package/dist/learning/algorithms/QLearning.d.ts.map +1 -0
  52. package/dist/learning/algorithms/QLearning.js +116 -0
  53. package/dist/learning/algorithms/QLearning.js.map +1 -0
  54. package/dist/learning/algorithms/SARSALearner.d.ts +107 -0
  55. package/dist/learning/algorithms/SARSALearner.d.ts.map +1 -0
  56. package/dist/learning/algorithms/SARSALearner.js +252 -0
  57. package/dist/learning/algorithms/SARSALearner.js.map +1 -0
  58. package/dist/learning/algorithms/index.d.ts +29 -0
  59. package/dist/learning/algorithms/index.d.ts.map +1 -0
  60. package/dist/learning/algorithms/index.js +44 -0
  61. package/dist/learning/algorithms/index.js.map +1 -0
  62. package/dist/learning/index.d.ts +3 -0
  63. package/dist/learning/index.d.ts.map +1 -1
  64. package/dist/learning/index.js +15 -1
  65. package/dist/learning/index.js.map +1 -1
  66. package/dist/learning/types.d.ts +2 -0
  67. package/dist/learning/types.d.ts.map +1 -1
  68. package/dist/memory/DistributedPatternLibrary.d.ts +159 -0
  69. package/dist/memory/DistributedPatternLibrary.d.ts.map +1 -0
  70. package/dist/memory/DistributedPatternLibrary.js +370 -0
  71. package/dist/memory/DistributedPatternLibrary.js.map +1 -0
  72. package/dist/memory/PatternQualityScorer.d.ts +169 -0
  73. package/dist/memory/PatternQualityScorer.d.ts.map +1 -0
  74. package/dist/memory/PatternQualityScorer.js +327 -0
  75. package/dist/memory/PatternQualityScorer.js.map +1 -0
  76. package/dist/memory/PatternReplicationService.d.ts +187 -0
  77. package/dist/memory/PatternReplicationService.d.ts.map +1 -0
  78. package/dist/memory/PatternReplicationService.js +392 -0
  79. package/dist/memory/PatternReplicationService.js.map +1 -0
  80. package/dist/providers/ClaudeProvider.d.ts +98 -0
  81. package/dist/providers/ClaudeProvider.d.ts.map +1 -0
  82. package/dist/providers/ClaudeProvider.js +418 -0
  83. package/dist/providers/ClaudeProvider.js.map +1 -0
  84. package/dist/providers/ILLMProvider.d.ts +287 -0
  85. package/dist/providers/ILLMProvider.d.ts.map +1 -0
  86. package/dist/providers/ILLMProvider.js +33 -0
  87. package/dist/providers/ILLMProvider.js.map +1 -0
  88. package/dist/providers/LLMProviderFactory.d.ts +154 -0
  89. package/dist/providers/LLMProviderFactory.d.ts.map +1 -0
  90. package/dist/providers/LLMProviderFactory.js +426 -0
  91. package/dist/providers/LLMProviderFactory.js.map +1 -0
  92. package/dist/providers/RuvllmProvider.d.ts +107 -0
  93. package/dist/providers/RuvllmProvider.d.ts.map +1 -0
  94. package/dist/providers/RuvllmProvider.js +417 -0
  95. package/dist/providers/RuvllmProvider.js.map +1 -0
  96. package/dist/providers/index.d.ts +31 -0
  97. package/dist/providers/index.d.ts.map +1 -0
  98. package/dist/providers/index.js +69 -0
  99. package/dist/providers/index.js.map +1 -0
  100. package/package.json +1 -1
@@ -0,0 +1,98 @@
1
+ /**
2
+ * ClaudeProvider - Anthropic Claude API Implementation
3
+ *
4
+ * Provides LLM capabilities through Anthropic's Claude API with support for:
5
+ * - Prompt caching for cost optimization
6
+ * - Streaming responses
7
+ * - Token counting
8
+ * - Health checks
9
+ *
10
+ * @module providers/ClaudeProvider
11
+ * @version 1.0.0
12
+ */
13
+ import { ILLMProvider, LLMProviderConfig, LLMCompletionOptions, LLMCompletionResponse, LLMStreamEvent, LLMEmbeddingOptions, LLMEmbeddingResponse, LLMTokenCountOptions, LLMHealthStatus, LLMProviderMetadata } from './ILLMProvider';
14
+ /**
15
+ * Claude-specific configuration
16
+ */
17
+ export interface ClaudeProviderConfig extends LLMProviderConfig {
18
+ /** Anthropic API key (uses ANTHROPIC_API_KEY env var if not provided) */
19
+ apiKey?: string;
20
+ /** Default model to use */
21
+ defaultModel?: string;
22
+ /** Enable prompt caching */
23
+ enableCaching?: boolean;
24
+ /** Base URL for API (for testing/proxies) */
25
+ baseUrl?: string;
26
+ }
27
+ /**
28
+ * ClaudeProvider - Anthropic Claude API implementation of ILLMProvider
29
+ *
30
+ * This provider enables access to Claude models through the Anthropic API
31
+ * with full support for caching, streaming, and cost tracking.
32
+ */
33
+ export declare class ClaudeProvider implements ILLMProvider {
34
+ private readonly logger;
35
+ private client?;
36
+ private config;
37
+ private isInitialized;
38
+ private totalCost;
39
+ private requestCount;
40
+ constructor(config?: ClaudeProviderConfig);
41
+ /**
42
+ * Initialize the Claude provider
43
+ */
44
+ initialize(): Promise<void>;
45
+ /**
46
+ * Complete a prompt
47
+ */
48
+ complete(options: LLMCompletionOptions): Promise<LLMCompletionResponse>;
49
+ /**
50
+ * Stream a completion
51
+ */
52
+ streamComplete(options: LLMCompletionOptions): AsyncIterableIterator<LLMStreamEvent>;
53
+ /**
54
+ * Generate embeddings (Claude doesn't natively support embeddings)
55
+ */
56
+ embed(options: LLMEmbeddingOptions): Promise<LLMEmbeddingResponse>;
57
+ /**
58
+ * Count tokens in text
59
+ */
60
+ countTokens(options: LLMTokenCountOptions): Promise<number>;
61
+ /**
62
+ * Health check
63
+ */
64
+ healthCheck(): Promise<LLMHealthStatus>;
65
+ /**
66
+ * Get provider metadata
67
+ */
68
+ getMetadata(): LLMProviderMetadata;
69
+ /**
70
+ * Shutdown the provider
71
+ */
72
+ shutdown(): Promise<void>;
73
+ /**
74
+ * Track cost for a request
75
+ */
76
+ trackCost(usage: LLMCompletionResponse['usage']): number;
77
+ /**
78
+ * Get total cost incurred
79
+ */
80
+ getTotalCost(): number;
81
+ /**
82
+ * Ensure provider is initialized
83
+ */
84
+ private ensureInitialized;
85
+ /**
86
+ * Map Anthropic stream event to LLMStreamEvent
87
+ */
88
+ private mapStreamEvent;
89
+ /**
90
+ * Get error code from exception
91
+ */
92
+ private getErrorCode;
93
+ /**
94
+ * Check if error is retryable
95
+ */
96
+ private isRetryableError;
97
+ }
98
+ //# sourceMappingURL=ClaudeProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaudeProvider.d.ts","sourceRoot":"","sources":["../../src/providers/ClaudeProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAGxB;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAeD;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,YAAY;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,GAAE,oBAAyB;IAiB7C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BjC;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA+F7E;;OAEG;IACI,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,qBAAqB,CAAC,cAAc,CAAC;IA0D3F;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IASxE;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBjE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;IAmC7C;;OAEG;IACH,WAAW,IAAI,mBAAmB;IAuBlC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,MAAM;IAwBxD;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACH,OAAO,CAAC,cAAc;IA0DtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAMzB"}
@@ -0,0 +1,418 @@
1
+ "use strict";
2
+ /**
3
+ * ClaudeProvider - Anthropic Claude API Implementation
4
+ *
5
+ * Provides LLM capabilities through Anthropic's Claude API with support for:
6
+ * - Prompt caching for cost optimization
7
+ * - Streaming responses
8
+ * - Token counting
9
+ * - Health checks
10
+ *
11
+ * @module providers/ClaudeProvider
12
+ * @version 1.0.0
13
+ */
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.ClaudeProvider = void 0;
19
+ const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
20
+ const ILLMProvider_1 = require("./ILLMProvider");
21
+ const Logger_1 = require("../utils/Logger");
22
+ /**
23
+ * Claude model pricing (per million tokens)
24
+ */
25
+ const CLAUDE_PRICING = {
26
+ 'claude-sonnet-4-20250514': { input: 3.0, output: 15.0 },
27
+ 'claude-opus-4-20250514': { input: 15.0, output: 75.0 },
28
+ 'claude-3-5-sonnet-20241022': { input: 3.0, output: 15.0 },
29
+ 'claude-3-5-haiku-20241022': { input: 0.8, output: 4.0 },
30
+ 'claude-3-opus-20240229': { input: 15.0, output: 75.0 },
31
+ 'claude-3-sonnet-20240229': { input: 3.0, output: 15.0 },
32
+ 'claude-3-haiku-20240307': { input: 0.25, output: 1.25 },
33
+ };
34
+ /**
35
+ * ClaudeProvider - Anthropic Claude API implementation of ILLMProvider
36
+ *
37
+ * This provider enables access to Claude models through the Anthropic API
38
+ * with full support for caching, streaming, and cost tracking.
39
+ */
40
+ class ClaudeProvider {
41
+ constructor(config = {}) {
42
+ this.logger = Logger_1.Logger.getInstance();
43
+ this.config = {
44
+ name: config.name || 'claude',
45
+ debug: config.debug ?? false,
46
+ timeout: config.timeout ?? 60000,
47
+ maxRetries: config.maxRetries ?? 3,
48
+ apiKey: config.apiKey,
49
+ defaultModel: config.defaultModel || 'claude-sonnet-4-20250514',
50
+ enableCaching: config.enableCaching ?? true,
51
+ baseUrl: config.baseUrl
52
+ };
53
+ this.isInitialized = false;
54
+ this.totalCost = 0;
55
+ this.requestCount = 0;
56
+ }
57
+ /**
58
+ * Initialize the Claude provider
59
+ */
60
+ async initialize() {
61
+ if (this.isInitialized) {
62
+ this.logger.warn('ClaudeProvider already initialized');
63
+ return;
64
+ }
65
+ const apiKey = this.config.apiKey || process.env.ANTHROPIC_API_KEY;
66
+ if (!apiKey) {
67
+ throw new ILLMProvider_1.LLMProviderError('Anthropic API key not provided', 'claude', 'AUTH_ERROR', false);
68
+ }
69
+ this.client = new sdk_1.default({
70
+ apiKey,
71
+ timeout: this.config.timeout,
72
+ maxRetries: this.config.maxRetries,
73
+ ...(this.config.baseUrl ? { baseURL: this.config.baseUrl } : {})
74
+ });
75
+ this.isInitialized = true;
76
+ this.logger.info('ClaudeProvider initialized', {
77
+ model: this.config.defaultModel,
78
+ caching: this.config.enableCaching
79
+ });
80
+ }
81
+ /**
82
+ * Complete a prompt
83
+ */
84
+ async complete(options) {
85
+ this.ensureInitialized();
86
+ const model = options.model || this.config.defaultModel;
87
+ const startTime = Date.now();
88
+ try {
89
+ // Build messages array
90
+ const messages = options.messages.map(m => {
91
+ // Handle string content directly
92
+ if (typeof m.content === 'string') {
93
+ return {
94
+ role: m.role,
95
+ content: m.content
96
+ };
97
+ }
98
+ // Handle array content - convert to string
99
+ const textContent = m.content
100
+ .filter(c => c.type === 'text')
101
+ .map(c => c.text || '')
102
+ .join('');
103
+ return {
104
+ role: m.role,
105
+ content: textContent
106
+ };
107
+ });
108
+ // Build system message if provided
109
+ let systemMessage;
110
+ if (options.system && options.system.length > 0) {
111
+ systemMessage = options.system.map(s => s.text).join('\n\n');
112
+ }
113
+ const response = await this.client.messages.create({
114
+ model,
115
+ messages,
116
+ max_tokens: options.maxTokens || 4096,
117
+ ...(systemMessage ? { system: systemMessage } : {}),
118
+ ...(options.temperature !== undefined ? { temperature: options.temperature } : {})
119
+ });
120
+ this.requestCount++;
121
+ // Extract text content from response
122
+ const content = response.content.map((block) => ({
123
+ type: 'text',
124
+ text: block.type === 'text' ? block.text : ''
125
+ }));
126
+ // Calculate cost
127
+ const cost = this.trackCost({
128
+ input_tokens: response.usage.input_tokens,
129
+ output_tokens: response.usage.output_tokens,
130
+ cache_creation_input_tokens: response.usage.cache_creation_input_tokens,
131
+ cache_read_input_tokens: response.usage.cache_read_input_tokens
132
+ });
133
+ const result = {
134
+ content,
135
+ usage: {
136
+ input_tokens: response.usage.input_tokens,
137
+ output_tokens: response.usage.output_tokens,
138
+ cache_creation_input_tokens: response.usage.cache_creation_input_tokens,
139
+ cache_read_input_tokens: response.usage.cache_read_input_tokens
140
+ },
141
+ model: response.model,
142
+ stop_reason: response.stop_reason,
143
+ id: response.id,
144
+ metadata: {
145
+ latency: Date.now() - startTime,
146
+ cost
147
+ }
148
+ };
149
+ this.logger.debug('Claude completion successful', {
150
+ model,
151
+ inputTokens: response.usage.input_tokens,
152
+ outputTokens: response.usage.output_tokens,
153
+ latency: result.metadata?.latency
154
+ });
155
+ return result;
156
+ }
157
+ catch (error) {
158
+ const err = error;
159
+ throw new ILLMProvider_1.LLMProviderError(`Claude completion failed: ${err.message}`, 'claude', this.getErrorCode(error), this.isRetryableError(error), err);
160
+ }
161
+ }
162
+ /**
163
+ * Stream a completion
164
+ */
165
+ async *streamComplete(options) {
166
+ this.ensureInitialized();
167
+ const model = options.model || this.config.defaultModel;
168
+ try {
169
+ // Build messages array
170
+ const messages = options.messages.map(m => {
171
+ if (typeof m.content === 'string') {
172
+ return {
173
+ role: m.role,
174
+ content: m.content
175
+ };
176
+ }
177
+ const textContent = m.content
178
+ .filter(c => c.type === 'text')
179
+ .map(c => c.text || '')
180
+ .join('');
181
+ return {
182
+ role: m.role,
183
+ content: textContent
184
+ };
185
+ });
186
+ let systemMessage;
187
+ if (options.system && options.system.length > 0) {
188
+ systemMessage = options.system.map(s => s.text).join('\n\n');
189
+ }
190
+ const stream = this.client.messages.stream({
191
+ model,
192
+ messages,
193
+ max_tokens: options.maxTokens || 4096,
194
+ ...(systemMessage ? { system: systemMessage } : {}),
195
+ ...(options.temperature !== undefined ? { temperature: options.temperature } : {})
196
+ });
197
+ for await (const event of stream) {
198
+ const streamEvent = this.mapStreamEvent(event);
199
+ if (streamEvent) {
200
+ yield streamEvent;
201
+ }
202
+ }
203
+ this.requestCount++;
204
+ }
205
+ catch (error) {
206
+ const err = error;
207
+ throw new ILLMProvider_1.LLMProviderError(`Claude stream failed: ${err.message}`, 'claude', this.getErrorCode(error), this.isRetryableError(error), err);
208
+ }
209
+ }
210
+ /**
211
+ * Generate embeddings (Claude doesn't natively support embeddings)
212
+ */
213
+ async embed(options) {
214
+ throw new ILLMProvider_1.LLMProviderError('Claude does not support native embeddings. Use a dedicated embedding model.', 'claude', 'UNSUPPORTED', false);
215
+ }
216
+ /**
217
+ * Count tokens in text
218
+ */
219
+ async countTokens(options) {
220
+ this.ensureInitialized();
221
+ try {
222
+ // Use Anthropic's token counting endpoint
223
+ const result = await this.client.messages.countTokens({
224
+ model: options.model || this.config.defaultModel,
225
+ messages: [{ role: 'user', content: options.text }]
226
+ });
227
+ return result.input_tokens;
228
+ }
229
+ catch {
230
+ // Fallback: estimate ~4 chars per token
231
+ return Math.ceil(options.text.length / 4);
232
+ }
233
+ }
234
+ /**
235
+ * Health check
236
+ */
237
+ async healthCheck() {
238
+ const startTime = Date.now();
239
+ try {
240
+ if (!this.isInitialized) {
241
+ await this.initialize();
242
+ }
243
+ // Simple health check with minimal tokens
244
+ await this.complete({
245
+ model: this.config.defaultModel,
246
+ messages: [{ role: 'user', content: 'ping' }],
247
+ maxTokens: 5
248
+ });
249
+ return {
250
+ healthy: true,
251
+ latency: Date.now() - startTime,
252
+ timestamp: new Date(),
253
+ metadata: {
254
+ model: this.config.defaultModel,
255
+ requestCount: this.requestCount,
256
+ totalCost: this.totalCost
257
+ }
258
+ };
259
+ }
260
+ catch (error) {
261
+ return {
262
+ healthy: false,
263
+ error: error.message,
264
+ timestamp: new Date()
265
+ };
266
+ }
267
+ }
268
+ /**
269
+ * Get provider metadata
270
+ */
271
+ getMetadata() {
272
+ const pricing = CLAUDE_PRICING[this.config.defaultModel] || { input: 3.0, output: 15.0 };
273
+ return {
274
+ name: 'claude',
275
+ version: '1.0.0',
276
+ models: Object.keys(CLAUDE_PRICING),
277
+ capabilities: {
278
+ streaming: true,
279
+ caching: true,
280
+ embeddings: false,
281
+ vision: true
282
+ },
283
+ costs: {
284
+ inputPerMillion: pricing.input,
285
+ outputPerMillion: pricing.output,
286
+ cacheWriteMultiplier: 1.25,
287
+ cacheReadMultiplier: 0.1
288
+ },
289
+ location: 'cloud'
290
+ };
291
+ }
292
+ /**
293
+ * Shutdown the provider
294
+ */
295
+ async shutdown() {
296
+ this.client = undefined;
297
+ this.isInitialized = false;
298
+ this.logger.info('ClaudeProvider shutdown', {
299
+ totalCost: this.totalCost,
300
+ requestCount: this.requestCount
301
+ });
302
+ }
303
+ /**
304
+ * Track cost for a request
305
+ */
306
+ trackCost(usage) {
307
+ const model = this.config.defaultModel;
308
+ const pricing = CLAUDE_PRICING[model] || { input: 3.0, output: 15.0 };
309
+ let inputCost = (usage.input_tokens / 1000000) * pricing.input;
310
+ const outputCost = (usage.output_tokens / 1000000) * pricing.output;
311
+ // Adjust for cache pricing
312
+ if (usage.cache_creation_input_tokens) {
313
+ const cacheWriteCost = (usage.cache_creation_input_tokens / 1000000) * pricing.input * 1.25;
314
+ inputCost += cacheWriteCost;
315
+ }
316
+ if (usage.cache_read_input_tokens) {
317
+ const cacheReadCost = (usage.cache_read_input_tokens / 1000000) * pricing.input * 0.1;
318
+ inputCost += cacheReadCost;
319
+ }
320
+ const totalCost = inputCost + outputCost;
321
+ this.totalCost += totalCost;
322
+ return totalCost;
323
+ }
324
+ /**
325
+ * Get total cost incurred
326
+ */
327
+ getTotalCost() {
328
+ return this.totalCost;
329
+ }
330
+ /**
331
+ * Ensure provider is initialized
332
+ */
333
+ ensureInitialized() {
334
+ if (!this.isInitialized || !this.client) {
335
+ throw new ILLMProvider_1.LLMProviderError('ClaudeProvider not initialized. Call initialize() first.', 'claude', 'NOT_INITIALIZED', false);
336
+ }
337
+ }
338
+ /**
339
+ * Map Anthropic stream event to LLMStreamEvent
340
+ */
341
+ mapStreamEvent(event) {
342
+ switch (event.type) {
343
+ case 'message_start':
344
+ return {
345
+ type: 'message_start',
346
+ message: {
347
+ id: event.message.id,
348
+ model: event.message.model,
349
+ stop_reason: (event.message.stop_reason ?? undefined),
350
+ usage: event.message.usage ? {
351
+ input_tokens: event.message.usage.input_tokens,
352
+ output_tokens: event.message.usage.output_tokens
353
+ } : undefined
354
+ }
355
+ };
356
+ case 'content_block_start':
357
+ // Only handle text blocks
358
+ if (event.content_block?.type === 'text') {
359
+ return {
360
+ type: 'content_block_start',
361
+ content_block: {
362
+ type: 'text',
363
+ text: event.content_block.text
364
+ }
365
+ };
366
+ }
367
+ return null;
368
+ case 'content_block_delta':
369
+ // Only handle text deltas
370
+ if ('delta' in event && event.delta?.type === 'text_delta') {
371
+ return {
372
+ type: 'content_block_delta',
373
+ delta: {
374
+ type: 'text_delta',
375
+ text: event.delta.text
376
+ }
377
+ };
378
+ }
379
+ return null;
380
+ case 'content_block_stop':
381
+ return { type: 'content_block_stop' };
382
+ case 'message_delta':
383
+ return {
384
+ type: 'message_delta',
385
+ message: {
386
+ usage: event.usage ? {
387
+ input_tokens: 0, // Not available in delta
388
+ output_tokens: event.usage.output_tokens
389
+ } : undefined
390
+ }
391
+ };
392
+ case 'message_stop':
393
+ return { type: 'message_stop' };
394
+ default:
395
+ return null;
396
+ }
397
+ }
398
+ /**
399
+ * Get error code from exception
400
+ */
401
+ getErrorCode(error) {
402
+ if (error instanceof sdk_1.default.APIError) {
403
+ return `API_${error.status}`;
404
+ }
405
+ return 'UNKNOWN';
406
+ }
407
+ /**
408
+ * Check if error is retryable
409
+ */
410
+ isRetryableError(error) {
411
+ if (error instanceof sdk_1.default.APIError) {
412
+ return [429, 500, 502, 503, 504].includes(error.status);
413
+ }
414
+ return false;
415
+ }
416
+ }
417
+ exports.ClaudeProvider = ClaudeProvider;
418
+ //# sourceMappingURL=ClaudeProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaudeProvider.js","sourceRoot":"","sources":["../../src/providers/ClaudeProvider.ts"],"names":[],"mappings":"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"}