@djolex999/vir-cli 0.12.0 → 0.14.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.
@@ -23,6 +23,10 @@ export function buildInitConfig(existing, a) {
23
23
  distillPdfs: existing?.distillPdfs,
24
24
  filterToolCalls: existing?.filterToolCalls,
25
25
  retrievalDiversity: existing?.retrievalDiversity,
26
+ projects: { ...existing?.projects, ...a.projects },
27
+ notifications: existing?.notifications,
28
+ workflowTranscripts: existing?.workflowTranscripts,
29
+ agentTranscripts: a.agentTranscripts ?? existing?.agentTranscripts,
26
30
  models: {
27
31
  classify: a.classifyModel,
28
32
  distill: a.distillModel,
@@ -1 +1 @@
1
- {"version":3,"file":"initConfig.js","sourceRoot":"","sources":["../../src/cli/initConfig.ts"],"names":[],"mappings":"AAiBA,iEAAiE;AACjE,0EAA0E;AAC1E,0EAA0E;AAC1E,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAC7B,QAAuB,EACvB,CAAc;IAEd,OAAO;QACL,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;QACtC,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,0EAA0E;QAC1E,4EAA4E;QAC5E,eAAe,EAAE,CAAC,CAAC,eAAe,IAAI,QAAQ,EAAE,eAAe;QAC/D,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS;QAC7C,YAAY,EAAE,QAAQ,EAAE,YAAY;QACpC,SAAS,EAAE,QAAQ,EAAE,SAAS;QAC9B,OAAO,EAAE,QAAQ,EAAE,OAAO;QAC1B,eAAe,EAAE,CAAC,CAAC,eAAe;QAClC,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,eAAe,EAAE,QAAQ,EAAE,eAAe;QAC1C,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,WAAW,EAAE,QAAQ,EAAE,WAAW;QAClC,eAAe,EAAE,QAAQ,EAAE,eAAe;QAC1C,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB;QAChD,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,CAAC,aAAa;YACzB,OAAO,EAAE,CAAC,CAAC,YAAY;YACvB,yEAAyE;YACzE,mEAAmE;YACnE,WAAW,EACT,QAAQ,EAAE,MAAM,EAAE,WAAW;gBAC7B,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW;oBACzB,CAAC,CAAC,2BAA2B;oBAC7B,CAAC,CAAC,kBAAkB,CAAC;YACzB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,IAAI,IAAI;gBAC5C,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBACxD,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"initConfig.js","sourceRoot":"","sources":["../../src/cli/initConfig.ts"],"names":[],"mappings":"AAuBA,iEAAiE;AACjE,0EAA0E;AAC1E,0EAA0E;AAC1E,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAC7B,QAAuB,EACvB,CAAc;IAEd,OAAO;QACL,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;QACtC,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,0EAA0E;QAC1E,4EAA4E;QAC5E,eAAe,EAAE,CAAC,CAAC,eAAe,IAAI,QAAQ,EAAE,eAAe;QAC/D,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS;QAC7C,YAAY,EAAE,QAAQ,EAAE,YAAY;QACpC,SAAS,EAAE,QAAQ,EAAE,SAAS;QAC9B,OAAO,EAAE,QAAQ,EAAE,OAAO;QAC1B,eAAe,EAAE,CAAC,CAAC,eAAe;QAClC,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,eAAe,EAAE,QAAQ,EAAE,eAAe;QAC1C,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,WAAW,EAAE,QAAQ,EAAE,WAAW;QAClC,eAAe,EAAE,QAAQ,EAAE,eAAe;QAC1C,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB;QAChD,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;QAClD,aAAa,EAAE,QAAQ,EAAE,aAAa;QACtC,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB;QAClD,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,IAAI,QAAQ,EAAE,gBAAgB;QAClE,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,CAAC,aAAa;YACzB,OAAO,EAAE,CAAC,CAAC,YAAY;YACvB,yEAAyE;YACzE,mEAAmE;YACnE,WAAW,EACT,QAAQ,EAAE,MAAM,EAAE,WAAW;gBAC7B,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW;oBACzB,CAAC,CAAC,2BAA2B;oBAC7B,CAAC,CAAC,kBAAkB,CAAC;YACzB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,IAAI,IAAI;gBAC5C,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBACxD,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,51 @@
1
+ import checkbox from "@inquirer/checkbox";
2
+ import { readFileSync } from "node:fs";
3
+ import { CONFIG_PATH, ConfigSchema, saveConfig, } from "../config.js";
4
+ import * as ui from "../ui/display.js";
5
+ export function buildProjectChoices(projects, existing) {
6
+ const nameWidth = Math.min(Math.max(...projects.map((p) => p.name.length), 8), 40);
7
+ // Default is over-capture: everything not explicitly excluded starts
8
+ // CHECKED. Transcripts prune at ~30 days, so an accidental enter that
9
+ // includes too much costs cents; one that excludes too much loses the
10
+ // sessions forever.
11
+ return projects.map((p) => ({
12
+ name: `${p.name.padEnd(nameWidth)} ${String(p.sessionCount).padStart(3)} session${p.sessionCount === 1 ? " " : "s"} ~${ui.formatUsd(p.estCost)}`,
13
+ value: p.name,
14
+ checked: existing[p.name] !== "exclude",
15
+ }));
16
+ }
17
+ // Selected = include, unselected = exclude. Every project SHOWN gets decided —
18
+ // that is the point of the triage pass; only projects never shown stay
19
+ // undecided.
20
+ export function decisionsFromSelection(projects, selected) {
21
+ const chosen = new Set(selected);
22
+ const out = {};
23
+ for (const p of projects) {
24
+ out[p.name] = chosen.has(p.name) ? "include" : "exclude";
25
+ }
26
+ return out;
27
+ }
28
+ export async function promptProjectDecisions(projects, existing, message) {
29
+ const selected = await checkbox({
30
+ message,
31
+ choices: buildProjectChoices(projects, existing),
32
+ pageSize: 15,
33
+ });
34
+ return decisionsFromSelection(projects, selected);
35
+ }
36
+ // Persist decisions by patching the RAW config file, not the loaded Config —
37
+ // loadConfig expands ~ paths, and writing those back would bake absolute
38
+ // paths into the user's config. Validated through the schema before saving.
39
+ export function persistProjectDecisions(decisions) {
40
+ const raw = JSON.parse(readFileSync(CONFIG_PATH, "utf8"));
41
+ raw.projects = {
42
+ ...(raw.projects ?? {}),
43
+ ...decisions,
44
+ };
45
+ const parsed = ConfigSchema.safeParse(raw);
46
+ if (!parsed.success) {
47
+ throw new Error(`refusing to save invalid config: ${parsed.error.issues[0]?.message ?? "validation failed"}`);
48
+ }
49
+ saveConfig(raw);
50
+ }
51
+ //# sourceMappingURL=projectSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectSelect.js","sourceRoot":"","sources":["../../src/cli/projectSelect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import { classifyTranscript, estimateSessionCost, groupByProject, readTranscriptHead, sniffAgentEntrypoint, } from "../pipeline/projects.js";
2
+ import { normalizeModelName } from "../pipeline/distiller.js";
3
+ import { scanSessions } from "../pipeline/scanner.js";
4
+ import { StateDb } from "../state/db.js";
5
+ // Aggregate the scan (every project seen on disk) against DB state into the
6
+ // `vir projects` table. Pure — the command wires in scan/DB/config and an
7
+ // estimator; classification per session:
8
+ // distilled row with content (skipped=0)
9
+ // pending recorded "project-pending", or unseen under an
10
+ // undecided project (it WILL pend on the next run)
11
+ // excluded recorded "project-excluded", or unseen under an
12
+ // excluded project
13
+ // neither heuristic-filter skips, errors, unseen under include
14
+ export function buildProjectsReport(groups, meta, decisions, estCost, nested) {
15
+ const byPath = new Map(meta.map((m) => [m.path, m]));
16
+ const rows = [];
17
+ for (const g of groups) {
18
+ const decision = decisions[g.name] ?? "undecided";
19
+ const nestedCounts = nested?.get(g.name);
20
+ const row = {
21
+ name: g.name,
22
+ decision,
23
+ sessions: g.sessions.length,
24
+ distilled: 0,
25
+ pending: 0,
26
+ excluded: 0,
27
+ estPendingCost: 0,
28
+ pendingPaths: [],
29
+ workflowSessions: nestedCounts?.workflow ?? 0,
30
+ sidechainSessions: nestedCounts?.sidechain ?? 0,
31
+ agentSessions: nestedCounts?.agent ?? 0,
32
+ };
33
+ for (const s of g.sessions) {
34
+ const m = byPath.get(s.path);
35
+ if (m && m.skipped === 0 && m.hasContent === 1) {
36
+ row.distilled += 1;
37
+ continue;
38
+ }
39
+ const reason = m?.skipReason ?? null;
40
+ if (reason === "project-pending" || (!m && decision === "undecided")) {
41
+ row.pending += 1;
42
+ row.estPendingCost += estCost(s.size);
43
+ row.pendingPaths.push(s.path);
44
+ }
45
+ else if (reason === "project-excluded" ||
46
+ (!m && decision === "exclude")) {
47
+ row.excluded += 1;
48
+ }
49
+ }
50
+ rows.push(row);
51
+ }
52
+ rows.sort((a, b) => b.estPendingCost - a.estPendingCost || a.name.localeCompare(b.name));
53
+ return rows;
54
+ }
55
+ // Side-effectful gather for `vir projects` and doctor: scan the transcripts
56
+ // dir, read DB status, apply config decisions. Opens its own StateDb unless
57
+ // one is passed in.
58
+ export function gatherProjectsReport(cfg) {
59
+ const found = scanSessions(cfg.claudeProjectsDir);
60
+ // Partition out nested agent-internal transcripts (unless the knob says
61
+ // include) so they annotate the table instead of counting as sessions.
62
+ let inScope = found;
63
+ const nested = new Map();
64
+ const filteredOut = [];
65
+ const catByPath = new Map();
66
+ if (cfg.workflowTranscripts !== "include") {
67
+ inScope = [];
68
+ for (const s of found) {
69
+ const cat = classifyTranscript(s.path, cfg.claudeProjectsDir);
70
+ if (cat === "session")
71
+ inScope.push(s);
72
+ else {
73
+ filteredOut.push(s);
74
+ catByPath.set(s.path, cat);
75
+ }
76
+ }
77
+ }
78
+ // Top-level SDK-launched agents — same partition, its own category/knob.
79
+ if (cfg.agentTranscripts !== "include") {
80
+ const stillHuman = [];
81
+ for (const s of inScope) {
82
+ if (sniffAgentEntrypoint(readTranscriptHead(s.path)) !== null) {
83
+ filteredOut.push(s);
84
+ catByPath.set(s.path, "agent");
85
+ }
86
+ else {
87
+ stillHuman.push(s);
88
+ }
89
+ }
90
+ inScope = stillHuman;
91
+ }
92
+ for (const g of groupByProject(filteredOut, cfg.claudeProjectsDir).values()) {
93
+ const counts = { workflow: 0, sidechain: 0, agent: 0 };
94
+ for (const s of g.sessions) {
95
+ counts[catByPath.get(s.path) ?? "sidechain"] += 1;
96
+ }
97
+ nested.set(g.name, counts);
98
+ }
99
+ const groups = [...groupByProject(inScope, cfg.claudeProjectsDir).values()];
100
+ // A project whose transcripts are ALL nested would vanish from the table —
101
+ // keep it visible with an empty session group.
102
+ for (const name of nested.keys()) {
103
+ if (!groups.some((g) => g.name === name)) {
104
+ groups.push({ name, sessions: [], totalBytes: 0 });
105
+ }
106
+ }
107
+ const db = new StateDb();
108
+ let meta;
109
+ try {
110
+ meta = db.listSessionMeta();
111
+ }
112
+ finally {
113
+ db.close();
114
+ }
115
+ const classifyId = normalizeModelName(cfg.models.classify, cfg.provider);
116
+ const distillId = normalizeModelName(cfg.models.distill, cfg.provider);
117
+ return buildProjectsReport(groups, meta, cfg.projects, (size) => estimateSessionCost(cfg.provider, classifyId, distillId, size, cfg.pricing, cfg.kieTopUpTier), nested);
118
+ }
119
+ //# sourceMappingURL=projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/cli/projects.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,12 @@ import { readCostLog } from "../cost/log.js";
6
6
  import { computeCost } from "../cost/pricing.js";
7
7
  import { Distiller, normalizeModelName, resolveModelShorthand } from "../pipeline/distiller.js";
8
8
  import { scoreSession } from "../pipeline/filter.js";
9
+ import { acquireLock, LockHeldError, releaseLock } from "../pipeline/lock.js";
9
10
  import { parseSession } from "../pipeline/parser.js";
10
11
  import { scrub } from "../pipeline/scrubber.js";
11
12
  import { filterToolCalls } from "../pipeline/toolCallFilter.js";
12
13
  import { VaultWriter } from "../pipeline/writer.js";
13
- import { deriveSessionId, StateDb } from "../state/db.js";
14
+ import { deriveSessionId, MAX_DISTILL_ATTEMPTS, StateDb, } from "../state/db.js";
14
15
  import * as ui from "../ui/display.js";
15
16
  // Cost-estimate constants must stay in sync with run.ts's dry-run estimator —
16
17
  // transcripts tokenize denser than the chars/4 house heuristic, ~chars/3, and
@@ -25,8 +26,15 @@ const DISTILL_OUTPUT_TOKENS = 4500;
25
26
  // Both shapes share one cause — pre-0.7.2 the Kie-200-with-body-error path
26
27
  // silently produced an empty distill string; errored runs landed as null.
27
28
  // Reconcile retries either.
28
- export function selectReconcileTargets(rows) {
29
- return rows.filter((r) => r.skipped === 0 && (r.content === null || r.content === ""));
29
+ // Mirror of StateDb.listReconcileTargets — keep the two predicates identical.
30
+ // Retry-exhausted rows (attempts >= MAX_DISTILL_ATTEMPTS) are excluded unless
31
+ // force: `vir reconcile --force` is the ONLY path that retries them.
32
+ export function selectReconcileTargets(rows, force = false) {
33
+ return rows.filter((r) => r.skipped === 0 &&
34
+ (r.content === null ||
35
+ r.content === "" ||
36
+ (r.error !== null && r.error !== "")) &&
37
+ (force || (r.attempts ?? 0) < MAX_DISTILL_ATTEMPTS));
30
38
  }
31
39
  // Build the per-target summary (cost estimate + collateral flag) without doing
32
40
  // any network work. Used by both the dry-run report and the live confirmation.
@@ -78,11 +86,27 @@ async function confirmReconcile(targetCount, totalCost) {
78
86
  return ans === "y" || ans === "yes";
79
87
  }
80
88
  export async function runReconcile(cfg, opts = {}) {
89
+ // Reconcile calls the distiller — same lock as vir run, except dry-run
90
+ // (read-only). Second acquirer exits with the holder's PID, no wait.
91
+ const needsLock = opts.dryRun !== true;
92
+ if (needsLock) {
93
+ try {
94
+ acquireLock();
95
+ }
96
+ catch (err) {
97
+ if (err instanceof LockHeldError) {
98
+ ui.row(ui.warn(ui.WARN_GLYPH), ui.text(err.message));
99
+ process.exitCode = 1;
100
+ return;
101
+ }
102
+ throw err;
103
+ }
104
+ }
81
105
  const db = new StateDb();
82
106
  try {
83
107
  ui.header(opts.dryRun ? "reconcile --dry-run" : "reconcile");
84
108
  ui.blank();
85
- const targets = db.listReconcileTargets();
109
+ const targets = selectReconcileTargets(db.listReconcileTargets(), opts.force === true);
86
110
  if (targets.length === 0) {
87
111
  ui.row(ui.success(ui.CHECK), ui.text("nothing to reconcile — every session has content"));
88
112
  return;
@@ -139,6 +163,20 @@ export async function runReconcile(cfg, opts = {}) {
139
163
  // are cached but we know their stored content is empty, so we want a
140
164
  // forced retry. Parse, score, distill, then update the row in place.
141
165
  try {
166
+ if (!existsSync(t.path)) {
167
+ if (t.content !== null && t.content !== "") {
168
+ // Source transcript is gone; the previous good distill is all
169
+ // that's left. Clear the stale error so the note resurfaces in
170
+ // listDistilled instead of staying hidden forever.
171
+ db.clearError(t.path);
172
+ recovered += 1;
173
+ ui.row(ui.success(ui.CHECK), ui.text("source gone — restored last good note"));
174
+ continue;
175
+ }
176
+ stillFailed += 1;
177
+ ui.row(ui.errorColor(ui.CROSS), ui.text("source transcript missing — nothing to recover"));
178
+ continue;
179
+ }
142
180
  const parsed = parseSession(t.path, t.hash);
143
181
  const score = scoreSession(parsed, cfg.filterThreshold);
144
182
  if (!score.passes) {
@@ -218,6 +256,8 @@ export async function runReconcile(cfg, opts = {}) {
218
256
  }
219
257
  finally {
220
258
  db.close();
259
+ if (needsLock)
260
+ releaseLock();
221
261
  }
222
262
  }
223
263
  //# sourceMappingURL=reconcile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../src/cli/reconcile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../src/cli/reconcile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,OAAO,GAER,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AASvC,8EAA8E;AAC9E,8EAA8E;AAC9E,uEAAuE;AACvE,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC,0DAA0D;AAC1D,uEAAuE;AACvE,sDAAsD;AACtD,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,4BAA4B;AAC5B,8EAA8E;AAC9E,8EAA8E;AAC9E,qEAAqE;AACrE,MAAM,UAAU,sBAAsB,CACpC,IAAkB,EAClB,KAAK,GAAG,KAAK;IAEb,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI;YACjB,CAAC,CAAC,OAAO,KAAK,EAAE;YAChB,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QACvC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,oBAAoB,CAAC,CACtD,CAAC;AACJ,CAAC;AASD,+EAA+E;AAC/E,+EAA+E;AAC/E,MAAM,UAAU,yBAAyB,CACvC,GAAW,EACX,OAAqB,EACrB,cAA2B,EAC3B,iBAA0B;IAM1B,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,kBAAkB,CACrC,qBAAqB,CAAC,iBAAiB,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAC9D,GAAG,CAAC,QAAQ,CACb,CAAC;IACF,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,MAAM,IAAI,GAA6B,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,aAAa;YAAE,eAAe,IAAI,CAAC,CAAC;QAExC,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,eAAe,CAClD,CAAC;gBACF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CACzB,KAAK,CACH,eAAe,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,QAAQ,CACrE,CAAC,MAAM,GAAG,eAAe,CAC3B,CAAC;gBACF,aAAa;oBACX,WAAW,CACT,GAAG,CAAC,QAAQ,EACZ,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,YAAY,CACjB;wBACD,WAAW,CACT,GAAG,CAAC,QAAQ,EACZ,YAAY,EACZ,SAAS,EACT,qBAAqB,EACrB,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,YAAY,CACjB,CAAC;YACN,CAAC;YAAC,MAAM,CAAC;gBACP,oEAAoE;YACtE,CAAC;QACH,CAAC;QACD,SAAS,IAAI,aAAa,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS;YACT,aAAa;YACb,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAC9C,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,WAAmB,EAAE,SAAiB;IACpE,EAAE,CAAC,GAAG,CACJ;QACE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;QAChE,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE;KAC9D,EACD,EAAE,KAAK,EAAE,yBAAyB,EAAE,CACrC,CAAC;IACF,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;SAC1D,IAAI,EAAE;SACN,WAAW,EAAE,CAAC;IACjB,EAAE,CAAC,KAAK,EAAE,CAAC;IACX,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAW,EACX,OAAyB,EAAE;IAE3B,uEAAuE;IACvE,qEAAqE;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IACvC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,WAAW,EAAE,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;gBACrD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC9D,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,MAAM,OAAO,GAAG,sBAAsB,CACpC,EAAE,CAAC,oBAAoB,EAAE,EACzB,IAAI,CAAC,KAAK,KAAK,IAAI,CACpB,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,EAAE,CAAC,GAAG,CACJ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EACpB,EAAE,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAC5D,CAAC;YACF,OAAO;QACT,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,mBAAmB;QACnB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;gBACnE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,yBAAyB,CACpE,GAAG,EACH,OAAO,EACP,cAAc,CACf,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5D,EAAE,CAAC,IAAI,CACL,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAChH,CAAC;QACJ,CAAC;QACD,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,EAAE,CAAC,OAAO,CAAC;YACT,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE;YACnD,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE;YACrE,uBAAuB,EAAE;gBACvB,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;aAC9C;SACF,CAAC,CAAC;QACH,EAAE,CAAC,OAAO,EAAE,CAAC;QAEb,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,EAAE,CAAC,IAAI,CACL,EAAE,CAAC,GAAG,CACJ,+FAA+F,CAChG,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,WAAW,IAAI,CAAC,CAAC;gBACjB,EAAE,CAAC,GAAG,CACJ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EACtB,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAC3D,CAAC;gBACF,SAAS;YACX,CAAC;YACD,sEAAsE;YACtE,qEAAqE;YACrE,qEAAqE;YACrE,IAAI,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;wBAC3C,8DAA8D;wBAC9D,+DAA+D;wBAC/D,mDAAmD;wBACnD,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACtB,SAAS,IAAI,CAAC,CAAC;wBACf,EAAE,CAAC,GAAG,CACJ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EACpB,EAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,CACjD,CAAC;wBACF,SAAS;oBACX,CAAC;oBACD,WAAW,IAAI,CAAC,CAAC;oBACjB,EAAE,CAAC,GAAG,CACJ,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EACvB,EAAE,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAC1D,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;gBACxD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAClB,8DAA8D;oBAC9D,2CAA2C;oBAC3C,EAAE,CAAC,MAAM,CAAC;wBACR,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,OAAO,EAAE,IAAI;wBACb,SAAS,EAAE,EAAE;qBACd,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACjD,MAAM,UAAU,GAAG,eAAe,CAChC,MAAM,CAAC,cAAc,EACrB,GAAG,CAAC,eAAe,CACpB,CAAC;gBACF,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,CAC9B,MAAM,EACN,eAAe,EACf,eAAe,CAChB,CAAC;gBACF,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,gEAAgE;oBAChE,EAAE,CAAC,MAAM,CAAC;wBACR,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,OAAO,EAAE,IAAI;wBACb,SAAS,EAAE,EAAE;qBACd,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACjD,EAAE,CAAC,MAAM,CAAC;oBACR,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,OAAO,EAAE,KAAK;oBACd,SAAS,EAAE,OAAO;oBAClB,OAAO,EAAE,IAAI,CAAC,QAAQ;oBACtB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ;oBACtC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK;oBAChC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO;oBACpC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU;oBAC1C,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAC;gBACH,SAAS,IAAI,CAAC,CAAC;gBACf,EAAE,CAAC,WAAW,CACZ,IAAI,CAAC,cAAc,CAAC,QAAQ,EAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAC1B,CAAC;gBACF,kEAAkE;gBAClE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,mEAAmE;gBACnE,mEAAmE;gBACnE,2BAA2B;gBAC3B,WAAW,IAAI,CAAC,CAAC;gBACjB,MAAM,GAAG,GAAI,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;gBAClD,EAAE,CAAC,GAAG,CACJ,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EACvB,EAAE,CAAC,IAAI,CAAC,iBAAiB,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CACzE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,EAAE,CAAC,OAAO,CAAC;YACT,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE;YAClD,cAAc,EAAE;gBACd,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;aAChD;YACD,cAAc,EAAE;gBACd,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;aAC1C;SACF,CAAC,CAAC;QACH,EAAE,CAAC,OAAO,EAAE,CAAC;QAEb,oEAAoE;QACpE,wEAAwE;QACxE,qEAAqE;QACrE,wEAAwE;QACxE,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,EAAE,CAAC,IAAI,CACL,KAAK,CAAC,GAAG,CACP,KAAK,WAAW,yFAAyF,CAC1G,CACF,CAAC;QACJ,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,SAAS;YAAE,WAAW,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC"}