instar 1.3.729 → 1.3.730

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 (65) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +174 -1
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/ModelSwapService.d.ts +13 -0
  5. package/dist/core/ModelSwapService.d.ts.map +1 -1
  6. package/dist/core/ModelSwapService.js +11 -0
  7. package/dist/core/ModelSwapService.js.map +1 -1
  8. package/dist/core/ModelTierEscalation.d.ts +10 -0
  9. package/dist/core/ModelTierEscalation.d.ts.map +1 -1
  10. package/dist/core/ModelTierEscalation.js +4 -0
  11. package/dist/core/ModelTierEscalation.js.map +1 -1
  12. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  13. package/dist/core/PostUpdateMigrator.js +18 -0
  14. package/dist/core/PostUpdateMigrator.js.map +1 -1
  15. package/dist/core/ProactiveSwapMonitor.d.ts +74 -20
  16. package/dist/core/ProactiveSwapMonitor.d.ts.map +1 -1
  17. package/dist/core/ProactiveSwapMonitor.js +349 -28
  18. package/dist/core/ProactiveSwapMonitor.js.map +1 -1
  19. package/dist/core/QuotaAwareScheduler.d.ts +70 -3
  20. package/dist/core/QuotaAwareScheduler.d.ts.map +1 -1
  21. package/dist/core/QuotaAwareScheduler.js +100 -16
  22. package/dist/core/QuotaAwareScheduler.js.map +1 -1
  23. package/dist/core/SessionManager.d.ts +28 -0
  24. package/dist/core/SessionManager.d.ts.map +1 -1
  25. package/dist/core/SessionManager.js +102 -0
  26. package/dist/core/SessionManager.js.map +1 -1
  27. package/dist/core/SessionRefresh.d.ts +116 -1
  28. package/dist/core/SessionRefresh.d.ts.map +1 -1
  29. package/dist/core/SessionRefresh.js +280 -17
  30. package/dist/core/SessionRefresh.js.map +1 -1
  31. package/dist/core/SwapAntiThrash.d.ts +329 -0
  32. package/dist/core/SwapAntiThrash.d.ts.map +1 -0
  33. package/dist/core/SwapAntiThrash.js +1025 -0
  34. package/dist/core/SwapAntiThrash.js.map +1 -0
  35. package/dist/core/SwapLedger.d.ts +168 -0
  36. package/dist/core/SwapLedger.d.ts.map +1 -0
  37. package/dist/core/SwapLedger.js +275 -0
  38. package/dist/core/SwapLedger.js.map +1 -0
  39. package/dist/core/SwapWorkGate.d.ts +100 -0
  40. package/dist/core/SwapWorkGate.d.ts.map +1 -0
  41. package/dist/core/SwapWorkGate.js +175 -0
  42. package/dist/core/SwapWorkGate.js.map +1 -0
  43. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  44. package/dist/core/devGatedFeatures.js +6 -0
  45. package/dist/core/devGatedFeatures.js.map +1 -1
  46. package/dist/core/types.d.ts +63 -1
  47. package/dist/core/types.d.ts.map +1 -1
  48. package/dist/core/types.js.map +1 -1
  49. package/dist/monitoring/guardManifest.d.ts.map +1 -1
  50. package/dist/monitoring/guardManifest.js +40 -1
  51. package/dist/monitoring/guardManifest.js.map +1 -1
  52. package/dist/scaffold/templates.d.ts.map +1 -1
  53. package/dist/scaffold/templates.js +1 -0
  54. package/dist/scaffold/templates.js.map +1 -1
  55. package/dist/server/AgentServer.d.ts.map +1 -1
  56. package/dist/server/AgentServer.js +19 -0
  57. package/dist/server/AgentServer.js.map +1 -1
  58. package/dist/server/routes.d.ts.map +1 -1
  59. package/dist/server/routes.js +36 -3
  60. package/dist/server/routes.js.map +1 -1
  61. package/package.json +1 -1
  62. package/src/data/builtin-manifest.json +65 -65
  63. package/src/scaffold/templates.ts +1 -0
  64. package/upgrades/1.3.730.md +112 -0
  65. package/upgrades/side-effects/swap-continuity-antithrash.md +118 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwapAntiThrash.js","sourceRoot":"","sources":["../../src/core/SwapAntiThrash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * SwapLedger — the durable JSONL decision ledger for account-swap continuity
3
+ * (docs/specs/swap-continuity-antithrash.md §3.5 / §6.1).
4
+ *
5
+ * One module owns `state/swap-ledger.jsonl` — the ONLY append site. The
6
+ * ProactiveSwapMonitor (via the SwapAntiThrashEngine), the QuotaAwareScheduler
7
+ * and SessionRefresh all route their rows through here; none writes the file
8
+ * directly (spec S14: single append chokepoint).
9
+ *
10
+ * Duties:
11
+ * - Atomic single-line appends with O(1) segment rotation
12
+ * (`maybeRotateJsonlSegment`, 10 MB, keep 2 — never the legacy whole-file
13
+ * rewrite, which is marked non-conformant by the spec).
14
+ * - Boot hydration: walk retained segments NEWEST-FIRST until the oldest row
15
+ * read is older than the hydration window; tolerate a corrupt/partial
16
+ * trailing line (counted, never poisoning the derivation or aborting boot).
17
+ * - Unwritable-ledger accounting (§3.5 R3-M3/R4-m1/R5-m3): while an append
18
+ * fails, the ledger reports `writable:false` (the engine pauses proactive
19
+ * optimization on it — invariant I12); non-refusal decisions during the
20
+ * outage are counted (`rowsLostWhileDown`); the level-triggered resume's
21
+ * FIRST successful append writes ONE `outage-summary` row so the mid-window
22
+ * gap is durable and boot-visible.
23
+ *
24
+ * The ledger is deliberately dumb about POLICY: brake decisions, episode
25
+ * arithmetic and the in-memory index all live in SwapAntiThrashEngine. This
26
+ * module is file IO + honest failure accounting only.
27
+ */
28
+ export type SwapDecision = 'swapped' | 'refused' | 'deferred' | 'dropped' | 'invalidated' | 'failed' | 'proceeded' | 'outage-summary';
29
+ export type SwapReason = 'all-hot' | 'dwell' | 'no-material-target' | 'target-unmeasured' | 'reversal' | 'thrash-breaker' | 'target-revalidation-failed' | 'busy-turn' | 'busy-subagents' | 'busy-indeterminate' | 'deferral-ceiling-dropped' | 'intent-stale' | 'session-busy' | 'swap-exec-failed';
30
+ export type SwapKind = 'proactive' | 'reactive' | 'interactive';
31
+ export type EpisodeKind = 'thrash-breaker' | 'all-hot' | 'failure-streak' | 'measurement-blind';
32
+ export type BreakerState = 'closed' | 'open' | 'half-open';
33
+ export type SubagentLegState = 'ok' | 'absent' | 'indeterminate';
34
+ export interface TriggerSignature {
35
+ tier: 'T1' | 'T2';
36
+ /** T2 trigger: the session whose frequency crossing opened the episode. */
37
+ session?: string;
38
+ /** T1 trigger: the unordered account pair, canonicalized `a|b` (sorted). */
39
+ pair?: string;
40
+ }
41
+ /** The authoritative row schema (§6.1). All fields optional except the spine. */
42
+ export interface SwapLedgerRow {
43
+ ts: string;
44
+ kind: SwapKind;
45
+ decision: SwapDecision;
46
+ callerClass?: string;
47
+ session?: string;
48
+ topicId?: number;
49
+ machineId?: string;
50
+ from?: string;
51
+ to?: string;
52
+ fromUtilPct?: number;
53
+ toUtilPct?: number;
54
+ reason?: SwapReason;
55
+ dwellRemainingMs?: number;
56
+ unmeasuredAlternates?: number;
57
+ deferralAgeMs?: number;
58
+ deferCount?: number;
59
+ inFlight?: {
60
+ turn: boolean;
61
+ subagents: number;
62
+ };
63
+ subagentLeg?: SubagentLegState;
64
+ killedSubagents?: number;
65
+ killedSubagentList?: Array<{
66
+ agentType: string;
67
+ ageMinutes: number;
68
+ transcriptPath?: string;
69
+ }>;
70
+ inbound?: 'reinjected' | 'none' | 'unknown';
71
+ force?: boolean;
72
+ authLevel?: 'bearer';
73
+ defaultAccountChanged?: boolean;
74
+ episodeId?: string;
75
+ episodeKind?: EpisodeKind;
76
+ breakerOpenedAt?: string;
77
+ breakerDeadline?: string;
78
+ triggerSignature?: TriggerSignature;
79
+ transition?: 'enter' | 'leave' | 'heartbeat';
80
+ errorClass?: string;
81
+ /** Rung-2 soak marker: this row records a WOULD-decision under dryRun. */
82
+ dryRun?: boolean;
83
+ rowsLostWhileDown?: number;
84
+ ledgerLostRefusals?: number;
85
+ outageStartTs?: string;
86
+ outageEndTs?: string;
87
+ }
88
+ export interface SwapLedgerHydration {
89
+ /** Rows inside the hydration window, OLDEST-FIRST (derivation-friendly). */
90
+ rows: SwapLedgerRow[];
91
+ corruptLinesSkipped: number;
92
+ hydration: 'complete' | 'under-primed';
93
+ /** Why under-primed (named gap, §3.5): 'rotation-shortfall' | 'outage-summary-in-window'. */
94
+ underPrimedReason?: string;
95
+ }
96
+ export interface SwapLedgerStatus {
97
+ writable: boolean;
98
+ lostSince?: string;
99
+ rowsLostWhileDown: number;
100
+ corruptLinesSkipped: number;
101
+ hydration: 'complete' | 'under-primed';
102
+ }
103
+ export interface SwapLedgerOptions {
104
+ filePath: string;
105
+ /** Hydration window (= retentionBoundMs, §3.2 one-formula). */
106
+ windowMs: () => number;
107
+ now?: () => number;
108
+ maxBytes?: number;
109
+ keepSegments?: number;
110
+ /** Counts supplied at outage-resume time by the engine (ledger-lost refusals). */
111
+ outageRefusalCount?: () => number;
112
+ machineId?: string;
113
+ logger?: {
114
+ log: (m: string) => void;
115
+ warn: (m: string) => void;
116
+ };
117
+ }
118
+ export declare class SwapLedger {
119
+ private readonly filePath;
120
+ private readonly windowMs;
121
+ private readonly now;
122
+ private readonly maxBytes;
123
+ private readonly keepSegments;
124
+ private readonly outageRefusalCount;
125
+ private readonly machineId;
126
+ private readonly logger;
127
+ private writable;
128
+ private lostSinceMs;
129
+ private rowsLostWhileDown;
130
+ private lastCorruptSkipped;
131
+ private hydrationState;
132
+ constructor(opts: SwapLedgerOptions);
133
+ get path(): string;
134
+ /** Is the ledger currently writable? (I12: false ⇒ proactive optimization pauses.) */
135
+ isWritable(): boolean;
136
+ status(): SwapLedgerStatus;
137
+ /**
138
+ * Append one decision row. Returns true when the row landed on disk.
139
+ *
140
+ * On the first successful append AFTER an unwritable episode, ONE
141
+ * `outage-summary` row is written first (R5-m3) so the mid-window row gap
142
+ * is durable and boot-visible. On failure the ledger flips unwritable
143
+ * (level-triggered — each subsequent append re-attempts, so recovery needs
144
+ * no restart) and the row is COUNTED as lost when it is a non-refusal
145
+ * decision (`rowsLostWhileDown`, R4-m1) — the caller keeps its in-memory
146
+ * index primed regardless.
147
+ */
148
+ /**
149
+ * Level-triggered outage resume (§3.5, I12): when the ledger is down,
150
+ * attempt to write the ONE `outage-summary` breadcrumb row now. Returns
151
+ * true when the ledger is writable afterwards (already up, or the summary
152
+ * landed and the outage is over); false while the outage persists. The
153
+ * engine calls this at the top of every proactive evaluation, so recovery
154
+ * needs no restart.
155
+ */
156
+ tryResume(): boolean;
157
+ append(row: SwapLedgerRow): boolean;
158
+ /**
159
+ * Boot hydration (§3.5 read path): read retained segments NEWEST-FIRST
160
+ * (active file, then `.N` segments descending) until the oldest row read is
161
+ * older than the window. Bounded by keepSegments — at most active + 2
162
+ * segments. Runs UNCONDITIONALLY at boot (R4-L3) so the index is warm the
163
+ * moment a dark flag flips on mid-run. Never throws.
164
+ */
165
+ hydrate(): SwapLedgerHydration;
166
+ private listFilesNewestFirst;
167
+ }
168
+ //# sourceMappingURL=SwapLedger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwapLedger.d.ts","sourceRoot":"","sources":["../../src/core/SwapLedger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,275 @@
1
+ /**
2
+ * SwapLedger — the durable JSONL decision ledger for account-swap continuity
3
+ * (docs/specs/swap-continuity-antithrash.md §3.5 / §6.1).
4
+ *
5
+ * One module owns `state/swap-ledger.jsonl` — the ONLY append site. The
6
+ * ProactiveSwapMonitor (via the SwapAntiThrashEngine), the QuotaAwareScheduler
7
+ * and SessionRefresh all route their rows through here; none writes the file
8
+ * directly (spec S14: single append chokepoint).
9
+ *
10
+ * Duties:
11
+ * - Atomic single-line appends with O(1) segment rotation
12
+ * (`maybeRotateJsonlSegment`, 10 MB, keep 2 — never the legacy whole-file
13
+ * rewrite, which is marked non-conformant by the spec).
14
+ * - Boot hydration: walk retained segments NEWEST-FIRST until the oldest row
15
+ * read is older than the hydration window; tolerate a corrupt/partial
16
+ * trailing line (counted, never poisoning the derivation or aborting boot).
17
+ * - Unwritable-ledger accounting (§3.5 R3-M3/R4-m1/R5-m3): while an append
18
+ * fails, the ledger reports `writable:false` (the engine pauses proactive
19
+ * optimization on it — invariant I12); non-refusal decisions during the
20
+ * outage are counted (`rowsLostWhileDown`); the level-triggered resume's
21
+ * FIRST successful append writes ONE `outage-summary` row so the mid-window
22
+ * gap is durable and boot-visible.
23
+ *
24
+ * The ledger is deliberately dumb about POLICY: brake decisions, episode
25
+ * arithmetic and the in-memory index all live in SwapAntiThrashEngine. This
26
+ * module is file IO + honest failure accounting only.
27
+ */
28
+ import fs from 'node:fs';
29
+ import path from 'node:path';
30
+ import { maybeRotateJsonlSegment } from '../utils/jsonl-rotation.js';
31
+ const DEFAULT_MAX_BYTES = 10 * 1024 * 1024; // 10 MB (§3.5)
32
+ const DEFAULT_KEEP_SEGMENTS = 2; // §3.5 — bounded boot read: active + 2 segments
33
+ export class SwapLedger {
34
+ filePath;
35
+ windowMs;
36
+ now;
37
+ maxBytes;
38
+ keepSegments;
39
+ outageRefusalCount;
40
+ machineId;
41
+ logger;
42
+ writable = true;
43
+ lostSinceMs = null;
44
+ rowsLostWhileDown = 0;
45
+ lastCorruptSkipped = 0;
46
+ hydrationState = 'complete';
47
+ constructor(opts) {
48
+ this.filePath = opts.filePath;
49
+ this.windowMs = opts.windowMs;
50
+ this.now = opts.now ?? (() => Date.now());
51
+ this.maxBytes = opts.maxBytes ?? DEFAULT_MAX_BYTES;
52
+ this.keepSegments = opts.keepSegments ?? DEFAULT_KEEP_SEGMENTS;
53
+ this.outageRefusalCount = opts.outageRefusalCount ?? (() => 0);
54
+ this.machineId = opts.machineId ?? 'local';
55
+ this.logger = opts.logger ?? { log: () => { }, warn: () => { } };
56
+ }
57
+ get path() {
58
+ return this.filePath;
59
+ }
60
+ /** Is the ledger currently writable? (I12: false ⇒ proactive optimization pauses.) */
61
+ isWritable() {
62
+ return this.writable;
63
+ }
64
+ status() {
65
+ return {
66
+ writable: this.writable,
67
+ ...(this.lostSinceMs !== null ? { lostSince: new Date(this.lostSinceMs).toISOString() } : {}),
68
+ rowsLostWhileDown: this.rowsLostWhileDown,
69
+ corruptLinesSkipped: this.lastCorruptSkipped,
70
+ hydration: this.hydrationState,
71
+ };
72
+ }
73
+ /**
74
+ * Append one decision row. Returns true when the row landed on disk.
75
+ *
76
+ * On the first successful append AFTER an unwritable episode, ONE
77
+ * `outage-summary` row is written first (R5-m3) so the mid-window row gap
78
+ * is durable and boot-visible. On failure the ledger flips unwritable
79
+ * (level-triggered — each subsequent append re-attempts, so recovery needs
80
+ * no restart) and the row is COUNTED as lost when it is a non-refusal
81
+ * decision (`rowsLostWhileDown`, R4-m1) — the caller keeps its in-memory
82
+ * index primed regardless.
83
+ */
84
+ /**
85
+ * Level-triggered outage resume (§3.5, I12): when the ledger is down,
86
+ * attempt to write the ONE `outage-summary` breadcrumb row now. Returns
87
+ * true when the ledger is writable afterwards (already up, or the summary
88
+ * landed and the outage is over); false while the outage persists. The
89
+ * engine calls this at the top of every proactive evaluation, so recovery
90
+ * needs no restart.
91
+ */
92
+ tryResume() {
93
+ if (this.writable)
94
+ return true;
95
+ const outageStartMs = this.lostSinceMs;
96
+ try {
97
+ fs.mkdirSync(path.dirname(this.filePath), { recursive: true });
98
+ const summary = {
99
+ ts: new Date(this.now()).toISOString(),
100
+ kind: 'proactive',
101
+ decision: 'outage-summary',
102
+ machineId: this.machineId,
103
+ rowsLostWhileDown: this.rowsLostWhileDown,
104
+ ledgerLostRefusals: this.outageRefusalCount(),
105
+ outageStartTs: outageStartMs !== null ? new Date(outageStartMs).toISOString() : undefined,
106
+ outageEndTs: new Date(this.now()).toISOString(),
107
+ };
108
+ fs.appendFileSync(this.filePath, JSON.stringify(summary) + '\n');
109
+ this.writable = true;
110
+ this.lostSinceMs = null;
111
+ this.logger.log('[SwapLedger] append recovered — outage-summary row written, proactive optimization may resume');
112
+ return true;
113
+ }
114
+ catch {
115
+ return false;
116
+ }
117
+ }
118
+ append(row) {
119
+ try {
120
+ fs.mkdirSync(path.dirname(this.filePath), { recursive: true });
121
+ if (!this.writable) {
122
+ // Level-triggered resume: the first successful append path writes the
123
+ // outage-summary breadcrumb BEFORE the actual row (R5-m3). If it
124
+ // cannot be written the outage continues (caught below).
125
+ if (!this.tryResume())
126
+ throw new Error('ledger-still-unwritable');
127
+ }
128
+ fs.appendFileSync(this.filePath, JSON.stringify(row) + '\n');
129
+ maybeRotateJsonlSegment(this.filePath, {
130
+ maxBytes: this.maxBytes,
131
+ keepSegments: this.keepSegments,
132
+ });
133
+ return true;
134
+ }
135
+ catch (err) {
136
+ // @silent-fallback-ok: NOT silent — the first failure warns loudly, the
137
+ // engine pauses proactive optimization while unwritable (I12), and lost
138
+ // rows are counted (rowsLostWhileDown / ledgerLostRefusals, R4-m1).
139
+ if (this.writable) {
140
+ this.writable = false;
141
+ this.lostSinceMs = this.now();
142
+ this.logger.warn(`[SwapLedger] append FAILED (${err instanceof Error ? err.constructor.name : 'Error'}) — ledger unwritable; proactive optimization pauses (I12)`);
143
+ }
144
+ // A refusal row lost during the outage is counter-only via the engine's
145
+ // ledgerLostRefusals; EXECUTED/PROCEEDED rows lost here are the
146
+ // rowsLostWhileDown class (R4-m1).
147
+ if (row.decision !== 'refused')
148
+ this.rowsLostWhileDown += 1;
149
+ return false;
150
+ }
151
+ }
152
+ /**
153
+ * Boot hydration (§3.5 read path): read retained segments NEWEST-FIRST
154
+ * (active file, then `.N` segments descending) until the oldest row read is
155
+ * older than the window. Bounded by keepSegments — at most active + 2
156
+ * segments. Runs UNCONDITIONALLY at boot (R4-L3) so the index is warm the
157
+ * moment a dark flag flips on mid-run. Never throws.
158
+ */
159
+ hydrate() {
160
+ const nowMs = this.now();
161
+ const windowMs = this.windowMs();
162
+ const cutoff = nowMs - windowMs;
163
+ let corrupt = 0;
164
+ const rows = [];
165
+ let sawOutageSummaryInWindow = false;
166
+ let oldestRowMs = null;
167
+ const files = this.listFilesNewestFirst();
168
+ let coveredWindow = files.length === 0; // empty ledger = cold start, complete
169
+ let rotatedSegmentsSeen = 0;
170
+ for (const f of files) {
171
+ if (f.rotated)
172
+ rotatedSegmentsSeen += 1;
173
+ let content;
174
+ try {
175
+ content = fs.readFileSync(f.file, 'utf-8');
176
+ }
177
+ catch {
178
+ // @silent-fallback-ok: an unreadable segment is treated as absent —
179
+ // hydration stays partial and the incomplete window is surfaced via
180
+ // the hydration result's coveredWindow/corrupt fields, never hidden.
181
+ continue;
182
+ }
183
+ let fileOldest = null;
184
+ for (const line of content.split('\n')) {
185
+ const trimmed = line.trim();
186
+ if (!trimmed)
187
+ continue;
188
+ let row;
189
+ try {
190
+ const parsed = JSON.parse(trimmed);
191
+ if (!parsed || typeof parsed !== 'object' || typeof parsed.ts !== 'string') {
192
+ corrupt += 1;
193
+ continue;
194
+ }
195
+ row = parsed;
196
+ }
197
+ catch {
198
+ // Corrupt/partial trailing line — tolerated, counted, never poisons
199
+ // the derivation or aborts the boot (§3.5 durability rules).
200
+ corrupt += 1;
201
+ continue;
202
+ }
203
+ const tsMs = Date.parse(row.ts);
204
+ if (!Number.isFinite(tsMs)) {
205
+ corrupt += 1;
206
+ continue;
207
+ }
208
+ if (fileOldest === null || tsMs < fileOldest)
209
+ fileOldest = tsMs;
210
+ if (oldestRowMs === null || tsMs < oldestRowMs)
211
+ oldestRowMs = tsMs;
212
+ if (tsMs < cutoff)
213
+ continue; // older than the window — read past, not kept
214
+ if (row.decision === 'outage-summary')
215
+ sawOutageSummaryInWindow = true;
216
+ rows.push(row);
217
+ }
218
+ // Stop the newest-first walk once this file's OLDEST row predates the
219
+ // window — every older file is entirely out of window.
220
+ if (fileOldest !== null && fileOldest < cutoff) {
221
+ coveredWindow = true;
222
+ break;
223
+ }
224
+ }
225
+ if (oldestRowMs !== null && oldestRowMs < cutoff)
226
+ coveredWindow = true;
227
+ // Under-primed honesty (§3.5): (a) retention could not cover the window —
228
+ // every retained row is younger than the bound AND rotation has evidently
229
+ // discarded older segments; (b) an outage-summary row sits inside the
230
+ // window (a mid-window row gap, R5-m3).
231
+ let hydration = 'complete';
232
+ let underPrimedReason;
233
+ if (!coveredWindow && rotatedSegmentsSeen >= this.keepSegments) {
234
+ hydration = 'under-primed';
235
+ underPrimedReason = 'rotation-shortfall';
236
+ }
237
+ if (sawOutageSummaryInWindow) {
238
+ hydration = 'under-primed';
239
+ underPrimedReason = underPrimedReason
240
+ ? `${underPrimedReason}+outage-summary-in-window`
241
+ : 'outage-summary-in-window';
242
+ }
243
+ if (hydration === 'under-primed') {
244
+ this.logger.warn(`[SwapLedger] hydration UNDER-PRIMED (${underPrimedReason}) — the in-memory brake index may be missing rows inside its window`);
245
+ }
246
+ rows.sort((a, b) => Date.parse(a.ts) - Date.parse(b.ts));
247
+ this.lastCorruptSkipped = corrupt;
248
+ this.hydrationState = hydration;
249
+ return { rows, corruptLinesSkipped: corrupt, hydration, ...(underPrimedReason ? { underPrimedReason } : {}) };
250
+ }
251
+ listFilesNewestFirst() {
252
+ const out = [];
253
+ try {
254
+ if (fs.existsSync(this.filePath))
255
+ out.push({ file: this.filePath, rotated: false });
256
+ const dir = path.dirname(this.filePath);
257
+ const base = path.basename(this.filePath);
258
+ const segRe = new RegExp('^' + base.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '\\.(\\d+)$');
259
+ const segs = [];
260
+ for (const f of fs.readdirSync(dir)) {
261
+ const m = f.match(segRe);
262
+ if (m)
263
+ segs.push({ seq: parseInt(m[1], 10), file: path.join(dir, f) });
264
+ }
265
+ segs.sort((a, b) => b.seq - a.seq); // newest rotated segment first
266
+ for (const s of segs)
267
+ out.push({ file: s.file, rotated: true });
268
+ }
269
+ catch {
270
+ /* directory unreadable — hydrate cold */
271
+ }
272
+ return out;
273
+ }
274
+ }
275
+ //# sourceMappingURL=SwapLedger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwapLedger.js","sourceRoot":"","sources":["../../src/core/SwapLedger.ts"],"names":[],"mappings":"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"}