unity-mcp-cli 0.84.3 → 0.85.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.
@@ -1,449 +1,27 @@
1
- import chalk from 'chalk';
2
- import * as fs from 'fs';
3
- import * as os from 'os';
4
- import * as path from 'path';
5
- // ---------------------------------------------------------------------------
6
- // Platform helpers
7
- // ---------------------------------------------------------------------------
8
- function appData() {
9
- return process.env['APPDATA'] ?? path.join(os.homedir(), 'AppData', 'Roaming');
10
- }
11
- function home() {
12
- return os.homedir();
13
- }
14
- function isWindows() {
15
- return process.platform === 'win32';
16
- }
17
- function isMac() {
18
- return process.platform === 'darwin';
19
- }
20
- // ---------------------------------------------------------------------------
21
- // Shared stdio / http arg builders
22
- // ---------------------------------------------------------------------------
23
- function stdioArgs(port, timeout, auth, token) {
24
- return [
25
- `port=${port}`,
26
- `plugin-timeout=${timeout}`,
27
- `client-transport=stdio`,
28
- `authorization=${auth}`,
29
- `token=${token}`,
30
- ];
31
- }
1
+ // Copyright (c) 2024 Ivan Murzak. All rights reserved.
2
+ // Licensed under the Apache License, Version 2.0.
32
3
  /**
33
- * The static `Authorization: Bearer <token>` header, or `undefined` when none
34
- * should be written. Whether to emit it is decided by the CALLER (`setupMcp`)
35
- * per the b6 credential policy (design decision D11) and passed in as
36
- * `emitAuthHeader`; the default http path is credential-free (OAuth-capable
37
- * clients authorize natively — Flow A), so a header is emitted only for an
38
- * explicit PAT opt-in or a non-OAuth client (Flow C).
4
+ * The AI-agent registry now lives in `@baizor/gamedev-cli-core` (auth-fixes T7 / D1): ONE
5
+ * engine-neutral registry (agent id → config path, body path, format, per-transport prop builders)
6
+ * shared by the three engine CLIs, with the server-entry name + stdio-args vector supplied by the
7
+ * engine adapter. The registry's config WRITERS are the golden-vector-gated `JsonAiAgentConfig` /
8
+ * `TomlAiAgentConfig` (byte-for-byte parity with the C# Editor Configure), reached through
9
+ * cli-core's `setupMcp`.
10
+ *
11
+ * This module re-exports that registry and keeps the two Unity-CLI-local bits cli-core does not own:
12
+ * - `MCP_SERVER_NAME` — the Unity server-entry name (`ai-game-developer`), from `unityAdapter`.
13
+ * - `listAgentTable` — the terminal-table renderer used by `setup-mcp --list` / `setup-skills
14
+ * --list` (a CLI presentation concern, not shared library logic).
39
15
  */
40
- function authHeaders(token, emitAuthHeader) {
41
- if (emitAuthHeader && token) {
42
- return { Authorization: `Bearer ${token}` };
43
- }
44
- return undefined;
45
- }
46
- // ---------------------------------------------------------------------------
47
- // Agent Registry
48
- // ---------------------------------------------------------------------------
49
- const MCP_SERVER_NAME = 'ai-game-developer';
50
- export const agentRegistry = [
51
- // ── Claude Code ──────────────────────────────────────────────
52
- {
53
- id: 'claude-code',
54
- name: 'Claude Code',
55
- skillsPath: '.claude/skills',
56
- configPathDisplay: '.mcp.json',
57
- configFormat: 'json',
58
- bodyPath: 'mcpServers',
59
- getConfigPath: (p) => path.join(p, '.mcp.json'),
60
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
61
- command: serverPath,
62
- args: stdioArgs(port, timeout, auth, token),
63
- }),
64
- getHttpProps: (url, token, emitAuthHeader) => ({
65
- type: 'http',
66
- url,
67
- ...(authHeaders(token, emitAuthHeader)
68
- ? { headers: authHeaders(token, emitAuthHeader) }
69
- : {}),
70
- }),
71
- stdioRemoveKeys: ['type', 'url'],
72
- httpRemoveKeys: ['command', 'args'],
73
- },
74
- // ── Claude Desktop ───────────────────────────────────────────
75
- {
76
- id: 'claude-desktop',
77
- name: 'Claude Desktop',
78
- skillsPath: null,
79
- configPathDisplay: '~/Claude/claude_desktop_config.json',
80
- configFormat: 'json',
81
- bodyPath: 'mcpServers',
82
- getConfigPath: () => isWindows()
83
- ? path.join(appData(), 'Claude', 'claude_desktop_config.json')
84
- : path.join(home(), 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'),
85
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
86
- type: 'stdio',
87
- command: serverPath,
88
- args: stdioArgs(port, timeout, auth, token),
89
- }),
90
- getHttpProps: (url, token, emitAuthHeader) => ({
91
- type: 'http',
92
- url,
93
- ...(authHeaders(token, emitAuthHeader)
94
- ? { headers: authHeaders(token, emitAuthHeader) }
95
- : {}),
96
- }),
97
- stdioRemoveKeys: ['url'],
98
- httpRemoveKeys: ['command', 'args'],
99
- },
100
- // ── Cursor ───────────────────────────────────────────────────
101
- {
102
- id: 'cursor',
103
- name: 'Cursor',
104
- skillsPath: '.cursor/skills',
105
- configPathDisplay: '.cursor/mcp.json',
106
- configFormat: 'json',
107
- bodyPath: 'mcpServers',
108
- getConfigPath: (p) => path.join(p, '.cursor', 'mcp.json'),
109
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
110
- type: 'stdio',
111
- command: serverPath,
112
- args: stdioArgs(port, timeout, auth, token),
113
- }),
114
- getHttpProps: (url, token, emitAuthHeader) => ({
115
- type: 'http',
116
- url,
117
- ...(authHeaders(token, emitAuthHeader)
118
- ? { headers: authHeaders(token, emitAuthHeader) }
119
- : {}),
120
- }),
121
- stdioRemoveKeys: ['url'],
122
- httpRemoveKeys: ['command', 'args'],
123
- },
124
- // ── VS Code (Copilot) ───────────────────────────────────────
125
- {
126
- id: 'vscode-copilot',
127
- name: 'Visual Studio Code (Copilot)',
128
- skillsPath: '.github/skills',
129
- configPathDisplay: '.vscode/mcp.json',
130
- configFormat: 'json',
131
- bodyPath: 'servers',
132
- getConfigPath: (p) => path.join(p, '.vscode', 'mcp.json'),
133
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
134
- type: 'stdio',
135
- command: serverPath,
136
- args: stdioArgs(port, timeout, auth, token),
137
- }),
138
- getHttpProps: (url, token, emitAuthHeader) => ({
139
- type: 'http',
140
- url,
141
- ...(authHeaders(token, emitAuthHeader)
142
- ? { headers: authHeaders(token, emitAuthHeader) }
143
- : {}),
144
- }),
145
- stdioRemoveKeys: ['url'],
146
- httpRemoveKeys: ['command', 'args'],
147
- },
148
- // ── Visual Studio (Copilot) ──────────────────────────────────
149
- {
150
- id: 'vs-copilot',
151
- name: 'Visual Studio (Copilot)',
152
- skillsPath: '.github/skills',
153
- configPathDisplay: '.vs/mcp.json',
154
- configFormat: 'json',
155
- bodyPath: 'servers',
156
- getConfigPath: (p) => path.join(p, '.vs', 'mcp.json'),
157
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
158
- type: 'stdio',
159
- command: serverPath,
160
- args: stdioArgs(port, timeout, auth, token),
161
- }),
162
- getHttpProps: (url, token, emitAuthHeader) => ({
163
- type: 'http',
164
- url,
165
- ...(authHeaders(token, emitAuthHeader)
166
- ? { headers: authHeaders(token, emitAuthHeader) }
167
- : {}),
168
- }),
169
- stdioRemoveKeys: ['url'],
170
- httpRemoveKeys: ['command', 'args'],
171
- },
172
- // ── Rider (Junie) ───────────────────────────────────────────
173
- {
174
- id: 'rider-junie',
175
- name: 'Rider (Junie)',
176
- skillsPath: '.junie/skills',
177
- configPathDisplay: '.junie/mcp/mcp.json',
178
- configFormat: 'json',
179
- bodyPath: 'mcpServers',
180
- getConfigPath: (p) => path.join(p, '.junie', 'mcp', 'mcp.json'),
181
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
182
- enabled: true,
183
- type: 'stdio',
184
- command: serverPath,
185
- args: stdioArgs(port, timeout, auth, token),
186
- }),
187
- getHttpProps: (url, token, emitAuthHeader) => ({
188
- enabled: true,
189
- type: 'http',
190
- url,
191
- ...(authHeaders(token, emitAuthHeader)
192
- ? { headers: authHeaders(token, emitAuthHeader) }
193
- : {}),
194
- }),
195
- stdioRemoveKeys: ['disabled', 'url'],
196
- httpRemoveKeys: ['disabled', 'command', 'args'],
197
- },
198
- // ── GitHub Copilot CLI ──────────────────────────────────────
199
- {
200
- id: 'github-copilot-cli',
201
- name: 'GitHub Copilot CLI',
202
- skillsPath: '.github/skills',
203
- configPathDisplay: '~/.copilot/mcp-config.json',
204
- configFormat: 'json',
205
- bodyPath: 'mcpServers',
206
- getConfigPath: () => path.join(home(), '.copilot', 'mcp-config.json'),
207
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
208
- command: serverPath,
209
- args: stdioArgs(port, timeout, auth, token),
210
- tools: ['*'],
211
- }),
212
- getHttpProps: (url, token, emitAuthHeader) => ({
213
- type: 'http',
214
- url,
215
- tools: ['*'],
216
- ...(authHeaders(token, emitAuthHeader)
217
- ? { headers: authHeaders(token, emitAuthHeader) }
218
- : {}),
219
- }),
220
- stdioRemoveKeys: ['url', 'type'],
221
- httpRemoveKeys: ['command', 'args'],
222
- },
223
- // ── Gemini ──────────────────────────────────────────────────
224
- {
225
- id: 'gemini',
226
- name: 'Gemini',
227
- skillsPath: '.gemini/skills',
228
- configPathDisplay: '.gemini/settings.json',
229
- configFormat: 'json',
230
- bodyPath: 'mcpServers',
231
- getConfigPath: (p) => path.join(p, '.gemini', 'settings.json'),
232
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
233
- type: 'stdio',
234
- command: serverPath,
235
- args: stdioArgs(port, timeout, auth, token),
236
- }),
237
- getHttpProps: (url, token, emitAuthHeader) => ({
238
- type: 'http',
239
- url,
240
- ...(authHeaders(token, emitAuthHeader)
241
- ? { headers: authHeaders(token, emitAuthHeader) }
242
- : {}),
243
- }),
244
- stdioRemoveKeys: ['url'],
245
- httpRemoveKeys: ['command', 'args'],
246
- },
247
- // ── Antigravity ─────────────────────────────────────────────
248
- {
249
- id: 'antigravity',
250
- name: 'Antigravity',
251
- skillsPath: '.agent/skills',
252
- configPathDisplay: '~/.gemini/config/mcp_config.json',
253
- configFormat: 'json',
254
- bodyPath: 'mcpServers',
255
- getConfigPath: () => path.join(home(), '.gemini', 'config', 'mcp_config.json'),
256
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
257
- disabled: false,
258
- command: serverPath,
259
- args: stdioArgs(port, timeout, auth, token),
260
- }),
261
- getHttpProps: (url, _token, _emitAuthHeader) => ({
262
- disabled: false,
263
- serverUrl: url,
264
- }),
265
- stdioRemoveKeys: ['url', 'serverUrl', 'type'],
266
- httpRemoveKeys: ['command', 'args', 'url', 'type'],
267
- },
268
- // ── Cline ───────────────────────────────────────────────────
269
- {
270
- id: 'cline',
271
- name: 'Cline',
272
- skillsPath: '.cline/skills',
273
- configPathDisplay: '~/Code/globalStorage/.../cline_mcp_settings.json',
274
- configFormat: 'json',
275
- bodyPath: 'mcpServers',
276
- getConfigPath: () => {
277
- if (isWindows()) {
278
- return path.join(appData(), 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json');
279
- }
280
- const base = isMac()
281
- ? path.join(home(), 'Library', 'Application Support', 'Code', 'User', 'globalStorage')
282
- : path.join(home(), '.config', 'Code', 'User', 'globalStorage');
283
- return path.join(base, 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json');
284
- },
285
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
286
- type: 'stdio',
287
- command: serverPath,
288
- args: stdioArgs(port, timeout, auth, token),
289
- }),
290
- getHttpProps: (url, token, emitAuthHeader) => ({
291
- type: 'streamableHttp',
292
- url,
293
- ...(authHeaders(token, emitAuthHeader)
294
- ? { headers: authHeaders(token, emitAuthHeader) }
295
- : {}),
296
- }),
297
- stdioRemoveKeys: ['url'],
298
- httpRemoveKeys: ['command', 'args'],
299
- },
300
- // ── Open Code ───────────────────────────────────────────────
301
- {
302
- id: 'open-code',
303
- name: 'Open Code',
304
- skillsPath: '.opencode/skills',
305
- configPathDisplay: 'opencode.json',
306
- configFormat: 'json',
307
- bodyPath: 'mcp',
308
- getConfigPath: (p) => path.join(p, 'opencode.json'),
309
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
310
- type: 'local',
311
- enabled: true,
312
- command: [
313
- serverPath,
314
- ...stdioArgs(port, timeout, auth, token),
315
- ],
316
- }),
317
- getHttpProps: (url, token, emitAuthHeader) => ({
318
- type: 'remote',
319
- enabled: true,
320
- url,
321
- ...(authHeaders(token, emitAuthHeader)
322
- ? { headers: authHeaders(token, emitAuthHeader) }
323
- : {}),
324
- }),
325
- stdioRemoveKeys: ['url', 'args'],
326
- httpRemoveKeys: ['command', 'args'],
327
- },
328
- // ── Codex ───────────────────────────────────────────────────
329
- {
330
- id: 'codex',
331
- name: 'Codex',
332
- skillsPath: '.agents/skills',
333
- configPathDisplay: '.codex/config.toml',
334
- configFormat: 'toml',
335
- bodyPath: 'mcp_servers',
336
- getConfigPath: (p) => path.join(p, '.codex', 'config.toml'),
337
- getStdioProps: (serverPath, port, timeout, auth, _token) => ({
338
- enabled: true,
339
- command: serverPath,
340
- args: [
341
- `port=${port}`,
342
- `plugin-timeout=${timeout}`,
343
- `client-transport=stdio`,
344
- `authorization=${auth}`,
345
- ],
346
- tool_timeout_sec: 300,
347
- }),
348
- getHttpProps: (url, _token, _emitAuthHeader) => ({
349
- enabled: true,
350
- url,
351
- tool_timeout_sec: 300,
352
- startup_timeout_sec: 30,
353
- }),
354
- stdioRemoveKeys: ['url', 'type', 'startup_timeout_sec'],
355
- httpRemoveKeys: ['command', 'args', 'type'],
356
- },
357
- // ── Kilo Code ───────────────────────────────────────────────
358
- {
359
- id: 'kilo-code',
360
- name: 'Kilo Code',
361
- skillsPath: '.kilocode/skills',
362
- configPathDisplay: '.kilocode/mcp.json',
363
- configFormat: 'json',
364
- bodyPath: 'mcpServers',
365
- getConfigPath: (p) => path.join(p, '.kilocode', 'mcp.json'),
366
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
367
- type: 'stdio',
368
- disabled: false,
369
- command: serverPath,
370
- args: stdioArgs(port, timeout, auth, token),
371
- }),
372
- getHttpProps: (url, token, emitAuthHeader) => ({
373
- type: 'streamable-http',
374
- disabled: false,
375
- url,
376
- ...(authHeaders(token, emitAuthHeader)
377
- ? { headers: authHeaders(token, emitAuthHeader) }
378
- : {}),
379
- }),
380
- stdioRemoveKeys: ['url'],
381
- httpRemoveKeys: ['command', 'args'],
382
- },
383
- // ── Unity AI ────────────────────────────────────────────────
384
- {
385
- id: 'unity-ai',
386
- name: 'Unity AI',
387
- skillsPath: null,
388
- configPathDisplay: 'UserSettings/mcp.json',
389
- configFormat: 'json',
390
- bodyPath: 'mcpServers',
391
- getConfigPath: (p) => path.join(p, 'UserSettings', 'mcp.json'),
392
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
393
- type: 'stdio',
394
- command: serverPath,
395
- args: stdioArgs(port, timeout, auth, token),
396
- }),
397
- getHttpProps: (url, token, emitAuthHeader) => ({
398
- type: 'http',
399
- url,
400
- ...(authHeaders(token, emitAuthHeader)
401
- ? { headers: authHeaders(token, emitAuthHeader) }
402
- : {}),
403
- }),
404
- stdioRemoveKeys: ['url'],
405
- httpRemoveKeys: ['command', 'args'],
406
- },
407
- // ── Custom (generic mcpServers entry written to <project>/mcp.json) ─
408
- // The generic-MCP-client escape hatch: for any client not otherwise
409
- // listed, write a standard `mcpServers` entry to `<project>/mcp.json`.
410
- // Mirrors the godot-cli / unreal-mcp-cli `custom` agent (semantic
411
- // parity), adapted to the Unity CLI's stdio+http surface — the props
412
- // use the canonical self-describing `type: 'stdio'` / `type: 'http'`
413
- // shape shared by claude-desktop / cursor / gemini above.
414
- {
415
- id: 'custom',
416
- name: 'Custom (generic MCP client)',
417
- skillsPath: null,
418
- configPathDisplay: 'mcp.json',
419
- configFormat: 'json',
420
- bodyPath: 'mcpServers',
421
- getConfigPath: (p) => path.join(p, 'mcp.json'),
422
- getStdioProps: (serverPath, port, timeout, auth, token) => ({
423
- type: 'stdio',
424
- command: serverPath,
425
- args: stdioArgs(port, timeout, auth, token),
426
- }),
427
- getHttpProps: (url, token, emitAuthHeader) => ({
428
- type: 'http',
429
- url,
430
- ...(authHeaders(token, emitAuthHeader)
431
- ? { headers: authHeaders(token, emitAuthHeader) }
432
- : {}),
433
- }),
434
- stdioRemoveKeys: ['url'],
435
- httpRemoveKeys: ['command', 'args'],
436
- },
437
- ];
16
+ import chalk from 'chalk';
17
+ import { agentRegistry, getAgentById, getAgentIds, unityAdapter, } from '@baizor/gamedev-cli-core';
18
+ export { agentRegistry, getAgentById, getAgentIds };
19
+ /** The Unity MCP server-entry name written under an agent config's body path. */
20
+ const MCP_SERVER_NAME = unityAdapter.serverName;
21
+ export { MCP_SERVER_NAME };
438
22
  // ---------------------------------------------------------------------------
439
- // Lookup helpers
23
+ // Terminal table renderer (CLI presentation — not part of the shared library)
440
24
  // ---------------------------------------------------------------------------
441
- export function getAgentById(id) {
442
- return agentRegistry.find((a) => a.id === id);
443
- }
444
- export function getAgentIds() {
445
- return agentRegistry.map((a) => a.id);
446
- }
447
25
  export function listAgentTable(heading, locationLabel, locationFn) {
448
26
  const sorted = [...agentRegistry].sort((a, b) => a.id.localeCompare(b.id));
449
27
  const colId = 'ID';
@@ -451,134 +29,19 @@ export function listAgentTable(heading, locationLabel, locationFn) {
451
29
  const wId = Math.max(colId.length, ...sorted.map((a) => a.id.length));
452
30
  const wLoc = Math.max(colLoc.length, ...sorted.map((a) => locationFn(a).length));
453
31
  const sep = chalk.dim;
454
- const hBar = (w) => '\u2500'.repeat(w);
32
+ const hBar = (w) => '─'.repeat(w);
455
33
  console.log(`\n${chalk.bold.cyan(heading)}\n`);
456
34
  // Header
457
- console.log(sep(' \u250C\u2500') + sep(hBar(wId)) + sep('\u2500\u252C\u2500') + sep(hBar(wLoc)) + sep('\u2500\u2510'));
458
- console.log(sep(' \u2502 ') + chalk.bold.white(colId.padEnd(wId)) + sep(' \u2502 ') + chalk.bold.white(colLoc.padEnd(wLoc)) + sep(' \u2502'));
459
- console.log(sep(' \u251C\u2500') + sep(hBar(wId)) + sep('\u2500\u253C\u2500') + sep(hBar(wLoc)) + sep('\u2500\u2524'));
35
+ console.log(sep(' ┌─') + sep(hBar(wId)) + sep('─┬─') + sep(hBar(wLoc)) + sep('─┐'));
36
+ console.log(sep(' │ ') + chalk.bold.white(colId.padEnd(wId)) + sep(' │ ') + chalk.bold.white(colLoc.padEnd(wLoc)) + sep(' │'));
37
+ console.log(sep(' ├─') + sep(hBar(wId)) + sep('─┼─') + sep(hBar(wLoc)) + sep('─┤'));
460
38
  // Rows
461
39
  for (const agent of sorted) {
462
40
  const loc = locationFn(agent);
463
- console.log(sep(' \u2502 ') + chalk.yellow(agent.id.padEnd(wId)) + sep(' \u2502 ') + chalk.green(loc.padEnd(wLoc)) + sep(' \u2502'));
41
+ console.log(sep(' │ ') + chalk.yellow(agent.id.padEnd(wId)) + sep(' │ ') + chalk.green(loc.padEnd(wLoc)) + sep(' │'));
464
42
  }
465
43
  // Footer
466
- console.log(sep(' \u2514\u2500') + sep(hBar(wId)) + sep('\u2500\u2534\u2500') + sep(hBar(wLoc)) + sep('\u2500\u2518'));
44
+ console.log(sep(' └─') + sep(hBar(wId)) + sep('─┴─') + sep(hBar(wLoc)) + sep('─┘'));
467
45
  console.log('');
468
46
  }
469
- // ---------------------------------------------------------------------------
470
- // Server binary path resolution
471
- // ---------------------------------------------------------------------------
472
- export function resolveServerBinaryPath(projectPath) {
473
- const platform = resolveServerPlatform();
474
- const ext = isWindows() ? '.exe' : '';
475
- return path.join(projectPath, 'Library', 'mcp-server', platform, `gamedev-mcp-server${ext}`);
476
- }
477
- function resolveServerPlatform() {
478
- const p = process.platform;
479
- const a = process.arch;
480
- if (p === 'win32')
481
- return 'win-x64';
482
- if (p === 'darwin')
483
- return a === 'arm64' ? 'osx-arm64' : 'osx-x64';
484
- return 'linux-x64';
485
- }
486
- // ---------------------------------------------------------------------------
487
- // Config file writing — JSON
488
- // ---------------------------------------------------------------------------
489
- export function writeJsonAgentConfig(configPath, bodyPath, serverName, props, removeKeys) {
490
- const dir = path.dirname(configPath);
491
- if (!fs.existsSync(dir)) {
492
- fs.mkdirSync(dir, { recursive: true });
493
- }
494
- let root = {};
495
- if (fs.existsSync(configPath)) {
496
- try {
497
- root = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
498
- }
499
- catch {
500
- // If the file is malformed, start fresh
501
- root = {};
502
- }
503
- if (!root || typeof root !== 'object' || Array.isArray(root)) {
504
- root = {};
505
- }
506
- }
507
- // Navigate/create bodyPath
508
- let body = root[bodyPath];
509
- if (!body || typeof body !== 'object' || Array.isArray(body)) {
510
- body = {};
511
- root[bodyPath] = body;
512
- }
513
- // Remove deprecated "Unity-MCP" entries
514
- delete body['Unity-MCP'];
515
- // Get or create the server entry
516
- let entry = body[serverName];
517
- if (!entry || typeof entry !== 'object' || Array.isArray(entry)) {
518
- entry = {};
519
- }
520
- // Remove stale keys
521
- for (const key of removeKeys) {
522
- delete entry[key];
523
- }
524
- // Merge new properties
525
- for (const [key, value] of Object.entries(props)) {
526
- entry[key] = value;
527
- }
528
- body[serverName] = entry;
529
- root[bodyPath] = body;
530
- fs.writeFileSync(configPath, JSON.stringify(root, null, 2) + '\n');
531
- }
532
- // ---------------------------------------------------------------------------
533
- // Config file writing — TOML (Codex only)
534
- // ---------------------------------------------------------------------------
535
- export function writeTomlAgentConfig(configPath, bodyPath, serverName, props, removeKeys) {
536
- const dir = path.dirname(configPath);
537
- if (!fs.existsSync(dir)) {
538
- fs.mkdirSync(dir, { recursive: true });
539
- }
540
- // Read existing content or start fresh
541
- let lines = [];
542
- if (fs.existsSync(configPath)) {
543
- lines = fs.readFileSync(configPath, 'utf-8').split('\n');
544
- }
545
- const sectionHeader = `[${bodyPath}.${serverName}]`;
546
- // Find existing section boundaries
547
- const sectionIdx = lines.findIndex((l) => l.trim() === sectionHeader);
548
- // Build TOML key-value pairs for the section
549
- const tomlLines = [sectionHeader];
550
- for (const [key, value] of Object.entries(props)) {
551
- if (removeKeys.includes(key))
552
- continue;
553
- tomlLines.push(`${key} = ${tomlValue(value)}`);
554
- }
555
- if (sectionIdx >= 0) {
556
- // Find end of section (next [...] header or EOF)
557
- let endIdx = sectionIdx + 1;
558
- while (endIdx < lines.length && !lines[endIdx].trim().startsWith('[')) {
559
- endIdx++;
560
- }
561
- // Replace section
562
- lines.splice(sectionIdx, endIdx - sectionIdx, ...tomlLines);
563
- }
564
- else {
565
- // Append section
566
- if (lines.length > 0 && lines[lines.length - 1].trim() !== '') {
567
- lines.push('');
568
- }
569
- lines.push(...tomlLines);
570
- }
571
- fs.writeFileSync(configPath, lines.join('\n') + '\n');
572
- }
573
- function tomlValue(v) {
574
- if (typeof v === 'string')
575
- return `"${v.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
576
- if (typeof v === 'number' || typeof v === 'boolean')
577
- return String(v);
578
- if (Array.isArray(v)) {
579
- return `[${v.map(tomlValue).join(', ')}]`;
580
- }
581
- return String(v);
582
- }
583
- export { MCP_SERVER_NAME };
584
47
  //# sourceMappingURL=agents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/utils/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/utils/agents.ts"],"names":[],"mappings":"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"}