peerllm-host-cli 2.1.4 → 2.1.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"agentic.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agentic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4FpC,wBAAgB,kBAAkB,IAAI,OAAO,CAM5C"}
1
+ {"version":3,"file":"agentic.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agentic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2FpC,wBAAgB,kBAAkB,IAAI,OAAO,CAM5C"}
@@ -32,7 +32,6 @@ async function setAgentic(enabled, opts) {
32
32
  // the next start/registration.
33
33
  await services.config.update((c) => ({ ...c, agenticEnabled: enabled }));
34
34
  }
35
- const state = enabled ? "on" : "off";
36
35
  if (opts.json) {
37
36
  process.stdout.write(JSON.stringify({ agenticEnabled: enabled, syncedToOrchestrator: daemonHandled }) + "\n");
38
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agentic.js","sourceRoot":"","sources":["../../../src/cli/commands/agentic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentic.js","sourceRoot":"","sources":["../../../src/cli/commands/agentic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,yEAAyE;AACzE,4EAA4E;AAC5E,8EAA8E;AAC9E,sCAAsC;AACtC,KAAK,UAAU,UAAU,CACvB,OAAgB,EAChB,IAA4C;IAE5C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAEpE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAClD,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,sBAAsB,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,UAAU,CAAE,GAAa,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,2EAA2E;QAC3E,+BAA+B;QAC/B,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC,GAAG,IAAI,CACxF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO;YACL,CAAC,CAAC,8DAA8D;YAChE,CAAC,CAAC,mDAAmD,CACxD,CAAC;QACF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,MAAM;IACb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;SACrB,WAAW,CAAC,qEAAqE,CAAC;SAClF,MAAM,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;SAC1D,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAChD,MAAM,CAAC,CAAC,IAA4C,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,OAAO;IACd,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;SACtB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,MAAM,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;SAC1D,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAChD,MAAM,CAAC,CAAC,IAA4C,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;SAC1D,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,IAA4C,EAAE,EAAE;QAC7D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,uBAAuB;QACrE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;SAC1B,WAAW,CAAC,6EAA6E,CAAC;SAC1F,UAAU,CAAC,MAAM,EAAE,CAAC;SACpB,UAAU,CAAC,OAAO,EAAE,CAAC;SACrB,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9B,CAAC"}
@@ -8,6 +8,7 @@ export interface FileLock {
8
8
  export declare function acquireFileLock(lockPath: string, opts?: {
9
9
  timeoutMs?: number;
10
10
  retryMs?: number;
11
+ staleMs?: number;
11
12
  }): Promise<FileLock>;
12
13
  export declare function atomicWriteFile(targetPath: string, contents: string): Promise<void>;
13
14
  //# sourceMappingURL=fs-lock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs-lock.d.ts","sourceRoot":"","sources":["../../src/core/fs-lock.ts"],"names":[],"mappings":"AAIA,qBAAa,gBAAiB,SAAQ,KAAK;aACb,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM;CAG7C;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAClD,OAAO,CAAC,QAAQ,CAAC,CA2BnB;AAED,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYzF"}
1
+ {"version":3,"file":"fs-lock.d.ts","sourceRoot":"","sources":["../../src/core/fs-lock.ts"],"names":[],"mappings":"AAIA,qBAAa,gBAAiB,SAAQ,KAAK;aACb,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM;CAG7C;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AA2DD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACpE,OAAO,CAAC,QAAQ,CAAC,CA2CnB;AAED,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYzF"}
@@ -1,4 +1,4 @@
1
- import { mkdir, open, unlink } from "node:fs/promises";
1
+ import { mkdir, open, readFile, stat, unlink } from "node:fs/promises";
2
2
  import { dirname } from "node:path";
3
3
  import { setTimeout as delay } from "node:timers/promises";
4
4
  export class LockTimeoutError extends Error {
@@ -8,9 +8,61 @@ export class LockTimeoutError extends Error {
8
8
  this.lockPath = lockPath;
9
9
  }
10
10
  }
11
+ /**
12
+ * Best-effort check for whether a PID belongs to a live process on this machine.
13
+ * `kill(pid, 0)` sends no signal; it only probes existence/permissions.
14
+ * - succeeds -> process exists and we can signal it -> alive
15
+ * - EPERM -> process exists but is owned by someone else -> alive
16
+ * - ESRCH -> no such process -> dead
17
+ */
18
+ function isProcessAlive(pid) {
19
+ try {
20
+ process.kill(pid, 0);
21
+ return true;
22
+ }
23
+ catch (err) {
24
+ return err.code === "EPERM";
25
+ }
26
+ }
27
+ async function readLockHolder(lockPath) {
28
+ try {
29
+ const [raw, info] = await Promise.all([readFile(lockPath, "utf8"), stat(lockPath)]);
30
+ const pid = Number.parseInt(raw.trim(), 10);
31
+ return {
32
+ pid: Number.isInteger(pid) && pid > 0 ? pid : undefined,
33
+ ageMs: Date.now() - info.mtimeMs,
34
+ };
35
+ }
36
+ catch (err) {
37
+ // ENOENT: holder released between our failed create and this read — just retry.
38
+ if (err.code === "ENOENT") {
39
+ return undefined;
40
+ }
41
+ throw err;
42
+ }
43
+ }
44
+ /**
45
+ * Decide whether an existing lock file is abandoned and safe to reclaim.
46
+ * A lock is stale when its holder PID is gone, the file is unreadable/garbage,
47
+ * or it is implausibly old (guards against PID reuse after a reboot — the held
48
+ * critical sections here are sub-second file writes, never long operations).
49
+ */
50
+ function isHolderStale(holder, staleMs) {
51
+ if (!holder) {
52
+ return false; // file vanished; let the next create attempt decide
53
+ }
54
+ if (holder.pid === undefined) {
55
+ return true; // empty or corrupt lock file — no live owner to respect
56
+ }
57
+ if (holder.ageMs >= staleMs) {
58
+ return true;
59
+ }
60
+ return !isProcessAlive(holder.pid);
61
+ }
11
62
  export async function acquireFileLock(lockPath, opts = {}) {
12
63
  const timeoutMs = opts.timeoutMs ?? 5000;
13
64
  const retryMs = opts.retryMs ?? 50;
65
+ const staleMs = opts.staleMs ?? 30_000;
14
66
  const deadline = Date.now() + timeoutMs;
15
67
  await mkdir(dirname(lockPath), { recursive: true });
16
68
  for (;;) {
@@ -28,6 +80,19 @@ export async function acquireFileLock(lockPath, opts = {}) {
28
80
  if (err.code !== "EEXIST") {
29
81
  throw err;
30
82
  }
83
+ // The lock file exists. If its holder is dead or abandoned, reclaim it
84
+ // instead of blocking until timeout — a hard-killed process (SIGKILL,
85
+ // crash, power loss) leaves the file behind with no chance to release.
86
+ const holder = await readLockHolder(lockPath);
87
+ if (isHolderStale(holder, staleMs)) {
88
+ // Confirm the holder is the same stale entry we just inspected before
89
+ // unlinking, to avoid stealing a lock a different process just took.
90
+ const confirm = await readLockHolder(lockPath);
91
+ if (confirm && confirm.pid === holder?.pid && isHolderStale(confirm, staleMs)) {
92
+ await unlink(lockPath).catch(() => undefined);
93
+ }
94
+ continue; // retry create immediately
95
+ }
31
96
  if (Date.now() >= deadline) {
32
97
  throw new LockTimeoutError(lockPath);
33
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fs-lock.js","sourceRoot":"","sources":["../../src/core/fs-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACb;IAA5B,YAA4B,QAAgB;QAC1C,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;QADrB,aAAQ,GAAR,QAAQ,CAAQ;IAE5C,CAAC;CACF;AAMD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,OAAiD,EAAE;IAEnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAExC,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,SAAS,CAAC;QACR,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,KAAK,IAAI,EAAE;oBAClB,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAChD,CAAC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;YACD,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,QAAgB;IACxE,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,GAAG,UAAU,QAAQ,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC7F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACpD,MAAM,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"fs-lock.js","sourceRoot":"","sources":["../../src/core/fs-lock.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export declare class OrchestratorService {
27
27
  private readonly tokensOut;
28
28
  private readonly foreignLoad;
29
29
  private lastAppliedPriority;
30
+ private readonly priorityRaiseDenied;
30
31
  private approvedModels;
31
32
  private _goingAway;
32
33
  private _lastNetworkActivityAt;
@@ -51,6 +52,7 @@ export declare class OrchestratorService {
51
52
  disconnect(): Promise<void>;
52
53
  private handleSuspension;
53
54
  private scheduleReconnect;
55
+ private computeAgenticAdvertisement;
54
56
  refreshCapabilities(): Promise<void>;
55
57
  private registerAndStartHeartbeat;
56
58
  private applyHostPriority;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMhD,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAgCxE,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAErG,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmDD,qBAAa,mBAAmB;IAqGlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IApGjC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAsC;IAEpD,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAI7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgE;IACzF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAKpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IACxD,OAAO,CAAC,mBAAmB,CAAqC;IAChE,OAAO,CAAC,cAAc,CAAgB;IAKtC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,sBAAsB,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,oBAAoB,CAAgB;IAG5C,OAAO,CAAC,WAAW,CAA2B;IAG9C,OAAO,CAAC,YAAY;gBA8DS,IAAI,EAAE,mBAAmB;IAKtD,SAAS,IAAI,kBAAkB;IAI/B,eAAe,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,EAAE;IAIrF,aAAa,IAAI;QAAE,EAAE,EAAE,cAAc,CAAC;QAAC,GAAG,EAAE,cAAc,CAAA;KAAE;IAI5D,iBAAiB,IAAI,MAAM,EAAE;IAIvB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAqBnB,gBAAgB;IA4B9B,OAAO,CAAC,iBAAiB;IAanB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;YAsC5B,yBAAyB;IA0JvC,OAAO,CAAC,iBAAiB;YAkBX,YAAY;IA4H1B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,UAAU;YAeJ,IAAI;IASlB,OAAO,CAAC,SAAS;CAKlB"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMhD,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAgCxE,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAErG,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,mBAAmB;IA4GlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IA3GjC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAsC;IAEpD,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAI7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgE;IACzF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAKpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IACxD,OAAO,CAAC,mBAAmB,CAAqC;IAOhE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,cAAc,CAAgB;IAKtC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,sBAAsB,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,oBAAoB,CAAgB;IAG5C,OAAO,CAAC,WAAW,CAA2B;IAG9C,OAAO,CAAC,YAAY;gBA8DS,IAAI,EAAE,mBAAmB;IAKtD,SAAS,IAAI,kBAAkB;IAI/B,eAAe,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,EAAE;IAIrF,aAAa,IAAI;QAAE,EAAE,EAAE,cAAc,CAAC;QAAC,GAAG,EAAE,cAAc,CAAA;KAAE;IAI5D,iBAAiB,IAAI,MAAM,EAAE;IAIvB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAqBnB,gBAAgB;IA4B9B,OAAO,CAAC,iBAAiB;YAgBX,2BAA2B;IA2BnC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;YA8B5B,yBAAyB;IAkJvC,OAAO,CAAC,iBAAiB;YA2CX,YAAY;IA4H1B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,UAAU;YAeJ,IAAI;IASlB,OAAO,CAAC,SAAS;CAKlB"}
@@ -1,11 +1,10 @@
1
1
  import { arch as osArch, platform as osPlatform, constants as osConstants, setPriority } from "node:os";
2
- import { statSync } from "node:fs";
3
- import { join, basename } from "node:path";
4
2
  import { HttpTransportType, HubConnectionBuilder, LogLevel, } from "@microsoft/signalr";
5
3
  import { buildHostCapacity } from "./capacity.js";
6
4
  import { ForeignLoadTracker, decideCoexistence, DEFAULT_CAPACITY_OFFER, } from "./coexistence-governor.js";
7
5
  import { getLogger } from "./logger.js";
8
6
  import { listModelsSync, getLLMDirectory } from "./models-fs.js";
7
+ import { classifyToolCapability, decideSupportsTools } from "./tool-capability.js";
9
8
  import { RunnerPool, CapacityExceededError } from "./runner-pool.js";
10
9
  import { RecycleManager } from "./recycle.js";
11
10
  import { buildRecyclePolicyConfig, recycleDryRun, recycleCooldownMs } from "./recycle-config.js";
@@ -16,49 +15,6 @@ const DEFAULT_HUB_URL = "https://api.peerllm.com/hosthub";
16
15
  const HEARTBEAT_INTERVAL_MS = 5 * 1000;
17
16
  const CLEANUP_INTERVAL_MS = 60 * 1000;
18
17
  const CONVERSATION_IDLE_LIMIT_MS = 5 * 60 * 1000;
19
- // ─── LLooMA 2.0 (P2 quality): tool-capability detection ─────────────────────────
20
- // A host may only DECIDE tool calls when at least one local model can actually do native
21
- // tool-calling — otherwise the orchestrator routes agentic turns to a model that just
22
- // hallucinates calls (e.g. read_file "src/main.py"). We detect this from each GGUF's embedded
23
- // chat template (tool-tuned models reference "tool" in their template), read cheaply from the
24
- // file header (no full model load). Cached by file path + mtime.
25
- const toolCapabilityCache = new Map();
26
- async function isToolCapableGGUF(filePath) {
27
- try {
28
- const stat = statSync(filePath);
29
- const cached = toolCapabilityCache.get(filePath);
30
- if (cached && cached.mtimeMs === stat.mtimeMs)
31
- return cached.capable;
32
- const { readGgufFileInfo } = await import("node-llama-cpp");
33
- const info = await readGgufFileInfo(filePath, { readTensorInfo: false, logWarnings: false });
34
- const meta = info?.metadata;
35
- const tmpl = meta?.tokenizer?.chat_template ?? meta?.chat_template;
36
- // Native tool-calling templates mention tools/tool calls; plain chat templates don't.
37
- const capable = typeof tmpl === "string" && /tool/i.test(tmpl);
38
- toolCapabilityCache.set(filePath, { mtimeMs: stat.mtimeMs, capable });
39
- return capable;
40
- }
41
- catch (err) {
42
- getLogger().warn(`tool-capability probe failed for ${basename(filePath)}: ${err?.message ?? String(err)}`);
43
- return false; // unknown → not tool-capable (safe: orchestrator falls back to centralized)
44
- }
45
- }
46
- /**
47
- * Classifies local models by native tool-calling capability. Returns capabilities ordered
48
- * tool-capable-first (so the orchestrator's caps[0] decider can actually emit tool calls) plus
49
- * whether ANY model is tool-capable (which gates the supportsTools advertisement).
50
- */
51
- async function classifyToolCapability(llmDir, modelNames) {
52
- const capable = [];
53
- const others = [];
54
- for (const name of modelNames) {
55
- if (await isToolCapableGGUF(join(llmDir, `${name}.gguf`)))
56
- capable.push(name);
57
- else
58
- others.push(name);
59
- }
60
- return { orderedCapabilities: [...capable, ...others], hasToolCapable: capable.length > 0 };
61
- }
62
18
  export class OrchestratorService {
63
19
  opts;
64
20
  connection = null;
@@ -82,6 +38,13 @@ export class OrchestratorService {
82
38
  // call setPriority on a transition (cheap; avoids hammering it every 5s).
83
39
  foreignLoad = new ForeignLoadTracker();
84
40
  lastAppliedPriority = null;
41
+ // PIDs whose priority the OS refused to RAISE. On POSIX an unprivileged process
42
+ // may lower its scheduling priority (nice up) but not raise it back (nice down) —
43
+ // the kernel returns EACCES — so once we've yielded to "belowNormal" we usually
44
+ // can't reclaim "normal" without elevated privileges. Benign (nice only bites
45
+ // under CPU contention; an idle box gives a niced process the whole CPU, and GPU
46
+ // scheduling ignores nice), so we note it once per PID and stop re-warning.
47
+ priorityRaiseDenied = new Set();
85
48
  approvedModels = [];
86
49
  // ♻️ Host self-recycle (S14-9). _goingAway forces canAcceptRequests=false during an in-place
87
50
  // recycle window; _lastNetworkActivityAt feeds the cold-idle gate; _pinnedBeforeRecycle holds
@@ -374,14 +337,32 @@ export class OrchestratorService {
374
337
  });
375
338
  }, delayMs);
376
339
  }
340
+ // ─── LLooMA 2.0 (P2): one place that computes the model list + agentic advertisement, so
341
+ // register and live-refresh stay in lock-step. Orders tool-capable models first and decides
342
+ // supportsTools via decideSupportsTools (opt-in wins unless every model is provably incapable).
343
+ async computeAgenticAdvertisement(cfg) {
344
+ const capabilities = listModelsSync(this.opts.paths, cfg);
345
+ const { orderedCapabilities, verdicts } = await classifyToolCapability(getLLMDirectory(this.opts.paths, cfg), capabilities);
346
+ const optedIn = cfg.agenticEnabled !== false;
347
+ const supportsTools = decideSupportsTools(optedIn, verdicts);
348
+ const capableCount = verdicts.filter((v) => v === "capable").length;
349
+ // Opted in but nothing CONFIRMS tool-calling (all unknown, or no models): we advertise anyway
350
+ // and defer to the orchestrator's empirical qualification, but tell the operator so they can
351
+ // install a tool-tuned model if real tool calls underperform.
352
+ if (supportsTools && capableCount === 0 && optedIn) {
353
+ getLogger().warn("orchestrator: agentic enabled but no local model's chat template confirms tool-calling; " +
354
+ "advertising supportsTools and deferring to orchestrator qualification " +
355
+ "(install a tool-tuned GGUF, e.g. a Qwen2.5-Instruct, if tool calls underperform).");
356
+ }
357
+ return {
358
+ orderedCapabilities,
359
+ supportsTools,
360
+ summary: `${orderedCapabilities.length} model(s), supportsTools=${supportsTools}, toolCapable=${capableCount}/${verdicts.length}`,
361
+ };
362
+ }
377
363
  async refreshCapabilities() {
378
364
  const cfg = await this.opts.config.load();
379
- const capabilities = listModelsSync(this.opts.paths, cfg);
380
- // LLooMA 2.0 (P2 quality): order tool-capable models first (so the orchestrator's caps[0]
381
- // decider can actually emit tool calls) and only advertise supportsTools when a tool-capable
382
- // model exists.
383
- const { orderedCapabilities, hasToolCapable } = await classifyToolCapability(getLLMDirectory(this.opts.paths, cfg), capabilities);
384
- const agenticEnabled = cfg.agenticEnabled !== false && hasToolCapable;
365
+ const { orderedCapabilities, supportsTools, summary } = await this.computeAgenticAdvertisement(cfg);
385
366
  // Surface the change locally even when offline so the dashboard refreshes
386
367
  // immediately; the orchestrator will pick up the new list on the next
387
368
  // successful registration.
@@ -396,12 +377,12 @@ export class OrchestratorService {
396
377
  hostVersion: this.opts.cliVersion,
397
378
  hostOS: osPlatform(),
398
379
  hostArch: osArch(),
399
- // Advertise agentic tool-calling only when the operator opted in AND a model can actually
400
- // do native tool-calling. Operator opt-out: agenticEnabled === false serves chat-only.
401
- // Re-invoking RegisterHost here is what makes the toggle take effect live.
402
- supportsTools: agenticEnabled,
380
+ // Advertise agentic when the operator opted in and we have no positive proof the local
381
+ // models can't tool-call (see decideSupportsTools). Re-invoking RegisterHost here is what
382
+ // makes the toggle take effect live.
383
+ supportsTools,
403
384
  });
404
- getLogger().info(`orchestrator: capabilities refreshed (${orderedCapabilities.length} model(s), agentic=${agenticEnabled}, toolCapable=${hasToolCapable})`);
385
+ getLogger().info(`orchestrator: capabilities refreshed (${summary})`);
405
386
  }
406
387
  catch (err) {
407
388
  getLogger().warn(`orchestrator: capability refresh failed: ${err.message}`);
@@ -416,11 +397,7 @@ export class OrchestratorService {
416
397
  return;
417
398
  const hostId = cfg.hostId;
418
399
  const gpuIndex = cfg.selectedGpuIndex ?? 0;
419
- const capabilities = listModelsSync(this.opts.paths, cfg);
420
- // LLooMA 2.0 (P2 quality): order tool-capable models first and only advertise supportsTools
421
- // when a model can actually do native tool-calling.
422
- const { orderedCapabilities, hasToolCapable } = await classifyToolCapability(getLLMDirectory(this.opts.paths, cfg), capabilities);
423
- const agenticEnabled = cfg.agenticEnabled !== false && hasToolCapable;
400
+ const { orderedCapabilities, supportsTools, summary } = await this.computeAgenticAdvertisement(cfg);
424
401
  try {
425
402
  await this.connection.invoke("RegisterHost", {
426
403
  hostId: cfg.hostId,
@@ -429,11 +406,10 @@ export class OrchestratorService {
429
406
  hostVersion: this.opts.cliVersion,
430
407
  hostOS: osPlatform(),
431
408
  hostArch: osArch(),
432
- // Advertise agentic tool-calling only when the operator opted in AND a model can actually
433
- // do native tool-calling. Operator opt-out: agenticEnabled === false serves chat-only.
434
- supportsTools: agenticEnabled,
409
+ // See computeAgenticAdvertisement / decideSupportsTools for the gating rationale.
410
+ supportsTools,
435
411
  });
436
- getLogger().info(`orchestrator: register sent (${orderedCapabilities.length} model(s), agentic=${agenticEnabled}, toolCapable=${hasToolCapable})`);
412
+ getLogger().info(`orchestrator: register sent (${summary})`);
437
413
  // ♻️ Host self-recycle (S14-9): start the scheduler (dry-run by default). Idempotent —
438
414
  // the manager is created once; reconnects just re-confirm it. Never let a recycle-setup
439
415
  // failure break registration (it's a backstop feature).
@@ -556,17 +532,42 @@ export class OrchestratorService {
556
532
  ? osConstants.priority.PRIORITY_BELOW_NORMAL
557
533
  : osConstants.priority.PRIORITY_NORMAL;
558
534
  const targets = [process.pid, ...this.pool.workerPids()];
535
+ // Forget denials for PIDs that have since gone away (workers get recycled).
536
+ for (const pid of this.priorityRaiseDenied) {
537
+ if (!targets.includes(pid))
538
+ this.priorityRaiseDenied.delete(pid);
539
+ }
559
540
  let applied = 0;
541
+ let pinned = 0;
560
542
  for (const pid of targets) {
543
+ // The OS already told us it won't raise this PID — don't retry the raise on
544
+ // every transition. Lowering always works, so only short-circuit raises.
545
+ if (level === "normal" && this.priorityRaiseDenied.has(pid)) {
546
+ pinned++;
547
+ continue;
548
+ }
561
549
  try {
562
550
  setPriority(pid, priority);
563
551
  applied++;
552
+ this.priorityRaiseDenied.delete(pid); // a successful set makes any past denial stale
564
553
  }
565
554
  catch (err) {
566
- getLogger().warn(`orchestrator: setPriority(${pid}) failed: ${err.message}`);
555
+ // EACCES on a raise-to-normal is the expected POSIX limitation: note it
556
+ // once at info level, then go quiet. Anything else stays a real warning.
557
+ if (err?.code === "EACCES" && level === "normal") {
558
+ if (!this.priorityRaiseDenied.has(pid)) {
559
+ this.priorityRaiseDenied.add(pid);
560
+ getLogger().info(`orchestrator: 🤝 OS won't raise pid ${pid} back to normal without elevated privileges — leaving it niced (benign: nice only matters under CPU contention).`);
561
+ }
562
+ pinned++;
563
+ }
564
+ else {
565
+ getLogger().warn(`orchestrator: setPriority(${pid}) failed: ${err.message}`);
566
+ }
567
567
  }
568
568
  }
569
- getLogger().info(`orchestrator: 🤝 host OS priority ${level} (${applied}/${targets.length} processes)`);
569
+ const note = pinned ? `, ${pinned} pinned by OS` : "";
570
+ getLogger().info(`orchestrator: 🤝 host OS priority → ${level} (${applied}/${targets.length} processes${note})`);
570
571
  }
571
572
  async handlePrompt(req) {
572
573
  const conversationId = req.conversationId;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,QAAQ,IAAI,UAAU,EAAE,SAAS,IAAI,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAExG,OAAO,EACL,iBAAiB,EAEjB,oBAAoB,EACpB,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GAEvB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,cAAc,EAA0C,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAmB,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAoB,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAuB,MAAM,iBAAiB,CAAC;AAExE,MAAM,eAAe,GAAG,iCAAiC,CAAC;AAC1D,MAAM,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAC;AACvC,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;AACtC,MAAM,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAqCjD,MAAM,OAAO,mBAAmB;IA4GD;IA3GrB,UAAU,GAAyB,IAAI,CAAC;IACxC,iBAAiB,GAA0B,IAAI,CAAC;IAChD,eAAe,GAA0B,IAAI,CAAC;IAC9C,cAAc,GAA0B,IAAI,CAAC;IAC7C,qBAAqB,GAAG,KAAK,CAAC;IAC9B,YAAY,GAAG,KAAK,CAAC;IACrB,MAAM,GAAuB,cAAc,CAAC;IAE5C,iBAAiB,GAAG,KAAK,CAAC;IAEjB,GAAG,CAAS;IAC7B,6EAA6E;IAC7E,8EAA8E;IAC9E,yCAAyC;IACxB,IAAI,CAAa;IACjB,QAAQ,GAAG,IAAI,GAAG,EAAqD,CAAC;IACxE,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAClC,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAEpD,gFAAgF;IAChF,+EAA+E;IAC/E,0EAA0E;IACzD,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAChD,mBAAmB,GAAgC,IAAI,CAAC;IAChE,gFAAgF;IAChF,kFAAkF;IAClF,gFAAgF;IAChF,8EAA8E;IAC9E,iFAAiF;IACjF,4EAA4E;IAC3D,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IACjD,cAAc,GAAa,EAAE,CAAC;IAEtC,6FAA6F;IAC7F,8FAA8F;IAC9F,mFAAmF;IAC3E,UAAU,GAAG,KAAK,CAAC;IACnB,sBAAsB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,QAAQ,GAA0B,IAAI,CAAC;IACvC,oBAAoB,GAAa,EAAE,CAAC;IAC5C,4FAA4F;IAC5F,+DAA+D;IACvD,WAAW,GAAsB,IAAI,CAAC;IAE9C,0FAA0F;IAClF,YAAY;QAClB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,aAAa,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAgB;YACxB,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,MAAM;YACpC,MAAM,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,GAAG,EAAE,CAAC;YAC7C,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;YAClC,UAAU,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;YAC1C,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM;YAC3D,0BAA0B,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB;YAC7D,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,0CAA0C;YACxE,iBAAiB,EAAE,GAAG,EAAE;gBACtB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACrC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;YAC9D,CAAC;YACD,QAAQ,EAAE,GAAoB,EAAE;gBAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;gBAClC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtC,OAAO;oBACL,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI;oBACjC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO;oBACxB,MAAM,EAAE,GAAG,CAAC,QAAQ,GAAG,OAAO;oBAC9B,mBAAmB,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;oBACjE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;oBAChC,cAAc,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,cAAc,EAAE,CAAC,CAAC,cAAc;qBACjC,CAAC,CAAC;iBACJ,CAAC;YACJ,CAAC;YACD,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE;gBACnB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACvB,CAAC;YACD,iBAAiB,EAAE,KAAK,IAAI,EAAE;gBAC5B,gFAAgF;gBAChF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI;qBAClC,cAAc,EAAE;qBAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;qBACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACtB,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,CAAC;YACD,UAAU,EAAE,KAAK,IAAI,EAAE;gBACrB,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBACnD,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC7C,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACnC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,SAAS,EAAE,CAAC,IAAI,CAAC,uBAAuB,IAAI,YAAa,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;oBAClF,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;YACjC,CAAC;SACF,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,YAA6B,IAAyB;QAAzB,SAAI,GAAJ,IAAI,CAAqB;QACpD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;IAClC,CAAC;IAED,aAAa;QACX,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC1E,CAAC;IAED,iBAAiB;QACf,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,KAAK,WAAW;YAAE,OAAO;QACnD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,EAAE;gBAC9C,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,EAAE,CAAC,IAAI,CACd,yCAA0C,GAAa,CAAC,OAAO,EAAE,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,0EAA0E;QAC1E,wCAAwC;QAExC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC7B,SAAS,EAAE,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9D,MAAM,UAAU,GAAG,IAAI,oBAAoB,EAAE;aAC1C,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACjB,SAAS,EAAE,iBAAiB,CAAC,UAAU,GAAG,iBAAiB,CAAC,WAAW;SACxE,CAAC;aACD,sBAAsB,EAAE;aACxB,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;aAClC,KAAK,EAAE,CAAC;QAEX,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE;YAC7B,SAAS,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE;YAC5B,SAAS,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC5B,KAAK,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC5B,SAAS,EAAE,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAC5D,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,OAA0B,EAAE,EAAE;YACzD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,IAAI,WAAW,CAAC;YACjE,MAAM,QAAQ,GAAG,OAAO,EAAE,cAAc,IAAI,OAAO,EAAE,cAAc,IAAI,EAAE,CAAC;YAC1E,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YAC/B,SAAS,EAAE,CAAC,IAAI,CACd,+BAA+B,MAAM,KAAK,QAAQ,CAAC,MAAM,oBAAoB,CAC9E,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAe,EAAE,EAAE;YAC3C,SAAS,EAAE,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAiB,EAAE,GAAW,EAAE,EAAE;YAC7D,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC3B,SAAS;gBACT,OAAO,EAAE,QAAQ,GAAG,EAAE;gBACtB,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,uBAAuB,GAAG,CAAC,cAAsB,EAAE,OAAe,EAAQ,EAAE;YAChF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC,CAAC;QACF,UAAU,CAAC,EAAE,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAC;QAC9D,UAAU,CAAC,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,CAAC;QAE5D,8EAA8E;QAC9E,2EAA2E;QAC3E,gFAAgF;QAChF,MAAM,SAAS,GAAG,CAAC,GAAqB,EAAQ,EAAE;YAChD,KAAK,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACtC,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAExC,MAAM,WAAW,GAAG,CAAC,cAAsB,EAAQ,EAAE;YACnD,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAC3C,CAAC,CAAC;QACF,UAAU,CAAC,EAAE,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;QAChD,UAAU,CAAC,EAAE,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAElD,UAAU,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,cAAsB,EAAE,EAAE;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC;YAC/D,IAAI,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,4FAA4F;QAC5F,6FAA6F;QAC7F,qCAAqC;QACrC,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,MAAc,EAAE,EAAE;YAC9C,SAAS,EAAE,CAAC,IAAI,CAAC,0CAA0C,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC,QAAQ;gBACX,EAAE,oBAAoB,CAAC,MAAM,IAAI,cAAc,CAAC;iBAC/C,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,KAAc,EAAE,EAAE;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC5B,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE,CAChD,SAAS,EAAE,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,OAAO,CAAC,CACzE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,OAAe,EAAE,EAAE;YACzC,SAAS,EAAE,CAAC,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC5B,SAAS,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,EAAE,CAAC,KAAK,CAAC,uCAAuC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YACnF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxB,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,6DAA6D;QACpF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,EAAE,CAAC,IAAI,CAAC,mCAAmC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC/B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,uEAAuE;QACvE,kEAAkE;QAClE,kDAAkD;QAClD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,EAAE,CAAC,IAAI,CAAC,+CAA+C,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,0DAA0D;QAClF,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,kFAAkF;YACvG,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC,IAAI,CAAC,uCAAuC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QACD,oEAAoE;QACpE,qDAAqD;QACrD,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IAC9D,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,yDAAyD;IACjD,iBAAiB,CAAC,OAAe,EAAE,QAAgB,WAAW;QACpE,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,OAAO,CAAC,kBAAkB;QAC5D,IAAI,IAAI,CAAC,qBAAqB;YAAE,OAAO,CAAC,uCAAuC;QAC/E,SAAS,EAAE,CAAC,IAAI,CAAC,iBAAiB,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7E,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;gBACvC,SAAS,EAAE,CAAC,KAAK,CAAC,iBAAiB,KAAK,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjE,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED,0FAA0F;IAC1F,4FAA4F;IAC5F,gGAAgG;IACxF,KAAK,CAAC,2BAA2B,CACvC,GAAe;QAEf,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1D,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,GAAG,MAAM,sBAAsB,CACpE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,YAAY,CACpD,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,KAAK,KAAK,CAAC;QAC7C,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACpE,8FAA8F;QAC9F,6FAA6F;QAC7F,8DAA8D;QAC9D,IAAI,aAAa,IAAI,YAAY,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACnD,SAAS,EAAE,CAAC,IAAI,CACd,0FAA0F;gBACxF,wEAAwE;gBACxE,mFAAmF,CACtF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,mBAAmB;YACnB,aAAa;YACb,OAAO,EAAE,GAAG,mBAAmB,CAAC,MAAM,4BAA4B,aAAa,iBAAiB,YAAY,IAAI,QAAQ,CAAC,MAAM,EAAE;SAClI,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,EAAE,mBAAmB,EAAE,aAAa,EAAE,OAAO,EAAE,GACnD,MAAM,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;QAC9C,0EAA0E;QAC1E,sEAAsE;QACtE,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAChF,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO;QACnF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE;gBAC3C,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,QAAQ;gBACnB,YAAY,EAAE,mBAAmB;gBACjC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;gBACjC,MAAM,EAAE,UAAU,EAAE;gBACpB,QAAQ,EAAE,MAAM,EAAE;gBAClB,uFAAuF;gBACvF,0FAA0F;gBAC1F,qCAAqC;gBACrC,aAAa;aACd,CAAC,CAAC;YACH,SAAS,EAAE,CAAC,IAAI,CAAC,yCAAyC,OAAO,GAAG,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,EAAE,CAAC,IAAI,CACd,4CAA6C,GAAa,CAAC,OAAO,EAAE,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACrC,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,iDAAiD;QACzE,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO;QACzC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC3C,MAAM,EAAE,mBAAmB,EAAE,aAAa,EAAE,OAAO,EAAE,GACnD,MAAM,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE;gBAC3C,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,QAAQ;gBACnB,YAAY,EAAE,mBAAmB;gBACjC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;gBACjC,MAAM,EAAE,UAAU,EAAE;gBACpB,QAAQ,EAAE,MAAM,EAAE;gBAClB,kFAAkF;gBAClF,aAAa;aACd,CAAC,CAAC;YACH,SAAS,EAAE,CAAC,IAAI,CAAC,gCAAgC,OAAO,GAAG,CAAC,CAAC;YAC7D,uFAAuF;YACvF,wFAAwF;YACxF,wDAAwD;YACxD,IAAI,CAAC;gBACH,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,SAAS,EAAE,CAAC,IAAI,CAAC,sCAAuC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,EAAE,CAAC,KAAK,CAAC,gCAAgC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB;YAAE,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAClE,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YAC9C,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,KAAK,WAAW;gBAAE,OAAO;YACnD,uEAAuE;YACvE,2EAA2E;YAC3E,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC,IAAI,CAAC,gCAAgC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YAC7E,CAAC;YACD,qEAAqE;YACrE,qEAAqE;YACrE,qEAAqE;YACrE,sEAAsE;YACtE,IAAI,CAAC;gBACH,wEAAwE;gBACxE,yEAAyE;gBACzE,uEAAuE;gBACvE,yDAAyD;gBACzD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAEpB,yEAAyE;gBACzE,yEAAyE;gBACzE,6EAA6E;gBAC7E,wEAAwE;gBACxE,uEAAuE;gBACvE,sEAAsE;gBACtE,sEAAsE;gBACtE,yEAAyE;gBACzE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;oBAC3B,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CACd,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;wBACjE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAC9B,CAAC,CAAC,CAAC;oBACN,CAAC,CAAC,IAAI,CAAC;gBACT,MAAM,QAAQ,GAAG,OAAO;oBACtB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBACnE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;gBACnC,uEAAuE;gBACvE,yEAAyE;gBACzE,yDAAyD;gBACzD,MAAM,iBAAiB,GACrB,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;gBACjF,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CACtC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAEzF,2BAA2B;gBAC3B,4EAA4E;gBAC5E,uEAAuE;gBACvE,6EAA6E;gBAC7E,8EAA8E;gBAC9E,8EAA8E;gBAC9E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,kDAAkD;gBAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,IAAI,sBAAsB,CAAC;gBAChE,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC;gBAC9D,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5F,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,KAAK,CAAC,CAAC,CAAC;gBAEzF,MAAM,QAAQ,GAAG,iBAAiB,CAAC;oBACjC,OAAO;oBACP,kBAAkB;oBAClB,eAAe,EAAE,QAAQ,CAAC,eAAe;oBACzC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;oBACtC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;oBACtC,iBAAiB,EAAE,uBAAuB;iBAC3C,CAAC,CAAC;gBAEH,yEAAyE;gBACzE,yEAAyE;gBACzE,IAAI,QAAQ,CAAC,eAAe,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC1D,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;oBACjD,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,eAAe,CAAC;gBACtD,CAAC;gBAED,wEAAwE;gBACxE,0EAA0E;gBAC1E,wEAAwE;gBACxE,oCAAoC;gBACpC,uFAAuF;gBACvF,8DAA8D;gBAC9D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;oBACvC,IAAI,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,sBAAsB;wBAAE,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC,UAAU,CAAC;gBAC7F,CAAC;gBAED,QAAQ,CAAC,iBAAiB;oBACxB,CAAC,IAAI,CAAC,UAAU,IAAI,gDAAgD;wBACpE,QAAQ,CAAC,iBAAiB;wBAC1B,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,sBAAsB,CAAC;gBAC5D,QAAQ,CAAC,aAAa,GAAG,OAAO,CAAC;gBACjC,QAAQ,CAAC,sBAAsB,GAAG,QAAQ,CAAC,sBAAsB,CAAC;gBAClE,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACjD,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACjD,QAAQ,CAAC,mBAAmB,GAAG,QAAQ,CAAC,eAAe,KAAK,aAAa,CAAC;gBAE1E,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBACpD,SAAS,EAAE,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC,IAAI,CAAC,kCAAkC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC5B,CAAC;IAED,8EAA8E;IAC9E,4EAA4E;IAC5E,iFAAiF;IACjF,iFAAiF;IACjF,iFAAiF;IACzE,iBAAiB,CAAC,KAA2B;QACnD,MAAM,QAAQ,GACZ,KAAK,KAAK,aAAa;YACrB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,qBAAqB;YAC5C,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC3C,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACzD,4EAA4E;QAC5E,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,4EAA4E;YAC5E,yEAAyE;YACzE,IAAI,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5D,MAAM,EAAE,CAAC;gBACT,SAAS;YACX,CAAC;YACD,IAAI,CAAC;gBACH,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC3B,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,+CAA+C;YACvF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,wEAAwE;gBACxE,yEAAyE;gBACzE,IAAK,GAA6B,EAAE,IAAI,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC5E,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBACvC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAClC,SAAS,EAAE,CAAC,IAAI,CACd,uCAAuC,GAAG,kHAAkH,CAC7J,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE,CAAC;gBACX,CAAC;qBAAM,CAAC;oBACN,SAAS,EAAE,CAAC,IAAI,CAAC,6BAA6B,GAAG,aAAc,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,SAAS,EAAE,CAAC,IAAI,CAAC,uCAAuC,KAAK,KAAK,OAAO,IAAI,OAAO,CAAC,MAAM,aAAa,IAAI,GAAG,CAAC,CAAC;IACnH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAqB;QAC9C,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;QAC1C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,SAAS,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,wCAAwC;YACxC,yEAAyE;YACzE,2EAA2E;YAC3E,uEAAuE;YACvE,4EAA4E;YAC5E,6EAA6E;YAC7E,4CAA4C;YAC5C,MAAM,cAAc,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC;YACjE,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,cAAc,IAAI,OAAO,EAAE,SAAS,CAAC;YACvD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,uCAAuC,cAAc,wBAAwB;oBAC3E,+EAA+E,CAClF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,cAAc,IAAI,cAAc,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;gBAClE,SAAS,EAAE,CAAC,IAAI,CACd,8BAA8B,cAAc,kBAAkB;oBAC5D,GAAG,OAAO,CAAC,SAAS,MAAM,cAAc,EAAE,CAC7C,CAAC;gBACF,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC;YACrC,CAAC;YAED,wEAAwE;YACxE,2EAA2E;YAC3E,2EAA2E;YAC3E,yEAAyE;YACzE,gDAAgD;YAChD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,MAAwB,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;oBACzC,SAAS,EAAE,CAAC,IAAI,CAAC,sCAAsC,SAAS,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;oBACpF,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;wBAC3B,SAAS;wBACT,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,mBAAmB;wBAC1B,YAAY,EAAE;4BACZ,MAAM,EAAE,KAAK;4BACb,cAAc,EAAE,GAAG,CAAC,WAAW;4BAC/B,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;4BAC1C,cAAc,EAAE,GAAG,CAAC,SAAS;4BAC7B,SAAS;4BACT,OAAO,EAAE,GAAG,CAAC,OAAO;yBACrB;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;oBACH,OAAO,CAAC,+CAA+C;gBACzD,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;YACnD,MAAM,aAAa,GAKf,EAAE,CAAC;YACP,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI;gBAAE,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;YACnE,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI;gBAAE,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;YACzE,8EAA8E;YAC9E,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI;gBAAE,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YAC7D,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI;gBAAE,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;YAEzE,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAChC,cAAc,EACd,UAAU,EACV,KAAK,EAAE,KAAa,EAAE,EAAE;gBACtB,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC;gBAC9D,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;oBAC3B,SAAS;oBACT,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;YACL,CAAC,EACD,aAAa,CACd,CAAC;YAEF,4EAA4E;YAC5E,+EAA+E;YAC/E,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,gBAAgB,IAAI,UAAU,CAAC,GAAG,UAAU,CAAC;YACvE,IAAI,QAAQ,GAAG,CAAC;gBAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;YAE7C,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,SAAS,EAAE,CAAC,IAAI,CACd,iCAAiC,cAAc,GAAG;gBAChD,OAAO,MAAM,EAAE,YAAY,IAAI,CAAC,SAAS,MAAM,EAAE,gBAAgB,IAAI,UAAU,IAAI;gBACnF,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,KAAK,CACjC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,CAAC;YACvC,SAAS,EAAE,CAAC,KAAK,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;YAC7D,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC3B,SAAS;gBACT,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,cAAsB;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,OAAO,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,eAAe;YAAE,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBACpD,IAAI,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,0BAA0B,EAAE,CAAC;oBAC1D,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC1B,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,OAAgB;QACjD,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,KAAK,WAAW;YAAE,OAAO;QACnD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,EAAE,CAAC,IAAI,CAAC,sBAAsB,MAAM,WAAW,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,MAA0B;QAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ export type ToolVerdict = "capable" | "incapable" | "unknown";
2
+ export declare function classifyModelToolCapability(filePath: string): Promise<ToolVerdict>;
3
+ /**
4
+ * Decide whether to advertise `supportsTools` to the orchestrator.
5
+ *
6
+ * An explicit operator opt-in (`optedIn === true`) is only overridden by POSITIVE, COMPLETE
7
+ * proof that no local model can tool-call — i.e. every model was successfully classified and
8
+ * all came back "incapable". Indeterminate verdicts (probe errors, missing chat template) never
9
+ * veto the opt-in: the orchestrator empirically qualifies tool-calling per (host, model) and is
10
+ * the real arbiter, so a local heuristic that fails closed would wrongly bench capable hosts.
11
+ * Opt-out (`optedIn === false`) always serves chat-only.
12
+ */
13
+ export declare function decideSupportsTools(optedIn: boolean, verdicts: ToolVerdict[]): boolean;
14
+ /**
15
+ * Classifies local models by native tool-calling capability. Returns capabilities ordered
16
+ * tool-capable-first (so the orchestrator's caps[0] decider can actually emit tool calls),
17
+ * then unknown (best-effort), then known-incapable last — plus the per-model verdicts that
18
+ * feed decideSupportsTools.
19
+ */
20
+ export declare function classifyToolCapability(llmDir: string, modelNames: string[]): Promise<{
21
+ orderedCapabilities: string[];
22
+ verdicts: ToolVerdict[];
23
+ }>;
24
+ //# sourceMappingURL=tool-capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-capability.d.ts","sourceRoot":"","sources":["../../src/core/tool-capability.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAI9D,wBAAsB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAwBxF;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAMtF;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC;IAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAarE"}
@@ -0,0 +1,67 @@
1
+ import { statSync } from "node:fs";
2
+ import { join, basename } from "node:path";
3
+ import { getLogger } from "./logger.js";
4
+ const toolCapabilityCache = new Map();
5
+ export async function classifyModelToolCapability(filePath) {
6
+ try {
7
+ const stat = statSync(filePath);
8
+ const cached = toolCapabilityCache.get(filePath);
9
+ if (cached && cached.mtimeMs === stat.mtimeMs)
10
+ return cached.verdict;
11
+ const { readGgufFileInfo } = await import("node-llama-cpp");
12
+ const info = await readGgufFileInfo(filePath, { readTensorInfo: false, logWarnings: false });
13
+ const meta = info?.metadata;
14
+ const tmpl = meta?.tokenizer?.chat_template ?? meta?.chat_template;
15
+ // No readable chat template → we genuinely can't judge; defer rather than veto.
16
+ // Template present and mentions tools → capable; present and silent on tools → incapable.
17
+ const verdict = typeof tmpl !== "string" ? "unknown" : /tool/i.test(tmpl) ? "capable" : "incapable";
18
+ toolCapabilityCache.set(filePath, { mtimeMs: stat.mtimeMs, verdict });
19
+ return verdict;
20
+ }
21
+ catch (err) {
22
+ getLogger().warn(`tool-capability probe failed for ${basename(filePath)}: ${err?.message ?? String(err)}`);
23
+ return "unknown"; // probe error → indeterminate, never a hard "no"
24
+ }
25
+ }
26
+ /**
27
+ * Decide whether to advertise `supportsTools` to the orchestrator.
28
+ *
29
+ * An explicit operator opt-in (`optedIn === true`) is only overridden by POSITIVE, COMPLETE
30
+ * proof that no local model can tool-call — i.e. every model was successfully classified and
31
+ * all came back "incapable". Indeterminate verdicts (probe errors, missing chat template) never
32
+ * veto the opt-in: the orchestrator empirically qualifies tool-calling per (host, model) and is
33
+ * the real arbiter, so a local heuristic that fails closed would wrongly bench capable hosts.
34
+ * Opt-out (`optedIn === false`) always serves chat-only.
35
+ */
36
+ export function decideSupportsTools(optedIn, verdicts) {
37
+ if (!optedIn)
38
+ return false;
39
+ const anyCapable = verdicts.some((v) => v === "capable");
40
+ const anyUnknown = verdicts.some((v) => v === "unknown");
41
+ // Veto only on positive, complete proof of incapability (no capables, no unknowns).
42
+ return verdicts.length === 0 || anyCapable || anyUnknown;
43
+ }
44
+ /**
45
+ * Classifies local models by native tool-calling capability. Returns capabilities ordered
46
+ * tool-capable-first (so the orchestrator's caps[0] decider can actually emit tool calls),
47
+ * then unknown (best-effort), then known-incapable last — plus the per-model verdicts that
48
+ * feed decideSupportsTools.
49
+ */
50
+ export async function classifyToolCapability(llmDir, modelNames) {
51
+ const capable = [];
52
+ const unknown = [];
53
+ const incapable = [];
54
+ const verdicts = [];
55
+ for (const name of modelNames) {
56
+ const verdict = await classifyModelToolCapability(join(llmDir, `${name}.gguf`));
57
+ verdicts.push(verdict);
58
+ if (verdict === "capable")
59
+ capable.push(name);
60
+ else if (verdict === "unknown")
61
+ unknown.push(name);
62
+ else
63
+ incapable.push(name);
64
+ }
65
+ return { orderedCapabilities: [...capable, ...unknown, ...incapable], verdicts };
66
+ }
67
+ //# sourceMappingURL=tool-capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-capability.js","sourceRoot":"","sources":["../../src/core/tool-capability.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "peerllm-host-cli",
3
- "version": "2.1.4",
3
+ "version": "2.1.6",
4
4
  "description": "Command-line PeerLLM host: serve decentralized AI compute from a headless machine.",
5
5
  "author": {
6
6
  "name": "Hassan Habib",