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.
- package/README.md +34 -2
- package/dist/agent-identity.d.ts +12 -0
- package/dist/agent-identity.js +2 -0
- package/dist/agent-identity.js.map +1 -1
- package/dist/batch-spawn.d.ts +39 -0
- package/dist/batch-spawn.js +287 -69
- package/dist/batch-spawn.js.map +1 -1
- package/dist/capabilities/build-capabilities.js +2 -0
- package/dist/capabilities/build-capabilities.js.map +1 -1
- package/dist/capabilities/discovery.d.ts +51 -0
- package/dist/capabilities/discovery.js +87 -0
- package/dist/capabilities/discovery.js.map +1 -0
- package/dist/capabilities/lifecycle.d.ts +6 -0
- package/dist/capabilities/lifecycle.js +17 -1
- package/dist/capabilities/lifecycle.js.map +1 -1
- package/dist/capabilities/tool-groups.js +1 -0
- package/dist/capabilities/tool-groups.js.map +1 -1
- package/dist/child-supervision.d.ts +6 -0
- package/dist/child-supervision.js +12 -0
- package/dist/child-supervision.js.map +1 -1
- package/dist/cli/args.d.ts +24 -2
- package/dist/cli/args.js +97 -2
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/cli.js +42 -3
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/help-text.d.ts +1 -0
- package/dist/cli/help-text.js +83 -3
- package/dist/cli/help-text.js.map +1 -1
- package/dist/cli/json-guards.d.ts +2 -0
- package/dist/cli/json-guards.js +5 -0
- package/dist/cli/json-guards.js.map +1 -0
- package/dist/cli/setup-command.d.ts +116 -0
- package/dist/cli/setup-command.js +696 -0
- package/dist/cli/setup-command.js.map +1 -0
- package/dist/cli/update-command.d.ts +30 -0
- package/dist/cli/update-command.js +271 -0
- package/dist/cli/update-command.js.map +1 -0
- package/dist/compile-verify.d.ts +3 -0
- package/dist/compile-verify.js +4 -0
- package/dist/compile-verify.js.map +1 -1
- package/dist/constants.d.ts +10 -2
- package/dist/constants.js +10 -2
- package/dist/constants.js.map +1 -1
- package/dist/dialog-dismiss.d.ts +108 -12
- package/dist/dialog-dismiss.js +294 -109
- package/dist/dialog-dismiss.js.map +1 -1
- package/dist/dialog-policy.d.ts +55 -9
- package/dist/dialog-policy.js +85 -15
- package/dist/dialog-policy.js.map +1 -1
- package/dist/editor-search.d.ts +2 -0
- package/dist/editor-search.js +8 -0
- package/dist/editor-search.js.map +1 -0
- package/dist/gate-error.d.ts +3 -0
- package/dist/gate-error.js.map +1 -1
- package/dist/index.js +56 -1
- package/dist/index.js.map +1 -1
- package/dist/instance-discovery.d.ts +16 -0
- package/dist/instance-discovery.js +45 -0
- package/dist/instance-discovery.js.map +1 -1
- package/dist/jobs/adapters.d.ts +15 -0
- package/dist/jobs/adapters.js +147 -0
- package/dist/jobs/adapters.js.map +1 -0
- package/dist/jobs/handler.d.ts +3 -0
- package/dist/jobs/handler.js +29 -0
- package/dist/jobs/handler.js.map +1 -0
- package/dist/jobs/job-manager.d.ts +123 -0
- package/dist/jobs/job-manager.js +290 -0
- package/dist/jobs/job-manager.js.map +1 -0
- package/dist/live-client.d.ts +50 -2
- package/dist/live-client.js +221 -26
- package/dist/live-client.js.map +1 -1
- package/dist/local-tools.d.ts +17 -0
- package/dist/local-tools.js +47 -0
- package/dist/local-tools.js.map +1 -0
- package/dist/project-path.d.ts +99 -0
- package/dist/project-path.js +171 -0
- package/dist/project-path.js.map +1 -0
- package/dist/release-lookup.d.ts +32 -0
- package/dist/release-lookup.js +147 -0
- package/dist/release-lookup.js.map +1 -0
- package/dist/routers.d.ts +17 -3
- package/dist/routers.js +29 -8
- package/dist/routers.js.map +1 -1
- package/dist/running-unity.d.ts +21 -0
- package/dist/running-unity.js +50 -0
- package/dist/running-unity.js.map +1 -1
- package/dist/schema-defaults.d.ts +4 -3
- package/dist/schema-defaults.js +20 -6
- package/dist/schema-defaults.js.map +1 -1
- package/dist/server-instructions.js +7 -1
- package/dist/server-instructions.js.map +1 -1
- package/dist/server.d.ts +10 -3
- package/dist/server.js +24 -25
- package/dist/server.js.map +1 -1
- package/dist/setup/codex-toml.d.ts +23 -0
- package/dist/setup/codex-toml.js +514 -0
- package/dist/setup/codex-toml.js.map +1 -0
- package/dist/setup/portable-config.d.ts +59 -0
- package/dist/setup/portable-config.js +241 -0
- package/dist/setup/portable-config.js.map +1 -0
- package/dist/skill/SKILL.md +68 -0
- package/dist/skill/client-paths.js +2 -4
- package/dist/skill/client-paths.js.map +1 -1
- package/dist/skill/copy-references.d.ts +2 -0
- package/dist/skill/copy-references.js +16 -0
- package/dist/skill/copy-references.js.map +1 -0
- package/dist/skill/generate-skill.js +5 -3
- package/dist/skill/generate-skill.js.map +1 -1
- package/dist/skill/references/batch-and-gates.md +142 -0
- package/dist/skill/references/compile-and-safe-mode.md +163 -0
- package/dist/skill/references/discovery-and-groups.md +30 -0
- package/dist/skill/references/routing-and-lifecycle.md +62 -0
- package/dist/skill/references/senses-and-tests.md +41 -0
- package/dist/skill/references/yaml-and-offline-work.md +33 -0
- package/dist/templates/mcp-wrapper.sh +35 -0
- package/dist/tool-contract.d.ts +8 -0
- package/dist/tool-contract.js +253 -0
- package/dist/tool-contract.js.map +1 -0
- package/dist/tool-router.d.ts +62 -7
- package/dist/tool-router.js +455 -17
- package/dist/tool-router.js.map +1 -1
- package/dist/tool-session-state.d.ts +6 -0
- package/dist/tool-session-state.js +14 -0
- package/dist/tool-session-state.js.map +1 -1
- package/dist/tools/agent-capabilities.js +9 -0
- package/dist/tools/agent-capabilities.js.map +1 -1
- package/dist/tools/batch-execute.js +17 -14
- package/dist/tools/batch-execute.js.map +1 -1
- package/dist/tools/bridge-status.js +4 -5
- package/dist/tools/bridge-status.js.map +1 -1
- package/dist/tools/compile-check.js +6 -4
- package/dist/tools/compile-check.js.map +1 -1
- package/dist/tools/component-get.js +2 -2
- package/dist/tools/component-get.js.map +1 -1
- package/dist/tools/component-modify.js +4 -4
- package/dist/tools/component-modify.js.map +1 -1
- package/dist/tools/execute-csharp.js +8 -4
- package/dist/tools/execute-csharp.js.map +1 -1
- package/dist/tools/gameobject-modify.js +2 -1
- package/dist/tools/gameobject-modify.js.map +1 -1
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.js +10 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/inputsim-key.js +12 -14
- package/dist/tools/inputsim-key.js.map +1 -1
- package/dist/tools/inputsim-pointer.js +3 -3
- package/dist/tools/inputsim-pointer.js.map +1 -1
- package/dist/tools/inputsim-step.js +7 -8
- package/dist/tools/inputsim-step.js.map +1 -1
- package/dist/tools/inputsim-touch.js +9 -10
- package/dist/tools/inputsim-touch.js.map +1 -1
- package/dist/tools/jobs.d.ts +40 -0
- package/dist/tools/jobs.js +18 -0
- package/dist/tools/jobs.js.map +1 -0
- package/dist/tools/manage-tools.js +10 -5
- package/dist/tools/manage-tools.js.map +1 -1
- package/dist/tools/project-commands.d.ts +40 -0
- package/dist/tools/project-commands.js +23 -0
- package/dist/tools/project-commands.js.map +1 -0
- package/dist/tools/read-compile-errors.js +14 -93
- package/dist/tools/read-compile-errors.js.map +1 -1
- package/dist/tools/scan-paths.js +4 -4
- package/dist/tools/scan-paths.js.map +1 -1
- package/dist/tools/schema-fragments.d.ts +15 -3
- package/dist/tools/schema-fragments.js +23 -13
- package/dist/tools/schema-fragments.js.map +1 -1
- package/dist/tools/upgrade.d.ts +40 -0
- package/dist/tools/upgrade.js +55 -0
- package/dist/tools/upgrade.js.map +1 -0
- package/dist/unity-install-discovery.d.ts +24 -0
- package/dist/unity-install-discovery.js +113 -4
- package/dist/unity-install-discovery.js.map +1 -1
- package/package.json +4 -3
- package/templates/mcp-wrapper.sh +35 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// Published-release lookups shared by the `update` CLI command and the
|
|
2
|
+
// `unity_open_mcp_upgrade` route.
|
|
3
|
+
//
|
|
4
|
+
// Both callers need the same two facts — "what is the latest trio version?"
|
|
5
|
+
// and "does the bridge release tag for version X exist?" — and both must get
|
|
6
|
+
// them WITHOUT going through the Unity Editor: the bridge's upgrade tool runs
|
|
7
|
+
// on the Editor main thread, where a 10 s registry timeout would freeze the
|
|
8
|
+
// Editor and the whole bridge request queue. The lookups therefore live here,
|
|
9
|
+
// in the MCP server process, and the bridge only ever receives a resolved
|
|
10
|
+
// `target_version`.
|
|
11
|
+
//
|
|
12
|
+
// Pure `fetch` + hand-rolled semver; no runtime dependencies.
|
|
13
|
+
import { isRecord } from "./cli/json-guards.js";
|
|
14
|
+
export const PACKAGE_NAME = "unity-open-mcp";
|
|
15
|
+
const NPM_LATEST_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
|
|
16
|
+
const GITHUB_RELEASES_URL = "https://api.github.com/repos/AlexeyPerov/Unity-Open-MCP/releases?per_page=30";
|
|
17
|
+
// matching-refs is a PREFIX query: asking for bridge-v1.2.3 also lists
|
|
18
|
+
// bridge-v1.2.30, so only the exact ref name proves the tag exists. Mirrors
|
|
19
|
+
// LatestVersionCheck.ContainsExactBridgeTag on the bridge.
|
|
20
|
+
const GITHUB_BRIDGE_TAG_URL = "https://api.github.com/repos/AlexeyPerov/Unity-Open-MCP/git/matching-refs/tags/bridge-v";
|
|
21
|
+
const REQUEST_TIMEOUT_MS = 10_000;
|
|
22
|
+
/**
|
|
23
|
+
* Latest stable trio version: npm `latest` dist-tag first, GitHub `v*`
|
|
24
|
+
* releases as the fallback. Throws when neither source answers.
|
|
25
|
+
*/
|
|
26
|
+
export async function resolveLatestVersion(fetchImpl) {
|
|
27
|
+
let npmFailure = "npm registry lookup failed";
|
|
28
|
+
try {
|
|
29
|
+
const body = await fetchJson(fetchImpl, NPM_LATEST_URL);
|
|
30
|
+
const version = isRecord(body) ? body.version : undefined;
|
|
31
|
+
if (typeof version === "string" && parseSemver(version)) {
|
|
32
|
+
return { version, source: "npm" };
|
|
33
|
+
}
|
|
34
|
+
npmFailure = "npm registry returned no valid version";
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
npmFailure = error instanceof Error ? error.message : String(error);
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
const body = await fetchJson(fetchImpl, GITHUB_RELEASES_URL);
|
|
41
|
+
if (!Array.isArray(body))
|
|
42
|
+
throw new Error("GitHub returned an invalid release list");
|
|
43
|
+
const versions = body
|
|
44
|
+
.filter(isRecord)
|
|
45
|
+
.filter((release) => release.draft !== true && release.prerelease !== true)
|
|
46
|
+
.map((release) => release.tag_name)
|
|
47
|
+
.filter((tag) => typeof tag === "string" && /^v\d+\.\d+\.\d+$/.test(tag))
|
|
48
|
+
.map((tag) => tag.slice(1))
|
|
49
|
+
.filter((version) => parseSemver(version) !== null)
|
|
50
|
+
.sort((a, b) => compareSemver(b, a) ?? 0);
|
|
51
|
+
if (versions.length === 0)
|
|
52
|
+
throw new Error("GitHub has no stable trio release tag");
|
|
53
|
+
return { version: versions[0], source: "github", fallbackReason: npmFailure };
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
const githubFailure = error instanceof Error ? error.message : String(error);
|
|
57
|
+
throw new Error(`npm: ${npmFailure}; GitHub: ${githubFailure}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Whether the `bridge-v<version>` release tag exists on GitHub. Never throws:
|
|
62
|
+
* a failed lookup is reported as `confirmed: false` with the reason, because
|
|
63
|
+
* the caller's decision ("do not schedule a UPM re-pin to a tag we cannot
|
|
64
|
+
* prove exists") is the same either way.
|
|
65
|
+
*/
|
|
66
|
+
export async function confirmBridgeReleaseTag(version, fetchImpl) {
|
|
67
|
+
if (!/^\d+\.\d+\.\d+$/.test(version)) {
|
|
68
|
+
return { confirmed: false, error: "Target version must be a plain X.Y.Z." };
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
const body = await fetchJson(fetchImpl, `${GITHUB_BRIDGE_TAG_URL}${version}`);
|
|
72
|
+
if (!Array.isArray(body)) {
|
|
73
|
+
return { confirmed: false, error: "GitHub returned an invalid ref list." };
|
|
74
|
+
}
|
|
75
|
+
const exact = `refs/tags/bridge-v${version}`;
|
|
76
|
+
return body.some((ref) => isRecord(ref) && ref.ref === exact)
|
|
77
|
+
? { confirmed: true }
|
|
78
|
+
: { confirmed: false, error: `Release tag bridge-v${version} was not found.` };
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
82
|
+
return { confirmed: false, error: `Bridge tag check failed: ${message}` };
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async function fetchJson(fetchImpl, url) {
|
|
86
|
+
const controller = new AbortController();
|
|
87
|
+
const timer = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
|
|
88
|
+
try {
|
|
89
|
+
const response = await fetchImpl(url, {
|
|
90
|
+
headers: { Accept: "application/json", "User-Agent": "unity-open-mcp-update" },
|
|
91
|
+
signal: controller.signal,
|
|
92
|
+
});
|
|
93
|
+
if (!response.ok) {
|
|
94
|
+
throw new Error(`${new URL(url).hostname} returned HTTP ${response.status}`);
|
|
95
|
+
}
|
|
96
|
+
return await response.json();
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
clearTimeout(timer);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
export function parseSemver(value) {
|
|
103
|
+
const match = value.match(/^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/);
|
|
104
|
+
if (!match)
|
|
105
|
+
return null;
|
|
106
|
+
return {
|
|
107
|
+
major: Number(match[1]),
|
|
108
|
+
minor: Number(match[2]),
|
|
109
|
+
patch: Number(match[3]),
|
|
110
|
+
prerelease: match[4]?.split(".") ?? [],
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
export function compareSemver(a, b) {
|
|
114
|
+
const left = parseSemver(a);
|
|
115
|
+
const right = parseSemver(b);
|
|
116
|
+
if (!left || !right)
|
|
117
|
+
return null;
|
|
118
|
+
for (const key of ["major", "minor", "patch"]) {
|
|
119
|
+
if (left[key] !== right[key])
|
|
120
|
+
return left[key] > right[key] ? 1 : -1;
|
|
121
|
+
}
|
|
122
|
+
if (left.prerelease.length === 0 || right.prerelease.length === 0) {
|
|
123
|
+
if (left.prerelease.length === right.prerelease.length)
|
|
124
|
+
return 0;
|
|
125
|
+
return left.prerelease.length === 0 ? 1 : -1;
|
|
126
|
+
}
|
|
127
|
+
const length = Math.max(left.prerelease.length, right.prerelease.length);
|
|
128
|
+
for (let index = 0; index < length; index++) {
|
|
129
|
+
const l = left.prerelease[index];
|
|
130
|
+
const r = right.prerelease[index];
|
|
131
|
+
if (l === undefined)
|
|
132
|
+
return -1;
|
|
133
|
+
if (r === undefined)
|
|
134
|
+
return 1;
|
|
135
|
+
if (l === r)
|
|
136
|
+
continue;
|
|
137
|
+
const lNumeric = /^\d+$/.test(l);
|
|
138
|
+
const rNumeric = /^\d+$/.test(r);
|
|
139
|
+
if (lNumeric && rNumeric)
|
|
140
|
+
return Number(l) > Number(r) ? 1 : -1;
|
|
141
|
+
if (lNumeric !== rNumeric)
|
|
142
|
+
return lNumeric ? -1 : 1;
|
|
143
|
+
return l > r ? 1 : -1;
|
|
144
|
+
}
|
|
145
|
+
return 0;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=release-lookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-lookup.js","sourceRoot":"","sources":["../src/release-lookup.ts"],"names":[],"mappings":"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"}
|
package/dist/routers.d.ts
CHANGED
|
@@ -5,8 +5,12 @@ import { PingCache } from "./ping-cache.js";
|
|
|
5
5
|
import { ResourceRouter } from "./resource-router.js";
|
|
6
6
|
import { BridgeEventStream } from "./event-stream.js";
|
|
7
7
|
import { ToolSessionState } from "./tool-session-state.js";
|
|
8
|
+
import { type ProjectPathSource } from "./project-path.js";
|
|
8
9
|
export interface ResolvedEnv {
|
|
10
|
+
/** Normalized absolute Unity project root. */
|
|
9
11
|
projectPath: string;
|
|
12
|
+
/** Which input produced {@link projectPath} (flag / env / cwd). */
|
|
13
|
+
projectPathSource: ProjectPathSource;
|
|
10
14
|
port: number;
|
|
11
15
|
authToken: string | undefined;
|
|
12
16
|
/** Parsed UNITY_OPEN_MCP_BRIDGE_PORT (or CLI --port override), else undefined.
|
|
@@ -14,18 +18,28 @@ export interface ResolvedEnv {
|
|
|
14
18
|
* override precedence as construction (env override ⇒ no lock refresh). */
|
|
15
19
|
envPort: number | undefined;
|
|
16
20
|
}
|
|
21
|
+
export interface ResolveEnvOptions {
|
|
22
|
+
/** `--project-from-cwd`: derive the Unity project root from the cwd. */
|
|
23
|
+
projectFromCwd?: boolean;
|
|
24
|
+
/** `--unity-subpath <rel>`: Unity project subfolder under the cwd. */
|
|
25
|
+
unitySubpath?: string;
|
|
26
|
+
}
|
|
17
27
|
/**
|
|
18
28
|
* Resolve the project path / port / auth token from explicit overrides (CLI
|
|
19
29
|
* flags) or the process env (MCP server). Throws when no project path is set —
|
|
20
30
|
* callers print a friendly message and exit non-zero.
|
|
21
31
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
32
|
+
* The project path goes through the shared `resolveProjectPath` resolver, so
|
|
33
|
+
* the CLI accepts exactly what the stdio server accepts: an absolute path, a
|
|
34
|
+
* path relative to the cwd (`--project Client` from a monorepo root), or no
|
|
35
|
+
* path at all with `--project-from-cwd [--unity-subpath Client]`.
|
|
36
|
+
*
|
|
37
|
+
* projectPath: --project > UNITY_PROJECT_PATH > cwd (+ subpath)
|
|
24
38
|
* port: override > UNITY_OPEN_MCP_BRIDGE_PORT > lock file > hash
|
|
25
39
|
* authToken: discovered from the same lock as the port (no token with an
|
|
26
40
|
* explicit port override)
|
|
27
41
|
*/
|
|
28
|
-
export declare function resolveEnv(projectPathOverride?: string, portOverride?: number): ResolvedEnv;
|
|
42
|
+
export declare function resolveEnv(projectPathOverride?: string, portOverride?: number, options?: ResolveEnvOptions): ResolvedEnv;
|
|
29
43
|
export declare class ResolveEnvError extends Error {
|
|
30
44
|
}
|
|
31
45
|
export interface RouterStack {
|
package/dist/routers.js
CHANGED
|
@@ -13,30 +13,51 @@ import { ResourceRouter } from "./resource-router.js";
|
|
|
13
13
|
import { BridgeEventStream } from "./event-stream.js";
|
|
14
14
|
import { resolvePort, resolveAuthToken } from "./instance-discovery.js";
|
|
15
15
|
import { ToolSessionState } from "./tool-session-state.js";
|
|
16
|
+
import { isUnityProjectRoot, ProjectPathError, resolveProjectPath, } from "./project-path.js";
|
|
16
17
|
import { PORT_ENV_VAR, PROJECT_PATH_ENV_VAR, bridgeBaseUrl, } from "./constants.js";
|
|
17
18
|
/**
|
|
18
19
|
* Resolve the project path / port / auth token from explicit overrides (CLI
|
|
19
20
|
* flags) or the process env (MCP server). Throws when no project path is set —
|
|
20
21
|
* callers print a friendly message and exit non-zero.
|
|
21
22
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
23
|
+
* The project path goes through the shared `resolveProjectPath` resolver, so
|
|
24
|
+
* the CLI accepts exactly what the stdio server accepts: an absolute path, a
|
|
25
|
+
* path relative to the cwd (`--project Client` from a monorepo root), or no
|
|
26
|
+
* path at all with `--project-from-cwd [--unity-subpath Client]`.
|
|
27
|
+
*
|
|
28
|
+
* projectPath: --project > UNITY_PROJECT_PATH > cwd (+ subpath)
|
|
24
29
|
* port: override > UNITY_OPEN_MCP_BRIDGE_PORT > lock file > hash
|
|
25
30
|
* authToken: discovered from the same lock as the port (no token with an
|
|
26
31
|
* explicit port override)
|
|
27
32
|
*/
|
|
28
|
-
export function resolveEnv(projectPathOverride, portOverride) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
export function resolveEnv(projectPathOverride, portOverride, options = {}) {
|
|
34
|
+
let resolvedProject;
|
|
35
|
+
try {
|
|
36
|
+
resolvedProject = resolveProjectPath({
|
|
37
|
+
flagPath: projectPathOverride,
|
|
38
|
+
envPath: process.env[PROJECT_PATH_ENV_VAR],
|
|
39
|
+
cwd: process.cwd(),
|
|
40
|
+
projectFromCwd: options.projectFromCwd,
|
|
41
|
+
unitySubpath: options.unitySubpath,
|
|
42
|
+
isUnityRoot: isUnityProjectRoot,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
throw new ResolveEnvError(err instanceof ProjectPathError ? err.message : String(err));
|
|
33
47
|
}
|
|
48
|
+
const projectPath = resolvedProject.absolute;
|
|
34
49
|
const rawEnvPort = process.env[PORT_ENV_VAR];
|
|
35
50
|
const envPort = rawEnvPort ? parseInt(rawEnvPort, 10) : undefined;
|
|
36
51
|
const effectiveEnvPort = rawEnvPort && Number.isInteger(envPort) ? envPort : undefined;
|
|
37
52
|
const port = resolvePort(projectPath, portOverride ?? effectiveEnvPort);
|
|
38
53
|
const authToken = resolveAuthToken(projectPath, portOverride ?? effectiveEnvPort);
|
|
39
|
-
return {
|
|
54
|
+
return {
|
|
55
|
+
projectPath,
|
|
56
|
+
projectPathSource: resolvedProject.source,
|
|
57
|
+
port,
|
|
58
|
+
authToken,
|
|
59
|
+
envPort: portOverride ?? effectiveEnvPort,
|
|
60
|
+
};
|
|
40
61
|
}
|
|
41
62
|
export class ResolveEnvError extends Error {
|
|
42
63
|
}
|
package/dist/routers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routers.js","sourceRoot":"","sources":["../src/routers.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yBAAyB;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,aAAa,GACd,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"routers.js","sourceRoot":"","sources":["../src/routers.ts"],"names":[],"mappings":"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"}
|
package/dist/running-unity.d.ts
CHANGED
|
@@ -6,7 +6,14 @@ export interface RunningUnity {
|
|
|
6
6
|
/** Normalized `-projectPath` argument, or null when it could not be parsed
|
|
7
7
|
* (Unity opened without `-projectPath`, e.g. via the Hub's "Open Editor"). */
|
|
8
8
|
projectPath: string | null;
|
|
9
|
+
/** `true` when the command line carries `-batchmode`: a headless run (a
|
|
10
|
+
* compile_check / verify spawn from this or another MCP server, a CI run),
|
|
11
|
+
* never the interactive Editor a user owns. Optional so hand-built scanner
|
|
12
|
+
* fixtures keep working. */
|
|
13
|
+
batchMode?: boolean;
|
|
9
14
|
}
|
|
15
|
+
/** `true` when the command line runs Unity headless (`-batchmode`, any case). */
|
|
16
|
+
export declare function isBatchModeCommandLine(commandLine: string): boolean;
|
|
10
17
|
/**
|
|
11
18
|
* Pure `-projectPath` argument parser. Port of Hub
|
|
12
19
|
* `running_unity.rs#parse_project_path_arg`. Accepts both the space-separated
|
|
@@ -106,6 +113,10 @@ export declare function setUnityProcessScannerForTest(fake: UnityProcessScanner
|
|
|
106
113
|
* scan simply returns null and the caller falls back to its pre-feature
|
|
107
114
|
* behavior. Documented in tests.
|
|
108
115
|
*
|
|
116
|
+
* Skips headless batch children this server spawned and still supervises
|
|
117
|
+
* (see `child-supervision.ts`): they carry the same `-projectPath` but are
|
|
118
|
+
* tracked by the batch lease, not by Editor-ownership diagnostics.
|
|
119
|
+
*
|
|
109
120
|
* Never throws: any scanner failure (ps missing, PowerShell slow, parse
|
|
110
121
|
* error) returns null. A failed scan must not mask the underlying offline
|
|
111
122
|
* state.
|
|
@@ -115,6 +126,16 @@ export declare function setUnityProcessScannerForTest(fake: UnityProcessScanner
|
|
|
115
126
|
export declare function findUnityForProject(projectPath: string | null | undefined): {
|
|
116
127
|
pid: number;
|
|
117
128
|
} | null;
|
|
129
|
+
/**
|
|
130
|
+
* A headless (`-batchmode`) Unity that ANOTHER process has open on
|
|
131
|
+
* `projectPath`: a compile_check / verify spawn from a second MCP server, or a
|
|
132
|
+
* CI run. This server's own supervised child is excluded (the batch lease
|
|
133
|
+
* accounts for it), and the interactive Editor is `findUnityForProject`'s
|
|
134
|
+
* business. Never throws; null when no such process is found.
|
|
135
|
+
*/
|
|
136
|
+
export declare function findHeadlessUnityForProject(projectPath: string | null | undefined): {
|
|
137
|
+
pid: number;
|
|
138
|
+
} | null;
|
|
118
139
|
/**
|
|
119
140
|
* Read the full command line of a live process by PID. Cross-platform best
|
|
120
141
|
* effort: macOS/Linux via `ps -p <pid> -o command=`, Windows via a PowerShell
|
package/dist/running-unity.js
CHANGED
|
@@ -29,6 +29,11 @@
|
|
|
29
29
|
// two projects).
|
|
30
30
|
import { execFileSync } from "node:child_process";
|
|
31
31
|
import { normalizePath } from "./instance-discovery.js";
|
|
32
|
+
import { isSupervisedBatchChildPid } from "./child-supervision.js";
|
|
33
|
+
/** `true` when the command line runs Unity headless (`-batchmode`, any case). */
|
|
34
|
+
export function isBatchModeCommandLine(commandLine) {
|
|
35
|
+
return /(^|\s)-batchmode(\s|$)/i.test(commandLine);
|
|
36
|
+
}
|
|
32
37
|
/**
|
|
33
38
|
* Pure `-projectPath` argument parser. Port of Hub
|
|
34
39
|
* `running_unity.rs#parse_project_path_arg`. Accepts both the space-separated
|
|
@@ -272,6 +277,7 @@ export function parsePsOutput(stdout) {
|
|
|
272
277
|
out.push({
|
|
273
278
|
pid,
|
|
274
279
|
projectPath: projectPath !== null ? normalizePath(projectPath) : null,
|
|
280
|
+
batchMode: isBatchModeCommandLine(rest),
|
|
275
281
|
});
|
|
276
282
|
}
|
|
277
283
|
return out;
|
|
@@ -305,6 +311,7 @@ export function parsePowerShellLines(stdout) {
|
|
|
305
311
|
out.push({
|
|
306
312
|
pid,
|
|
307
313
|
projectPath: projectPath !== null ? normalizePath(projectPath) : null,
|
|
314
|
+
batchMode: rest.length > 0 && rest !== "null" && isBatchModeCommandLine(rest),
|
|
308
315
|
});
|
|
309
316
|
}
|
|
310
317
|
return out;
|
|
@@ -385,6 +392,10 @@ export function setUnityProcessScannerForTest(fake) {
|
|
|
385
392
|
* scan simply returns null and the caller falls back to its pre-feature
|
|
386
393
|
* behavior. Documented in tests.
|
|
387
394
|
*
|
|
395
|
+
* Skips headless batch children this server spawned and still supervises
|
|
396
|
+
* (see `child-supervision.ts`): they carry the same `-projectPath` but are
|
|
397
|
+
* tracked by the batch lease, not by Editor-ownership diagnostics.
|
|
398
|
+
*
|
|
388
399
|
* Never throws: any scanner failure (ps missing, PowerShell slow, parse
|
|
389
400
|
* error) returns null. A failed scan must not mask the underlying offline
|
|
390
401
|
* state.
|
|
@@ -405,6 +416,45 @@ export function findUnityForProject(projectPath) {
|
|
|
405
416
|
return null;
|
|
406
417
|
}
|
|
407
418
|
for (const proc of found) {
|
|
419
|
+
// Our own headless child is not an Editor the user owns; the batch lease
|
|
420
|
+
// accounts for it (and restart_editor must never pick it).
|
|
421
|
+
if (isSupervisedBatchChildPid(proc.pid))
|
|
422
|
+
continue;
|
|
423
|
+
// Neither is a -batchmode Unity another process started (a second MCP
|
|
424
|
+
// server's compile_check, a CI run): it is never in Safe Mode, must never
|
|
425
|
+
// be killed by restart_editor, and batch-spawn reports it separately
|
|
426
|
+
// (findHeadlessUnityForProject).
|
|
427
|
+
if (proc.batchMode)
|
|
428
|
+
continue;
|
|
429
|
+
if (proc.projectPath !== null && normalizePath(proc.projectPath) === target) {
|
|
430
|
+
return { pid: proc.pid };
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
return null;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* A headless (`-batchmode`) Unity that ANOTHER process has open on
|
|
437
|
+
* `projectPath`: a compile_check / verify spawn from a second MCP server, or a
|
|
438
|
+
* CI run. This server's own supervised child is excluded (the batch lease
|
|
439
|
+
* accounts for it), and the interactive Editor is `findUnityForProject`'s
|
|
440
|
+
* business. Never throws; null when no such process is found.
|
|
441
|
+
*/
|
|
442
|
+
export function findHeadlessUnityForProject(projectPath) {
|
|
443
|
+
if (!projectPath)
|
|
444
|
+
return null;
|
|
445
|
+
const target = normalizePath(projectPath);
|
|
446
|
+
if (target.length === 0)
|
|
447
|
+
return null;
|
|
448
|
+
let found = [];
|
|
449
|
+
try {
|
|
450
|
+
found = getUnityProcessScanner().scan();
|
|
451
|
+
}
|
|
452
|
+
catch {
|
|
453
|
+
return null;
|
|
454
|
+
}
|
|
455
|
+
for (const proc of found) {
|
|
456
|
+
if (!proc.batchMode || isSupervisedBatchChildPid(proc.pid))
|
|
457
|
+
continue;
|
|
408
458
|
if (proc.projectPath !== null && normalizePath(proc.projectPath) === target) {
|
|
409
459
|
return { pid: proc.pid };
|
|
410
460
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"running-unity.js","sourceRoot":"","sources":["../src/running-unity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"running-unity.js","sourceRoot":"","sources":["../src/running-unity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
2
|
/**
|
|
3
|
-
* Returns a copy of `args` with missing top-level scalar
|
|
4
|
-
* from the given tool's input schema.
|
|
5
|
-
*
|
|
3
|
+
* Returns a copy of `args` with missing top-level scalar and array defaults
|
|
4
|
+
* filled in from the given tool's input schema. Arrays are cloned so callers
|
|
5
|
+
* cannot mutate the schema. Object defaults remain unsupported because their
|
|
6
|
+
* merge semantics are ambiguous.
|
|
6
7
|
*
|
|
7
8
|
* The original `args` object is never mutated. Existing caller-supplied values
|
|
8
9
|
* are preserved verbatim, including `undefined`/`null`.
|
package/dist/schema-defaults.js
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
// run_tests (whose schema default is 60000).
|
|
11
11
|
//
|
|
12
12
|
// To make the schema the single source of truth, the CallTool handler fills in
|
|
13
|
-
// any missing top-level argument whose property declares a scalar
|
|
13
|
+
// any missing top-level argument whose property declares a scalar or array
|
|
14
|
+
// `default`
|
|
14
15
|
// before dispatching. This keeps client-supplied values authoritative and only
|
|
15
16
|
// ever adds missing fields.
|
|
16
17
|
//
|
|
@@ -25,10 +26,21 @@ function isScalarDefault(value) {
|
|
|
25
26
|
typeof value === "boolean" ||
|
|
26
27
|
typeof value === "string");
|
|
27
28
|
}
|
|
29
|
+
function supportedDefault(value) {
|
|
30
|
+
if (isScalarDefault(value))
|
|
31
|
+
return value;
|
|
32
|
+
if (Array.isArray(value)) {
|
|
33
|
+
// Tool schemas are JSON documents, so this safely clones nested array
|
|
34
|
+
// entries without sharing mutable schema state with the dispatched args.
|
|
35
|
+
return JSON.parse(JSON.stringify(value));
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
28
39
|
/**
|
|
29
|
-
* Returns a copy of `args` with missing top-level scalar
|
|
30
|
-
* from the given tool's input schema.
|
|
31
|
-
*
|
|
40
|
+
* Returns a copy of `args` with missing top-level scalar and array defaults
|
|
41
|
+
* filled in from the given tool's input schema. Arrays are cloned so callers
|
|
42
|
+
* cannot mutate the schema. Object defaults remain unsupported because their
|
|
43
|
+
* merge semantics are ambiguous.
|
|
32
44
|
*
|
|
33
45
|
* The original `args` object is never mutated. Existing caller-supplied values
|
|
34
46
|
* are preserved verbatim, including `undefined`/`null`.
|
|
@@ -41,8 +53,10 @@ export function withSchemaDefaults(tool, args) {
|
|
|
41
53
|
for (const [key, schema] of Object.entries(properties)) {
|
|
42
54
|
if (key in out)
|
|
43
55
|
continue;
|
|
44
|
-
|
|
45
|
-
|
|
56
|
+
if (Object.entries(properties).some(([alias, prop]) => alias in args && prop["x-alias-for"] === key))
|
|
57
|
+
continue;
|
|
58
|
+
const def = supportedDefault(schema?.default);
|
|
59
|
+
if (def !== undefined)
|
|
46
60
|
out[key] = def;
|
|
47
61
|
}
|
|
48
62
|
return out;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-defaults.js","sourceRoot":"","sources":["../src/schema-defaults.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,0EAA0E;AAC1E,kFAAkF;AAClF,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,0EAA0E;AAC1E,oEAAoE;AACpE,6CAA6C;AAC7C,EAAE;AACF,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"schema-defaults.js","sourceRoot":"","sources":["../src/schema-defaults.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,0EAA0E;AAC1E,kFAAkF;AAClF,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,0EAA0E;AAC1E,oEAAoE;AACpE,6CAA6C;AAC7C,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,YAAY;AACZ,+EAA+E;AAC/E,4BAA4B;AAC5B,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,gFAAgF;AAChF,iEAAiE;AAYjE,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ,CAC1B,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,eAAe,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,sEAAsE;QACtE,yEAAyE;QACzE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAc,CAAC;IACxD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAU,EACV,IAA6B;IAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAExB,CAAC;IACd,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IAEpC,MAAM,GAAG,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IACjD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,IAAI,GAAG;YAAE,SAAS;QACzB,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,IAAK,IAAgC,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC;YAAE,SAAS;QAC5I,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,GAAG,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAU,EACV,IAA6B;IAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -51,7 +51,10 @@ export function buildServerInstructions() {
|
|
|
51
51
|
"`unity_open_mcp_*` tools route through the live bridge (or fall back to a",
|
|
52
52
|
"headless batch Unity / offline disk parsers); `unity_senses_*` tools are",
|
|
53
53
|
"live-only and never batch. Call `unity_open_mcp_capabilities` first to",
|
|
54
|
-
"
|
|
54
|
+
"use tool_name for one exact schema, or query/group/tag filters with paging.",
|
|
55
|
+
"Use canonical asset_path, game_object_path, component_type and property_path.",
|
|
56
|
+
"If list refresh is unavailable, manage_tools(action=\"invoke\", tool_name, arguments)",
|
|
57
|
+
"uses the activated target’s normal route and protections. Prefer the",
|
|
55
58
|
"intent path `unity_open_mcp_manage_tools(action=\"activate_for\",",
|
|
56
59
|
"intent=\"…\")` over hand-picking group ids — state what you are about to",
|
|
57
60
|
"do and the server brings the right groups online in one call (use",
|
|
@@ -59,6 +62,9 @@ export function buildServerInstructions() {
|
|
|
59
62
|
"state). `action=\"list_groups\"` lists every group with its active flag,",
|
|
60
63
|
"compiled-state availability, and tool roster.",
|
|
61
64
|
"",
|
|
65
|
+
"Prefer typed live edits; never directly edit open/dirty scene or asset YAML.",
|
|
66
|
+
"For necessary offline-file repair, preserve GUID/fileID and intended-scene identity;",
|
|
67
|
+
"reimport/reserialize and run scoped validation before trusting the change.",
|
|
62
68
|
"PAYLOAD SIZING & PAGING (avoid flooding context)",
|
|
63
69
|
"- The heavy tools (`read_asset`, `search_assets`, `scene_get_data`,",
|
|
64
70
|
" `find_references`, `validate_edit`, `scan_paths`) return variable-size",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../src/server-instructions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../src/server-instructions.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,gDAAgD;AAChD,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,uEAAuE;AACvE,wEAAwE;AACxE,2EAA2E;AAC3E,yEAAyE;AACzE,6EAA6E;AAC7E,sEAAsE;AACtE,EAAE;AACF,sEAAsE;AACtE,8EAA8E;AAC9E,+EAA+E;AAC/E,wDAAwD;AACxD,EAAE;AACF,4EAA4E;AAC5E,4DAA4D;AAE5D,6EAA6E;AAC7E,wEAAwE;AACxE,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,+DAA+D;AAC/D,MAAM,2BAA2B,GAAa;IAC5C,kBAAkB,EAAE,uBAAuB;IAC3C,oBAAoB,EAAE,qBAAqB;IAC3C,UAAU;IACV,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,uBAAuB;IACvB,oBAAoB;IACpB,gBAAgB;IAChB,qBAAqB;IACrB,aAAa;IACb,SAAS;CACV,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,oEAAoE;QACpE,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,6EAA6E;QAC7E,+EAA+E;QAC/E,uFAAuF;QACvF,sEAAsE;QACtE,mEAAmE;QACnE,0EAA0E;QAC1E,mEAAmE;QACnE,0EAA0E;QAC1E,0EAA0E;QAC1E,+CAA+C;QAC/C,EAAE;QACF,8EAA8E;QAC9E,sFAAsF;QACtF,4EAA4E;QAC5E,kDAAkD;QAClD,qEAAqE;QACrE,0EAA0E;QAC1E,4EAA4E;QAC5E,wEAAwE;QACxE,yEAAyE;QACzE,4EAA4E;QAC5E,2EAA2E;QAC3E,4EAA4E;QAC5E,kEAAkE;QAClE,8EAA8E;QAC9E,oEAAoE;QACpE,sEAAsE;QACtE,gCAAgC;QAChC,yEAAyE;QACzE,wEAAwE;QACxE,gCAAgC;QAChC,EAAE;QACF,sDAAsD;QACtD,iEAAiE;QACjE,2EAA2E;QAC3E,eAAe;QACf,4EAA4E;QAC5E,+DAA+D;QAC/D,2DAA2D;QAC3D,6DAA6D;QAC7D,2EAA2E;QAC3E,yEAAyE;QACzE,uEAAuE;QACvE,4EAA4E;QAC5E,EAAE;QACF,qBAAqB;QACrB,mEAAmE;QACnE,6DAA6D;QAC7D,uEAAuE;QACvE,yEAAyE;QACzE,8CAA8C;QAC9C,uEAAuE;QACvE,uEAAuE;QACvE,4EAA4E;QAC5E,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,EAAE;QACF,mBAAmB;QACnB,wEAAwE;QACxE,4EAA4E;QAC5E,6CAA6C;QAC7C,qEAAqE;QACrE,wEAAwE;QACxE,yEAAyE;QACzE,wDAAwD;QACxD,yEAAyE;QACzE,2EAA2E;QAC3E,kDAAkD;QAClD,EAAE;QACF,kBAAkB;QAClB,mEAAmE;QACnE,uDAAuD;KACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,GAAG,uBAAuB,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAAC,IAAY;IAC3D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,2BAA2B,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK;YAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
2
|
/**
|
|
3
|
-
* Resolve env for the MCP server.
|
|
4
|
-
* uses M13 T4.3 instance discovery:
|
|
3
|
+
* Resolve env for the MCP server. The port uses M13 T4.3 instance discovery:
|
|
5
4
|
* 1. UNITY_OPEN_MCP_BRIDGE_PORT env var (override wins; users who pin a
|
|
6
5
|
* port keep working as before)
|
|
7
6
|
* 2. ~/.unity-open-mcp/instances/<hash>.json lock file (when its pid is alive)
|
|
8
7
|
* 3. deterministic hash of the project path (20000 + sha256 % 10000)
|
|
9
8
|
* The resolved port is logged so users can see which bridge was picked.
|
|
9
|
+
*
|
|
10
|
+
* The project path is normally resolved by the caller (`index.ts`, via
|
|
11
|
+
* `resolveProjectPath`) and passed in already absolute, so a portable spawn
|
|
12
|
+
* (`--project-from-cwd`) never has to round-trip through the environment.
|
|
13
|
+
* When no path is supplied this falls back to raw `UNITY_PROJECT_PATH` for
|
|
14
|
+
* embedders that call `getEnv()` directly.
|
|
10
15
|
*/
|
|
11
|
-
export declare function getEnv(
|
|
16
|
+
export declare function getEnv(options?: {
|
|
17
|
+
projectPath?: string;
|
|
18
|
+
}): {
|
|
12
19
|
projectPath: string;
|
|
13
20
|
port: number;
|
|
14
21
|
authToken?: string;
|