@atelierai/uco 1.0.5 → 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.
Files changed (204) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +7 -8
  3. package/bin/server.mjs +1 -1
  4. package/bin/stub-plugin.mjs +3 -3
  5. package/dist/codegen/coerce.js +1 -1
  6. package/dist/codegen/coerce.js.map +1 -1
  7. package/dist/codegen/emit.js +2 -2
  8. package/dist/codegen/emit.js.map +1 -1
  9. package/dist/codegen/refs.js +1 -1
  10. package/dist/codegen/refs.js.map +1 -1
  11. package/dist/codegen/types.js +1 -1
  12. package/dist/codegen/types.js.map +1 -1
  13. package/dist/commands/call.js +1 -1
  14. package/dist/commands/call.js.map +1 -1
  15. package/dist/commands/devops/configure.js +1 -1
  16. package/dist/commands/devops/configure.js.map +1 -1
  17. package/dist/commands/devops/index.js +0 -4
  18. package/dist/commands/devops/index.js.map +1 -1
  19. package/dist/commands/devops/install-plugin.js +1 -1
  20. package/dist/commands/devops/install-plugin.js.map +1 -1
  21. package/dist/commands/devops/open.js +7 -7
  22. package/dist/commands/devops/open.js.map +1 -1
  23. package/dist/commands/devops/status.js +3 -3
  24. package/dist/commands/devops/status.js.map +1 -1
  25. package/dist/commands/exec.js +1 -1
  26. package/dist/commands/exec.js.map +1 -1
  27. package/dist/commands/install.js +2 -2
  28. package/dist/commands/install.js.map +1 -1
  29. package/dist/commands/prompt.js +2 -2
  30. package/dist/commands/prompt.js.map +1 -1
  31. package/dist/commands/resource.js +2 -2
  32. package/dist/commands/resource.js.map +1 -1
  33. package/dist/commands/update.js +1 -26
  34. package/dist/commands/update.js.map +1 -1
  35. package/dist/config/port.js +2 -2
  36. package/dist/config/port.js.map +1 -1
  37. package/dist/config/resolve.d.ts +1 -2
  38. package/dist/config/resolve.js +0 -12
  39. package/dist/config/resolve.js.map +1 -1
  40. package/dist/devops/lib/configure.d.ts +1 -1
  41. package/dist/devops/lib/configure.js +2 -2
  42. package/dist/devops/lib/configure.js.map +1 -1
  43. package/dist/devops/lib/install-plugin.d.ts +1 -1
  44. package/dist/devops/lib/install-plugin.js +1 -1
  45. package/dist/devops/lib/install-plugin.js.map +1 -1
  46. package/dist/devops/lib/install.d.ts +2 -2
  47. package/dist/devops/lib/install.js +5 -5
  48. package/dist/devops/lib/install.js.map +1 -1
  49. package/dist/devops/lib/open.js +11 -32
  50. package/dist/devops/lib/open.js.map +1 -1
  51. package/dist/devops/lib/remove-plugin.d.ts +1 -1
  52. package/dist/devops/lib/remove-plugin.js +3 -3
  53. package/dist/devops/lib/remove-plugin.js.map +1 -1
  54. package/dist/devops/lib/run-tool.d.ts +2 -2
  55. package/dist/devops/lib/run-tool.js +2 -2
  56. package/dist/devops/lib/types.d.ts +17 -54
  57. package/dist/devops/lib/types.js +2 -2
  58. package/dist/devops/lib/types.js.map +1 -1
  59. package/dist/devops/lib/update.d.ts +0 -15
  60. package/dist/devops/lib/update.js +2 -91
  61. package/dist/devops/lib/update.js.map +1 -1
  62. package/dist/devops/utils/agents.d.ts +0 -28
  63. package/dist/devops/utils/agents.js +0 -462
  64. package/dist/devops/utils/agents.js.map +1 -1
  65. package/dist/devops/utils/config.d.ts +9 -18
  66. package/dist/devops/utils/config.js +7 -20
  67. package/dist/devops/utils/config.js.map +1 -1
  68. package/dist/devops/utils/editor-cache.js +1 -1
  69. package/dist/devops/utils/editor-cache.js.map +1 -1
  70. package/dist/devops/utils/launch-error-dismiss.d.ts +2 -2
  71. package/dist/devops/utils/launch-error-dismiss.js +5 -5
  72. package/dist/devops/utils/manifest.d.ts +2 -2
  73. package/dist/devops/utils/manifest.js +3 -3
  74. package/dist/devops/utils/manifest.js.map +1 -1
  75. package/dist/devops/utils/port.d.ts +1 -1
  76. package/dist/devops/utils/port.js +1 -1
  77. package/dist/devops/utils/probe.d.ts +1 -1
  78. package/dist/devops/utils/probe.js +1 -1
  79. package/dist/devops/utils/ui.js +2 -2
  80. package/dist/devops/utils/ui.js.map +1 -1
  81. package/dist/devops/utils/unity-editor.js +4 -4
  82. package/dist/devops/utils/unity-editor.js.map +1 -1
  83. package/dist/devops/utils/unity-hub.js +1 -1
  84. package/dist/devops/utils/unity-hub.js.map +1 -1
  85. package/dist/devops/utils/unity-shutdown.d.ts +1 -1
  86. package/dist/devops/utils/unity-shutdown.js +1 -1
  87. package/dist/devops/utils/update-check.js +3 -3
  88. package/dist/devops/utils/update-check.js.map +1 -1
  89. package/dist/devops/utils/vendor.d.ts +2 -2
  90. package/dist/devops/utils/vendor.js +4 -4
  91. package/dist/devops/utils/vendor.js.map +1 -1
  92. package/dist/generated/tools.js +1 -1
  93. package/dist/generated/tools.js.map +1 -1
  94. package/dist/program.js +3 -3
  95. package/dist/program.js.map +1 -1
  96. package/dist/server/app.d.ts +5 -5
  97. package/dist/server/app.js +3 -3
  98. package/dist/server/app.js.map +1 -1
  99. package/dist/server/index.d.ts +2 -2
  100. package/dist/server/index.js +2 -2
  101. package/dist/server/index.js.map +1 -1
  102. package/dist/server/rest/auth.d.ts +1 -1
  103. package/dist/server/rest/auth.js +3 -3
  104. package/dist/server/rest/auth.js.map +1 -1
  105. package/dist/server/rest/context.d.ts +2 -2
  106. package/dist/server/rest/forward.d.ts +2 -2
  107. package/dist/server/session/store.d.ts +3 -3
  108. package/dist/server/session/store.js +4 -4
  109. package/dist/server/session/store.js.map +1 -1
  110. package/dist/server/stub-client/scenarios.js +8 -8
  111. package/dist/server/stub-client/scenarios.js.map +1 -1
  112. package/dist/server/types.d.ts +11 -11
  113. package/dist/server/types.js +9 -9
  114. package/dist/server/types.js.map +1 -1
  115. package/dist/server/ws/hub.d.ts +8 -8
  116. package/dist/server/ws/hub.js +13 -13
  117. package/dist/server/ws/hub.js.map +1 -1
  118. package/dist/server/ws/rpc.d.ts +3 -3
  119. package/dist/server/ws/rpc.js +4 -4
  120. package/dist/server/ws/rpc.js.map +1 -1
  121. package/dist/transport/index.d.ts +1 -1
  122. package/dist/transport/index.js +3 -3
  123. package/dist/transport/index.js.map +1 -1
  124. package/dist/transport/rest.js +1 -1
  125. package/dist/transport/rest.js.map +1 -1
  126. package/docs/INSTALL.zh-CN.md +2 -3
  127. package/package.json +1 -1
  128. package/skills/uco-setup/SKILL.md +1 -1
  129. package/skills/unity-editor/references/diagnostics.md +24 -24
  130. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Components/ExtensionPanel.cs +379 -379
  131. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/MenuItems.cs +72 -72
  132. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/UnityCopilotProjectSettingsProvider.cs +64 -64
  133. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CopilotServer.cs +372 -372
  134. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/ReflectorNet.dll +0 -0
  135. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.Common.dll +0 -0
  136. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.dll +0 -0
  137. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.Config.cs +175 -175
  138. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.cs +1 -1
  139. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Utils/EnvironmentUtils.cs +368 -368
  140. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Environment/EnvironmentUtilsTests.cs +3 -3
  141. package/vendor/plugin/com.atelierai.unity.copilot/package.json +1 -1
  142. package/dist/commands/devops/login.d.ts +0 -2
  143. package/dist/commands/devops/login.js +0 -29
  144. package/dist/commands/devops/login.js.map +0 -1
  145. package/dist/commands/devops/setup-mcp.d.ts +0 -2
  146. package/dist/commands/devops/setup-mcp.js +0 -41
  147. package/dist/commands/devops/setup-mcp.js.map +0 -1
  148. package/dist/devops/commands-upstream/bootstrap-local.d.ts +0 -17
  149. package/dist/devops/commands-upstream/bootstrap-local.js +0 -87
  150. package/dist/devops/commands-upstream/bootstrap-local.js.map +0 -1
  151. package/dist/devops/commands-upstream/close.d.ts +0 -57
  152. package/dist/devops/commands-upstream/close.js +0 -188
  153. package/dist/devops/commands-upstream/close.js.map +0 -1
  154. package/dist/devops/commands-upstream/configure.d.ts +0 -2
  155. package/dist/devops/commands-upstream/configure.js +0 -87
  156. package/dist/devops/commands-upstream/configure.js.map +0 -1
  157. package/dist/devops/commands-upstream/create-project.d.ts +0 -2
  158. package/dist/devops/commands-upstream/create-project.js +0 -43
  159. package/dist/devops/commands-upstream/create-project.js.map +0 -1
  160. package/dist/devops/commands-upstream/install-plugin.d.ts +0 -2
  161. package/dist/devops/commands-upstream/install-plugin.js +0 -64
  162. package/dist/devops/commands-upstream/install-plugin.js.map +0 -1
  163. package/dist/devops/commands-upstream/install-unity.d.ts +0 -2
  164. package/dist/devops/commands-upstream/install-unity.js +0 -72
  165. package/dist/devops/commands-upstream/install-unity.js.map +0 -1
  166. package/dist/devops/commands-upstream/login.d.ts +0 -2
  167. package/dist/devops/commands-upstream/login.js +0 -33
  168. package/dist/devops/commands-upstream/login.js.map +0 -1
  169. package/dist/devops/commands-upstream/open.d.ts +0 -32
  170. package/dist/devops/commands-upstream/open.js +0 -282
  171. package/dist/devops/commands-upstream/open.js.map +0 -1
  172. package/dist/devops/commands-upstream/remove-plugin.d.ts +0 -2
  173. package/dist/devops/commands-upstream/remove-plugin.js +0 -41
  174. package/dist/devops/commands-upstream/remove-plugin.js.map +0 -1
  175. package/dist/devops/commands-upstream/run-system-tool.d.ts +0 -1
  176. package/dist/devops/commands-upstream/run-system-tool.js +0 -13
  177. package/dist/devops/commands-upstream/run-system-tool.js.map +0 -1
  178. package/dist/devops/commands-upstream/run-tool-builder.d.ts +0 -25
  179. package/dist/devops/commands-upstream/run-tool-builder.js +0 -125
  180. package/dist/devops/commands-upstream/run-tool-builder.js.map +0 -1
  181. package/dist/devops/commands-upstream/run-tool.d.ts +0 -1
  182. package/dist/devops/commands-upstream/run-tool.js +0 -13
  183. package/dist/devops/commands-upstream/run-tool.js.map +0 -1
  184. package/dist/devops/commands-upstream/setup-mcp.d.ts +0 -2
  185. package/dist/devops/commands-upstream/setup-mcp.js +0 -68
  186. package/dist/devops/commands-upstream/setup-mcp.js.map +0 -1
  187. package/dist/devops/commands-upstream/setup-skills.d.ts +0 -2
  188. package/dist/devops/commands-upstream/setup-skills.js +0 -167
  189. package/dist/devops/commands-upstream/setup-skills.js.map +0 -1
  190. package/dist/devops/commands-upstream/status.d.ts +0 -2
  191. package/dist/devops/commands-upstream/status.js +0 -87
  192. package/dist/devops/commands-upstream/status.js.map +0 -1
  193. package/dist/devops/commands-upstream/update.d.ts +0 -2
  194. package/dist/devops/commands-upstream/update.js +0 -77
  195. package/dist/devops/commands-upstream/update.js.map +0 -1
  196. package/dist/devops/commands-upstream/wait-for-ready.d.ts +0 -2
  197. package/dist/devops/commands-upstream/wait-for-ready.js +0 -93
  198. package/dist/devops/commands-upstream/wait-for-ready.js.map +0 -1
  199. package/dist/devops/lib/setup-mcp.d.ts +0 -35
  200. package/dist/devops/lib/setup-mcp.js +0 -172
  201. package/dist/devops/lib/setup-mcp.js.map +0 -1
  202. package/dist/devops/utils/cloud-login.d.ts +0 -7
  203. package/dist/devops/utils/cloud-login.js +0 -56
  204. 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,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const waitForReadyCommand: Command;
@@ -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,172 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
- import { generatePortFromDirectory } from '../utils/port.js';
4
- import { readConfig, resolveConnectionFromConfig } from '../utils/config.js';
5
- import { getAgentById, getAgentIds, resolveServerBinaryPath, writeJsonAgentConfig, writeTomlAgentConfig, MCP_SERVER_NAME, } from '../utils/agents.js';
6
- import { emitProgress } from './progress.js';
7
- import { requireExistingPath } from './validation.js';
8
- function isValidTransport(t) {
9
- return t === 'stdio' || t === 'http';
10
- }
11
- /**
12
- * Extract a port from a `host` URL string, falling back to the
13
- * project-directory-derived deterministic port on any parse failure.
14
- */
15
- function portFromHost(host, projectPath) {
16
- if (!host)
17
- return generatePortFromDirectory(projectPath);
18
- try {
19
- return parseInt(new URL(host).port, 10) || generatePortFromDirectory(projectPath);
20
- }
21
- catch {
22
- return generatePortFromDirectory(projectPath);
23
- }
24
- }
25
- /**
26
- * Compute the managed MCP server entry an agent's config should carry for a
27
- * project, from the project's live `UserSettings/uco-config.json`
28
- * (the same resolution `setupMcp` performs). Shared by `setupMcp` and
29
- * `uco update`'s reconciliation so both always write the same entry.
30
- */
31
- export function computeAgentMcpProps(agent, projectPath, overrides = {}) {
32
- const config = readConfig(projectPath);
33
- const fromConfig = config
34
- ? resolveConnectionFromConfig(config)
35
- : { url: undefined, token: undefined };
36
- const port = portFromHost(config?.host, projectPath);
37
- const auth = config?.authOption ?? 'none';
38
- const token = overrides.token ?? fromConfig.token ?? '';
39
- const authRequired = auth === 'required';
40
- // Resolve URL — explicit override, then config, then deterministic
41
- // localhost fallback. Trailing slash stripped.
42
- const serverUrl = (overrides.url ?? fromConfig.url ?? `http://127.0.0.1:${port}`).replace(/\/$/, '');
43
- const configPath = agent.getConfigPath(projectPath);
44
- const props = agent.getHttpProps(serverUrl, token, authRequired);
45
- return { configPath, props, removeKeys: agent.httpRemoveKeys };
46
- }
47
- /**
48
- * Write MCP configuration for the given AI agent, so it can talk to
49
- * Unity-MCP. Library-safe: no stdout noise, no process.exit, no throws
50
- * past the public boundary.
51
- *
52
- * The returned `SetupMcpResult` is a discriminated union — narrow with
53
- * `result.kind === 'success'` to access `agentId` / `configPath` /
54
- * `transport`, or `result.kind === 'failure'` to access `error`.
55
- */
56
- export async function setupMcp(opts) {
57
- const warnings = [];
58
- const nextSteps = [];
59
- try {
60
- if (!opts || typeof opts.agentId !== 'string' || opts.agentId.length === 0) {
61
- return {
62
- kind: 'failure',
63
- success: false,
64
- warnings,
65
- nextSteps,
66
- error: new Error(`agentId is required. Available agent IDs: ${getAgentIds().join(', ')}`),
67
- };
68
- }
69
- const agent = getAgentById(opts.agentId);
70
- if (!agent) {
71
- return {
72
- kind: 'failure',
73
- success: false,
74
- warnings,
75
- nextSteps,
76
- error: new Error(`Unknown agent: "${opts.agentId}". Available agent IDs: ${getAgentIds().join(', ')}`),
77
- };
78
- }
79
- const transport = opts.transport ?? 'http';
80
- if (!isValidTransport(transport)) {
81
- return {
82
- kind: 'failure',
83
- success: false,
84
- warnings,
85
- nextSteps,
86
- error: new Error(`Invalid transport: "${transport}". Must be "stdio" or "http".`),
87
- };
88
- }
89
- // Resolve project path. If the caller supplied one explicitly it
90
- // must exist; otherwise fall back to cwd (matches CLI behaviour).
91
- let projectPath;
92
- if (opts.unityProjectPath) {
93
- const validated = requireExistingPath(opts.unityProjectPath);
94
- if (!validated.ok) {
95
- return { kind: 'failure', success: false, warnings, nextSteps, error: validated.error };
96
- }
97
- projectPath = validated.projectPath;
98
- }
99
- else {
100
- projectPath = path.resolve(process.cwd());
101
- }
102
- emitProgress(opts.onProgress, {
103
- phase: 'start',
104
- message: `Configuring ${agent.name} (${transport}) for ${projectPath}`,
105
- });
106
- const config = readConfig(projectPath);
107
- const configPath = agent.getConfigPath(projectPath);
108
- const serverPath = resolveServerBinaryPath(projectPath).replace(/\\/g, '/');
109
- let props;
110
- let removeKeys;
111
- if (transport === 'stdio') {
112
- const port = portFromHost(config?.host, projectPath);
113
- const timeout = config?.timeoutMs ?? 10000;
114
- const auth = config?.authOption ?? 'none';
115
- const fromConfig = config
116
- ? resolveConnectionFromConfig(config)
117
- : { url: undefined, token: undefined };
118
- const token = opts.token ?? fromConfig.token ?? '';
119
- props = agent.getStdioProps(serverPath, port, timeout, auth, token);
120
- removeKeys = agent.stdioRemoveKeys;
121
- }
122
- else {
123
- const computed = computeAgentMcpProps(agent, projectPath, {
124
- ...(opts.url ? { url: opts.url } : {}),
125
- ...(opts.token ? { token: opts.token } : {}),
126
- });
127
- props = computed.props;
128
- removeKeys = computed.removeKeys;
129
- }
130
- if (agent.configFormat === 'toml') {
131
- writeTomlAgentConfig(configPath, agent.bodyPath, MCP_SERVER_NAME, props, removeKeys);
132
- }
133
- else {
134
- writeJsonAgentConfig(configPath, agent.bodyPath, MCP_SERVER_NAME, props, removeKeys);
135
- }
136
- emitProgress(opts.onProgress, {
137
- phase: 'manifest-patched',
138
- message: `Wrote ${configPath}`,
139
- manifestPath: configPath,
140
- });
141
- if (transport === 'stdio' && !fs.existsSync(serverPath.replace(/\//g, path.sep))) {
142
- warnings.push('Server binary not found. Open Unity with the MCP plugin to download it automatically.');
143
- }
144
- emitProgress(opts.onProgress, { phase: 'done', message: `${agent.name} configured successfully.` });
145
- return {
146
- kind: 'success',
147
- success: true,
148
- agentId: agent.id,
149
- configPath,
150
- transport,
151
- warnings,
152
- nextSteps,
153
- };
154
- }
155
- catch (err) {
156
- return {
157
- kind: 'failure',
158
- success: false,
159
- warnings,
160
- nextSteps,
161
- error: err instanceof Error ? err : new Error(String(err)),
162
- };
163
- }
164
- }
165
- /**
166
- * List every agent id known to the `setupMcp` function. Useful for
167
- * consumer UIs that want to render a picker.
168
- */
169
- export function listAgentIds() {
170
- return getAgentIds();
171
- }
172
- //# 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"}