claude-flow 2.0.0-alpha.66 → 2.0.0-alpha.68
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/.claude/cache/agent-pool.json +33 -0
- package/.claude/cache/memory-optimization.json +19 -0
- package/.claude/cache/neural-optimization.json +25 -0
- package/.claude/cache/optimized-hooks.json +19 -0
- package/.claude/cache/parallel-processing.json +26 -0
- package/.claude/optimized-settings.json +270 -0
- package/.claude/settings-backup.json +186 -0
- package/.claude/settings-enhanced.json +278 -0
- package/.claude/settings-fixed.json +186 -0
- package/.claude/settings.json +105 -8
- package/CHANGELOG.md +38 -0
- package/bin/claude-flow +1 -1
- package/dist/cli/simple-commands/hive-mind.js +1 -1
- package/dist/cli/simple-commands/hive-mind.js.map +1 -1
- package/dist/cli/simple-commands/hooks.js +6 -4
- package/dist/cli/simple-commands/hooks.js.map +1 -1
- package/dist/providers/anthropic-provider.d.ts +27 -0
- package/dist/providers/anthropic-provider.d.ts.map +1 -0
- package/dist/providers/anthropic-provider.js +247 -0
- package/dist/providers/anthropic-provider.js.map +1 -0
- package/dist/providers/base-provider.d.ts +134 -0
- package/dist/providers/base-provider.d.ts.map +1 -0
- package/dist/providers/base-provider.js +407 -0
- package/dist/providers/base-provider.js.map +1 -0
- package/dist/providers/cohere-provider.d.ts +28 -0
- package/dist/providers/cohere-provider.d.ts.map +1 -0
- package/dist/providers/cohere-provider.js +407 -0
- package/dist/providers/cohere-provider.js.map +1 -0
- package/dist/providers/google-provider.d.ts +23 -0
- package/dist/providers/google-provider.d.ts.map +1 -0
- package/dist/providers/google-provider.js +362 -0
- package/dist/providers/google-provider.js.map +1 -0
- package/dist/providers/index.d.ts +14 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +18 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/ollama-provider.d.ts +23 -0
- package/dist/providers/ollama-provider.d.ts.map +1 -0
- package/dist/providers/ollama-provider.js +374 -0
- package/dist/providers/ollama-provider.js.map +1 -0
- package/dist/providers/openai-provider.d.ts +23 -0
- package/dist/providers/openai-provider.d.ts.map +1 -0
- package/dist/providers/openai-provider.js +349 -0
- package/dist/providers/openai-provider.js.map +1 -0
- package/dist/providers/provider-manager.d.ts +139 -0
- package/dist/providers/provider-manager.d.ts.map +1 -0
- package/dist/providers/provider-manager.js +513 -0
- package/dist/providers/provider-manager.js.map +1 -0
- package/dist/providers/types.d.ts +356 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +61 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/utils.d.ts +37 -0
- package/dist/providers/utils.d.ts.map +1 -0
- package/dist/providers/utils.js +322 -0
- package/dist/providers/utils.js.map +1 -0
- package/dist/services/agentic-flow-hooks/hook-manager.d.ts +70 -0
- package/dist/services/agentic-flow-hooks/hook-manager.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/hook-manager.js +512 -0
- package/dist/services/agentic-flow-hooks/hook-manager.js.map +1 -0
- package/dist/services/agentic-flow-hooks/index.d.ts +36 -0
- package/dist/services/agentic-flow-hooks/index.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/index.js +325 -0
- package/dist/services/agentic-flow-hooks/index.js.map +1 -0
- package/dist/services/agentic-flow-hooks/llm-hooks.d.ts +33 -0
- package/dist/services/agentic-flow-hooks/llm-hooks.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/llm-hooks.js +415 -0
- package/dist/services/agentic-flow-hooks/llm-hooks.js.map +1 -0
- package/dist/services/agentic-flow-hooks/memory-hooks.d.ts +45 -0
- package/dist/services/agentic-flow-hooks/memory-hooks.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/memory-hooks.js +532 -0
- package/dist/services/agentic-flow-hooks/memory-hooks.js.map +1 -0
- package/dist/services/agentic-flow-hooks/neural-hooks.d.ts +39 -0
- package/dist/services/agentic-flow-hooks/neural-hooks.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/neural-hooks.js +561 -0
- package/dist/services/agentic-flow-hooks/neural-hooks.js.map +1 -0
- package/dist/services/agentic-flow-hooks/performance-hooks.d.ts +33 -0
- package/dist/services/agentic-flow-hooks/performance-hooks.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/performance-hooks.js +621 -0
- package/dist/services/agentic-flow-hooks/performance-hooks.js.map +1 -0
- package/dist/services/agentic-flow-hooks/types.d.ts +379 -0
- package/dist/services/agentic-flow-hooks/types.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/types.js +8 -0
- package/dist/services/agentic-flow-hooks/types.js.map +1 -0
- package/dist/services/agentic-flow-hooks/workflow-hooks.d.ts +39 -0
- package/dist/services/agentic-flow-hooks/workflow-hooks.d.ts.map +1 -0
- package/dist/services/agentic-flow-hooks/workflow-hooks.js +742 -0
- package/dist/services/agentic-flow-hooks/workflow-hooks.js.map +1 -0
- package/package.json +1 -1
- package/scripts/optimize-performance.js +400 -0
- package/scripts/performance-monitor.js +263 -0
- package/src/cli/help-text.js +1 -1
- package/src/cli/simple-cli.js +1 -1
- package/src/cli/simple-commands/hive-mind.js +1 -1
- package/src/providers/anthropic-provider.ts +282 -0
- package/src/providers/base-provider.ts +560 -0
- package/src/providers/cohere-provider.ts +521 -0
- package/src/providers/google-provider.ts +477 -0
- package/src/providers/index.ts +21 -0
- package/src/providers/ollama-provider.ts +489 -0
- package/src/providers/openai-provider.ts +476 -0
- package/src/providers/provider-manager.ts +654 -0
- package/src/providers/types.ts +531 -0
- package/src/providers/utils.ts +376 -0
- package/src/services/agentic-flow-hooks/hook-manager.ts +701 -0
- package/src/services/agentic-flow-hooks/index.ts +386 -0
- package/src/services/agentic-flow-hooks/llm-hooks.ts +557 -0
- package/src/services/agentic-flow-hooks/memory-hooks.ts +710 -0
- package/src/services/agentic-flow-hooks/neural-hooks.ts +758 -0
- package/src/services/agentic-flow-hooks/performance-hooks.ts +827 -0
- package/src/services/agentic-flow-hooks/types.ts +503 -0
- package/src/services/agentic-flow-hooks/workflow-hooks.ts +1026 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic (Claude) Provider Implementation
|
|
3
|
+
* Extends the existing Claude client with unified provider interface
|
|
4
|
+
*/
|
|
5
|
+
import { BaseProvider } from './base-provider.js';
|
|
6
|
+
import { ClaudeAPIClient } from '../api/claude-client.js';
|
|
7
|
+
export class AnthropicProvider extends BaseProvider {
|
|
8
|
+
name = 'anthropic';
|
|
9
|
+
capabilities = {
|
|
10
|
+
supportedModels: [
|
|
11
|
+
'claude-3-opus-20240229',
|
|
12
|
+
'claude-3-sonnet-20240229',
|
|
13
|
+
'claude-3-haiku-20240307',
|
|
14
|
+
'claude-2.1',
|
|
15
|
+
'claude-2.0',
|
|
16
|
+
'claude-instant-1.2',
|
|
17
|
+
],
|
|
18
|
+
maxContextLength: {
|
|
19
|
+
'claude-3-opus-20240229': 200000,
|
|
20
|
+
'claude-3-sonnet-20240229': 200000,
|
|
21
|
+
'claude-3-haiku-20240307': 200000,
|
|
22
|
+
'claude-2.1': 200000,
|
|
23
|
+
'claude-2.0': 100000,
|
|
24
|
+
'claude-instant-1.2': 100000,
|
|
25
|
+
},
|
|
26
|
+
maxOutputTokens: {
|
|
27
|
+
'claude-3-opus-20240229': 4096,
|
|
28
|
+
'claude-3-sonnet-20240229': 4096,
|
|
29
|
+
'claude-3-haiku-20240307': 4096,
|
|
30
|
+
'claude-2.1': 4096,
|
|
31
|
+
'claude-2.0': 4096,
|
|
32
|
+
'claude-instant-1.2': 4096,
|
|
33
|
+
},
|
|
34
|
+
supportsStreaming: true,
|
|
35
|
+
supportsFunctionCalling: false, // Claude doesn't have native function calling yet
|
|
36
|
+
supportsSystemMessages: true,
|
|
37
|
+
supportsVision: true, // Claude 3 models support vision
|
|
38
|
+
supportsAudio: false,
|
|
39
|
+
supportsTools: false,
|
|
40
|
+
supportsFineTuning: false,
|
|
41
|
+
supportsEmbeddings: false,
|
|
42
|
+
supportsLogprobs: false,
|
|
43
|
+
supportsBatching: false,
|
|
44
|
+
pricing: {
|
|
45
|
+
'claude-3-opus-20240229': {
|
|
46
|
+
promptCostPer1k: 0.015,
|
|
47
|
+
completionCostPer1k: 0.075,
|
|
48
|
+
currency: 'USD',
|
|
49
|
+
},
|
|
50
|
+
'claude-3-sonnet-20240229': {
|
|
51
|
+
promptCostPer1k: 0.003,
|
|
52
|
+
completionCostPer1k: 0.015,
|
|
53
|
+
currency: 'USD',
|
|
54
|
+
},
|
|
55
|
+
'claude-3-haiku-20240307': {
|
|
56
|
+
promptCostPer1k: 0.00025,
|
|
57
|
+
completionCostPer1k: 0.00125,
|
|
58
|
+
currency: 'USD',
|
|
59
|
+
},
|
|
60
|
+
'claude-2.1': {
|
|
61
|
+
promptCostPer1k: 0.008,
|
|
62
|
+
completionCostPer1k: 0.024,
|
|
63
|
+
currency: 'USD',
|
|
64
|
+
},
|
|
65
|
+
'claude-2.0': {
|
|
66
|
+
promptCostPer1k: 0.008,
|
|
67
|
+
completionCostPer1k: 0.024,
|
|
68
|
+
currency: 'USD',
|
|
69
|
+
},
|
|
70
|
+
'claude-instant-1.2': {
|
|
71
|
+
promptCostPer1k: 0.0008,
|
|
72
|
+
completionCostPer1k: 0.0024,
|
|
73
|
+
currency: 'USD',
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
claudeClient;
|
|
78
|
+
async doInitialize() {
|
|
79
|
+
// Create Claude client with our config
|
|
80
|
+
this.claudeClient = new ClaudeAPIClient(this.logger, { get: () => this.config }, // Mock config manager
|
|
81
|
+
{
|
|
82
|
+
apiKey: this.config.apiKey,
|
|
83
|
+
model: this.mapToAnthropicModel(this.config.model),
|
|
84
|
+
temperature: this.config.temperature,
|
|
85
|
+
maxTokens: this.config.maxTokens,
|
|
86
|
+
topP: this.config.topP,
|
|
87
|
+
topK: this.config.topK,
|
|
88
|
+
timeout: this.config.timeout,
|
|
89
|
+
retryAttempts: this.config.retryAttempts,
|
|
90
|
+
retryDelay: this.config.retryDelay,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
async doComplete(request) {
|
|
94
|
+
// Convert request to Claude format
|
|
95
|
+
const claudeMessages = request.messages.map((msg) => ({
|
|
96
|
+
role: msg.role === 'system' ? 'user' : msg.role,
|
|
97
|
+
content: msg.role === 'system' ? `System: ${msg.content}` : msg.content,
|
|
98
|
+
}));
|
|
99
|
+
// Extract system message if present
|
|
100
|
+
const systemMessage = request.messages.find((m) => m.role === 'system');
|
|
101
|
+
// Call Claude API
|
|
102
|
+
const response = await this.claudeClient.sendMessage(claudeMessages, {
|
|
103
|
+
model: request.model ? this.mapToAnthropicModel(request.model) : undefined,
|
|
104
|
+
temperature: request.temperature,
|
|
105
|
+
maxTokens: request.maxTokens,
|
|
106
|
+
systemPrompt: systemMessage?.content,
|
|
107
|
+
stream: false,
|
|
108
|
+
}); // ClaudeResponse type
|
|
109
|
+
// Calculate cost
|
|
110
|
+
const pricing = this.capabilities.pricing[response.model];
|
|
111
|
+
const promptCost = (response.usage.input_tokens / 1000) * pricing.promptCostPer1k;
|
|
112
|
+
const completionCost = (response.usage.output_tokens / 1000) * pricing.completionCostPer1k;
|
|
113
|
+
// Convert to unified response format
|
|
114
|
+
return {
|
|
115
|
+
id: response.id,
|
|
116
|
+
model: this.mapFromAnthropicModel(response.model),
|
|
117
|
+
provider: 'anthropic',
|
|
118
|
+
content: response.content[0].text,
|
|
119
|
+
usage: {
|
|
120
|
+
promptTokens: response.usage.input_tokens,
|
|
121
|
+
completionTokens: response.usage.output_tokens,
|
|
122
|
+
totalTokens: response.usage.input_tokens + response.usage.output_tokens,
|
|
123
|
+
},
|
|
124
|
+
cost: {
|
|
125
|
+
promptCost,
|
|
126
|
+
completionCost,
|
|
127
|
+
totalCost: promptCost + completionCost,
|
|
128
|
+
currency: 'USD',
|
|
129
|
+
},
|
|
130
|
+
finishReason: response.stop_reason === 'end_turn' ? 'stop' : 'length',
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
async *doStreamComplete(request) {
|
|
134
|
+
// Convert request to Claude format
|
|
135
|
+
const claudeMessages = request.messages.map((msg) => ({
|
|
136
|
+
role: msg.role === 'system' ? 'user' : msg.role,
|
|
137
|
+
content: msg.role === 'system' ? `System: ${msg.content}` : msg.content,
|
|
138
|
+
}));
|
|
139
|
+
const systemMessage = request.messages.find((m) => m.role === 'system');
|
|
140
|
+
// Get stream from Claude API
|
|
141
|
+
const stream = await this.claudeClient.sendMessage(claudeMessages, {
|
|
142
|
+
model: request.model ? this.mapToAnthropicModel(request.model) : undefined,
|
|
143
|
+
temperature: request.temperature,
|
|
144
|
+
maxTokens: request.maxTokens,
|
|
145
|
+
systemPrompt: systemMessage?.content,
|
|
146
|
+
stream: true,
|
|
147
|
+
}); // ClaudeStreamEvent type
|
|
148
|
+
let accumulatedContent = '';
|
|
149
|
+
let totalTokens = 0;
|
|
150
|
+
// Process stream events
|
|
151
|
+
for await (const event of stream) {
|
|
152
|
+
if (event.type === 'content_block_delta' && event.delta?.text) {
|
|
153
|
+
accumulatedContent += event.delta.text;
|
|
154
|
+
yield {
|
|
155
|
+
type: 'content',
|
|
156
|
+
delta: {
|
|
157
|
+
content: event.delta.text,
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
else if (event.type === 'message_delta' && event.usage) {
|
|
162
|
+
totalTokens = event.usage.output_tokens;
|
|
163
|
+
}
|
|
164
|
+
else if (event.type === 'message_stop') {
|
|
165
|
+
// Calculate final cost
|
|
166
|
+
const model = request.model || this.config.model;
|
|
167
|
+
const pricing = this.capabilities.pricing[model];
|
|
168
|
+
// Estimate prompt tokens (rough approximation)
|
|
169
|
+
const promptTokens = this.estimateTokens(JSON.stringify(request.messages));
|
|
170
|
+
const completionTokens = totalTokens;
|
|
171
|
+
const promptCost = (promptTokens / 1000) * pricing.promptCostPer1k;
|
|
172
|
+
const completionCost = (completionTokens / 1000) * pricing.completionCostPer1k;
|
|
173
|
+
yield {
|
|
174
|
+
type: 'done',
|
|
175
|
+
usage: {
|
|
176
|
+
promptTokens,
|
|
177
|
+
completionTokens,
|
|
178
|
+
totalTokens: promptTokens + completionTokens,
|
|
179
|
+
},
|
|
180
|
+
cost: {
|
|
181
|
+
promptCost,
|
|
182
|
+
completionCost,
|
|
183
|
+
totalCost: promptCost + completionCost,
|
|
184
|
+
currency: 'USD',
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
async listModels() {
|
|
191
|
+
return this.capabilities.supportedModels;
|
|
192
|
+
}
|
|
193
|
+
async getModelInfo(model) {
|
|
194
|
+
const anthropicModel = this.mapToAnthropicModel(model);
|
|
195
|
+
const info = this.claudeClient.getModelInfo(anthropicModel);
|
|
196
|
+
return {
|
|
197
|
+
model,
|
|
198
|
+
name: info.name,
|
|
199
|
+
description: info.description,
|
|
200
|
+
contextLength: info.contextWindow,
|
|
201
|
+
maxOutputTokens: this.capabilities.maxOutputTokens[model] || 4096,
|
|
202
|
+
supportedFeatures: [
|
|
203
|
+
'chat',
|
|
204
|
+
'completion',
|
|
205
|
+
...(model.startsWith('claude-3') ? ['vision'] : []),
|
|
206
|
+
],
|
|
207
|
+
pricing: this.capabilities.pricing[model],
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
async doHealthCheck() {
|
|
211
|
+
try {
|
|
212
|
+
// Use a minimal request to check API availability
|
|
213
|
+
await this.claudeClient.complete('Hi', {
|
|
214
|
+
maxTokens: 1,
|
|
215
|
+
});
|
|
216
|
+
return {
|
|
217
|
+
healthy: true,
|
|
218
|
+
timestamp: new Date(),
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
return {
|
|
223
|
+
healthy: false,
|
|
224
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
225
|
+
timestamp: new Date(),
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Map unified model to Anthropic model
|
|
231
|
+
*/
|
|
232
|
+
mapToAnthropicModel(model) {
|
|
233
|
+
// Direct mapping since we use the same model names
|
|
234
|
+
return model;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Map Anthropic model to unified model
|
|
238
|
+
*/
|
|
239
|
+
mapFromAnthropicModel(model) {
|
|
240
|
+
return model;
|
|
241
|
+
}
|
|
242
|
+
destroy() {
|
|
243
|
+
super.destroy();
|
|
244
|
+
this.claudeClient?.destroy();
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=anthropic-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../../src/providers/anthropic-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract Base Provider for LLM integrations
|
|
3
|
+
* Provides common functionality for all LLM providers
|
|
4
|
+
*/
|
|
5
|
+
import { EventEmitter } from 'events';
|
|
6
|
+
import { ILogger } from '../core/logger.js';
|
|
7
|
+
import { CircuitBreaker } from '../utils/helpers.js';
|
|
8
|
+
import { ILLMProvider, LLMProvider, LLMProviderConfig, LLMRequest, LLMResponse, LLMStreamEvent, LLMModel, ModelInfo, ProviderCapabilities, HealthCheckResult, ProviderStatus, CostEstimate, UsageStats, UsagePeriod, LLMProviderError } from './types.js';
|
|
9
|
+
export interface BaseProviderOptions {
|
|
10
|
+
logger: ILogger;
|
|
11
|
+
config: LLMProviderConfig;
|
|
12
|
+
cacheTTL?: number;
|
|
13
|
+
circuitBreakerOptions?: {
|
|
14
|
+
threshold?: number;
|
|
15
|
+
timeout?: number;
|
|
16
|
+
resetTimeout?: number;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export declare abstract class BaseProvider extends EventEmitter implements ILLMProvider {
|
|
20
|
+
abstract readonly name: LLMProvider;
|
|
21
|
+
abstract readonly capabilities: ProviderCapabilities;
|
|
22
|
+
protected logger: ILogger;
|
|
23
|
+
protected circuitBreaker: CircuitBreaker;
|
|
24
|
+
protected healthCheckInterval?: NodeJS.Timeout;
|
|
25
|
+
protected lastHealthCheck?: HealthCheckResult;
|
|
26
|
+
protected requestCount: number;
|
|
27
|
+
protected errorCount: number;
|
|
28
|
+
protected totalTokens: number;
|
|
29
|
+
protected totalCost: number;
|
|
30
|
+
protected requestMetrics: Map<string, any>;
|
|
31
|
+
config: LLMProviderConfig;
|
|
32
|
+
constructor(options: BaseProviderOptions);
|
|
33
|
+
/**
|
|
34
|
+
* Initialize the provider
|
|
35
|
+
*/
|
|
36
|
+
initialize(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Provider-specific initialization
|
|
39
|
+
*/
|
|
40
|
+
protected abstract doInitialize(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Validate provider configuration
|
|
43
|
+
*/
|
|
44
|
+
protected validateConfig(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Complete a request
|
|
47
|
+
*/
|
|
48
|
+
complete(request: LLMRequest): Promise<LLMResponse>;
|
|
49
|
+
/**
|
|
50
|
+
* Provider-specific completion implementation
|
|
51
|
+
*/
|
|
52
|
+
protected abstract doComplete(request: LLMRequest): Promise<LLMResponse>;
|
|
53
|
+
/**
|
|
54
|
+
* Stream complete a request
|
|
55
|
+
*/
|
|
56
|
+
streamComplete(request: LLMRequest): AsyncIterable<LLMStreamEvent>;
|
|
57
|
+
/**
|
|
58
|
+
* Provider-specific stream completion implementation
|
|
59
|
+
*/
|
|
60
|
+
protected abstract doStreamComplete(request: LLMRequest): AsyncIterable<LLMStreamEvent>;
|
|
61
|
+
/**
|
|
62
|
+
* List available models
|
|
63
|
+
*/
|
|
64
|
+
abstract listModels(): Promise<LLMModel[]>;
|
|
65
|
+
/**
|
|
66
|
+
* Get model information
|
|
67
|
+
*/
|
|
68
|
+
abstract getModelInfo(model: LLMModel): Promise<ModelInfo>;
|
|
69
|
+
/**
|
|
70
|
+
* Validate if a model is supported
|
|
71
|
+
*/
|
|
72
|
+
validateModel(model: LLMModel): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Perform health check
|
|
75
|
+
*/
|
|
76
|
+
healthCheck(): Promise<HealthCheckResult>;
|
|
77
|
+
/**
|
|
78
|
+
* Provider-specific health check implementation
|
|
79
|
+
*/
|
|
80
|
+
protected abstract doHealthCheck(): Promise<HealthCheckResult>;
|
|
81
|
+
/**
|
|
82
|
+
* Get provider status
|
|
83
|
+
*/
|
|
84
|
+
getStatus(): ProviderStatus;
|
|
85
|
+
/**
|
|
86
|
+
* Get remaining rate limit (override in provider)
|
|
87
|
+
*/
|
|
88
|
+
protected getRateLimitRemaining(): number | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* Get rate limit reset time (override in provider)
|
|
91
|
+
*/
|
|
92
|
+
protected getRateLimitReset(): Date | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* Estimate cost for a request
|
|
95
|
+
*/
|
|
96
|
+
estimateCost(request: LLMRequest): Promise<CostEstimate>;
|
|
97
|
+
/**
|
|
98
|
+
* Simple token estimation (4 chars = 1 token approximation)
|
|
99
|
+
*/
|
|
100
|
+
protected estimateTokens(text: string): number;
|
|
101
|
+
/**
|
|
102
|
+
* Get usage statistics
|
|
103
|
+
*/
|
|
104
|
+
getUsage(period?: UsagePeriod): Promise<UsageStats>;
|
|
105
|
+
/**
|
|
106
|
+
* Get start date for period
|
|
107
|
+
*/
|
|
108
|
+
private getStartDate;
|
|
109
|
+
/**
|
|
110
|
+
* Calculate average latency
|
|
111
|
+
*/
|
|
112
|
+
private calculateAverageLatency;
|
|
113
|
+
/**
|
|
114
|
+
* Track successful request
|
|
115
|
+
*/
|
|
116
|
+
protected trackRequest(request: LLMRequest, response: LLMResponse, latency: number): void;
|
|
117
|
+
/**
|
|
118
|
+
* Track streaming request
|
|
119
|
+
*/
|
|
120
|
+
protected trackStreamRequest(request: LLMRequest, totalTokens: number, totalCost: number, latency: number): void;
|
|
121
|
+
/**
|
|
122
|
+
* Transform errors to provider errors
|
|
123
|
+
*/
|
|
124
|
+
protected transformError(error: unknown): LLMProviderError;
|
|
125
|
+
/**
|
|
126
|
+
* Start periodic health checks
|
|
127
|
+
*/
|
|
128
|
+
protected startHealthChecks(): void;
|
|
129
|
+
/**
|
|
130
|
+
* Clean up resources
|
|
131
|
+
*/
|
|
132
|
+
destroy(): void;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=base-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-provider.d.ts","sourceRoot":"","sources":["../../src/providers/base-provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAkB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,cAAc,EACd,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,WAAW,EACX,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,CAAC,EAAE;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,8BAAsB,YAAa,SAAQ,YAAa,YAAW,YAAY;IAC7E,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAErD,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IACzC,SAAS,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAC/C,SAAS,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAAC;IAC9C,SAAS,CAAC,YAAY,SAAK;IAC3B,SAAS,CAAC,UAAU,SAAK;IACzB,SAAS,CAAC,WAAW,SAAK;IAC1B,SAAS,CAAC,SAAS,SAAK;IACxB,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAa;IAEhD,MAAM,EAAE,iBAAiB,CAAC;gBAErB,OAAO,EAAE,mBAAmB;IAkBxC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAEhD;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAuBhC;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAwCzD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAExE;;OAEG;IACI,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,aAAa,CAAC,cAAc,CAAC;IAsDzE;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,aAAa,CAAC,cAAc,CAAC;IAEvF;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IAE1D;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAIvC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA6B/C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAE9D;;OAEG;IACH,SAAS,IAAI,cAAc;IAc3B;;OAEG;IACH,SAAS,CAAC,qBAAqB,IAAI,MAAM,GAAG,SAAS;IAIrD;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI,GAAG,SAAS;IAI/C;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAwC9D;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI9C;;OAEG;IACG,QAAQ,CAAC,MAAM,GAAE,WAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IA0BhE;;OAEG;IACH,OAAO,CAAC,YAAY;IAsBpB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAyBzF;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAC1B,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,IAAI;IAiBP;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAmC1D;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAUnC;;OAEG;IACH,OAAO,IAAI,IAAI;CAUhB"}
|