@jsonstudio/rcc 0.89.935 → 0.89.1083

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 (96) hide show
  1. package/README.md +1 -42
  2. package/dist/build-info.js +2 -2
  3. package/dist/build-info.js.map +1 -1
  4. package/dist/cli.js +120 -16
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/quota-daemon.d.ts +2 -0
  7. package/dist/commands/quota-daemon.js +89 -0
  8. package/dist/commands/quota-daemon.js.map +1 -0
  9. package/dist/commands/token-daemon.js +1 -1
  10. package/dist/commands/token-daemon.js.map +1 -1
  11. package/dist/docs/daemon-admin-ui.html +958 -0
  12. package/dist/index.js +54 -4
  13. package/dist/index.js.map +1 -1
  14. package/dist/manager/modules/quota/index.d.ts +34 -0
  15. package/dist/manager/modules/quota/index.js +291 -0
  16. package/dist/manager/modules/quota/index.js.map +1 -1
  17. package/dist/manager/modules/token/index.js +14 -3
  18. package/dist/manager/modules/token/index.js.map +1 -1
  19. package/dist/manager/quota/provider-quota-center.d.ts +48 -0
  20. package/dist/manager/quota/provider-quota-center.js +239 -0
  21. package/dist/manager/quota/provider-quota-center.js.map +1 -0
  22. package/dist/manager/quota/provider-quota-store.d.ts +17 -0
  23. package/dist/manager/quota/provider-quota-store.js +88 -0
  24. package/dist/manager/quota/provider-quota-store.js.map +1 -0
  25. package/dist/providers/auth/token-scanner/index.js +11 -3
  26. package/dist/providers/auth/token-scanner/index.js.map +1 -1
  27. package/dist/providers/core/runtime/http-request-executor.js +24 -7
  28. package/dist/providers/core/runtime/http-request-executor.js.map +1 -1
  29. package/dist/providers/core/runtime/http-transport-provider.js +11 -3
  30. package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
  31. package/dist/providers/core/runtime/responses-provider.js +9 -3
  32. package/dist/providers/core/runtime/responses-provider.js.map +1 -1
  33. package/dist/providers/core/utils/http-client.d.ts +1 -0
  34. package/dist/providers/core/utils/http-client.js +139 -4
  35. package/dist/providers/core/utils/http-client.js.map +1 -1
  36. package/dist/providers/core/utils/snapshot-writer.d.ts +12 -0
  37. package/dist/providers/core/utils/snapshot-writer.js +99 -18
  38. package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
  39. package/dist/providers/mock/mock-provider-runtime.d.ts +3 -0
  40. package/dist/providers/mock/mock-provider-runtime.js +176 -4
  41. package/dist/providers/mock/mock-provider-runtime.js.map +1 -1
  42. package/dist/server/handlers/chat-handler.js +13 -1
  43. package/dist/server/handlers/chat-handler.js.map +1 -1
  44. package/dist/server/handlers/handler-utils.js +5 -0
  45. package/dist/server/handlers/handler-utils.js.map +1 -1
  46. package/dist/server/handlers/messages-handler.js +13 -1
  47. package/dist/server/handlers/messages-handler.js.map +1 -1
  48. package/dist/server/handlers/responses-handler.js +73 -1
  49. package/dist/server/handlers/responses-handler.js.map +1 -1
  50. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +174 -2
  51. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
  52. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +519 -0
  53. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
  54. package/dist/server/runtime/http-server/executor-response.js +6 -0
  55. package/dist/server/runtime/http-server/executor-response.js.map +1 -1
  56. package/dist/server/runtime/http-server/index.d.ts +5 -0
  57. package/dist/server/runtime/http-server/index.js +205 -4
  58. package/dist/server/runtime/http-server/index.js.map +1 -1
  59. package/dist/server/runtime/http-server/middleware.d.ts +2 -0
  60. package/dist/server/runtime/http-server/middleware.js +63 -0
  61. package/dist/server/runtime/http-server/middleware.js.map +1 -1
  62. package/dist/server/runtime/http-server/request-executor.d.ts +2 -0
  63. package/dist/server/runtime/http-server/request-executor.js +57 -10
  64. package/dist/server/runtime/http-server/request-executor.js.map +1 -1
  65. package/dist/server/runtime/http-server/routes.js +38 -1
  66. package/dist/server/runtime/http-server/routes.js.map +1 -1
  67. package/dist/server/runtime/http-server/stats-manager.d.ts +55 -0
  68. package/dist/server/runtime/http-server/stats-manager.js +462 -4
  69. package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
  70. package/dist/server/runtime/http-server/types.d.ts +1 -0
  71. package/dist/token-daemon/token-daemon.d.ts +3 -1
  72. package/dist/token-daemon/token-daemon.js +130 -8
  73. package/dist/token-daemon/token-daemon.js.map +1 -1
  74. package/dist/token-daemon/token-utils.d.ts +1 -0
  75. package/dist/token-daemon/token-utils.js +9 -1
  76. package/dist/token-daemon/token-utils.js.map +1 -1
  77. package/dist/tools/semantic-replay.js +29 -0
  78. package/dist/tools/semantic-replay.js.map +1 -1
  79. package/dist/utils/snapshot-writer.d.ts +2 -0
  80. package/dist/utils/snapshot-writer.js +47 -4
  81. package/dist/utils/snapshot-writer.js.map +1 -1
  82. package/package.json +2 -3
  83. package/scripts/analyze-apply-patch-exec-failures.mjs +153 -0
  84. package/scripts/analyze-apply-patch-samples.mjs +242 -0
  85. package/scripts/analyze-codex-error-failures.mjs +24 -14
  86. package/scripts/classify-codex-samples.mjs +0 -35
  87. package/scripts/copy-modules-config.mjs +17 -1
  88. package/scripts/generate-snapshot-data.mjs +41 -11
  89. package/scripts/mock-provider/extract.mjs +254 -21
  90. package/scripts/mock-provider/run-regressions.mjs +97 -16
  91. package/scripts/quota-dryrun.mjs +124 -0
  92. package/scripts/tests/apply-patch-loop.mjs +5 -1
  93. package/scripts/tests/exec-command-loop.mjs +16 -19
  94. package/scripts/verify-apply-patch.mjs +335 -5
  95. package/scripts/verify-e2e-toolcall.mjs +49 -10
  96. package/scripts/toon-suite.mjs +0 -141
package/dist/index.js CHANGED
@@ -69,6 +69,27 @@ async function reportCliError(code, message, error, severity = 'medium', details
69
69
  /* ignore hub failures */
70
70
  }
71
71
  }
72
+ let lastShutdownReason = { kind: 'unknown' };
73
+ function recordShutdownReason(reason) {
74
+ if (lastShutdownReason.kind === 'unknown') {
75
+ lastShutdownReason = reason;
76
+ }
77
+ }
78
+ process.on('exit', (code) => {
79
+ const reason = lastShutdownReason;
80
+ const payload = {
81
+ kind: reason.kind,
82
+ exitCode: code
83
+ };
84
+ if (reason.kind === 'signal') {
85
+ payload.signal = reason.signal;
86
+ }
87
+ else if (reason.kind === 'uncaughtException' || reason.kind === 'startupError' || reason.kind === 'stopError') {
88
+ payload.message = reason.message;
89
+ }
90
+ // Single-line JSON for easy grep in logs
91
+ console.log('[routecodex:shutdown]', JSON.stringify(payload));
92
+ });
72
93
  function readString(value) {
73
94
  if (typeof value === 'string' && value.trim()) {
74
95
  return value.trim();
@@ -194,12 +215,15 @@ class RouteCodexApp {
194
215
  ?? readRecordString(getNestedRecord(userConfigRecord, ['server']), 'host')
195
216
  ?? '0.0.0.0';
196
217
  let bindPort = port;
218
+ let bindApiKey = readRecordString(getNestedRecord(userConfigRecord, ['httpserver']), 'apikey')
219
+ ?? readRecordString(getNestedRecord(userConfigRecord, ['modules', 'httpserver', 'config']), 'apikey');
197
220
  try {
198
221
  const envPort = Number(process.env.ROUTECODEX_PORT || process.env.RCC_PORT || NaN);
199
222
  const httpConfig = getNestedRecord(userConfigRecord, ['httpserver']) ??
200
223
  getNestedRecord(userConfigRecord, ['modules', 'httpserver', 'config']);
201
224
  const serverConfig = getNestedRecord(userConfigRecord, ['server']);
202
225
  const portRaw = readRecordNumber(httpConfig, 'port') ?? readRecordNumber(serverConfig, 'port');
226
+ bindApiKey = readRecordString(httpConfig, 'apikey') ?? bindApiKey;
203
227
  if (Number.isFinite(envPort) && envPort > 0) {
204
228
  bindPort = envPort;
205
229
  }
@@ -213,6 +237,7 @@ class RouteCodexApp {
213
237
  catch {
214
238
  bindHost = '0.0.0.0';
215
239
  bindPort = port;
240
+ bindApiKey = undefined;
216
241
  }
217
242
  const { RouteCodexHttpServer } = await import('./server/runtime/http-server.js');
218
243
  // V2 hooks 开关:默认开启;可通过 ROUTECODEX_V2_HOOKS=0/false/no 关闭
@@ -220,7 +245,7 @@ class RouteCodexApp {
220
245
  const hooksOff = hooksEnv === '0' || hooksEnv === 'false' || hooksEnv === 'no';
221
246
  const hooksOn = !hooksOff;
222
247
  this.httpServer = new RouteCodexHttpServer({
223
- server: { host: bindHost, port: bindPort, useV2: true },
248
+ server: { host: bindHost, port: bindPort, apikey: bindApiKey, useV2: true },
224
249
  logging: { level: 'debug', enableConsole: true },
225
250
  providers: {},
226
251
  v2Config: { enableHooks: hooksOn }
@@ -311,6 +336,8 @@ class RouteCodexApp {
311
336
  // samples dry-run removed
312
337
  }
313
338
  catch (error) {
339
+ const message = error instanceof Error ? error.message : String(error ?? '');
340
+ recordShutdownReason({ kind: 'startupError', message });
314
341
  await reportCliError('SERVER_START_FAILED', 'Failed to start RouteCodex server', error, 'critical');
315
342
  console.error('❌ Failed to start RouteCodex server:', error);
316
343
  process.exit(1);
@@ -321,6 +348,7 @@ class RouteCodexApp {
321
348
  */
322
349
  async stop() {
323
350
  try {
351
+ recordShutdownReason({ kind: 'stopError', message: 'stop() invoked' });
324
352
  if (this._isRunning) {
325
353
  console.log('🛑 Stopping RouteCodex server...');
326
354
  if (this.httpServer) {
@@ -331,6 +359,8 @@ class RouteCodexApp {
331
359
  }
332
360
  }
333
361
  catch (error) {
362
+ const message = error instanceof Error ? error.message : String(error ?? '');
363
+ recordShutdownReason({ kind: 'stopError', message });
334
364
  await reportCliError('SERVER_STOP_FAILED', 'Failed to stop RouteCodex server', error, 'high');
335
365
  console.error('❌ Failed to stop RouteCodex server:', error);
336
366
  process.exit(1);
@@ -577,7 +607,17 @@ async function attemptHttpShutdown(port) {
577
607
  * Handle graceful shutdown
578
608
  */
579
609
  async function gracefulShutdown(app) {
580
- console.log('\n🛑 Received shutdown signal, stopping server gracefully...');
610
+ const reason = lastShutdownReason;
611
+ const reasonLabel = reason.kind === 'signal'
612
+ ? `signal=${reason.signal}`
613
+ : reason.kind === 'uncaughtException'
614
+ ? 'reason=uncaughtException'
615
+ : reason.kind === 'startupError'
616
+ ? 'reason=startupError'
617
+ : reason.kind === 'stopError'
618
+ ? 'reason=stopError'
619
+ : 'reason=unknown';
620
+ console.log(`\n🛑 Stopping RouteCodex server gracefully... (${reasonLabel})`);
581
621
  try {
582
622
  await app.stop();
583
623
  process.exit(0);
@@ -595,10 +635,18 @@ async function main() {
595
635
  const modulesConfigPath = process.argv[2]; // Allow modules config path as command line argument
596
636
  const app = new RouteCodexApp(modulesConfigPath);
597
637
  // Setup signal handlers for graceful shutdown
598
- process.on('SIGTERM', () => gracefulShutdown(app));
599
- process.on('SIGINT', () => gracefulShutdown(app));
638
+ process.on('SIGTERM', () => {
639
+ recordShutdownReason({ kind: 'signal', signal: 'SIGTERM' });
640
+ void gracefulShutdown(app);
641
+ });
642
+ process.on('SIGINT', () => {
643
+ recordShutdownReason({ kind: 'signal', signal: 'SIGINT' });
644
+ void gracefulShutdown(app);
645
+ });
600
646
  // Handle uncaught exceptions
601
647
  process.on('uncaughtException', (error) => {
648
+ const message = error instanceof Error ? error.message : String(error ?? '');
649
+ recordShutdownReason({ kind: 'uncaughtException', message });
602
650
  void reportCliError('UNCAUGHT_EXCEPTION', 'Uncaught Exception', error, 'critical');
603
651
  console.error('❌ Uncaught Exception:', error);
604
652
  gracefulShutdown(app).catch(() => process.exit(1));
@@ -616,6 +664,8 @@ async function main() {
616
664
  // Start the application if this file is run directly
617
665
  if (import.meta.url === `file://${process.argv[1]}`) {
618
666
  main().catch(async (error) => {
667
+ const message = error instanceof Error ? error.message : String(error ?? '');
668
+ recordShutdownReason({ kind: 'startupError', message });
619
669
  await reportCliError('MAIN_START_FAILED', 'Failed to start RouteCodex', error, 'critical');
620
670
  console.error('❌ Failed to start RouteCodex:', error);
621
671
  process.exit(1);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -55,3 +55,37 @@ export declare class QuotaManagerModule implements ManagerModule {
55
55
  private emitQuotaRecoveryEvent;
56
56
  private emitQuotaDepletedEvent;
57
57
  }
58
+ export declare class ProviderQuotaDaemonModule implements ManagerModule {
59
+ readonly id = "provider-quota";
60
+ private quotaStates;
61
+ private unsubscribe;
62
+ private maintenanceTimer;
63
+ private persistTimer;
64
+ init(_context: ManagerContext): Promise<void>;
65
+ start(): Promise<void>;
66
+ stop(): Promise<void>;
67
+ recordProviderUsage(event: {
68
+ providerKey: string;
69
+ requestedTokens?: number | null;
70
+ timestampMs?: number;
71
+ }): void;
72
+ recordProviderSuccess(event: {
73
+ providerKey: string;
74
+ usedTokens?: number | null;
75
+ timestampMs?: number;
76
+ }): void;
77
+ private handleProviderErrorEvent;
78
+ private runMaintenanceTick;
79
+ private schedulePersist;
80
+ private toSnapshotObject;
81
+ private extractProviderKey;
82
+ getQuotaView(): (providerKey: string) => {
83
+ providerKey: string;
84
+ inPool: boolean;
85
+ reason?: string;
86
+ priorityTier?: number;
87
+ cooldownUntil?: number | null;
88
+ blacklistUntil?: number | null;
89
+ } | null;
90
+ private isFatalForQuota;
91
+ }
@@ -6,6 +6,8 @@ import { scanProviderTokenFiles } from '../../../providers/auth/token-scanner/in
6
6
  import { resolveAntigravityApiBase } from '../../../providers/auth/antigravity-userinfo-helper.js';
7
7
  import { getProviderErrorCenter } from '../../../modules/llmswitch/bridge.js';
8
8
  import { readTokenFile, evaluateTokenState } from '../../../token-daemon/token-utils.js';
9
+ import { applyErrorEvent as applyQuotaErrorEvent, applySuccessEvent as applyQuotaSuccessEvent, applyUsageEvent as applyQuotaUsageEvent, createInitialQuotaState, tickQuotaStateTime } from '../../quota/provider-quota-center.js';
10
+ import { appendProviderErrorEvent, loadProviderQuotaSnapshot, saveProviderQuotaSnapshot } from '../../quota/provider-quota-store.js';
9
11
  export class QuotaManagerModule {
10
12
  id = 'quota';
11
13
  snapshot = {};
@@ -423,4 +425,293 @@ export class QuotaManagerModule {
423
425
  }
424
426
  }
425
427
  }
428
+ export class ProviderQuotaDaemonModule {
429
+ id = 'provider-quota';
430
+ quotaStates = new Map();
431
+ unsubscribe = null;
432
+ maintenanceTimer = null;
433
+ persistTimer = null;
434
+ async init(_context) {
435
+ try {
436
+ const snapshot = await loadProviderQuotaSnapshot();
437
+ if (snapshot && snapshot.providers && typeof snapshot.providers === 'object') {
438
+ for (const [providerKey, state] of Object.entries(snapshot.providers)) {
439
+ if (state && typeof state === 'object') {
440
+ this.quotaStates.set(providerKey, state);
441
+ }
442
+ }
443
+ }
444
+ }
445
+ catch {
446
+ this.quotaStates = new Map();
447
+ }
448
+ }
449
+ async start() {
450
+ let center = null;
451
+ try {
452
+ center = await getProviderErrorCenter();
453
+ }
454
+ catch {
455
+ center = null;
456
+ }
457
+ if (center && typeof center.subscribe === 'function') {
458
+ this.unsubscribe = center.subscribe((event) => {
459
+ void this.handleProviderErrorEvent(event);
460
+ });
461
+ }
462
+ const intervalMs = readPositiveNumberFromEnv('ROUTECODEX_QUOTA_DAEMON_INTERVAL_MS', 60_000);
463
+ if (intervalMs > 0) {
464
+ this.maintenanceTimer = setInterval(() => {
465
+ void this.runMaintenanceTick().catch(() => {
466
+ // ignore maintenance failures
467
+ });
468
+ }, intervalMs);
469
+ }
470
+ }
471
+ async stop() {
472
+ if (this.unsubscribe) {
473
+ try {
474
+ this.unsubscribe();
475
+ }
476
+ catch {
477
+ // ignore unsubscribe failures
478
+ }
479
+ this.unsubscribe = null;
480
+ }
481
+ if (this.maintenanceTimer) {
482
+ clearInterval(this.maintenanceTimer);
483
+ this.maintenanceTimer = null;
484
+ }
485
+ if (this.persistTimer) {
486
+ clearTimeout(this.persistTimer);
487
+ this.persistTimer = null;
488
+ }
489
+ try {
490
+ await saveProviderQuotaSnapshot(this.toSnapshotObject(), new Date());
491
+ }
492
+ catch {
493
+ // best-effort persistence
494
+ }
495
+ }
496
+ recordProviderUsage(event) {
497
+ const providerKey = typeof event?.providerKey === 'string' ? event.providerKey.trim() : '';
498
+ if (!providerKey) {
499
+ return;
500
+ }
501
+ const nowMs = typeof event.timestampMs === 'number' && Number.isFinite(event.timestampMs) && event.timestampMs > 0
502
+ ? event.timestampMs
503
+ : Date.now();
504
+ const requestedTokens = typeof event.requestedTokens === 'number' && Number.isFinite(event.requestedTokens) && event.requestedTokens > 0
505
+ ? event.requestedTokens
506
+ : 0;
507
+ const previous = this.quotaStates.get(providerKey) ?? createInitialQuotaState(providerKey, undefined, nowMs);
508
+ const nextState = applyQuotaUsageEvent(previous, { providerKey, requestedTokens, timestampMs: nowMs }, nowMs);
509
+ this.quotaStates.set(providerKey, nextState);
510
+ this.schedulePersist(nowMs);
511
+ }
512
+ recordProviderSuccess(event) {
513
+ const providerKey = typeof event?.providerKey === 'string' ? event.providerKey.trim() : '';
514
+ if (!providerKey) {
515
+ return;
516
+ }
517
+ const nowMs = typeof event.timestampMs === 'number' && Number.isFinite(event.timestampMs) && event.timestampMs > 0
518
+ ? event.timestampMs
519
+ : Date.now();
520
+ const usedTokens = typeof event.usedTokens === 'number' && Number.isFinite(event.usedTokens) && event.usedTokens > 0
521
+ ? event.usedTokens
522
+ : 0;
523
+ const previous = this.quotaStates.get(providerKey) ?? createInitialQuotaState(providerKey, undefined, nowMs);
524
+ const nextState = applyQuotaSuccessEvent(previous, { providerKey, usedTokens, timestampMs: nowMs }, nowMs);
525
+ this.quotaStates.set(providerKey, nextState);
526
+ this.schedulePersist(nowMs);
527
+ }
528
+ async handleProviderErrorEvent(event) {
529
+ if (!event) {
530
+ return;
531
+ }
532
+ const code = typeof event.code === 'string' ? event.code : '';
533
+ const providerKey = this.extractProviderKey(event);
534
+ if (!providerKey) {
535
+ return;
536
+ }
537
+ const nowMs = typeof event.timestamp === 'number' && Number.isFinite(event.timestamp) && event.timestamp > 0
538
+ ? event.timestamp
539
+ : Date.now();
540
+ const previous = this.quotaStates.get(providerKey) ?? createInitialQuotaState(providerKey, undefined, nowMs);
541
+ // QUOTA_* 属于“确定性配额信号”,不进入错误 series 统计。
542
+ if (code === 'QUOTA_DEPLETED') {
543
+ const detailCarrier = (event.details && typeof event.details === 'object') ? event.details : {};
544
+ const raw = detailCarrier.virtualRouterQuotaDepleted;
545
+ const cooldownMs = raw && typeof raw === 'object' && typeof raw.cooldownMs === 'number'
546
+ ? raw.cooldownMs
547
+ : undefined;
548
+ const ttl = typeof cooldownMs === 'number' && Number.isFinite(cooldownMs) && cooldownMs > 0
549
+ ? cooldownMs
550
+ : undefined;
551
+ const nextState = {
552
+ ...previous,
553
+ inPool: false,
554
+ reason: 'quotaDepleted',
555
+ cooldownUntil: ttl ? nowMs + ttl : previous.cooldownUntil
556
+ };
557
+ this.quotaStates.set(providerKey, nextState);
558
+ this.schedulePersist(nowMs);
559
+ return;
560
+ }
561
+ if (code === 'QUOTA_RECOVERY') {
562
+ const withinBlacklist = previous.blacklistUntil !== null && nowMs < previous.blacklistUntil;
563
+ const withinFatalBlacklist = previous.reason === 'fatal' && previous.blacklistUntil !== null && nowMs < previous.blacklistUntil;
564
+ if (!withinBlacklist && !withinFatalBlacklist) {
565
+ const nextState = {
566
+ ...previous,
567
+ inPool: true,
568
+ reason: 'ok',
569
+ cooldownUntil: null
570
+ };
571
+ this.quotaStates.set(providerKey, nextState);
572
+ this.schedulePersist(nowMs);
573
+ }
574
+ return;
575
+ }
576
+ const errorForQuota = {
577
+ providerKey,
578
+ httpStatus: typeof event.status === 'number' ? event.status : undefined,
579
+ code: typeof event.code === 'string' ? event.code : undefined,
580
+ fatal: this.isFatalForQuota(event),
581
+ timestampMs: nowMs
582
+ };
583
+ const nextState = applyQuotaErrorEvent(previous, errorForQuota, nowMs);
584
+ this.quotaStates.set(providerKey, nextState);
585
+ const tsIso = new Date(nowMs).toISOString();
586
+ try {
587
+ await appendProviderErrorEvent({
588
+ ts: tsIso,
589
+ providerKey,
590
+ code: typeof errorForQuota.code === 'string' ? errorForQuota.code : undefined,
591
+ httpStatus: typeof errorForQuota.httpStatus === 'number' ? errorForQuota.httpStatus : undefined,
592
+ message: event.message,
593
+ details: {
594
+ stage: event.stage,
595
+ routeName: event.runtime.routeName,
596
+ entryEndpoint: event.runtime.entryEndpoint
597
+ }
598
+ });
599
+ }
600
+ catch {
601
+ // logging failure is non-fatal
602
+ }
603
+ try {
604
+ await saveProviderQuotaSnapshot(this.toSnapshotObject(), new Date(nowMs));
605
+ }
606
+ catch {
607
+ // best-effort persistence only
608
+ }
609
+ }
610
+ async runMaintenanceTick() {
611
+ if (!this.quotaStates.size) {
612
+ return;
613
+ }
614
+ const nowMs = Date.now();
615
+ const updated = new Map();
616
+ for (const [providerKey, state] of this.quotaStates.entries()) {
617
+ const next = tickQuotaStateTime(state, nowMs);
618
+ updated.set(providerKey, next);
619
+ }
620
+ this.quotaStates = updated;
621
+ try {
622
+ await saveProviderQuotaSnapshot(this.toSnapshotObject(), new Date(nowMs));
623
+ }
624
+ catch {
625
+ // ignore persistence errors
626
+ }
627
+ }
628
+ schedulePersist(_nowMs) {
629
+ if (this.persistTimer) {
630
+ return;
631
+ }
632
+ const debounceMs = readPositiveNumberFromEnv('ROUTECODEX_QUOTA_PERSIST_DEBOUNCE_MS', 5_000);
633
+ this.persistTimer = setTimeout(() => {
634
+ this.persistTimer = null;
635
+ void saveProviderQuotaSnapshot(this.toSnapshotObject(), new Date()).catch(() => {
636
+ // ignore persistence errors
637
+ });
638
+ }, debounceMs);
639
+ }
640
+ toSnapshotObject() {
641
+ const result = {};
642
+ for (const [key, state] of this.quotaStates.entries()) {
643
+ result[key] = state;
644
+ }
645
+ return result;
646
+ }
647
+ extractProviderKey(event) {
648
+ const runtime = event.runtime;
649
+ const direct = runtime && typeof runtime.providerKey === 'string' && runtime.providerKey.trim()
650
+ ? runtime.providerKey.trim()
651
+ : null;
652
+ if (direct) {
653
+ return direct;
654
+ }
655
+ const target = runtime && runtime.target;
656
+ if (target && typeof target === 'object') {
657
+ const targetKey = target.providerKey;
658
+ if (typeof targetKey === 'string' && targetKey.trim()) {
659
+ return targetKey.trim();
660
+ }
661
+ }
662
+ return null;
663
+ }
664
+ getQuotaView() {
665
+ return (providerKey) => {
666
+ const key = typeof providerKey === 'string' ? providerKey.trim() : '';
667
+ if (!key) {
668
+ return null;
669
+ }
670
+ const state = this.quotaStates.get(key);
671
+ if (!state) {
672
+ return null;
673
+ }
674
+ return {
675
+ providerKey: state.providerKey,
676
+ inPool: state.inPool,
677
+ reason: state.reason,
678
+ priorityTier: state.priorityTier,
679
+ cooldownUntil: state.cooldownUntil ?? null,
680
+ blacklistUntil: state.blacklistUntil ?? null
681
+ };
682
+ };
683
+ }
684
+ isFatalForQuota(event) {
685
+ const status = typeof event.status === 'number' ? event.status : undefined;
686
+ const code = typeof event.code === 'string' ? event.code.toUpperCase() : '';
687
+ const stage = typeof event.stage === 'string' ? event.stage.toLowerCase() : '';
688
+ if (status === 401 || status === 402 || status === 403) {
689
+ return true;
690
+ }
691
+ if (code.includes('AUTH') || code.includes('UNAUTHORIZED')) {
692
+ return true;
693
+ }
694
+ if (code.includes('CONFIG')) {
695
+ return true;
696
+ }
697
+ if (stage.includes('compat')) {
698
+ return true;
699
+ }
700
+ if (event.recoverable === false && status !== undefined && status >= 500) {
701
+ return true;
702
+ }
703
+ return false;
704
+ }
705
+ }
706
+ function readPositiveNumberFromEnv(name, fallback) {
707
+ const raw = process.env[name];
708
+ if (!raw) {
709
+ return fallback;
710
+ }
711
+ const parsed = Number(raw);
712
+ if (!Number.isFinite(parsed) || parsed <= 0) {
713
+ return fallback;
714
+ }
715
+ return parsed;
716
+ }
426
717
  //# sourceMappingURL=index.js.map