@atelierai/uco 1.0.6 → 1.0.7
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/CHANGELOG.md +21 -0
- package/README.md +7 -8
- package/bin/server.mjs +1 -1
- package/bin/stub-plugin.mjs +3 -3
- package/dist/codegen/coerce.js +1 -1
- package/dist/codegen/coerce.js.map +1 -1
- package/dist/codegen/emit.js +2 -2
- package/dist/codegen/emit.js.map +1 -1
- package/dist/codegen/refs.js +1 -1
- package/dist/codegen/refs.js.map +1 -1
- package/dist/codegen/types.js +1 -1
- package/dist/codegen/types.js.map +1 -1
- package/dist/commands/call.js +1 -1
- package/dist/commands/call.js.map +1 -1
- package/dist/commands/devops/configure.js +1 -1
- package/dist/commands/devops/configure.js.map +1 -1
- package/dist/commands/devops/index.js +0 -4
- package/dist/commands/devops/index.js.map +1 -1
- package/dist/commands/devops/install-plugin.js +1 -1
- package/dist/commands/devops/install-plugin.js.map +1 -1
- package/dist/commands/devops/open.js +7 -7
- package/dist/commands/devops/open.js.map +1 -1
- package/dist/commands/devops/status.js +3 -3
- package/dist/commands/devops/status.js.map +1 -1
- package/dist/commands/exec.js +1 -1
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/install.js +2 -2
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/prompt.js +2 -2
- package/dist/commands/prompt.js.map +1 -1
- package/dist/commands/resource.js +2 -2
- package/dist/commands/resource.js.map +1 -1
- package/dist/commands/update.js +1 -26
- package/dist/commands/update.js.map +1 -1
- package/dist/config/port.js +2 -2
- package/dist/config/port.js.map +1 -1
- package/dist/config/resolve.d.ts +1 -2
- package/dist/config/resolve.js +0 -12
- package/dist/config/resolve.js.map +1 -1
- package/dist/devops/lib/configure.d.ts +1 -1
- package/dist/devops/lib/configure.js +2 -2
- package/dist/devops/lib/configure.js.map +1 -1
- package/dist/devops/lib/install-plugin.d.ts +1 -1
- package/dist/devops/lib/install-plugin.js +1 -1
- package/dist/devops/lib/install-plugin.js.map +1 -1
- package/dist/devops/lib/install.d.ts +2 -2
- package/dist/devops/lib/install.js +5 -5
- package/dist/devops/lib/install.js.map +1 -1
- package/dist/devops/lib/open.js +11 -32
- package/dist/devops/lib/open.js.map +1 -1
- package/dist/devops/lib/remove-plugin.d.ts +1 -1
- package/dist/devops/lib/remove-plugin.js +3 -3
- package/dist/devops/lib/remove-plugin.js.map +1 -1
- package/dist/devops/lib/run-tool.d.ts +2 -2
- package/dist/devops/lib/run-tool.js +2 -2
- package/dist/devops/lib/types.d.ts +17 -54
- package/dist/devops/lib/types.js +2 -2
- package/dist/devops/lib/types.js.map +1 -1
- package/dist/devops/lib/update.d.ts +0 -15
- package/dist/devops/lib/update.js +2 -91
- package/dist/devops/lib/update.js.map +1 -1
- package/dist/devops/utils/agents.d.ts +0 -28
- package/dist/devops/utils/agents.js +0 -462
- package/dist/devops/utils/agents.js.map +1 -1
- package/dist/devops/utils/config.d.ts +9 -18
- package/dist/devops/utils/config.js +7 -20
- package/dist/devops/utils/config.js.map +1 -1
- package/dist/devops/utils/editor-cache.js +1 -1
- package/dist/devops/utils/editor-cache.js.map +1 -1
- package/dist/devops/utils/launch-error-dismiss.d.ts +2 -2
- package/dist/devops/utils/launch-error-dismiss.js +5 -5
- package/dist/devops/utils/manifest.d.ts +2 -2
- package/dist/devops/utils/manifest.js +3 -3
- package/dist/devops/utils/manifest.js.map +1 -1
- package/dist/devops/utils/port.d.ts +1 -1
- package/dist/devops/utils/port.js +1 -1
- package/dist/devops/utils/probe.d.ts +1 -1
- package/dist/devops/utils/probe.js +1 -1
- package/dist/devops/utils/ui.js +2 -2
- package/dist/devops/utils/ui.js.map +1 -1
- package/dist/devops/utils/unity-editor.js +4 -4
- package/dist/devops/utils/unity-editor.js.map +1 -1
- package/dist/devops/utils/unity-hub.js +1 -1
- package/dist/devops/utils/unity-hub.js.map +1 -1
- package/dist/devops/utils/unity-shutdown.d.ts +1 -1
- package/dist/devops/utils/unity-shutdown.js +1 -1
- package/dist/devops/utils/update-check.js +3 -3
- package/dist/devops/utils/update-check.js.map +1 -1
- package/dist/devops/utils/vendor.d.ts +2 -2
- package/dist/devops/utils/vendor.js +4 -4
- package/dist/devops/utils/vendor.js.map +1 -1
- package/dist/generated/tools.js +1 -1
- package/dist/generated/tools.js.map +1 -1
- package/dist/program.js +3 -3
- package/dist/program.js.map +1 -1
- package/dist/server/app.d.ts +5 -5
- package/dist/server/app.js +3 -3
- package/dist/server/app.js.map +1 -1
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/rest/auth.d.ts +1 -1
- package/dist/server/rest/auth.js +3 -3
- package/dist/server/rest/auth.js.map +1 -1
- package/dist/server/rest/context.d.ts +2 -2
- package/dist/server/rest/forward.d.ts +2 -2
- package/dist/server/session/store.d.ts +3 -3
- package/dist/server/session/store.js +4 -4
- package/dist/server/session/store.js.map +1 -1
- package/dist/server/stub-client/scenarios.js +8 -8
- package/dist/server/stub-client/scenarios.js.map +1 -1
- package/dist/server/types.d.ts +11 -11
- package/dist/server/types.js +9 -9
- package/dist/server/types.js.map +1 -1
- package/dist/server/ws/hub.d.ts +8 -8
- package/dist/server/ws/hub.js +13 -13
- package/dist/server/ws/hub.js.map +1 -1
- package/dist/server/ws/rpc.d.ts +3 -3
- package/dist/server/ws/rpc.js +4 -4
- package/dist/server/ws/rpc.js.map +1 -1
- package/dist/transport/index.d.ts +1 -1
- package/dist/transport/index.js +3 -3
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/rest.js +1 -1
- package/dist/transport/rest.js.map +1 -1
- package/docs/INSTALL.zh-CN.md +2 -3
- package/package.json +1 -1
- package/skills/uco-setup/SKILL.md +1 -1
- package/skills/unity-editor/references/diagnostics.md +24 -24
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Components/ExtensionPanel.cs +379 -379
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/MenuItems.cs +72 -72
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/UnityCopilotProjectSettingsProvider.cs +64 -64
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CopilotServer.cs +372 -372
- package/vendor/plugin/com.atelierai.unity.copilot/Plugins/ReflectorNet.dll +0 -0
- package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.Common.dll +0 -0
- package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.dll +0 -0
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.Config.cs +175 -175
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.cs +1 -1
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Utils/EnvironmentUtils.cs +368 -368
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Environment/EnvironmentUtilsTests.cs +3 -3
- package/vendor/plugin/com.atelierai.unity.copilot/package.json +1 -1
- package/dist/commands/devops/login.d.ts +0 -2
- package/dist/commands/devops/login.js +0 -29
- package/dist/commands/devops/login.js.map +0 -1
- package/dist/commands/devops/setup-mcp.d.ts +0 -2
- package/dist/commands/devops/setup-mcp.js +0 -41
- package/dist/commands/devops/setup-mcp.js.map +0 -1
- package/dist/devops/commands-upstream/bootstrap-local.d.ts +0 -17
- package/dist/devops/commands-upstream/bootstrap-local.js +0 -87
- package/dist/devops/commands-upstream/bootstrap-local.js.map +0 -1
- package/dist/devops/commands-upstream/close.d.ts +0 -57
- package/dist/devops/commands-upstream/close.js +0 -188
- package/dist/devops/commands-upstream/close.js.map +0 -1
- package/dist/devops/commands-upstream/configure.d.ts +0 -2
- package/dist/devops/commands-upstream/configure.js +0 -87
- package/dist/devops/commands-upstream/configure.js.map +0 -1
- package/dist/devops/commands-upstream/create-project.d.ts +0 -2
- package/dist/devops/commands-upstream/create-project.js +0 -43
- package/dist/devops/commands-upstream/create-project.js.map +0 -1
- package/dist/devops/commands-upstream/install-plugin.d.ts +0 -2
- package/dist/devops/commands-upstream/install-plugin.js +0 -64
- package/dist/devops/commands-upstream/install-plugin.js.map +0 -1
- package/dist/devops/commands-upstream/install-unity.d.ts +0 -2
- package/dist/devops/commands-upstream/install-unity.js +0 -72
- package/dist/devops/commands-upstream/install-unity.js.map +0 -1
- package/dist/devops/commands-upstream/login.d.ts +0 -2
- package/dist/devops/commands-upstream/login.js +0 -33
- package/dist/devops/commands-upstream/login.js.map +0 -1
- package/dist/devops/commands-upstream/open.d.ts +0 -32
- package/dist/devops/commands-upstream/open.js +0 -282
- package/dist/devops/commands-upstream/open.js.map +0 -1
- package/dist/devops/commands-upstream/remove-plugin.d.ts +0 -2
- package/dist/devops/commands-upstream/remove-plugin.js +0 -41
- package/dist/devops/commands-upstream/remove-plugin.js.map +0 -1
- package/dist/devops/commands-upstream/run-system-tool.d.ts +0 -1
- package/dist/devops/commands-upstream/run-system-tool.js +0 -13
- package/dist/devops/commands-upstream/run-system-tool.js.map +0 -1
- package/dist/devops/commands-upstream/run-tool-builder.d.ts +0 -25
- package/dist/devops/commands-upstream/run-tool-builder.js +0 -125
- package/dist/devops/commands-upstream/run-tool-builder.js.map +0 -1
- package/dist/devops/commands-upstream/run-tool.d.ts +0 -1
- package/dist/devops/commands-upstream/run-tool.js +0 -13
- package/dist/devops/commands-upstream/run-tool.js.map +0 -1
- package/dist/devops/commands-upstream/setup-mcp.d.ts +0 -2
- package/dist/devops/commands-upstream/setup-mcp.js +0 -68
- package/dist/devops/commands-upstream/setup-mcp.js.map +0 -1
- package/dist/devops/commands-upstream/setup-skills.d.ts +0 -2
- package/dist/devops/commands-upstream/setup-skills.js +0 -167
- package/dist/devops/commands-upstream/setup-skills.js.map +0 -1
- package/dist/devops/commands-upstream/status.d.ts +0 -2
- package/dist/devops/commands-upstream/status.js +0 -87
- package/dist/devops/commands-upstream/status.js.map +0 -1
- package/dist/devops/commands-upstream/update.d.ts +0 -2
- package/dist/devops/commands-upstream/update.js +0 -77
- package/dist/devops/commands-upstream/update.js.map +0 -1
- package/dist/devops/commands-upstream/wait-for-ready.d.ts +0 -2
- package/dist/devops/commands-upstream/wait-for-ready.js +0 -93
- package/dist/devops/commands-upstream/wait-for-ready.js.map +0 -1
- package/dist/devops/lib/setup-mcp.d.ts +0 -35
- package/dist/devops/lib/setup-mcp.js +0 -177
- package/dist/devops/lib/setup-mcp.js.map +0 -1
- package/dist/devops/utils/cloud-login.d.ts +0 -7
- package/dist/devops/utils/cloud-login.js +0 -56
- package/dist/devops/utils/cloud-login.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/devops/commands-upstream/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import * as ui from '../utils/ui.js';
|
|
3
|
-
import { verbose } from '../utils/ui.js';
|
|
4
|
-
import { resolveAndValidateProjectPath, resolveConnection } from '../utils/connection.js';
|
|
5
|
-
import { generatePortFromDirectory } from '../utils/port.js';
|
|
6
|
-
import { probe } from '../utils/probe.js';
|
|
7
|
-
const MAX_PROBE_TIMEOUT_MS = 10_000;
|
|
8
|
-
/**
|
|
9
|
-
* Build the list of base URLs to probe.
|
|
10
|
-
* When --url is explicit, only that URL is probed.
|
|
11
|
-
* Otherwise, probe both the config-resolved URL and the deterministic local port
|
|
12
|
-
* (if they differ), succeeding on whichever responds first.
|
|
13
|
-
*/
|
|
14
|
-
function resolveProbeUrls(projectPath, options) {
|
|
15
|
-
const { url: configUrl } = resolveConnection(projectPath, options);
|
|
16
|
-
const urls = [configUrl];
|
|
17
|
-
if (!options.url) {
|
|
18
|
-
const localPort = generatePortFromDirectory(projectPath);
|
|
19
|
-
const localUrl = `http://127.0.0.1:${localPort}`;
|
|
20
|
-
if (localUrl !== configUrl) {
|
|
21
|
-
urls.push(localUrl);
|
|
22
|
-
verbose(`Will probe both config URL (${configUrl}) and local URL (${localUrl})`);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return urls;
|
|
26
|
-
}
|
|
27
|
-
export const waitForReadyCommand = new Command('wait-for-ready')
|
|
28
|
-
.description('Wait until Unity Editor and MCP server are ready to accept tool calls')
|
|
29
|
-
.argument('[path]', 'Unity project path (used for config and auto port detection)')
|
|
30
|
-
.option('--path <path>', 'Unity project path (config and auto port detection)')
|
|
31
|
-
.option('--url <url>', 'Direct server URL override (bypasses config)')
|
|
32
|
-
.option('--token <token>', 'Bearer token override (bypasses config)')
|
|
33
|
-
.option('--timeout <ms>', 'Maximum time to wait in milliseconds (default: 120000)', '120000')
|
|
34
|
-
.option('--interval <ms>', 'Polling interval in milliseconds (default: 3000)', '3000')
|
|
35
|
-
.action(async (positionalPath, options) => {
|
|
36
|
-
const projectPath = resolveAndValidateProjectPath(positionalPath, options);
|
|
37
|
-
const { token } = resolveConnection(projectPath, options);
|
|
38
|
-
const probeUrls = resolveProbeUrls(projectPath, options);
|
|
39
|
-
const timeoutMs = parseInt(options.timeout ?? '120000', 10);
|
|
40
|
-
const intervalMs = parseInt(options.interval ?? '3000', 10);
|
|
41
|
-
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
|
|
42
|
-
ui.error(`Invalid --timeout value: "${options.timeout}". Must be a positive integer (milliseconds).`);
|
|
43
|
-
process.exit(1);
|
|
44
|
-
}
|
|
45
|
-
if (!Number.isFinite(intervalMs) || intervalMs <= 0) {
|
|
46
|
-
ui.error(`Invalid --interval value: "${options.interval}". Must be a positive integer (milliseconds).`);
|
|
47
|
-
process.exit(1);
|
|
48
|
-
}
|
|
49
|
-
const headers = {
|
|
50
|
-
'Content-Type': 'application/json',
|
|
51
|
-
};
|
|
52
|
-
if (token) {
|
|
53
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
54
|
-
}
|
|
55
|
-
for (const url of probeUrls) {
|
|
56
|
-
verbose(`Probe target: ${url}`);
|
|
57
|
-
}
|
|
58
|
-
verbose(`Timeout: ${timeoutMs}ms, Interval: ${intervalMs}ms`);
|
|
59
|
-
const spinner = ui.startSpinner('Waiting for Unity Editor and MCP server...');
|
|
60
|
-
const startTime = Date.now();
|
|
61
|
-
while (true) {
|
|
62
|
-
const elapsed = Date.now() - startTime;
|
|
63
|
-
if (elapsed >= timeoutMs) {
|
|
64
|
-
spinner.error(`Timed out after ${(timeoutMs / 1000).toFixed(1)}s waiting for MCP server`);
|
|
65
|
-
process.exit(1);
|
|
66
|
-
}
|
|
67
|
-
const remaining = Math.ceil((timeoutMs - elapsed) / 1000);
|
|
68
|
-
spinner.text = `Waiting for Unity Editor and MCP server... (${remaining}s remaining)`;
|
|
69
|
-
const probeTimeout = Math.min(intervalMs, MAX_PROBE_TIMEOUT_MS);
|
|
70
|
-
// Race probes: resolve as soon as any succeeds, don't wait for slow ones
|
|
71
|
-
const ready = await new Promise(resolve => {
|
|
72
|
-
let pending = probeUrls.length;
|
|
73
|
-
for (const url of probeUrls) {
|
|
74
|
-
probe(url, headers, probeTimeout).then(result => {
|
|
75
|
-
if (result.ok)
|
|
76
|
-
resolve(result);
|
|
77
|
-
else if (--pending === 0)
|
|
78
|
-
resolve(null);
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
if (ready?.ok) {
|
|
83
|
-
const totalSeconds = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
84
|
-
spinner.success(`MCP server is ready at ${ready.baseUrl} (connected in ${totalSeconds}s)`);
|
|
85
|
-
process.exit(0);
|
|
86
|
-
}
|
|
87
|
-
const remainingMs = timeoutMs - (Date.now() - startTime);
|
|
88
|
-
if (remainingMs <= 0)
|
|
89
|
-
continue;
|
|
90
|
-
await new Promise(resolve => setTimeout(resolve, Math.min(intervalMs, remainingMs)));
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
//# sourceMappingURL=wait-for-ready.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wait-for-ready.js","sourceRoot":"","sources":["../../../src/devops/commands-upstream/wait-for-ready.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { getAgentById } from '../utils/agents.js';
|
|
2
|
-
import type { SetupMcpOptions, SetupMcpResult } from './types.js';
|
|
3
|
-
export interface AgentMcpProps {
|
|
4
|
-
/** Absolute path of the agent's MCP config file for this project. */
|
|
5
|
-
configPath: string;
|
|
6
|
-
/** Managed-entry properties to reconcile into the config. */
|
|
7
|
-
props: Record<string, unknown>;
|
|
8
|
-
/** Stale keys the writer strips from the managed entry. */
|
|
9
|
-
removeKeys: string[];
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Compute the managed MCP server entry an agent's config should carry for a
|
|
13
|
-
* project, from the project's live `UserSettings/uco-config.json`
|
|
14
|
-
* (the same resolution `setupMcp` performs). Shared by `setupMcp` and
|
|
15
|
-
* `uco update`'s reconciliation so both always write the same entry.
|
|
16
|
-
*/
|
|
17
|
-
export declare function computeAgentMcpProps(agent: NonNullable<ReturnType<typeof getAgentById>>, projectPath: string, overrides?: {
|
|
18
|
-
url?: string;
|
|
19
|
-
token?: string;
|
|
20
|
-
}): AgentMcpProps;
|
|
21
|
-
/**
|
|
22
|
-
* Write MCP configuration for the given AI agent, so it can talk to
|
|
23
|
-
* Unity-MCP. Library-safe: no stdout noise, no process.exit, no throws
|
|
24
|
-
* past the public boundary.
|
|
25
|
-
*
|
|
26
|
-
* The returned `SetupMcpResult` is a discriminated union — narrow with
|
|
27
|
-
* `result.kind === 'success'` to access `agentId` / `configPath` /
|
|
28
|
-
* `transport`, or `result.kind === 'failure'` to access `error`.
|
|
29
|
-
*/
|
|
30
|
-
export declare function setupMcp(opts: SetupMcpOptions): Promise<SetupMcpResult>;
|
|
31
|
-
/**
|
|
32
|
-
* List every agent id known to the `setupMcp` function. Useful for
|
|
33
|
-
* consumer UIs that want to render a picker.
|
|
34
|
-
*/
|
|
35
|
-
export declare function listAgentIds(): string[];
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import * as fs from 'fs';
|
|
2
|
-
import * as path from 'path';
|
|
3
|
-
import { generatePortFromDirectory } from '../utils/port.js';
|
|
4
|
-
import { normalizeLoopbackUrl } from '../../transport/loopback.js';
|
|
5
|
-
import { readConfig, resolveConnectionFromConfig } from '../utils/config.js';
|
|
6
|
-
import { getAgentById, getAgentIds, resolveServerBinaryPath, writeJsonAgentConfig, writeTomlAgentConfig, MCP_SERVER_NAME, } from '../utils/agents.js';
|
|
7
|
-
import { emitProgress } from './progress.js';
|
|
8
|
-
import { requireExistingPath } from './validation.js';
|
|
9
|
-
function isValidTransport(t) {
|
|
10
|
-
return t === 'stdio' || t === 'http';
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Extract a port from a `host` URL string, falling back to the
|
|
14
|
-
* project-directory-derived deterministic port on any parse failure.
|
|
15
|
-
*/
|
|
16
|
-
function portFromHost(host, projectPath) {
|
|
17
|
-
if (!host)
|
|
18
|
-
return generatePortFromDirectory(projectPath);
|
|
19
|
-
try {
|
|
20
|
-
return parseInt(new URL(host).port, 10) || generatePortFromDirectory(projectPath);
|
|
21
|
-
}
|
|
22
|
-
catch {
|
|
23
|
-
return generatePortFromDirectory(projectPath);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Compute the managed MCP server entry an agent's config should carry for a
|
|
28
|
-
* project, from the project's live `UserSettings/uco-config.json`
|
|
29
|
-
* (the same resolution `setupMcp` performs). Shared by `setupMcp` and
|
|
30
|
-
* `uco update`'s reconciliation so both always write the same entry.
|
|
31
|
-
*/
|
|
32
|
-
export function computeAgentMcpProps(agent, projectPath, overrides = {}) {
|
|
33
|
-
const config = readConfig(projectPath);
|
|
34
|
-
const fromConfig = config
|
|
35
|
-
? resolveConnectionFromConfig(config)
|
|
36
|
-
: { url: undefined, token: undefined };
|
|
37
|
-
const port = portFromHost(config?.host, projectPath);
|
|
38
|
-
const auth = config?.authOption ?? 'none';
|
|
39
|
-
const token = overrides.token ?? fromConfig.token ?? '';
|
|
40
|
-
const authRequired = auth === 'required';
|
|
41
|
-
// Resolve URL — explicit override, then config, then deterministic
|
|
42
|
-
// loopback fallback. Trailing slash stripped, and `localhost` is rewritten
|
|
43
|
-
// to the 127.0.0.1 literal: this URL is dialed by third-party agent clients
|
|
44
|
-
// (Claude Code, codex), whose Node runtimes resolve `localhost` to ::1 just
|
|
45
|
-
// like ours — and per-process proxy rules commonly hijack that path
|
|
46
|
-
// (see transport/loopback.ts). The config's own value is not modified.
|
|
47
|
-
const serverUrl = normalizeLoopbackUrl((overrides.url ?? fromConfig.url ?? `http://127.0.0.1:${port}`).replace(/\/$/, ''));
|
|
48
|
-
const configPath = agent.getConfigPath(projectPath);
|
|
49
|
-
const props = agent.getHttpProps(serverUrl, token, authRequired);
|
|
50
|
-
return { configPath, props, removeKeys: agent.httpRemoveKeys };
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Write MCP configuration for the given AI agent, so it can talk to
|
|
54
|
-
* Unity-MCP. Library-safe: no stdout noise, no process.exit, no throws
|
|
55
|
-
* past the public boundary.
|
|
56
|
-
*
|
|
57
|
-
* The returned `SetupMcpResult` is a discriminated union — narrow with
|
|
58
|
-
* `result.kind === 'success'` to access `agentId` / `configPath` /
|
|
59
|
-
* `transport`, or `result.kind === 'failure'` to access `error`.
|
|
60
|
-
*/
|
|
61
|
-
export async function setupMcp(opts) {
|
|
62
|
-
const warnings = [];
|
|
63
|
-
const nextSteps = [];
|
|
64
|
-
try {
|
|
65
|
-
if (!opts || typeof opts.agentId !== 'string' || opts.agentId.length === 0) {
|
|
66
|
-
return {
|
|
67
|
-
kind: 'failure',
|
|
68
|
-
success: false,
|
|
69
|
-
warnings,
|
|
70
|
-
nextSteps,
|
|
71
|
-
error: new Error(`agentId is required. Available agent IDs: ${getAgentIds().join(', ')}`),
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
const agent = getAgentById(opts.agentId);
|
|
75
|
-
if (!agent) {
|
|
76
|
-
return {
|
|
77
|
-
kind: 'failure',
|
|
78
|
-
success: false,
|
|
79
|
-
warnings,
|
|
80
|
-
nextSteps,
|
|
81
|
-
error: new Error(`Unknown agent: "${opts.agentId}". Available agent IDs: ${getAgentIds().join(', ')}`),
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
const transport = opts.transport ?? 'http';
|
|
85
|
-
if (!isValidTransport(transport)) {
|
|
86
|
-
return {
|
|
87
|
-
kind: 'failure',
|
|
88
|
-
success: false,
|
|
89
|
-
warnings,
|
|
90
|
-
nextSteps,
|
|
91
|
-
error: new Error(`Invalid transport: "${transport}". Must be "stdio" or "http".`),
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
// Resolve project path. If the caller supplied one explicitly it
|
|
95
|
-
// must exist; otherwise fall back to cwd (matches CLI behaviour).
|
|
96
|
-
let projectPath;
|
|
97
|
-
if (opts.unityProjectPath) {
|
|
98
|
-
const validated = requireExistingPath(opts.unityProjectPath);
|
|
99
|
-
if (!validated.ok) {
|
|
100
|
-
return { kind: 'failure', success: false, warnings, nextSteps, error: validated.error };
|
|
101
|
-
}
|
|
102
|
-
projectPath = validated.projectPath;
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
projectPath = path.resolve(process.cwd());
|
|
106
|
-
}
|
|
107
|
-
emitProgress(opts.onProgress, {
|
|
108
|
-
phase: 'start',
|
|
109
|
-
message: `Configuring ${agent.name} (${transport}) for ${projectPath}`,
|
|
110
|
-
});
|
|
111
|
-
const config = readConfig(projectPath);
|
|
112
|
-
const configPath = agent.getConfigPath(projectPath);
|
|
113
|
-
const serverPath = resolveServerBinaryPath(projectPath).replace(/\\/g, '/');
|
|
114
|
-
let props;
|
|
115
|
-
let removeKeys;
|
|
116
|
-
if (transport === 'stdio') {
|
|
117
|
-
const port = portFromHost(config?.host, projectPath);
|
|
118
|
-
const timeout = config?.timeoutMs ?? 10000;
|
|
119
|
-
const auth = config?.authOption ?? 'none';
|
|
120
|
-
const fromConfig = config
|
|
121
|
-
? resolveConnectionFromConfig(config)
|
|
122
|
-
: { url: undefined, token: undefined };
|
|
123
|
-
const token = opts.token ?? fromConfig.token ?? '';
|
|
124
|
-
props = agent.getStdioProps(serverPath, port, timeout, auth, token);
|
|
125
|
-
removeKeys = agent.stdioRemoveKeys;
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
const computed = computeAgentMcpProps(agent, projectPath, {
|
|
129
|
-
...(opts.url ? { url: opts.url } : {}),
|
|
130
|
-
...(opts.token ? { token: opts.token } : {}),
|
|
131
|
-
});
|
|
132
|
-
props = computed.props;
|
|
133
|
-
removeKeys = computed.removeKeys;
|
|
134
|
-
}
|
|
135
|
-
if (agent.configFormat === 'toml') {
|
|
136
|
-
writeTomlAgentConfig(configPath, agent.bodyPath, MCP_SERVER_NAME, props, removeKeys);
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
writeJsonAgentConfig(configPath, agent.bodyPath, MCP_SERVER_NAME, props, removeKeys);
|
|
140
|
-
}
|
|
141
|
-
emitProgress(opts.onProgress, {
|
|
142
|
-
phase: 'manifest-patched',
|
|
143
|
-
message: `Wrote ${configPath}`,
|
|
144
|
-
manifestPath: configPath,
|
|
145
|
-
});
|
|
146
|
-
if (transport === 'stdio' && !fs.existsSync(serverPath.replace(/\//g, path.sep))) {
|
|
147
|
-
warnings.push('Server binary not found. Open Unity with the MCP plugin to download it automatically.');
|
|
148
|
-
}
|
|
149
|
-
emitProgress(opts.onProgress, { phase: 'done', message: `${agent.name} configured successfully.` });
|
|
150
|
-
return {
|
|
151
|
-
kind: 'success',
|
|
152
|
-
success: true,
|
|
153
|
-
agentId: agent.id,
|
|
154
|
-
configPath,
|
|
155
|
-
transport,
|
|
156
|
-
warnings,
|
|
157
|
-
nextSteps,
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
catch (err) {
|
|
161
|
-
return {
|
|
162
|
-
kind: 'failure',
|
|
163
|
-
success: false,
|
|
164
|
-
warnings,
|
|
165
|
-
nextSteps,
|
|
166
|
-
error: err instanceof Error ? err : new Error(String(err)),
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* List every agent id known to the `setupMcp` function. Useful for
|
|
172
|
-
* consumer UIs that want to render a picker.
|
|
173
|
-
*/
|
|
174
|
-
export function listAgentIds() {
|
|
175
|
-
return getAgentIds();
|
|
176
|
-
}
|
|
177
|
-
//# sourceMappingURL=setup-mcp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../../src/devops/lib/setup-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Run the cloud device-auth flow: initiate, display code, open browser, poll,
|
|
3
|
-
* and persist the token to the project config.
|
|
4
|
-
*
|
|
5
|
-
* Returns the access token on success, or null on failure (errors are printed).
|
|
6
|
-
*/
|
|
7
|
-
export declare function runCloudLogin(projectPath: string): Promise<string | null>;
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2024 Ivan Murzak. All rights reserved.
|
|
2
|
-
// Licensed under the Apache License, Version 2.0.
|
|
3
|
-
import * as ui from './ui.js';
|
|
4
|
-
import { readConfig, writeConfig, CLOUD_SERVER_BASE_URL } from './config.js';
|
|
5
|
-
import { deviceAuthFlow } from './auth.js';
|
|
6
|
-
import { openBrowser } from './browser.js';
|
|
7
|
-
/**
|
|
8
|
-
* Run the cloud device-auth flow: initiate, display code, open browser, poll,
|
|
9
|
-
* and persist the token to the project config.
|
|
10
|
-
*
|
|
11
|
-
* Returns the access token on success, or null on failure (errors are printed).
|
|
12
|
-
*/
|
|
13
|
-
export async function runCloudLogin(projectPath) {
|
|
14
|
-
let spinner;
|
|
15
|
-
try {
|
|
16
|
-
const result = await deviceAuthFlow(CLOUD_SERVER_BASE_URL, 'Unity-MCP CLI', {
|
|
17
|
-
onUserCode: (userCode, verificationUrl) => {
|
|
18
|
-
ui.info('Open this URL to authorize:');
|
|
19
|
-
console.log();
|
|
20
|
-
console.log(` ${verificationUrl}`);
|
|
21
|
-
console.log();
|
|
22
|
-
ui.label('Code', userCode);
|
|
23
|
-
openBrowser(verificationUrl);
|
|
24
|
-
},
|
|
25
|
-
onPolling: () => {
|
|
26
|
-
spinner = ui.startSpinner('Waiting for authorization...');
|
|
27
|
-
},
|
|
28
|
-
});
|
|
29
|
-
if (result.success) {
|
|
30
|
-
spinner?.success('Authorized');
|
|
31
|
-
const config = readConfig(projectPath) ?? {};
|
|
32
|
-
const updatedConfig = {
|
|
33
|
-
...config,
|
|
34
|
-
cloudToken: result.accessToken,
|
|
35
|
-
connectionMode: 'Cloud',
|
|
36
|
-
};
|
|
37
|
-
writeConfig(projectPath, updatedConfig);
|
|
38
|
-
return result.accessToken;
|
|
39
|
-
}
|
|
40
|
-
spinner?.stop();
|
|
41
|
-
ui.error(result.message);
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
spinner?.stop();
|
|
46
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
47
|
-
if (message.includes('ECONNREFUSED') || message.includes('fetch failed')) {
|
|
48
|
-
ui.error(`Cannot reach cloud server at ${CLOUD_SERVER_BASE_URL}`);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
ui.error(`Authentication failed: ${message}`);
|
|
52
|
-
}
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=cloud-login.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-login.js","sourceRoot":"","sources":["../../../src/devops/utils/cloud-login.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,kDAAkD;AAElD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,IAAI,OAAuD,CAAC;IAE5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,qBAAqB,EACrB,eAAe,EACf;YACE,UAAU,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE;gBACxC,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,KAAK,eAAe,EAAE,CAAC,CAAC;gBACpC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC3B,WAAW,CAAC,eAAe,CAAC,CAAC;YAC/B,CAAC;YACD,SAAS,EAAE,GAAG,EAAE;gBACd,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,8BAA8B,CAAC,CAAC;YAC5D,CAAC;SACF,CACF,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YAE/B,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,aAAa,GAAG;gBACpB,GAAG,MAAM;gBACT,UAAU,EAAE,MAAM,CAAC,WAAW;gBAC9B,cAAc,EAAE,OAAgB;aACjC,CAAC;YACF,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YAExC,OAAO,MAAM,CAAC,WAAW,CAAC;QAC5B,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,CAAC;QAChB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACzE,EAAE,CAAC,KAAK,CAAC,gCAAgC,qBAAqB,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,KAAK,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|