@euqns/nudge-mcp 1.17.0 → 1.19.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/README.md CHANGED
@@ -75,6 +75,11 @@ cursor-agent login
75
75
  npx -y @euqns/nudge-mcp@latest agent
76
76
  ```
77
77
 
78
+ To have the companion come back on its own after a reboot, install it as a login
79
+ service from the same directory: `nudge-mcp service install agent --no-open`
80
+ (see *Survive reboots* below; `--no-open` keeps it from opening a browser tab at
81
+ every login — the pairing URL is in `~/.nudge/logs/com.nudge.agent.log`).
82
+
78
83
  The companion checks Codex, Claude Code, and Cursor independently, starts when at
79
84
  least one has a valid subscription login, and reports which CLIs are ready. One
80
85
  pairing exposes every ready provider, so each chat can choose its own agent and
@@ -173,6 +178,36 @@ upgrade in place) it stops claiming jobs, lets in-flight jobs finish on the code
173
178
  they started with, then restarts and re-registers under the same machine id.
174
179
  Opt out with `--no-auto-restart`.
175
180
 
181
+ ### Survive reboots: run it as a login service
182
+
183
+ A runner started from a terminal dies with that terminal, so a reboot takes the
184
+ machine off the board until someone relaunches it. Install it as a per-user
185
+ service instead — the OS starts it at login and brings it back after a crash:
186
+
187
+ ```bash
188
+ npm install -g @euqns/nudge-mcp # a stable install path; npx's cache may be pruned
189
+ cd /path/to/checkout
190
+ nudge-mcp service install runner --convex-url https://<deployment>.convex.cloud \
191
+ --token nrun_... --concurrency 8 --cwd . --save
192
+ nudge-mcp service status # installed / running (pid) per service
193
+ nudge-mcp service uninstall runner # stop it and remove the service
194
+ ```
195
+
196
+ Everything after `runner` is passed to the runner unchanged; a relative `--cwd`
197
+ is pinned to the directory you ran the command in. On macOS this writes
198
+ `~/Library/LaunchAgents/com.nudge.runner.plist` (mode 0600, since it can carry
199
+ the token) and loads it with `launchctl`; logs go to `~/.nudge/logs/`. On Linux
200
+ it writes `~/.config/systemd/user/nudge-runner.service` and enables it with
201
+ `systemctl --user`; run `loginctl enable-linger $USER` if it should start at
202
+ boot before anyone logs in. The service runs the same node binary and installed
203
+ copy you invoked, with your current `PATH` baked in so `git`, `gh`, `claude`,
204
+ `codex`, and `cursor-agent` resolve exactly as they do in your shell. Once a
205
+ runner is a service, the auto-restart above still handles rebuilds; the service
206
+ manager handles reboots. `--instance <name>` installs a second, separately
207
+ managed service. Add `--dry-run` to print the service file without installing.
208
+ Windows has no equivalent here yet — the command prints the Task Scheduler
209
+ action to use instead.
210
+
176
211
  During the work turn, `get_card`, `update_card`, `add_comment`, and subtask
177
212
  completion use the job's board-scoped runner token. They are limited to the
178
213
  active task and its direct subtasks, so task management does not depend on a
@@ -10,13 +10,11 @@ import { readFileSync } from "node:fs";
10
10
  import os from "node:os";
11
11
  import path from "node:path";
12
12
  import readline from "node:readline";
13
+ import { listClaudeModels, resolveClaudeCliPath } from "./claudeModels.js";
13
14
  import { claudeMcpConfig } from "./isolation.js";
14
15
  const CLI = process.platform === "win32" ? "claude.cmd" : "claude";
15
16
  // A wedged CLI must never hang runner startup — every startup probe is bounded.
16
17
  const PROBE_TIMEOUT_MS = 10_000;
17
- // Aliases `claude --model` accepts. Reported so the board's model picker can
18
- // offer what this machine actually runs instead of a hard-coded frontend list.
19
- const CLAUDE_MODELS = ["opus", "sonnet", "haiku"];
20
18
  // Is this machine signed in to Claude Code?
21
19
  //
22
20
  // `claude --version` answers "installed", not "usable" — an unauthenticated CLI
@@ -126,7 +124,10 @@ function describeEvent(event) {
126
124
  const type = event.type;
127
125
  if (type === "system" && event.subtype === "init") {
128
126
  const cwd = typeof event.cwd === "string" ? event.cwd : "";
129
- return `Claude Code session started in ${cwd}`;
127
+ // The CLI resolves the alias before the first turn, so this is the one
128
+ // place the log can name the model that is actually about to run.
129
+ const model = typeof event.model === "string" ? ` on ${event.model}` : "";
130
+ return `Claude Code session started${model} in ${cwd}`;
130
131
  }
131
132
  if (type === "assistant" || type === "user") {
132
133
  const message = event.message;
@@ -199,13 +200,15 @@ export class ClaudeEngine {
199
200
  capabilities: { version: version || undefined, authenticated: false },
200
201
  };
201
202
  }
203
+ const cliPath = resolveClaudeCliPath(CLI);
204
+ const models = listClaudeModels(cliPath);
202
205
  return {
203
206
  available: true,
204
207
  detail: version,
205
208
  capabilities: {
206
209
  version: version || undefined,
207
210
  authenticated: true,
208
- models: [...CLAUDE_MODELS],
211
+ models,
209
212
  modes: ["default", "plan", "bypassPermissions"],
210
213
  resume: helpText.includes("--resume"),
211
214
  },
@@ -239,6 +242,11 @@ export class ClaudeEngine {
239
242
  if (options.threadId)
240
243
  args.push("--resume", options.threadId);
241
244
  let result = null;
245
+ // What the CLI resolved `--model` to. An alias ("fable") and the empty
246
+ // "agent default" both only become a real model name here, so this is what
247
+ // the card has to show — reporting the request back would just echo the
248
+ // question.
249
+ let resolvedModel;
242
250
  const { stderr, code } = await runClaude(args, {
243
251
  prompt: options.prompt,
244
252
  cwd: options.cwd,
@@ -259,10 +267,13 @@ export class ClaudeEngine {
259
267
  // The init event carries the session id at the START of the turn —
260
268
  // surface it immediately so an aborted turn (steer) stays resumable.
261
269
  // The terminal result event never arrives on an abort.
262
- if (event.type === "system" &&
263
- event.subtype === "init" &&
264
- typeof event.session_id === "string") {
265
- options.onThreadId?.(event.session_id);
270
+ if (event.type === "system" && event.subtype === "init") {
271
+ if (typeof event.session_id === "string") {
272
+ options.onThreadId?.(event.session_id);
273
+ }
274
+ if (typeof event.model === "string" && event.model) {
275
+ resolvedModel = event.model;
276
+ }
266
277
  }
267
278
  const text = describeEvent(event);
268
279
  if (text)
@@ -281,6 +292,7 @@ export class ClaudeEngine {
281
292
  return {
282
293
  summary: typeof final.result === "string" ? final.result : "",
283
294
  threadId: final.session_id,
295
+ resolvedModel,
284
296
  usage,
285
297
  costUsd: final.total_cost_usd,
286
298
  // Claude Code computes the figure itself, so this is measured, not modelled.
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/engines/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/engines/claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import fs from "node:fs";
3
+ import os from "node:os";
4
+ import path from "node:path";
5
+ export const CLAUDE_ALIASES = ["fable", "opus", "sonnet", "haiku"];
6
+ const PINNED_ID = /^claude-(?:fable|opus|sonnet|haiku)-[a-z0-9][a-z0-9.-]*$/i;
7
+ export function isClaudePinnedModelId(id) {
8
+ if (!PINNED_ID.test(id))
9
+ return false;
10
+ if (/\d{6,}/.test(id))
11
+ return false;
12
+ if (/-v\d+$/i.test(id))
13
+ return false;
14
+ if (id.length > 40)
15
+ return false;
16
+ for (const part of id.split("-").slice(2)) {
17
+ if (/^\d+$/.test(part) && Number(part) >= 20)
18
+ return false;
19
+ }
20
+ return true;
21
+ }
22
+ export function parseClaudeModelIds(text) {
23
+ const found = [];
24
+ const re = /\bclaude-(?:fable|opus|sonnet|haiku)(?:-[a-z0-9][a-z0-9.-]*)?\b/gi;
25
+ for (const match of text.matchAll(re)) {
26
+ const id = match[0].toLowerCase();
27
+ if (!isClaudePinnedModelId(id))
28
+ continue;
29
+ if (!found.includes(id))
30
+ found.push(id);
31
+ }
32
+ return found.sort();
33
+ }
34
+ function extractModelIdsFromCatalog(value) {
35
+ const ids = [];
36
+ const visit = (node) => {
37
+ if (typeof node === "string") {
38
+ const id = node.replace(/\[1m\]$/i, "").trim().toLowerCase();
39
+ if (isClaudePinnedModelId(id) && !ids.includes(id))
40
+ ids.push(id);
41
+ return;
42
+ }
43
+ if (!node || typeof node !== "object")
44
+ return;
45
+ if (Array.isArray(node)) {
46
+ for (const item of node)
47
+ visit(item);
48
+ return;
49
+ }
50
+ const record = node;
51
+ for (const key of ["model", "id", "value", "modelId"]) {
52
+ if (key in record)
53
+ visit(record[key]);
54
+ }
55
+ for (const child of Object.values(record))
56
+ visit(child);
57
+ };
58
+ visit(value);
59
+ return ids;
60
+ }
61
+ function catalogCacheDir(homeDir) {
62
+ const home = homeDir ?? process.env.HOME ?? process.env.USERPROFILE ?? os.homedir();
63
+ return path.join(home, ".claude", "cache", "model-catalog");
64
+ }
65
+ function readCatalogCache(homeDir) {
66
+ const base = catalogCacheDir(homeDir);
67
+ for (const file of ["published-floor.json", "masked-ids.json"]) {
68
+ try {
69
+ const parsed = JSON.parse(fs.readFileSync(path.join(base, file), "utf8"));
70
+ const ids = extractModelIdsFromCatalog(parsed);
71
+ if (ids.length)
72
+ return ids;
73
+ }
74
+ catch {
75
+ // Missing or unreadable — try the next file.
76
+ }
77
+ }
78
+ return [];
79
+ }
80
+ function discoverFromBinary(cliPath) {
81
+ const probe = spawnSync("strings", [cliPath], {
82
+ encoding: "utf8",
83
+ stdio: ["ignore", "pipe", "pipe"],
84
+ timeout: 10_000,
85
+ });
86
+ if (!probe.error && probe.status === 0) {
87
+ return parseClaudeModelIds(probe.stdout ?? "");
88
+ }
89
+ try {
90
+ return parseClaudeModelIds(fs.readFileSync(cliPath).toString("latin1"));
91
+ }
92
+ catch {
93
+ return [];
94
+ }
95
+ }
96
+ export function resolveClaudeCliPath(cli) {
97
+ try {
98
+ const which = spawnSync(process.platform === "win32" ? "where" : "which", [cli], {
99
+ encoding: "utf8",
100
+ stdio: ["ignore", "pipe", "pipe"],
101
+ timeout: 5_000,
102
+ });
103
+ const candidate = (which.stdout ?? "").trim().split(/\r?\n/)[0]?.trim();
104
+ if (!candidate)
105
+ return undefined;
106
+ return fs.realpathSync(candidate);
107
+ }
108
+ catch {
109
+ return undefined;
110
+ }
111
+ }
112
+ export function listClaudeModels(cliPath, homeDir) {
113
+ const pinned = new Set();
114
+ for (const id of readCatalogCache(homeDir))
115
+ pinned.add(id);
116
+ if (cliPath) {
117
+ for (const id of discoverFromBinary(cliPath))
118
+ pinned.add(id);
119
+ }
120
+ return [...CLAUDE_ALIASES, ...[...pinned].sort()];
121
+ }
122
+ //# sourceMappingURL=claudeModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudeModels.js","sourceRoot":"","sources":["../../src/engines/claudeModels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import assert from "node:assert/strict";
2
+ import fs from "node:fs";
3
+ import os from "node:os";
4
+ import path from "node:path";
5
+ import test from "node:test";
6
+ import { isClaudePinnedModelId, listClaudeModels, parseClaudeModelIds, resolveClaudeCliPath, } from "./claudeModels.js";
7
+ const FIXTURE = `
8
+ fable opus sonnet haiku
9
+ claude-fable-5-1 claude-fable-5 claude-fable-5-mythos-5
10
+ claude-opus-5 claude-sonnet-5 claude-haiku-4-5
11
+ claude-sonnet-4-5-20250929 claude-opus-4-5-20251101-v1
12
+ `;
13
+ test("parseClaudeModelIds keeps short pinned names and drops dated API ids", () => {
14
+ assert.deepEqual(parseClaudeModelIds(FIXTURE), [
15
+ "claude-fable-5",
16
+ "claude-fable-5-1",
17
+ "claude-fable-5-mythos-5",
18
+ "claude-haiku-4-5",
19
+ "claude-opus-5",
20
+ "claude-sonnet-5",
21
+ ]);
22
+ });
23
+ test("isClaudePinnedModelId rejects bare family stems and aliases", () => {
24
+ assert.equal(isClaudePinnedModelId("fable"), false);
25
+ assert.equal(isClaudePinnedModelId("claude-fable"), false);
26
+ assert.equal(isClaudePinnedModelId("claude-fable-5-1"), true);
27
+ });
28
+ test("listClaudeModels always leads with family aliases", () => {
29
+ const models = listClaudeModels();
30
+ assert.deepEqual(models.slice(0, 4), ["fable", "opus", "sonnet", "haiku"]);
31
+ });
32
+ test("listClaudeModels discovers pinned ids from the installed CLI binary", () => {
33
+ const cliPath = resolveClaudeCliPath(process.platform === "win32" ? "claude.cmd" : "claude");
34
+ if (!cliPath)
35
+ return;
36
+ const models = listClaudeModels(cliPath);
37
+ assert.ok(models.includes("fable"));
38
+ assert.ok(models.some((id) => id.startsWith("claude-")), "installed Claude should report at least one pinned model id");
39
+ });
40
+ test("listClaudeModels reads pinned ids from a catalog cache file", () => {
41
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), "claude-catalog-"));
42
+ const catalogDir = path.join(dir, ".claude", "cache", "model-catalog");
43
+ fs.mkdirSync(catalogDir, { recursive: true });
44
+ fs.writeFileSync(path.join(catalogDir, "published-floor.json"), JSON.stringify({
45
+ models: [{ model: "claude-fable-9" }, { model: "claude-opus-6" }],
46
+ }));
47
+ const home = process.env.HOME;
48
+ process.env.HOME = dir;
49
+ try {
50
+ assert.deepEqual(listClaudeModels(undefined, dir), [
51
+ "fable",
52
+ "opus",
53
+ "sonnet",
54
+ "haiku",
55
+ "claude-fable-9",
56
+ "claude-opus-6",
57
+ ]);
58
+ }
59
+ finally {
60
+ if (home === undefined)
61
+ delete process.env.HOME;
62
+ else
63
+ process.env.HOME = home;
64
+ fs.rmSync(dir, { recursive: true, force: true });
65
+ }
66
+ });
67
+ //# sourceMappingURL=claudeModels.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudeModels.test.js","sourceRoot":"","sources":["../../src/engines/claudeModels.test.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -25,6 +25,7 @@ import { runnerCardCall } from "./runner-card-tools.js";
25
25
  import { NUDGE_MCP_VERSION } from "./version.js";
26
26
  import { structuredResultForTool } from "./entity-results.js";
27
27
  import { runSetup } from "./setup.js";
28
+ import { runService } from "./service.js";
28
29
  import { listCiWorkflows, runCiWorkflow, } from "./ci-workflows.js";
29
30
  // ---- entrypoint dispatch --------------------------------------------------
30
31
  const subcommand = process.argv[2];
@@ -50,6 +51,18 @@ if (subcommand === "setup") {
50
51
  process.exit(1);
51
52
  }
52
53
  }
54
+ // Install/remove the runner or agent as a login service (launchd / systemd
55
+ // --user) so a reboot brings it back without anyone reopening a terminal.
56
+ if (subcommand === "service") {
57
+ try {
58
+ await runService(process.argv.slice(3));
59
+ process.exit(0);
60
+ }
61
+ catch (err) {
62
+ console.error("[nudge-mcp service] failed:", err instanceof Error ? err.message : err);
63
+ process.exit(1);
64
+ }
65
+ }
53
66
  // The companion's browser pairing embeds a bearer token. Minted in the
54
67
  // supervisor and handed down through env, it stays the same across respawns —
55
68
  // which is what lets an already-paired browser keep talking to a restarted
@@ -99,6 +112,11 @@ if (subcommand === "--help" || subcommand === "-h" || subcommand === "help") {
99
112
  " nudge-mcp agent Start Nudge Agent with every signed-in coding CLI.",
100
113
  " nudge-mcp codex [options] Alias for agent with Codex preferred.",
101
114
  " nudge-mcp runner [options] Start a self-hosted runner for a board.",
115
+ " nudge-mcp service install runner|agent [options]",
116
+ " Start the runner/agent at login and keep it alive",
117
+ " (launchd on macOS, systemd --user on Linux).",
118
+ " nudge-mcp service uninstall runner|agent Remove that login service.",
119
+ " nudge-mcp service status Show which login services are installed/running.",
102
120
  " nudge-mcp Start the MCP stdio server (default).",
103
121
  "",
104
122
  "Runner options:",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,2EAA2E;AAC3E,yEAAyE;AACzE,kBAAkB;AAClB,EAAE;AACF,SAAS;AACT,sFAAsF;AACtF,uFAAuF;AACvF,EAAE;AACF,0EAA0E;AAC1E,kDAAkD;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAA0B,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EACL,eAAe,EACf,aAAa,GAEd,MAAM,mBAAmB,CAAC;AAE3B,8EAA8E;AAE9E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEnC,4EAA4E;AAC5E,8EAA8E;AAC9E,0DAA0D;AAC1D,KAAK,UAAU,gBAAgB,CAC7B,IAAY,EACZ,QAAiC;IAEjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,mBAAmB,CAAC,CAAC;IAC/D,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1D,MAAM,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,8EAA8E;AAC9E,2EAA2E;AAC3E,aAAa;AACb,MAAM,YAAY,GAAG,GAA2B,EAAE,CAAC,CAAC;IAClD,qBAAqB,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;CAC7D,CAAC,CAAC;AAEH,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,2BAA2B,EAC3B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACzC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,2BAA2B,EAC3B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACzC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,4BAA4B,EAC5B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACzC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;IAC5E,OAAO,CAAC,GAAG,CACT;QACE,kBAAkB;QAClB,EAAE;QACF,WAAW;QACX,uEAAuE;QACvE,wFAAwF;QACxF,2EAA2E;QAC3E,6EAA6E;QAC7E,2EAA2E;QAC3E,EAAE;QACF,iBAAiB;QACjB,4DAA4D;QAC5D,kEAAkE;QAClE,qEAAqE;QACrE,8DAA8D;QAC9D,uEAAuE;QACvE,2EAA2E;QAC3E,+DAA+D;QAC/D,mFAAmF;QACnF,EAAE;QACF,eAAe;QACf,6EAA6E;QAC7E,4EAA4E;QAC5E,EAAE;QACF,uBAAuB,gBAAgB,eAAe;QACtD,kEAAkE;KACnE,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,8EAA8E;AAE9E,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;AACvC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM,EAAE,SAAS,CAAC;AACrE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,MAAM,EAAE,KAAK,CAAC;AAEvD,8EAA8E;AAE9E,+EAA+E;AAC/E,yEAAyE;AACzE,6EAA6E;AAC7E,uCAAuC;AACvC,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,0EAA0E;AAC1E,yEAAyE;AACzE,kCAAkC;AAClC,MAAM,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,gBAAgB;IAC5B,OAAO,CAAC,GAAG,CAAC,eAAe;IAC3B,OAAO,CAAC,GAAG,CAAC,kBAAkB;IAC9B,OAAO,CAAC,GAAG,CAAC,uBAAuB;IACjC,CAAC,CAAC;QACE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;QACnC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;QACrC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;QACrC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;QAC9C,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;QACvC,MAAM,EAAE,SAAS;KAClB;IACH,CAAC,CAAC,IAAI,CAAC;AAEX,2EAA2E;AAC3E,6EAA6E;AAC7E,6DAA6D;AAC7D,MAAM,aAAa,GACjB,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;IACzE,CAAC,CAAC;QACE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QACnC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;QACjC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,SAAS;KACpE;IACH,CAAC,CAAC,IAAI,CAAC;AAEX,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,uDAAuD;AACvD,MAAM,0BAA0B,GAC9B,UAAU,KAAK,IAAI;IACnB,UAAU,KAAK,SAAS;IACxB,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC;AAElE,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACtD,CAAC;AAED,gFAAgF;AAChF,+EAA+E;AAC/E,sEAAsE;AACtE,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3C,OAAO,CAAC,KAAK,CACX;QACE,mCAAmC;QACnC,EAAE;QACF,qEAAqE;QACrE,6DAA6D;KAC9D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAEpE,+EAA+E;AAC/E,8EAA8E;AAC9E,+CAA+C;AAC/C,KAAK,UAAU,MAAM,CAAI,IAAY,EAAE,IAA6B;IAClE,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1D,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,UAAW,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAChC,MAAM,GAAG,GAAG,qBAAqB,CAC/B,UAAU,CAAC,YAAY,CACxB,CAAC;gBACF,OAAO,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,GAAG,GAAG,qBAAqB,CAC/B,UAAU,CAAC,YAAY,CACxB,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;YACjE,wEAAwE;YACxE,uEAAuE;YACvE,8CAA8C;YAC9C,IAAI,IAAI,KAAK,gBAAgB,IAAI,UAAU,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC1E,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;YAC7B,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,YAAY,GAAG,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,oEAAoE;YAClE,qDAAqD,CACxD,CAAC;IACJ,CAAC;IACD,IAAI,0BAA0B,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,sFAAsF;YACpF,GAAG,UAAU,mCAAmC,UAAU,EAAE,SAAS,kBAAkB;YACvF,mFAAmF;YACnF,uFAAuF;YACvF,gCAAgC;YAChC,iDAAiD,CACpD,CAAC;IACJ,CAAC;IACD,0EAA0E;IAC1E,wEAAwE;IACxE,qCAAqC;IACrC,MAAM,GAAG,GAAG,qBAAqB,CAAuC,IAAI,CAAC,CAAC;IAC9E,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;YAC9B,KAAK,EAAE,KAAK;YACZ,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,YAAY,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,6EAA6E;AAE7E,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAC/E,qEAAqE;AACrE,6EAA6E;AAC7E,iBAAiB;AACjB,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFAwE4D,CAAC;AAElF,MAAM,mBAAmB,GACvB,UAAU,EAAE,IAAI,KAAK,QAAQ;IAC3B,CAAC,CAAC,GAAG,YAAY,8jBAA8jB;IAC/kB,CAAC,CAAC,YAAY,CAAC;AAEnB,8EAA8E;AAE9E,0EAA0E;AAC1E,8EAA8E;AAC9E,4EAA4E;AAC5E,8BAA8B;AAE9B,MAAM,OAAO,GAAG;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KACjE,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACnE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KAC1E,CAAC;IACF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACjE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KACxC,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,6JAA6J,CAC9J;QACH,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,uIAAuI,CACxI;KACJ,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;aACtC,QAAQ,EAAE;aACV,QAAQ,CACP,qDAAqD,CACtD;QACH,SAAS,EAAE,CAAC;aACT,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;aACtC,QAAQ,EAAE;aACV,QAAQ,CACP,uDAAuD,CACxD;QACH,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,2EAA2E,CAC5E;QACH,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACxC,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;aACjD,QAAQ,EAAE;QACb,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,oCAAoC,CAAC;QACjD,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,0PAA0P,CAC3P;KACJ,CAAC;IACF,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,yEAAyE,CAC1E;KACJ,CAAC;IACF,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;KACvB,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KAChD,CAAC;IACF,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,+CAA+C,CAAC;KAC7D,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAC/C,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACnD,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAC1B,4EAA4E,CAC7E;KACF,CAAC;IACF,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC;QACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,CACP,2DAA2D,CAC5D;QACH,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aAC1B,QAAQ,CAAC,4DAA4D,CAAC;KAC1E,CAAC;IACF,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC;QACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KACvD,CAAC;IACF,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAChD,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;QACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KACtF,CAAC;IACF,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,+EAA+E,CAAC;KAC7F,CAAC;IACF,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,+EAA+E,CAAC;KAC7F,CAAC;IACF,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,8GAA8G,CAC/G;QACH,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC;YACJ,QAAQ;YACR,OAAO;YACP,SAAS;YACT,QAAQ;YACR,UAAU;YACV,MAAM;YACN,OAAO;YACP,SAAS;YACT,MAAM;YACN,KAAK;SACN,CAAC;aACD,QAAQ,CACP,gQAAgQ,CACjQ;QACH,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;QAChG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACvD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACjF,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QAClF,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,6EAA6E,CAAC;QAC1F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACnE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC5D,KAAK,EAAE,CAAC;aACL,IAAI,CAAC;YACJ,MAAM;YACN,SAAS;YACT,SAAS;YACT,OAAO;YACP,MAAM;YACN,UAAU;YACV,SAAS;YACT,eAAe;YACf,UAAU;SACX,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CAAC,6BAA6B,CAAC;QAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACzF,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wDAAwD,CAAC;QACrE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,+IAA+I,CAChJ;QACH,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wDAAwD,CAAC;QACrE,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,8DAA8D,CAAC;QAC3E,YAAY,EAAE,CAAC;aACZ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aAC1B,QAAQ,EAAE;aACV,QAAQ,CACP,yJAAyJ,CAC1J;QACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACzE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACpE,YAAY,EAAE,CAAC;aACZ,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;aACpF,QAAQ,EAAE;aACV,QAAQ,CAAC,kEAAkE,CAAC;QAC/E,iBAAiB,EAAE,CAAC;aACjB,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,wDAAwD,CAAC;QACrE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC5D,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;aACjC,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,UAAU,EAAE,CAAC;aACV,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;aACjC,QAAQ,EAAE;aACV,QAAQ,CAAC,uDAAuD,CAAC;QACpE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACpD,CAAC;IACF,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC;QACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,gHAAgH,CACjH;QACH,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACvD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACvD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;QACjG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACnE,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,CACP,yGAAyG,CAC1G;QACH,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,oJAAoJ,CACrJ;KACJ,CAAC;IACF,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC;QACzB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,gEAAgE,CAAC;QAC7E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aACvB,QAAQ,EAAE;aACV,QAAQ,CAAC,+DAA+D,CAAC;KAC7E,CAAC;IACF,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;QACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;KACvE,CAAC;IACF,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACxB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACxB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACxB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,KAAK,EAAE,CAAC;aACL,IAAI,CAAC;YACJ,MAAM;YACN,SAAS;YACT,SAAS;YACT,OAAO;YACP,MAAM;YACN,UAAU;YACV,SAAS;YACT,eAAe;YACf,UAAU;SACX,CAAC;aACD,QAAQ,EAAE;QACb,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,iEAAiE,CAAC;QAC9E,YAAY,EAAE,CAAC;aACZ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aAC1B,QAAQ,EAAE;aACV,QAAQ,CACP,uFAAuF,CACxF;QACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,YAAY,EAAE,CAAC;aACZ,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;aACpF,QAAQ,EAAE;QACb,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;QACzD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC1D,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;IACF,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACpD,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;QACzE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;QACvE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QACjF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,KAAK,EAAE,CAAC;aACL,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aACvB,QAAQ,EAAE;aACV,QAAQ,CAAC,0DAA0D,CAAC;QACvE,OAAO,EAAE,CAAC;aACP,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;aACpC,QAAQ,EAAE;aACV,QAAQ,CAAC,0FAA0F,CAAC;QACvG,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;aACnC,QAAQ,EAAE;aACV,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;aACzE,QAAQ,EAAE;aACV,QAAQ,CAAC,yHAAyH,CAAC;QACtI,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;aACzE,QAAQ,EAAE;aACV,QAAQ,CAAC,uFAAuF,CAAC;QACpG,SAAS,EAAE,CAAC;aACT,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;aACjD,QAAQ,EAAE;aACV,QAAQ,CAAC,kFAAkF,CAAC;KAChG,CAAC;IACF,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,uDAAuD,CAAC;QACpE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;QACzE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;QACvE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC3C,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC1D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;QACtD,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;aACzE,QAAQ,EAAE;QACb,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;aACzE,QAAQ,EAAE;QACb,SAAS,EAAE,CAAC;aACT,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;aACjD,QAAQ,EAAE;aACV,QAAQ,CAAC,oEAAoE,CAAC;KAClF,CAAC;IACF,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACpD,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC3D,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,2FAA2F,CAC5F;QACH,GAAG,EAAE,CAAC;aACH,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4HAA4H,CAC7H;QACH,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,uKAAuK,CACxK;QACH,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,wHAAwH,CACzH;KACJ,CAAC;CACH,CAAC;AAIF,MAAM,wBAAwB,GAAsC;IAClE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE;QACzD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;oBAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACtB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACzB;gBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;gBACpD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC;IAC1C,oBAAoB,EAAE,KAAK;CAC5B,CAAC;AAEF,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAW;IAC9C,cAAc;IACd,aAAa;IACb,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,KAAK,GAA8D;IACvE,MAAM,EAAE;QACN,WAAW,EACT,8FAA8F;QAChG,MAAM,EAAE,YAAY;KACrB;IACD,WAAW,EAAE;QACX,WAAW,EACT,qFAAqF;QACvF,MAAM,EAAE,gBAAgB;KACzB;IACD,SAAS,EAAE;QACT,WAAW,EACT,sFAAsF;QACxF,MAAM,EAAE,cAAc;KACvB;IACD,YAAY,EAAE;QACZ,WAAW,EACT,4KAA4K;QAC9K,MAAM,EAAE,iBAAiB;KAC1B;IACD,UAAU,EAAE;QACV,WAAW,EAAE,2CAA2C;QACxD,MAAM,EAAE,eAAe;KACxB;IACD,WAAW,EAAE;QACX,WAAW,EAAE,yDAAyD;QACtE,MAAM,EAAE,gBAAgB;KACzB;IACD,UAAU,EAAE;QACV,WAAW,EACT,oGAAoG;QACtG,MAAM,EAAE,eAAe;KACxB;IACD,QAAQ,EAAE;QACR,WAAW,EACT,2FAA2F;QAC7F,MAAM,EAAE,aAAa;KACtB;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,4DAA4D;QACzE,MAAM,EAAE,aAAa;KACtB;IACD,WAAW,EAAE;QACX,WAAW,EACT,+bAA+b;QACjc,MAAM,EAAE,gBAAgB;KACzB;IACD,WAAW,EAAE;QACX,WAAW,EACT,whBAAwhB;QAC1hB,MAAM,EAAE,gBAAgB;KACzB;IACD,SAAS,EAAE;QACT,WAAW,EACT,0MAA0M;QAC5M,MAAM,EAAE,cAAc;KACvB;IACD,kBAAkB,EAAE;QAClB,WAAW,EACT,qTAAqT;QACvT,MAAM,EAAE,sBAAsB;KAC/B;IACD,WAAW,EAAE;QACX,WAAW,EACT,uFAAuF;QACzF,MAAM,EAAE,gBAAgB;KACzB;IACD,YAAY,EAAE;QACZ,WAAW,EACT,2WAA2W;QAC7W,MAAM,EAAE,iBAAiB;KAC1B;IACD,aAAa,EAAE;QACb,WAAW,EACT,2GAA2G;QAC7G,MAAM,EAAE,kBAAkB;KAC3B;IACD,WAAW,EAAE;QACX,WAAW,EACT,wQAAwQ;QAC1Q,MAAM,EAAE,gBAAgB;KACzB;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,yDAAyD;QACtE,MAAM,EAAE,iBAAiB;KAC1B;IACD,kBAAkB,EAAE;QAClB,WAAW,EACT,kGAAkG;QACpG,MAAM,EAAE,qBAAqB;KAC9B;IACD,qBAAqB,EAAE;QACrB,WAAW,EACT,4IAA4I;QAC9I,MAAM,EAAE,yBAAyB;KAClC;IACD,gBAAgB,EAAE;QAChB,WAAW,EACT,oLAAoL;QACtL,MAAM,EAAE,oBAAoB;KAC7B;IACD,gBAAgB,EAAE;QAChB,WAAW,EACT,uGAAuG;QACzG,MAAM,EAAE,qBAAqB;KAC9B;IACD,aAAa,EAAE;QACb,WAAW,EACT,mLAAmL;QACrL,MAAM,EAAE,kBAAkB;KAC3B;IACD,aAAa,EAAE;QACb,WAAW,EACT,qKAAqK;QACvK,MAAM,EAAE,kBAAkB;KAC3B;IACD,iBAAiB,EAAE;QACjB,WAAW,EACT,6PAA6P;QAC/P,MAAM,EAAE,qBAAqB;KAC9B;IACD,iBAAiB,EAAE;QACjB,WAAW,EACT,mLAAmL;QACrL,MAAM,EAAE,qBAAqB;KAC9B;IACD,kBAAkB,EAAE;QAClB,WAAW,EACT,yZAAyZ;QAC3Z,MAAM,EAAE,sBAAsB;KAC/B;IACD,gBAAgB,EAAE;QAChB,WAAW,EACT,8ZAA8Z;QACha,MAAM,EAAE,oBAAoB;KAC7B;IACD,gBAAgB,EAAE;QAChB,WAAW,EACT,iOAAiO;QACnO,MAAM,EAAE,oBAAoB;KAC7B;IACD,aAAa,EAAE;QACb,WAAW,EACT,mMAAmM;QACrM,MAAM,EAAE,iBAAiB;KAC1B;IACD,kBAAkB,EAAE;QAClB,WAAW,EACT,6RAA6R;QAC/R,MAAM,EAAE,sBAAsB;KAC/B;IACD,kBAAkB,EAAE;QAClB,WAAW,EACT,yDAAyD;QAC3D,MAAM,EAAE,sBAAsB;KAC/B;IACD,kBAAkB,EAAE;QAClB,WAAW,EACT,+WAA+W;QACjX,MAAM,EAAE,sBAAsB;KAC/B;IACD,kBAAkB,EAAE;QAClB,WAAW,EACT,gOAAgO;QAClO,MAAM,EAAE,sBAAsB;KAC/B;IACD,kBAAkB,EAAE;QAClB,WAAW,EAAE,yCAAyC;QACtD,MAAM,EAAE,sBAAsB;KAC/B;IACD,YAAY,EAAE;QACZ,WAAW,EACT,0PAA0P;YAC1P,gLAAgL;YAChL,sKAAsK;QACxK,MAAM,EAAE,iBAAiB;KAC1B;CACF,CAAC;AAEF,6EAA6E;AAC7E,0EAA0E;AAC1E,2EAA2E;AAC3E,MAAM,QAAQ,GAAuD;IACnE,MAAM,EAAE,MAAM;IACd,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,OAAO;IACrB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,OAAO;IACpB,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,OAAO;IAClB,kBAAkB,EAAE,OAAO;IAC3B,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,OAAO;IACrB,aAAa,EAAE,MAAM;IACrB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,MAAM;IACpB,kBAAkB,EAAE,MAAM;IAC1B,qBAAqB,EAAE,MAAM;IAC7B,gBAAgB,EAAE,aAAa;IAC/B,gBAAgB,EAAE,MAAM;IACxB,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,OAAO;IACtB,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,MAAM;IACzB,kBAAkB,EAAE,OAAO;IAC3B,gBAAgB,EAAE,OAAO;IACzB,gBAAgB,EAAE,aAAa;IAC/B,aAAa,EAAE,MAAM;IACrB,kBAAkB,EAAE,aAAa;IACjC,kBAAkB,EAAE,aAAa;IACjC,kBAAkB,EAAE,OAAO;IAC3B,kBAAkB,EAAE,aAAa;IACjC,kBAAkB,EAAE,aAAa;IACjC,8EAA8E;IAC9E,YAAY,EAAE,OAAO;CACtB,CAAC;AAEF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAW;IAC7C,GAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;IACpF,aAAa;CACd,CAAC,CAAC;AAEH,8EAA8E;AAC9E,2EAA2E;AAC3E,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAE9E,iEAAiE;AACjE,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAC9E,sEAAsE;AACtE,wBAAwB;AACxB,EAAE;AACF,4EAA4E;AAC5E,oEAAoE;AAEpE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CACP,2IAA2I,CAC5I;IACH,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,6GAA6G,CAC9G;CACJ,CAAC,CAAC;AAEH,MAAM,qBAAqB,GACzB,4EAA4E;IAC5E,8EAA8E;IAC9E,gFAAgF;IAChF,kFAAkF;IAClF,mFAAmF;IACnF,mDAAmD;IACnD,+EAA+E;IAC/E,oFAAoF;IACpF,oFAAoF;IACpF,oEAAoE,CAAC;AAEvE,2EAA2E;AAC3E,6EAA6E;AAC7E,+CAA+C;AAC/C,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE3C,MAAM,0BAA0B,GAC9B,oFAAoF;IACpF,sFAAsF;IACtF,sFAAsF;IACtF,uFAAuF;IACvF,6DAA6D,CAAC;AAEhE,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC9C,MAAM,6BAA6B,GACjC,iFAAiF;IACjF,sFAAsF;IACtF,2FAA2F,CAAC;AAE9F,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,qFAAqF,CAAC;IAClG,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+EAA+E,CAAC;IAC5F,MAAM,EAAE,CAAC;SACN,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAClB,QAAQ,EAAE;SACV,QAAQ,CAAC,gFAAgF,CAAC;IAC7F,IAAI,EAAE,CAAC;SACJ,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,sEAAsE,CAAC;IACnF,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qMAAqM,CACtM;CACJ,CAAC,CAAC;AACH,MAAM,2BAA2B,GAC/B,yFAAyF;IACzF,sFAAsF;IACtF,4FAA4F;IAC5F,2FAA2F;IAC3F,uDAAuD;IACvD,0DAA0D,CAAC;AAE7D,KAAK,UAAU,aAAa,CAC1B,GAAmC;IAEnC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,QAAQ,CAC3B,qBAAqB,CAAa,uBAAuB,CAAC,EAC1D,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAC/D,CAA4B,CAAC;IAChC,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAOD,KAAK,UAAU,QAAQ,CACrB,GAAmC,EACnC,QAAgB,EAChB,OAA6B;IAE7B,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,qBAAqB,CAAa,IAAI,CAAC,CAAC;IAEvE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC3D,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK;YACL,QAAQ;YACR,OAAO;SACR,CAAC,CAAkD,CAAC;QAErD,wEAAwE;QACxE,uEAAuE;QACvE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EACN,6FAA6F;aAChG,CAAC;QACJ,CAAC;QAED,yEAAyE;QACzE,yEAAyE;QACzE,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,KAAK,EACL,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAC9D,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,EAAE;YACxD,IAAI,WAAW,GAAwB,IAAI,CAAC;YAC5C,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,IAAI,GAAG,CAAC,CAAa,EAAE,EAAE;gBAC7B,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,WAAW,EAAE,EAAE,CAAC;gBAChB,OAAO,CAAC,CAAC,CAAC,CAAC;YACb,CAAC,CAAC;YACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YAElE,WAAW,GAAG,MAAM,CAAC,QAAQ,CAC3B,qBAAqB,CAAU,iBAAiB,CAAC,EACjD;gBACE,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK;aACN,EACD,CAAC,MAIA,EAAE,EAAE;gBACH,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBACrC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpD,CAAC;qBAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBAC5B,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YACD,iEAAiE;YACjE,oEAAoE;YACpE,+DAA+D;YAC/D,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAChC,CAAC;YACF,qEAAqE;YACrE,sEAAsE;YACtE,IAAI,OAAO;gBAAE,WAAW,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,iEAAiE;QACjE,yEAAyE;QACzE,MAAM,MAAM;aACT,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE;YACpC,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK;YACL,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,UAAU;SACtC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE1B,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACpD,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,WAAW;gBACnB,QAAQ,EACN,6FAA6F;aAChG,CAAC;QACJ,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,SAAS;YACjB,QAAQ,EACN,0FAA0F;gBAC1F,2FAA2F;gBAC3F,2FAA2F;gBAC3F,sBAAsB;SACzB,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,6EAA6E;AAE7E,4EAA4E;AAC5E,yEAAyE;AACzE,SAAS,eAAe,CAAC,CAAe;IACtC,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,OAAO,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAqC,CAAC;QACtD,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,UAAU,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,WAAW,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,GAAG,GAA4B;YACnC,IAAI,EAAE,QAAQ;YACd,UAAU;YACV,oBAAoB,EAAE,KAAK;SAC5B,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACjD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,eAAe,CACpB;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,OAAuB,CAAC;SAClD,EACD,CAAC,CAAC,WAAW,CACd,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,eAAe,CACpB;YACE,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC;SACrD,EACD,CAAC,CAAC,WAAW,CACd,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO;YACL,KAAK,EAAG,CAAC,CAAC,OAA0B,CAAC,GAAG,CAAC,eAAe,CAAC;SAC1D,CAAC;IACJ,CAAC;IACD,2EAA2E;IAC3E,2DAA2D;IAC3D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,eAAe,CACtB,GAA4B,EAC5B,WAA+B;IAE/B,IAAI,WAAW;QAAE,OAAO,EAAE,GAAG,GAAG,EAAE,WAAW,EAAE,CAAC;IAChD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,iBAAiB;CAC3B,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;IACD,YAAY,EAAE,mBAAmB;CAClC,CACF,CAAC;AAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpD,MAAM,YAAY,GAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAgB,CAAC,MAAM,CAC5D,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAC1E,CAAC;IACF,MAAM,IAAI,GAAW,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI;QACJ,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW;QACpC,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAwB;QAClE,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;YACjC,CAAC,CAAC,EAAE,YAAY,EAAE,wBAAwB,EAAE;YAC5C,CAAC,CAAC,EAAE,CAAC;QACP,WAAW,EAAE;YACX,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,MAAM;YACvC,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,aAAa;YACjD,aAAa,EAAE,KAAK;SACrB;KACF,CAAC,CAAC,CAAC;IACJ,4EAA4E;IAC5E,wEAAwE;IACxE,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,qBAAqB;YAClC,WAAW,EAAE,eAAe,CAAC,gBAAgB,CAAwB;YACrE,WAAW,EAAE;gBACX,kEAAkE;gBAClE,oEAAoE;gBACpE,qEAAqE;gBACrE,sCAAsC;gBACtC,YAAY,EAAE,KAAK;gBACnB,eAAe,EAAE,KAAK;gBACtB,aAAa,EAAE,KAAK;aACrB;SACF,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,0BAA0B;YACvC,WAAW,EAAE,eAAe,CAAC,qBAAqB,CAAwB;YAC1E,WAAW,EAAE;gBACX,YAAY,EAAE,KAAK;gBACnB,eAAe,EAAE,KAAK;gBACtB,aAAa,EAAE,KAAK;aACrB;SACF,CAAC,CAAC;QACH,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,6BAA6B;gBAC1C,WAAW,EAAE,eAAe,CAAC,wBAAwB,CAAwB;gBAC7E,WAAW,EAAE;oBACX,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,2BAA2B;gBACxC,WAAW,EAAE,eAAe,CAAC,sBAAsB,CAAwB;gBAC3E,WAAW,EAAE;oBACX,YAAY,EAAE,KAAK;oBACnB,eAAe,EAAE,IAAI;oBACrB,aAAa,EAAE,IAAI;iBACpB;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,IAAI,UAAU,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1C,IAAI,aAAa,KAAK,gBAAgB,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,IACE,aAAa,KAAK,mBAAmB;YACrC,aAAa,KAAK,iBAAiB,EACnC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,IACE,aAAa,IAAI,KAAK;YACtB,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAyB,CAAC,EACpD,CAAC;YACD,MAAM,IAAI,KAAK,CACb,GAAG,aAAa,4FAA4F,CAC7G,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAC7E,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,UAAU,EACV,MAAM,CAAC,IAAI,CAAC,QAAQ,EACpB,MAAM,CAAC,IAAI,CAAC,OAAO,CACpB,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;QAC/C,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QACD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,eAAe,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpE;aACF;SACF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC9C,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,0CAA0C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CACnF,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3E,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAgB,CAAC;IAC7C,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAC3E,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,MAAM,CACzB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAC9B,MAAM,CAAC,IAA+B,CACvC,CAAC;IACF,MAAM,UAAU,GAAG,uBAAuB,CACxC,IAAI,EACJ,MAAM,CAAC,IAA+B,EACtC,MAAM,CACP,CAAC;IACF,MAAM,WAAW,GAAG,UAAU,IAAI,MAAM,CAAC;IACzC,0EAA0E;IAC1E,yEAAyE;IACzE,yEAAyE;IACzE,uEAAuE;IACvE,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aAC3C;SACF;QACD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAChC,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,423 @@
1
+ // Run the runner or the agent companion as a login service.
2
+ //
3
+ // Both long-lived subcommands die with the terminal that started them, so a
4
+ // reboot (or a closed laptop lid followed by a logout) silently takes the
5
+ // machine off the board until someone remembers to relaunch it. This installs
6
+ // the current invocation as a per-user service the OS starts at login and
7
+ // brings back after a crash:
8
+ //
9
+ // macOS → ~/Library/LaunchAgents/com.nudge.<runner|agent>.plist (launchd)
10
+ // Linux → ~/.config/systemd/user/nudge-<runner|agent>.service (systemd --user)
11
+ //
12
+ // The service runs THIS node binary and THIS installed copy of nudge-mcp, with
13
+ // the caller's PATH baked in — launchd and systemd start user services with a
14
+ // bare PATH, and the runner needs `git`, `gh`, `claude`, `codex` and friends to
15
+ // be findable. The in-process supervisor (runner-restart.ts) still handles
16
+ // rebuilds; the OS service manager handles reboots and crashes.
17
+ //
18
+ // Windows has no user-level equivalent this code can write safely, so it gets
19
+ // an actionable message instead of a half-working Task Scheduler entry.
20
+ import { execFile } from "node:child_process";
21
+ import fs from "node:fs/promises";
22
+ import os from "node:os";
23
+ import path from "node:path";
24
+ import { promisify } from "node:util";
25
+ import { CREDENTIALS_DIR } from "./credentials.js";
26
+ const execFileAsync = promisify(execFile);
27
+ export const SERVICE_KINDS = ["runner", "agent"];
28
+ export const LOG_DIR = path.join(CREDENTIALS_DIR, "logs");
29
+ /** Only [a-z0-9-] survive; anything else becomes a dash. `--instance "Mac 2"` → `mac-2`. */
30
+ export function sanitizeInstance(raw) {
31
+ return raw
32
+ .toLowerCase()
33
+ .replace(/[^a-z0-9]+/g, "-")
34
+ .replace(/^-+|-+$/g, "");
35
+ }
36
+ export function serviceLabel(kind, instance) {
37
+ const suffix = instance ? sanitizeInstance(instance) : "";
38
+ return suffix ? `com.nudge.${kind}.${suffix}` : `com.nudge.${kind}`;
39
+ }
40
+ /** systemd unit names can't start with the reverse-DNS prefix comfortably;
41
+ * `com.nudge.runner` → `nudge-runner`, `com.nudge.runner.mac-2` → `nudge-runner-mac-2`. */
42
+ export function unitName(label) {
43
+ return label.replace(/^com\.nudge\./, "nudge-").replace(/\./g, "-");
44
+ }
45
+ /** Value of `--flag VALUE` or `--flag=VALUE` in argv, or null. */
46
+ export function findFlag(argv, flag) {
47
+ for (let i = 0; i < argv.length; i++) {
48
+ if (argv[i] === flag)
49
+ return argv[i + 1] ?? null;
50
+ if (argv[i].startsWith(`${flag}=`))
51
+ return argv[i].slice(flag.length + 1);
52
+ }
53
+ return null;
54
+ }
55
+ /**
56
+ * Rewrite `--cwd X` to an absolute path. The service has no notion of "the
57
+ * directory I typed the install command in", so a relative `--cwd .` pasted
58
+ * from the board dialog must be pinned to where the user actually stood.
59
+ */
60
+ export function absolutizeCwd(argv, base) {
61
+ const out = [];
62
+ for (let i = 0; i < argv.length; i++) {
63
+ const arg = argv[i];
64
+ if (arg === "--cwd") {
65
+ const value = argv[i + 1];
66
+ out.push(arg);
67
+ if (value !== undefined) {
68
+ out.push(path.resolve(base, value));
69
+ i++;
70
+ }
71
+ continue;
72
+ }
73
+ if (arg.startsWith("--cwd=")) {
74
+ out.push(`--cwd=${path.resolve(base, arg.slice("--cwd=".length))}`);
75
+ continue;
76
+ }
77
+ out.push(arg);
78
+ }
79
+ return out;
80
+ }
81
+ /** `npx -y @euqns/nudge-mcp` runs out of a cache that npm may prune — a
82
+ * service pointing there would break the next time the cache is cleaned. */
83
+ export function isNpxCachePath(entry) {
84
+ return /[\\/]_npx[\\/]/.test(entry);
85
+ }
86
+ const COMMON_NUDGE_ENV = [
87
+ "NUDGE_APP_URL",
88
+ "NUDGE_CONVEX_URL",
89
+ "NUDGE_PRICING",
90
+ "NUDGE_TOKEN",
91
+ ];
92
+ /** The environment a login service needs: the caller's PATH (so agent CLIs
93
+ * resolve), HOME, LANG, and stable user-supplied Nudge overrides. Runner-job
94
+ * variables are deliberately not copied: this command may itself be invoked
95
+ * by a runner, and persisting that job's id or supervisor marker would make
96
+ * the service resume with stale, privileged task context after reboot. */
97
+ export function serviceEnv(kind, source = process.env) {
98
+ const env = {};
99
+ for (const key of ["PATH", "HOME", "LANG", "LC_ALL"]) {
100
+ const value = source[key];
101
+ if (value)
102
+ env[key] = value;
103
+ }
104
+ const nudgeKeys = kind === "runner"
105
+ ? [...COMMON_NUDGE_ENV, "NUDGE_RUNNER_TOKEN"]
106
+ : COMMON_NUDGE_ENV;
107
+ for (const key of nudgeKeys) {
108
+ const value = source[key];
109
+ if (value)
110
+ env[key] = value;
111
+ }
112
+ return env;
113
+ }
114
+ export function buildSpec(kind, argv, ctx) {
115
+ // Flags pass through untouched (including `--save`: re-writing runner.json
116
+ // with the same values at every start is idempotent), except that a
117
+ // relative --cwd is pinned to where the install command was typed.
118
+ const args = absolutizeCwd(argv, ctx.cwd);
119
+ const label = serviceLabel(kind, kind === "runner" ? findFlag(args, "--instance") : null);
120
+ const cwd = findFlag(args, "--cwd") ?? ctx.cwd;
121
+ return {
122
+ kind,
123
+ label,
124
+ node: ctx.node,
125
+ entry: ctx.entry,
126
+ args,
127
+ cwd,
128
+ env: serviceEnv(kind, ctx.env),
129
+ logPath: path.join(LOG_DIR, `${label}.log`),
130
+ };
131
+ }
132
+ // ---- file renderers -------------------------------------------------------
133
+ function xml(s) {
134
+ return s
135
+ .replace(/&/g, "&amp;")
136
+ .replace(/</g, "&lt;")
137
+ .replace(/>/g, "&gt;")
138
+ .replace(/"/g, "&quot;");
139
+ }
140
+ export function renderLaunchdPlist(spec) {
141
+ const programArgs = [spec.node, spec.entry, spec.kind, ...spec.args]
142
+ .map((a) => ` <string>${xml(a)}</string>`)
143
+ .join("\n");
144
+ const envEntries = Object.entries(spec.env)
145
+ .map(([k, v]) => ` <key>${xml(k)}</key>\n <string>${xml(v)}</string>`)
146
+ .join("\n");
147
+ return `<?xml version="1.0" encoding="UTF-8"?>
148
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
149
+ <plist version="1.0">
150
+ <dict>
151
+ <key>Label</key>
152
+ <string>${xml(spec.label)}</string>
153
+ <key>ProgramArguments</key>
154
+ <array>
155
+ ${programArgs}
156
+ </array>
157
+ <key>WorkingDirectory</key>
158
+ <string>${xml(spec.cwd)}</string>
159
+ <key>EnvironmentVariables</key>
160
+ <dict>
161
+ ${envEntries}
162
+ </dict>
163
+ <key>RunAtLoad</key>
164
+ <true/>
165
+ <key>KeepAlive</key>
166
+ <dict>
167
+ <key>SuccessfulExit</key>
168
+ <false/>
169
+ </dict>
170
+ <key>ThrottleInterval</key>
171
+ <integer>10</integer>
172
+ <key>ExitTimeOut</key>
173
+ <integer>120</integer>
174
+ <key>StandardOutPath</key>
175
+ <string>${xml(spec.logPath)}</string>
176
+ <key>StandardErrorPath</key>
177
+ <string>${xml(spec.logPath)}</string>
178
+ </dict>
179
+ </plist>
180
+ `;
181
+ }
182
+ /** systemd's quoting: double-quote every word, backslash-escape `\\` and `"`. */
183
+ export function systemdQuote(word) {
184
+ return `"${word.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
185
+ }
186
+ export function renderSystemdUnit(spec) {
187
+ const exec = [spec.node, spec.entry, spec.kind, ...spec.args]
188
+ .map(systemdQuote)
189
+ .join(" ");
190
+ const env = Object.entries(spec.env)
191
+ .map(([k, v]) => `Environment=${systemdQuote(`${k}=${v}`)}`)
192
+ .join("\n");
193
+ const description = spec.kind === "runner" ? "Nudge self-hosted runner" : "Nudge Agent companion";
194
+ return `[Unit]
195
+ Description=${description} (${spec.label})
196
+ After=network-online.target
197
+ Wants=network-online.target
198
+
199
+ [Service]
200
+ Type=simple
201
+ ExecStart=${exec}
202
+ WorkingDirectory=${spec.cwd}
203
+ ${env}
204
+ Restart=on-failure
205
+ RestartSec=10
206
+ KillSignal=SIGTERM
207
+ TimeoutStopSec=120
208
+
209
+ [Install]
210
+ WantedBy=default.target
211
+ `;
212
+ }
213
+ // ---- platform paths -------------------------------------------------------
214
+ export function launchdPlistPath(label, home = os.homedir()) {
215
+ return path.join(home, "Library", "LaunchAgents", `${label}.plist`);
216
+ }
217
+ export function systemdUnitPath(label, home = os.homedir()) {
218
+ return path.join(home, ".config", "systemd", "user", `${unitName(label)}.service`);
219
+ }
220
+ async function writePrivate(file, content) {
221
+ await fs.mkdir(path.dirname(file), { recursive: true });
222
+ // The file may carry a runner token — keep it to the owner, same as
223
+ // ~/.nudge/runner.json. mode only applies on create, hence the chmod.
224
+ await fs.writeFile(file, content, { mode: 0o600 });
225
+ await fs.chmod(file, 0o600);
226
+ }
227
+ async function run(cmd, args, opts) {
228
+ try {
229
+ const { stdout } = await execFileAsync(cmd, args, { encoding: "utf8" });
230
+ return stdout;
231
+ }
232
+ catch (err) {
233
+ if (opts?.ignoreFailure)
234
+ return "";
235
+ const e = err;
236
+ if (e.code === "ENOENT") {
237
+ throw new Error(`\`${cmd}\` is not available on this machine.`);
238
+ }
239
+ const detail = (e.stderr ?? e.message ?? "").trim();
240
+ throw new Error(`\`${cmd} ${args.join(" ")}\` failed${detail ? `: ${detail}` : ""}`);
241
+ }
242
+ }
243
+ // ---- launchd (macOS) ------------------------------------------------------
244
+ const gui = () => `gui/${process.getuid?.() ?? 501}`;
245
+ async function launchdInstall(spec) {
246
+ const plist = launchdPlistPath(spec.label);
247
+ await fs.mkdir(LOG_DIR, { recursive: true, mode: 0o700 });
248
+ await writePrivate(plist, renderLaunchdPlist(spec));
249
+ // Replace rather than layer: bootstrapping a label that's already loaded
250
+ // fails, and a stale definition would keep the old flags.
251
+ await run("launchctl", ["bootout", `${gui()}/${spec.label}`], { ignoreFailure: true });
252
+ await run("launchctl", ["bootstrap", gui(), plist]);
253
+ return plist;
254
+ }
255
+ async function launchdUninstall(label) {
256
+ const plist = launchdPlistPath(label);
257
+ await run("launchctl", ["bootout", `${gui()}/${label}`], { ignoreFailure: true });
258
+ try {
259
+ await fs.unlink(plist);
260
+ return true;
261
+ }
262
+ catch (err) {
263
+ if (err.code === "ENOENT")
264
+ return false;
265
+ throw err;
266
+ }
267
+ }
268
+ async function launchdStatus(label) {
269
+ const plist = launchdPlistPath(label);
270
+ const installed = await fs.access(plist).then(() => true, () => false);
271
+ if (!installed)
272
+ return "not installed";
273
+ const out = await run("launchctl", ["print", `${gui()}/${label}`], { ignoreFailure: true });
274
+ const pid = /^\s*pid = (\d+)/m.exec(out)?.[1];
275
+ const state = /^\s*state = (\w+)/m.exec(out)?.[1];
276
+ if (pid)
277
+ return `running (pid ${pid})`;
278
+ if (state)
279
+ return state;
280
+ return out ? "loaded" : "installed but not loaded (log in again, or run `nudge-mcp service install` once more)";
281
+ }
282
+ // ---- systemd --user (Linux) -----------------------------------------------
283
+ async function systemdInstall(spec) {
284
+ const unit = systemdUnitPath(spec.label);
285
+ await writePrivate(unit, renderSystemdUnit(spec));
286
+ await run("systemctl", ["--user", "daemon-reload"]);
287
+ await run("systemctl", ["--user", "enable", "--now", path.basename(unit)]);
288
+ return unit;
289
+ }
290
+ async function systemdUninstall(label) {
291
+ const unit = systemdUnitPath(label);
292
+ await run("systemctl", ["--user", "disable", "--now", path.basename(unit)], {
293
+ ignoreFailure: true,
294
+ });
295
+ let removed = true;
296
+ try {
297
+ await fs.unlink(unit);
298
+ }
299
+ catch (err) {
300
+ if (err.code !== "ENOENT")
301
+ throw err;
302
+ removed = false;
303
+ }
304
+ await run("systemctl", ["--user", "daemon-reload"], { ignoreFailure: true });
305
+ return removed;
306
+ }
307
+ async function systemdStatus(label) {
308
+ const unit = systemdUnitPath(label);
309
+ const installed = await fs.access(unit).then(() => true, () => false);
310
+ if (!installed)
311
+ return "not installed";
312
+ const out = await run("systemctl", ["--user", "is-active", path.basename(unit)], {
313
+ ignoreFailure: true,
314
+ });
315
+ return out.trim() || "inactive";
316
+ }
317
+ // ---- CLI ------------------------------------------------------------------
318
+ export const SERVICE_USAGE = [
319
+ "Usage:",
320
+ " nudge-mcp service install runner [runner options] Start the runner at login and keep it alive.",
321
+ " nudge-mcp service install agent [agent options] Same for the Nudge Agent companion.",
322
+ " nudge-mcp service uninstall runner|agent [--instance NAME]",
323
+ " nudge-mcp service status",
324
+ "",
325
+ "Options after the kind are passed to the runner/agent unchanged (a relative",
326
+ "--cwd is pinned to the current directory). Add --dry-run to print the service",
327
+ "file without installing it. macOS uses a launchd LaunchAgent, Linux a systemd",
328
+ "--user unit; both restart the process after a crash and at every login.",
329
+ ].join("\n");
330
+ function unsupported() {
331
+ throw new Error([
332
+ `Login services are supported on macOS (launchd) and Linux (systemd --user); this is ${process.platform}.`,
333
+ "On Windows, create a Task Scheduler task that runs at log-on with the action:",
334
+ ` "${process.execPath}" "${process.argv[1]}" runner`,
335
+ "and set it to restart on failure.",
336
+ ].join("\n"));
337
+ }
338
+ function parseKind(raw) {
339
+ if (raw === "runner" || raw === "agent")
340
+ return raw;
341
+ throw new Error(`Expected "runner" or "agent" after the service action, got ${raw ? `"${raw}"` : "nothing"}.\n\n${SERVICE_USAGE}`);
342
+ }
343
+ export async function runService(argv) {
344
+ const action = argv[0];
345
+ const platform = process.platform;
346
+ if (action === "status") {
347
+ if (platform !== "darwin" && platform !== "linux")
348
+ unsupported();
349
+ const rows = [];
350
+ for (const kind of SERVICE_KINDS) {
351
+ const label = serviceLabel(kind);
352
+ const status = platform === "darwin" ? await launchdStatus(label) : await systemdStatus(label);
353
+ rows.push(` ${kind.padEnd(7)} ${label.padEnd(20)} ${status}`);
354
+ }
355
+ console.log(["Nudge login services:", ...rows].join("\n"));
356
+ if (platform === "darwin")
357
+ console.log(`\nLogs: ${LOG_DIR}/<label>.log`);
358
+ else
359
+ console.log("\nLogs: journalctl --user -u nudge-runner -f");
360
+ return;
361
+ }
362
+ if (action === "uninstall") {
363
+ const kind = parseKind(argv[1]);
364
+ const label = serviceLabel(kind, findFlag(argv.slice(2), "--instance"));
365
+ if (platform !== "darwin" && platform !== "linux")
366
+ unsupported();
367
+ const removed = platform === "darwin" ? await launchdUninstall(label) : await systemdUninstall(label);
368
+ console.log(removed
369
+ ? `Removed ${label}. The ${kind} no longer starts at login; a running instance was stopped.`
370
+ : `${label} was not installed.`);
371
+ return;
372
+ }
373
+ if (action === "install") {
374
+ const kind = parseKind(argv[1]);
375
+ const rest = argv.slice(2);
376
+ const dryRun = rest.includes("--dry-run");
377
+ const passthrough = rest.filter((a) => a !== "--dry-run");
378
+ const entry = await fs.realpath(process.argv[1]);
379
+ const spec = buildSpec(kind, passthrough, {
380
+ node: process.execPath,
381
+ entry,
382
+ cwd: process.cwd(),
383
+ });
384
+ if (platform !== "darwin" && platform !== "linux")
385
+ unsupported();
386
+ const rendered = platform === "darwin" ? renderLaunchdPlist(spec) : renderSystemdUnit(spec);
387
+ const target = platform === "darwin" ? launchdPlistPath(spec.label) : systemdUnitPath(spec.label);
388
+ if (dryRun) {
389
+ console.log(`# ${target}\n${rendered}`);
390
+ return;
391
+ }
392
+ if (isNpxCachePath(entry)) {
393
+ console.warn([
394
+ `[nudge-mcp service] warning: this copy lives in npm's npx cache (${entry}).`,
395
+ " npm may prune it, which would break the service on a later boot.",
396
+ " Prefer: npm install -g @euqns/nudge-mcp && nudge-mcp service install " + kind,
397
+ ].join("\n"));
398
+ }
399
+ const written = platform === "darwin" ? await launchdInstall(spec) : await systemdInstall(spec);
400
+ const lines = [
401
+ `Installed ${spec.label} → ${written}`,
402
+ ` Runs: ${[spec.kind, ...spec.args].join(" ")}`,
403
+ ` Directory: ${spec.cwd}`,
404
+ " Starts at login and restarts after a crash. It is starting now.",
405
+ ];
406
+ if (platform === "darwin") {
407
+ lines.push(` Logs: ${spec.logPath}`);
408
+ lines.push(` Stop: launchctl bootout ${gui()}/${spec.label}`);
409
+ }
410
+ else {
411
+ lines.push(` Logs: journalctl --user -u ${unitName(spec.label)} -f`);
412
+ lines.push(` Boot: loginctl enable-linger ${os.userInfo().username} # start before anyone logs in`);
413
+ }
414
+ if (kind === "agent" && !passthrough.includes("--no-open")) {
415
+ lines.push(" Note: the companion opens its pairing page in the browser at every login; add --no-open to skip that.");
416
+ }
417
+ lines.push(` Remove: nudge-mcp service uninstall ${kind}`);
418
+ console.log(lines.join("\n"));
419
+ return;
420
+ }
421
+ throw new Error(SERVICE_USAGE);
422
+ }
423
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+ import path from "node:path";
4
+ import { absolutizeCwd, buildSpec, findFlag, isNpxCachePath, renderLaunchdPlist, renderSystemdUnit, sanitizeInstance, serviceEnv, serviceLabel, systemdQuote, unitName, } from "./service.js";
5
+ const ctx = {
6
+ node: "/usr/local/bin/node",
7
+ entry: "/usr/local/lib/node_modules/@euqns/nudge-mcp/dist/index.js",
8
+ cwd: "/Users/dev/checkout",
9
+ env: { PATH: "/opt/homebrew/bin:/usr/bin", HOME: "/Users/dev", SECRET: "x" },
10
+ };
11
+ test("labels: one per kind, instances get a sanitized suffix", () => {
12
+ assert.equal(serviceLabel("runner"), "com.nudge.runner");
13
+ assert.equal(serviceLabel("agent"), "com.nudge.agent");
14
+ assert.equal(serviceLabel("runner", "Mac Mini #2"), "com.nudge.runner.mac-mini-2");
15
+ assert.equal(sanitizeInstance("--weird--"), "weird");
16
+ assert.equal(unitName("com.nudge.runner"), "nudge-runner");
17
+ assert.equal(unitName("com.nudge.runner.mac-2"), "nudge-runner-mac-2");
18
+ });
19
+ test("findFlag reads both `--flag value` and `--flag=value`", () => {
20
+ assert.equal(findFlag(["--cwd", "/a", "--name", "x"], "--cwd"), "/a");
21
+ assert.equal(findFlag(["--cwd=/b"], "--cwd"), "/b");
22
+ assert.equal(findFlag(["--name", "x"], "--cwd"), null);
23
+ assert.equal(findFlag(["--cwd"], "--cwd"), null);
24
+ });
25
+ test("a relative --cwd pasted from the board is pinned to the install directory", () => {
26
+ assert.deepEqual(absolutizeCwd(["--cwd", ".", "--save"], "/Users/dev/repo"), [
27
+ "--cwd",
28
+ "/Users/dev/repo",
29
+ "--save",
30
+ ]);
31
+ assert.deepEqual(absolutizeCwd(["--cwd=../other"], "/Users/dev/repo"), [
32
+ "--cwd=/Users/dev/other",
33
+ ]);
34
+ // Absolute paths and unrelated flags pass through unchanged.
35
+ assert.deepEqual(absolutizeCwd(["--cwd", "/x", "--concurrency", "4"], "/y"), [
36
+ "--cwd",
37
+ "/x",
38
+ "--concurrency",
39
+ "4",
40
+ ]);
41
+ });
42
+ test("npx cache copies are recognised so the install can warn", () => {
43
+ assert.equal(isNpxCachePath("/Users/dev/.npm/_npx/abc123/node_modules/@euqns/nudge-mcp/dist/index.js"), true);
44
+ assert.equal(isNpxCachePath("C:\\Users\\dev\\AppData\\Local\\npm-cache\\_npx\\abc\\index.js"), true);
45
+ assert.equal(isNpxCachePath(ctx.entry), false);
46
+ });
47
+ test("service env carries shell basics and stable Nudge config only", () => {
48
+ const source = {
49
+ PATH: "/a:/b",
50
+ HOME: "/h",
51
+ NUDGE_CONVEX_URL: "https://x.convex.cloud",
52
+ NUDGE_TOKEN: "user-token",
53
+ NUDGE_RUNNER_TOKEN: "runner-token",
54
+ NUDGE_RUNNER_JOB: "stale-job",
55
+ NUDGE_RUNNER_ID: "stale-runner",
56
+ NUDGE_RUNNER_SUPERVISED: "1",
57
+ NUDGE_COMPANION_TOKEN: "stale-companion-token",
58
+ AWS_SECRET: "nope",
59
+ EMPTY: "",
60
+ };
61
+ assert.deepEqual(serviceEnv("runner", source), {
62
+ PATH: "/a:/b",
63
+ HOME: "/h",
64
+ NUDGE_CONVEX_URL: "https://x.convex.cloud",
65
+ NUDGE_TOKEN: "user-token",
66
+ NUDGE_RUNNER_TOKEN: "runner-token",
67
+ });
68
+ assert.deepEqual(serviceEnv("agent", source), {
69
+ PATH: "/a:/b",
70
+ HOME: "/h",
71
+ NUDGE_CONVEX_URL: "https://x.convex.cloud",
72
+ NUDGE_TOKEN: "user-token",
73
+ });
74
+ });
75
+ test("buildSpec: runner spec uses the --cwd as working directory, keeps flags verbatim", () => {
76
+ const spec = buildSpec("runner", ["--token", "nrun_1", "--cwd", ".", "--concurrency", "8", "--save"], ctx);
77
+ assert.equal(spec.label, "com.nudge.runner");
78
+ assert.equal(spec.cwd, ctx.cwd);
79
+ assert.deepEqual(spec.args, ["--token", "nrun_1", "--cwd", ctx.cwd, "--concurrency", "8", "--save"]);
80
+ assert.equal(spec.env.SECRET, undefined);
81
+ assert.equal(path.basename(spec.logPath), "com.nudge.runner.log");
82
+ });
83
+ test("buildSpec: --instance yields a second, distinct label; the agent never gets one", () => {
84
+ assert.equal(buildSpec("runner", ["--instance", "two"], ctx).label, "com.nudge.runner.two");
85
+ assert.equal(buildSpec("agent", ["--instance", "two"], ctx).label, "com.nudge.agent");
86
+ });
87
+ test("launchd plist: runs this node + this entry, at login, restarts only after failure", () => {
88
+ const spec = buildSpec("runner", ["--token", "a<b&c", "--cwd", "."], ctx);
89
+ const plist = renderLaunchdPlist(spec);
90
+ assert.match(plist, /<key>Label<\/key>\s*<string>com\.nudge\.runner<\/string>/);
91
+ assert.match(plist, new RegExp(`<string>${ctx.node}</string>\\s*<string>${ctx.entry.replace(/\//g, "\\/")}</string>\\s*<string>runner</string>`));
92
+ // Special characters are XML-escaped, never left raw.
93
+ assert.ok(plist.includes("<string>a&lt;b&amp;c</string>"));
94
+ assert.ok(!plist.includes("a<b&c"));
95
+ assert.match(plist, /<key>RunAtLoad<\/key>\s*<true\/>/);
96
+ assert.match(plist, /<key>KeepAlive<\/key>\s*<dict>\s*<key>SuccessfulExit<\/key>\s*<false\/>/);
97
+ assert.match(plist, /<key>WorkingDirectory<\/key>\s*<string>\/Users\/dev\/checkout<\/string>/);
98
+ assert.match(plist, /<key>PATH<\/key>\s*<string>\/opt\/homebrew\/bin:\/usr\/bin<\/string>/);
99
+ assert.ok(!plist.includes("SECRET"));
100
+ });
101
+ test("systemd unit: quoted ExecStart, on-failure restart, enabled for the user session", () => {
102
+ const spec = buildSpec("agent", ["--cwd", "/srv/repo", "--no-open"], ctx);
103
+ const unit = renderSystemdUnit(spec);
104
+ assert.ok(unit.includes(`ExecStart="${ctx.node}" "${ctx.entry}" "agent" "--cwd" "/srv/repo" "--no-open"`));
105
+ assert.ok(unit.includes("WorkingDirectory=/srv/repo"));
106
+ assert.ok(unit.includes('Environment="PATH=/opt/homebrew/bin:/usr/bin"'));
107
+ assert.ok(unit.includes("Restart=on-failure"));
108
+ assert.ok(unit.includes("WantedBy=default.target"));
109
+ assert.equal(systemdQuote('say "hi" \\ there'), '"say \\"hi\\" \\\\ there"');
110
+ });
111
+ //# sourceMappingURL=service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.test.js","sourceRoot":"","sources":["../src/service.test.ts"],"names":[],"mappings":"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"}
package/dist/version.js CHANGED
@@ -5,5 +5,5 @@
5
5
  // reported the same number, which made "why is my runner not starting?"
6
6
  // needlessly hard to diagnose. `npm run mcp:bump -- <release>` keeps this,
7
7
  // package.json, and package-lock.json synchronized.
8
- export const NUDGE_MCP_VERSION = "1.17.0";
8
+ export const NUDGE_MCP_VERSION = "1.19.0";
9
9
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@euqns/nudge-mcp",
3
- "version": "1.17.0",
3
+ "version": "1.19.0",
4
4
  "type": "module",
5
5
  "description": "Model Context Protocol server for the Nudge board (the in-house Trello).",
6
6
  "bin": {