agents-library 0.1.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 (89) hide show
  1. package/dist/base-agent.d.ts +172 -0
  2. package/dist/base-agent.d.ts.map +1 -0
  3. package/dist/base-agent.js +255 -0
  4. package/dist/base-agent.js.map +1 -0
  5. package/dist/base-bot.d.ts +282 -0
  6. package/dist/base-bot.d.ts.map +1 -0
  7. package/dist/base-bot.js +375 -0
  8. package/dist/base-bot.js.map +1 -0
  9. package/dist/common/result.d.ts +51 -0
  10. package/dist/common/result.d.ts.map +1 -0
  11. package/dist/common/result.js +45 -0
  12. package/dist/common/result.js.map +1 -0
  13. package/dist/common/types.d.ts +57 -0
  14. package/dist/common/types.d.ts.map +1 -0
  15. package/dist/common/types.js +42 -0
  16. package/dist/common/types.js.map +1 -0
  17. package/dist/index.d.ts +94 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +108 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/kadi-event-publisher.d.ts +163 -0
  22. package/dist/kadi-event-publisher.d.ts.map +1 -0
  23. package/dist/kadi-event-publisher.js +286 -0
  24. package/dist/kadi-event-publisher.js.map +1 -0
  25. package/dist/memory/arcadedb-adapter.d.ts +159 -0
  26. package/dist/memory/arcadedb-adapter.d.ts.map +1 -0
  27. package/dist/memory/arcadedb-adapter.js +314 -0
  28. package/dist/memory/arcadedb-adapter.js.map +1 -0
  29. package/dist/memory/file-storage-adapter.d.ts +122 -0
  30. package/dist/memory/file-storage-adapter.d.ts.map +1 -0
  31. package/dist/memory/file-storage-adapter.js +352 -0
  32. package/dist/memory/file-storage-adapter.js.map +1 -0
  33. package/dist/memory/memory-service.d.ts +208 -0
  34. package/dist/memory/memory-service.d.ts.map +1 -0
  35. package/dist/memory/memory-service.js +410 -0
  36. package/dist/memory/memory-service.js.map +1 -0
  37. package/dist/memory/types.d.ts +126 -0
  38. package/dist/memory/types.d.ts.map +1 -0
  39. package/dist/memory/types.js +41 -0
  40. package/dist/memory/types.js.map +1 -0
  41. package/dist/producer-tool-utils.d.ts +474 -0
  42. package/dist/producer-tool-utils.d.ts.map +1 -0
  43. package/dist/producer-tool-utils.js +664 -0
  44. package/dist/producer-tool-utils.js.map +1 -0
  45. package/dist/providers/anthropic-provider.d.ts +160 -0
  46. package/dist/providers/anthropic-provider.d.ts.map +1 -0
  47. package/dist/providers/anthropic-provider.js +527 -0
  48. package/dist/providers/anthropic-provider.js.map +1 -0
  49. package/dist/providers/model-manager-provider.d.ts +91 -0
  50. package/dist/providers/model-manager-provider.d.ts.map +1 -0
  51. package/dist/providers/model-manager-provider.js +355 -0
  52. package/dist/providers/model-manager-provider.js.map +1 -0
  53. package/dist/providers/provider-manager.d.ts +111 -0
  54. package/dist/providers/provider-manager.d.ts.map +1 -0
  55. package/dist/providers/provider-manager.js +337 -0
  56. package/dist/providers/provider-manager.js.map +1 -0
  57. package/dist/providers/types.d.ts +145 -0
  58. package/dist/providers/types.d.ts.map +1 -0
  59. package/dist/providers/types.js +23 -0
  60. package/dist/providers/types.js.map +1 -0
  61. package/dist/shadow-agent-factory.d.ts +623 -0
  62. package/dist/shadow-agent-factory.d.ts.map +1 -0
  63. package/dist/shadow-agent-factory.js +1117 -0
  64. package/dist/shadow-agent-factory.js.map +1 -0
  65. package/dist/types/agent-config.d.ts +307 -0
  66. package/dist/types/agent-config.d.ts.map +1 -0
  67. package/dist/types/agent-config.js +15 -0
  68. package/dist/types/agent-config.js.map +1 -0
  69. package/dist/types/event-schemas.d.ts +358 -0
  70. package/dist/types/event-schemas.d.ts.map +1 -0
  71. package/dist/types/event-schemas.js +188 -0
  72. package/dist/types/event-schemas.js.map +1 -0
  73. package/dist/types/tool-schemas.d.ts +498 -0
  74. package/dist/types/tool-schemas.d.ts.map +1 -0
  75. package/dist/types/tool-schemas.js +457 -0
  76. package/dist/types/tool-schemas.js.map +1 -0
  77. package/dist/utils/logger.d.ts +135 -0
  78. package/dist/utils/logger.d.ts.map +1 -0
  79. package/dist/utils/logger.js +205 -0
  80. package/dist/utils/logger.js.map +1 -0
  81. package/dist/utils/timer.d.ts +186 -0
  82. package/dist/utils/timer.d.ts.map +1 -0
  83. package/dist/utils/timer.js +211 -0
  84. package/dist/utils/timer.js.map +1 -0
  85. package/dist/worker-agent-factory.d.ts +688 -0
  86. package/dist/worker-agent-factory.d.ts.map +1 -0
  87. package/dist/worker-agent-factory.js +1517 -0
  88. package/dist/worker-agent-factory.js.map +1 -0
  89. package/package.json +38 -0
@@ -0,0 +1,337 @@
1
+ /**
2
+ * Provider Manager - LLM Provider Orchestration
3
+ *
4
+ * Orchestrates multiple LLM providers with intelligent routing, health monitoring,
5
+ * automatic fallback, retry logic with exponential backoff, and circuit breaker pattern.
6
+ */
7
+ import { ProviderErrorType } from './types.js';
8
+ import { ok, err } from '../common/result.js';
9
+ /**
10
+ * Provider Manager
11
+ *
12
+ * Manages multiple LLM providers with:
13
+ * - Model-based routing (claude→Anthropic, gpt→Model Manager)
14
+ * - Automatic fallback on provider failure
15
+ * - Retry logic with exponential backoff
16
+ * - Circuit breaker pattern (unhealthy after N consecutive failures)
17
+ * - Periodic health checks
18
+ * - Rate limit handling with backoff
19
+ */
20
+ export class ProviderManager {
21
+ config;
22
+ providers = new Map();
23
+ healthStatus = new Map();
24
+ healthCheckInterval;
25
+ /**
26
+ * Circuit breaker configuration
27
+ */
28
+ maxConsecutiveFailures = 3;
29
+ /**
30
+ * Rate limit backoff: 5s * 2^attempt
31
+ */
32
+ rateLimitBaseDelayMs = 5000;
33
+ /**
34
+ * Create Provider Manager instance
35
+ *
36
+ * @param providers - Array of LLM providers to manage
37
+ * @param config - Provider configuration (primary, fallback, retry, health check)
38
+ */
39
+ constructor(providers, config) {
40
+ this.config = config;
41
+ // Register providers
42
+ for (const provider of providers) {
43
+ this.providers.set(provider.name, provider);
44
+ this.healthStatus.set(provider.name, {
45
+ isHealthy: true,
46
+ consecutiveFailures: 0,
47
+ lastCheck: new Date(),
48
+ });
49
+ }
50
+ // Validate configuration
51
+ if (!this.providers.has(config.primaryProvider)) {
52
+ throw new Error(`Primary provider "${config.primaryProvider}" not found in providers list`);
53
+ }
54
+ if (config.fallbackProvider &&
55
+ !this.providers.has(config.fallbackProvider)) {
56
+ throw new Error(`Fallback provider "${config.fallbackProvider}" not found in providers list`);
57
+ }
58
+ // Start periodic health checks
59
+ this.startHealthChecks();
60
+ }
61
+ /**
62
+ * Generate chat completion with provider selection and fallback
63
+ *
64
+ * @param messages - Conversation messages
65
+ * @param options - Optional chat configuration
66
+ * @returns Result with response text or error
67
+ */
68
+ async chat(messages, options) {
69
+ // Select provider based on model or use primary
70
+ const selectedProvider = this.selectProvider(options?.model);
71
+ const modelInfo = options?.model ? ` for model '${options.model}'` : ' (default model)';
72
+ console.log(`[ProviderManager:Chat] Selected provider: ${selectedProvider}${modelInfo}`);
73
+ // Attempt with primary provider
74
+ const result = await this.attemptWithRetry(selectedProvider, async (provider) => provider.chat(messages, options));
75
+ // If primary succeeded, return result
76
+ if (result.success) {
77
+ return result;
78
+ }
79
+ // Handle rate limit with backoff
80
+ if (!result.success && result.error.type === ProviderErrorType.RATE_LIMIT) {
81
+ console.warn(`[ProviderManager:Chat] Rate limit on ${selectedProvider}, backing off...`);
82
+ // Don't fall back on rate limit - just return the error
83
+ return result;
84
+ }
85
+ // If primary failed and fallback configured, try fallback
86
+ if (this.config.fallbackProvider &&
87
+ this.config.fallbackProvider !== selectedProvider) {
88
+ console.warn(`[ProviderManager:Chat] Primary provider ${selectedProvider} failed, trying fallback ${this.config.fallbackProvider}`);
89
+ const fallbackResult = await this.attemptWithRetry(this.config.fallbackProvider, async (provider) => provider.chat(messages, options));
90
+ if (fallbackResult.success) {
91
+ return fallbackResult;
92
+ }
93
+ }
94
+ // Both primary and fallback failed
95
+ return result;
96
+ }
97
+ /**
98
+ * Generate streaming chat completion with provider selection and fallback
99
+ *
100
+ * @param messages - Conversation messages
101
+ * @param options - Optional chat configuration
102
+ * @returns Result with async iterator of text chunks or error
103
+ */
104
+ async streamChat(messages, options) {
105
+ // Select provider based on model or use primary
106
+ const selectedProvider = this.selectProvider(options?.model);
107
+ const modelInfo = options?.model ? ` for model '${options.model}'` : ' (default model)';
108
+ console.log(`[ProviderManager:Stream] Selected provider: ${selectedProvider}${modelInfo}`);
109
+ // Attempt with primary provider
110
+ const result = await this.attemptWithRetry(selectedProvider, async (provider) => provider.streamChat(messages, options));
111
+ // If primary succeeded, return result
112
+ if (result.success) {
113
+ return result;
114
+ }
115
+ // Handle rate limit with backoff
116
+ if (!result.success && result.error.type === ProviderErrorType.RATE_LIMIT) {
117
+ console.warn(`[ProviderManager:Stream] Rate limit on ${selectedProvider}, backing off...`);
118
+ return result;
119
+ }
120
+ // If primary failed and fallback configured, try fallback
121
+ if (this.config.fallbackProvider &&
122
+ this.config.fallbackProvider !== selectedProvider) {
123
+ console.warn(`[ProviderManager:Stream] Primary provider ${selectedProvider} failed, trying fallback ${this.config.fallbackProvider}`);
124
+ const fallbackResult = await this.attemptWithRetry(this.config.fallbackProvider, async (provider) => provider.streamChat(messages, options));
125
+ if (fallbackResult.success) {
126
+ return fallbackResult;
127
+ }
128
+ }
129
+ // Both primary and fallback failed
130
+ return result;
131
+ }
132
+ /**
133
+ * Get combined list of available models from all healthy providers
134
+ *
135
+ * @returns Result with array of model IDs or error
136
+ */
137
+ async getAvailableModels() {
138
+ const allModels = [];
139
+ const errors = [];
140
+ for (const [name, provider] of this.providers) {
141
+ const health = this.healthStatus.get(name);
142
+ if (!health?.isHealthy) {
143
+ continue; // Skip unhealthy providers
144
+ }
145
+ const result = await provider.getAvailableModels();
146
+ if (result.success) {
147
+ allModels.push(...result.data);
148
+ }
149
+ else {
150
+ const errorResult = result;
151
+ errors.push(errorResult.error);
152
+ }
153
+ }
154
+ if (allModels.length > 0) {
155
+ return ok(allModels);
156
+ }
157
+ // If no models available, return first error
158
+ if (errors.length > 0) {
159
+ return err(errors[0]);
160
+ }
161
+ return err({
162
+ type: ProviderErrorType.UNKNOWN,
163
+ message: 'No healthy providers available',
164
+ provider: 'provider-manager',
165
+ });
166
+ }
167
+ /**
168
+ * Get health status of all providers
169
+ *
170
+ * @returns Map of provider names to health status
171
+ */
172
+ getHealthStatus() {
173
+ return new Map(this.healthStatus);
174
+ }
175
+ /**
176
+ * Manually trigger health check for all providers
177
+ */
178
+ async checkAllProvidersHealth() {
179
+ const checks = Array.from(this.providers.entries()).map(async ([name, provider]) => {
180
+ try {
181
+ const isHealthy = await provider.isHealthy();
182
+ const currentHealth = this.healthStatus.get(name);
183
+ if (isHealthy) {
184
+ // Reset failures on successful health check
185
+ currentHealth.consecutiveFailures = 0;
186
+ currentHealth.isHealthy = true;
187
+ // Reset provider's internal failure counter
188
+ provider.resetHealth();
189
+ }
190
+ else {
191
+ currentHealth.consecutiveFailures++;
192
+ // Circuit breaker: mark unhealthy after max failures
193
+ if (currentHealth.consecutiveFailures >= this.maxConsecutiveFailures) {
194
+ currentHealth.isHealthy = false;
195
+ console.warn(`[ProviderManager:HealthCheck] Provider ${name} marked unhealthy after ${currentHealth.consecutiveFailures} consecutive failures`);
196
+ }
197
+ }
198
+ currentHealth.lastCheck = new Date();
199
+ }
200
+ catch (error) {
201
+ console.error(`[ProviderManager:HealthCheck] Health check error for ${name}:`, error);
202
+ }
203
+ });
204
+ await Promise.all(checks);
205
+ }
206
+ /**
207
+ * Clean up resources (stop health checks)
208
+ */
209
+ dispose() {
210
+ if (this.healthCheckInterval) {
211
+ clearInterval(this.healthCheckInterval);
212
+ this.healthCheckInterval = undefined;
213
+ }
214
+ }
215
+ /**
216
+ * Select provider based on model name or use primary
217
+ *
218
+ * Model-based routing:
219
+ * - Models starting with "claude" → anthropic provider
220
+ * - Models starting with "gpt" → model-manager provider
221
+ * - Otherwise → primary provider from config
222
+ */
223
+ selectProvider(model) {
224
+ if (!model) {
225
+ return this.config.primaryProvider;
226
+ }
227
+ const modelLower = model.toLowerCase();
228
+ if (modelLower.startsWith('claude')) {
229
+ return 'anthropic';
230
+ }
231
+ if (modelLower.startsWith('gpt')) {
232
+ return 'model-manager';
233
+ }
234
+ return this.config.primaryProvider;
235
+ }
236
+ /**
237
+ * Attempt operation with retry and exponential backoff
238
+ *
239
+ * @param providerName - Name of provider to use
240
+ * @param operation - Operation to attempt
241
+ * @returns Result from operation
242
+ */
243
+ async attemptWithRetry(providerName, operation) {
244
+ const provider = this.providers.get(providerName);
245
+ if (!provider) {
246
+ return err({
247
+ type: ProviderErrorType.UNKNOWN,
248
+ message: `Provider "${providerName}" not found`,
249
+ provider: 'provider-manager',
250
+ });
251
+ }
252
+ // Check circuit breaker
253
+ const health = this.healthStatus.get(providerName);
254
+ if (health && !health.isHealthy) {
255
+ console.warn(`[ProviderManager:Retry] Provider ${providerName} is unhealthy, skipping`);
256
+ return err({
257
+ type: ProviderErrorType.UNKNOWN,
258
+ message: `Provider "${providerName}" is currently unhealthy`,
259
+ provider: providerName,
260
+ });
261
+ }
262
+ let lastError;
263
+ for (let attempt = 0; attempt < this.config.retryAttempts; attempt++) {
264
+ if (attempt > 0) {
265
+ // Exponential backoff: delayMs * 2^attempt
266
+ const delay = this.config.retryDelayMs * Math.pow(2, attempt - 1);
267
+ console.log(`[ProviderManager:Retry] Attempt ${attempt + 1}/${this.config.retryAttempts} for ${providerName} after ${delay}ms delay`);
268
+ await this.sleep(delay);
269
+ }
270
+ const result = await operation(provider);
271
+ if (result.success) {
272
+ // Success - reset failure counter
273
+ if (health) {
274
+ health.consecutiveFailures = 0;
275
+ health.isHealthy = true;
276
+ }
277
+ return result;
278
+ }
279
+ // Type cast to error branch
280
+ const errorResult = result;
281
+ lastError = errorResult.error;
282
+ console.error(`[ProviderManager:Retry] Provider ${providerName} attempt ${attempt + 1} failed:`, errorResult.error.type, errorResult.error.message);
283
+ // Handle rate limits with special backoff
284
+ if (errorResult.error.type === ProviderErrorType.RATE_LIMIT) {
285
+ const rateLimitDelay = this.rateLimitBaseDelayMs * Math.pow(2, attempt);
286
+ console.warn(`[ProviderManager:Retry] Rate limit detected on ${providerName}, waiting ${rateLimitDelay}ms before retry`);
287
+ await this.sleep(rateLimitDelay);
288
+ }
289
+ // Don't retry on auth failures or invalid requests
290
+ if (errorResult.error.type === ProviderErrorType.AUTH_FAILED ||
291
+ errorResult.error.type === ProviderErrorType.INVALID_REQUEST) {
292
+ console.error(`[ProviderManager:Retry] Non-retryable error on ${providerName}: ${errorResult.error.type}`);
293
+ break;
294
+ }
295
+ }
296
+ // After all retries exhausted, track failure for health monitoring
297
+ // Only track actual health issues, not model routing problems
298
+ if (health && lastError) {
299
+ // Exclude MODEL_NOT_FOUND - these are routing issues, not health problems
300
+ const shouldTrackFailure = lastError.type !== ProviderErrorType.MODEL_NOT_FOUND;
301
+ if (shouldTrackFailure) {
302
+ health.consecutiveFailures++;
303
+ if (health.consecutiveFailures >= this.maxConsecutiveFailures) {
304
+ health.isHealthy = false;
305
+ console.warn(`[ProviderManager:CircuitBreaker] Provider ${providerName} circuit opened after ${health.consecutiveFailures} consecutive request failures`);
306
+ }
307
+ }
308
+ else {
309
+ // MODEL_NOT_FOUND doesn't affect health - log for debugging
310
+ console.log(`[ProviderManager:Routing] Provider ${providerName} doesn't support requested model (not a health issue)`);
311
+ }
312
+ }
313
+ return err(lastError || {
314
+ type: ProviderErrorType.UNKNOWN,
315
+ message: 'All retry attempts failed',
316
+ provider: providerName,
317
+ });
318
+ }
319
+ /**
320
+ * Start periodic health checks for all providers
321
+ */
322
+ startHealthChecks() {
323
+ // Run initial health check
324
+ this.checkAllProvidersHealth().catch((error) => console.error('[ProviderManager:HealthCheck] Initial health check failed:', error));
325
+ // Schedule periodic health checks
326
+ this.healthCheckInterval = setInterval(() => {
327
+ this.checkAllProvidersHealth().catch((error) => console.error('[ProviderManager:HealthCheck] Periodic health check failed:', error));
328
+ }, this.config.healthCheckIntervalMs);
329
+ }
330
+ /**
331
+ * Sleep utility for delays
332
+ */
333
+ sleep(ms) {
334
+ return new Promise((resolve) => setTimeout(resolve, ms));
335
+ }
336
+ }
337
+ //# sourceMappingURL=provider-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-manager.js","sourceRoot":"","sources":["../../src/providers/provider-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * LLM Provider System Types
3
+ * LLM Provider System Types
4
+ *
5
+ * Defines interfaces and types for the pluggable LLM provider architecture.
6
+ * Supports multiple providers (Anthropic Claude, OpenAI-compatible Model Manager Gateway)
7
+ * with automatic failover and health monitoring.
8
+ */
9
+ import type { Result } from '../common/result.js';
10
+ /**
11
+ * Message format for LLM conversations
12
+ * Supports OpenAI tool calling protocol
13
+ */
14
+ export interface Message {
15
+ role: 'user' | 'assistant' | 'system' | 'tool';
16
+ content: string | null;
17
+ tool_call_id?: string;
18
+ tool_calls?: Array<{
19
+ id: string;
20
+ type: 'function';
21
+ function: {
22
+ name: string;
23
+ arguments: string;
24
+ };
25
+ }>;
26
+ }
27
+ /**
28
+ * OpenAI-compatible tool definition
29
+ */
30
+ export interface ToolDefinition {
31
+ type: 'function';
32
+ function: {
33
+ name: string;
34
+ description: string;
35
+ parameters: any;
36
+ };
37
+ }
38
+ /**
39
+ * Options for LLM chat requests
40
+ */
41
+ export interface ChatOptions {
42
+ model?: string;
43
+ /** System prompt passed to the LLM as a top-level parameter (not in messages array). */
44
+ system?: string;
45
+ maxTokens?: number;
46
+ temperature?: number;
47
+ stopSequences?: string[];
48
+ tools?: ToolDefinition[];
49
+ tool_choice?: 'auto' | 'none' | {
50
+ type: 'function';
51
+ function: {
52
+ name: string;
53
+ };
54
+ };
55
+ }
56
+ /**
57
+ * Provider error types
58
+ * Provider error types
59
+ */
60
+ export declare enum ProviderErrorType {
61
+ AUTH_FAILED = "AUTH_FAILED",
62
+ RATE_LIMIT = "RATE_LIMIT",
63
+ TIMEOUT = "TIMEOUT",
64
+ NETWORK_ERROR = "NETWORK_ERROR",
65
+ INVALID_REQUEST = "INVALID_REQUEST",
66
+ MODEL_NOT_FOUND = "MODEL_NOT_FOUND",
67
+ UNKNOWN = "UNKNOWN"
68
+ }
69
+ /**
70
+ * Error object returned by providers
71
+ * Error object returned by providers
72
+ */
73
+ export interface ProviderError {
74
+ type: ProviderErrorType;
75
+ message: string;
76
+ provider: string;
77
+ originalError?: unknown;
78
+ }
79
+ /**
80
+ * Provider health status
81
+ * Provider health status
82
+ */
83
+ export interface ProviderStatus {
84
+ isHealthy: boolean;
85
+ consecutiveFailures: number;
86
+ lastCheck: Date;
87
+ }
88
+ /**
89
+ * Provider configuration
90
+ * Provider configuration
91
+ */
92
+ export interface ProviderConfig {
93
+ primaryProvider: string;
94
+ fallbackProvider?: string;
95
+ retryAttempts: number;
96
+ retryDelayMs: number;
97
+ healthCheckIntervalMs: number;
98
+ }
99
+ /**
100
+ * Standard interface for all LLM provider adapters
101
+ * Standard interface for all LLM provider adapters
102
+ *
103
+ * All LLM providers (Anthropic, Model Manager) must implement this interface
104
+ * to enable pluggable provider architecture with automatic failover.
105
+ */
106
+ export interface LLMProvider {
107
+ /** Provider name (e.g., 'anthropic', 'model-manager') */
108
+ name: string;
109
+ /**
110
+ * Generate chat completion
111
+ *
112
+ * @param messages - Conversation messages
113
+ * @param options - Optional chat configuration
114
+ * @returns Result with response text or error
115
+ */
116
+ chat(messages: Message[], options?: ChatOptions): Promise<Result<string, ProviderError>>;
117
+ /**
118
+ * Generate streaming chat completion
119
+ *
120
+ * @param messages - Conversation messages
121
+ * @param options - Optional chat configuration
122
+ * @returns Result with async iterator of text chunks or error
123
+ */
124
+ streamChat(messages: Message[], options?: ChatOptions): Promise<Result<AsyncIterable<string>, ProviderError>>;
125
+ /**
126
+ * Check if provider is healthy
127
+ *
128
+ * @returns True if provider is responding correctly
129
+ */
130
+ isHealthy(): Promise<boolean>;
131
+ /**
132
+ * Reset provider health status
133
+ *
134
+ * Clears failure counters and marks provider as healthy again.
135
+ * Called by ProviderManager when health checks pass.
136
+ */
137
+ resetHealth(): void;
138
+ /**
139
+ * Get list of available models
140
+ *
141
+ * @returns Result with array of model IDs or error
142
+ */
143
+ getAvailableModels(): Promise<Result<string[], ProviderError>>;
144
+ }
145
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * LLM Provider System Types
3
+ * LLM Provider System Types
4
+ *
5
+ * Defines interfaces and types for the pluggable LLM provider architecture.
6
+ * Supports multiple providers (Anthropic Claude, OpenAI-compatible Model Manager Gateway)
7
+ * with automatic failover and health monitoring.
8
+ */
9
+ /**
10
+ * Provider error types
11
+ * Provider error types
12
+ */
13
+ export var ProviderErrorType;
14
+ (function (ProviderErrorType) {
15
+ ProviderErrorType["AUTH_FAILED"] = "AUTH_FAILED";
16
+ ProviderErrorType["RATE_LIMIT"] = "RATE_LIMIT";
17
+ ProviderErrorType["TIMEOUT"] = "TIMEOUT";
18
+ ProviderErrorType["NETWORK_ERROR"] = "NETWORK_ERROR";
19
+ ProviderErrorType["INVALID_REQUEST"] = "INVALID_REQUEST";
20
+ ProviderErrorType["MODEL_NOT_FOUND"] = "MODEL_NOT_FOUND";
21
+ ProviderErrorType["UNKNOWN"] = "UNKNOWN";
22
+ })(ProviderErrorType || (ProviderErrorType = {}));
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgDH;;;GAGG;AACH,MAAM,CAAN,IAAY,iBAQX;AARD,WAAY,iBAAiB;IAC3B,gDAA2B,CAAA;IAC3B,8CAAyB,CAAA;IACzB,wCAAmB,CAAA;IACnB,oDAA+B,CAAA;IAC/B,wDAAmC,CAAA;IACnC,wDAAmC,CAAA;IACnC,wCAAmB,CAAA;AACrB,CAAC,EARW,iBAAiB,KAAjB,iBAAiB,QAQ5B"}