unity-open-mcp 0.9.0 → 1.1.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/dist/asmdef-discovery.d.ts +35 -0
- package/dist/asmdef-discovery.js +171 -0
- package/dist/asmdef-discovery.js.map +1 -0
- package/dist/batch-spawn.d.ts +27 -0
- package/dist/batch-spawn.js +218 -24
- package/dist/batch-spawn.js.map +1 -1
- package/dist/capabilities/build-capabilities.d.ts +10 -0
- package/dist/capabilities/build-capabilities.js +4 -0
- package/dist/capabilities/build-capabilities.js.map +1 -1
- package/dist/capabilities/capabilities-view.d.ts +48 -0
- package/dist/capabilities/capabilities-view.js +93 -0
- package/dist/capabilities/capabilities-view.js.map +1 -0
- package/dist/capabilities/intent-groups.js +42 -0
- package/dist/capabilities/intent-groups.js.map +1 -1
- package/dist/capabilities/rule-catalog.js +7 -1
- package/dist/capabilities/rule-catalog.js.map +1 -1
- package/dist/capabilities/tool-groups.js +37 -2
- package/dist/capabilities/tool-groups.js.map +1 -1
- package/dist/child-supervision.d.ts +34 -0
- package/dist/child-supervision.js +110 -0
- package/dist/child-supervision.js.map +1 -0
- package/dist/cli/cli.js +9 -0
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands.js +37 -4
- package/dist/cli/commands.js.map +1 -1
- package/dist/compressible-router.js +12 -1
- package/dist/compressible-router.js.map +1 -1
- package/dist/constants.d.ts +31 -1
- package/dist/constants.js +31 -1
- package/dist/constants.js.map +1 -1
- package/dist/dialog-dismiss.d.ts +11 -0
- package/dist/dialog-dismiss.js +59 -4
- package/dist/dialog-dismiss.js.map +1 -1
- package/dist/editor-wedge.d.ts +45 -0
- package/dist/editor-wedge.js +111 -0
- package/dist/editor-wedge.js.map +1 -0
- package/dist/event-stream.d.ts +19 -6
- package/dist/event-stream.js +139 -17
- package/dist/event-stream.js.map +1 -1
- package/dist/gate-error.d.ts +2 -0
- package/dist/gate-error.js +9 -0
- package/dist/gate-error.js.map +1 -1
- package/dist/instance-discovery.d.ts +23 -0
- package/dist/instance-discovery.js +47 -1
- package/dist/instance-discovery.js.map +1 -1
- package/dist/live-client.d.ts +40 -5
- package/dist/live-client.js +254 -36
- package/dist/live-client.js.map +1 -1
- package/dist/offline/api.js +82 -30
- package/dist/offline/api.js.map +1 -1
- package/dist/offline/index-builders.d.ts +9 -0
- package/dist/offline/index-builders.js +58 -8
- package/dist/offline/index-builders.js.map +1 -1
- package/dist/offline/parse.js +5 -1
- package/dist/offline/parse.js.map +1 -1
- package/dist/process-diagnostics.d.ts +101 -19
- package/dist/process-diagnostics.js +197 -59
- package/dist/process-diagnostics.js.map +1 -1
- package/dist/project-settings.d.ts +36 -0
- package/dist/project-settings.js +96 -0
- package/dist/project-settings.js.map +1 -0
- package/dist/results.d.ts +8 -0
- package/dist/results.js +4 -1
- package/dist/results.js.map +1 -1
- package/dist/routers.js +4 -1
- package/dist/routers.js.map +1 -1
- package/dist/running-unity.d.ts +23 -0
- package/dist/running-unity.js +60 -0
- package/dist/running-unity.js.map +1 -1
- package/dist/server.js +8 -2
- package/dist/server.js.map +1 -1
- package/dist/stale-assembly-cache.d.ts +40 -0
- package/dist/stale-assembly-cache.js +76 -0
- package/dist/stale-assembly-cache.js.map +1 -0
- package/dist/tool-hint.d.ts +36 -0
- package/dist/tool-hint.js +98 -0
- package/dist/tool-hint.js.map +1 -0
- package/dist/tool-router.d.ts +47 -2
- package/dist/tool-router.js +652 -71
- package/dist/tool-router.js.map +1 -1
- package/dist/tools/agent-capabilities.js +27 -1
- package/dist/tools/agent-capabilities.js.map +1 -1
- package/dist/tools/baseline-create.js +1 -1
- package/dist/tools/baseline-create.js.map +1 -1
- package/dist/tools/batch-execute.js +12 -1
- package/dist/tools/batch-execute.js.map +1 -1
- package/dist/tools/bridge-status.js +21 -1
- package/dist/tools/bridge-status.js.map +1 -1
- package/dist/tools/capture-inline.js +4 -3
- package/dist/tools/capture-inline.js.map +1 -1
- package/dist/tools/editor-status.js +7 -2
- package/dist/tools/editor-status.js.map +1 -1
- package/dist/tools/execute-csharp.js +36 -3
- package/dist/tools/execute-csharp.js.map +1 -1
- package/dist/tools/execute-menu.js +33 -2
- package/dist/tools/execute-menu.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.js +44 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/inputsim-key.d.ts +40 -0
- package/dist/tools/inputsim-key.js +72 -0
- package/dist/tools/inputsim-key.js.map +1 -0
- package/dist/tools/inputsim-pointer.d.ts +40 -0
- package/dist/tools/inputsim-pointer.js +121 -0
- package/dist/tools/inputsim-pointer.js.map +1 -0
- package/dist/tools/inputsim-pointer3d.d.ts +40 -0
- package/dist/tools/inputsim-pointer3d.js +55 -0
- package/dist/tools/inputsim-pointer3d.js.map +1 -0
- package/dist/tools/inputsim-probe.d.ts +40 -0
- package/dist/tools/inputsim-probe.js +43 -0
- package/dist/tools/inputsim-probe.js.map +1 -0
- package/dist/tools/inputsim-step.d.ts +40 -0
- package/dist/tools/inputsim-step.js +50 -0
- package/dist/tools/inputsim-step.js.map +1 -0
- package/dist/tools/inputsim-touch.d.ts +40 -0
- package/dist/tools/inputsim-touch.js +83 -0
- package/dist/tools/inputsim-touch.js.map +1 -0
- package/dist/tools/invoke-method.js +15 -1
- package/dist/tools/invoke-method.js.map +1 -1
- package/dist/tools/memory-snapshot-capture.js +11 -5
- package/dist/tools/memory-snapshot-capture.js.map +1 -1
- package/dist/tools/pull-events.js +18 -10
- package/dist/tools/pull-events.js.map +1 -1
- package/dist/tools/read-compile-errors.js +36 -7
- package/dist/tools/read-compile-errors.js.map +1 -1
- package/dist/tools/regression-check.js +2 -1
- package/dist/tools/regression-check.js.map +1 -1
- package/dist/tools/resource-pressure.js +21 -10
- package/dist/tools/resource-pressure.js.map +1 -1
- package/dist/tools/run-tests.js +11 -2
- package/dist/tools/run-tests.js.map +1 -1
- package/dist/tools/scan-all.js +2 -2
- package/dist/tools/scan-all.js.map +1 -1
- package/dist/tools/screenshot-window.js +18 -12
- package/dist/tools/screenshot-window.js.map +1 -1
- package/dist/tools/screenshot.js +13 -6
- package/dist/tools/screenshot.js.map +1 -1
- package/dist/tools/visual-compare.d.ts +40 -0
- package/dist/tools/visual-compare.js +98 -0
- package/dist/tools/visual-compare.js.map +1 -0
- package/dist/unity-log.d.ts +67 -2
- package/dist/unity-log.js +206 -8
- package/dist/unity-log.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// TS-side reader for `.unity-open-mcp/settings.json`.
|
|
2
|
+
//
|
|
3
|
+
// The same settings file is already read by C# on the Unity side
|
|
4
|
+
// (`VerifyProjectSettings.cs`, `BridgeProjectSettings.cs`) for verify + bridge
|
|
5
|
+
// tunables. Those readers use `JsonUtility`, which silently IGNORES unknown
|
|
6
|
+
// keys — so a TS-read slice in the same file does not conflict. This module is
|
|
7
|
+
// the TS-side mirror: it reads keys that are consumed entirely inside the MCP
|
|
8
|
+
// server (Node.js) by tools that deliberately do NOT depend on the bridge.
|
|
9
|
+
//
|
|
10
|
+
// The motivating consumer is `resource_pressure`, a server-side fd probe whose
|
|
11
|
+
// ceiling must be overridable for runtimes whose internal limit differs from
|
|
12
|
+
// Mono's classic 1024 (e.g. Unity 6 / CoreCLR). Because `resource_pressure`
|
|
13
|
+
// runs server-side and the bridge is the thing that dies on fd-exhaustion, the
|
|
14
|
+
// ceiling CANNOT be resolved through the bridge — it must be read here.
|
|
15
|
+
//
|
|
16
|
+
// Robustness mirrors the C# pattern: missing file / section / invalid value →
|
|
17
|
+
// defaults, never throws.
|
|
18
|
+
import { readFileSync, existsSync } from "node:fs";
|
|
19
|
+
import { resolve } from "node:path";
|
|
20
|
+
import { STATUS_DIR_NAME } from "./constants.js";
|
|
21
|
+
import { FD_CEILING_DEFAULT } from "./process-diagnostics.js";
|
|
22
|
+
/** File name inside the `.unity-open-mcp/` directory. */
|
|
23
|
+
const SETTINGS_FILE_NAME = "settings.json";
|
|
24
|
+
/** Below this configured ceiling the value is rejected → default. */
|
|
25
|
+
export const FD_CEILING_MIN = 64;
|
|
26
|
+
/** Above this configured ceiling the value is clamped down. */
|
|
27
|
+
export const FD_CEILING_MAX = 1_000_000;
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the settings file path for a project root. Exported for tests.
|
|
30
|
+
* `resolve` (not `join`) anchors a RELATIVE project path against the server's
|
|
31
|
+
* cwd instead of producing a relative path that would be re-interpreted by
|
|
32
|
+
* later read calls — matching how every other project-rooted path is resolved.
|
|
33
|
+
*/
|
|
34
|
+
export function settingsFilePath(projectPath) {
|
|
35
|
+
return resolve(projectPath, STATUS_DIR_NAME, SETTINGS_FILE_NAME);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Clamp a configured ceiling following the C# `ClampBatchExecuteMaxCommands`
|
|
39
|
+
* pattern: below the min → default (a nonsensically-low ceiling is treated as
|
|
40
|
+
* "not configured"); above the max → the max. An in-range value is kept as-is.
|
|
41
|
+
* The `source` stays `"config"` whenever a valid number was supplied (even if
|
|
42
|
+
* clamped to the max), and drops to `"default"` only when the value is absent,
|
|
43
|
+
* non-numeric, or below the min.
|
|
44
|
+
*/
|
|
45
|
+
function resolveConfigured(raw) {
|
|
46
|
+
if (typeof raw !== "number" || !Number.isFinite(raw)) {
|
|
47
|
+
return { ceiling: FD_CEILING_DEFAULT, source: "default" };
|
|
48
|
+
}
|
|
49
|
+
if (raw < FD_CEILING_MIN) {
|
|
50
|
+
return { ceiling: FD_CEILING_DEFAULT, source: "default" };
|
|
51
|
+
}
|
|
52
|
+
if (raw > FD_CEILING_MAX) {
|
|
53
|
+
return { ceiling: FD_CEILING_MAX, source: "config" };
|
|
54
|
+
}
|
|
55
|
+
return { ceiling: Math.floor(raw), source: "config" };
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Read the fd ceiling for a project from `.unity-open-mcp/settings.json`.
|
|
59
|
+
* Never throws: missing file, unparseable JSON, missing slice, or an invalid
|
|
60
|
+
* value all fall back to {@link FD_CEILING_DEFAULT} with `source: "default"`.
|
|
61
|
+
*
|
|
62
|
+
* Reads fresh on every call — `resource_pressure` is invoked infrequently
|
|
63
|
+
* (after heavy automation), and fresh reads let an operator change the setting
|
|
64
|
+
* without restarting the MCP server.
|
|
65
|
+
*/
|
|
66
|
+
export function readFdCeiling(projectPath) {
|
|
67
|
+
let path;
|
|
68
|
+
try {
|
|
69
|
+
path = settingsFilePath(projectPath);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return { ceiling: FD_CEILING_DEFAULT, source: "default" };
|
|
73
|
+
}
|
|
74
|
+
if (!existsSync(path)) {
|
|
75
|
+
return { ceiling: FD_CEILING_DEFAULT, source: "default" };
|
|
76
|
+
}
|
|
77
|
+
let raw;
|
|
78
|
+
try {
|
|
79
|
+
raw = readFileSync(path, "utf8");
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return { ceiling: FD_CEILING_DEFAULT, source: "default" };
|
|
83
|
+
}
|
|
84
|
+
let parsed;
|
|
85
|
+
try {
|
|
86
|
+
parsed = JSON.parse(raw);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return { ceiling: FD_CEILING_DEFAULT, source: "default" };
|
|
90
|
+
}
|
|
91
|
+
if (!parsed || typeof parsed !== "object") {
|
|
92
|
+
return { ceiling: FD_CEILING_DEFAULT, source: "default" };
|
|
93
|
+
}
|
|
94
|
+
return resolveConfigured(parsed.resourcePressure?.fdCeiling);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=project-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-settings.js","sourceRoot":"","sources":["../src/project-settings.ts"],"names":[],"mappings":"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"}
|
package/dist/results.d.ts
CHANGED
|
@@ -10,5 +10,13 @@ export interface ErrorResultInput {
|
|
|
10
10
|
* surface richer structured data (e.g. HTTP status + body from the bridge).
|
|
11
11
|
*/
|
|
12
12
|
detail?: unknown;
|
|
13
|
+
/**
|
|
14
|
+
* Optional `_source` stamp on the DEFAULT body (ignored when `detail` is
|
|
15
|
+
* supplied — a custom body stamps its own). "local" for caller-side
|
|
16
|
+
* validation failures, "offline" when an offline-first attempt failed
|
|
17
|
+
* without bridge contact. Keeps the router's derived `_route` honest for
|
|
18
|
+
* error results too, instead of defaulting everything to route:"live".
|
|
19
|
+
*/
|
|
20
|
+
source?: "live" | "offline" | "local";
|
|
13
21
|
}
|
|
14
22
|
export declare function makeErrorResult(input: ErrorResultInput): CallToolResult;
|
package/dist/results.js
CHANGED
|
@@ -13,7 +13,10 @@
|
|
|
13
13
|
// is supplied, it replaces the error envelope entirely (callers that build a
|
|
14
14
|
// richer custom body rely on this).
|
|
15
15
|
export function makeErrorResult(input) {
|
|
16
|
-
const body = input.detail ?? {
|
|
16
|
+
const body = input.detail ?? {
|
|
17
|
+
error: { code: input.code, message: input.message },
|
|
18
|
+
...(input.source ? { _source: input.source } : {}),
|
|
19
|
+
};
|
|
17
20
|
return {
|
|
18
21
|
content: [{ type: "text", text: JSON.stringify(body) }],
|
|
19
22
|
isError: true,
|
package/dist/results.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"results.js","sourceRoot":"","sources":["../src/results.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,gFAAgF;AAChF,0EAA0E;AAC1E,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,6EAA6E;AAC7E,oCAAoC;
|
|
1
|
+
{"version":3,"file":"results.js","sourceRoot":"","sources":["../src/results.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,gFAAgF;AAChF,0EAA0E;AAC1E,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,6EAA6E;AAC7E,oCAAoC;AAyBpC,MAAM,UAAU,eAAe,CAAC,KAAuB;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,IAAI;QAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;QACnD,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC;IACF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|
package/dist/routers.js
CHANGED
|
@@ -49,7 +49,10 @@ export function buildRouterStack(env) {
|
|
|
49
49
|
const pingCache = new PingCache();
|
|
50
50
|
const live = new LiveClient(env.port, pingCache, env.authToken, env.projectPath, undefined, env.envPort);
|
|
51
51
|
const batch = new BatchSpawn({ projectPath: env.projectPath });
|
|
52
|
-
|
|
52
|
+
// projectPath/envPort let the reader's reconnects re-read the instance lock
|
|
53
|
+
// (the bridge rotates its bearer token on every domain reload), mirroring
|
|
54
|
+
// LiveClient's refreshEndpointFromLock self-heal.
|
|
55
|
+
const eventStream = new BridgeEventStream(bridgeBaseUrl(env.port), undefined, env.authToken, env.projectPath, env.envPort);
|
|
53
56
|
const sessionState = new ToolSessionState();
|
|
54
57
|
const router = new ToolRouter(live, batch, env.projectPath, eventStream, sessionState);
|
|
55
58
|
const resourceRouter = new ResourceRouter({
|
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;AAYxB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACxB,mBAA4B,EAC5B,YAAqB;IAErB,MAAM,WAAW,GAAG,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC7E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CACvB,GAAG,oBAAoB,oCAAoC;YACzD,6BAA6B,CAChC,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,MAAM,gBAAgB,GACpB,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhE,MAAM,IAAI,GAAG,WAAW,CACtB,WAAW,EACX,YAAY,IAAI,gBAAgB,CACjC,CAAC;IACF,MAAM,SAAS,GAAG,gBAAgB,CAChC,WAAW,EACX,YAAY,IAAI,gBAAgB,CACjC,CAAC;IAEF,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,CAAC;AACrF,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;CAAG;AAkB7C;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAgB;IAC/C,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACzG,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,IAAI,iBAAiB,CACvC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EACvB,SAAS,EACT,GAAG,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"routers.js","sourceRoot":"","sources":["../src/routers.ts"],"names":[],"mappings":"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"}
|
package/dist/running-unity.d.ts
CHANGED
|
@@ -38,6 +38,18 @@ export declare function parseProjectPathArg(args: ReadonlyArray<string>): string
|
|
|
38
38
|
* token is a reliable end-of-path marker.
|
|
39
39
|
*/
|
|
40
40
|
export declare function isUnityCommandLine(commandLine: string): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* `true` when the command line identifies a Unity **worker** process
|
|
43
|
+
* (AssetImportWorker / batch import worker), not the interactive editor.
|
|
44
|
+
* Unity spawns these as children with `-batchMode -parentPid
|
|
45
|
+
* -name AssetImportWorker0 … -projectPath <same project>`; their executable
|
|
46
|
+
* basename is still `Unity`, so they pass `isUnityCommandLine` and pollute the
|
|
47
|
+
* PID scan. feedback #2 (2026-08-06): `restart_editor` / `resource_pressure`
|
|
48
|
+
* targeted an AssetImportWorker instead of the main editor on fd-exhaustion
|
|
49
|
+
* because the worker appeared first in the scan. Detecting workers here (rather
|
|
50
|
+
* than at the call sites) hardens every caller at once.
|
|
51
|
+
*/
|
|
52
|
+
export declare function isAssetImportWorker(commandLine: string): boolean;
|
|
41
53
|
/**
|
|
42
54
|
* Naive argv splitter for a `ps`-formatted command line. Honours double and
|
|
43
55
|
* single quotes and treats backslashes as literal (macOS `ps` output never
|
|
@@ -103,3 +115,14 @@ export declare function setUnityProcessScannerForTest(fake: UnityProcessScanner
|
|
|
103
115
|
export declare function findUnityForProject(projectPath: string | null | undefined): {
|
|
104
116
|
pid: number;
|
|
105
117
|
} | null;
|
|
118
|
+
/**
|
|
119
|
+
* Read the full command line of a live process by PID. Cross-platform best
|
|
120
|
+
* effort: macOS/Linux via `ps -p <pid> -o command=`, Windows via a PowerShell
|
|
121
|
+
* `Get-CimInstance Win32_Process` lookup. Returns `null` on any failure (ps
|
|
122
|
+
* missing, PID gone, parse error) — never throws.
|
|
123
|
+
*
|
|
124
|
+
* feedback #2 (2026-08-06): `restart_editor`'s dry-run now surfaces the
|
|
125
|
+
* resolved process's command line so a PID misattribution (e.g. killing an
|
|
126
|
+
* AssetImportWorker instead of the main editor) is visible before confirm.
|
|
127
|
+
*/
|
|
128
|
+
export declare function readProcessCommandLine(pid: number): string | null;
|
package/dist/running-unity.js
CHANGED
|
@@ -105,6 +105,26 @@ export function isUnityCommandLine(commandLine) {
|
|
|
105
105
|
const name = basenameSafe(unquoted);
|
|
106
106
|
return name === "Unity";
|
|
107
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* `true` when the command line identifies a Unity **worker** process
|
|
110
|
+
* (AssetImportWorker / batch import worker), not the interactive editor.
|
|
111
|
+
* Unity spawns these as children with `-batchMode -parentPid
|
|
112
|
+
* -name AssetImportWorker0 … -projectPath <same project>`; their executable
|
|
113
|
+
* basename is still `Unity`, so they pass `isUnityCommandLine` and pollute the
|
|
114
|
+
* PID scan. feedback #2 (2026-08-06): `restart_editor` / `resource_pressure`
|
|
115
|
+
* targeted an AssetImportWorker instead of the main editor on fd-exhaustion
|
|
116
|
+
* because the worker appeared first in the scan. Detecting workers here (rather
|
|
117
|
+
* than at the call sites) hardens every caller at once.
|
|
118
|
+
*/
|
|
119
|
+
export function isAssetImportWorker(commandLine) {
|
|
120
|
+
// Unity passes the worker label via `-name AssetImportWorker*` (the bridge's
|
|
121
|
+
// own ReadNameArg parses the same flag). The label carries a trailing index
|
|
122
|
+
// (AssetImportWorker0), so match the prefix without a `\b` after "Worker"
|
|
123
|
+
// (a digit is a word char and would defeat `\b`). Also catch `-importWorker`,
|
|
124
|
+
// which older Unity releases used for the same purpose.
|
|
125
|
+
return /-name\s+AssetImportWorker/.test(commandLine) ||
|
|
126
|
+
/(^|\s)-importWorker(\s|$)/.test(commandLine);
|
|
127
|
+
}
|
|
108
128
|
function trimMatching(value, ...chars) {
|
|
109
129
|
let s = value;
|
|
110
130
|
while (s.length > 0) {
|
|
@@ -244,6 +264,10 @@ export function parsePsOutput(stdout) {
|
|
|
244
264
|
continue;
|
|
245
265
|
if (!isUnityCommandLine(rest))
|
|
246
266
|
continue;
|
|
267
|
+
// feedback #2 — exclude AssetImportWorker children; they share the
|
|
268
|
+
// project path but are never the interactive editor we want to act on.
|
|
269
|
+
if (isAssetImportWorker(rest))
|
|
270
|
+
continue;
|
|
247
271
|
const projectPath = parseProjectPathArg(splitArgs(rest));
|
|
248
272
|
out.push({
|
|
249
273
|
pid,
|
|
@@ -272,6 +296,9 @@ export function parsePowerShellLines(stdout) {
|
|
|
272
296
|
const pid = Number.parseInt(pidStr, 10);
|
|
273
297
|
if (!Number.isInteger(pid) || pid <= 0)
|
|
274
298
|
continue;
|
|
299
|
+
// feedback #2 — exclude AssetImportWorker children on Windows too.
|
|
300
|
+
if (rest.length > 0 && rest !== "null" && isAssetImportWorker(rest))
|
|
301
|
+
continue;
|
|
275
302
|
const projectPath = rest.length === 0 || rest === "null"
|
|
276
303
|
? null
|
|
277
304
|
: parseProjectPathArg(splitArgsWindows(rest));
|
|
@@ -384,4 +411,37 @@ export function findUnityForProject(projectPath) {
|
|
|
384
411
|
}
|
|
385
412
|
return null;
|
|
386
413
|
}
|
|
414
|
+
/**
|
|
415
|
+
* Read the full command line of a live process by PID. Cross-platform best
|
|
416
|
+
* effort: macOS/Linux via `ps -p <pid> -o command=`, Windows via a PowerShell
|
|
417
|
+
* `Get-CimInstance Win32_Process` lookup. Returns `null` on any failure (ps
|
|
418
|
+
* missing, PID gone, parse error) — never throws.
|
|
419
|
+
*
|
|
420
|
+
* feedback #2 (2026-08-06): `restart_editor`'s dry-run now surfaces the
|
|
421
|
+
* resolved process's command line so a PID misattribution (e.g. killing an
|
|
422
|
+
* AssetImportWorker instead of the main editor) is visible before confirm.
|
|
423
|
+
*/
|
|
424
|
+
export function readProcessCommandLine(pid) {
|
|
425
|
+
if (!Number.isInteger(pid) || pid <= 0)
|
|
426
|
+
return null;
|
|
427
|
+
const platform = process.platform;
|
|
428
|
+
try {
|
|
429
|
+
if (platform === "win32") {
|
|
430
|
+
const script = "Get-CimInstance Win32_Process -Filter \"ProcessId=" + pid + "\" | " +
|
|
431
|
+
"ForEach-Object { Write-Output $_.CommandLine }";
|
|
432
|
+
const stdout = execFileSync("powershell", ["-NoProfile", "-NonInteractive", "-Command", script], { encoding: "utf8", windowsHide: true });
|
|
433
|
+
const line = stdout.trim();
|
|
434
|
+
return line.length > 0 ? line : null;
|
|
435
|
+
}
|
|
436
|
+
// macOS + Linux share the `ps -p <pid> -o command=` form.
|
|
437
|
+
const stdout = execFileSync("ps", ["-p", String(pid), "-o", "command="], {
|
|
438
|
+
encoding: "utf8",
|
|
439
|
+
});
|
|
440
|
+
const line = stdout.trim();
|
|
441
|
+
return line.length > 0 ? line : null;
|
|
442
|
+
}
|
|
443
|
+
catch {
|
|
444
|
+
return null;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
387
447
|
//# sourceMappingURL=running-unity.js.map
|
|
@@ -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":"AAAA,+EAA+E;AAC/E,EAAE;AACF,4EAA4E;AAC5E,uEAAuE;AACvE,mEAAmE;AACnE,8EAA8E;AAC9E,6EAA6E;AAC7E,2EAA2E;AAC3E,iCAAiC;AACjC,EAAE;AACF,oDAAoD;AACpD,2EAA2E;AAC3E,2EAA2E;AAC3E,0EAA0E;AAC1E,8EAA8E;AAC9E,2EAA2E;AAC3E,sEAAsE;AACtE,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,6DAA6D;AAC7D,EAAE;AACF,4EAA4E;AAC5E,sEAAsE;AACtE,8EAA8E;AAC9E,qEAAqE;AACrE,8EAA8E;AAC9E,8EAA8E;AAC9E,iBAAiB;AAEjB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAaxD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAA2B;IAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,MAAM,GACV,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAC1E,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC,CAAC,4BAA4B;YACjE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kEAAkE;AAClE,SAAS,WAAW,CAAC,KAAa,EAAE,MAAc;IAChD,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,OAAO,CAAC,KAAa;IAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC,EAAE,CAAC;YACnE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,MAAM,UAAU,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,IAAI,KAAK,OAAO,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,wDAAwD;IACxD,OAAO,2BAA2B,CAAC,IAAI,CAAC,WAAW,CAAC;QAClD,2BAA2B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,GAAG,KAAe;IACrD,IAAI,CAAC,GAAG,KAAK,CAAC;IACd,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,MAAM;QAC9B,kEAAkE;QAClE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;YAAE,MAAM;QACjD,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,wEAAwE;IACxE,gEAAgE;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC;IACjD,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,GAAG,IAAI,CAAC;YAAE,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC5C,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7C,CAAC;QACD,0CAA0C;QAC1C,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClB,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;YACD,SAAS;QACX,CAAC;QACD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,KAAK,GAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,QAAQ,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClC,OAAO,IAAI,IAAI,CAAC;gBAChB,CAAC,IAAI,CAAC,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClB,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;YACD,SAAS;QACX,CAAC;QACD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACnC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YAAE,SAAS;QACjD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAAE,SAAS;QACxC,mEAAmE;QACnE,uEAAuE;QACvE,IAAI,mBAAmB,CAAC,IAAI,CAAC;YAAE,SAAS;QACxC,MAAM,WAAW,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,GAAG,CAAC,IAAI,CAAC;YACP,GAAG;YACH,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;SACtE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACnC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,GAAG,GAAG,CAAC;YAAE,SAAS;QACtB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YAAE,SAAS;QACjD,mEAAmE;QACnE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,KAAK,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9E,MAAM,WAAW,GACf,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,MAAM;YAClC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,GAAG,CAAC,IAAI,CAAC;YACP,GAAG;YACH,WAAW,EACT,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;SAC3D,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAkBD,2EAA2E;AAC3E,SAAS,SAAS;IAChB,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE;YAC5D,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,yEAAyE;QACzE,0CAA0C;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;sBACsB;AACtB,SAAS,WAAW;IAClB,MAAM,MAAM,GACV,+DAA+D;QAC/D,kFAAkF,CAAC;IACrF,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,YAAY,CACnB,YAAY,EACZ,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,CAAC,EACrD,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CACxC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,+EAA+E;AAC/E,MAAM,WAAW,GAAwB;IACvC,IAAI;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA6B,CAAC;QACvD,IAAI,QAAQ,KAAK,QAAQ;YAAE,OAAO,SAAS,EAAE,CAAC;QAC9C,IAAI,QAAQ,KAAK,OAAO;YAAE,OAAO,WAAW,EAAE,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,+CAA+C;IAC5D,CAAC;CACF,CAAC;AAEF,6EAA6E;AAC7E,wDAAwD;AACxD,IAAI,cAAc,GAAwB,WAAW,CAAC;AAEtD,yEAAyE;AACzE,MAAM,UAAU,sBAAsB;IACpC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAAgC;IAEhC,MAAM,IAAI,GAAG,cAAc,CAAC;IAC5B,cAAc,GAAG,IAAI,IAAI,WAAW,CAAC;IACrC,OAAO,GAAG,EAAE;QACV,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,mBAAmB,CACjC,WAAsC;IAEtC,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,KAAK,GAAmB,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,KAAK,GAAG,sBAAsB,EAAE,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,MAAM,EAAE,CAAC;YAC5E,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA6B,CAAC;IACvD,IAAI,CAAC;QACH,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GACV,oDAAoD,GAAG,GAAG,GAAG,OAAO;gBACpE,gDAAgD,CAAC;YACnD,MAAM,MAAM,GAAG,YAAY,CACzB,YAAY,EACZ,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,CAAC,EACrD,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CACxC,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,CAAC;QACD,0DAA0D;QAC1D,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE;YACvE,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -17,6 +17,7 @@ import { ALL_TOOLS } from "./tools/index.js";
|
|
|
17
17
|
import { ALL_RESOURCES } from "./resources/index.js";
|
|
18
18
|
import { LiveClient } from "./live-client.js";
|
|
19
19
|
import { BatchSpawn } from "./batch-spawn.js";
|
|
20
|
+
import { installBatchChildSupervision } from "./child-supervision.js";
|
|
20
21
|
import { ToolRouter } from "./tool-router.js";
|
|
21
22
|
import { PingCache } from "./ping-cache.js";
|
|
22
23
|
import { ResourceRouter } from "./resource-router.js";
|
|
@@ -91,11 +92,16 @@ export function createServer(projectPath, port, authToken, envPort) {
|
|
|
91
92
|
const pingCache = new PingCache();
|
|
92
93
|
const liveClient = new LiveClient(port, pingCache, authToken, projectPath, undefined, envPort);
|
|
93
94
|
const batchSpawn = new BatchSpawn({ projectPath });
|
|
95
|
+
// Batch children (headless Unity) hold the project lock; supervise them so
|
|
96
|
+
// a host restart / SIGINT / SIGTERM cannot orphan a run.
|
|
97
|
+
installBatchChildSupervision();
|
|
94
98
|
// M13 T4.4 — one SSE subscription per server process. The MCP server is the
|
|
95
99
|
// only long-lived hop between the bridge and the LLM; a per-process reader
|
|
96
100
|
// amortizes the connection and lets every `unity_senses_pull_events` call
|
|
97
|
-
// share the same buffered queue.
|
|
98
|
-
|
|
101
|
+
// share the same buffered queue. projectPath/envPort feed the reconnect-time
|
|
102
|
+
// instance-lock refresh (the bridge rotates its bearer token on every domain
|
|
103
|
+
// reload), mirroring LiveClient's refreshEndpointFromLock self-heal.
|
|
104
|
+
const eventStream = new BridgeEventStream(bridgeBaseUrl(port), undefined, authToken, projectPath, envPort);
|
|
99
105
|
// Per-session tool-group visibility state. Lives in the MCP server and
|
|
100
106
|
// restores the catalog's default-on groups on every server restart; mutated
|
|
101
107
|
// only by unity_open_mcp_manage_tools and consulted by ListTools.
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,yEAAyE;AACzE,2EAA2E;AAC3E,0EAA0E;AAC1E,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,2EAA2E;AAC3E,8EAA8E;AAC9E,0BAA0B;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,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,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,qEAAqE;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,0EAA0E;AAC1E,2EAA2E;AAC3E,oDAAoD;AACpD,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAE7C,oFAAoF;AACpF,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAClC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM;IACpB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACtD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CACX,mBAAmB,oBAAoB,oCAAoC,CAC5E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7C,2EAA2E;IAC3E,0EAA0E;IAC1E,0EAA0E;IAC1E,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,MAAM,eAAe,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC;IACjG,MAAM,eAAe,GAAG,UAAU,IAAI,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,MAAM,GACV,UAAU,IAAI,eAAe;QAC3B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,oBAAoB,CAAC;IAC3B,OAAO,CAAC,KAAK,CACX,4CAA4C,IAAI,KAAK,MAAM,iBAAiB,WAAW,EAAE,CAC1F,CAAC;IACF,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,kEAAkE;IAClE,MAAM,SAAS,GAAG,gBAAgB,CAChC,WAAW,EACX,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CACtC,CAAC;IACF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACrF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CACX,+EAA+E,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,WAAmB,EACnB,IAAY,EACZ,SAAkB,EAClB,OAAgB;IAEhB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,EAAE,EACpD;QACE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC7D,uEAAuE;QACvE,yEAAyE;QACzE,sEAAsE;QACtE,+DAA+D;QAC/D,kDAAkD;QAClD,YAAY,EAAE,qBAAqB,EAAE;KACtC,CACF,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/F,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACnD,4EAA4E;IAC5E,2EAA2E;IAC3E,0EAA0E;IAC1E,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { StaleAssemblyResult } from "./unity-log.js";
|
|
2
|
+
/**
|
|
3
|
+
* Default freshness window for the stale-assembly signal. Picked at the upper
|
|
4
|
+
* end of the band a single agent turn spans (a probe → act → re-probe sequence
|
|
5
|
+
* typically lands inside 5s), so repeated execute_csharp / invoke_method calls
|
|
6
|
+
* in one turn reuse one scan while a genuine reload — which also fires the
|
|
7
|
+
* explicit {@link StaleAssemblyCache.invalidate} — is still observed promptly.
|
|
8
|
+
* Override with `UNITY_OPEN_MCP_STALE_ASSEMBLY_TTL_MS=<millis>`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const DEFAULT_STALE_ASSEMBLY_TTL_MS = 5000;
|
|
11
|
+
/**
|
|
12
|
+
* Read the stale-assembly cache TTL from the env, falling back to the default
|
|
13
|
+
* when unset or unparseable. Negative / NaN / non-numeric fall back to the
|
|
14
|
+
* default; an explicit `0` disables caching (every probe re-scans), which is
|
|
15
|
+
* useful for tests and for an operator debugging a false stale signal.
|
|
16
|
+
* Whitespace-only values fall back to the default (they are not a deliberate 0).
|
|
17
|
+
*/
|
|
18
|
+
export declare function readStaleAssemblyTtlMs(): number;
|
|
19
|
+
/**
|
|
20
|
+
* Short-TTL cache for {@link detectStaleAssembly} results. See
|
|
21
|
+
* {@link BridgeToolsCache} for the contract this mirrors.
|
|
22
|
+
*/
|
|
23
|
+
export declare class StaleAssemblyCache {
|
|
24
|
+
private entry;
|
|
25
|
+
/** Store a freshly-computed result with the current timestamp. */
|
|
26
|
+
record(result: StaleAssemblyResult): void;
|
|
27
|
+
/**
|
|
28
|
+
* Return a cached result iff it is within the TTL window; otherwise null.
|
|
29
|
+
* `ttlMs` defaults to the env-resolved value. A `ttlMs` of 0 disables the
|
|
30
|
+
* cache (always returns null). The 0-disables contract is checked BEFORE the
|
|
31
|
+
* age comparison so a 0 TTL is deterministic.
|
|
32
|
+
*/
|
|
33
|
+
get(ttlMs?: number): StaleAssemblyResult | null;
|
|
34
|
+
/**
|
|
35
|
+
* Drop the cached result. Called from the LiveClient's lifecycle hooks so
|
|
36
|
+
* the next probe re-scans even within the TTL — a reload may have rebuilt
|
|
37
|
+
* the assembly and cleared the staleness the cache still reports.
|
|
38
|
+
*/
|
|
39
|
+
invalidate(): void;
|
|
40
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// feedback-fable-04-08 §5 — short-TTL in-memory cache for the
|
|
2
|
+
// detectStaleAssembly() result used by the `_staleDomain` annotation on
|
|
3
|
+
// execute_csharp / invoke_method. The detection stat()s up to ~4000
|
|
4
|
+
// `Assets/**/*.cs` files per call; running it on every execute_csharp
|
|
5
|
+
// invocation would dominate the hot path. The staleness signal changes only
|
|
6
|
+
// on a domain reload (seconds-to-minutes timescale), so a short TTL collapses
|
|
7
|
+
// repeated probes in a single agent turn without masking a real reload.
|
|
8
|
+
//
|
|
9
|
+
// Mirrors BridgeToolsCache: session-scoped (per-LiveClient, in-memory only),
|
|
10
|
+
// invalidated on the same lifecycle signals (dead-bridge / reload, compile
|
|
11
|
+
// settle), env-driven TTL with a 0-disables contract. No persistent disk
|
|
12
|
+
// cache (root AGENTS.md).
|
|
13
|
+
/**
|
|
14
|
+
* Default freshness window for the stale-assembly signal. Picked at the upper
|
|
15
|
+
* end of the band a single agent turn spans (a probe → act → re-probe sequence
|
|
16
|
+
* typically lands inside 5s), so repeated execute_csharp / invoke_method calls
|
|
17
|
+
* in one turn reuse one scan while a genuine reload — which also fires the
|
|
18
|
+
* explicit {@link StaleAssemblyCache.invalidate} — is still observed promptly.
|
|
19
|
+
* Override with `UNITY_OPEN_MCP_STALE_ASSEMBLY_TTL_MS=<millis>`.
|
|
20
|
+
*/
|
|
21
|
+
export const DEFAULT_STALE_ASSEMBLY_TTL_MS = 5_000;
|
|
22
|
+
/**
|
|
23
|
+
* Read the stale-assembly cache TTL from the env, falling back to the default
|
|
24
|
+
* when unset or unparseable. Negative / NaN / non-numeric fall back to the
|
|
25
|
+
* default; an explicit `0` disables caching (every probe re-scans), which is
|
|
26
|
+
* useful for tests and for an operator debugging a false stale signal.
|
|
27
|
+
* Whitespace-only values fall back to the default (they are not a deliberate 0).
|
|
28
|
+
*/
|
|
29
|
+
export function readStaleAssemblyTtlMs() {
|
|
30
|
+
const raw = process.env.UNITY_OPEN_MCP_STALE_ASSEMBLY_TTL_MS;
|
|
31
|
+
if (raw === undefined)
|
|
32
|
+
return DEFAULT_STALE_ASSEMBLY_TTL_MS;
|
|
33
|
+
const trimmed = raw.trim();
|
|
34
|
+
if (trimmed === "")
|
|
35
|
+
return DEFAULT_STALE_ASSEMBLY_TTL_MS;
|
|
36
|
+
const parsed = Number(trimmed);
|
|
37
|
+
if (!Number.isFinite(parsed) || parsed < 0)
|
|
38
|
+
return DEFAULT_STALE_ASSEMBLY_TTL_MS;
|
|
39
|
+
return Math.floor(parsed);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Short-TTL cache for {@link detectStaleAssembly} results. See
|
|
43
|
+
* {@link BridgeToolsCache} for the contract this mirrors.
|
|
44
|
+
*/
|
|
45
|
+
export class StaleAssemblyCache {
|
|
46
|
+
entry = null;
|
|
47
|
+
/** Store a freshly-computed result with the current timestamp. */
|
|
48
|
+
record(result) {
|
|
49
|
+
this.entry = { result, asOfMs: Date.now() };
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Return a cached result iff it is within the TTL window; otherwise null.
|
|
53
|
+
* `ttlMs` defaults to the env-resolved value. A `ttlMs` of 0 disables the
|
|
54
|
+
* cache (always returns null). The 0-disables contract is checked BEFORE the
|
|
55
|
+
* age comparison so a 0 TTL is deterministic.
|
|
56
|
+
*/
|
|
57
|
+
get(ttlMs = readStaleAssemblyTtlMs()) {
|
|
58
|
+
if (ttlMs <= 0)
|
|
59
|
+
return null;
|
|
60
|
+
const e = this.entry;
|
|
61
|
+
if (e === null)
|
|
62
|
+
return null;
|
|
63
|
+
if (Date.now() - e.asOfMs > ttlMs)
|
|
64
|
+
return null;
|
|
65
|
+
return e.result;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Drop the cached result. Called from the LiveClient's lifecycle hooks so
|
|
69
|
+
* the next probe re-scans even within the TTL — a reload may have rebuilt
|
|
70
|
+
* the assembly and cleared the staleness the cache still reports.
|
|
71
|
+
*/
|
|
72
|
+
invalidate() {
|
|
73
|
+
this.entry = null;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=stale-assembly-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stale-assembly-cache.js","sourceRoot":"","sources":["../src/stale-assembly-cache.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,wEAAwE;AACxE,oEAAoE;AACpE,sEAAsE;AACtE,4EAA4E;AAC5E,8EAA8E;AAC9E,wEAAwE;AACxE,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,yEAAyE;AACzE,0BAA0B;AAI1B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC;IAC7D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,6BAA6B,CAAC;IAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,6BAA6B,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,6BAA6B,CAAC;IACjF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IACrB,KAAK,GAA2D,IAAI,CAAC;IAE7E,kEAAkE;IAClE,MAAM,CAAC,MAA2B;QAChC,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,QAAgB,sBAAsB,EAAE;QAC1C,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,CAAC,CAAC,MAAM,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register the reachable tool-name set. Called once from `tools/index.ts`
|
|
3
|
+
* after `ALL_TOOLS` is built. Not part of the public agent surface.
|
|
4
|
+
*/
|
|
5
|
+
export declare function registerHintableToolNames(names: readonly string[]): void;
|
|
6
|
+
/**
|
|
7
|
+
* Build the `manage_tools` activation call for a group id. Mirrors the exact
|
|
8
|
+
* invocation an agent must issue, so a hint can be followed verbatim.
|
|
9
|
+
*/
|
|
10
|
+
export declare function activateInstruction(groupId: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* True when `toolName` is reachable in a fresh session without a
|
|
13
|
+
* `manage_tools` activation — i.e. it has no group assignment (always-visible
|
|
14
|
+
* meta-tool) or its group is default-enabled.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isDefaultVisible(toolName: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Render a tool reference for use inside an agent-facing hint or tool
|
|
19
|
+
* description.
|
|
20
|
+
*
|
|
21
|
+
* Default-visible tools render as the bare name. A tool in a group that is NOT
|
|
22
|
+
* enabled by default renders as the name plus the group and the concrete
|
|
23
|
+
* activation call, e.g.
|
|
24
|
+
*
|
|
25
|
+
* unity_open_mcp_recompile_scripts (in the typed-editor group, not enabled
|
|
26
|
+
* by default — activate with manage_tools(action:"activate",
|
|
27
|
+
* group:"typed-editor"))
|
|
28
|
+
*
|
|
29
|
+
* Unknown tool names render bare: this helper never invents an activation call
|
|
30
|
+
* for a tool it cannot resolve. A name that is known to the group catalog but
|
|
31
|
+
* NOT registered (verified against the names registered by tools/index.ts,
|
|
32
|
+
* once available) also renders bare — a hint must not prescribe an activation
|
|
33
|
+
* call for a tool the server cannot actually serve — and logs one maintainer
|
|
34
|
+
* warning so the drift is visible.
|
|
35
|
+
*/
|
|
36
|
+
export declare function toolHintReference(toolName: string): string;
|