@vybestack/llxprt-code-core 0.7.0-nightly.251212.dd1b5bfd7 → 0.7.0-nightly.251213.e273961ea

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.
@@ -28,10 +28,11 @@ export interface LoadBalancerSubProfile {
28
28
  /**
29
29
  * Load balancing provider configuration
30
30
  * @plan PLAN-20251211issue486c - Updated to support ResolvedSubProfile
31
+ * @plan PLAN-20251212issue488 - Added failover strategy
31
32
  */
32
33
  export interface LoadBalancingProviderConfig {
33
34
  profileName: string;
34
- strategy: 'round-robin';
35
+ strategy: 'round-robin' | 'failover';
35
36
  subProfiles: ResolvedSubProfile[] | LoadBalancerSubProfile[];
36
37
  lbProfileEphemeralSettings?: Record<string, unknown>;
37
38
  }
@@ -134,6 +135,26 @@ export declare class LoadBalancingProvider implements IProvider {
134
135
  * Phase 5: Stats Integration
135
136
  */
136
137
  resetStats(): void;
138
+ /**
139
+ * Extract failover settings from ephemeral settings
140
+ * @plan PLAN-20251212issue488
141
+ */
142
+ private extractFailoverSettings;
143
+ /**
144
+ * Determine if error should trigger failover
145
+ * @plan PLAN-20251212issue488
146
+ */
147
+ private shouldFailover;
148
+ /**
149
+ * Build resolved options for a sub-profile
150
+ * @plan PLAN-20251212issue488
151
+ */
152
+ private buildResolvedOptions;
153
+ /**
154
+ * Execute with failover strategy
155
+ * @plan PLAN-20251212issue488
156
+ */
157
+ private executeWithFailover;
137
158
  /**
138
159
  * Get auth token - required by ProviderManager.normalizeRuntimeInputs validation
139
160
  * @plan:PLAN-20251211issue486b - Auth token resolution
@@ -11,6 +11,8 @@
11
11
  * Selection happens at REQUEST TIME, not profile load time.
12
12
  */
13
13
  import { DebugLogger } from '../debug/DebugLogger.js';
14
+ import { LoadBalancerFailoverError } from './errors.js';
15
+ import { isNetworkTransientError, getErrorStatus } from '../utils/retry.js';
14
16
  /**
15
17
  * Type guard to identify load balancer profile format
16
18
  * @plan PLAN-20251211issue486c
@@ -63,8 +65,12 @@ export class LoadBalancingProvider {
63
65
  throw new Error('LoadBalancingProvider requires at least one sub-profile in configuration');
64
66
  }
65
67
  // Check for valid strategy
66
- if (config.strategy !== 'round-robin') {
67
- throw new Error(`Invalid strategy "${config.strategy}". Only "round-robin" is currently supported.`);
68
+ if (config.strategy !== 'round-robin' && config.strategy !== 'failover') {
69
+ throw new Error(`Invalid strategy "${config.strategy}". Supported: "round-robin", "failover".`);
70
+ }
71
+ // Failover strategy requires at least 2 sub-profiles
72
+ if (config.strategy === 'failover' && config.subProfiles.length < 2) {
73
+ throw new Error('Failover strategy requires at least 2 sub-profiles (minimum 2 backends for failover)');
68
74
  }
69
75
  // Validate each sub-profile
70
76
  for (const subProfile of config.subProfiles) {
@@ -127,6 +133,11 @@ export class LoadBalancingProvider {
127
133
  // Called with GenerateChatOptions
128
134
  options = optionsOrContent;
129
135
  }
136
+ // Branch on strategy
137
+ if (this.config.strategy === 'failover') {
138
+ yield* this.executeWithFailover(options);
139
+ return;
140
+ }
130
141
  // Phase 3 Step 1: Select next sub-profile using round-robin
131
142
  const subProfile = this.selectNextSubProfile();
132
143
  this.logger.debug(() => `Selected sub-profile: ${subProfile.name} for request`);
@@ -261,6 +272,113 @@ export class LoadBalancingProvider {
261
272
  this.lastSelected = null;
262
273
  this.totalRequests = 0;
263
274
  }
275
+ /**
276
+ * Extract failover settings from ephemeral settings
277
+ * @plan PLAN-20251212issue488
278
+ */
279
+ extractFailoverSettings() {
280
+ const ephemeral = this.config.lbProfileEphemeralSettings ?? {};
281
+ return {
282
+ retryCount: Math.min(typeof ephemeral.failover_retry_count === 'number'
283
+ ? ephemeral.failover_retry_count
284
+ : 1, 100),
285
+ retryDelayMs: typeof ephemeral.failover_retry_delay_ms === 'number'
286
+ ? ephemeral.failover_retry_delay_ms
287
+ : 0,
288
+ failoverOnNetworkErrors: ephemeral.failover_on_network_errors !== false,
289
+ failoverStatusCodes: Array.isArray(ephemeral.failover_status_codes)
290
+ ? ephemeral.failover_status_codes.filter((n) => typeof n === 'number')
291
+ : undefined,
292
+ };
293
+ }
294
+ /**
295
+ * Determine if error should trigger failover
296
+ * @plan PLAN-20251212issue488
297
+ */
298
+ shouldFailover(error, settings) {
299
+ if (!(error instanceof Error))
300
+ return true;
301
+ if (settings.failoverOnNetworkErrors && isNetworkTransientError(error)) {
302
+ return true;
303
+ }
304
+ const status = getErrorStatus(error);
305
+ if (status !== undefined) {
306
+ if (settings.failoverStatusCodes) {
307
+ return settings.failoverStatusCodes.includes(status);
308
+ }
309
+ return status === 429 || (status >= 500 && status < 600);
310
+ }
311
+ return true;
312
+ }
313
+ /**
314
+ * Build resolved options for a sub-profile
315
+ * @plan PLAN-20251212issue488
316
+ */
317
+ buildResolvedOptions(subProfile, options) {
318
+ return {
319
+ ...options,
320
+ resolved: {
321
+ ...options.resolved,
322
+ model: isResolvedSubProfile(subProfile)
323
+ ? subProfile.model
324
+ : (subProfile.modelId ?? ''),
325
+ baseURL: subProfile.baseURL ?? '',
326
+ authToken: subProfile.authToken ?? '',
327
+ },
328
+ };
329
+ }
330
+ /**
331
+ * Execute with failover strategy
332
+ * @plan PLAN-20251212issue488
333
+ */
334
+ async *executeWithFailover(options) {
335
+ const settings = this.extractFailoverSettings();
336
+ const errors = [];
337
+ for (const subProfile of this.config.subProfiles) {
338
+ let attempts = 0;
339
+ const maxAttempts = Math.max(1, settings.retryCount);
340
+ while (attempts < maxAttempts) {
341
+ attempts++;
342
+ try {
343
+ this.logger.debug(() => `[LB:failover] Trying backend: ${subProfile.name} (attempt ${attempts}/${maxAttempts})`);
344
+ const resolvedOptions = this.buildResolvedOptions(subProfile, options);
345
+ const delegateProvider = this.providerManager.getProviderByName(subProfile.providerName);
346
+ if (!delegateProvider) {
347
+ throw new Error(`Provider "${subProfile.providerName}" not found`);
348
+ }
349
+ const iterator = delegateProvider.generateChatCompletion(resolvedOptions);
350
+ const firstResult = await iterator.next();
351
+ if (!firstResult.done) {
352
+ yield firstResult.value;
353
+ }
354
+ for await (const chunk of {
355
+ [Symbol.asyncIterator]: () => iterator,
356
+ }) {
357
+ yield chunk;
358
+ }
359
+ this.incrementStats(subProfile.name);
360
+ this.logger.debug(() => `[LB:failover] Success on backend: ${subProfile.name}`);
361
+ return;
362
+ }
363
+ catch (error) {
364
+ const isLastAttempt = attempts >= maxAttempts;
365
+ const shouldRetry = !isLastAttempt && this.shouldFailover(error, settings);
366
+ if (shouldRetry) {
367
+ if (settings.retryDelayMs > 0) {
368
+ this.logger.debug(() => `[LB:failover] ${subProfile.name} attempt ${attempts} failed, retrying after ${settings.retryDelayMs}ms: ${error.message}`);
369
+ await new Promise((resolve) => setTimeout(resolve, settings.retryDelayMs));
370
+ }
371
+ }
372
+ else {
373
+ this.logger.debug(() => `[LB:failover] ${subProfile.name} failed after ${attempts} attempts: ${error.message}`);
374
+ errors.push({ profile: subProfile.name, error: error });
375
+ break;
376
+ }
377
+ }
378
+ }
379
+ }
380
+ throw new LoadBalancerFailoverError(this.config.profileName, errors);
381
+ }
264
382
  /**
265
383
  * Get auth token - required by ProviderManager.normalizeRuntimeInputs validation
266
384
  * @plan:PLAN-20251211issue486b - Auth token resolution
@@ -1 +1 @@
1
- {"version":3,"file":"LoadBalancingProvider.js","sourceRoot":"","sources":["../../../src/providers/LoadBalancingProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LoadBalancingProvider.js","sourceRoot":"","sources":["../../../src/providers/LoadBalancingProvider.ts"],"names":[],"mappings":"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"}
@@ -97,3 +97,18 @@ export declare class ProviderRuntimeScopeError extends Error {
97
97
  metadata?: Record<string, unknown>;
98
98
  });
99
99
  }
100
+ /**
101
+ * Error thrown when all backends in a load balancer failover policy have failed
102
+ * @plan PLAN-20251212issue488
103
+ */
104
+ export declare class LoadBalancerFailoverError extends Error {
105
+ readonly profileName: string;
106
+ readonly failures: ReadonlyArray<{
107
+ readonly profile: string;
108
+ readonly error: Error;
109
+ }>;
110
+ constructor(profileName: string, failures: Array<{
111
+ profile: string;
112
+ error: Error;
113
+ }>);
114
+ }
@@ -105,4 +105,22 @@ export class ProviderRuntimeScopeError extends Error {
105
105
  };
106
106
  }
107
107
  }
108
+ /**
109
+ * Error thrown when all backends in a load balancer failover policy have failed
110
+ * @plan PLAN-20251212issue488
111
+ */
112
+ export class LoadBalancerFailoverError extends Error {
113
+ profileName;
114
+ failures;
115
+ constructor(profileName, failures) {
116
+ const profileNames = failures.map((f) => f.profile).join(', ');
117
+ const errorSummary = failures.length === 1
118
+ ? failures[0].error.message
119
+ : `${failures.length} backends failed`;
120
+ super(`Load balancer "${profileName}" failover exhausted: ${errorSummary} (tried: ${profileNames})`);
121
+ this.name = 'LoadBalancerFailoverError';
122
+ this.profileName = profileName;
123
+ this.failures = failures;
124
+ }
125
+ }
108
126
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/providers/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAC3C,QAAQ,CAAS;IACjB,YAAY,CAAY;IAEjC,YAAY,OAAe,EAAE,QAAgB,EAAE,YAAuB;QACpE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD;;OAEG;IACM,WAAW,CAAS;IAC7B;;OAEG;IACM,aAAa,CAAoB;IAC1C;;OAEG;IACM,WAAW,CAAS;IAC7B;;OAEG;IACM,WAAW,CAAoB;IACxC;;OAEG;IACM,OAAO,CAGd;IAEF;;;;OAIG;IACH,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,GAAG,aAAa,EAC3B,WAAW,EACX,KAAK,EACL,QAAQ,EACR,OAAO,GASR;QACC,MAAM,gBAAgB,GACpB,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QACvE,KAAK,CACH,OAAO;YACL,YAAY,WAAW,8CAA8C,gBAAgB,IAAI,CAC5F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI;YAChC,2EAA2E;YAC3E,kFAAkF;SACnF,CAAC;QACF,IAAI,CAAC,OAAO,GAAG;YACb,KAAK;YACL,QAAQ;SACT,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,iCAAkC,SAAQ,KAAK;IACjD,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,OAAO,CAId;IAEF,YAAY,EACV,WAAW,EACX,OAAO,EACP,WAAW,GAAG,aAAa,EAC3B,SAAS,EACT,KAAK,EACL,QAAQ,GAQT;QACC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mCAAmC,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG;YACb,SAAS;YACT,KAAK;YACL,QAAQ;SACT,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,WAAW,CAAS;IACpB,OAAO,CAId;IAEF,YAAY,EACV,OAAO,EACP,WAAW,GAAG,aAAa,EAC3B,MAAM,EACN,KAAK,EACL,QAAQ,GAOT;QACC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG;YACb,MAAM;YACN,KAAK;YACL,QAAQ;SACT,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/providers/errors.ts"],"names":[],"mappings":"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"}
@@ -136,7 +136,7 @@ export interface LoadBalancerProfile {
136
136
  /** Profile type */
137
137
  type: 'loadbalancer';
138
138
  /** Load balancing policy */
139
- policy: 'roundrobin';
139
+ policy: 'roundrobin' | 'failover';
140
140
  /** List of profile names to load balance across */
141
141
  profiles: string[];
142
142
  /** Provider name (empty for load balancer) */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vybestack/llxprt-code-core",
3
- "version": "0.7.0-nightly.251212.dd1b5bfd7",
3
+ "version": "0.7.0-nightly.251213.e273961ea",
4
4
  "description": "LLxprt Code Core",
5
5
  "repository": {
6
6
  "type": "git",