@mmnto/cli 1.90.0 → 1.91.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/commands/ecl-gc.d.ts +53 -8
- package/dist/commands/ecl-gc.d.ts.map +1 -1
- package/dist/commands/ecl-gc.js +64 -14
- package/dist/commands/ecl-gc.js.map +1 -1
- package/dist/commands/ecl-gc.test.js +157 -1
- package/dist/commands/ecl-gc.test.js.map +1 -1
- package/dist/commands/mail.d.ts +21 -2
- package/dist/commands/mail.d.ts.map +1 -1
- package/dist/commands/mail.js +44 -5
- package/dist/commands/mail.js.map +1 -1
- package/dist/commands/mail.test.js +196 -3
- package/dist/commands/mail.test.js.map +1 -1
- package/dist/index.js +16 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
* one seat (A2.3), and self-verifies via an immediate re-poll (A2.4). Unlike the
|
|
32
32
|
* prune's age window, compaction couples to the outbox lifecycle, not to time.
|
|
33
33
|
*/
|
|
34
|
+
import { type TotemConfig } from '@mmnto/totem';
|
|
34
35
|
export interface EclGcOptions {
|
|
35
36
|
/** Actually delete (default: dry-run — list would-prune, delete nothing). */
|
|
36
37
|
apply?: boolean;
|
|
@@ -41,7 +42,12 @@ export interface EclGcOptions {
|
|
|
41
42
|
* NOT used by the signoff step — that path self-resolves.
|
|
42
43
|
*/
|
|
43
44
|
agentId?: string;
|
|
44
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Walk-START directory (default: `process.cwd()`), not the definitive root:
|
|
47
|
+
* the effective repo root is derived by walking up to the nearest
|
|
48
|
+
* `.totem`/`.git` marker (mmnto-ai/totem#2312); a marker-less start is used
|
|
49
|
+
* as-is. Test injection point.
|
|
50
|
+
*/
|
|
45
51
|
repoRoot?: string;
|
|
46
52
|
/** Env override (default: `process.env`). Test injection point. */
|
|
47
53
|
env?: Record<string, string | undefined>;
|
|
@@ -148,7 +154,12 @@ export interface EclCompactOptions {
|
|
|
148
154
|
* single-writer compaction target; NOT used by the signoff step (self-resolves).
|
|
149
155
|
*/
|
|
150
156
|
agentId?: string;
|
|
151
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* Walk-START directory (default: `process.cwd()`), not the definitive root:
|
|
159
|
+
* the effective repo root is derived by walking up to the nearest
|
|
160
|
+
* `.totem`/`.git` marker (mmnto-ai/totem#2312); a marker-less start is used
|
|
161
|
+
* as-is. Test injection point.
|
|
162
|
+
*/
|
|
152
163
|
repoRoot?: string;
|
|
153
164
|
/** Env override (default: `process.env`). Test injection point. */
|
|
154
165
|
env?: Record<string, string | undefined>;
|
|
@@ -159,14 +170,25 @@ export interface EclCompactOptions {
|
|
|
159
170
|
maxScan?: number;
|
|
160
171
|
/**
|
|
161
172
|
* Declared expected cohort repo roster for the A2.2 completeness gate — the
|
|
162
|
-
* yardstick the workspace glob is checked against
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
* exit 3), never "assume
|
|
166
|
-
*
|
|
167
|
-
* Tests inject
|
|
173
|
+
* yardstick the workspace glob is checked against. Highest-precedence source
|
|
174
|
+
* (mmnto-ai/totem#2310): an explicit value here (programmatic callers / tests)
|
|
175
|
+
* WINS over `config.ecl.cohortRepos`. When BOTH are absent the roster is
|
|
176
|
+
* undeclared: compaction HARD-ABORTS (fail-loud, exit 3), never "assume
|
|
177
|
+
* complete" and never a silent no-op — completeness is unprovable without a
|
|
178
|
+
* declared expectation (strategy#828 no-roster corollary). Tests inject
|
|
179
|
+
* explicitly; the CLI action injects `config` (below) instead.
|
|
168
180
|
*/
|
|
169
181
|
expectedRepos?: string[];
|
|
182
|
+
/**
|
|
183
|
+
* Loaded consumer config, the roster's second-precedence source
|
|
184
|
+
* (mmnto-ai/totem#2310): when `expectedRepos` is absent the gate reads
|
|
185
|
+
* `config.ecl.cohortRepos`. Injected by the CLI action (which loads config at
|
|
186
|
+
* the process boundary) so `eclCompact` stays a pure, synchronously-testable
|
|
187
|
+
* function — most tests inject `expectedRepos` directly and never touch this.
|
|
188
|
+
* A declared-but-EMPTY `cohortRepos` never reaches here: it is a Zod `.min(1)`
|
|
189
|
+
* violation caught loud at config load (a config bug ≠ an undeclared roster).
|
|
190
|
+
*/
|
|
191
|
+
config?: TotemConfig;
|
|
170
192
|
/**
|
|
171
193
|
* Operator escape (`--force-incomplete`): proceed with compaction even when
|
|
172
194
|
* the workspace glob is a strict subset of the declared roster (a cohort repo
|
|
@@ -227,6 +249,29 @@ export interface EclCompactResult {
|
|
|
227
249
|
verifyComplete: boolean;
|
|
228
250
|
warnings: string[];
|
|
229
251
|
}
|
|
252
|
+
/**
|
|
253
|
+
* Resolve the A2.2 completeness roster by precedence (mmnto-ai/totem#2310):
|
|
254
|
+
* explicit `expectedRepos` (programmatic callers / tests) → `config.ecl.cohortRepos`
|
|
255
|
+
* (consumer-declared) → `undefined` (the honest UNDECLARED state, which the gate
|
|
256
|
+
* maps to a hard-abort). Pure so the precedence is unit-testable in isolation.
|
|
257
|
+
* A declared-but-EMPTY array never reaches here: it is a Zod `.min(1)` violation
|
|
258
|
+
* caught loud at config load (`loadEclConfig`), so a config bug is never aliased
|
|
259
|
+
* into an undeclared roster.
|
|
260
|
+
*/
|
|
261
|
+
export declare function resolveExpectedRoster(explicit: string[] | undefined, config: TotemConfig | undefined): string[] | undefined;
|
|
262
|
+
/**
|
|
263
|
+
* Load the consumer's Totem config for the compaction roster read
|
|
264
|
+
* (mmnto-ai/totem#2310). A MISSING config file is the honest "undeclared" state —
|
|
265
|
+
* returns `undefined`, and the gate hard-aborts (exit 3) downstream. A
|
|
266
|
+
* PRESENT-but-INVALID config (e.g. `ecl.cohortRepos: []` → Zod `.min(1)`, or any
|
|
267
|
+
* other schema/parse error) throws LOUD: it is a config BUG and must NOT be
|
|
268
|
+
* caught into honest-absent, which would mask the bug as a normal undeclared
|
|
269
|
+
* roster (Tenet 4). Mirrors `orient`'s config read (`resolveProjectNumber`) but
|
|
270
|
+
* DELIBERATELY narrows the swallow to `CONFIG_MISSING` only — orient's catch-all
|
|
271
|
+
* would degrade an invalid config into "no board", the exact aliasing this gate
|
|
272
|
+
* must avoid.
|
|
273
|
+
*/
|
|
274
|
+
export declare function loadEclConfig(cwd: string): Promise<TotemConfig | undefined>;
|
|
230
275
|
/**
|
|
231
276
|
* Programmatic entry point for cursor-coupled processed-mark compaction. For a
|
|
232
277
|
* single resolved seat, deletes `processed/` marks whose inbound dispatch is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecl-gc.d.ts","sourceRoot":"","sources":["../../src/commands/ecl-gc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;
|
|
1
|
+
{"version":3,"file":"ecl-gc.d.ts","sourceRoot":"","sources":["../../src/commands/ecl-gc.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/ecl-gc.js
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
*/
|
|
34
34
|
import * as fs from 'node:fs';
|
|
35
35
|
import * as path from 'node:path';
|
|
36
|
-
import {
|
|
36
|
+
import { getErrorMessage, isPathSafeAgentId, resolveTotemRepoRootSync, TotemConfigError, TotemError, } from '@mmnto/totem';
|
|
37
37
|
import { pollMail, resolveSelfSender } from './mail.js';
|
|
38
38
|
// ─── Constants ──────────────────────────────────────────
|
|
39
39
|
const TAG = 'EclGc';
|
|
@@ -139,7 +139,11 @@ export function planPrune(entries, cutoff) {
|
|
|
139
139
|
*/
|
|
140
140
|
export function eclGc(opts = {}) {
|
|
141
141
|
const env = opts.env ?? process.env;
|
|
142
|
-
|
|
142
|
+
// Walk-start, not definitive root (contract in `resolveTotemRepoRootSync` —
|
|
143
|
+
// same seam as `pollMail`, mmnto-ai/totem#2312): from a subdir the bare
|
|
144
|
+
// `path.resolve(cwd)` made `<repoRoot>/.totem/orchestration/<agent>/outbox`
|
|
145
|
+
// garbage and self-resolution would throw.
|
|
146
|
+
const repoRoot = resolveTotemRepoRootSync(opts.repoRoot, process.cwd());
|
|
143
147
|
const now = (opts.now ?? (() => new Date()))();
|
|
144
148
|
// Retain-days validation (usage error) — evaluated before any scan.
|
|
145
149
|
const retainDays = opts.retainDays ?? DEFAULT_RETAIN_DAYS;
|
|
@@ -281,6 +285,44 @@ function readMarkDir(dir, warnings) {
|
|
|
281
285
|
return [];
|
|
282
286
|
}
|
|
283
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* Resolve the A2.2 completeness roster by precedence (mmnto-ai/totem#2310):
|
|
290
|
+
* explicit `expectedRepos` (programmatic callers / tests) → `config.ecl.cohortRepos`
|
|
291
|
+
* (consumer-declared) → `undefined` (the honest UNDECLARED state, which the gate
|
|
292
|
+
* maps to a hard-abort). Pure so the precedence is unit-testable in isolation.
|
|
293
|
+
* A declared-but-EMPTY array never reaches here: it is a Zod `.min(1)` violation
|
|
294
|
+
* caught loud at config load (`loadEclConfig`), so a config bug is never aliased
|
|
295
|
+
* into an undeclared roster.
|
|
296
|
+
*/
|
|
297
|
+
export function resolveExpectedRoster(explicit, config) {
|
|
298
|
+
return explicit ?? config?.ecl?.cohortRepos;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Load the consumer's Totem config for the compaction roster read
|
|
302
|
+
* (mmnto-ai/totem#2310). A MISSING config file is the honest "undeclared" state —
|
|
303
|
+
* returns `undefined`, and the gate hard-aborts (exit 3) downstream. A
|
|
304
|
+
* PRESENT-but-INVALID config (e.g. `ecl.cohortRepos: []` → Zod `.min(1)`, or any
|
|
305
|
+
* other schema/parse error) throws LOUD: it is a config BUG and must NOT be
|
|
306
|
+
* caught into honest-absent, which would mask the bug as a normal undeclared
|
|
307
|
+
* roster (Tenet 4). Mirrors `orient`'s config read (`resolveProjectNumber`) but
|
|
308
|
+
* DELIBERATELY narrows the swallow to `CONFIG_MISSING` only — orient's catch-all
|
|
309
|
+
* would degrade an invalid config into "no board", the exact aliasing this gate
|
|
310
|
+
* must avoid.
|
|
311
|
+
*/
|
|
312
|
+
export async function loadEclConfig(cwd) {
|
|
313
|
+
const { loadConfig, resolveConfigPath } = await import('../utils.js');
|
|
314
|
+
let configPath;
|
|
315
|
+
try {
|
|
316
|
+
configPath = resolveConfigPath(cwd);
|
|
317
|
+
// totem-context: a MISSING config file is honest-absent (undeclared roster → gate-red), NOT a failure; any OTHER error — and the present-but-invalid config surfaced by loadConfig below — propagates LOUD so a config bug never aliases into the undeclared arm.
|
|
318
|
+
}
|
|
319
|
+
catch (err) {
|
|
320
|
+
if (err instanceof TotemConfigError && err.code === 'CONFIG_MISSING')
|
|
321
|
+
return undefined;
|
|
322
|
+
throw err;
|
|
323
|
+
}
|
|
324
|
+
return loadConfig(configPath);
|
|
325
|
+
}
|
|
284
326
|
/**
|
|
285
327
|
* Programmatic entry point for cursor-coupled processed-mark compaction. For a
|
|
286
328
|
* single resolved seat, deletes `processed/` marks whose inbound dispatch is
|
|
@@ -295,9 +337,14 @@ function readMarkDir(dir, warnings) {
|
|
|
295
337
|
*/
|
|
296
338
|
export function eclCompact(opts = {}) {
|
|
297
339
|
const env = opts.env ?? process.env;
|
|
298
|
-
|
|
340
|
+
// Walk-start, not definitive root (contract in `resolveTotemRepoRootSync` —
|
|
341
|
+
// same seam as `pollMail`, mmnto-ai/totem#2312) so the derived `workspace =
|
|
342
|
+
// parent-of-root` and the A2.2 completeness gate see the real cohort tree,
|
|
343
|
+
// not a subdir's `dirname`. Explicit `--workspace` / `TOTEM_WORKSPACE`
|
|
344
|
+
// overrides are untouched.
|
|
345
|
+
const repoRoot = resolveTotemRepoRootSync(opts.repoRoot, process.cwd());
|
|
299
346
|
const workspace = path.resolve(opts.workspace ?? env['TOTEM_WORKSPACE'] ?? path.dirname(repoRoot));
|
|
300
|
-
const expectedRepos = [...(opts.expectedRepos ??
|
|
347
|
+
const expectedRepos = [...(resolveExpectedRoster(opts.expectedRepos, opts.config) ?? [])].sort();
|
|
301
348
|
// Single-writer target (A2.3): resolve EXACTLY one seat. Ambiguous/zero self
|
|
302
349
|
// is a usage error (parity with `eclGc`), thrown before any scan or delete.
|
|
303
350
|
let agent;
|
|
@@ -323,14 +370,17 @@ export function eclCompact(opts = {}) {
|
|
|
323
370
|
const broadcastSet = new Set(broadcastMarks);
|
|
324
371
|
const allMarks = new Set([...directMarks, ...broadcastMarks]);
|
|
325
372
|
// Safety corollary (codified contract strategy#828 / eb9ff5b — A2.2): an
|
|
326
|
-
// UNDECLARED
|
|
327
|
-
//
|
|
328
|
-
//
|
|
329
|
-
//
|
|
330
|
-
//
|
|
331
|
-
// the
|
|
332
|
-
//
|
|
333
|
-
//
|
|
373
|
+
// UNDECLARED roster gives the completeness gate nothing to assert against, so
|
|
374
|
+
// completeness cannot be proven. This is a HARD ABORT (fail-loud, non-zero
|
|
375
|
+
// exit — the caller maps `gateComplete=false` to exit 3), NOT a silent no-op
|
|
376
|
+
// that would let `processed/` accumulate unsignalled (Tenet 4). The roster is
|
|
377
|
+
// resolved from consumer config (`ecl.cohortRepos`, mmnto-ai/totem#2310):
|
|
378
|
+
// omitting the key is the undeclared state that lands here (empty array after
|
|
379
|
+
// the `?? []` fallback). A declared-but-EMPTY `cohortRepos: []` never reaches
|
|
380
|
+
// this branch — it is a loud Zod `.min(1)` failure at config load, never
|
|
381
|
+
// aliased into undeclared. A genuine single-repo consumer opts into
|
|
382
|
+
// completeness-1 by DECLARING a 1-repo roster. `rosterDeclared=false` is
|
|
383
|
+
// retained only to frame the operator message.
|
|
334
384
|
if (expectedRepos.length === 0) {
|
|
335
385
|
return {
|
|
336
386
|
agent,
|
|
@@ -362,8 +412,8 @@ export function eclCompact(opts = {}) {
|
|
|
362
412
|
// roster entry the gate accepts but the scan would skip leaves its outbox
|
|
363
413
|
// unscanned, re-opening the leak (CodeRabbit). `--force-incomplete` waives a
|
|
364
414
|
// genuinely ABSENT repo, but never an unscannable-name declaration (that is a
|
|
365
|
-
// config error, not a known gap). Unreachable with
|
|
366
|
-
// today; hardens the
|
|
415
|
+
// config error, not a known gap). Unreachable with our own clean config-
|
|
416
|
+
// declared roster today; hardens the arbitrary-consumer case (mmnto-ai/totem#2310).
|
|
367
417
|
const forced = opts.forceIncomplete === true;
|
|
368
418
|
const missingRepos = expectedRepos.filter((repo) => !repo.startsWith('.') && repo !== 'node_modules' && !isDir(path.join(workspace, repo)));
|
|
369
419
|
const unscannableRepos = expectedRepos.filter((repo) => repo.startsWith('.') || repo === 'node_modules');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecl-gc.js","sourceRoot":"","sources":["../../src/commands/ecl-gc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ecl-gc.js","sourceRoot":"","sources":["../../src/commands/ecl-gc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EAExB,gBAAgB,EAChB,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAExD,2DAA2D;AAE3D,MAAM,GAAG,GAAG,OAAO,CAAC;AAEpB;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,uCAAuC,CAAC;AAgDzD,2DAA2D;AAE3D;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,GAAS,EAAE,UAAkB;IACrD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5E,mDAAmD;IACnD,OAAO,CACL,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAChB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAClB,CAAC;AACJ,CAAC;AAcD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAmB,EAAE,MAAc;IAC/D,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC1D,CAAC;IACD,wEAAwE;IACxE,yEAAyE;IACzE,WAAW;IACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC1D,CAAC;IACD,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACzD,CAAC;IACD,oEAAoE;IACpE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC/E,CAAC;AASD;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,OAAuB,EAAE,MAAc;IAC/D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAuC,EAAE,CAAC;IACvD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC;AAED,2DAA2D;AAE3D;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CAAC,OAAqB,EAAE;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,4EAA4E;IAC5E,wEAAwE;IACxE,4EAA4E;IAC5E,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IAE/C,oEAAoE;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,UAAU,CAClB,gBAAgB,EAChB,sDAAsD,MAAM,CAAC,UAAU,CAAC,GAAG,EAC3E,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,KAAK,GAAG,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,CAClB,gBAAgB,EAChB,wDAAwD,eAAe,CAAC,GAAG,CAAC,EAAE,EAC9E,qDAAqD,EACrD,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,4EAA4E;IAC5E,8EAA8E;IAC9E,uEAAuE;IACvE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,UAAU,CAClB,gBAAgB,EAChB,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gDAAgD,EACzF,6GAA6G,CAC9G,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,MAAM,GAAgB;QAC1B,KAAK;QACL,UAAU;QACV,MAAM;QACN,MAAM;QACN,SAAS,EAAE,MAAM;QACjB,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,EAAE;QACX,QAAQ;KACT,CAAC;IAEF,wEAAwE;IACxE,4EAA4E;IAC5E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,2NAA2N;IAC7N,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,uBAAuB,MAAM,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CACpB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAC1D,MAAM,CACP,CAAC;IACF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE9B,uDAAuD;IACvD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,yEAAyE;IACzE,yEAAyE;IACzE,gEAAgE;IAChE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,kNAAkN;QACpN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,2DAA2D;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAmB,EAAE,IAAa;IACnE,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtD,GAAG,CAAC,IAAI,CACN,GAAG,EACH,UAAU,MAAM,CAAC,KAAK,gBAAgB,MAAM,CAAC,UAAU,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAC1F,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;IAC/B,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,UAAU,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,MAAM,CAAC,OAAO,CAAC,MAAM,6CAA6C,CAAC,CAAC;QAC7F,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,CAAC,MAAM,sCAAsC,CAAC,CAAC;QAC/F,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,2DAA2D;AAE3D,MAAM,WAAW,GAAG,eAAe,CAAC;AAEpC;;gFAEgF;AAChF,SAAS,KAAK,CAAC,CAAS;IACtB,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,kMAAkM;IACpM,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;+DAG+D;AAC/D,SAAS,WAAW,CAAC,GAAW,EAAE,QAAkB;IAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,sNAAsN;IACxN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,2BAA2B,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAyGD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAA8B,EAC9B,MAA+B;IAE/B,OAAO,QAAQ,IAAI,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACtE,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACpC,kQAAkQ;IACpQ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,gBAAgB,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB;YAAE,OAAO,SAAS,CAAC;QACvF,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,UAAU,CAAC,OAA0B,EAAE;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,4EAA4E;IAC5E,4EAA4E;IAC5E,2EAA2E;IAC3E,uEAAuE;IACvE,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAC5B,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CACnE,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEjG,6EAA6E;IAC7E,4EAA4E;IAC5E,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,KAAK,GAAG,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,CAClB,gBAAgB,EAChB,oEAAoE,eAAe,CAAC,GAAG,CAAC,EAAE,EAC1F,qDAAqD,EACrD,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,UAAU,CAClB,gBAAgB,EAChB,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gDAAgD,EACzF,6GAA6G,CAC9G,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;IACnC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,2EAA2E;IAC3E,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACzF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC;IAE9D,yEAAyE;IACzE,8EAA8E;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,8EAA8E;IAC9E,0EAA0E;IAC1E,8EAA8E;IAC9E,8EAA8E;IAC9E,yEAAyE;IACzE,oEAAoE;IACpE,yEAAyE;IACzE,+CAA+C;IAC/C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,KAAK;YACL,MAAM;YACN,SAAS;YACT,aAAa;YACb,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE;gBACX,+HAA+H;aAChI;YACD,UAAU,EAAE,CAAC;YACb,KAAK,EAAE,QAAQ,CAAC,IAAI;YACpB,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,EAAE;YACd,cAAc,EAAE,IAAI;YACpB,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,+EAA+E;IAC/E,8EAA8E;IAC9E,8EAA8E;IAC9E,wEAAwE;IACxE,8EAA8E;IAC9E,0EAA0E;IAC1E,6EAA6E;IAC7E,8EAA8E;IAC9E,yEAAyE;IACzE,oFAAoF;IACpF,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC;IAC7C,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CACvC,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CACzF,CAAC;IACF,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAC3C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,cAAc,CAC1D,CAAC;IAEF,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,yEAAyE;IACzE,MAAM,IAAI,GAAG,QAAQ,CAAC;QACpB,QAAQ;QACR,SAAS;QACT,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,gBAAgB,EAAE,IAAI;QACtB,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE;KACzC,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3D,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,qEAAqE;IACrE,2EAA2E;IAC3E,MAAM,YAAY,GAChB,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC;QACrC,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAC7B,QAAQ,CAAC,MAAM,KAAK,CAAC;QACrB,CAAC,IAAI,CAAC,SAAS,CAAC;IAClB,MAAM,WAAW,GAAG;QAClB,GAAG,YAAY,CAAC,GAAG,CACjB,CAAC,CAAC,EAAE,EAAE,CACJ,gDAAgD,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3G;QACD,GAAG,gBAAgB,CAAC,GAAG,CACrB,CAAC,CAAC,EAAE,EAAE,CAAC,8EAA8E,CAAC,EAAE,CACzF;QACD,GAAG,QAAQ;QACX,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClF,CAAC;IAEF,+EAA+E;IAC/E,4EAA4E;IAC5E,6EAA6E;IAC7E,+EAA+E;IAC/E,yEAAyE;IACzE,MAAM,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE7E,MAAM,MAAM,GAAqB;QAC/B,KAAK;QACL,MAAM;QACN,SAAS;QACT,aAAa;QACb,cAAc,EAAE,IAAI;QACpB,YAAY;QACZ,WAAW;QACX,UAAU,EAAE,YAAY,CAAC,IAAI;QAC7B,KAAK,EAAE,QAAQ,CAAC,IAAI;QACpB,WAAW;QACX,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACvB,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,EAAE;QACd,cAAc,EAAE,IAAI;QACpB,QAAQ;KACT,CAAC;IAEF,8EAA8E;IAC9E,+EAA+E;IAC/E,+EAA+E;IAC/E,IAAI,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,2EAA2E;YAC3E,wEAAwE;YACxE,sDAAsD;YACtD,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;QAC9D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,8EAA8E;IAC9E,0EAA0E;IAC1E,0EAA0E;IAC1E,yBAAyB;IACzB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC9C,UAAU,GAAG,IAAI,CAAC;gBAClB,0MAA0M;YAC5M,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChE,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC7C,UAAU,GAAG,IAAI,CAAC;gBAClB,iIAAiI;YACnI,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChF,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;QACD,2EAA2E;QAC3E,uEAAuE;QACvE,4EAA4E;QAC5E,6DAA6D;QAC7D,IAAI,UAAU,IAAI,CAAC,SAAS;YAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;IAE1D,+EAA+E;IAC/E,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,oDAAoD;IACpD,MAAM,MAAM,GAAG,QAAQ,CAAC;QACtB,QAAQ;QACR,SAAS;QACT,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE;KACzC,CAAC,CAAC;IACH,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI;SAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC9B,IAAI,EAAE,CAAC;IACV,6EAA6E;IAC7E,yEAAyE;IACzE,4EAA4E;IAC5E,8DAA8D;IAC9D,MAAM,CAAC,cAAc,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IAE1E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAwB,EACxB,IAAa;IAEb,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7F,GAAG,CAAC,IAAI,CACN,WAAW,EACX,UAAU,MAAM,CAAC,KAAK,aAAa,MAAM,CAAC,aAAa,CAAC,MAAM,oBAAoB,IAAI,EAAE,CACzF,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACzB,0EAA0E;QAC1E,uEAAuE;QACvE,wEAAwE;QACxE,4EAA4E;QAC5E,GAAG,CAAC,IAAI,CACN,WAAW,EACX,iDAAiD,MAAM,CAAC,KAAK,sBAAsB,CACpF,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW;YAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,2EAA2E;IAC3E,+EAA+E;IAC/E,gDAAgD;IAChD,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,iEAAiE,CAAC,CAAC;QACzF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW;YAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;IACrF,2EAA2E;IAC3E,qEAAqE;IACrE,GAAG,CAAC,IAAI,CACN,WAAW,EACX,GAAG,IAAI,IAAI,QAAQ,4BAA4B,MAAM,CAAC,QAAQ,OAAO,MAAM,CAAC,KAAK,2BAA2B,MAAM,CAAC,UAAU,EAAE,CAChI,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,CACP,aAAa,EACb,UAAU,MAAM,CAAC,MAAM,CAAC,MAAM,2CAA2C,CAC1E,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM;YAAE,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,KAAK,CACP,aAAa,EACb,4BAA4B,MAAM,CAAC,UAAU,CAAC,MAAM,0EAA0E,CAC/H,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU;YAAE,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,CACP,aAAa,EACb,iJAAiJ,CAClJ,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ;QAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAkC,EAClC,OAA6F;IAE7F,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,0EAA0E;QAC1E,+DAA+D;QAC/D,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc;YAAE,OAAO,CAAC,CAAC;QACvE,6EAA6E;QAC7E,0EAA0E;QAC1E,4EAA4E;QAC5E,6EAA6E;QAC7E,0EAA0E;QAC1E,iDAAiD;QACjD,IAAI,CAAC,OAAO,CAAC,YAAY;YAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACjE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -12,8 +12,21 @@ import * as fs from 'node:fs';
|
|
|
12
12
|
import * as os from 'node:os';
|
|
13
13
|
import * as path from 'node:path';
|
|
14
14
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
15
|
+
import { TotemConfigError, TotemConfigSchema } from '@mmnto/totem';
|
|
15
16
|
import { cleanTmpDir } from '../test-utils.js';
|
|
16
|
-
import { classifyEntry, cutoffKey, eclCompact, eclGc, planPrune, resolveEclGcExitCode, toStampKey, } from './ecl-gc.js';
|
|
17
|
+
import { classifyEntry, cutoffKey, eclCompact, eclGc, loadEclConfig, planPrune, resolveEclGcExitCode, resolveExpectedRoster, toStampKey, } from './ecl-gc.js';
|
|
18
|
+
/** Build a real (schema-validated) `TotemConfig` for roster-resolution tests —
|
|
19
|
+
* optionally with an `ecl.cohortRepos` roster. No casts: exercises the actual
|
|
20
|
+
* schema so the fixture can never drift from the shipped shape.
|
|
21
|
+
* `emptyEclBlock` yields the DISTINCT block-present-key-omitted state
|
|
22
|
+
* (`ecl: {}`) — schema-valid, still undeclared (greptile on PR #2315: the
|
|
23
|
+
* no-ecl-key and empty-ecl-block states must each be exercised as named). */
|
|
24
|
+
function cfg(cohortRepos, opts) {
|
|
25
|
+
return TotemConfigSchema.parse({
|
|
26
|
+
targets: [{ glob: '**/*.md', type: 'spec', strategy: 'markdown-heading' }],
|
|
27
|
+
...(cohortRepos ? { ecl: { cohortRepos } } : opts?.emptyEclBlock === true ? { ecl: {} } : {}),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
17
30
|
// `vi.spyOn` cannot rebind a frozen ESM module-namespace export (node:fs), so
|
|
18
31
|
// the partial-delete-failure row drives a module mock instead: a hoisted
|
|
19
32
|
// fail-set makes the mocked `unlinkSync` throw for named files and pass through
|
|
@@ -35,6 +48,22 @@ vi.mock('node:fs', async (importOriginal) => {
|
|
|
35
48
|
},
|
|
36
49
|
};
|
|
37
50
|
});
|
|
51
|
+
// `loadEclConfig` (the config-read seam) is the only path touching `../utils.js`;
|
|
52
|
+
// override just its two functions (spread-actual passthrough keeps every other
|
|
53
|
+
// utils export real, so the fs-driven prune/compact tests are unaffected). Lets
|
|
54
|
+
// the missing-vs-invalid distinction be tested without a real config on disk.
|
|
55
|
+
const utilsMock = vi.hoisted(() => ({
|
|
56
|
+
resolveConfigPath: vi.fn(),
|
|
57
|
+
loadConfig: vi.fn(),
|
|
58
|
+
}));
|
|
59
|
+
vi.mock('../utils.js', async (importOriginal) => {
|
|
60
|
+
const actual = await importOriginal();
|
|
61
|
+
return {
|
|
62
|
+
...actual,
|
|
63
|
+
resolveConfigPath: utilsMock.resolveConfigPath,
|
|
64
|
+
loadConfig: utilsMock.loadConfig,
|
|
65
|
+
};
|
|
66
|
+
});
|
|
38
67
|
// ─── Fixtures ───────────────────────────────────────────
|
|
39
68
|
// Fixed clock so cutoffs are deterministic (Tenet 15). 14-day default window
|
|
40
69
|
// puts the cutoff at 2026-06-21T12:00:00Z → key `20260621120000`.
|
|
@@ -72,9 +101,18 @@ const BOUNDARY_KEEP = '2026-06-21T120000Z-totem-gemini.md'; // === cutoff → ke
|
|
|
72
101
|
const BOUNDARY_PRUNE = '2026-06-21T115959Z-totem-gemini.md'; // 1s older → pruned
|
|
73
102
|
beforeEach(() => {
|
|
74
103
|
tmpRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'totem-eclgc-'));
|
|
104
|
+
// Since mmnto-ai/totem#2312 `eclGc`/`eclCompact` derive the repo root by
|
|
105
|
+
// walking UP to the nearest `.totem`/`.git` marker. Plant markers at the two
|
|
106
|
+
// fixture roots (`tmpRoot` for the prune, `<tmpRoot>/totem` for the compact)
|
|
107
|
+
// so the walk anchors there instead of climbing to a host-level ancestor
|
|
108
|
+
// marker (e.g. `~/.totem`) — the same fixture requirement `selfRepoRoot` gained.
|
|
109
|
+
mkDir(path.join(tmpRoot, '.totem'));
|
|
110
|
+
mkDir(path.join(tmpRoot, 'totem', '.totem'));
|
|
75
111
|
});
|
|
76
112
|
afterEach(() => {
|
|
77
113
|
fsMockState.failFor.clear();
|
|
114
|
+
utilsMock.resolveConfigPath.mockReset();
|
|
115
|
+
utilsMock.loadConfig.mockReset();
|
|
78
116
|
vi.restoreAllMocks();
|
|
79
117
|
cleanTmpDir(tmpRoot);
|
|
80
118
|
});
|
|
@@ -558,6 +596,124 @@ describe('compaction — cursor-coupled GC (A2.1–A2.4)', () => {
|
|
|
558
596
|
expect(r.collected).toEqual([]);
|
|
559
597
|
expect(markExists(CS, DIRECT_SWEPT)).toBe(true);
|
|
560
598
|
});
|
|
599
|
+
it('C16 — config.ecl.cohortRepos drives the roster when expectedRepos is absent (mmnto-ai/totem#2310)', () => {
|
|
600
|
+
ensureRepos(CROSTER);
|
|
601
|
+
writeInbound('totem-strategy', 'strategy-claude', DIRECT_LIVE, CS);
|
|
602
|
+
writeMark(CS, DIRECT_LIVE);
|
|
603
|
+
writeMark(CS, DIRECT_SWEPT);
|
|
604
|
+
// No `expectedRepos` → the injected config roster reaches the A2.2 gate.
|
|
605
|
+
const r = eclCompact({
|
|
606
|
+
repoRoot: compactRoot(),
|
|
607
|
+
workspace: tmpRoot,
|
|
608
|
+
env: { TOTEM_SELF_AGENT: CS },
|
|
609
|
+
config: cfg(CROSTER),
|
|
610
|
+
apply: true,
|
|
611
|
+
});
|
|
612
|
+
expect(r.expectedRepos).toEqual([...CROSTER].sort());
|
|
613
|
+
expect(r.gateComplete).toBe(true);
|
|
614
|
+
expect(r.collected).toEqual([DIRECT_SWEPT]);
|
|
615
|
+
expect(markExists(CS, DIRECT_SWEPT)).toBe(false);
|
|
616
|
+
expect(markExists(CS, DIRECT_LIVE)).toBe(true);
|
|
617
|
+
});
|
|
618
|
+
it('C17 — explicit expectedRepos WINS over config.ecl.cohortRepos (precedence)', () => {
|
|
619
|
+
ensureRepos(CROSTER); // only the explicit roster's repos are present
|
|
620
|
+
writeMark(CS, DIRECT_SWEPT);
|
|
621
|
+
// Config declares an EXTRA repo that is absent from the workspace — if config
|
|
622
|
+
// won, the gate would go RED (missing repo). Explicit CROSTER (all present)
|
|
623
|
+
// must win → gate green.
|
|
624
|
+
const r = eclCompact({
|
|
625
|
+
repoRoot: compactRoot(),
|
|
626
|
+
workspace: tmpRoot,
|
|
627
|
+
env: { TOTEM_SELF_AGENT: CS },
|
|
628
|
+
expectedRepos: CROSTER,
|
|
629
|
+
config: cfg([...CROSTER, 'totem-absent']),
|
|
630
|
+
apply: true,
|
|
631
|
+
});
|
|
632
|
+
expect(r.expectedRepos).toEqual([...CROSTER].sort());
|
|
633
|
+
// NON-VACUITY: had the config roster been used, `totem-absent` would gate-red.
|
|
634
|
+
expect(r.gateComplete).toBe(true);
|
|
635
|
+
expect(r.collected).toEqual([DIRECT_SWEPT]);
|
|
636
|
+
});
|
|
637
|
+
it('C18 — no expectedRepos AND no config ⇒ undeclared hard-abort (exit-3 arm)', () => {
|
|
638
|
+
ensureRepos(CROSTER);
|
|
639
|
+
writeMark(CS, DIRECT_SWEPT);
|
|
640
|
+
// Neither source declared → the `?? []` fallback lands in the undeclared
|
|
641
|
+
// gate-red arm (parity with C12's explicit `expectedRepos: []`).
|
|
642
|
+
const r = eclCompact({
|
|
643
|
+
repoRoot: compactRoot(),
|
|
644
|
+
workspace: tmpRoot,
|
|
645
|
+
env: { TOTEM_SELF_AGENT: CS },
|
|
646
|
+
apply: true,
|
|
647
|
+
});
|
|
648
|
+
expect(r.expectedRepos).toEqual([]);
|
|
649
|
+
expect(r.rosterDeclared).toBe(false);
|
|
650
|
+
expect(r.gateComplete).toBe(false);
|
|
651
|
+
expect(r.gateReasons.some((x) => /no cohort roster declared/.test(x))).toBe(true);
|
|
652
|
+
expect(resolveEclGcExitCode({ failed: [] }, r)).toBe(3);
|
|
653
|
+
expect(markExists(CS, DIRECT_SWEPT)).toBe(true);
|
|
654
|
+
});
|
|
655
|
+
it('C19 — an ecl block without cohortRepos is undeclared (config present, key omitted)', () => {
|
|
656
|
+
ensureRepos(CROSTER);
|
|
657
|
+
writeMark(CS, DIRECT_SWEPT);
|
|
658
|
+
// The NAMED state: a schema-valid `ecl: {}` block with `cohortRepos`
|
|
659
|
+
// omitted → still undeclared → hard-abort. (The no-`ecl`-key-at-all state
|
|
660
|
+
// is a resolveExpectedRoster unit row; C18 covers no config object.)
|
|
661
|
+
const r = eclCompact({
|
|
662
|
+
repoRoot: compactRoot(),
|
|
663
|
+
workspace: tmpRoot,
|
|
664
|
+
env: { TOTEM_SELF_AGENT: CS },
|
|
665
|
+
config: cfg(undefined, { emptyEclBlock: true }),
|
|
666
|
+
apply: true,
|
|
667
|
+
});
|
|
668
|
+
expect(r.gateComplete).toBe(false);
|
|
669
|
+
expect(r.gateReasons.some((x) => /no cohort roster declared/.test(x))).toBe(true);
|
|
670
|
+
expect(markExists(CS, DIRECT_SWEPT)).toBe(true);
|
|
671
|
+
});
|
|
672
|
+
});
|
|
673
|
+
// ─── Roster resolution precedence (mmnto-ai/totem#2310) ──
|
|
674
|
+
describe('resolveExpectedRoster — explicit > config > undefined', () => {
|
|
675
|
+
it('explicit expectedRepos wins over config', () => {
|
|
676
|
+
expect(resolveExpectedRoster(['a', 'b'], cfg(['c', 'd']))).toEqual(['a', 'b']);
|
|
677
|
+
});
|
|
678
|
+
it('config.ecl.cohortRepos is used when explicit is absent', () => {
|
|
679
|
+
expect(resolveExpectedRoster(undefined, cfg(['c', 'd']))).toEqual(['c', 'd']);
|
|
680
|
+
});
|
|
681
|
+
it('undefined when a config has no ecl block', () => {
|
|
682
|
+
expect(resolveExpectedRoster(undefined, cfg())).toBeUndefined();
|
|
683
|
+
});
|
|
684
|
+
it('undefined when the ecl block is present but cohortRepos is omitted', () => {
|
|
685
|
+
expect(resolveExpectedRoster(undefined, cfg(undefined, { emptyEclBlock: true }))).toBeUndefined();
|
|
686
|
+
});
|
|
687
|
+
it('undefined when neither source is present', () => {
|
|
688
|
+
expect(resolveExpectedRoster(undefined, undefined)).toBeUndefined();
|
|
689
|
+
});
|
|
690
|
+
it('explicit wins even over an undefined-roster config', () => {
|
|
691
|
+
expect(resolveExpectedRoster(['a'], cfg())).toEqual(['a']);
|
|
692
|
+
});
|
|
693
|
+
});
|
|
694
|
+
// ─── Config-read seam: loadEclConfig (mmnto-ai/totem#2310) ──
|
|
695
|
+
describe('loadEclConfig — missing ⇒ undeclared, invalid ⇒ loud', () => {
|
|
696
|
+
it('returns undefined when NO config file exists (honest undeclared → gate-red)', async () => {
|
|
697
|
+
utilsMock.resolveConfigPath.mockImplementation(() => {
|
|
698
|
+
throw new TotemConfigError('No Totem configuration found.', 'run totem init', 'CONFIG_MISSING');
|
|
699
|
+
});
|
|
700
|
+
await expect(loadEclConfig('/nowhere')).resolves.toBeUndefined();
|
|
701
|
+
expect(utilsMock.loadConfig).not.toHaveBeenCalled();
|
|
702
|
+
});
|
|
703
|
+
it('RETHROWS a present-but-invalid config LOUD (never degraded to undeclared)', async () => {
|
|
704
|
+
// The empty-roster / any Zod failure path: loadConfig throws CONFIG_INVALID.
|
|
705
|
+
utilsMock.resolveConfigPath.mockReturnValue('/repo/totem.config.ts');
|
|
706
|
+
utilsMock.loadConfig.mockRejectedValue(new TotemConfigError('Invalid configuration:\n ecl.cohortRepos: Array must contain at least 1 element(s)', 'fix the fields listed above', 'CONFIG_INVALID'));
|
|
707
|
+
// NON-VACUITY: a catch-and-degrade (orient's pattern) would resolve undefined
|
|
708
|
+
// here, aliasing a config bug into the undeclared arm — this asserts it does NOT.
|
|
709
|
+
await expect(loadEclConfig('/repo')).rejects.toThrow(/Invalid configuration/);
|
|
710
|
+
});
|
|
711
|
+
it('returns the loaded config when present and valid', async () => {
|
|
712
|
+
const loaded = cfg(CROSTER);
|
|
713
|
+
utilsMock.resolveConfigPath.mockReturnValue('/repo/totem.config.ts');
|
|
714
|
+
utilsMock.loadConfig.mockResolvedValue(loaded);
|
|
715
|
+
await expect(loadEclConfig('/repo')).resolves.toBe(loaded);
|
|
716
|
+
});
|
|
561
717
|
});
|
|
562
718
|
// ─── Combined exit-code precedence (codex panel) ────────
|
|
563
719
|
describe('resolveEclGcExitCode — combined prune+compact precedence', () => {
|