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 @@
1
+ {"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../../src/providers/anthropic-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Model Manager Provider Implementation
3
+ *
4
+ * Implements LLMProvider interface for OpenAI-compatible Model Manager Gateway.
5
+ * Uses native fetch API with timeout handling and proper error mapping.
6
+ */
7
+ import type { LLMProvider, Message, ChatOptions, ProviderError } from './types.js';
8
+ import type { Result } from '../common/result.js';
9
+ /**
10
+ * Model Manager Provider
11
+ *
12
+ * Communicates with OpenAI-compatible Model Manager Gateway.
13
+ * Uses fetch API for HTTP requests with timeout and error handling.
14
+ */
15
+ export declare class ModelManagerProvider implements LLMProvider {
16
+ private readonly baseURL;
17
+ private readonly apiKey;
18
+ private readonly timeoutMs;
19
+ readonly name = "model-manager";
20
+ private consecutiveFailures;
21
+ private readonly maxConsecutiveFailures;
22
+ /**
23
+ * Default configuration
24
+ */
25
+ private readonly defaultModel;
26
+ private readonly defaultMaxTokens;
27
+ /**
28
+ * HTTPS agent with disabled SSL verification
29
+ * Required for self-signed certificates in development/staging environments
30
+ */
31
+ private readonly httpsAgent;
32
+ /**
33
+ * Create Model Manager provider instance
34
+ *
35
+ * @param baseURL - Base URL of Model Manager Gateway (e.g., 'https://gateway.example.com')
36
+ * @param apiKey - API key for authentication
37
+ * @param timeoutMs - Request timeout in milliseconds (default: 30000)
38
+ */
39
+ constructor(baseURL: string, apiKey: string, timeoutMs?: number);
40
+ /**
41
+ * Generate chat completion
42
+ *
43
+ * @param messages - Conversation messages
44
+ * @param options - Optional chat configuration
45
+ * @returns Result with response text or error
46
+ */
47
+ chat(messages: Message[], options?: ChatOptions): Promise<Result<string, ProviderError>>;
48
+ /**
49
+ * Generate streaming chat completion
50
+ *
51
+ * @param messages - Conversation messages
52
+ * @param options - Optional chat configuration
53
+ * @returns Result with async iterator of text chunks or error
54
+ */
55
+ streamChat(messages: Message[], options?: ChatOptions): Promise<Result<AsyncIterable<string>, ProviderError>>;
56
+ /**
57
+ * Check if provider is healthy
58
+ *
59
+ * @returns True if provider is responding correctly
60
+ */
61
+ isHealthy(): Promise<boolean>;
62
+ /**
63
+ * Reset provider health status
64
+ *
65
+ * Clears consecutive failure counter and marks provider as healthy.
66
+ */
67
+ resetHealth(): void;
68
+ /**
69
+ * Get list of available models
70
+ *
71
+ * @returns Result with array of model IDs or error
72
+ */
73
+ getAvailableModels(): Promise<Result<string[], ProviderError>>;
74
+ /**
75
+ * Create async iterator from ReadableStream
76
+ */
77
+ private createStreamIterator;
78
+ /**
79
+ * Handle HTTP error responses
80
+ */
81
+ private handleHTTPError;
82
+ /**
83
+ * Handle general errors (network, timeout, etc.)
84
+ */
85
+ private handleError;
86
+ /**
87
+ * Create standardized ProviderError
88
+ */
89
+ private createError;
90
+ }
91
+ //# sourceMappingURL=model-manager-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-manager-provider.d.ts","sourceRoot":"","sources":["../../src/providers/model-manager-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA2FlD;;;;;GAKG;AACH,qBAAa,oBAAqB,YAAW,WAAW;IA2BpD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IA5B5B,SAAgB,IAAI,mBAAmB;IACvC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAK;IAE5C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IAEzC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAExB;IAEH;;;;;;OAMG;gBAEgB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,MAAc;IAa5C;;;;;;OAMG;IACG,IAAI,CACR,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAoGzC;;;;;;OAMG;IACG,UAAU,CACd,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC;IAoExD;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAUnC;;;;OAIG;IACH,WAAW,IAAI,IAAI;IAInB;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC;IA+BpE;;OAEG;YACY,oBAAoB;IAwCnC;;OAEG;YACW,eAAe;IAkD7B;;OAEG;IACH,OAAO,CAAC,WAAW;IA4BnB;;OAEG;IACH,OAAO,CAAC,WAAW;CAUpB"}
@@ -0,0 +1,355 @@
1
+ /**
2
+ * Model Manager Provider Implementation
3
+ *
4
+ * Implements LLMProvider interface for OpenAI-compatible Model Manager Gateway.
5
+ * Uses native fetch API with timeout handling and proper error mapping.
6
+ */
7
+ import https from 'https';
8
+ import { ProviderErrorType } from './types.js';
9
+ import { ok, err } from '../common/result.js';
10
+ /**
11
+ * Model Manager Provider
12
+ *
13
+ * Communicates with OpenAI-compatible Model Manager Gateway.
14
+ * Uses fetch API for HTTP requests with timeout and error handling.
15
+ */
16
+ export class ModelManagerProvider {
17
+ baseURL;
18
+ apiKey;
19
+ timeoutMs;
20
+ name = 'model-manager';
21
+ consecutiveFailures = 0;
22
+ maxConsecutiveFailures = 3;
23
+ /**
24
+ * Default configuration
25
+ */
26
+ defaultModel = 'gpt-5-mini';
27
+ defaultMaxTokens = 4096;
28
+ /**
29
+ * HTTPS agent with disabled SSL verification
30
+ * Required for self-signed certificates in development/staging environments
31
+ */
32
+ httpsAgent = new https.Agent({
33
+ rejectUnauthorized: false,
34
+ });
35
+ /**
36
+ * Create Model Manager provider instance
37
+ *
38
+ * @param baseURL - Base URL of Model Manager Gateway (e.g., 'https://gateway.example.com')
39
+ * @param apiKey - API key for authentication
40
+ * @param timeoutMs - Request timeout in milliseconds (default: 30000)
41
+ */
42
+ constructor(baseURL, apiKey, timeoutMs = 90000) {
43
+ this.baseURL = baseURL;
44
+ this.apiKey = apiKey;
45
+ this.timeoutMs = timeoutMs;
46
+ if (!baseURL || baseURL.trim() === '') {
47
+ throw new Error('Model Manager base URL is required');
48
+ }
49
+ if (!apiKey || apiKey.trim() === '') {
50
+ throw new Error('Model Manager API key is required');
51
+ }
52
+ // Remove trailing slash from baseURL
53
+ this.baseURL = baseURL.replace(/\/$/, '');
54
+ }
55
+ /**
56
+ * Generate chat completion
57
+ *
58
+ * @param messages - Conversation messages
59
+ * @param options - Optional chat configuration
60
+ * @returns Result with response text or error
61
+ */
62
+ async chat(messages, options) {
63
+ const controller = new AbortController();
64
+ const timeoutId = setTimeout(() => controller.abort(), this.timeoutMs);
65
+ try {
66
+ // Build OpenAI messages array, prepending system prompt if provided
67
+ const openaiMessages = [
68
+ ...(options?.system ? [{ role: 'system', content: options.system }] : []),
69
+ ...messages.map((msg) => ({
70
+ role: msg.role,
71
+ content: msg.content,
72
+ ...(msg.tool_call_id && { tool_call_id: msg.tool_call_id }),
73
+ ...(msg.tool_calls && { tool_calls: msg.tool_calls }),
74
+ })),
75
+ ];
76
+ const requestBody = {
77
+ model: options?.model || this.defaultModel,
78
+ messages: openaiMessages,
79
+ max_completion_tokens: options?.maxTokens || this.defaultMaxTokens,
80
+ temperature: options?.temperature,
81
+ stop: options?.stopSequences,
82
+ stream: false,
83
+ ...(options?.tools && { tools: options.tools }),
84
+ ...(options?.tool_choice && { tool_choice: options.tool_choice }),
85
+ };
86
+ const response = await fetch(`${this.baseURL}/v1/chat/completions`, {
87
+ method: 'POST',
88
+ headers: {
89
+ 'Content-Type': 'application/json',
90
+ Authorization: `Bearer ${this.apiKey}`,
91
+ },
92
+ body: JSON.stringify(requestBody),
93
+ signal: controller.signal,
94
+ // @ts-ignore - Node.js fetch accepts agent option
95
+ agent: this.httpsAgent,
96
+ });
97
+ clearTimeout(timeoutId);
98
+ if (!response.ok) {
99
+ this.consecutiveFailures++;
100
+ return err(await this.handleHTTPError(response));
101
+ }
102
+ const data = (await response.json());
103
+ // Extract response
104
+ const choice = data.choices[0];
105
+ if (!choice || !choice.message) {
106
+ this.consecutiveFailures++;
107
+ return err(this.createError(ProviderErrorType.INVALID_REQUEST, 'No message in response'));
108
+ }
109
+ const message = choice.message;
110
+ // Check if LLM wants to call tools
111
+ if (message.tool_calls && message.tool_calls.length > 0) {
112
+ // Return tool calls as a special JSON format that the bot can parse
113
+ // Format: __TOOL_CALLS__<JSON>
114
+ const toolCallsData = {
115
+ tool_calls: message.tool_calls,
116
+ message: message.content || ''
117
+ };
118
+ const result = `__TOOL_CALLS__${JSON.stringify(toolCallsData)}`;
119
+ this.consecutiveFailures = 0;
120
+ return ok(result);
121
+ }
122
+ // Regular text response
123
+ // Allow empty string as valid response, only error if content is null/undefined
124
+ if (message.content === null || message.content === undefined) {
125
+ this.consecutiveFailures++;
126
+ return err(this.createError(ProviderErrorType.INVALID_REQUEST, 'No content in response'));
127
+ }
128
+ // Reset failure counter on success
129
+ this.consecutiveFailures = 0;
130
+ return ok(message.content);
131
+ }
132
+ catch (error) {
133
+ clearTimeout(timeoutId);
134
+ this.consecutiveFailures++;
135
+ return err(this.handleError(error));
136
+ }
137
+ }
138
+ /**
139
+ * Generate streaming chat completion
140
+ *
141
+ * @param messages - Conversation messages
142
+ * @param options - Optional chat configuration
143
+ * @returns Result with async iterator of text chunks or error
144
+ */
145
+ async streamChat(messages, options) {
146
+ const controller = new AbortController();
147
+ const timeoutId = setTimeout(() => controller.abort(), this.timeoutMs);
148
+ try {
149
+ // Build OpenAI messages array, prepending system prompt if provided
150
+ const openaiStreamMessages = [
151
+ ...(options?.system ? [{ role: 'system', content: options.system }] : []),
152
+ ...messages.map((msg) => ({
153
+ role: msg.role,
154
+ content: msg.content,
155
+ ...(msg.tool_call_id && { tool_call_id: msg.tool_call_id }),
156
+ ...(msg.tool_calls && { tool_calls: msg.tool_calls }),
157
+ })),
158
+ ];
159
+ const requestBody = {
160
+ model: options?.model || this.defaultModel,
161
+ messages: openaiStreamMessages,
162
+ max_completion_tokens: options?.maxTokens || this.defaultMaxTokens,
163
+ temperature: options?.temperature,
164
+ stop: options?.stopSequences,
165
+ stream: true,
166
+ };
167
+ const response = await fetch(`${this.baseURL}/v1/chat/completions`, {
168
+ method: 'POST',
169
+ headers: {
170
+ 'Content-Type': 'application/json',
171
+ Authorization: `Bearer ${this.apiKey}`,
172
+ },
173
+ body: JSON.stringify(requestBody),
174
+ signal: controller.signal,
175
+ // @ts-ignore - Node.js fetch accepts agent option
176
+ agent: this.httpsAgent,
177
+ });
178
+ clearTimeout(timeoutId);
179
+ if (!response.ok) {
180
+ this.consecutiveFailures++;
181
+ return err(await this.handleHTTPError(response));
182
+ }
183
+ if (!response.body) {
184
+ this.consecutiveFailures++;
185
+ return err(this.createError(ProviderErrorType.INVALID_REQUEST, 'No response body for streaming'));
186
+ }
187
+ // Create async iterator from stream
188
+ const iterator = this.createStreamIterator(response.body);
189
+ // Reset failure counter on success
190
+ this.consecutiveFailures = 0;
191
+ return ok(iterator);
192
+ }
193
+ catch (error) {
194
+ clearTimeout(timeoutId);
195
+ this.consecutiveFailures++;
196
+ return err(this.handleError(error));
197
+ }
198
+ }
199
+ /**
200
+ * Check if provider is healthy
201
+ *
202
+ * @returns True if provider is responding correctly
203
+ */
204
+ async isHealthy() {
205
+ // Passive health check: only monitor consecutive failures
206
+ // Don't make actual API calls to avoid costs and false positives from slow admin endpoints
207
+ //
208
+ // This approach is consistent with AnthropicProvider and provides more accurate
209
+ // health status by reflecting actual chat request success/failure rather than
210
+ // administrative endpoint availability.
211
+ return this.consecutiveFailures < this.maxConsecutiveFailures;
212
+ }
213
+ /**
214
+ * Reset provider health status
215
+ *
216
+ * Clears consecutive failure counter and marks provider as healthy.
217
+ */
218
+ resetHealth() {
219
+ this.consecutiveFailures = 0;
220
+ }
221
+ /**
222
+ * Get list of available models
223
+ *
224
+ * @returns Result with array of model IDs or error
225
+ */
226
+ async getAvailableModels() {
227
+ const controller = new AbortController();
228
+ const timeoutId = setTimeout(() => controller.abort(), this.timeoutMs);
229
+ try {
230
+ const response = await fetch(`${this.baseURL}/v1/models`, {
231
+ method: 'GET',
232
+ headers: {
233
+ Authorization: `Bearer ${this.apiKey}`,
234
+ },
235
+ signal: controller.signal,
236
+ // @ts-ignore - Node.js fetch accepts agent option
237
+ agent: this.httpsAgent,
238
+ });
239
+ clearTimeout(timeoutId);
240
+ if (!response.ok) {
241
+ return err(await this.handleHTTPError(response));
242
+ }
243
+ const data = (await response.json());
244
+ const modelIds = data.data.map((model) => model.id);
245
+ return ok(modelIds);
246
+ }
247
+ catch (error) {
248
+ clearTimeout(timeoutId);
249
+ return err(this.handleError(error));
250
+ }
251
+ }
252
+ /**
253
+ * Create async iterator from ReadableStream
254
+ */
255
+ async *createStreamIterator(stream) {
256
+ const reader = stream.getReader();
257
+ const decoder = new TextDecoder();
258
+ let buffer = '';
259
+ try {
260
+ while (true) {
261
+ const { done, value } = await reader.read();
262
+ if (done)
263
+ break;
264
+ buffer += decoder.decode(value, { stream: true });
265
+ const lines = buffer.split('\n');
266
+ buffer = lines.pop() || '';
267
+ for (const line of lines) {
268
+ const trimmed = line.trim();
269
+ if (!trimmed || trimmed === 'data: [DONE]')
270
+ continue;
271
+ if (trimmed.startsWith('data: ')) {
272
+ try {
273
+ const jsonStr = trimmed.substring(6);
274
+ const chunk = JSON.parse(jsonStr);
275
+ const delta = chunk.choices[0]?.delta;
276
+ if (delta?.content !== undefined && delta?.content !== null) {
277
+ yield delta.content;
278
+ }
279
+ }
280
+ catch (e) {
281
+ // Skip malformed JSON chunks
282
+ continue;
283
+ }
284
+ }
285
+ }
286
+ }
287
+ }
288
+ finally {
289
+ reader.releaseLock();
290
+ }
291
+ }
292
+ /**
293
+ * Handle HTTP error responses
294
+ */
295
+ async handleHTTPError(response) {
296
+ const status = response.status;
297
+ // Try to extract error message from response body
298
+ let errorMessage = `HTTP ${status}`;
299
+ try {
300
+ const errorData = (await response.json());
301
+ if (errorData.error?.message) {
302
+ errorMessage = errorData.error.message;
303
+ }
304
+ }
305
+ catch (e) {
306
+ // If JSON parsing fails, use status text
307
+ errorMessage = response.statusText || errorMessage;
308
+ }
309
+ // Map HTTP status codes to ProviderErrorType
310
+ if (status === 401 || status === 403) {
311
+ return this.createError(ProviderErrorType.AUTH_FAILED, `Authentication failed: ${errorMessage}`);
312
+ }
313
+ if (status === 429) {
314
+ return this.createError(ProviderErrorType.RATE_LIMIT, `Rate limit exceeded: ${errorMessage}`);
315
+ }
316
+ if (status === 404) {
317
+ return this.createError(ProviderErrorType.MODEL_NOT_FOUND, `Model not found: ${errorMessage}`);
318
+ }
319
+ if (status >= 400 && status < 500) {
320
+ return this.createError(ProviderErrorType.INVALID_REQUEST, `Invalid request: ${errorMessage}`);
321
+ }
322
+ if (status >= 500) {
323
+ return this.createError(ProviderErrorType.UNKNOWN, `Server error: ${errorMessage}`);
324
+ }
325
+ return this.createError(ProviderErrorType.UNKNOWN, errorMessage);
326
+ }
327
+ /**
328
+ * Handle general errors (network, timeout, etc.)
329
+ */
330
+ handleError(error) {
331
+ // Abort/timeout errors
332
+ if (error.name === 'AbortError') {
333
+ return this.createError(ProviderErrorType.TIMEOUT, `Request timeout after ${this.timeoutMs}ms`);
334
+ }
335
+ // Network errors
336
+ if (error.code === 'ENOTFOUND' ||
337
+ error.code === 'ECONNREFUSED' ||
338
+ error.message?.includes('fetch failed')) {
339
+ return this.createError(ProviderErrorType.NETWORK_ERROR, 'Network connection failed');
340
+ }
341
+ // Unknown errors
342
+ return this.createError(ProviderErrorType.UNKNOWN, error.message || 'Unknown error occurred');
343
+ }
344
+ /**
345
+ * Create standardized ProviderError
346
+ */
347
+ createError(type, message) {
348
+ return {
349
+ type,
350
+ message,
351
+ provider: this.name,
352
+ };
353
+ }
354
+ }
355
+ //# sourceMappingURL=model-manager-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-manager-provider.js","sourceRoot":"","sources":["../../src/providers/model-manager-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
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 type { LLMProvider, Message, ChatOptions, ProviderError, ProviderConfig } from './types.js';
8
+ import type { Result } from '../common/result.js';
9
+ /**
10
+ * Provider health status tracking
11
+ */
12
+ interface ProviderHealth {
13
+ isHealthy: boolean;
14
+ consecutiveFailures: number;
15
+ lastCheck: Date;
16
+ }
17
+ /**
18
+ * Provider Manager
19
+ *
20
+ * Manages multiple LLM providers with:
21
+ * - Model-based routing (claude→Anthropic, gpt→Model Manager)
22
+ * - Automatic fallback on provider failure
23
+ * - Retry logic with exponential backoff
24
+ * - Circuit breaker pattern (unhealthy after N consecutive failures)
25
+ * - Periodic health checks
26
+ * - Rate limit handling with backoff
27
+ */
28
+ export declare class ProviderManager {
29
+ private readonly config;
30
+ private providers;
31
+ private healthStatus;
32
+ private healthCheckInterval?;
33
+ /**
34
+ * Circuit breaker configuration
35
+ */
36
+ private readonly maxConsecutiveFailures;
37
+ /**
38
+ * Rate limit backoff: 5s * 2^attempt
39
+ */
40
+ private readonly rateLimitBaseDelayMs;
41
+ /**
42
+ * Create Provider Manager instance
43
+ *
44
+ * @param providers - Array of LLM providers to manage
45
+ * @param config - Provider configuration (primary, fallback, retry, health check)
46
+ */
47
+ constructor(providers: LLMProvider[], config: ProviderConfig);
48
+ /**
49
+ * Generate chat completion with provider selection and fallback
50
+ *
51
+ * @param messages - Conversation messages
52
+ * @param options - Optional chat configuration
53
+ * @returns Result with response text or error
54
+ */
55
+ chat(messages: Message[], options?: ChatOptions): Promise<Result<string, ProviderError>>;
56
+ /**
57
+ * Generate streaming chat completion with provider selection and fallback
58
+ *
59
+ * @param messages - Conversation messages
60
+ * @param options - Optional chat configuration
61
+ * @returns Result with async iterator of text chunks or error
62
+ */
63
+ streamChat(messages: Message[], options?: ChatOptions): Promise<Result<AsyncIterable<string>, ProviderError>>;
64
+ /**
65
+ * Get combined list of available models from all healthy providers
66
+ *
67
+ * @returns Result with array of model IDs or error
68
+ */
69
+ getAvailableModels(): Promise<Result<string[], ProviderError>>;
70
+ /**
71
+ * Get health status of all providers
72
+ *
73
+ * @returns Map of provider names to health status
74
+ */
75
+ getHealthStatus(): Map<string, ProviderHealth>;
76
+ /**
77
+ * Manually trigger health check for all providers
78
+ */
79
+ checkAllProvidersHealth(): Promise<void>;
80
+ /**
81
+ * Clean up resources (stop health checks)
82
+ */
83
+ dispose(): void;
84
+ /**
85
+ * Select provider based on model name or use primary
86
+ *
87
+ * Model-based routing:
88
+ * - Models starting with "claude" → anthropic provider
89
+ * - Models starting with "gpt" → model-manager provider
90
+ * - Otherwise → primary provider from config
91
+ */
92
+ private selectProvider;
93
+ /**
94
+ * Attempt operation with retry and exponential backoff
95
+ *
96
+ * @param providerName - Name of provider to use
97
+ * @param operation - Operation to attempt
98
+ * @returns Result from operation
99
+ */
100
+ private attemptWithRetry;
101
+ /**
102
+ * Start periodic health checks for all providers
103
+ */
104
+ private startHealthChecks;
105
+ /**
106
+ * Sleep utility for delays
107
+ */
108
+ private sleep;
109
+ }
110
+ export {};
111
+ //# sourceMappingURL=provider-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-manager.d.ts","sourceRoot":"","sources":["../../src/providers/provider-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,WAAW,EACX,aAAa,EACb,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD;;GAEG;AACH,UAAU,cAAc;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,eAAe;IAuBxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAtBzB,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,mBAAmB,CAAC,CAAiB;IAE7C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAK;IAE5C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;IAE7C;;;;;OAKG;gBAED,SAAS,EAAE,WAAW,EAAE,EACP,MAAM,EAAE,cAAc;IAgCzC;;;;;;OAMG;IACG,IAAI,CACR,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAiDzC;;;;;;OAMG;IACG,UAAU,CACd,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC;IAkDxD;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC;IAmCpE;;;;OAIG;IACH,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAI9C;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC9C;;OAEG;IACH,OAAO,IAAI,IAAI;IAOf;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAkBtB;;;;;;OAMG;YACW,gBAAgB;IAiH9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}