llm-relay 0.76.0 → 0.77.0
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.
- package/dist/breaker-persistence.d.ts +32 -18
- package/dist/breaker-persistence.js +91 -12
- package/dist/breaker-persistence.js.map +1 -1
- package/dist/circuit-breaker.d.ts +43 -18
- package/dist/circuit-breaker.js +35 -21
- package/dist/circuit-breaker.js.map +1 -1
- package/dist/cli.js +12 -3
- package/dist/cli.js.map +1 -1
- package/dist/dispatch-exhaustion-persistence.d.ts +6 -0
- package/dist/dispatch-exhaustion-persistence.js +6 -2
- package/dist/dispatch-exhaustion-persistence.js.map +1 -1
- package/dist/dispatch-lane-stats.d.ts +6 -0
- package/dist/dispatch-lane-stats.js +6 -2
- package/dist/dispatch-lane-stats.js.map +1 -1
- package/dist/dispatch.d.ts +1 -1
- package/dist/lane-affinity.d.ts +7 -0
- package/dist/lane-affinity.js +6 -2
- package/dist/lane-affinity.js.map +1 -1
- package/dist/write-behind.d.ts +31 -0
- package/dist/write-behind.js +30 -0
- package/dist/write-behind.js.map +1 -1
- package/package.json +1 -1
|
@@ -27,3 +27,9 @@ export declare function installDispatchExhaustionPersistence(cfg: Config, opts?:
|
|
|
27
27
|
path?: string;
|
|
28
28
|
now?: () => number;
|
|
29
29
|
}): number;
|
|
30
|
+
/**
|
|
31
|
+
* The shutdown seam: write every dirty death NOW. Until 2026-09-08 nothing could — a
|
|
32
|
+
* vendor-stated cooldown reported in the last two seconds before a graceful stop was lost, and
|
|
33
|
+
* the lane retried. Returns how many files were written.
|
|
34
|
+
*/
|
|
35
|
+
export declare function flushDispatchExhaustionPersistence(): number;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { tmpdir } from "node:os";
|
|
3
3
|
import { relayStatePath } from "./state-paths.js";
|
|
4
|
-
import { WriteBehindTimer } from "./write-behind.js";
|
|
4
|
+
import { WriteBehindRegistry, WriteBehindTimer } from "./write-behind.js";
|
|
5
5
|
import { atomicWriteJsonSync, safeReadJsonSync } from "./storage/json-store.js";
|
|
6
6
|
import { exportExhaustedRows, onExhaustionChanged, restoreExhaustedRows, } from "./dispatch.js";
|
|
7
7
|
export const CURRENT_DISPATCH_EXHAUSTION_VERSION = 1;
|
|
@@ -42,10 +42,14 @@ export function installDispatchExhaustionPersistence(cfg, opts = {}) {
|
|
|
42
42
|
const path = opts.path ?? getDispatchExhaustionPath();
|
|
43
43
|
const clock = opts.now ?? Date.now;
|
|
44
44
|
const restored = restoreExhaustedRows(cfg, loadExhaustedRows({ path, now: clock() }), clock());
|
|
45
|
-
const timer = new WriteBehindTimer();
|
|
45
|
+
const timer = installed.register(new WriteBehindTimer());
|
|
46
46
|
onExhaustionChanged(cfg, () => {
|
|
47
47
|
timer.touch(() => saveExhaustedRows(exportExhaustedRows(cfg, clock()), { path }));
|
|
48
48
|
});
|
|
49
49
|
return restored;
|
|
50
50
|
}
|
|
51
|
+
const installed = new WriteBehindRegistry();
|
|
52
|
+
export function flushDispatchExhaustionPersistence() {
|
|
53
|
+
return installed.flushAll();
|
|
54
|
+
}
|
|
51
55
|
//# sourceMappingURL=dispatch-exhaustion-persistence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-exhaustion-persistence.js","sourceRoot":"","sources":["../src/dispatch-exhaustion-persistence.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatch-exhaustion-persistence.js","sourceRoot":"","sources":["../src/dispatch-exhaustion-persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -202,3 +202,9 @@ export declare function saveLaneStatsRows(rows: readonly LaneStatsRow[], opts?:
|
|
|
202
202
|
export declare function installDispatchLaneStatsPersistence(cfg: Config, opts?: {
|
|
203
203
|
path?: string;
|
|
204
204
|
}): number;
|
|
205
|
+
/**
|
|
206
|
+
* The shutdown seam: write every dirty window NOW. Until 2026-09-08 nothing could — the timer
|
|
207
|
+
* lived in a closure only the change listener held, so a lane run recorded in the last two
|
|
208
|
+
* seconds before a graceful stop never reached the file. Returns how many files were written.
|
|
209
|
+
*/
|
|
210
|
+
export declare function flushDispatchLaneStatsPersistence(): number;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { tmpdir } from "node:os";
|
|
3
3
|
import { relayStatePath } from "./state-paths.js";
|
|
4
|
-
import { WriteBehindTimer } from "./write-behind.js";
|
|
4
|
+
import { WriteBehindRegistry, WriteBehindTimer } from "./write-behind.js";
|
|
5
5
|
import { atomicWriteJsonSync, safeReadJsonSync } from "./storage/json-store.js";
|
|
6
6
|
import { isDashboardSafeId } from "./dashboard-contract.js";
|
|
7
7
|
export const DISPATCH_LANE_KINDS = Object.freeze(["cli", "relay"]);
|
|
@@ -285,10 +285,14 @@ export function saveLaneStatsRows(rows, opts = {}) {
|
|
|
285
285
|
export function installDispatchLaneStatsPersistence(cfg, opts = {}) {
|
|
286
286
|
const path = opts.path ?? getDispatchLaneStatsPath();
|
|
287
287
|
const restored = restoreLaneStatsRows(cfg, loadLaneStatsRows({ path }));
|
|
288
|
-
const timer = new WriteBehindTimer();
|
|
288
|
+
const timer = installed.register(new WriteBehindTimer());
|
|
289
289
|
onLaneStatsChanged(cfg, () => {
|
|
290
290
|
timer.touch(() => saveLaneStatsRows(exportLaneStatsRows(cfg), { path }));
|
|
291
291
|
});
|
|
292
292
|
return restored;
|
|
293
293
|
}
|
|
294
|
+
const installed = new WriteBehindRegistry();
|
|
295
|
+
export function flushDispatchLaneStatsPersistence() {
|
|
296
|
+
return installed.flushAll();
|
|
297
|
+
}
|
|
294
298
|
//# sourceMappingURL=dispatch-lane-stats.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-lane-stats.js","sourceRoot":"","sources":["../src/dispatch-lane-stats.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAU5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,CAAU,CAAC,CAAC;AAe5E,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAU,CAAC,CAAC;AA0ChH,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,aAAa;IACb,UAAU;IACV,QAAQ;IACR,sBAAsB;IACtB,uBAAuB;CACwC,CAAC,CAAC;AAEnE,MAAM,qBAAqB,GAAqD,IAAI,CAAC;AACrF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS,WAAW,CAAC,CAAC;AAEpD,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,SAAS,WAAW,CAAC,KAAc,EAAE,QAAgB;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,KAAK,CAAC,MAAM,IAAI,CAAC;WACjB,KAAK,CAAC,MAAM,IAAI,QAAQ;WACxB,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC5E,CAAC;AAOD,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrF,MAAM,IAAI,GAAG,KAAgC,CAAC;IAC9C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IAC5C,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC;IAC7H,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1E,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAwB,CAAC;QAAE,OAAO,IAAI,CAAC;IACzE,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,MAA4B,CAAC;QAAE,OAAO,IAAI,CAAC;IAChF,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrG,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpG,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7F,OAAO;QACL,KAAK;QACL,MAAM;QACN,IAAI,EAAE,IAAwB;QAC9B,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,WAAW;QACX,QAAQ;QACR,MAAM,EAAE,MAA4B;QACpC,oBAAoB;QACpB,qBAAqB;KACtB,CAAC;AACJ,CAAC;AAwBD,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAQzC,MAAM,UAAU,iBAAiB,CAAC,OAA0B;IAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACxD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IACnC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IAC/B,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAoBD,MAAM,UAAU,cAAc,CAAC,OAA0B;IACvD,OAAO,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAqBD,MAAM,UAAU,mBAAmB,CAAC,OAA0B,EAAE,QAAgB;IAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AACxE,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC7F,CAAC;AAOD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,oBAAoB,EAAE,iBAAiB,CAAU,CAAC;AAczF,MAAM,UAAU,sBAAsB,CACpC,IAA6B,EAC7B,QAAwC;IAExC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACrB,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,cAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChF,cAAc,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,sBAAsB,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QACxC,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,cAAc;YAAE,OAAO,IAAI,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAQD,MAAM,SAAS,GAAG,IAAI,OAAO,EAAkC,CAAC;AAEhE,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,GAAG,IAAI,GAAG,EAAqB,CAAC;QACjC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAAC,KAAgB;IACjC,OAAO,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;AAC3D,CAAC;AAMD,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,MAAiC,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IACpG,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,cAAc,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACjB,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,WAAW;YACd,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;YACrB,MAAM;QACR,KAAK,QAAQ;YACX,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;YACpB,MAAM;QACR,KAAK,WAAW;YACd,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;YACpB,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;YACpB,MAAM;QACR,KAAK,WAAW;YAId,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;YACpB,MAAM;QACR,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,MAAM,GAAU,MAAM,CAAC,MAAM,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAeD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;QAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9E,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QACrD,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,qBAAqB,CAAC,CAAC;IAChF,CAAC;IACD,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IACnB,eAAe,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAGD,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,MAAc;IACtD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAGD,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAqB,CAAC,CAAC,OAAO,EAAE,CAAC;SACvE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAOD,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAA2B,CAAC;AAElE,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,QAAoB;IAClE,IAAI,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QAChB,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,KAAK,MAAM,QAAQ,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QACzD,IAAI,CAAC;YACH,QAAQ,EAAE,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC;AACH,CAAC;AAcD,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACvG,MAAM;QACN,KAAK;QACL,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC;QAC7B,MAAM;KACP,CAAC,CAAC,CAAC;AACN,CAAC;AAGD,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;QAAE,OAAO,KAAK,CAAC;IACjE,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAU,EAAE,CAAC;QAC1E,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAC5C,CAAC;IACD,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IAG9C,IAAI,WAAW,CAAC,MAAM,GAAG,qBAAqB;QAAE,OAAO,KAAK,CAAC;IAC7D,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IACzF,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5G,OAAO,IAAI,CAAC;AACd,CAAC;AAMD,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,IAA6B;IAC7E,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QAClC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE;YAClB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC;YAC1D,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB,CAAC,CAAC;QACH,QAAQ,EAAE,CAAC;IACb,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC;QAAE,eAAe,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAGD,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC;AAOrD,MAAM,UAAU,wBAAwB;IAGtC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,CAAC;IAG9F,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,0BAA0B,CAAC,CAAC;AACnE,CAAC;AAOD,MAAM,UAAU,iBAAiB,CAAC,OAA0B,EAAE;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,wBAAwB,EAAE,CAAC;IACvD,MAAM,MAAM,GAAG,gBAAgB,CAA0B,MAAM,CAAC,CAAC;IACjE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC7D,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,mCAAmC;QAAE,OAAO,EAAE,CAAC;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAuB,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAA6B,EAAE,OAA0B,EAAE;IAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,wBAAwB,EAAE,CAAC;IACvD,MAAM,IAAI,GAA0B,EAAE,OAAO,EAAE,mCAAmC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IACtG,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAMD,MAAM,UAAU,mCAAmC,CACjD,GAAW,EACX,OAA0B,EAAE;IAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,wBAAwB,EAAE,CAAC;IACrD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACrC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE;QAC3B,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"dispatch-lane-stats.js","sourceRoot":"","sources":["../src/dispatch-lane-stats.ts"],"names":[],"mappings":"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"}
|
package/dist/dispatch.d.ts
CHANGED
|
@@ -344,7 +344,7 @@ export declare function onExhaustionChanged(cfg: Config, listener: () => void):
|
|
|
344
344
|
export declare function exportExhaustedRows(cfg: Config, now?: number): ExhaustedRow[];
|
|
345
345
|
/**
|
|
346
346
|
* Restore persisted rows into this config's live map. Field-validated per row, future-only, and
|
|
347
|
-
* it NEVER overwrites a cooldown this process already learned — the `
|
|
347
|
+
* it NEVER overwrites a cooldown this process already learned — the `restoreState` contract.
|
|
348
348
|
* An `until` beyond `MAX_EXHAUSTED_MS` from now is clamped, mirroring `normalizeTtl` at write.
|
|
349
349
|
*/
|
|
350
350
|
export declare function restoreExhaustedRows(cfg: Config, rows: readonly ExhaustedRow[], now?: number): number;
|
package/dist/lane-affinity.d.ts
CHANGED
|
@@ -80,5 +80,12 @@ export declare function saveLaneAffinityRows(rows: readonly LaneAffinityRow[], o
|
|
|
80
80
|
export declare function installLaneAffinityPersistence(cfg: Config, opts?: {
|
|
81
81
|
path?: string;
|
|
82
82
|
}): number;
|
|
83
|
+
/**
|
|
84
|
+
* The shutdown seam: write every dirty memory NOW. Until 2026-09-08 nothing could — `runProxy`
|
|
85
|
+
* flushed six sibling stores at shutdown and this one held its timer in a closure nobody could
|
|
86
|
+
* reach, so a pin or demotion learned in the last two seconds died with the process.
|
|
87
|
+
* Returns how many files were written.
|
|
88
|
+
*/
|
|
89
|
+
export declare function flushLaneAffinityPersistence(): number;
|
|
83
90
|
/** Test seam: forget every memory for this config. Never called from `src/`. */
|
|
84
91
|
export declare function resetLaneAffinity(cfg: Config): void;
|
package/dist/lane-affinity.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { tmpdir } from "node:os";
|
|
3
3
|
import { relayStatePath } from "./state-paths.js";
|
|
4
|
-
import { WriteBehindTimer } from "./write-behind.js";
|
|
4
|
+
import { WriteBehindRegistry, WriteBehindTimer } from "./write-behind.js";
|
|
5
5
|
import { atomicWriteJsonSync, safeReadJsonSync } from "./storage/json-store.js";
|
|
6
6
|
import { isDashboardSafeId } from "./dashboard-contract.js";
|
|
7
7
|
export const MAX_AFFINITY_MS = 6 * 60 * 60 * 1000;
|
|
@@ -180,12 +180,16 @@ export function saveLaneAffinityRows(rows, opts = {}) {
|
|
|
180
180
|
export function installLaneAffinityPersistence(cfg, opts = {}) {
|
|
181
181
|
const path = opts.path ?? getLaneAffinityPath();
|
|
182
182
|
const restored = restoreLaneAffinityRows(cfg, loadLaneAffinityRows({ path }));
|
|
183
|
-
const timer = new WriteBehindTimer();
|
|
183
|
+
const timer = installed.register(new WriteBehindTimer());
|
|
184
184
|
onLaneAffinityChanged(cfg, () => {
|
|
185
185
|
timer.touch(() => saveLaneAffinityRows(exportLaneAffinityRows(cfg), { path }));
|
|
186
186
|
});
|
|
187
187
|
return restored;
|
|
188
188
|
}
|
|
189
|
+
const installed = new WriteBehindRegistry();
|
|
190
|
+
export function flushLaneAffinityPersistence() {
|
|
191
|
+
return installed.flushAll();
|
|
192
|
+
}
|
|
189
193
|
export function resetLaneAffinity(cfg) {
|
|
190
194
|
affinity.delete(cfg);
|
|
191
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lane-affinity.js","sourceRoot":"","sources":["../src/lane-affinity.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"lane-affinity.js","sourceRoot":"","sources":["../src/lane-affinity.ts"],"names":[],"mappings":"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"}
|
package/dist/write-behind.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export declare const MAX_FLUSH_DELAY_MS = 2000;
|
|
|
9
9
|
export declare class WriteBehindTimer {
|
|
10
10
|
private timer;
|
|
11
11
|
private dirtySince;
|
|
12
|
+
/** The flush the latest touch armed, kept so a shutdown can run it without waiting. */
|
|
13
|
+
private pending;
|
|
12
14
|
/** True when a touch has not yet been flushed (or cancelled). */
|
|
13
15
|
get dirty(): boolean;
|
|
14
16
|
/**
|
|
@@ -16,6 +18,35 @@ export declare class WriteBehindTimer {
|
|
|
16
18
|
* so a flush implementation that also calls `clear()` (eager-flush paths do) stays idempotent.
|
|
17
19
|
*/
|
|
18
20
|
touch(flush: () => void, now?: number): void;
|
|
21
|
+
/**
|
|
22
|
+
* Run the armed flush NOW when a touch is still unflushed; a clean timer does nothing.
|
|
23
|
+
*
|
|
24
|
+
* The shutdown seam. Every write-behind store trades a bounded crash window (`MAX_FLUSH_DELAY_MS`)
|
|
25
|
+
* for a quiet request path, and a graceful shutdown is where that window is closed explicitly.
|
|
26
|
+
* Returns true when a write ran, so a caller can count what it flushed.
|
|
27
|
+
*/
|
|
28
|
+
flushNow(): boolean;
|
|
19
29
|
/** Cancel any pending timer and mark clean. Call from eager-flush paths before writing. */
|
|
20
30
|
clear(): void;
|
|
21
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* The timers one store has installed, so its shutdown flush can reach every one of them without
|
|
34
|
+
* each installer handing back a handle.
|
|
35
|
+
*
|
|
36
|
+
* A per-Config store (`dispatch-exhaustion-persistence.ts`, `dispatch-lane-stats.ts`,
|
|
37
|
+
* `lane-affinity.ts`) creates one timer per install and returned only a restore count, so nothing
|
|
38
|
+
* could flush it at shutdown: `runProxy` flushed six sibling stores and none of these. A registry
|
|
39
|
+
* per store keeps that count-returning signature — the tests pin it — and gives the shutdown path
|
|
40
|
+
* one call per store.
|
|
41
|
+
*/
|
|
42
|
+
export declare class WriteBehindRegistry {
|
|
43
|
+
private readonly timers;
|
|
44
|
+
/** Remember a timer; returns it so `register(new WriteBehindTimer())` reads as one expression. */
|
|
45
|
+
register(timer: WriteBehindTimer): WriteBehindTimer;
|
|
46
|
+
/**
|
|
47
|
+
* Flush every dirty timer. A write that throws never stops the others — persistence is
|
|
48
|
+
* best-effort at every other seam in this repository and a shutdown is no place to start
|
|
49
|
+
* failing. Returns how many writes ran.
|
|
50
|
+
*/
|
|
51
|
+
flushAll(): number;
|
|
52
|
+
}
|
package/dist/write-behind.js
CHANGED
|
@@ -3,11 +3,13 @@ export const MAX_FLUSH_DELAY_MS = 2_000;
|
|
|
3
3
|
export class WriteBehindTimer {
|
|
4
4
|
timer = null;
|
|
5
5
|
dirtySince = null;
|
|
6
|
+
pending = null;
|
|
6
7
|
get dirty() {
|
|
7
8
|
return this.dirtySince !== null;
|
|
8
9
|
}
|
|
9
10
|
touch(flush, now = Date.now()) {
|
|
10
11
|
this.dirtySince ??= now;
|
|
12
|
+
this.pending = flush;
|
|
11
13
|
if (this.timer)
|
|
12
14
|
clearTimeout(this.timer);
|
|
13
15
|
const remaining = Math.max(0, MAX_FLUSH_DELAY_MS - (now - this.dirtySince));
|
|
@@ -16,12 +18,40 @@ export class WriteBehindTimer {
|
|
|
16
18
|
flush();
|
|
17
19
|
}, Math.min(DEFAULT_FLUSH_DELAY_MS, remaining));
|
|
18
20
|
}
|
|
21
|
+
flushNow() {
|
|
22
|
+
const flush = this.pending;
|
|
23
|
+
if (!this.dirty || flush === null)
|
|
24
|
+
return false;
|
|
25
|
+
this.clear();
|
|
26
|
+
flush();
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
19
29
|
clear() {
|
|
20
30
|
if (this.timer) {
|
|
21
31
|
clearTimeout(this.timer);
|
|
22
32
|
this.timer = null;
|
|
23
33
|
}
|
|
24
34
|
this.dirtySince = null;
|
|
35
|
+
this.pending = null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class WriteBehindRegistry {
|
|
39
|
+
timers = new Set();
|
|
40
|
+
register(timer) {
|
|
41
|
+
this.timers.add(timer);
|
|
42
|
+
return timer;
|
|
43
|
+
}
|
|
44
|
+
flushAll() {
|
|
45
|
+
let flushed = 0;
|
|
46
|
+
for (const timer of this.timers) {
|
|
47
|
+
try {
|
|
48
|
+
if (timer.flushNow())
|
|
49
|
+
flushed += 1;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return flushed;
|
|
25
55
|
}
|
|
26
56
|
}
|
|
27
57
|
//# sourceMappingURL=write-behind.js.map
|
package/dist/write-behind.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-behind.js","sourceRoot":"","sources":["../src/write-behind.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAExC,MAAM,OAAO,gBAAgB;IACnB,KAAK,GAA0B,IAAI,CAAC;IACpC,UAAU,GAAkB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"write-behind.js","sourceRoot":"","sources":["../src/write-behind.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAExC,MAAM,OAAO,gBAAgB;IACnB,KAAK,GAA0B,IAAI,CAAC;IACpC,UAAU,GAAkB,IAAI,CAAC;IAEjC,OAAO,GAAwB,IAAI,CAAC;IAG5C,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;IAClC,CAAC;IAMD,KAAK,CAAC,KAAiB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,KAAK;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,EAAE,CAAC;QACV,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC,CAAC;IAClD,CAAC;IASD,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,EAAE,CAAC;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,KAAK;QACH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;CACF;AAYD,MAAM,OAAO,mBAAmB;IACb,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAGtD,QAAQ,CAAC,KAAuB;QAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAOD,QAAQ;QACN,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,IAAI,KAAK,CAAC,QAAQ,EAAE;oBAAE,OAAO,IAAI,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|