github-issue-tower-defence-management 2.152.0 → 2.152.1

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.
@@ -71,19 +71,19 @@ class LiveSessionOauthTokenSelectHandler {
71
71
  const status = metric.eligible
72
72
  ? 'eligible'
73
73
  : `excluded (${metric.exclusionReason})`;
74
- return `${metric.name}: ${metric.liveSessionCount}/${metric.concurrentSessionLimit} live session(s), 5h ${Math.round(metric.fiveHourFreeRatio * 100)}% free, 7d ${Math.round(metric.sevenDayFreeRatio * 100)}% free, 7d-end in ${secondsUntilSevenDayEnd}s, weight ${metric.selectionWeight} -> ${status}`;
74
+ return `${metric.name}: ${metric.liveSessionCount}/${metric.concurrentSessionLimit} live session(s), 5h ${Math.round(metric.fiveHourFreeRatio * 100)}% free, 7d ${Math.round(metric.sevenDayFreeRatio * 100)}% free, 7d-end in ${secondsUntilSevenDayEnd}s, 7d budget drainable by 48h before reset: ${metric.sevenDayBudgetUndrainableBeforeSpendDeadline ? 'no' : 'yes'}, weight ${metric.selectionWeight} -> ${status}`;
75
75
  });
76
76
  if (result.selected === null) {
77
- lines.push(`No eligible token: all tokens are below the live session thresholds (5h >= ${Math.round(settings.minFiveHourFreeRatio * 100)}% free, 7d >= ${Math.round(settings.minSevenDayFreeRatio * 100)}% free) and no token met the ${Math.round(LiveSessionOauthTokenSelectUseCase_1.LIVE_SESSION_FALLBACK_SEVEN_DAY_MIN_FREE_RATIO * 100)}% 7d fallback condition either.`);
77
+ lines.push('No eligible token: every token is disabled for Claude Code subscription access or rejected by the API (unified status rejected or fable weekly limit exhausted), so no token can take a live session.');
78
78
  }
79
79
  else {
80
80
  const selectedMetric = result.metrics.find((m) => m.name === result.selected?.name);
81
81
  const usedFallback = selectedMetric !== undefined && !selectedMetric.eligible;
82
82
  if (usedFallback) {
83
- lines.push(`Selected ${result.selected.name} via fallback (highest 5h free ratio among non-excluded tokens with 7d >= ${Math.round(LiveSessionOauthTokenSelectUseCase_1.LIVE_SESSION_FALLBACK_SEVEN_DAY_MIN_FREE_RATIO * 100)}% free; no token met the live session thresholds of 5h >= ${Math.round(settings.minFiveHourFreeRatio * 100)}% and 7d >= ${Math.round(settings.minSevenDayFreeRatio * 100)}%).`);
83
+ lines.push(`Selected ${result.selected.name} via fallback (every token is excluded; ${result.selected.name} has the highest 5h free ratio among the tokens excluded only by an HTTP 401 auth failure).`);
84
84
  }
85
85
  else {
86
- lines.push(`Selected ${result.selected.name} (the soonest-resetting 7d window among tokens still under their concurrent session limit, or the token least over its limit when none is under it; each limit is the lower of the 5h free-share throttle and the number of sessions the free 5h share sustains until the window resets at ${settings.fiveHourShareConsumedPerSessionHour} of the window per session-hour).`);
86
+ lines.push(`Selected ${result.selected.name} (eligible tokens are ordered with the tokens whose remaining 7d budget cannot be spent by 48h before the 7d reset at maxConcurrentSessionCount (${settings.maxConcurrentSessionCount}) sessions, one fully spent 5h window consuming 14% of the 7d window, moved to the front, then by 7d free ratio ascending; the first token still under its concurrent session limit is chosen, or the token least over its limit when none is under it; each limit is the lower of the 5h free-share throttle and the number of sessions the free 5h share sustains until the window resets at ${settings.fiveHourShareConsumedPerSessionHour} of the window per session-hour).`);
87
87
  }
88
88
  }
89
89
  return lines;
@@ -1 +1 @@
1
- {"version":3,"file":"LiveSessionOauthTokenSelectHandler.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/LiveSessionOauthTokenSelectHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiveSessionOauthTokenSelectHandler.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/LiveSessionOauthTokenSelectHandler.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LiveSessionOauthTokenSelectUseCase = exports.liveSessionConcurrentLimitOf = exports.fiveHourSustainableSessionCountOf = exports.DEFAULT_LIVE_SESSION_OAUTH_TOKEN_SELECTION_SETTINGS = exports.LIVE_SESSION_FALLBACK_SEVEN_DAY_MIN_FREE_RATIO = void 0;
3
+ exports.LiveSessionOauthTokenSelectUseCase = exports.liveSessionOauthTokenCandidateMetricsInSelectionOrder = exports.sevenDayBudgetUndrainableBeforeSpendDeadlineOf = exports.sevenDayShareDrainableBeforeSpendDeadlineOf = exports.liveSessionConcurrentLimitOf = exports.fiveHourSustainableSessionCountOf = exports.DEFAULT_LIVE_SESSION_OAUTH_TOKEN_SELECTION_SETTINGS = exports.SEVEN_DAY_SHARE_CONSUMED_PER_FULLY_SPENT_FIVE_HOUR_WINDOW = void 0;
4
4
  const OauthTokenSelectUseCase_1 = require("./OauthTokenSelectUseCase");
5
- exports.LIVE_SESSION_FALLBACK_SEVEN_DAY_MIN_FREE_RATIO = 0.03;
5
+ exports.SEVEN_DAY_SHARE_CONSUMED_PER_FULLY_SPENT_FIVE_HOUR_WINDOW = 0.14;
6
+ const RATE_LIMIT_SELECTION_THRESHOLDS_THAT_EXCLUDE_NO_FREE_RATIO = {
7
+ fiveHourMinFreeRatio: 0,
8
+ sevenDayMinFreeRatio: 0,
9
+ };
6
10
  exports.DEFAULT_LIVE_SESSION_OAUTH_TOKEN_SELECTION_SETTINGS = {
7
11
  maxConcurrentSessionCount: 10,
8
12
  fullSpeedFiveHourFreeRatio: 0.5,
@@ -40,27 +44,45 @@ const liveSessionConcurrentLimitOf = (fiveHourFreeRatio, selectionWeight, settin
40
44
  return Math.min(Math.floor(base * sevenDayUrgencyBoost), settings.maxConcurrentSessionCount);
41
45
  };
42
46
  exports.liveSessionConcurrentLimitOf = liveSessionConcurrentLimitOf;
47
+ const sevenDayShareDrainableBeforeSpendDeadlineOf = (sevenDayEndEpoch, nowEpochSeconds, settings) => {
48
+ const hoursUntilSevenDaySpendDeadline = Math.max((sevenDayEndEpoch - nowEpochSeconds) / SECONDS_PER_HOUR -
49
+ OauthTokenSelectUseCase_1.SEVEN_DAY_SPEND_DEADLINE_HOURS, 0);
50
+ const fiveHourShareSpentPerHourAtMaxConcurrency = Math.min(settings.maxConcurrentSessionCount *
51
+ settings.fiveHourShareConsumedPerSessionHour, 1 / FIVE_HOUR_WINDOW_LENGTH_HOURS);
52
+ return (hoursUntilSevenDaySpendDeadline *
53
+ fiveHourShareSpentPerHourAtMaxConcurrency *
54
+ exports.SEVEN_DAY_SHARE_CONSUMED_PER_FULLY_SPENT_FIVE_HOUR_WINDOW);
55
+ };
56
+ exports.sevenDayShareDrainableBeforeSpendDeadlineOf = sevenDayShareDrainableBeforeSpendDeadlineOf;
57
+ const sevenDayBudgetUndrainableBeforeSpendDeadlineOf = (sevenDayFreeRatio, sevenDayEndEpoch, nowEpochSeconds, settings) => sevenDayFreeRatio >
58
+ (0, exports.sevenDayShareDrainableBeforeSpendDeadlineOf)(sevenDayEndEpoch, nowEpochSeconds, settings);
59
+ exports.sevenDayBudgetUndrainableBeforeSpendDeadlineOf = sevenDayBudgetUndrainableBeforeSpendDeadlineOf;
60
+ const liveSessionOauthTokenCandidateMetricsInSelectionOrder = (metrics) => [...metrics].sort((left, right) => {
61
+ if (left.sevenDayBudgetUndrainableBeforeSpendDeadline !==
62
+ right.sevenDayBudgetUndrainableBeforeSpendDeadline) {
63
+ return left.sevenDayBudgetUndrainableBeforeSpendDeadline ? -1 : 1;
64
+ }
65
+ if (left.sevenDayFreeRatio !== right.sevenDayFreeRatio) {
66
+ return left.sevenDayFreeRatio - right.sevenDayFreeRatio;
67
+ }
68
+ if (left.sevenDayEndEpoch !== right.sevenDayEndEpoch) {
69
+ return left.sevenDayEndEpoch - right.sevenDayEndEpoch;
70
+ }
71
+ return left.liveSessionCount - right.liveSessionCount;
72
+ });
73
+ exports.liveSessionOauthTokenCandidateMetricsInSelectionOrder = liveSessionOauthTokenCandidateMetricsInSelectionOrder;
43
74
  class LiveSessionOauthTokenSelectUseCase {
44
75
  constructor(rateLimitSelectUseCase = new OauthTokenSelectUseCase_1.OauthTokenSelectUseCase()) {
45
76
  this.rateLimitSelectUseCase = rateLimitSelectUseCase;
46
77
  this.run = (candidates, liveSessions, nowEpochSeconds, settings) => {
47
- const rateLimitResult = this.rateLimitSelectUseCase.run(candidates, nowEpochSeconds, () => 0);
78
+ const rateLimitResult = this.rateLimitSelectUseCase.run(candidates, nowEpochSeconds, () => 0, RATE_LIMIT_SELECTION_THRESHOLDS_THAT_EXCLUDE_NO_FREE_RATIO);
48
79
  const liveSessionCountByToken = this.liveSessionCountByToken(liveSessions);
49
80
  const evaluated = candidates.map((candidate, index) => {
50
81
  const rateLimitMetric = rateLimitResult.metrics[index];
51
82
  const liveSessionCount = liveSessionCountByToken.get(candidate.token) ?? 0;
52
83
  const urgencyBoost = (0, OauthTokenSelectUseCase_1.sevenDayUrgencyFactor)(rateLimitMetric.sevenDayFreeRatio, rateLimitMetric.sevenDayEndEpoch, nowEpochSeconds);
53
84
  const concurrentSessionLimit = Math.min((0, exports.liveSessionConcurrentLimitOf)(rateLimitMetric.fiveHourFreeRatio, (0, OauthTokenSelectUseCase_1.selectionWeightOf)(candidate), settings, urgencyBoost), (0, exports.fiveHourSustainableSessionCountOf)(rateLimitMetric.fiveHourFreeRatio, hoursUntilFiveHourResetOf(candidate.snapshot, nowEpochSeconds), settings));
54
- const snapshot = candidate.snapshot;
55
- const sevenDayDeadlinePassed = snapshot !== null &&
56
- snapshot.sevenDayReset > 0 &&
57
- nowEpochSeconds >=
58
- snapshot.sevenDayReset - OauthTokenSelectUseCase_1.SEVEN_DAY_SPEND_DEADLINE_HOURS * 3600;
59
- const fiveHourDeadlinePassed = snapshot !== null &&
60
- snapshot.fiveHourReset > 0 &&
61
- nowEpochSeconds >=
62
- snapshot.fiveHourReset - OauthTokenSelectUseCase_1.FIVE_HOUR_SPEND_DEADLINE_HOURS * 3600;
63
- const exclusionReason = this.liveSessionExclusionReason(rateLimitMetric.exclusionReason, rateLimitMetric.fiveHourFreeRatio, rateLimitMetric.sevenDayFreeRatio, settings, fiveHourDeadlinePassed, sevenDayDeadlinePassed);
85
+ const exclusionReason = rateLimitMetric.exclusionReason;
64
86
  return {
65
87
  candidate,
66
88
  metric: {
@@ -68,6 +90,7 @@ class LiveSessionOauthTokenSelectUseCase {
68
90
  fiveHourFreeRatio: rateLimitMetric.fiveHourFreeRatio,
69
91
  sevenDayFreeRatio: rateLimitMetric.sevenDayFreeRatio,
70
92
  sevenDayEndEpoch: rateLimitMetric.sevenDayEndEpoch,
93
+ sevenDayBudgetUndrainableBeforeSpendDeadline: (0, exports.sevenDayBudgetUndrainableBeforeSpendDeadlineOf)(rateLimitMetric.sevenDayFreeRatio, rateLimitMetric.sevenDayEndEpoch, nowEpochSeconds, settings),
71
94
  liveSessionCount,
72
95
  concurrentSessionLimit,
73
96
  hasConcurrencyHeadroom: liveSessionCount < concurrentSessionLimit,
@@ -78,13 +101,12 @@ class LiveSessionOauthTokenSelectUseCase {
78
101
  };
79
102
  });
80
103
  const metrics = evaluated.map((entry) => entry.metric);
81
- const eligible = evaluated.filter((entry) => entry.metric.eligible);
82
- if (eligible.length === 0) {
104
+ const candidateByMetric = new Map(evaluated.map((entry) => [entry.metric, entry.candidate]));
105
+ const eligibleMetricsInSelectionOrder = (0, exports.liveSessionOauthTokenCandidateMetricsInSelectionOrder)(metrics.filter((metric) => metric.eligible));
106
+ if (eligibleMetricsInSelectionOrder.length === 0) {
83
107
  const fallbackEligible = evaluated.filter((entry) => !entry.candidate.subscriptionDisabled &&
84
108
  !entry.candidate.unifiedRejected &&
85
- !entry.candidate.fableRejected &&
86
- Math.round(entry.metric.sevenDayFreeRatio * 100) >
87
- Math.round(exports.LIVE_SESSION_FALLBACK_SEVEN_DAY_MIN_FREE_RATIO * 100));
109
+ !entry.candidate.fableRejected);
88
110
  if (fallbackEligible.length === 0) {
89
111
  return { selected: null, metrics };
90
112
  }
@@ -103,46 +125,15 @@ class LiveSessionOauthTokenSelectUseCase {
103
125
  });
104
126
  return { selected: fallbackSelected.candidate, metrics };
105
127
  }
106
- const selected = eligible.reduce((bestEntry, currentEntry) => this.preferred(currentEntry.metric, bestEntry.metric)
107
- ? currentEntry
108
- : bestEntry);
109
- return { selected: selected.candidate, metrics };
110
- };
111
- this.liveSessionExclusionReason = (rateLimitExclusionReason, fiveHourFreeRatio, sevenDayFreeRatio, settings, fiveHourDeadlinePassed, sevenDayDeadlinePassed) => {
112
- if (rateLimitExclusionReason !== null) {
113
- return rateLimitExclusionReason;
114
- }
115
- if (!fiveHourDeadlinePassed &&
116
- fiveHourFreeRatio < settings.minFiveHourFreeRatio) {
117
- return `5h window only ${Math.round(fiveHourFreeRatio * 100)}% free (requires >= ${Math.round(settings.minFiveHourFreeRatio * 100)}% for live session selection)`;
118
- }
119
- if (!sevenDayDeadlinePassed &&
120
- sevenDayFreeRatio < settings.minSevenDayFreeRatio) {
121
- return `7d window only ${Math.round(sevenDayFreeRatio * 100)}% free (requires >= ${Math.round(settings.minSevenDayFreeRatio * 100)}% for live session selection)`;
122
- }
123
- if (sevenDayDeadlinePassed &&
124
- Math.round(sevenDayFreeRatio * 100) <=
125
- Math.round(exports.LIVE_SESSION_FALLBACK_SEVEN_DAY_MIN_FREE_RATIO * 100)) {
126
- return `7d window only ${Math.round(sevenDayFreeRatio * 100)}% free (budget exhausted; token ineligible even within 48-hour deadline window)`;
127
- }
128
- return null;
129
- };
130
- this.preferred = (candidateMetric, incumbentMetric) => {
131
- if (candidateMetric.hasConcurrencyHeadroom !==
132
- incumbentMetric.hasConcurrencyHeadroom) {
133
- return candidateMetric.hasConcurrencyHeadroom;
134
- }
135
- if (!candidateMetric.hasConcurrencyHeadroom) {
136
- const candidateOccupancyRatio = occupancyRatioAfterOneMoreSessionOf(candidateMetric);
137
- const incumbentOccupancyRatio = occupancyRatioAfterOneMoreSessionOf(incumbentMetric);
138
- if (candidateOccupancyRatio !== incumbentOccupancyRatio) {
139
- return candidateOccupancyRatio < incumbentOccupancyRatio;
140
- }
141
- }
142
- if (candidateMetric.sevenDayEndEpoch !== incumbentMetric.sevenDayEndEpoch) {
143
- return (candidateMetric.sevenDayEndEpoch < incumbentMetric.sevenDayEndEpoch);
144
- }
145
- return candidateMetric.liveSessionCount < incumbentMetric.liveSessionCount;
128
+ const selectedMetric = eligibleMetricsInSelectionOrder.find((metric) => metric.hasConcurrencyHeadroom) ??
129
+ eligibleMetricsInSelectionOrder.reduce((leastOccupied, current) => occupancyRatioAfterOneMoreSessionOf(current) <
130
+ occupancyRatioAfterOneMoreSessionOf(leastOccupied)
131
+ ? current
132
+ : leastOccupied);
133
+ return {
134
+ selected: candidateByMetric.get(selectedMetric) ?? null,
135
+ metrics,
136
+ };
146
137
  };
147
138
  this.liveSessionCountByToken = (liveSessions) => {
148
139
  const sessionKeysByToken = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"LiveSessionOauthTokenSelectUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/LiveSessionOauthTokenSelectUseCase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiveSessionOauthTokenSelectUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/LiveSessionOauthTokenSelectUseCase.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-issue-tower-defence-management",
3
- "version": "2.152.0",
3
+ "version": "2.152.1",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -1 +1 @@
1
- {"version":3,"file":"LiveSessionOauthTokenSelectHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/LiveSessionOauthTokenSelectHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yEAAyE,CAAC;AAC3H,OAAO,EAEL,KAAK,sCAAsC,EAE3C,kCAAkC,EACnC,MAAM,6DAA6D,CAAC;AAarE,MAAM,MAAM,uCAAuC,GAAG;IACpD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,sCAAsC,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,wCAAwC,GAAG;IACrD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,qBAAa,kCAAkC;IAE3C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBADrB,OAAO,GAAE,kCAA6E,EACtF,qBAAqB,GAAE,2BAAmE;IAG7G,MAAM,GACJ,OAAO,uCAAuC,KAC7C,wCAAwC,CAwEzC;IAEF,OAAO,CAAC,iBAAiB,CAqCvB;CACH"}
1
+ {"version":3,"file":"LiveSessionOauthTokenSelectHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/LiveSessionOauthTokenSelectHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yEAAyE,CAAC;AAC3H,OAAO,EACL,KAAK,sCAAsC,EAE3C,kCAAkC,EACnC,MAAM,6DAA6D,CAAC;AAarE,MAAM,MAAM,uCAAuC,GAAG;IACpD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,sCAAsC,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,wCAAwC,GAAG;IACrD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,qBAAa,kCAAkC;IAE3C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBADrB,OAAO,GAAE,kCAA6E,EACtF,qBAAqB,GAAE,2BAAmE;IAG7G,MAAM,GACJ,OAAO,uCAAuC,KAC7C,wCAAwC,CAwEzC;IAEF,OAAO,CAAC,iBAAiB,CAqCvB;CACH"}
@@ -1,6 +1,6 @@
1
1
  import type { ClaudeLiveSession } from './adapter-interfaces/ClaudeLiveSessionRepository';
2
2
  import { type OauthTokenCandidate, OauthTokenSelectUseCase } from './OauthTokenSelectUseCase';
3
- export declare const LIVE_SESSION_FALLBACK_SEVEN_DAY_MIN_FREE_RATIO = 0.03;
3
+ export declare const SEVEN_DAY_SHARE_CONSUMED_PER_FULLY_SPENT_FIVE_HOUR_WINDOW = 0.14;
4
4
  export type LiveSessionOauthTokenSelectionSettings = {
5
5
  maxConcurrentSessionCount: number;
6
6
  fullSpeedFiveHourFreeRatio: number;
@@ -11,11 +11,14 @@ export type LiveSessionOauthTokenSelectionSettings = {
11
11
  export declare const DEFAULT_LIVE_SESSION_OAUTH_TOKEN_SELECTION_SETTINGS: LiveSessionOauthTokenSelectionSettings;
12
12
  export declare const fiveHourSustainableSessionCountOf: (fiveHourFreeRatio: number, hoursUntilFiveHourReset: number, settings: LiveSessionOauthTokenSelectionSettings) => number;
13
13
  export declare const liveSessionConcurrentLimitOf: (fiveHourFreeRatio: number, selectionWeight: number, settings: LiveSessionOauthTokenSelectionSettings, sevenDayUrgencyBoost?: number) => number;
14
+ export declare const sevenDayShareDrainableBeforeSpendDeadlineOf: (sevenDayEndEpoch: number, nowEpochSeconds: number, settings: LiveSessionOauthTokenSelectionSettings) => number;
15
+ export declare const sevenDayBudgetUndrainableBeforeSpendDeadlineOf: (sevenDayFreeRatio: number, sevenDayEndEpoch: number, nowEpochSeconds: number, settings: LiveSessionOauthTokenSelectionSettings) => boolean;
14
16
  export type LiveSessionOauthTokenCandidateMetrics = {
15
17
  name: string;
16
18
  fiveHourFreeRatio: number;
17
19
  sevenDayFreeRatio: number;
18
20
  sevenDayEndEpoch: number;
21
+ sevenDayBudgetUndrainableBeforeSpendDeadline: boolean;
19
22
  liveSessionCount: number;
20
23
  concurrentSessionLimit: number;
21
24
  hasConcurrencyHeadroom: boolean;
@@ -23,6 +26,7 @@ export type LiveSessionOauthTokenCandidateMetrics = {
23
26
  exclusionReason: string | null;
24
27
  selectionWeight: number;
25
28
  };
29
+ export declare const liveSessionOauthTokenCandidateMetricsInSelectionOrder: (metrics: LiveSessionOauthTokenCandidateMetrics[]) => LiveSessionOauthTokenCandidateMetrics[];
26
30
  export type LiveSessionOauthTokenSelectResult = {
27
31
  selected: OauthTokenCandidate | null;
28
32
  metrics: LiveSessionOauthTokenCandidateMetrics[];
@@ -31,8 +35,6 @@ export declare class LiveSessionOauthTokenSelectUseCase {
31
35
  private readonly rateLimitSelectUseCase;
32
36
  constructor(rateLimitSelectUseCase?: OauthTokenSelectUseCase);
33
37
  run: (candidates: OauthTokenCandidate[], liveSessions: ClaudeLiveSession[], nowEpochSeconds: number, settings: LiveSessionOauthTokenSelectionSettings) => LiveSessionOauthTokenSelectResult;
34
- private liveSessionExclusionReason;
35
- private preferred;
36
38
  private liveSessionCountByToken;
37
39
  }
38
40
  //# sourceMappingURL=LiveSessionOauthTokenSelectUseCase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiveSessionOauthTokenSelectUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/LiveSessionOauthTokenSelectUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAEL,KAAK,mBAAmB,EACxB,uBAAuB,EAKxB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,8CAA8C,OAAO,CAAC;AAEnE,MAAM,MAAM,sCAAsC,GAAG;IACnD,yBAAyB,EAAE,MAAM,CAAC;IAClC,0BAA0B,EAAE,MAAM,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mCAAmC,EAAE,MAAM,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,mDAAmD,EAAE,sCAO/D,CAAC;AAKJ,eAAO,MAAM,iCAAiC,GAC5C,mBAAmB,MAAM,EACzB,yBAAyB,MAAM,EAC/B,UAAU,sCAAsC,KAC/C,MAYF,CAAC;AAgBF,eAAO,MAAM,4BAA4B,GACvC,mBAAmB,MAAM,EACzB,iBAAiB,MAAM,EACvB,UAAU,sCAAsC,EAChD,6BAAwB,KACvB,MAoBF,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAAG;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,OAAO,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,qCAAqC,EAAE,CAAC;CAClD,CAAC;AAEF,qBAAa,kCAAkC;IAE3C,OAAO,CAAC,QAAQ,CAAC,sBAAsB;gBAAtB,sBAAsB,GAAE,uBAAuD;IAGlG,GAAG,GACD,YAAY,mBAAmB,EAAE,EACjC,cAAc,iBAAiB,EAAE,EACjC,iBAAiB,MAAM,EACvB,UAAU,sCAAsC,KAC/C,iCAAiC,CAiHlC;IAEF,OAAO,CAAC,0BAA0B,CA+BhC;IAEF,OAAO,CAAC,SAAS,CAyBf;IAEF,OAAO,CAAC,uBAAuB,CAe7B;CACH"}
1
+ {"version":3,"file":"LiveSessionOauthTokenSelectUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/LiveSessionOauthTokenSelectUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EACL,KAAK,mBAAmB,EACxB,uBAAuB,EAMxB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,yDAAyD,OAAO,CAAC;AAQ9E,MAAM,MAAM,sCAAsC,GAAG;IACnD,yBAAyB,EAAE,MAAM,CAAC;IAClC,0BAA0B,EAAE,MAAM,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mCAAmC,EAAE,MAAM,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,mDAAmD,EAAE,sCAO/D,CAAC;AAKJ,eAAO,MAAM,iCAAiC,GAC5C,mBAAmB,MAAM,EACzB,yBAAyB,MAAM,EAC/B,UAAU,sCAAsC,KAC/C,MAYF,CAAC;AAgBF,eAAO,MAAM,4BAA4B,GACvC,mBAAmB,MAAM,EACzB,iBAAiB,MAAM,EACvB,UAAU,sCAAsC,EAChD,6BAAwB,KACvB,MAoBF,CAAC;AAEF,eAAO,MAAM,2CAA2C,GACtD,kBAAkB,MAAM,EACxB,iBAAiB,MAAM,EACvB,UAAU,sCAAsC,KAC/C,MAgBF,CAAC;AAEF,eAAO,MAAM,8CAA8C,GACzD,mBAAmB,MAAM,EACzB,kBAAkB,MAAM,EACxB,iBAAiB,MAAM,EACvB,UAAU,sCAAsC,KAC/C,OAMA,CAAC;AAEJ,MAAM,MAAM,qCAAqC,GAAG;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,4CAA4C,EAAE,OAAO,CAAC;IACtD,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,OAAO,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,qDAAqD,GAChE,SAAS,qCAAqC,EAAE,KAC/C,qCAAqC,EAepC,CAAC;AAEL,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,qCAAqC,EAAE,CAAC;CAClD,CAAC;AAEF,qBAAa,kCAAkC;IAE3C,OAAO,CAAC,QAAQ,CAAC,sBAAsB;gBAAtB,sBAAsB,GAAE,uBAAuD;IAGlG,GAAG,GACD,YAAY,mBAAmB,EAAE,EACjC,cAAc,iBAAiB,EAAE,EACjC,iBAAiB,MAAM,EACvB,UAAU,sCAAsC,KAC/C,iCAAiC,CAmHlC;IAEF,OAAO,CAAC,uBAAuB,CAe7B;CACH"}