codex-multi-auth 1.2.4 → 1.2.6

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 (120) hide show
  1. package/README.md +23 -9
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +212 -24
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/accounts.d.ts.map +1 -1
  6. package/dist/lib/accounts.js +8 -0
  7. package/dist/lib/accounts.js.map +1 -1
  8. package/dist/lib/auto-update-checker.d.ts.map +1 -1
  9. package/dist/lib/auto-update-checker.js +72 -36
  10. package/dist/lib/auto-update-checker.js.map +1 -1
  11. package/dist/lib/codex-manager/commands/forecast.d.ts.map +1 -1
  12. package/dist/lib/codex-manager/commands/forecast.js +1 -76
  13. package/dist/lib/codex-manager/commands/forecast.js.map +1 -1
  14. package/dist/lib/codex-manager/commands/report.d.ts +4 -1
  15. package/dist/lib/codex-manager/commands/report.d.ts.map +1 -1
  16. package/dist/lib/codex-manager/commands/report.js +128 -75
  17. package/dist/lib/codex-manager/commands/report.js.map +1 -1
  18. package/dist/lib/codex-manager/commands/status.d.ts +4 -1
  19. package/dist/lib/codex-manager/commands/status.d.ts.map +1 -1
  20. package/dist/lib/codex-manager/commands/status.js +48 -1
  21. package/dist/lib/codex-manager/commands/status.js.map +1 -1
  22. package/dist/lib/codex-manager/forecast-report-shared.d.ts +35 -0
  23. package/dist/lib/codex-manager/forecast-report-shared.d.ts.map +1 -0
  24. package/dist/lib/codex-manager/forecast-report-shared.js +79 -0
  25. package/dist/lib/codex-manager/forecast-report-shared.js.map +1 -0
  26. package/dist/lib/codex-manager/repair-commands.d.ts.map +1 -1
  27. package/dist/lib/codex-manager/repair-commands.js +20 -12
  28. package/dist/lib/codex-manager/repair-commands.js.map +1 -1
  29. package/dist/lib/codex-manager.d.ts.map +1 -1
  30. package/dist/lib/codex-manager.js +39 -8
  31. package/dist/lib/codex-manager.js.map +1 -1
  32. package/dist/lib/config.d.ts +4 -0
  33. package/dist/lib/config.d.ts.map +1 -1
  34. package/dist/lib/config.js +42 -5
  35. package/dist/lib/config.js.map +1 -1
  36. package/dist/lib/index.d.ts +1 -1
  37. package/dist/lib/index.d.ts.map +1 -1
  38. package/dist/lib/index.js +1 -1
  39. package/dist/lib/index.js.map +1 -1
  40. package/dist/lib/parallel-probe.d.ts.map +1 -1
  41. package/dist/lib/parallel-probe.js +28 -1
  42. package/dist/lib/parallel-probe.js.map +1 -1
  43. package/dist/lib/preemptive-quota-scheduler.d.ts.map +1 -1
  44. package/dist/lib/preemptive-quota-scheduler.js +16 -6
  45. package/dist/lib/preemptive-quota-scheduler.js.map +1 -1
  46. package/dist/lib/proactive-refresh.d.ts.map +1 -1
  47. package/dist/lib/proactive-refresh.js +16 -5
  48. package/dist/lib/proactive-refresh.js.map +1 -1
  49. package/dist/lib/quota-cache.d.ts.map +1 -1
  50. package/dist/lib/quota-cache.js +36 -30
  51. package/dist/lib/quota-cache.js.map +1 -1
  52. package/dist/lib/quota-probe.d.ts.map +1 -1
  53. package/dist/lib/quota-probe.js +5 -0
  54. package/dist/lib/quota-probe.js.map +1 -1
  55. package/dist/lib/request/failure-policy.js +1 -1
  56. package/dist/lib/request/failure-policy.js.map +1 -1
  57. package/dist/lib/request/fetch-helpers.js +12 -4
  58. package/dist/lib/request/fetch-helpers.js.map +1 -1
  59. package/dist/lib/request/rate-limit-backoff.d.ts +24 -4
  60. package/dist/lib/request/rate-limit-backoff.d.ts.map +1 -1
  61. package/dist/lib/request/rate-limit-backoff.js +84 -19
  62. package/dist/lib/request/rate-limit-backoff.js.map +1 -1
  63. package/dist/lib/request/request-attempt-budget.d.ts +24 -0
  64. package/dist/lib/request/request-attempt-budget.d.ts.map +1 -0
  65. package/dist/lib/request/request-attempt-budget.js +49 -0
  66. package/dist/lib/request/request-attempt-budget.js.map +1 -0
  67. package/dist/lib/request/request-resilience.d.ts +10 -0
  68. package/dist/lib/request/request-resilience.d.ts.map +1 -0
  69. package/dist/lib/request/request-resilience.js +80 -0
  70. package/dist/lib/request/request-resilience.js.map +1 -0
  71. package/dist/lib/request/response-metadata.js +1 -1
  72. package/dist/lib/request/response-metadata.js.map +1 -1
  73. package/dist/lib/request/stream-failover.d.ts +5 -1
  74. package/dist/lib/request/stream-failover.d.ts.map +1 -1
  75. package/dist/lib/request/stream-failover.js +8 -1
  76. package/dist/lib/request/stream-failover.js.map +1 -1
  77. package/dist/lib/runtime/live-sync-entry.d.ts +7 -0
  78. package/dist/lib/runtime/live-sync-entry.d.ts.map +1 -1
  79. package/dist/lib/runtime/live-sync-entry.js +4 -0
  80. package/dist/lib/runtime/live-sync-entry.js.map +1 -1
  81. package/dist/lib/runtime/live-sync.d.ts +3 -0
  82. package/dist/lib/runtime/live-sync.d.ts.map +1 -1
  83. package/dist/lib/runtime/live-sync.js +17 -3
  84. package/dist/lib/runtime/live-sync.js.map +1 -1
  85. package/dist/lib/runtime/runtime-observability.d.ts +46 -0
  86. package/dist/lib/runtime/runtime-observability.d.ts.map +1 -0
  87. package/dist/lib/runtime/runtime-observability.js +167 -0
  88. package/dist/lib/runtime/runtime-observability.js.map +1 -0
  89. package/dist/lib/runtime/runtime-services.d.ts +3 -0
  90. package/dist/lib/runtime/runtime-services.d.ts.map +1 -1
  91. package/dist/lib/runtime/runtime-services.js +19 -7
  92. package/dist/lib/runtime/runtime-services.js.map +1 -1
  93. package/dist/lib/schemas.d.ts +11 -0
  94. package/dist/lib/schemas.d.ts.map +1 -1
  95. package/dist/lib/schemas.js +5 -1
  96. package/dist/lib/schemas.js.map +1 -1
  97. package/dist/lib/session-affinity.d.ts +4 -1
  98. package/dist/lib/session-affinity.d.ts.map +1 -1
  99. package/dist/lib/session-affinity.js +26 -1
  100. package/dist/lib/session-affinity.js.map +1 -1
  101. package/dist/lib/storage/account-clear.d.ts.map +1 -1
  102. package/dist/lib/storage/account-clear.js +43 -13
  103. package/dist/lib/storage/account-clear.js.map +1 -1
  104. package/dist/lib/storage/health.d.ts +22 -0
  105. package/dist/lib/storage/health.d.ts.map +1 -0
  106. package/dist/lib/storage/health.js +15 -0
  107. package/dist/lib/storage/health.js.map +1 -0
  108. package/dist/lib/storage/migrations.d.ts +1 -1
  109. package/dist/lib/storage/migrations.d.ts.map +1 -1
  110. package/dist/lib/storage.d.ts +3 -1
  111. package/dist/lib/storage.d.ts.map +1 -1
  112. package/dist/lib/storage.js +108 -4
  113. package/dist/lib/storage.js.map +1 -1
  114. package/package.json +1 -1
  115. package/scripts/codex-multi-auth.js +1 -1
  116. package/scripts/codex.js +205 -20
  117. package/dist/lib/runtime/metrics.d.ts +0 -29
  118. package/dist/lib/runtime/metrics.d.ts.map +0 -1
  119. package/dist/lib/runtime/metrics.js +0 -97
  120. package/dist/lib/runtime/metrics.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-attempt-budget.js","sourceRoot":"","sources":["../../../lib/request/request-attempt-budget.ts"],"names":[],"mappings":"AAAA,MAAM,mCAAmC,GAAG,CAAC,CAAC;AAC9C,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IACjD,OAAO,IAAI,CAAC,GAAG,CACd,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mCAAmC,CAAC,MAKnD;IACA,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC5B,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAC1E,CAAC;IACF,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CACrC,CAAC,EACD,IAAI,CAAC,KAAK,CACT,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC;QAC5C,CAAC,CAAC,MAAM,CAAC,qBAAqB;QAC9B,CAAC,CAAC,CAAC,CACJ,CACD,CAAC;IACF,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CACvC,CAAC,EACD,IAAI,CAAC,KAAK,CACT,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC;QAC9C,CAAC,CAAC,MAAM,CAAC,uBAAuB;QAChC,CAAC,CAAC,CAAC,CACJ,CACD,CAAC;IACF,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAEzE,OAAO,IAAI,CAAC,GAAG,CACd,CAAC,EACD,IAAI,CAAC,GAAG,CACP,YAAY;QACX,qBAAqB;QACrB,uBAAuB;QACvB,iBAAiB,EAClB,mCAAmC,CACnC,CACD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAChD,YAAoB,EACpB,cAAwB;IAExB,MAAM,KAAK,GAAa,CAAC,YAAY,CAAC,CAAC;IAEvC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAChF,SAAS;QACV,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,KAAK,CAAC,MAAM,IAAI,8BAA8B,EAAE,CAAC;YACpD,MAAM;QACP,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ManagedAccount } from "../accounts.js";
2
+ export declare function getPoolExhaustionCooldownRemaining(now?: number): number;
3
+ export declare function armPoolExhaustionCooldown(waitMs: number, now?: number): number;
4
+ export declare function clearPoolExhaustionCooldown(): void;
5
+ export declare function getServerBurstCooldownRemaining(now?: number): number;
6
+ export declare function recordServerBurstFailure(accountIndex: number, now?: number): number;
7
+ export declare function clearServerBurstCooldown(): void;
8
+ export declare function buildAdaptiveStreamFailoverCandidateOrder(primaryIndex: number, accounts: Array<Pick<ManagedAccount, "index" | "lastUsed" | "enabled" | "coolingDownUntil" | "rateLimitResetTimes">>, now?: number): number[];
9
+ export declare function resetRequestResilienceStateForTests(): void;
10
+ //# sourceMappingURL=request-resilience.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-resilience.d.ts","sourceRoot":"","sources":["../../../lib/request/request-resilience.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAmBrD,wBAAgB,kCAAkC,CAAC,GAAG,SAAa,GAAG,MAAM,CAK3E;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,MAAM,CAQlF;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED,wBAAgB,+BAA+B,CAAC,GAAG,SAAa,GAAG,MAAM,CAKxE;AAED,wBAAgB,wBAAwB,CACvC,YAAY,EAAE,MAAM,EACpB,GAAG,SAAa,GACd,MAAM,CAuBR;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAM/C;AAED,wBAAgB,yCAAyC,CACxD,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,kBAAkB,GAAG,qBAAqB,CAAC,CAAC,EACpH,GAAG,SAAa,GACd,MAAM,EAAE,CAgBV;AAED,wBAAgB,mCAAmC,IAAI,IAAI,CAG1D"}
@@ -0,0 +1,80 @@
1
+ const POOL_EXHAUSTION_COOLDOWN_MS = 15_000;
2
+ const SERVER_BURST_COOLDOWN_MS = 10_000;
3
+ const SERVER_BURST_THRESHOLD = 3;
4
+ let poolExhaustionCooldownUntil = null;
5
+ let serverBurstState = {
6
+ windowStartedAt: 0,
7
+ accountIndices: new Set(),
8
+ cooldownUntil: null,
9
+ };
10
+ export function getPoolExhaustionCooldownRemaining(now = Date.now()) {
11
+ if (!poolExhaustionCooldownUntil || poolExhaustionCooldownUntil <= now) {
12
+ return 0;
13
+ }
14
+ return poolExhaustionCooldownUntil - now;
15
+ }
16
+ export function armPoolExhaustionCooldown(waitMs, now = Date.now()) {
17
+ const bounded = Math.max(POOL_EXHAUSTION_COOLDOWN_MS, Math.floor(waitMs));
18
+ const nextExpiry = now + bounded;
19
+ poolExhaustionCooldownUntil = Math.max(poolExhaustionCooldownUntil ?? 0, nextExpiry);
20
+ return poolExhaustionCooldownUntil;
21
+ }
22
+ export function clearPoolExhaustionCooldown() {
23
+ poolExhaustionCooldownUntil = null;
24
+ }
25
+ export function getServerBurstCooldownRemaining(now = Date.now()) {
26
+ if (!serverBurstState.cooldownUntil || serverBurstState.cooldownUntil <= now) {
27
+ return 0;
28
+ }
29
+ return serverBurstState.cooldownUntil - now;
30
+ }
31
+ export function recordServerBurstFailure(accountIndex, now = Date.now()) {
32
+ if (serverBurstState.cooldownUntil && serverBurstState.cooldownUntil > now) {
33
+ return serverBurstState.cooldownUntil;
34
+ }
35
+ if ((serverBurstState.cooldownUntil === null ||
36
+ serverBurstState.cooldownUntil <= now) &&
37
+ now - serverBurstState.windowStartedAt > SERVER_BURST_COOLDOWN_MS) {
38
+ serverBurstState = {
39
+ windowStartedAt: now,
40
+ accountIndices: new Set(),
41
+ cooldownUntil: null,
42
+ };
43
+ }
44
+ if (!serverBurstState.windowStartedAt) {
45
+ serverBurstState.windowStartedAt = now;
46
+ }
47
+ serverBurstState.accountIndices.add(accountIndex);
48
+ if (serverBurstState.accountIndices.size >= SERVER_BURST_THRESHOLD) {
49
+ serverBurstState.cooldownUntil = now + SERVER_BURST_COOLDOWN_MS;
50
+ }
51
+ return serverBurstState.cooldownUntil ?? 0;
52
+ }
53
+ export function clearServerBurstCooldown() {
54
+ serverBurstState = {
55
+ windowStartedAt: 0,
56
+ accountIndices: new Set(),
57
+ cooldownUntil: null,
58
+ };
59
+ }
60
+ export function buildAdaptiveStreamFailoverCandidateOrder(primaryIndex, accounts, now = Date.now()) {
61
+ const primary = accounts.find((account) => account.index === primaryIndex);
62
+ const alternates = accounts
63
+ .filter((account) => account.index !== primaryIndex && account.enabled !== false)
64
+ .filter((account) => {
65
+ const coolingDownUntil = account.coolingDownUntil ?? 0;
66
+ if (coolingDownUntil > now)
67
+ return false;
68
+ const rateLimitValues = Object.values(account.rateLimitResetTimes ?? {});
69
+ return !rateLimitValues.some((value) => typeof value === "number" && value > now);
70
+ })
71
+ .sort((left, right) => (right.lastUsed ?? 0) - (left.lastUsed ?? 0))
72
+ .slice(0, 1)
73
+ .map((account) => account.index);
74
+ return [primary?.index ?? primaryIndex, ...alternates];
75
+ }
76
+ export function resetRequestResilienceStateForTests() {
77
+ clearPoolExhaustionCooldown();
78
+ clearServerBurstCooldown();
79
+ }
80
+ //# sourceMappingURL=request-resilience.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-resilience.js","sourceRoot":"","sources":["../../../lib/request/request-resilience.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const MAX_RETRY_HINT_MS = 5 * 60 * 1000;
1
+ const MAX_RETRY_HINT_MS = 24 * 60 * 60 * 1000;
2
2
  function clampRetryHintMs(value) {
3
3
  if (!Number.isFinite(value))
4
4
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"response-metadata.js","sourceRoot":"","sources":["../../../lib/request/response-metadata.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAExC,SAAS,gBAAgB,CAAC,KAAa;IACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACrD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC;IACjE,IAAI,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC5D,OAAO,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5D,IAAI,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACxD,OAAO,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,gBAAgB,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC;IAC/D,IAAI,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzE,OAAO,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC5C,OAAgB;IAEhB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;QACvB,cAAc;QACd,cAAc;QACd,qBAAqB;QACrB,mBAAmB;QACnB,sBAAsB;QACtB,8BAA8B;QAC9B,gCAAgC;QAChC,0BAA0B;QAC1B,qCAAqC;QACrC,gCAAgC;QAChC,kCAAkC;QAClC,4BAA4B;QAC5B,uCAAuC;QACvC,aAAa;QACb,mBAAmB;QACnB,4BAA4B;KAC5B,CAAC,CAAC;IACH,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QACjC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IAC5B,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"response-metadata.js","sourceRoot":"","sources":["../../../lib/request/response-metadata.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,11 @@ export interface StreamFailoverOptions {
10
10
  *
11
11
  * The returned Response streams bytes from the initialResponse body and, when the stream stalls or errors, will attempt up to `maxFailovers` failovers by calling `getFallbackResponse(attempt, emittedBytes)`. On each successful failover a textual marker is injected into the stream identifying the failover attempt (and `requestInstanceId` when provided). The function performs best-effort cleanup of underlying readers and enforces soft/hard read timeouts as configured via `options`.
12
12
  *
13
- * Concurrency assumptions: the implementation expects a single consumer reading the returned Response body; callers must not concurrently read the same stream body from multiple consumers. Filesystem/platform note: behavior is platform-agnostic; no filesystem access is performed (Windows-specific filesystem semantics do not apply). Token redaction: any request identifiers embedded in the injected marker are limited to the normalized `requestInstanceId` (trimmed and truncated to 64 chars) to avoid leaking long tokens.
13
+ * Concurrency assumptions: the implementation expects a single consumer reading the returned Response body; callers must not concurrently read the same stream body from multiple consumers. Filesystem/platform note: behavior is platform-agnostic; no filesystem access is performed (Windows-specific filesystem semantics do not apply). Token redaction: any request identifiers embedded in the injected marker are limited to the normalized `requestInstanceId` (trimmed and truncated to 64 chars) to avoid leaking long tokens.
14
+ *
15
+ * Failover safety: once the wrapper has already emitted bytes from the primary stream,
16
+ * it will stop attempting fallback replays. Reissuing the upstream request after partial
17
+ * output can duplicate streamed text and any side-effectful tool activity.
14
18
  *
15
19
  * @param initialResponse - The original Response whose body will be streamed and monitored for stalls/errors.
16
20
  * @param getFallbackResponse - Async function invoked for each failover attempt with the 1-based attempt number and total emitted bytes; should return a Response with a streaming body to switch to, or `null`/a Response without a body to indicate no fallback.
@@ -1 +1 @@
1
- {"version":3,"file":"stream-failover.d.ts","sourceRoot":"","sources":["../../../lib/request/stream-failover.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AA8FD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACpC,eAAe,EAAE,QAAQ,EACzB,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,EACxF,OAAO,GAAE,qBAA0B,GACjC,QAAQ,CAmHV"}
1
+ {"version":3,"file":"stream-failover.d.ts","sourceRoot":"","sources":["../../../lib/request/stream-failover.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AA8FD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACpC,eAAe,EAAE,QAAQ,EACzB,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,EACxF,OAAO,GAAE,qBAA0B,GACjC,QAAQ,CAsHV"}
@@ -90,7 +90,11 @@ async function readChunkWithSoftHardTimeout(reader, softTimeoutMs, hardTimeoutMs
90
90
  *
91
91
  * The returned Response streams bytes from the initialResponse body and, when the stream stalls or errors, will attempt up to `maxFailovers` failovers by calling `getFallbackResponse(attempt, emittedBytes)`. On each successful failover a textual marker is injected into the stream identifying the failover attempt (and `requestInstanceId` when provided). The function performs best-effort cleanup of underlying readers and enforces soft/hard read timeouts as configured via `options`.
92
92
  *
93
- * Concurrency assumptions: the implementation expects a single consumer reading the returned Response body; callers must not concurrently read the same stream body from multiple consumers. Filesystem/platform note: behavior is platform-agnostic; no filesystem access is performed (Windows-specific filesystem semantics do not apply). Token redaction: any request identifiers embedded in the injected marker are limited to the normalized `requestInstanceId` (trimmed and truncated to 64 chars) to avoid leaking long tokens.
93
+ * Concurrency assumptions: the implementation expects a single consumer reading the returned Response body; callers must not concurrently read the same stream body from multiple consumers. Filesystem/platform note: behavior is platform-agnostic; no filesystem access is performed (Windows-specific filesystem semantics do not apply). Token redaction: any request identifiers embedded in the injected marker are limited to the normalized `requestInstanceId` (trimmed and truncated to 64 chars) to avoid leaking long tokens.
94
+ *
95
+ * Failover safety: once the wrapper has already emitted bytes from the primary stream,
96
+ * it will stop attempting fallback replays. Reissuing the upstream request after partial
97
+ * output can duplicate streamed text and any side-effectful tool activity.
94
98
  *
95
99
  * @param initialResponse - The original Response whose body will be streamed and monitored for stalls/errors.
96
100
  * @param getFallbackResponse - Async function invoked for each failover attempt with the 1-based attempt number and total emitted bytes; should return a Response with a streaming body to switch to, or `null`/a Response without a body to indicate no fallback.
@@ -136,6 +140,9 @@ export function withStreamingFailover(initialResponse, getFallbackResponse, opti
136
140
  if (failoverAttempt >= maxFailovers) {
137
141
  return false;
138
142
  }
143
+ if (emittedBytes > 0) {
144
+ return false;
145
+ }
139
146
  failoverAttempt += 1;
140
147
  const fallback = await getFallbackResponse(failoverAttempt, emittedBytes);
141
148
  if (!fallback?.body) {
@@ -1 +1 @@
1
- {"version":3,"file":"stream-failover.js","sourceRoot":"","sources":["../../../lib/request/stream-failover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-failover.js","sourceRoot":"","sources":["../../../lib/request/stream-failover.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,11 @@ export declare function ensureLiveAccountSyncEntry<TSync extends LiveAccountSync
8
8
  authFallback?: OAuthAuthDetails;
9
9
  currentSync: TSync | null;
10
10
  currentPath: string | null;
11
+ currentConfigKey?: string | null;
11
12
  getLiveAccountSync: (config: ReturnType<typeof import("../config.js").loadPluginConfig>) => boolean;
12
13
  getStoragePath: () => string;
14
+ getLiveAccountSyncDebounceMs: (config: ReturnType<typeof import("../config.js").loadPluginConfig>) => number;
15
+ getLiveAccountSyncPollMs: (config: ReturnType<typeof import("../config.js").loadPluginConfig>) => number;
13
16
  createSync: (authFallback?: OAuthAuthDetails) => TSync;
14
17
  registerCleanup: (cleanup: () => void) => void;
15
18
  logWarn: (message: string) => void;
@@ -19,6 +22,8 @@ export declare function ensureLiveAccountSyncEntry<TSync extends LiveAccountSync
19
22
  targetPath: string;
20
23
  currentSync: TSync | null;
21
24
  currentPath: string | null;
25
+ currentConfigKey?: string | null;
26
+ configKey?: string | null;
22
27
  authFallback?: OAuthAuthDetails;
23
28
  createSync: (authFallback?: OAuthAuthDetails) => TSync;
24
29
  registerCleanup: (cleanup: () => void) => void;
@@ -27,10 +32,12 @@ export declare function ensureLiveAccountSyncEntry<TSync extends LiveAccountSync
27
32
  }) => Promise<{
28
33
  liveAccountSync: TSync | null;
29
34
  liveAccountSyncPath: string | null;
35
+ liveAccountSyncConfigKey: string | null;
30
36
  }>;
31
37
  }): Promise<{
32
38
  liveAccountSync: TSync | null;
33
39
  liveAccountSyncPath: string | null;
40
+ liveAccountSyncConfigKey: string | null;
34
41
  }>;
35
42
  export {};
36
43
  //# sourceMappingURL=live-sync-entry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"live-sync-entry.d.ts","sourceRoot":"","sources":["../../../lib/runtime/live-sync-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,KAAK,mBAAmB,GAAG;IAC1B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C,CAAC;AAEF,wBAAsB,0BAA0B,CAC/C,KAAK,SAAS,mBAAmB,EAChC,MAAM,EAAE;IACT,YAAY,EAAE,UAAU,CAAC,cAAc,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACzE,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,EAAE,CACnB,MAAM,EAAE,UAAU,CAAC,cAAc,cAAc,EAAE,gBAAgB,CAAC,KAC9D,OAAO,CAAC;IACb,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,UAAU,EAAE,CAAC,YAAY,CAAC,EAAE,gBAAgB,KAAK,KAAK,CAAC;IACvD,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B,EAAE,CAAC,IAAI,EAAE;QAClC,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;QAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,YAAY,CAAC,EAAE,gBAAgB,CAAC;QAChC,UAAU,EAAE,CAAC,YAAY,CAAC,EAAE,gBAAgB,KAAK,KAAK,CAAC;QACvD,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;QAC/C,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QACnC,UAAU,EAAE,MAAM,CAAC;KACnB,KAAK,OAAO,CAAC;QACb,eAAe,EAAE,KAAK,GAAG,IAAI,CAAC;QAC9B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;KACnC,CAAC,CAAC;CACH,GAAG,OAAO,CAAC;IACX,eAAe,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC,CAYD"}
1
+ {"version":3,"file":"live-sync-entry.d.ts","sourceRoot":"","sources":["../../../lib/runtime/live-sync-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,KAAK,mBAAmB,GAAG;IAC1B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C,CAAC;AAEF,wBAAsB,0BAA0B,CAC/C,KAAK,SAAS,mBAAmB,EAChC,MAAM,EAAE;IACT,YAAY,EAAE,UAAU,CAAC,cAAc,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACzE,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,EAAE,CACnB,MAAM,EAAE,UAAU,CAAC,cAAc,cAAc,EAAE,gBAAgB,CAAC,KAC9D,OAAO,CAAC;IACb,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,4BAA4B,EAAE,CAC7B,MAAM,EAAE,UAAU,CAAC,cAAc,cAAc,EAAE,gBAAgB,CAAC,KAC9D,MAAM,CAAC;IACZ,wBAAwB,EAAE,CACzB,MAAM,EAAE,UAAU,CAAC,cAAc,cAAc,EAAE,gBAAgB,CAAC,KAC9D,MAAM,CAAC;IACZ,UAAU,EAAE,CAAC,YAAY,CAAC,EAAE,gBAAgB,KAAK,KAAK,CAAC;IACvD,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B,EAAE,CAAC,IAAI,EAAE;QAClC,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;QAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,YAAY,CAAC,EAAE,gBAAgB,CAAC;QAChC,UAAU,EAAE,CAAC,YAAY,CAAC,EAAE,gBAAgB,KAAK,KAAK,CAAC;QACvD,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;QAC/C,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QACnC,UAAU,EAAE,MAAM,CAAC;KACnB,KAAK,OAAO,CAAC;QACb,eAAe,EAAE,KAAK,GAAG,IAAI,CAAC;QAC9B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;KACxC,CAAC,CAAC;CACH,GAAG,OAAO,CAAC;IACX,eAAe,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC,CAAC,CAgBD"}
@@ -1,9 +1,13 @@
1
1
  export async function ensureLiveAccountSyncEntry(params) {
2
+ const debounceMs = params.getLiveAccountSyncDebounceMs(params.pluginConfig);
3
+ const pollIntervalMs = params.getLiveAccountSyncPollMs(params.pluginConfig);
2
4
  return params.ensureLiveAccountSyncState({
3
5
  enabled: params.getLiveAccountSync(params.pluginConfig),
4
6
  targetPath: params.getStoragePath(),
5
7
  currentSync: params.currentSync,
6
8
  currentPath: params.currentPath,
9
+ currentConfigKey: params.currentConfigKey,
10
+ configKey: `${debounceMs}:${pollIntervalMs}`,
7
11
  authFallback: params.authFallback,
8
12
  createSync: params.createSync,
9
13
  registerCleanup: params.registerCleanup,
@@ -1 +1 @@
1
- {"version":3,"file":"live-sync-entry.js","sourceRoot":"","sources":["../../../lib/runtime/live-sync-entry.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAE9C,MA2BD;IAIA,OAAO,MAAM,CAAC,0BAA0B,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC;QACvD,UAAU,EAAE,MAAM,CAAC,cAAc,EAAE;QACnC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;KAC7B,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"live-sync-entry.js","sourceRoot":"","sources":["../../../lib/runtime/live-sync-entry.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAE9C,MAqCD;IAKA,MAAM,UAAU,GAAG,MAAM,CAAC,4BAA4B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5E,OAAO,MAAM,CAAC,0BAA0B,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC;QACvD,UAAU,EAAE,MAAM,CAAC,cAAc,EAAE;QACnC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,SAAS,EAAE,GAAG,UAAU,IAAI,cAAc,EAAE;QAC5C,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;KAC7B,CAAC,CAAC;AACJ,CAAC"}
@@ -10,6 +10,7 @@ export declare function ensureRuntimeLiveAccountSync<TConfig, TSync extends Live
10
10
  getStoragePath: () => string;
11
11
  currentSync: TSync | null;
12
12
  currentPath: string | null;
13
+ currentConfigKey?: string | null;
13
14
  currentCleanupRegistered: boolean;
14
15
  getCurrentSync: () => TSync | null;
15
16
  createSync: (onChange: () => Promise<void>, options: {
@@ -22,6 +23,7 @@ export declare function ensureRuntimeLiveAccountSync<TConfig, TSync extends Live
22
23
  commitState: (state: {
23
24
  sync: TSync | null;
24
25
  path: string | null;
26
+ configKey: string | null;
25
27
  cleanupRegistered: boolean;
26
28
  }) => void;
27
29
  registerCleanup: (cleanup: () => void) => void;
@@ -30,6 +32,7 @@ export declare function ensureRuntimeLiveAccountSync<TConfig, TSync extends Live
30
32
  }): Promise<{
31
33
  sync: TSync | null;
32
34
  path: string | null;
35
+ configKey: string | null;
33
36
  cleanupRegistered: boolean;
34
37
  }>;
35
38
  //# sourceMappingURL=live-sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"live-sync.d.ts","sourceRoot":"","sources":["../../../lib/runtime/live-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IAClC,IAAI,IAAI,IAAI,CAAC;IACb,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,wBAAsB,4BAA4B,CACjD,OAAO,EACP,KAAK,SAAS,kBAAkB,EAC/B,IAAI,EAAE;IACP,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,kBAAkB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACjD,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,wBAAwB,EAAE,OAAO,CAAC;IAClC,cAAc,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,CACX,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC7B,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,KACnD,KAAK,CAAC;IACX,4BAA4B,EAAE,CAC7B,YAAY,CAAC,EAAE,gBAAgB,KAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,4BAA4B,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1D,wBAAwB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IACtD,WAAW,EAAE,CAAC,KAAK,EAAE;QACpB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;QACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,iBAAiB,EAAE,OAAO,CAAC;KAC3B,KAAK,IAAI,CAAC;IACX,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC;IACX,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC;CAC3B,CAAC,CAqED"}
1
+ {"version":3,"file":"live-sync.d.ts","sourceRoot":"","sources":["../../../lib/runtime/live-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IAClC,IAAI,IAAI,IAAI,CAAC;IACb,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,wBAAsB,4BAA4B,CACjD,OAAO,EACP,KAAK,SAAS,kBAAkB,EAC/B,IAAI,EAAE;IACP,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,kBAAkB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACjD,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,wBAAwB,EAAE,OAAO,CAAC;IAClC,cAAc,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,CACX,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC7B,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,KACnD,KAAK,CAAC;IACX,4BAA4B,EAAE,CAC7B,YAAY,CAAC,EAAE,gBAAgB,KAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,4BAA4B,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1D,wBAAwB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IACtD,WAAW,EAAE,CAAC,KAAK,EAAE;QACpB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;QACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,iBAAiB,EAAE,OAAO,CAAC;KAC3B,KAAK,IAAI,CAAC;IACX,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC;IACX,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;CAC3B,CAAC,CAmFD"}
@@ -1,14 +1,19 @@
1
1
  export async function ensureRuntimeLiveAccountSync(deps) {
2
+ const debounceMs = deps.getLiveAccountSyncDebounceMs(deps.pluginConfig);
3
+ const pollIntervalMs = deps.getLiveAccountSyncPollMs(deps.pluginConfig);
4
+ const nextConfigKey = `${debounceMs}:${pollIntervalMs}`;
2
5
  if (!deps.getLiveAccountSync(deps.pluginConfig)) {
3
6
  deps.currentSync?.stop();
4
7
  deps.commitState({
5
8
  sync: null,
6
9
  path: null,
10
+ configKey: null,
7
11
  cleanupRegistered: deps.currentCleanupRegistered,
8
12
  });
9
13
  return {
10
14
  sync: null,
11
15
  path: null,
16
+ configKey: null,
12
17
  cleanupRegistered: deps.currentCleanupRegistered,
13
18
  };
14
19
  }
@@ -16,10 +21,18 @@ export async function ensureRuntimeLiveAccountSync(deps) {
16
21
  let sync = deps.currentSync;
17
22
  let cleanupRegistered = deps.currentCleanupRegistered;
18
23
  let nextPath = deps.currentPath;
24
+ let configKey = deps.currentConfigKey ?? null;
25
+ if (sync && configKey !== null && configKey !== nextConfigKey) {
26
+ sync.stop();
27
+ sync = null;
28
+ nextPath = null;
29
+ configKey = null;
30
+ }
19
31
  const commitState = () => {
20
32
  deps.commitState({
21
33
  sync,
22
34
  path: nextPath,
35
+ configKey,
23
36
  cleanupRegistered,
24
37
  });
25
38
  };
@@ -27,9 +40,10 @@ export async function ensureRuntimeLiveAccountSync(deps) {
27
40
  sync = deps.createSync(async () => {
28
41
  await deps.reloadAccountManagerFromDisk(deps.authFallback);
29
42
  }, {
30
- debounceMs: deps.getLiveAccountSyncDebounceMs(deps.pluginConfig),
31
- pollIntervalMs: deps.getLiveAccountSyncPollMs(deps.pluginConfig),
43
+ debounceMs,
44
+ pollIntervalMs,
32
45
  });
46
+ configKey = nextConfigKey;
33
47
  commitState();
34
48
  if (!cleanupRegistered) {
35
49
  deps.registerCleanup(() => {
@@ -60,6 +74,6 @@ export async function ensureRuntimeLiveAccountSync(deps) {
60
74
  deps.logWarn(`[${deps.pluginName}] Live account sync path switch failed due to transient filesystem locks; keeping previous watcher.`);
61
75
  }
62
76
  }
63
- return { sync, path: nextPath, cleanupRegistered };
77
+ return { sync, path: nextPath, configKey, cleanupRegistered };
64
78
  }
65
79
  //# sourceMappingURL=live-sync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"live-sync.js","sourceRoot":"","sources":["../../../lib/runtime/live-sync.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAGhD,IA0BD;IAKA,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC;YAChB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,iBAAiB,EAAE,IAAI,CAAC,wBAAwB;SAChD,CAAC,CAAC;QACH,OAAO;YACN,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,iBAAiB,EAAE,IAAI,CAAC,wBAAwB;SAChD,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACzC,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5B,IAAI,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,CAAC;IACtD,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;IAChC,MAAM,WAAW,GAAG,GAAS,EAAE;QAC9B,IAAI,CAAC,WAAW,CAAC;YAChB,IAAI;YACJ,IAAI,EAAE,QAAQ;YACd,iBAAiB;SACjB,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,IAAI,GAAG,IAAI,CAAC,UAAU,CACrB,KAAK,IAAI,EAAE;YACV,MAAM,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5D,CAAC,EACD;YACC,UAAU,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,YAAY,CAAC;YAChE,cAAc,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC;SAChE,CACD,CAAC;QACF,WAAW,EAAE,CAAC;QACd,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;gBACzB,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,iBAAiB,GAAG,IAAI,CAAC;YACzB,WAAW,EAAE,CAAC;QACf,CAAC;IACF,CAAC;IAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBAClC,QAAQ,GAAG,UAAU,CAAC;gBACtB,WAAW,EAAE,CAAC;gBACd,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACP,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAI,KAA2C,EAAE,IAAI,CAAC;gBAChE,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO;oBAAE,MAAM,KAAK,CAAC;gBACtD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;YACxE,CAAC;QACF,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CACX,IAAI,IAAI,CAAC,UAAU,qGAAqG,CACxH,CAAC;QACH,CAAC;IACF,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"live-sync.js","sourceRoot":"","sources":["../../../lib/runtime/live-sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ export interface RuntimeMetricsSnapshot {
2
+ startedAt: number;
3
+ totalRequests: number;
4
+ successfulRequests: number;
5
+ failedRequests: number;
6
+ responsesRequests: number;
7
+ authRefreshRequests: number;
8
+ diagnosticProbeRequests: number;
9
+ outboundRequestAttemptBudget: number | null;
10
+ outboundRequestAttemptsConsumed: number;
11
+ requestAttemptBudgetExhaustions: number;
12
+ poolExhaustionFastFails: number;
13
+ serverBurstFastFails: number;
14
+ rateLimitedResponses: number;
15
+ serverErrors: number;
16
+ networkErrors: number;
17
+ userAborts: number;
18
+ authRefreshFailures: number;
19
+ emptyResponseRetries: number;
20
+ accountRotations: number;
21
+ sameAccountRetries: number;
22
+ streamFailoverAttempts: number;
23
+ streamFailoverCandidatesConsidered: number;
24
+ lastStreamFailoverCandidateCount: number;
25
+ streamFailoverRecoveries: number;
26
+ streamFailoverCrossAccountRecoveries: number;
27
+ cumulativeLatencyMs: number;
28
+ lastRequestAt: number | null;
29
+ lastError: string | null;
30
+ }
31
+ export interface RuntimeObservabilitySnapshot {
32
+ version: number;
33
+ updatedAt: number;
34
+ currentRequestId: string | null;
35
+ responsesRequests: number;
36
+ authRefreshRequests: number;
37
+ diagnosticProbeRequests: number;
38
+ poolExhaustionCooldownUntil: number | null;
39
+ serverBurstCooldownUntil: number | null;
40
+ runtimeMetrics: RuntimeMetricsSnapshot;
41
+ }
42
+ export declare function getRuntimeObservabilitySnapshot(): RuntimeObservabilitySnapshot;
43
+ export declare function mutateRuntimeObservabilitySnapshot(mutator: (snapshot: RuntimeObservabilitySnapshot) => void): void;
44
+ export declare function loadPersistedRuntimeObservabilitySnapshot(): Promise<RuntimeObservabilitySnapshot | null>;
45
+ export declare function resetRuntimeObservabilitySnapshotForTests(): void;
46
+ //# sourceMappingURL=runtime-observability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-observability.d.ts","sourceRoot":"","sources":["../../../lib/runtime/runtime-observability.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,+BAA+B,EAAE,MAAM,CAAC;IACxC,+BAA+B,EAAE,MAAM,CAAC;IACxC,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kCAAkC,EAAE,MAAM,CAAC;IAC3C,gCAAgC,EAAE,MAAM,CAAC;IACzC,wBAAwB,EAAE,MAAM,CAAC;IACjC,oCAAoC,EAAE,MAAM,CAAC;IAC7C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,4BAA4B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,cAAc,EAAE,sBAAsB,CAAC;CACvC;AA2ID,wBAAgB,+BAA+B,IAAI,4BAA4B,CAE9E;AAED,wBAAgB,kCAAkC,CACjD,OAAO,EAAE,CAAC,QAAQ,EAAE,4BAA4B,KAAK,IAAI,GACvD,IAAI,CAYN;AAED,wBAAsB,yCAAyC,IAAI,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAY9G;AAED,wBAAgB,yCAAyC,IAAI,IAAI,CAGhE"}
@@ -0,0 +1,167 @@
1
+ import { existsSync, readFileSync, promises as fs } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { getCodexMultiAuthDir } from "../runtime-paths.js";
4
+ const SNAPSHOT_FILE_NAME = "runtime-observability.json";
5
+ const PERSIST_RUNTIME_SNAPSHOT = process.env.VITEST !== "true";
6
+ const RUNTIME_OBSERVABILITY_SNAPSHOT_VERSION = 1;
7
+ const RETRYABLE_SNAPSHOT_ERRORS = new Set(["EBUSY", "EPERM"]);
8
+ let snapshotState = null;
9
+ let pendingWrite = null;
10
+ function getSnapshotPath() {
11
+ return join(getCodexMultiAuthDir(), SNAPSHOT_FILE_NAME);
12
+ }
13
+ function createDefaultSnapshot() {
14
+ return {
15
+ version: RUNTIME_OBSERVABILITY_SNAPSHOT_VERSION,
16
+ updatedAt: 0,
17
+ currentRequestId: null,
18
+ responsesRequests: 0,
19
+ authRefreshRequests: 0,
20
+ diagnosticProbeRequests: 0,
21
+ poolExhaustionCooldownUntil: null,
22
+ serverBurstCooldownUntil: null,
23
+ runtimeMetrics: {
24
+ startedAt: 0,
25
+ totalRequests: 0,
26
+ successfulRequests: 0,
27
+ failedRequests: 0,
28
+ responsesRequests: 0,
29
+ authRefreshRequests: 0,
30
+ diagnosticProbeRequests: 0,
31
+ outboundRequestAttemptBudget: null,
32
+ outboundRequestAttemptsConsumed: 0,
33
+ requestAttemptBudgetExhaustions: 0,
34
+ poolExhaustionFastFails: 0,
35
+ serverBurstFastFails: 0,
36
+ rateLimitedResponses: 0,
37
+ serverErrors: 0,
38
+ networkErrors: 0,
39
+ userAborts: 0,
40
+ authRefreshFailures: 0,
41
+ emptyResponseRetries: 0,
42
+ accountRotations: 0,
43
+ sameAccountRetries: 0,
44
+ streamFailoverAttempts: 0,
45
+ streamFailoverCandidatesConsidered: 0,
46
+ lastStreamFailoverCandidateCount: 0,
47
+ streamFailoverRecoveries: 0,
48
+ streamFailoverCrossAccountRecoveries: 0,
49
+ cumulativeLatencyMs: 0,
50
+ lastRequestAt: null,
51
+ lastError: null,
52
+ },
53
+ };
54
+ }
55
+ function normalizePersistedSnapshot(parsed) {
56
+ if (!parsed || typeof parsed !== "object") {
57
+ return null;
58
+ }
59
+ if (typeof parsed.version === "number" &&
60
+ parsed.version !== RUNTIME_OBSERVABILITY_SNAPSHOT_VERSION) {
61
+ return null;
62
+ }
63
+ const base = createDefaultSnapshot();
64
+ return {
65
+ ...base,
66
+ ...parsed,
67
+ version: RUNTIME_OBSERVABILITY_SNAPSHOT_VERSION,
68
+ runtimeMetrics: {
69
+ ...base.runtimeMetrics,
70
+ ...(parsed.runtimeMetrics ?? {}),
71
+ },
72
+ };
73
+ }
74
+ function loadPersistedRuntimeObservabilitySnapshotSync() {
75
+ const path = getSnapshotPath();
76
+ if (!existsSync(path)) {
77
+ return null;
78
+ }
79
+ try {
80
+ const raw = readFileSync(path, "utf-8");
81
+ const parsed = JSON.parse(raw);
82
+ return normalizePersistedSnapshot(parsed);
83
+ }
84
+ catch {
85
+ return null;
86
+ }
87
+ }
88
+ function ensureSnapshotState() {
89
+ if (!snapshotState) {
90
+ snapshotState =
91
+ (PERSIST_RUNTIME_SNAPSHOT
92
+ ? loadPersistedRuntimeObservabilitySnapshotSync()
93
+ : null) ?? createDefaultSnapshot();
94
+ }
95
+ return snapshotState;
96
+ }
97
+ async function writeSnapshot(snapshot) {
98
+ const dir = getCodexMultiAuthDir();
99
+ const path = getSnapshotPath();
100
+ await fs.mkdir(dir, { recursive: true });
101
+ let lastError = null;
102
+ for (let attempt = 0; attempt < 3; attempt += 1) {
103
+ const tempPath = `${path}.${process.pid}.${Date.now()}.${attempt}.tmp`;
104
+ let moved = false;
105
+ try {
106
+ await fs.writeFile(tempPath, JSON.stringify(snapshot, null, 2), "utf-8");
107
+ await fs.rename(tempPath, path);
108
+ moved = true;
109
+ return;
110
+ }
111
+ catch (error) {
112
+ lastError = error;
113
+ const code = error?.code ?? "";
114
+ if (!RETRYABLE_SNAPSHOT_ERRORS.has(code) || attempt >= 2) {
115
+ throw error;
116
+ }
117
+ }
118
+ finally {
119
+ if (!moved) {
120
+ try {
121
+ await fs.unlink(tempPath);
122
+ }
123
+ catch {
124
+ // Best-effort cleanup for interrupted writes.
125
+ }
126
+ }
127
+ }
128
+ }
129
+ if (lastError) {
130
+ throw lastError;
131
+ }
132
+ }
133
+ export function getRuntimeObservabilitySnapshot() {
134
+ return structuredClone(ensureSnapshotState());
135
+ }
136
+ export function mutateRuntimeObservabilitySnapshot(mutator) {
137
+ const snapshot = ensureSnapshotState();
138
+ mutator(snapshot);
139
+ snapshot.updatedAt = Date.now();
140
+ if (!PERSIST_RUNTIME_SNAPSHOT) {
141
+ return;
142
+ }
143
+ const nextSnapshot = structuredClone(snapshot);
144
+ pendingWrite = (pendingWrite ?? Promise.resolve())
145
+ .catch(() => undefined)
146
+ .then(() => writeSnapshot(nextSnapshot))
147
+ .catch(() => undefined);
148
+ }
149
+ export async function loadPersistedRuntimeObservabilitySnapshot() {
150
+ const path = getSnapshotPath();
151
+ if (!existsSync(path)) {
152
+ return null;
153
+ }
154
+ try {
155
+ const raw = await fs.readFile(path, "utf-8");
156
+ const parsed = JSON.parse(raw);
157
+ return normalizePersistedSnapshot(parsed);
158
+ }
159
+ catch {
160
+ return null;
161
+ }
162
+ }
163
+ export function resetRuntimeObservabilitySnapshotForTests() {
164
+ snapshotState = createDefaultSnapshot();
165
+ pendingWrite = null;
166
+ }
167
+ //# sourceMappingURL=runtime-observability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-observability.js","sourceRoot":"","sources":["../../../lib/runtime/runtime-observability.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ export declare function ensureLiveAccountSyncState<TSync extends LiveAccountSync
13
13
  targetPath: string;
14
14
  currentSync: TSync | null;
15
15
  currentPath: string | null;
16
+ currentConfigKey?: string | null;
17
+ configKey?: string | null;
16
18
  authFallback?: OAuthAuthDetails;
17
19
  createSync: (authFallback?: OAuthAuthDetails) => TSync;
18
20
  registerCleanup: (cleanup: () => void) => void;
@@ -21,6 +23,7 @@ export declare function ensureLiveAccountSyncState<TSync extends LiveAccountSync
21
23
  }): Promise<{
22
24
  liveAccountSync: TSync | null;
23
25
  liveAccountSyncPath: string | null;
26
+ liveAccountSyncConfigKey: string | null;
24
27
  }>;
25
28
  export declare function ensureRefreshGuardianState<TGuardian extends RefreshGuardianLike>(params: {
26
29
  enabled: boolean;