mcp-agent-foundry 1.0.1 → 1.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.
- package/README.md +22 -2
- package/dist/cli/setup-wizard.d.ts +4 -2
- package/dist/cli/setup-wizard.d.ts.map +1 -1
- package/dist/cli/setup-wizard.js +1024 -37
- package/dist/cli/setup-wizard.js.map +1 -1
- package/dist/cli/test-connection.d.ts +34 -2
- package/dist/cli/test-connection.d.ts.map +1 -1
- package/dist/cli/test-connection.js +384 -2
- package/dist/cli/test-connection.js.map +1 -1
- package/dist/cli.d.ts +15 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +198 -30
- package/dist/cli.js.map +1 -1
- package/dist/config/defaults.d.ts +2 -2
- package/dist/config/defaults.js +16 -16
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/validator.d.ts +113 -0
- package/dist/config/validator.d.ts.map +1 -1
- package/dist/config/validator.js +113 -0
- package/dist/config/validator.js.map +1 -1
- package/dist/failover/health-tracker.d.ts +175 -0
- package/dist/failover/health-tracker.d.ts.map +1 -0
- package/dist/failover/health-tracker.js +350 -0
- package/dist/failover/health-tracker.js.map +1 -0
- package/dist/failover/index.d.ts +9 -0
- package/dist/failover/index.d.ts.map +1 -0
- package/dist/failover/index.js +9 -0
- package/dist/failover/index.js.map +1 -0
- package/dist/failover/orchestrator.d.ts +189 -0
- package/dist/failover/orchestrator.d.ts.map +1 -0
- package/dist/failover/orchestrator.js +488 -0
- package/dist/failover/orchestrator.js.map +1 -0
- package/dist/failover/pricing.d.ts +115 -0
- package/dist/failover/pricing.d.ts.map +1 -0
- package/dist/failover/pricing.js +283 -0
- package/dist/failover/pricing.js.map +1 -0
- package/dist/persistence/state-schema.d.ts +50 -0
- package/dist/persistence/state-schema.d.ts.map +1 -1
- package/dist/persistence/state-schema.js +2 -0
- package/dist/persistence/state-schema.js.map +1 -1
- package/dist/providers/fireworks.d.ts +23 -0
- package/dist/providers/fireworks.d.ts.map +1 -0
- package/dist/providers/fireworks.js +31 -0
- package/dist/providers/fireworks.js.map +1 -0
- package/dist/providers/groq.d.ts +23 -0
- package/dist/providers/groq.d.ts.map +1 -0
- package/dist/providers/groq.js +31 -0
- package/dist/providers/groq.js.map +1 -0
- package/dist/providers/kimi-code.d.ts +32 -0
- package/dist/providers/kimi-code.d.ts.map +1 -0
- package/dist/providers/kimi-code.js +46 -0
- package/dist/providers/kimi-code.js.map +1 -0
- package/dist/providers/kimi.d.ts +1 -1
- package/dist/providers/kimi.js +1 -1
- package/dist/providers/openrouter.d.ts +23 -0
- package/dist/providers/openrouter.d.ts.map +1 -0
- package/dist/providers/openrouter.js +31 -0
- package/dist/providers/openrouter.js.map +1 -0
- package/dist/providers/perplexity.d.ts +29 -0
- package/dist/providers/perplexity.d.ts.map +1 -0
- package/dist/providers/perplexity.js +51 -0
- package/dist/providers/perplexity.js.map +1 -0
- package/dist/providers/together.d.ts +23 -0
- package/dist/providers/together.d.ts.map +1 -0
- package/dist/providers/together.js +31 -0
- package/dist/providers/together.js.map +1 -0
- package/dist/router/engine.d.ts +21 -0
- package/dist/router/engine.d.ts.map +1 -1
- package/dist/router/engine.js +81 -21
- package/dist/router/engine.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +49 -0
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +52 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +14 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -127,6 +127,38 @@ export declare const configSchema: {
|
|
|
127
127
|
readonly maximum: 600000;
|
|
128
128
|
readonly description: "Default timeout in milliseconds (1s-10min)";
|
|
129
129
|
};
|
|
130
|
+
readonly failover: {
|
|
131
|
+
readonly type: "object";
|
|
132
|
+
readonly additionalProperties: false;
|
|
133
|
+
readonly properties: {
|
|
134
|
+
readonly enabled: {
|
|
135
|
+
readonly type: "boolean";
|
|
136
|
+
readonly description: "Enable automatic failover";
|
|
137
|
+
};
|
|
138
|
+
readonly max_total_retries: {
|
|
139
|
+
readonly type: "integer";
|
|
140
|
+
readonly minimum: 0;
|
|
141
|
+
readonly maximum: 20;
|
|
142
|
+
readonly description: "Maximum total retries across all providers";
|
|
143
|
+
};
|
|
144
|
+
readonly health_check_interval_ms: {
|
|
145
|
+
readonly type: "integer";
|
|
146
|
+
readonly minimum: 1000;
|
|
147
|
+
readonly maximum: 3600000;
|
|
148
|
+
readonly description: "Health check interval in ms";
|
|
149
|
+
};
|
|
150
|
+
readonly cooldown_ms: {
|
|
151
|
+
readonly type: "integer";
|
|
152
|
+
readonly minimum: 0;
|
|
153
|
+
readonly maximum: 3600000;
|
|
154
|
+
readonly description: "Cooldown period before retrying unhealthy provider";
|
|
155
|
+
};
|
|
156
|
+
readonly prefer_cost_efficient: {
|
|
157
|
+
readonly type: "boolean";
|
|
158
|
+
readonly description: "Prefer cheapest healthy provider";
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
};
|
|
130
162
|
};
|
|
131
163
|
};
|
|
132
164
|
readonly roles: {
|
|
@@ -187,6 +219,9 @@ export declare const configSchema: {
|
|
|
187
219
|
readonly fallback: {
|
|
188
220
|
readonly $ref: "#/$defs/fallbackConfig";
|
|
189
221
|
};
|
|
222
|
+
readonly fallback_chain: {
|
|
223
|
+
readonly $ref: "#/$defs/fallbackChainConfig";
|
|
224
|
+
};
|
|
190
225
|
};
|
|
191
226
|
};
|
|
192
227
|
readonly fallbackConfig: {
|
|
@@ -206,6 +241,84 @@ export declare const configSchema: {
|
|
|
206
241
|
};
|
|
207
242
|
};
|
|
208
243
|
};
|
|
244
|
+
readonly fallbackChainConfig: {
|
|
245
|
+
readonly type: "object";
|
|
246
|
+
readonly additionalProperties: false;
|
|
247
|
+
readonly properties: {
|
|
248
|
+
readonly providers: {
|
|
249
|
+
readonly type: "array";
|
|
250
|
+
readonly minItems: 1;
|
|
251
|
+
readonly items: {
|
|
252
|
+
readonly type: "object";
|
|
253
|
+
readonly required: readonly ["provider", "model"];
|
|
254
|
+
readonly additionalProperties: false;
|
|
255
|
+
readonly properties: {
|
|
256
|
+
readonly provider: {
|
|
257
|
+
readonly type: "string";
|
|
258
|
+
readonly minLength: 1;
|
|
259
|
+
readonly description: "Provider name";
|
|
260
|
+
};
|
|
261
|
+
readonly model: {
|
|
262
|
+
readonly type: "string";
|
|
263
|
+
readonly minLength: 1;
|
|
264
|
+
readonly description: "Model identifier";
|
|
265
|
+
};
|
|
266
|
+
};
|
|
267
|
+
};
|
|
268
|
+
readonly description: "Ordered list of fallback providers";
|
|
269
|
+
};
|
|
270
|
+
readonly on_errors: {
|
|
271
|
+
readonly type: "array";
|
|
272
|
+
readonly items: {
|
|
273
|
+
readonly type: "integer";
|
|
274
|
+
readonly minimum: 100;
|
|
275
|
+
readonly maximum: 599;
|
|
276
|
+
};
|
|
277
|
+
readonly description: "HTTP status codes that trigger failover";
|
|
278
|
+
};
|
|
279
|
+
readonly retry: {
|
|
280
|
+
readonly type: "object";
|
|
281
|
+
readonly additionalProperties: false;
|
|
282
|
+
readonly properties: {
|
|
283
|
+
readonly max_attempts: {
|
|
284
|
+
readonly type: "integer";
|
|
285
|
+
readonly minimum: 0;
|
|
286
|
+
readonly maximum: 10;
|
|
287
|
+
readonly description: "Maximum retry attempts per provider";
|
|
288
|
+
};
|
|
289
|
+
readonly initial_delay_ms: {
|
|
290
|
+
readonly type: "integer";
|
|
291
|
+
readonly minimum: 0;
|
|
292
|
+
readonly maximum: 60000;
|
|
293
|
+
readonly description: "Initial delay before first retry";
|
|
294
|
+
};
|
|
295
|
+
readonly max_delay_ms: {
|
|
296
|
+
readonly type: "integer";
|
|
297
|
+
readonly minimum: 0;
|
|
298
|
+
readonly maximum: 300000;
|
|
299
|
+
readonly description: "Maximum delay between retries";
|
|
300
|
+
};
|
|
301
|
+
readonly strategy: {
|
|
302
|
+
readonly type: "string";
|
|
303
|
+
readonly enum: readonly ["immediate", "linear", "exponential"];
|
|
304
|
+
readonly description: "Backoff strategy";
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
};
|
|
308
|
+
readonly health_check_interval_ms: {
|
|
309
|
+
readonly type: "integer";
|
|
310
|
+
readonly minimum: 1000;
|
|
311
|
+
readonly maximum: 3600000;
|
|
312
|
+
readonly description: "Health check interval in ms";
|
|
313
|
+
};
|
|
314
|
+
readonly cooldown_ms: {
|
|
315
|
+
readonly type: "integer";
|
|
316
|
+
readonly minimum: 0;
|
|
317
|
+
readonly maximum: 3600000;
|
|
318
|
+
readonly description: "Cooldown before retrying unhealthy provider";
|
|
319
|
+
};
|
|
320
|
+
};
|
|
321
|
+
};
|
|
209
322
|
readonly providerConfig: {
|
|
210
323
|
readonly type: "object";
|
|
211
324
|
readonly additionalProperties: false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAmB,EAAE,KAAK,WAAW,EAA8C,MAAM,KAAK,CAAC;AAE/F,OAAO,EAAsB,KAAM,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAmB,EAAE,KAAK,WAAW,EAA8C,MAAM,KAAK,CAAC;AAE/F,OAAO,EAAsB,KAAM,MAAM,EAAE,MAAM,aAAa,CAAC;AAwS/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sCAAsC;IACtC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,eAAe,CAAmB;;IAgB1C;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM;IAejC;;;;;;;OAOG;IACH,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAYvD;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,UAAQ,GAAG,gBAAgB;IAyBlE;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAQpB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAsCxB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAGtD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,MAAM,CAI/D;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgB,CAAC"}
|
package/dist/config/validator.js
CHANGED
|
@@ -46,6 +46,38 @@ const CONFIG_SCHEMA = {
|
|
|
46
46
|
maximum: 600000,
|
|
47
47
|
description: 'Default timeout in milliseconds (1s-10min)',
|
|
48
48
|
},
|
|
49
|
+
failover: {
|
|
50
|
+
type: 'object',
|
|
51
|
+
additionalProperties: false,
|
|
52
|
+
properties: {
|
|
53
|
+
enabled: {
|
|
54
|
+
type: 'boolean',
|
|
55
|
+
description: 'Enable automatic failover',
|
|
56
|
+
},
|
|
57
|
+
max_total_retries: {
|
|
58
|
+
type: 'integer',
|
|
59
|
+
minimum: 0,
|
|
60
|
+
maximum: 20,
|
|
61
|
+
description: 'Maximum total retries across all providers',
|
|
62
|
+
},
|
|
63
|
+
health_check_interval_ms: {
|
|
64
|
+
type: 'integer',
|
|
65
|
+
minimum: 1000,
|
|
66
|
+
maximum: 3600000,
|
|
67
|
+
description: 'Health check interval in ms',
|
|
68
|
+
},
|
|
69
|
+
cooldown_ms: {
|
|
70
|
+
type: 'integer',
|
|
71
|
+
minimum: 0,
|
|
72
|
+
maximum: 3600000,
|
|
73
|
+
description: 'Cooldown period before retrying unhealthy provider',
|
|
74
|
+
},
|
|
75
|
+
prefer_cost_efficient: {
|
|
76
|
+
type: 'boolean',
|
|
77
|
+
description: 'Prefer cheapest healthy provider',
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
49
81
|
},
|
|
50
82
|
},
|
|
51
83
|
roles: {
|
|
@@ -106,6 +138,9 @@ const CONFIG_SCHEMA = {
|
|
|
106
138
|
fallback: {
|
|
107
139
|
$ref: '#/$defs/fallbackConfig',
|
|
108
140
|
},
|
|
141
|
+
fallback_chain: {
|
|
142
|
+
$ref: '#/$defs/fallbackChainConfig',
|
|
143
|
+
},
|
|
109
144
|
},
|
|
110
145
|
},
|
|
111
146
|
fallbackConfig: {
|
|
@@ -125,6 +160,84 @@ const CONFIG_SCHEMA = {
|
|
|
125
160
|
},
|
|
126
161
|
},
|
|
127
162
|
},
|
|
163
|
+
fallbackChainConfig: {
|
|
164
|
+
type: 'object',
|
|
165
|
+
additionalProperties: false,
|
|
166
|
+
properties: {
|
|
167
|
+
providers: {
|
|
168
|
+
type: 'array',
|
|
169
|
+
minItems: 1,
|
|
170
|
+
items: {
|
|
171
|
+
type: 'object',
|
|
172
|
+
required: ['provider', 'model'],
|
|
173
|
+
additionalProperties: false,
|
|
174
|
+
properties: {
|
|
175
|
+
provider: {
|
|
176
|
+
type: 'string',
|
|
177
|
+
minLength: 1,
|
|
178
|
+
description: 'Provider name',
|
|
179
|
+
},
|
|
180
|
+
model: {
|
|
181
|
+
type: 'string',
|
|
182
|
+
minLength: 1,
|
|
183
|
+
description: 'Model identifier',
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
description: 'Ordered list of fallback providers',
|
|
188
|
+
},
|
|
189
|
+
on_errors: {
|
|
190
|
+
type: 'array',
|
|
191
|
+
items: {
|
|
192
|
+
type: 'integer',
|
|
193
|
+
minimum: 100,
|
|
194
|
+
maximum: 599,
|
|
195
|
+
},
|
|
196
|
+
description: 'HTTP status codes that trigger failover',
|
|
197
|
+
},
|
|
198
|
+
retry: {
|
|
199
|
+
type: 'object',
|
|
200
|
+
additionalProperties: false,
|
|
201
|
+
properties: {
|
|
202
|
+
max_attempts: {
|
|
203
|
+
type: 'integer',
|
|
204
|
+
minimum: 0,
|
|
205
|
+
maximum: 10,
|
|
206
|
+
description: 'Maximum retry attempts per provider',
|
|
207
|
+
},
|
|
208
|
+
initial_delay_ms: {
|
|
209
|
+
type: 'integer',
|
|
210
|
+
minimum: 0,
|
|
211
|
+
maximum: 60000,
|
|
212
|
+
description: 'Initial delay before first retry',
|
|
213
|
+
},
|
|
214
|
+
max_delay_ms: {
|
|
215
|
+
type: 'integer',
|
|
216
|
+
minimum: 0,
|
|
217
|
+
maximum: 300000,
|
|
218
|
+
description: 'Maximum delay between retries',
|
|
219
|
+
},
|
|
220
|
+
strategy: {
|
|
221
|
+
type: 'string',
|
|
222
|
+
enum: ['immediate', 'linear', 'exponential'],
|
|
223
|
+
description: 'Backoff strategy',
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
health_check_interval_ms: {
|
|
228
|
+
type: 'integer',
|
|
229
|
+
minimum: 1000,
|
|
230
|
+
maximum: 3600000,
|
|
231
|
+
description: 'Health check interval in ms',
|
|
232
|
+
},
|
|
233
|
+
cooldown_ms: {
|
|
234
|
+
type: 'integer',
|
|
235
|
+
minimum: 0,
|
|
236
|
+
maximum: 3600000,
|
|
237
|
+
description: 'Cooldown before retrying unhealthy provider',
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
},
|
|
128
241
|
providerConfig: {
|
|
129
242
|
type: 'object',
|
|
130
243
|
additionalProperties: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Health Tracker
|
|
3
|
+
*
|
|
4
|
+
* Tracks the health status of LLM providers to enable intelligent failover.
|
|
5
|
+
* Monitors success/failure rates, latency, and manages cooldown periods.
|
|
6
|
+
*/
|
|
7
|
+
import type { Logger } from '../observability/logger.js';
|
|
8
|
+
/**
|
|
9
|
+
* Health status of a provider.
|
|
10
|
+
*/
|
|
11
|
+
export type ProviderHealthStatus = 'healthy' | 'degraded' | 'unhealthy';
|
|
12
|
+
/**
|
|
13
|
+
* Health information for a single provider.
|
|
14
|
+
*/
|
|
15
|
+
export interface ProviderHealth {
|
|
16
|
+
/** Provider name */
|
|
17
|
+
provider: string;
|
|
18
|
+
/** Current health status */
|
|
19
|
+
status: ProviderHealthStatus;
|
|
20
|
+
/** Timestamp of last health check */
|
|
21
|
+
lastCheck: Date;
|
|
22
|
+
/** Timestamp of last successful request */
|
|
23
|
+
lastSuccess: Date | null;
|
|
24
|
+
/** Last error details */
|
|
25
|
+
lastError: {
|
|
26
|
+
code: number | undefined;
|
|
27
|
+
message: string;
|
|
28
|
+
timestamp: Date;
|
|
29
|
+
} | null;
|
|
30
|
+
/** Number of consecutive failures */
|
|
31
|
+
consecutiveFailures: number;
|
|
32
|
+
/** Cooldown end time (provider should not be used until this time) */
|
|
33
|
+
cooldownUntil: Date | null;
|
|
34
|
+
/** Rolling average latency in ms */
|
|
35
|
+
latencyMs: number;
|
|
36
|
+
/** Total successful requests */
|
|
37
|
+
successCount: number;
|
|
38
|
+
/** Total failed requests */
|
|
39
|
+
failureCount: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Configuration for the health tracker.
|
|
43
|
+
*/
|
|
44
|
+
export interface HealthTrackerConfig {
|
|
45
|
+
/** Number of consecutive failures before marking unhealthy (default: 3) */
|
|
46
|
+
failureThreshold?: number;
|
|
47
|
+
/** Number of consecutive failures before marking degraded (default: 1) */
|
|
48
|
+
degradedThreshold?: number;
|
|
49
|
+
/** Cooldown duration in ms after marking unhealthy (default: 300000 = 5 min) */
|
|
50
|
+
cooldownMs?: number;
|
|
51
|
+
/** How often to run health checks in ms (default: 60000 = 1 min) */
|
|
52
|
+
healthCheckIntervalMs?: number;
|
|
53
|
+
/** Window size for rolling latency average (default: 10) */
|
|
54
|
+
latencyWindowSize?: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Tracks provider health for intelligent failover decisions.
|
|
58
|
+
*
|
|
59
|
+
* Features:
|
|
60
|
+
* - Tracks success/failure rates per provider
|
|
61
|
+
* - Manages cooldown periods for unhealthy providers
|
|
62
|
+
* - Provides rolling average latency metrics
|
|
63
|
+
* - Supports periodic health check callbacks
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* const tracker = new ProviderHealthTracker(logger);
|
|
68
|
+
*
|
|
69
|
+
* // Record outcomes
|
|
70
|
+
* tracker.markSuccess('openai', 150);
|
|
71
|
+
* tracker.markFailure('deepseek', new Error('Rate limited'), 429);
|
|
72
|
+
*
|
|
73
|
+
* // Check before using
|
|
74
|
+
* if (tracker.isHealthy('openai')) {
|
|
75
|
+
* // Safe to use
|
|
76
|
+
* }
|
|
77
|
+
*
|
|
78
|
+
* // Get cooldown info
|
|
79
|
+
* const remaining = tracker.getCooldownRemaining('deepseek');
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export declare class ProviderHealthTracker {
|
|
83
|
+
private readonly health;
|
|
84
|
+
private readonly latencyHistory;
|
|
85
|
+
private readonly config;
|
|
86
|
+
private readonly logger;
|
|
87
|
+
private healthCheckInterval;
|
|
88
|
+
private healthCheckCallback;
|
|
89
|
+
constructor(logger: Logger, config?: HealthTrackerConfig);
|
|
90
|
+
/**
|
|
91
|
+
* Record a successful request for a provider.
|
|
92
|
+
*/
|
|
93
|
+
markSuccess(provider: string, latencyMs: number): void;
|
|
94
|
+
/**
|
|
95
|
+
* Record a failed request for a provider.
|
|
96
|
+
*/
|
|
97
|
+
markFailure(provider: string, error: Error, statusCode?: number): void;
|
|
98
|
+
/**
|
|
99
|
+
* Check if a provider is healthy and not in cooldown.
|
|
100
|
+
*/
|
|
101
|
+
isHealthy(provider: string): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Check if a provider is available (healthy or degraded, not in cooldown).
|
|
104
|
+
*/
|
|
105
|
+
isAvailable(provider: string): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Get remaining cooldown time in ms (0 if not in cooldown).
|
|
108
|
+
*/
|
|
109
|
+
getCooldownRemaining(provider: string): number;
|
|
110
|
+
/**
|
|
111
|
+
* Get health info for a provider.
|
|
112
|
+
*/
|
|
113
|
+
getHealth(provider: string): ProviderHealth | undefined;
|
|
114
|
+
/**
|
|
115
|
+
* Get health info for all tracked providers.
|
|
116
|
+
*/
|
|
117
|
+
getAllHealth(): Map<string, ProviderHealth>;
|
|
118
|
+
/**
|
|
119
|
+
* Get providers sorted by health and latency (best first).
|
|
120
|
+
*/
|
|
121
|
+
getHealthyProviders(providerNames: string[]): string[];
|
|
122
|
+
/**
|
|
123
|
+
* Reset health for a provider (e.g., after config change).
|
|
124
|
+
*/
|
|
125
|
+
resetHealth(provider: string): void;
|
|
126
|
+
/**
|
|
127
|
+
* Clear all health tracking data.
|
|
128
|
+
*/
|
|
129
|
+
clear(): void;
|
|
130
|
+
/**
|
|
131
|
+
* Start periodic health checks.
|
|
132
|
+
*/
|
|
133
|
+
startHealthCheckLoop(callback: (provider: string) => Promise<void>): void;
|
|
134
|
+
/**
|
|
135
|
+
* Stop periodic health checks.
|
|
136
|
+
*/
|
|
137
|
+
stopHealthCheckLoop(): void;
|
|
138
|
+
/**
|
|
139
|
+
* Serialize health state for persistence.
|
|
140
|
+
*/
|
|
141
|
+
serialize(): Array<{
|
|
142
|
+
provider: string;
|
|
143
|
+
status: ProviderHealthStatus;
|
|
144
|
+
consecutiveFailures: number;
|
|
145
|
+
cooldownUntil: number | null;
|
|
146
|
+
latencyMs: number;
|
|
147
|
+
successCount: number;
|
|
148
|
+
failureCount: number;
|
|
149
|
+
lastSuccessAt: number | null;
|
|
150
|
+
lastErrorAt: number | null;
|
|
151
|
+
lastErrorMessage: string | null;
|
|
152
|
+
lastErrorCode: number | null;
|
|
153
|
+
}>;
|
|
154
|
+
/**
|
|
155
|
+
* Restore health state from persistence.
|
|
156
|
+
*/
|
|
157
|
+
restore(data: Array<{
|
|
158
|
+
provider: string;
|
|
159
|
+
status: ProviderHealthStatus;
|
|
160
|
+
consecutiveFailures: number;
|
|
161
|
+
cooldownUntil: number | null;
|
|
162
|
+
latencyMs: number;
|
|
163
|
+
successCount: number;
|
|
164
|
+
failureCount: number;
|
|
165
|
+
lastSuccessAt: number | null;
|
|
166
|
+
lastErrorAt: number | null;
|
|
167
|
+
lastErrorMessage: string | null;
|
|
168
|
+
lastErrorCode: number | null;
|
|
169
|
+
}>): void;
|
|
170
|
+
private getOrCreateHealth;
|
|
171
|
+
private updateLatency;
|
|
172
|
+
private getAverageLatency;
|
|
173
|
+
private runHealthChecks;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=health-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-tracker.d.ts","sourceRoot":"","sources":["../../src/failover/health-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAMzD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,qCAAqC;IACrC,SAAS,EAAE,IAAI,CAAC;IAChB,2CAA2C;IAC3C,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,yBAAyB;IACzB,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,IAAI,CAAC;IACT,qCAAqC;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sEAAsE;IACtE,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoC;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,mBAAmB,CAA+C;IAC1E,OAAO,CAAC,mBAAmB,CAAsD;gBAErE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,mBAAmB;IAKxD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IA6BtD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAmCtE;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAcpC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IActC;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAU9C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIvD;;OAEG;IACH,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAI3C;;OAEG;IACH,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAkBtD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOnC;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAgBzE;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAU3B;;OAEG;IACH,SAAS,IAAI,KAAK,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,oBAAoB,CAAC;QAC7B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IAkCF;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,oBAAoB,CAAC;QAC7B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC,GAAG,IAAI;IAiCT,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,iBAAiB;YAUX,eAAe;CA8B9B"}
|