unity-open-mcp 1.2.3 → 1.4.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.
Files changed (174) hide show
  1. package/README.md +34 -2
  2. package/dist/agent-identity.d.ts +12 -0
  3. package/dist/agent-identity.js +2 -0
  4. package/dist/agent-identity.js.map +1 -1
  5. package/dist/batch-spawn.d.ts +39 -0
  6. package/dist/batch-spawn.js +287 -69
  7. package/dist/batch-spawn.js.map +1 -1
  8. package/dist/capabilities/build-capabilities.js +2 -0
  9. package/dist/capabilities/build-capabilities.js.map +1 -1
  10. package/dist/capabilities/discovery.d.ts +51 -0
  11. package/dist/capabilities/discovery.js +87 -0
  12. package/dist/capabilities/discovery.js.map +1 -0
  13. package/dist/capabilities/lifecycle.d.ts +6 -0
  14. package/dist/capabilities/lifecycle.js +17 -1
  15. package/dist/capabilities/lifecycle.js.map +1 -1
  16. package/dist/capabilities/tool-groups.js +1 -0
  17. package/dist/capabilities/tool-groups.js.map +1 -1
  18. package/dist/child-supervision.d.ts +6 -0
  19. package/dist/child-supervision.js +12 -0
  20. package/dist/child-supervision.js.map +1 -1
  21. package/dist/cli/args.d.ts +24 -2
  22. package/dist/cli/args.js +97 -2
  23. package/dist/cli/args.js.map +1 -1
  24. package/dist/cli/cli.js +42 -3
  25. package/dist/cli/cli.js.map +1 -1
  26. package/dist/cli/help-text.d.ts +1 -0
  27. package/dist/cli/help-text.js +83 -3
  28. package/dist/cli/help-text.js.map +1 -1
  29. package/dist/cli/json-guards.d.ts +2 -0
  30. package/dist/cli/json-guards.js +5 -0
  31. package/dist/cli/json-guards.js.map +1 -0
  32. package/dist/cli/setup-command.d.ts +116 -0
  33. package/dist/cli/setup-command.js +696 -0
  34. package/dist/cli/setup-command.js.map +1 -0
  35. package/dist/cli/update-command.d.ts +30 -0
  36. package/dist/cli/update-command.js +271 -0
  37. package/dist/cli/update-command.js.map +1 -0
  38. package/dist/compile-verify.d.ts +3 -0
  39. package/dist/compile-verify.js +4 -0
  40. package/dist/compile-verify.js.map +1 -1
  41. package/dist/constants.d.ts +10 -2
  42. package/dist/constants.js +10 -2
  43. package/dist/constants.js.map +1 -1
  44. package/dist/dialog-dismiss.d.ts +108 -12
  45. package/dist/dialog-dismiss.js +294 -109
  46. package/dist/dialog-dismiss.js.map +1 -1
  47. package/dist/dialog-policy.d.ts +55 -9
  48. package/dist/dialog-policy.js +85 -15
  49. package/dist/dialog-policy.js.map +1 -1
  50. package/dist/editor-search.d.ts +2 -0
  51. package/dist/editor-search.js +8 -0
  52. package/dist/editor-search.js.map +1 -0
  53. package/dist/gate-error.d.ts +3 -0
  54. package/dist/gate-error.js.map +1 -1
  55. package/dist/index.js +56 -1
  56. package/dist/index.js.map +1 -1
  57. package/dist/instance-discovery.d.ts +16 -0
  58. package/dist/instance-discovery.js +45 -0
  59. package/dist/instance-discovery.js.map +1 -1
  60. package/dist/jobs/adapters.d.ts +15 -0
  61. package/dist/jobs/adapters.js +147 -0
  62. package/dist/jobs/adapters.js.map +1 -0
  63. package/dist/jobs/handler.d.ts +3 -0
  64. package/dist/jobs/handler.js +29 -0
  65. package/dist/jobs/handler.js.map +1 -0
  66. package/dist/jobs/job-manager.d.ts +123 -0
  67. package/dist/jobs/job-manager.js +290 -0
  68. package/dist/jobs/job-manager.js.map +1 -0
  69. package/dist/live-client.d.ts +50 -2
  70. package/dist/live-client.js +221 -26
  71. package/dist/live-client.js.map +1 -1
  72. package/dist/local-tools.d.ts +17 -0
  73. package/dist/local-tools.js +47 -0
  74. package/dist/local-tools.js.map +1 -0
  75. package/dist/project-path.d.ts +99 -0
  76. package/dist/project-path.js +171 -0
  77. package/dist/project-path.js.map +1 -0
  78. package/dist/release-lookup.d.ts +32 -0
  79. package/dist/release-lookup.js +147 -0
  80. package/dist/release-lookup.js.map +1 -0
  81. package/dist/routers.d.ts +17 -3
  82. package/dist/routers.js +29 -8
  83. package/dist/routers.js.map +1 -1
  84. package/dist/running-unity.d.ts +21 -0
  85. package/dist/running-unity.js +50 -0
  86. package/dist/running-unity.js.map +1 -1
  87. package/dist/schema-defaults.d.ts +4 -3
  88. package/dist/schema-defaults.js +20 -6
  89. package/dist/schema-defaults.js.map +1 -1
  90. package/dist/server-instructions.js +7 -1
  91. package/dist/server-instructions.js.map +1 -1
  92. package/dist/server.d.ts +10 -3
  93. package/dist/server.js +24 -25
  94. package/dist/server.js.map +1 -1
  95. package/dist/setup/codex-toml.d.ts +23 -0
  96. package/dist/setup/codex-toml.js +514 -0
  97. package/dist/setup/codex-toml.js.map +1 -0
  98. package/dist/setup/portable-config.d.ts +59 -0
  99. package/dist/setup/portable-config.js +241 -0
  100. package/dist/setup/portable-config.js.map +1 -0
  101. package/dist/skill/SKILL.md +68 -0
  102. package/dist/skill/client-paths.js +2 -4
  103. package/dist/skill/client-paths.js.map +1 -1
  104. package/dist/skill/copy-references.d.ts +2 -0
  105. package/dist/skill/copy-references.js +16 -0
  106. package/dist/skill/copy-references.js.map +1 -0
  107. package/dist/skill/generate-skill.js +5 -3
  108. package/dist/skill/generate-skill.js.map +1 -1
  109. package/dist/skill/references/batch-and-gates.md +142 -0
  110. package/dist/skill/references/compile-and-safe-mode.md +163 -0
  111. package/dist/skill/references/discovery-and-groups.md +30 -0
  112. package/dist/skill/references/routing-and-lifecycle.md +62 -0
  113. package/dist/skill/references/senses-and-tests.md +41 -0
  114. package/dist/skill/references/yaml-and-offline-work.md +33 -0
  115. package/dist/templates/mcp-wrapper.sh +35 -0
  116. package/dist/tool-contract.d.ts +8 -0
  117. package/dist/tool-contract.js +253 -0
  118. package/dist/tool-contract.js.map +1 -0
  119. package/dist/tool-router.d.ts +62 -7
  120. package/dist/tool-router.js +455 -17
  121. package/dist/tool-router.js.map +1 -1
  122. package/dist/tool-session-state.d.ts +6 -0
  123. package/dist/tool-session-state.js +14 -0
  124. package/dist/tool-session-state.js.map +1 -1
  125. package/dist/tools/agent-capabilities.js +9 -0
  126. package/dist/tools/agent-capabilities.js.map +1 -1
  127. package/dist/tools/batch-execute.js +17 -14
  128. package/dist/tools/batch-execute.js.map +1 -1
  129. package/dist/tools/bridge-status.js +4 -5
  130. package/dist/tools/bridge-status.js.map +1 -1
  131. package/dist/tools/compile-check.js +6 -4
  132. package/dist/tools/compile-check.js.map +1 -1
  133. package/dist/tools/component-get.js +2 -2
  134. package/dist/tools/component-get.js.map +1 -1
  135. package/dist/tools/component-modify.js +4 -4
  136. package/dist/tools/component-modify.js.map +1 -1
  137. package/dist/tools/execute-csharp.js +8 -4
  138. package/dist/tools/execute-csharp.js.map +1 -1
  139. package/dist/tools/gameobject-modify.js +2 -1
  140. package/dist/tools/gameobject-modify.js.map +1 -1
  141. package/dist/tools/index.d.ts +2 -0
  142. package/dist/tools/index.js +10 -2
  143. package/dist/tools/index.js.map +1 -1
  144. package/dist/tools/inputsim-key.js +12 -14
  145. package/dist/tools/inputsim-key.js.map +1 -1
  146. package/dist/tools/inputsim-pointer.js +3 -3
  147. package/dist/tools/inputsim-pointer.js.map +1 -1
  148. package/dist/tools/inputsim-step.js +7 -8
  149. package/dist/tools/inputsim-step.js.map +1 -1
  150. package/dist/tools/inputsim-touch.js +9 -10
  151. package/dist/tools/inputsim-touch.js.map +1 -1
  152. package/dist/tools/jobs.d.ts +40 -0
  153. package/dist/tools/jobs.js +18 -0
  154. package/dist/tools/jobs.js.map +1 -0
  155. package/dist/tools/manage-tools.js +10 -5
  156. package/dist/tools/manage-tools.js.map +1 -1
  157. package/dist/tools/project-commands.d.ts +40 -0
  158. package/dist/tools/project-commands.js +23 -0
  159. package/dist/tools/project-commands.js.map +1 -0
  160. package/dist/tools/read-compile-errors.js +14 -93
  161. package/dist/tools/read-compile-errors.js.map +1 -1
  162. package/dist/tools/scan-paths.js +4 -4
  163. package/dist/tools/scan-paths.js.map +1 -1
  164. package/dist/tools/schema-fragments.d.ts +15 -3
  165. package/dist/tools/schema-fragments.js +23 -13
  166. package/dist/tools/schema-fragments.js.map +1 -1
  167. package/dist/tools/upgrade.d.ts +40 -0
  168. package/dist/tools/upgrade.js +55 -0
  169. package/dist/tools/upgrade.js.map +1 -0
  170. package/dist/unity-install-discovery.d.ts +24 -0
  171. package/dist/unity-install-discovery.js +113 -4
  172. package/dist/unity-install-discovery.js.map +1 -1
  173. package/package.json +4 -3
  174. package/templates/mcp-wrapper.sh +35 -0
@@ -1,10 +1,11 @@
1
+ import { detectStaleAssembly } from "./unity-log.js";
1
2
  import { spawn } from "node:child_process";
2
3
  import { StringDecoder } from "node:string_decoder";
3
4
  import { stat } from "node:fs/promises";
4
5
  import { trackBatchChild } from "./child-supervision.js";
5
- import { resolveUnityPath, scannedHubRoots } from "./unity-install-discovery.js";
6
- import { readInstanceLock, isPidAlive, classifyInstance, } from "./instance-discovery.js";
7
- import { findUnityForProject } from "./running-unity.js";
6
+ import { readProjectUnityVersion, resolveUnityPathForProject, scannedHubRoots, } from "./unity-install-discovery.js";
7
+ import { readInstanceLock, isPidAlive, classifyInstance, normalizePath, } from "./instance-discovery.js";
8
+ import { findHeadlessUnityForProject, findUnityForProject } from "./running-unity.js";
8
9
  import { makeErrorResult } from "./results.js";
9
10
  import { VERIFY_JSON_BEGIN, VERIFY_JSON_END } from "./constants.js";
10
11
  const VERIFY_EXECUTE_METHOD = "UnityOpenMcpVerify.Batch.VerifyBatchEntry.Run";
@@ -12,6 +13,36 @@ const BRIDGE_EXECUTE_METHOD = "UnityOpenMcpBridge.Batch.BridgeBatchEntry.Run";
12
13
  const OUTPUT_BEGIN = VERIFY_JSON_BEGIN;
13
14
  const OUTPUT_END = VERIFY_JSON_END;
14
15
  const DEFAULT_BATCH_TIMEOUT_MS = 600_000;
16
+ // How long a FAILED editor resolution is reused by availability checks
17
+ // before the Hub install roots are rescanned. See refreshUnityPath.
18
+ export const FAILED_RESOLUTION_TTL_MS = 30_000;
19
+ // Per-project batch lease, keyed by the normalized project path (the same
20
+ // normalization the Unity process scan compares with), carrying what the run
21
+ // is so Editor-ownership surfaces can explain it instead of reporting "no
22
+ // Unity running".
23
+ const activeBatchProjects = new Map();
24
+ function leaseKey(projectPath) {
25
+ return normalizePath(projectPath);
26
+ }
27
+ /**
28
+ * The headless run this server is driving for `projectPath`, or null when no
29
+ * batch lease is held for it. Returns a copy; callers cannot mutate the lease.
30
+ */
31
+ export function activeHeadlessRun(projectPath) {
32
+ if (!projectPath)
33
+ return null;
34
+ const run = activeBatchProjects.get(leaseKey(projectPath));
35
+ return run ? { ...run } : null;
36
+ }
37
+ const BATCH_IN_PROGRESS_MESSAGE = "A headless operation already owns this project. Wait for it to finish.";
38
+ // A -batchmode Unity another process has open on the project (a second MCP
39
+ // server's compile_check, a CI run). It is a headless run like our own lease,
40
+ // not an Editor to diagnose, so it gets the same code with its pid.
41
+ function foreignHeadlessMessage(pid) {
42
+ return (`A headless Unity from another process (pid ${pid}) has this project open — ` +
43
+ "a batch run from a second MCP server or CI, not an interactive Editor. " +
44
+ "Unity allows one instance per project; wait for it to exit, then retry.");
45
+ }
15
46
  const VERIFY_TOOL_TO_OPERATION = {
16
47
  unity_open_mcp_scan_all: "scan_all",
17
48
  unity_open_mcp_baseline_create: "baseline_create",
@@ -54,15 +85,48 @@ export const BATCH_TOOL_NAMES = new Set([
54
85
  ...Object.keys(VERIFY_TOOL_TO_OPERATION),
55
86
  ...Object.keys(META_TOOL_TO_OPERATION),
56
87
  ]);
57
- function extractJson(stdout) {
58
- const beginIdx = stdout.indexOf(OUTPUT_BEGIN);
59
- if (beginIdx === -1)
60
- return null;
61
- const jsonStart = beginIdx + OUTPUT_BEGIN.length;
62
- const endIdx = stdout.indexOf(OUTPUT_END, jsonStart);
63
- if (endIdx === -1)
64
- return null;
65
- return stdout.slice(jsonStart, endIdx).trim();
88
+ // Returns the JSON payload between the result markers, or null when no
89
+ // complete BEGIN/END block exists. The headless run passes `-logFile -`, so
90
+ // Unity's own log (engine lines, background-thread output, Debug.Log) shares
91
+ // stdout with the markers. The batch entry points emit the whole block in one
92
+ // write, but a log line can still land inside it (a package built before that
93
+ // change writes the block in three pieces), and a logged copy of the output
94
+ // can repeat the markers. Blocks are tried last-first: the exact slice wins
95
+ // when it parses; otherwise the first line inside the block that parses as a
96
+ // JSON object is taken. When nothing parses, the last block's raw slice is
97
+ // returned so the caller reports a parse failure instead of missing markers.
98
+ export function extractJson(stdout) {
99
+ let fallback = null;
100
+ let searchFrom = stdout.length;
101
+ while (searchFrom >= 0) {
102
+ const beginIdx = stdout.lastIndexOf(OUTPUT_BEGIN, searchFrom);
103
+ if (beginIdx === -1)
104
+ break;
105
+ searchFrom = beginIdx - 1;
106
+ const jsonStart = beginIdx + OUTPUT_BEGIN.length;
107
+ const endIdx = stdout.indexOf(OUTPUT_END, jsonStart);
108
+ if (endIdx === -1)
109
+ continue;
110
+ const slice = stdout.slice(jsonStart, endIdx).trim();
111
+ fallback ??= slice;
112
+ if (parsesAsObject(slice))
113
+ return slice;
114
+ for (const line of slice.split(/\r?\n/)) {
115
+ const candidate = line.trim();
116
+ if (candidate.startsWith("{") && parsesAsObject(candidate))
117
+ return candidate;
118
+ }
119
+ }
120
+ return fallback;
121
+ }
122
+ function parsesAsObject(text) {
123
+ try {
124
+ const value = JSON.parse(text);
125
+ return typeof value === "object" && value !== null && !Array.isArray(value);
126
+ }
127
+ catch {
128
+ return false;
129
+ }
66
130
  }
67
131
  // M13 — bounded, UTF-8-correct stdout/stderr accumulator for the batch spawn.
68
132
  //
@@ -414,7 +478,7 @@ const UNITY_SPAWN_REFUSED_NEXT_STEPS = [
414
478
  // Builds the argv array passed to the headless Unity child process. Exported
415
479
  // for unit tests that assert compile_check omits -quit (async finalize path).
416
480
  export function buildUnityBatchArgs(operation, projectPath, executeMethod, toolArgs) {
417
- const unityArgs = ["-batchmode"];
481
+ const unityArgs = ["-batchmode", "-logFile", "-"];
418
482
  // compile_check is asynchronous: BridgeBatchEntry.Run() returns immediately
419
483
  // and CompileCheckState emits markers later from EditorApplication.update.
420
484
  // -quit would exit as soon as Run() returns (exit 0, no markers).
@@ -444,36 +508,29 @@ export class BatchClassificationError extends Error {
444
508
  }
445
509
  }
446
510
  export class BatchSpawn {
447
- unityPath;
448
- unityPathSource;
511
+ unityPath = "";
512
+ unityPathSource = "none";
449
513
  projectPath;
450
514
  timeoutMs;
451
515
  discoveryRoots;
516
+ spawnProcess;
517
+ now;
518
+ resolutionError;
519
+ // Inputs (project version + env) the cached resolution was computed for,
520
+ // and when it was computed; undefined until the first resolution. See
521
+ // refreshUnityPath.
522
+ resolutionKey;
523
+ resolvedAt = 0;
452
524
  constructor(options = {}) {
453
525
  this.discoveryRoots = options.discoveryRoots;
454
- // UNITY_PATH env (validated, wins) -> auto-discovered install (preferred
455
- // version from the running bridge's lock when available) -> none.
456
- const lock = readInstanceLock(options.projectPath ?? process.env.UNITY_PROJECT_PATH ?? "");
457
- const resolved = resolveUnityPath(lock?.unityVersion, this.discoveryRoots);
458
- if (resolved) {
459
- this.unityPath = resolved.path;
460
- this.unityPathSource = resolved.source;
461
- if (resolved.source === "discovered") {
462
- console.error(`[unity-open-mcp] Unity path auto-discovered: ${resolved.path} (version ${resolved.version}). Set UNITY_PATH to override.`);
463
- }
464
- }
465
- else {
466
- this.unityPath = "";
467
- this.unityPathSource = "none";
468
- }
469
- // UNITY_PROJECT_PATH env -> instance lock's projectPath (so batch works
470
- // with zero env vars when the bridge has run the project at least once)
471
- // -> empty.
472
- this.projectPath =
473
- options.projectPath ??
474
- process.env.UNITY_PROJECT_PATH ??
475
- lock?.projectPath ??
476
- "";
526
+ this.spawnProcess = options.spawnProcess ?? spawn;
527
+ this.now = options.now ?? Date.now;
528
+ const requestedProjectPath = options.projectPath ?? process.env.UNITY_PROJECT_PATH ?? "";
529
+ const lock = readInstanceLock(requestedProjectPath);
530
+ // Resolve the project path before the editor executable: ProjectVersion.txt
531
+ // is authoritative even when the bridge has not started and no lock exists.
532
+ this.projectPath = requestedProjectPath || lock?.projectPath || "";
533
+ this.refreshUnityPath();
477
534
  // Parse the timeout env override with a finiteness/positivity guard:
478
535
  // a non-numeric value (e.g. "abc") parses to NaN, and setTimeout(fn, NaN)
479
536
  // fires immediately, making every batch time out before Unity even starts.
@@ -499,6 +556,17 @@ export class BatchSpawn {
499
556
  getProjectPath() {
500
557
  return this.projectPath;
501
558
  }
559
+ // Whether a headless spawn has a project and an editor to open it with — the
560
+ // availability discovery reports for always-batch tools, which the live
561
+ // bridge never lists. Shares the spawn's resolution cache (refreshUnityPath):
562
+ // installs are rescanned when the project version or env changed, or when a
563
+ // failed resolution is older than FAILED_RESOLUTION_TTL_MS. A live Editor
564
+ // holding the project lock is runtime state, not availability, and is
565
+ // refused at spawn time.
566
+ headlessAvailable() {
567
+ this.refreshUnityPath();
568
+ return this.projectPath !== "" && this.unityPath !== "";
569
+ }
502
570
  async route(toolName, args) {
503
571
  const verifyOperation = VERIFY_TOOL_TO_OPERATION[toolName];
504
572
  const metaOperation = META_TOOL_TO_OPERATION[toolName];
@@ -518,9 +586,19 @@ export class BatchSpawn {
518
586
  // the lock's PID is alive, return the same editor_instance_locked error the
519
587
  // post-spawn classifier would produce, without the failed spawn and without
520
588
  // the log rotation.
589
+ // This server's own headless child for the project is a -batchmode Unity
590
+ // with a matching -projectPath, so the lock/process checks below would
591
+ // misreport it as a live Editor. The lease is authoritative for it.
592
+ if (this.projectPath && activeBatchProjects.has(leaseKey(this.projectPath))) {
593
+ return makeErrorResult({ code: "batch_in_progress", message: BATCH_IN_PROGRESS_MESSAGE });
594
+ }
521
595
  if (this.projectPath) {
522
596
  try {
523
597
  const lock = readInstanceLock(this.projectPath);
598
+ if (lock && classifyInstance(lock) === "reloading") {
599
+ return makeErrorResult({ code: "editor_reloading", message: "The live Editor is compiling or reloading.",
600
+ detail: { error: { code: "editor_reloading", message: "The live Editor owns the project; no headless spawn was attempted." }, retryAfterMs: 1000 } });
601
+ }
524
602
  if (lock && lock.pid && isPidAlive(lock.pid)) {
525
603
  // feedback 2026-08-17 — parameterize by the invoked tool and split
526
604
  // "live bridge should be up" from "Editor holds the lock but its
@@ -553,6 +631,21 @@ export class BatchSpawn {
553
631
  // classification already handles the project-locked case reactively).
554
632
  }
555
633
  }
634
+ // A headless Unity another process started is a batch run too, not an
635
+ // Editor whose lock diagnosis applies.
636
+ const foreign = this.projectPath ? findHeadlessUnityForProject(this.projectPath) : null;
637
+ if (foreign) {
638
+ return makeErrorResult({ code: "batch_in_progress", message: foreignHeadlessMessage(foreign.pid) });
639
+ }
640
+ // Cold Safe Mode/boot can own the project before a bridge lock exists.
641
+ const running = this.projectPath ? findUnityForProject(this.projectPath) : null;
642
+ if (running) {
643
+ const diagnosis = diagnoseEditorLock(this.projectPath);
644
+ const message = editorLockedMessage(toolName, diagnosis);
645
+ return makeErrorResult({ code: "editor_instance_locked", message,
646
+ detail: { error: { code: "editor_instance_locked", message }, agentNextSteps: editorLockedNextSteps(toolName, diagnosis) } });
647
+ }
648
+ this.refreshUnityPath(true);
556
649
  const pathError = await this.validateUnityPath();
557
650
  if (pathError)
558
651
  return pathError;
@@ -629,7 +722,71 @@ export class BatchSpawn {
629
722
  isError: hasError,
630
723
  };
631
724
  }
725
+ // Select the editor for the project's CURRENT version. ProjectVersion.txt is
726
+ // cheap to read, so it is re-read before every spawn: a project upgraded
727
+ // while the server runs must not open with the previously chosen editor
728
+ // (a wrong-version open can rewrite package and project metadata). The
729
+ // install scan (a synchronous walk of every Hub root) reruns when that
730
+ // version or the env inputs changed. A failed resolution is also retried,
731
+ // so installing the missing exact editor takes effect without a server
732
+ // restart: always on a spawn (retryFailure), and after
733
+ // FAILED_RESOLUTION_TTL_MS for availability checks, which discovery calls
734
+ // on every capabilities/activate_for request.
735
+ refreshUnityPath(retryFailure = false) {
736
+ const preferredVersion = readProjectUnityVersion(this.projectPath) ??
737
+ (this.projectPath ? readInstanceLock(this.projectPath)?.unityVersion : undefined) ??
738
+ null;
739
+ const allowVersionMismatch = process.env.UNITY_OPEN_MCP_ALLOW_VERSION_MISMATCH === "1";
740
+ const key = JSON.stringify([
741
+ preferredVersion,
742
+ process.env.UNITY_PATH ?? null,
743
+ process.env.UNITY_HUB ?? null,
744
+ allowVersionMismatch,
745
+ ]);
746
+ if (key === this.resolutionKey) {
747
+ if (!this.resolutionError)
748
+ return;
749
+ if (!retryFailure && this.now() - this.resolvedAt < FAILED_RESOLUTION_TTL_MS)
750
+ return;
751
+ }
752
+ const resolution = resolveUnityPathForProject(preferredVersion, this.discoveryRoots, allowVersionMismatch);
753
+ this.resolutionKey = key;
754
+ this.resolvedAt = this.now();
755
+ if (resolution.ok) {
756
+ this.unityPath = resolution.value.path;
757
+ this.unityPathSource = resolution.value.source;
758
+ this.resolutionError = undefined;
759
+ if (resolution.value.source === "discovered") {
760
+ console.error(`[unity-open-mcp] Unity path auto-discovered: ${resolution.value.path} (version ${resolution.value.version}). Set UNITY_PATH to override.`);
761
+ }
762
+ }
763
+ else {
764
+ this.unityPath = "";
765
+ this.unityPathSource = "none";
766
+ this.resolutionError = resolution;
767
+ }
768
+ }
632
769
  async validateUnityPath() {
770
+ if (this.resolutionError?.reason === "preferred_not_installed") {
771
+ const available = this.resolutionError.availableVersions.length > 0
772
+ ? this.resolutionError.availableVersions.join(", ")
773
+ : "none discovered";
774
+ return makeErrorResult({
775
+ code: "unity_version_not_installed",
776
+ message: `This project requires Unity ${this.resolutionError.preferredVersion}, but that exact editor is not installed ` +
777
+ `(available: ${available}). No Unity process was started, because opening a project with a different ` +
778
+ "version can rewrite package and project metadata. Install the exact version, set UNITY_PATH to it, " +
779
+ "or explicitly opt in with UNITY_OPEN_MCP_ALLOW_VERSION_MISMATCH=1.",
780
+ });
781
+ }
782
+ if (this.resolutionError?.reason === "env_version_mismatch") {
783
+ return makeErrorResult({
784
+ code: "unity_version_mismatch",
785
+ message: `This project requires Unity ${this.resolutionError.preferredVersion}, but UNITY_PATH points to ` +
786
+ `Unity ${this.resolutionError.configuredVersion}. No Unity process was started. Correct UNITY_PATH ` +
787
+ "or explicitly opt in with UNITY_OPEN_MCP_ALLOW_VERSION_MISMATCH=1.",
788
+ });
789
+ }
633
790
  if (!this.unityPath) {
634
791
  // No explicit UNITY_PATH AND auto-discovery found nothing. List the
635
792
  // scanned roots so the user/agent knows where to install Unity or set
@@ -672,14 +829,62 @@ export class BatchSpawn {
672
829
  return new Promise((resolve, reject) => {
673
830
  const toolArgs = argBuilder(operation, args);
674
831
  const unityArgs = buildUnityBatchArgs(operation, this.projectPath, executeMethod, toolArgs);
832
+ // Re-check after asynchronous executable discovery, immediately before
833
+ // spawn. Lease first: a concurrent call may have spawned our own child
834
+ // meanwhile, and that child must not read as a live Editor.
835
+ const projectKey = leaseKey(this.projectPath);
836
+ if (activeBatchProjects.has(projectKey)) {
837
+ reject(new BatchClassificationError("batch_in_progress", BATCH_IN_PROGRESS_MESSAGE));
838
+ return;
839
+ }
840
+ const foreignHeadless = findHeadlessUnityForProject(this.projectPath);
841
+ if (foreignHeadless) {
842
+ reject(new BatchClassificationError("batch_in_progress", foreignHeadlessMessage(foreignHeadless.pid)));
843
+ return;
844
+ }
845
+ const owner = readInstanceLock(this.projectPath);
846
+ if ((owner && isPidAlive(owner.pid)) || findUnityForProject(this.projectPath)) {
847
+ reject(new BatchClassificationError("editor_instance_locked", "A live Editor owns this project; no headless spawn was attempted."));
848
+ return;
849
+ }
675
850
  console.error(`[unity-open-mcp] Batch spawn: ${this.unityPath} ${unityArgs.join(" ")}`);
851
+ const beforeAssembly = detectStaleAssembly(this.projectPath).dllMtimeMs;
676
852
  const startTime = Date.now();
677
853
  // M13 — bounded, UTF-8-correct accumulators (see BoundedTextAccumulator).
678
854
  const stdoutAcc = new BoundedTextAccumulator();
679
855
  const stderrAcc = new BoundedTextAccumulator();
680
- const child = spawn(this.unityPath, unityArgs, {
681
- stdio: ["ignore", "pipe", "pipe"],
682
- });
856
+ // The project lease lives as long as a Unity process may own the
857
+ // project. Released at most once, so this child's late close cannot
858
+ // erase a replacement call's lease.
859
+ const run = {
860
+ tool: toolName,
861
+ operation,
862
+ startedAt: startTime,
863
+ timeoutMs: this.timeoutMs,
864
+ pid: null,
865
+ };
866
+ activeBatchProjects.set(projectKey, run);
867
+ let leaseHeld = true;
868
+ const releaseLease = () => {
869
+ if (!leaseHeld)
870
+ return;
871
+ leaseHeld = false;
872
+ activeBatchProjects.delete(projectKey);
873
+ };
874
+ let child;
875
+ try {
876
+ child = this.spawnProcess(this.unityPath, unityArgs, {
877
+ stdio: ["ignore", "pipe", "pipe"],
878
+ });
879
+ }
880
+ catch (err) {
881
+ // A synchronous throw (NUL byte in an argument, E2BIG, ...) starts no
882
+ // process and fires no child events.
883
+ releaseLease();
884
+ reject(err);
885
+ return;
886
+ }
887
+ run.pid = child.pid ?? null;
683
888
  // Register with the process-wide supervision registry so the
684
889
  // SIGINT/SIGTERM/exit handlers installed at the entry points tear this
685
890
  // child down if the server dies mid-run (otherwise the headless Unity
@@ -722,10 +927,16 @@ export class BatchSpawn {
722
927
  stderrAcc.push(chunk);
723
928
  });
724
929
  child.on("error", (err) => {
930
+ // A child that never started (no pid) owns nothing, and a failed spawn
931
+ // may emit only 'error' on some Node versions. A started child's error
932
+ // (e.g. a failed kill) keeps the lease until close.
933
+ if (child.pid === undefined)
934
+ releaseLease();
725
935
  clearTimers();
726
936
  reject(new BatchClassificationError("unity_spawn_refused", `Failed to spawn Unity at '${this.unityPath}': ${err.message}`, UNITY_SPAWN_REFUSED_NEXT_STEPS));
727
937
  });
728
938
  child.on("close", (code) => {
939
+ releaseLease();
729
940
  clearTimers();
730
941
  const elapsedMs = Date.now() - startTime;
731
942
  const exitCode = code ?? 1;
@@ -744,11 +955,9 @@ export class BatchSpawn {
744
955
  // opaque "no markers" message.
745
956
  const combined = `${stdout}\n${stderr}`;
746
957
  const csErrors = extractCompilerErrors(combined);
747
- const tail = stderr.trim().slice(-500) || stdout.trim().slice(-500);
958
+ const tail = combined.trim().slice(-4096);
748
959
  if (csErrors.length > 0) {
749
- reject(new Error(`Batch output did not contain JSON markers (exit ${exitCode}). ` +
750
- `The bridge assembly likely failed to compile:\n` +
751
- csErrors.join("\n")));
960
+ reject(new BatchClassificationError("compile_failed", `C# compilation failed before the batch entry point (exit ${exitCode}).\n` + csErrors.join("\n") + `\nLast output: ${tail}`, ["Fix the reported compiler diagnostics, then re-run compile_check."]));
752
961
  return;
753
962
  }
754
963
  // M22 Plan 3 / T-fix-2 — before the generic no-markers reject,
@@ -773,8 +982,10 @@ export class BatchSpawn {
773
982
  // ran, so no markers were emitted — the generic "did not contain
774
983
  // JSON markers" error would mask the real root cause (an
775
984
  // unresolvable Packages/manifest.json dependency). Name the
776
- // offending package(s) and point at read_compile_errors, which
777
- // surfaces the Package Manager notice without a headless spawn.
985
+ // offending package(s) and point at the captured output tail:
986
+ // Unity prints the Package Manager notice as its last lines before
987
+ // exiting, and with -logFile - this run never reaches Editor.log,
988
+ // so read_compile_errors would show an unrelated log instead.
778
989
  const offending = extractOffendingPackages(combined);
779
990
  const pkgPart = offending.length > 0
780
991
  ? ` Offending package(s): ${offending.join(", ")}.`
@@ -782,10 +993,10 @@ export class BatchSpawn {
782
993
  reject(new BatchClassificationError("project_load_failed", `Batch Unity exited at package/project resolution (exit ${exitCode}) ` +
783
994
  `without running the batch entry point, so no compile took place. ` +
784
995
  `The project failed to load — this is NOT a C# compile error.${pkgPart} ` +
785
- `Check Packages/manifest.json for unresolvable dependencies and call ` +
786
- `unity_open_mcp_read_compile_errors to see the Package Manager notice.`, [
996
+ `Check Packages/manifest.json for unresolvable dependencies; the ` +
997
+ `Package Manager notice is at the end of this run's output. Last output: ${tail}`, [
787
998
  `Batch Unity failed to load the project (exit ${exitCode}) before reaching the batch entry point — this is a package-resolution / project-load failure, not a compile failure.${pkgPart}`,
788
- "Call unity_open_mcp_read_compile_errors to read the Package Manager notice offline (no headless spawn).",
999
+ "Read the Package Manager notice at the end of the error message's 'Last output' tail — it is this run's own Unity log; the headless run does not write Editor.log.",
789
1000
  "Inspect Packages/manifest.json and Packages/packages-lock.json for packages that cannot be resolved by the current Unity version.",
790
1001
  "Do not retry compile_check blindly — the same project-load failure will recur until the manifest is fixed.",
791
1002
  ]));
@@ -796,29 +1007,36 @@ export class BatchSpawn {
796
1007
  `Path: '${this.unityPath}'.`, UNITY_SPAWN_REFUSED_NEXT_STEPS));
797
1008
  return;
798
1009
  }
799
- // Final generic fallback. Two cases reach here with no markers:
800
- // - exit 0: Unity exited cleanly (likely a healthy compile) but
801
- // emitted no markers — the async finalize path (BridgeBatchEntry
802
- // → EditorApplication.update) did not fire. feedback 2026-08-15
803
- // recurrence: this used to surface as the generic
804
- // batch_spawn_failed code, so agents (and MCP hosts keying on
805
- // isError) read a healthy compile as a spawn failure. It now
806
- // carries the distinct `markers_missing` code with the
807
- // confirm-via-read_compile_errors guidance.
808
- // - non-zero: an unclassified spawn failure (stays
809
- // batch_spawn_failed).
1010
+ // Exit zero is only a process result. Certify a missing compile report
1011
+ // using this child's completion log plus newly produced assemblies;
1012
+ // otherwise preserve uncertainty rather than guessing success.
1013
+ if (exitCode === 0 && operation === "compile_check") {
1014
+ const after = detectStaleAssembly(this.projectPath);
1015
+ const advanced = after.dllMtimeMs !== undefined && after.dllMtimeMs > (beforeAssembly ?? 0)
1016
+ && after.dllMtimeMs >= startTime && !after.staleAssembly;
1017
+ const completed = /(?:Compilation succeeded|compilation finished successfully|Scripts have been recompiled)/i.test(combined);
1018
+ if (advanced && completed) {
1019
+ resolve({ json: { status: "compile_passed", errorCount: 0, errors: [],
1020
+ evidenceSource: "batch_log_and_assemblies", beforeAssemblyMtimeMs: beforeAssembly ?? null,
1021
+ afterAssemblyMtimeMs: after.dllMtimeMs, logTail: tail }, exitCode, elapsedMs });
1022
+ return;
1023
+ }
1024
+ reject(new BatchClassificationError("compile_indeterminate", `Unity exited 0 without a compile report; secondary evidence cannot certify completion. ` +
1025
+ `Assembly advanced: ${advanced}; completion log: ${completed}. Last output: ${tail}`, ["Inspect this batch output and the project assembly timestamps; do not infer success from exit code 0."]));
1026
+ return;
1027
+ }
810
1028
  if (exitCode === 0) {
811
- reject(new BatchClassificationError("markers_missing", `Batch output did not contain JSON markers. Exit code: 0.` +
812
- (tail ? ` Last output: ${tail}` : "") +
813
- ` Unity exited cleanly but emitted no markers after '${toolName}' ` +
814
- "(the async finalize path did not run) — the compile likely " +
815
- "succeeded. Call unity_open_mcp_read_compile_errors to confirm.", [
816
- `The ${toolName} batch Unity exited cleanly (exit 0) but emitted no JSON markers — the async finalize path did not run. This is usually a healthy compile with a missing report, not a spawn failure.`,
817
- "Call unity_open_mcp_read_compile_errors to confirm errorCount is 0 before treating the compile as passed.",
1029
+ reject(new BatchClassificationError("markers_missing", `Batch output did not contain JSON markers. Exit code: 0. ` +
1030
+ `Unity exited cleanly but '${toolName}' emitted no report, so ` +
1031
+ "its outcome is unknown." +
1032
+ (tail ? ` Last output: ${tail}` : ""), [
1033
+ `The ${toolName} batch Unity exited cleanly (exit 0) but emitted no JSON report — the operation's outcome is unknown; this is not a spawn failure.`,
1034
+ "Inspect the error message's 'Last output' tail — it is this run's own Unity log; the headless run does not write Editor.log.",
1035
+ `If ${toolName} changes the project, inspect its post-state before repeating it.`,
818
1036
  ]));
819
1037
  return;
820
1038
  }
821
- reject(new Error(`Batch output did not contain JSON markers. Exit code: ${exitCode}.` +
1039
+ reject(new BatchClassificationError("batch_aborted", `Batch output did not contain JSON markers. Exit code: ${exitCode}.` +
822
1040
  (tail ? ` Last output: ${tail}` : "")));
823
1041
  return;
824
1042
  }
@@ -1 +1 @@
1
- {"version":3,"file":"batch-spawn.js","sourceRoot":"","sources":["../src/batch-spawn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,gBAAgB,GAEjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEpE,MAAM,qBAAqB,GAAG,+CAA+C,CAAC;AAC9E,MAAM,qBAAqB,GAAG,+CAA+C,CAAC;AAC9E,MAAM,YAAY,GAAG,iBAAiB,CAAC;AACvC,MAAM,UAAU,GAAG,eAAe,CAAC;AAEnC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAEzC,MAAM,wBAAwB,GAA2B;IACvD,uBAAuB,EAAE,UAAU;IACnC,8BAA8B,EAAE,iBAAiB;IACjD,+BAA+B,EAAE,kBAAkB;CACpD,CAAC;AAEF,+EAA+E;AAC/E,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,uEAAuE;AACvE,2EAA2E;AAC3E,8BAA8B;AAC9B,MAAM,CAAC,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CACjE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CACtC,CAAC;AAEF,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,+EAA+E;AAC/E,4DAA4D;AAC5D,EAAE;AACF,gFAAgF;AAChF,wEAAwE;AACxE,8EAA8E;AAC9E,yEAAyE;AACzE,+EAA+E;AAC/E,gFAAgF;AAChF,8EAA8E;AAC9E,qEAAqE;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAgC,IAAI,GAAG,CAAiB;IACrF,CAAC,8BAA8B,EAAE,4BAA4B,CAAC;IAC9D,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,qBAAqB,CAAqB,CAAC;CACjG,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAA2B;IACrD,2BAA2B,EAAE,cAAc;IAC3C,4BAA4B,EAAE,eAAe;IAC7C,6BAA6B,EAAE,gBAAgB;IAC/C,4BAA4B,EAAE,eAAe;IAC7C,2BAA2B,EAAE,cAAc;CAC5C,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IACtC,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC;IACxC,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC;CACvC,CAAC,CAAC;AAQH,SAAS,WAAW,CAAC,MAAc;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACrD,IAAI,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,8EAA8E;AAC9E,EAAE;AACF,0BAA0B;AAC1B,2EAA2E;AAC3E,2EAA2E;AAC3E,+EAA+E;AAC/E,yEAAyE;AACzE,6EAA6E;AAC7E,sDAAsD;AACtD,6EAA6E;AAC7E,2EAA2E;AAC3E,yEAAyE;AACzE,8EAA8E;AAC9E,yEAAyE;AACzE,yEAAyE;AACzE,uEAAuE;AACvE,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,iDAAiD;AAE5F,MAAM,OAAO,sBAAsB;IACzB,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,KAAK,GAAa,EAAE,CAAC;IACrB,OAAO,GAAG,CAAC,CAAC;IAEpB;wEACoE;IACpE,IAAI,CAAC,KAAa;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,OAAO;YAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,uEAAuE;IACvE,KAAK;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,IAAI;YAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAEO,aAAa,CAAC,IAAY;QAChC,4EAA4E;QAC5E,yDAAyD;QACzD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC;QAC3B,sEAAsE;QACtE,wEAAwE;QACxE,4BAA4B;QAC5B,OAAO,IAAI,CAAC,OAAO,GAAG,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC;YACjC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;CACF;AAGD,8EAA8E;AAC9E,qEAAqE;AACrE,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,uBAAuB;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,MAAM,UAAU,eAAe,CAC7B,SAAiB,EACjB,IAA6B;IAE7B,MAAM,GAAG,GAAa,CAAC,SAAS,CAAC,CAAC;IAElC,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,gBAAgB;YAAE,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACzF,IAAI,IAAI,CAAC,gBAAgB;YAAE,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACzF,IAAI,IAAI,CAAC,WAAW;YAAE,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5E,CAAC;SAAM,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAI,IAAI,CAAC,aAAwB,IAAI,iCAAiC,CAAC;QACzF,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,gBAAgB;YAAE,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3F,CAAC;SAAM,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACxD,IAAI,OAAO,IAAI,CAAC,oBAAoB,KAAK,QAAQ;YAC/C,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACxE,uEAAuE;QACvE,4EAA4E;QAC5E,uDAAuD;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC;QACjD,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YACnF,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;oBACtE,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB;YAAE,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,SAAiB,EACjB,IAA6B;IAE7B,MAAM,GAAG,GAAa,CAAC,SAAS,CAAC,CAAC;IAElC,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACpG,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnH,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACpG,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAChG,CAAC;SAAM,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QACzC,wEAAwE;QACxE,wEAAwE;QACxE,2EAA2E;QAC3E,+DAA+D;QAC/D,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7F,CAAC;SAAM,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;QAC1C,yEAAyE;QACzE,0EAA0E;QAC1E,qEAAqE;QACrE,6CAA6C;QAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM;gBAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU;gBAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACxF,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACxF,gFAAgF;QAChF,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;SAAM,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACxF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9F,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAClF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc;gBAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,iBAAiB;gBAAE,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACxF,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1F,CAAC;SAAM,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,yEAAyE;AACzE,4EAA4E;AAC5E,sEAAsE;AACtE,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,2EAA2E;AAC3E,2EAA2E;AAC3E,yEAAyE;AACzE,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAC3E,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,uEAAuE;AACvE,0EAA0E;AAC1E,uBAAuB;AACvB,EAAE;AACF,yEAAyE;AACzE,kEAAkE;AAClE,MAAM,oBAAoB,GAAG,sCAAsC,CAAC;AAEpE,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,MAAM,2BAA2B,GAC/B,8FAA8F,CAAC;AAEjG,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,wBAAwB,CAAC;IACzE,IAAI,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,qBAAqB,CAAC;IAC7E,OAAO,IAAI,CAAC;AACd,CAAC;AA4BD;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,MAAM,IAAI,GAAwB,WAAW;QAC3C,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;YACrC,OAAO;gBACL,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,4BAA4B,IAAI,CAAC,GAAG,mFAAmF;aAChI,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,aAAa;YACtB,MAAM,EAAE,4BAA4B,IAAI,CAAC,GAAG,WAAW,IAAI,CAAC,KAAK,GAAG;SACrE,CAAC;IACJ,CAAC;IACD,0EAA0E;IAC1E,2EAA2E;IAC3E,4DAA4D;IAC5D,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,iBAAiB,OAAO,CAAC,GAAG,sGAAsG;SAC3I,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,iBAAiB;QAC1B,MAAM,EAAE,8CAA8C;KACvD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,SAA8B;IAE9B,QAAQ,SAAS,CAAC,OAAO,EAAE,CAAC;QAC1B,KAAK,aAAa;YAChB,OAAO,CACL,+DAA+D,QAAQ,GAAG;gBAC1E,uEAAuE;gBACvE,IAAI,SAAS,CAAC,MAAM,oDAAoD;gBACxE,iEAAiE;gBACjE,8DAA8D,CAC/D,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO,CACL,wEAAwE;gBACxE,kCAAkC,QAAQ,4BAA4B;gBACtE,kDAAkD;gBAClD,IAAI,SAAS,CAAC,MAAM,oDAAoD;gBACxE,qEAAqE;gBACrE,qBAAqB,CACtB,CAAC;QACJ;YACE,OAAO,CACL,gBAAgB,QAAQ,kCAAkC;gBAC1D,uEAAuE;gBACvE,2BAA2B,SAAS,CAAC,MAAM,iBAAiB;gBAC5D,4DAA4D,CAC7D,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,SAA8B;IAE9B,QAAQ,SAAS,CAAC,OAAO,EAAE,CAAC;QAC1B,KAAK,aAAa;YAChB,OAAO;gBACL,+DAA+D,QAAQ,0DAA0D;gBACjI,0IAA0I,QAAQ,qBAAqB;gBACvK,GAAG,CAAC,QAAQ,KAAK,8BAA8B;oBAC7C,CAAC,CAAC;wBACE,gOAAgO;qBACjO;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,0BAA0B,QAAQ,gCAAgC;aACnE,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO;gBACL,mFAAmF,SAAS,CAAC,MAAM,mEAAmE,QAAQ,8BAA8B;gBAC5M,0IAA0I;gBAC1I,0MAA0M;aAC3M,CAAC;QACJ;YACE,OAAO;gBACL,OAAO,QAAQ,2KAA2K;gBAC1L,wIAAwI;aACzI,CAAC;IACN,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,4EAA4E;AAC5E,6EAA6E;AAC7E,qEAAqE;AACrE,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,+BAA+B;AAC/B,MAAM,kBAAkB,GAAG,oEAAoE,CAAC;AAChG,MAAM,UAAU,wBAAwB,CAAC,QAAgB;IACvD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,kBAAkB,CAAC,SAAS,GAAG,CAAC,CAAC;IACjC,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM,CAAC,wCAAwC;QACtE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,8BAA8B,GAAG;IACrC,8GAA8G;IAC9G,0JAA0J;IAC1J,iHAAiH;CAClH,CAAC;AAEF,6EAA6E;AAC7E,8EAA8E;AAC9E,MAAM,UAAU,mBAAmB,CACjC,SAAiB,EACjB,WAAmB,EACnB,aAAqB,EACrB,QAAkB;IAElB,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,4EAA4E;IAC5E,2EAA2E;IAC3E,kEAAkE;IAClE,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QAClC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD,SAAS,CAAC,IAAI,CACZ,cAAc,EAAE,WAAW,EAC3B,gBAAgB,EAAE,aAAa,EAC/B,IAAI,EACJ,GAAG,QAAQ,CACZ,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,0EAA0E;AAC1E,wEAAwE;AACxE,kEAAkE;AAClE,EAAE;AACF,wEAAwE;AACxE,2EAA2E;AAC3E,2EAA2E;AAC3E,0EAA0E;AAC1E,wFAAwF;AACxF,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxC,IAAI,CAAS;IACb,cAAc,CAAY;IACnC,YAAY,IAAY,EAAE,OAAe,EAAE,cAAyB;QAClE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;CACF;AAiBD,MAAM,OAAO,UAAU;IACb,SAAS,CAAS;IAClB,eAAe,CAAgC;IAC/C,WAAW,CAAS;IACpB,SAAS,CAAS;IACT,cAAc,CAAY;IAE3C,YAAY,UAA6B,EAAE;QACzC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAE7C,yEAAyE;QACzE,kEAAkE;QAClE,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAC3F,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3E,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC;YACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACrC,OAAO,CAAC,KAAK,CACX,gDAAgD,QAAQ,CAAC,IAAI,aAAa,QAAQ,CAAC,OAAO,gCAAgC,CAC3H,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;QAChC,CAAC;QAED,wEAAwE;QACxE,wEAAwE;QACxE,YAAY;QACZ,IAAI,CAAC,WAAW;YACd,OAAO,CAAC,WAAW;gBACnB,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBAC9B,IAAI,EAAE,WAAW;gBACjB,EAAE,CAAC;QAEL,qEAAqE;QACrE,0EAA0E;QAC1E,2EAA2E;QAC3E,yEAAyE;QACzE,iDAAiD;QACjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC;QAC/D,MAAM,aAAa,GAAG,UAAU;YAC9B,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;YAC1B,CAAC,CAAC,wBAAwB,CAAC;QAC7B,IAAI,CAAC,SAAS;YACZ,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC;gBACjD,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,wBAAwB,CAAC;IACjC,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,wEAAwE;IACxE,6DAA6D;IAC7D,2EAA2E;IAC3E,sEAAsE;IACtE,0EAA0E;IAC1E,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK,CACT,QAAgB,EAChB,IAA6B;QAE7B,MAAM,eAAe,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAEvD,IAAI,CAAC,eAAe,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,OAAO,eAAe,CAAC;gBACrB,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,SAAS,QAAQ,wBAAwB;aACnD,CAAC,CAAC;QACL,CAAC;QAED,wEAAwE;QACxE,qEAAqE;QACrE,2EAA2E;QAC3E,2EAA2E;QAC3E,yEAAyE;QACzE,2EAA2E;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,4EAA4E;QAC5E,oBAAoB;QACpB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAChD,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7C,mEAAmE;oBACnE,iEAAiE;oBACjE,qEAAqE;oBACrE,qEAAqE;oBACrE,gEAAgE;oBAChE,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACvD,MAAM,OAAO,GACX,8DAA8D;wBAC9D,cAAc,QAAQ,wCAAwC;wBAC9D,mEAAmE;wBACnE,kCAAkC;wBAClC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;oBAC3C,OAAO,eAAe,CAAC;wBACrB,IAAI,EAAE,wBAAwB;wBAC9B,OAAO;wBACP,MAAM,EAAE;4BACN,KAAK,EAAE;gCACL,IAAI,EAAE,wBAAwB;gCAC9B,OAAO,EACL,2BAA2B,GAAG,IAAI,CAAC,GAAG,GAAG,4BAA4B;oCACrE,SAAS,CAAC,MAAM;gCAClB,WAAW,EAAE,SAAS,CAAC,OAAO;6BAC/B;4BACD,cAAc,EAAE,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC;yBAC3D;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,+DAA+D;gBAC/D,sEAAsE;YACxE,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjD,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;QAEhC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,eAAe,CAAC;gBACrB,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EACL,2EAA2E;oBAC3E,6EAA6E;oBAC7E,iFAAiF;aACpF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,aAAa,GAAG,eAAe;YACnC,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,qBAAqB,CAAC;QAC1B,MAAM,SAAS,GAAG,eAAe,IAAI,aAAa,CAAC;QACnD,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC;QAErE,IAAI,MAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;QACvF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,oDAAoD;YACpD,yEAAyE;YACzE,wEAAwE;YACxE,iDAAiD;YACjD,IAAI,GAAG,YAAY,wBAAwB,EAAE,CAAC;gBAC5C,uEAAuE;gBACvE,uEAAuE;gBACvE,uEAAuE;gBACvE,2EAA2E;gBAC3E,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxD,OAAO,eAAe,CAAC;wBACrB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,OAAO;wBACP,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE;qBACnF,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,0EAA0E;YAC1E,2EAA2E;YAC3E,yBAAyB;YACzB,OAAO,eAAe,CAAC;gBACrB,IAAI,EAAE,oBAAoB;gBAC1B,OAAO;gBACP,MAAM,EAAE;oBACN,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE;oBAC9C,cAAc,EAAE;wBACd,wJAAwJ;wBACxJ,kIAAkI;wBAClI,4GAA4G;qBAC7G;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG;YAClB,OAAO,EAAE,IAAI,CAAC,SAAS;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA+C,CAAC;QACtE,MAAM,QAAQ,GACZ,IAAI,CAAC,KAAK,IAAI,IAAI;YAClB,CAAC,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;QAEnD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC3B;aACF;YACD,OAAO,EAAE,QAAQ;SAClB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,oEAAoE;YACpE,sEAAsE;YACtE,kEAAkE;YAClE,qEAAqE;YACrE,iCAAiC;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,IAAI,eAAe,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC;YAC1F,OAAO,eAAe,CAAC;gBACrB,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EACL,sEAAsE;oBACtE,iEAAiE;oBACjE,YAAY,QAAQ,kDAAkD;oBACtE,mCAAmC;oBACnC,mFAAmF;oBACnF,gFAAgF;oBAChF,6CAA6C;aAChD,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBAChB,OAAO,eAAe,CAAC;oBACrB,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EACL,eAAe,IAAI,CAAC,SAAS,mBAAmB;wBAChD,gDAAgD;iBACnD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,eAAe,CAAC;gBACrB,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EACL,eAAe,IAAI,CAAC,SAAS,yCAAyC;oBACtE,4DAA4D;aAC/D,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,UAAU,CAChB,QAAgB,EAChB,SAAiB,EACjB,IAA6B,EAC7B,aAAqB,EACrB,UAA0E;QAE1E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAE7C,MAAM,SAAS,GAAG,mBAAmB,CACnC,SAAS,EACT,IAAI,CAAC,WAAW,EAChB,aAAa,EACb,QAAQ,CACT,CAAC;YAEF,OAAO,CAAC,KAAK,CACX,iCAAiC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACzE,CAAC;YAEF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,0EAA0E;YAC1E,MAAM,SAAS,GAAG,IAAI,sBAAsB,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,IAAI,sBAAsB,EAAE,CAAC;YAE/C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE;gBAC7C,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;aAClC,CAAC,CAAC;YAEH,6DAA6D;YAC7D,uEAAuE;YACvE,sEAAsE;YACtE,sEAAsE;YACtE,eAAe,CAAC,KAAK,CAAC,CAAC;YAEvB,oEAAoE;YACpE,uEAAuE;YACvE,yEAAyE;YACzE,oDAAoD;YACpD,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,YAAY,GAA0B,IAAI,CAAC;YAC/C,MAAM,gBAAgB,GAAG,KAAK,CAAC;YAC/B,MAAM,iBAAiB,GAAG,GAAS,EAAE;gBACnC,IAAI,YAAY;oBAAE,OAAO;gBACzB,WAAW,GAAG,IAAI,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC7B,gEAAgE;oBAChE,gCAAgC;oBAChC,IAAI,CAAC;wBAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;gBAC7D,CAAC,EAAE,gBAAgB,CAAC,CAAC;YACvB,CAAC,CAAC;YAEF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,iBAAiB,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,KAAK,CACd,uCAAuC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CACjE,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAEnB,MAAM,WAAW,GAAG,GAAS,EAAE;gBAC7B,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,YAAY;oBAAE,YAAY,CAAC,YAAY,CAAC,CAAC;YAC/C,CAAC,CAAC;YAEF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACzC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACzC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxB,WAAW,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,wBAAwB,CACjC,qBAAqB,EACrB,6BAA6B,IAAI,CAAC,SAAS,MAAM,GAAG,CAAC,OAAO,EAAE,EAC9D,8BAA8B,CAC/B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,WAAW,EAAE,CAAC;gBACd,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACzC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC;gBAC3B,kEAAkE;gBAClE,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClB,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAEpC,OAAO,CAAC,KAAK,CACX,0CAA0C,QAAQ,YAAY,SAAS,IAAI;oBACzE,CAAC,WAAW,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC,CACjD,CAAC;gBAEF,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,mEAAmE;oBACnE,mEAAmE;oBACnE,qEAAqE;oBACrE,+BAA+B;oBAC/B,MAAM,QAAQ,GAAG,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC;oBACxC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;oBACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,MAAM,CAAC,IAAI,KAAK,CACd,mDAAmD,QAAQ,KAAK;4BAC9D,iDAAiD;4BACjD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACtB,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBACD,+DAA+D;oBAC/D,oEAAoE;oBACpE,8DAA8D;oBAC9D,kEAAkE;oBAClE,kEAAkE;oBAClE,mEAAmE;oBACnE,oEAAoE;oBACpE,gEAAgE;oBAChE,4BAA4B;oBAC5B,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;oBAClD,IAAI,UAAU,KAAK,wBAAwB,EAAE,CAAC;wBAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW;4BAChC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;4BACtC,CAAC,CAAC,EAAE,OAAO,EAAE,iBAA0B,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;wBAC5E,MAAM,CAAC,IAAI,wBAAwB,CACjC,wBAAwB,EACxB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,EACxC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAC3C,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBACD,IAAI,UAAU,KAAK,qBAAqB,EAAE,CAAC;wBACzC,kEAAkE;wBAClE,iEAAiE;wBACjE,yDAAyD;wBACzD,4DAA4D;wBAC5D,+DAA+D;wBAC/D,gEAAgE;wBAChE,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;wBACrD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;4BAClC,CAAC,CAAC,0BAA0B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;4BACnD,CAAC,CAAC,EAAE,CAAC;wBACP,MAAM,CAAC,IAAI,wBAAwB,CACjC,qBAAqB,EACrB,0DAA0D,QAAQ,IAAI;4BACpE,mEAAmE;4BACnE,+DAA+D,OAAO,GAAG;4BACzE,sEAAsE;4BACtE,uEAAuE,EACzE;4BACE,gDAAgD,QAAQ,wHAAwH,OAAO,EAAE;4BACzL,yGAAyG;4BACzG,mIAAmI;4BACnI,4GAA4G;yBAC7G,CACF,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;wBACrB,MAAM,CAAC,IAAI,wBAAwB,CACjC,qBAAqB,EACrB,2EAA2E;4BACzE,UAAU,IAAI,CAAC,SAAS,IAAI,EAC9B,8BAA8B,CAC/B,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBACD,gEAAgE;oBAChE,kEAAkE;oBAClE,qEAAqE;oBACrE,oEAAoE;oBACpE,sDAAsD;oBACtD,kEAAkE;oBAClE,iEAAiE;oBACjE,2DAA2D;oBAC3D,gDAAgD;oBAChD,qDAAqD;oBACrD,2BAA2B;oBAC3B,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;wBACnB,MAAM,CAAC,IAAI,wBAAwB,CACjC,iBAAiB,EACjB,0DAA0D;4BACxD,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACrC,uDAAuD,QAAQ,IAAI;4BACnE,6DAA6D;4BAC7D,gEAAgE,EAClE;4BACE,OAAO,QAAQ,uLAAuL;4BACtM,2GAA2G;yBAC5G,CACF,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBACD,MAAM,CAAC,IAAI,KAAK,CACd,yDAAyD,QAAQ,GAAG;wBAClE,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACxC,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,IAAI,IAA6B,CAAC;gBAClC,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,KAAK,CACd,iDAAiD,QAAQ,GAAG,CAC7D,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC3B,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"batch-spawn.js","sourceRoot":"","sources":["../src/batch-spawn.ts"],"names":[],"mappings":"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"}
@@ -105,6 +105,8 @@ export const TOOL_CATEGORY_OVERRIDES = {
105
105
  // because they MUST stay always-visible (an agent needs to reach
106
106
  // capabilities / list_rules / generate_skill before any other tool).
107
107
  unity_open_mcp_capabilities: "capability-discovery",
108
+ unity_open_mcp_project_commands: "capability-discovery",
109
+ unity_open_mcp_jobs: "capability-discovery",
108
110
  unity_open_mcp_list_rules: "capability-discovery",
109
111
  unity_open_mcp_generate_skill: "capability-discovery",
110
112
  // The remaining meta-tools (pull_events, read_compile_errors,