godot-cli 0.23.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -90,7 +90,7 @@ npx godot-cli install-plugin /path/to/godot/project
90
90
  | `status [path]` | Detect a running Godot editor for the project and probe MCP-server health. |
91
91
  | `wait-for-ready [path]` | Poll the MCP server until it answers `ping`. |
92
92
  | `login [path]` | Authenticate with the ai-game.dev cloud via the OAuth 2.1 device-authorization flow (RFC 8628) — opens a browser, then saves a cloud credential to the shared machine store (`~/.ai-game-dev/credentials.json`) the editor plugin auto-adopts. See the `login` section below for its `--project` / `--base-url` / `--force` / `--tools-only` / `--yes` flags. |
93
- | `setup-mcp <agent> [path]` | Write the agent's MCP-client config pointing at the project-pinned `<host>/mcp/p/<pin>` URL (so the agent routes to *this* project's editor). Add `--no-pin` for the bare `<host>/mcp` URL. |
93
+ | `setup-mcp <agent> [path]` | Write the agent's MCP-client config pointing at the project-pinned `<host>/mcp/p/<pin>` URL (so the agent routes to *this* project's editor). In Cloud mode the config carries this project's key (`Authorization: Bearer agd_pk_…`). Add `--no-pin` for the bare `<host>/mcp` URL, `--oauth` for a URL-only config, `--regenerate-key` to replace the key. |
94
94
  | `setup-skills <agent> [path]` | Generate Godot-MCP skill files (a `SKILL.md`-per-tool-family) under the agent's skills path. `--list` shows each agent's skills support. |
95
95
  | `configure [path]` | List / enable / disable tools, prompts, and resources in the project-local `.godot-mcp/features.json`. |
96
96
  | `close [path]` | Gracefully stop the Godot editor running for a project (`--force` to hard-kill). |
@@ -331,12 +331,18 @@ generate its skill files). Use `--list` on either command to see every supported
331
331
  godot-cli setup-mcp --list # list every supported agent id
332
332
  godot-cli setup-mcp claude-code ./MyGame # write the agent's MCP client config (pinned to this project)
333
333
  godot-cli setup-mcp claude-code ./MyGame --no-pin # write the bare, unpinned <host>/mcp URL instead
334
+ godot-cli setup-mcp claude-code ./MyGame --oauth # URL-only: the agent signs in with its own OAuth
335
+ godot-cli setup-mcp claude-code ./MyGame --regenerate-key # new project key; the old one is revoked
334
336
  ```
335
337
 
336
- OAuth-capable agents (Claude Code, Cursor, Codex, Copilot, …) authenticate to the cloud with their **own**
337
- OAuth handshake, so `setup-mcp` writes them a credential-free, URL-only config — no bearer token is stored
338
- in the agent file. A static `Authorization` header is written only for a client that cannot OAuth, or when
339
- you pass an explicit `--token` (a deliberate personal-token opt-in for a self-hosted, required-auth server).
338
+ In Cloud mode `setup-mcp` writes a **project key** into the agent config for every agent:
339
+ `Authorization: Bearer agd_pk_…` (Codex: `http_headers`). A project key never expires, is bound to this
340
+ project's pin (it cannot reach any other project on your account), and is created once per project with
341
+ your machine sign-in (`godot-cli login`), then reused from `~/.ai-game-dev/project-keys.json`.
342
+ `--regenerate-key` replaces it and revokes the old one. Without a machine sign-in (or while the server cannot
343
+ issue keys) the config is URL-only and the agent authenticates with its own OAuth; `--oauth` asks for that
344
+ URL-only config explicitly. An explicit `--token` always wins. A local server config (`--url
345
+ http://localhost:…`) never carries a project key.
340
346
 
341
347
  > For the full Godot-MCP project documentation, see the
342
348
  > [main README](https://github.com/IvanMurzak/Godot-MCP/blob/main/README.md). Backed by
@@ -3,6 +3,17 @@ import * as ui from '../utils/ui.js';
3
3
  import { verbose } from '../utils/ui.js';
4
4
  import { getAgentById, getAgentIds, listAgentTable, MCP_SERVER_NAME } from '../utils/agents.js';
5
5
  import { setupMcp } from '../lib/setup-mcp.js';
6
+ /** Human description of the credential a written config carries. */
7
+ function describeCredential(result) {
8
+ switch (result.credential) {
9
+ case 'project-key':
10
+ return `project key (${result.projectKeySource === 'minted' ? 'newly created' : 'reused'})`;
11
+ case 'token':
12
+ return 'access token (--token)';
13
+ default:
14
+ return 'none (URL-only; the agent signs in with its own OAuth)';
15
+ }
16
+ }
6
17
  function listAgents() {
7
18
  listAgentTable('Available AI Agents', 'Config Path', (a) => a.configPathDisplay);
8
19
  }
@@ -13,6 +24,8 @@ export const setupMcpCommand = new Command('setup-mcp')
13
24
  .option('--url <url>', 'MCP server host override (the <host>/mcp client URL is derived from it)')
14
25
  .option('--token <token>', 'Auth token override (defaults to GODOT_MCP_TOKEN)')
15
26
  .option('--no-pin', 'Write an unpinned <host>/mcp URL (default pins /p/<pin> to route to this project)')
27
+ .option('--oauth', 'Cloud: write a URL-only config (the agent signs in with its own OAuth) instead of the project key')
28
+ .option('--regenerate-key', "Cloud: mint a new project key for this project, rewrite the config, then revoke the old key")
16
29
  .option('--list', 'List all available agent IDs')
17
30
  .action(async (agentId, positionalPath, options) => {
18
31
  if (options.list) {
@@ -37,6 +50,8 @@ export const setupMcpCommand = new Command('setup-mcp')
37
50
  url: options.url,
38
51
  token: options.token,
39
52
  noPin: options.pin === false,
53
+ oauth: options.oauth === true,
54
+ regenerateKey: options.regenerateKey === true,
40
55
  });
41
56
  if (result.kind === 'failure') {
42
57
  spinner.error('Failed to write config');
@@ -53,6 +68,7 @@ export const setupMcpCommand = new Command('setup-mcp')
53
68
  ui.label('Server URL', result.serverUrl);
54
69
  ui.label('Server name', MCP_SERVER_NAME);
55
70
  ui.label('Routing', result.pinned ? 'pinned to this project (/p/<pin>)' : 'unpinned (--no-pin)');
71
+ ui.label('Credential', describeCredential(result));
56
72
  for (const warning of result.warnings) {
57
73
  console.log('');
58
74
  ui.warn(warning);
@@ -1 +1 @@
1
- {"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../src/commands/setup-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../src/commands/setup-mcp.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,18 @@ export declare function shouldWriteAuthHeader(input: {
33
33
  * server. Library-safe: no stdout noise, no process.exit, no throws past the
34
34
  * public boundary.
35
35
  *
36
+ * **Credential policy (project-keys contract §7, owner rulings 2026-09-23)** — mirrors cli-core's
37
+ * `setupMcp`:
38
+ * - an explicit `token` always wins (the Flow C PAT opt-in, see `shouldWriteAuthHeader`);
39
+ * - otherwise a **Cloud** config (a non-loopback hub URL) carries `Authorization: Bearer agd_pk_…` —
40
+ * a non-expiring project key strictly bound to this project's pin, reused from
41
+ * `~/.ai-game-dev/project-keys.json` or minted with the machine credential — for EVERY agent,
42
+ * through each agent's own static-header key (`headers`, Codex `http_headers`);
43
+ * - `oauth` opts out (URL-only, any previous header removed);
44
+ * - `regenerateKey` mints a fresh key, rewrites the config, then revokes the previous key;
45
+ * - no machine login / a failed mint ⇒ URL-only with a warning (the write itself never fails);
46
+ * - a local-server (loopback) config is unchanged.
47
+ *
36
48
  * Writes an HTTP server entry pointing at the resolved MCP-client URL. The
37
49
  * Godot config body shape mirrors the addon's `AgentConfigJson` / `AgentConfigPaths`
38
50
  * conventions (`.mcp.json` under `mcpServers` for Claude Code, `.vscode/mcp.json`
@@ -1,7 +1,7 @@
1
1
  import * as path from 'path';
2
- import { pinUrl } from '@baizor/gamedev-cli-core';
2
+ import { createProjectKeyResolver, godotAdapter, isCloudUrl, pinUrl, toAuthServerRoot, } from '@baizor/gamedev-cli-core';
3
3
  import { CLOUD_MCP_URL, ENV_HOST, ENV_TOKEN, MCP_HUB_PATH, } from '../utils/connection.js';
4
- import { getAgentById, getAgentIds, writeJsonAgentConfig, writeTomlAgentConfig, MCP_SERVER_NAME, } from '../utils/agents.js';
4
+ import { getAgentById, getAgentIds, httpHeadersKeyOf, writeJsonAgentConfig, writeTomlAgentConfig, MCP_SERVER_NAME, } from '../utils/agents.js';
5
5
  import { derivePinV2 } from '../utils/project-identity.js';
6
6
  import { emitProgress } from './progress.js';
7
7
  import { requireExistingPath } from './validation.js';
@@ -65,16 +65,23 @@ export function shouldWriteAuthHeader(input) {
65
65
  return true;
66
66
  return input.explicitToken;
67
67
  }
68
- /** True when `configPath` resolves inside `projectPath` (a project-scoped, likely VCS-tracked file). */
69
- function isInsideProject(projectPath, configPath) {
70
- const rel = path.relative(projectPath, configPath);
71
- return rel.length > 0 && !rel.startsWith('..') && !path.isAbsolute(rel);
72
- }
73
68
  /**
74
69
  * Write MCP configuration for the given AI agent so it can talk to a Godot-MCP
75
70
  * server. Library-safe: no stdout noise, no process.exit, no throws past the
76
71
  * public boundary.
77
72
  *
73
+ * **Credential policy (project-keys contract §7, owner rulings 2026-09-23)** — mirrors cli-core's
74
+ * `setupMcp`:
75
+ * - an explicit `token` always wins (the Flow C PAT opt-in, see `shouldWriteAuthHeader`);
76
+ * - otherwise a **Cloud** config (a non-loopback hub URL) carries `Authorization: Bearer agd_pk_…` —
77
+ * a non-expiring project key strictly bound to this project's pin, reused from
78
+ * `~/.ai-game-dev/project-keys.json` or minted with the machine credential — for EVERY agent,
79
+ * through each agent's own static-header key (`headers`, Codex `http_headers`);
80
+ * - `oauth` opts out (URL-only, any previous header removed);
81
+ * - `regenerateKey` mints a fresh key, rewrites the config, then revokes the previous key;
82
+ * - no machine login / a failed mint ⇒ URL-only with a warning (the write itself never fails);
83
+ * - a local-server (loopback) config is unchanged.
84
+ *
78
85
  * Writes an HTTP server entry pointing at the resolved MCP-client URL. The
79
86
  * Godot config body shape mirrors the addon's `AgentConfigJson` / `AgentConfigPaths`
80
87
  * conventions (`.mcp.json` under `mcpServers` for Claude Code, `.vscode/mcp.json`
@@ -126,41 +133,90 @@ export async function setupMcp(opts) {
126
133
  // — decision M8).
127
134
  const baseClientUrl = resolveMcpClientUrl(opts.url);
128
135
  const pinned = opts.noPin !== true;
129
- const serverUrl = pinned ? pinUrl(baseClientUrl, derivePinV2(projectPath)) : baseClientUrl;
136
+ const pin = derivePinV2(projectPath);
137
+ const serverUrl = pinned ? pinUrl(baseClientUrl, pin) : baseClientUrl;
130
138
  // A token supplied EXPLICITLY by the caller (`--token` / the library `token`
131
139
  // arg) is a deliberate Flow C PAT opt-in; a token that is only present in the
132
140
  // ambient `GODOT_MCP_TOKEN` env (e.g. one a prior `login` set) is NOT.
133
141
  const explicitToken = typeof opts.token === 'string' && opts.token.length > 0;
134
- const token = opts.token ?? normalizeEnv(process.env[ENV_TOKEN]) ?? '';
135
- // OAuth-aware header gate (design D11 / auth Flow A & C): OAuth-capable clients
136
- // get a credential-free, URL-only config so their native RFC 9728 OAuth runs;
137
- // a static Authorization header is written only for a non-OAuth client or an
138
- // explicit PAT opt-in. See `shouldWriteAuthHeader`.
139
- const authRequired = shouldWriteAuthHeader({
140
- hasToken: token.length > 0,
141
- explicitToken,
142
- supportsOAuth: agent.supportsOAuth,
143
- });
142
+ const cloud = isCloudUrl(baseClientUrl);
143
+ if (opts.regenerateKey && (opts.oauth || explicitToken || !cloud)) {
144
+ return {
145
+ kind: 'failure',
146
+ success: false,
147
+ warnings,
148
+ error: new Error('--regenerate-key applies only to a Cloud config without --oauth / --token ' +
149
+ '(project keys are not used for a local server).'),
150
+ };
151
+ }
152
+ // Cloud default (contract §7): resolve the project key unless the caller opted out.
153
+ let key;
154
+ if (cloud && !explicitToken && !opts.oauth) {
155
+ const resolver = opts.projectKeyResolver ?? createProjectKeyResolver(godotAdapter);
156
+ const outcome = await resolver({
157
+ issuer: toAuthServerRoot(baseClientUrl),
158
+ pin,
159
+ engine: 'godot',
160
+ label: projectPath,
161
+ machineName: opts.machineName,
162
+ regenerate: opts.regenerateKey === true,
163
+ });
164
+ if (outcome.kind === 'ok') {
165
+ key = outcome;
166
+ warnings.push(...outcome.warnings);
167
+ }
168
+ else if (opts.regenerateKey) {
169
+ return {
170
+ kind: 'failure',
171
+ success: false,
172
+ warnings,
173
+ error: new Error(`Could not regenerate the project key: ${outcome.reason}`),
174
+ };
175
+ }
176
+ else {
177
+ warnings.push(`No project key written (${outcome.reason}) — the config is URL-only and the agent must sign in with its own OAuth. ` +
178
+ 'Sign in on this machine (`godot-cli login`) and run setup-mcp again to write a project key.');
179
+ }
180
+ }
181
+ // OAuth-aware header gate (design D11 / auth Flow A & C): without a project key, OAuth-capable
182
+ // clients get a credential-free, URL-only config so their native RFC 9728 OAuth runs; a static
183
+ // Authorization header is written only for a non-OAuth client or an explicit PAT opt-in. A
184
+ // project key is written for every agent.
185
+ const token = key?.key ?? opts.token ?? normalizeEnv(process.env[ENV_TOKEN]) ?? '';
186
+ const authRequired = key !== undefined ||
187
+ shouldWriteAuthHeader({
188
+ hasToken: token.length > 0,
189
+ explicitToken,
190
+ supportsOAuth: agent.supportsOAuth,
191
+ });
144
192
  const configPath = agent.getConfigPath(projectPath);
145
193
  const props = agent.getHttpProps(serverUrl, token, authRequired);
146
- // Flow C safety: a static PAT written into a project-scoped config file is a
147
- // VCS leak risk — warn so the user prefers an env var / user-scoped config (or
148
- // relies on native OAuth by omitting the token). Gate on whether a static
149
- // header was ACTUALLY emitted into `props`, not merely on `authRequired`:
150
- // agents whose `getHttpProps` ignore the token (e.g. Codex / Antigravity)
151
- // write no `headers`, so an explicit `--token` there must NOT raise a "leaked
152
- // credential" warning about a header that was never written to the file.
153
- const wroteAuthHeader = Boolean(props.headers);
154
- if (wroteAuthHeader && isInsideProject(projectPath, configPath)) {
155
- warnings.push(`Wrote a static Authorization (PAT) header into the project-scoped config ${configPath}. ` +
156
- `Committing this file would leak the credential — prefer setting ${ENV_TOKEN} in your ` +
157
- `environment or a user-scoped config, or omit the token to use the client's native OAuth.`);
158
- }
194
+ // Gate on whether a static header was ACTUALLY emitted into `props` (an agent whose format lacks
195
+ // one writes none).
196
+ const headersKey = httpHeadersKeyOf(agent);
197
+ const wroteAuthHeader = Boolean(props[headersKey]);
198
+ const credential = !wroteAuthHeader ? 'none' : key ? 'project-key' : 'token';
199
+ // A config written without a header must not keep a stale one: in Cloud (--oauth, no login, failed
200
+ // mint) it would suppress the client's native OAuth, and re-pointing an entry at a local server must
201
+ // not carry the Cloud project key along.
202
+ const removeKeys = wroteAuthHeader ? agent.httpRemoveKeys : [...agent.httpRemoveKeys, headersKey];
159
203
  if (agent.configFormat === 'toml') {
160
- writeTomlAgentConfig(configPath, agent.bodyPath, MCP_SERVER_NAME, props, agent.httpRemoveKeys);
204
+ writeTomlAgentConfig(configPath, agent.bodyPath, MCP_SERVER_NAME, props, removeKeys);
161
205
  }
162
206
  else {
163
- writeJsonAgentConfig(configPath, agent.bodyPath, MCP_SERVER_NAME, props, agent.httpRemoveKeys);
207
+ writeJsonAgentConfig(configPath, agent.bodyPath, MCP_SERVER_NAME, props, removeKeys);
208
+ }
209
+ // Regenerate (§7): only once the new key is cached AND the config rewritten, revoke the old one.
210
+ // A revoke failure is reported, never fatal.
211
+ if (key?.revokePrevious) {
212
+ try {
213
+ const revokeWarning = await key.revokePrevious();
214
+ if (revokeWarning)
215
+ warnings.push(revokeWarning);
216
+ }
217
+ catch (err) {
218
+ warnings.push(`Revoking the previous project key failed (${err instanceof Error ? err.message : String(err)}).`);
219
+ }
164
220
  }
165
221
  emitProgress(opts.onProgress, {
166
222
  phase: 'manifest-patched',
@@ -175,6 +231,9 @@ export async function setupMcp(opts) {
175
231
  configPath,
176
232
  serverUrl,
177
233
  pinned,
234
+ credential,
235
+ projectKeyId: key?.keyId,
236
+ projectKeySource: key?.source,
178
237
  warnings,
179
238
  };
180
239
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../src/lib/setup-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../src/lib/setup-mcp.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { ProjectKeyResolver } from '@baizor/gamedev-cli-core';
1
2
  import type { ExtensionDescriptor } from '../utils/extensions-catalog.js';
2
3
  /**
3
4
  * Discriminated union describing every progress event the library can emit to
@@ -106,8 +107,29 @@ export interface SetupMcpOptions {
106
107
  * this project's engine instance. Set `true` to write the unpinned `<base>/mcp` URL instead.
107
108
  */
108
109
  noPin?: boolean;
110
+ /**
111
+ * `--oauth`: write a URL-only Cloud config (the client authorizes natively, RFC 9728) instead of the
112
+ * default project-key header, removing any previously written `Authorization` header.
113
+ */
114
+ oauth?: boolean;
115
+ /**
116
+ * `--regenerate-key`: mint a fresh project key for this project (overwriting the cached one),
117
+ * rewrite the config, then revoke the previous key. Cloud http configs only; fails with `oauth` /
118
+ * an explicit `token` / a local-server URL.
119
+ */
120
+ regenerateKey?: boolean;
121
+ /** Display machine name recorded on a minted project key; defaults to `os.hostname()`. */
122
+ machineName?: string;
123
+ /**
124
+ * Resolves the Cloud project key. Defaults to cli-core's `createProjectKeyResolver(godotAdapter)`
125
+ * over the machine credential store; injectable for tests and for callers that own a credential
126
+ * provider already.
127
+ */
128
+ projectKeyResolver?: ProjectKeyResolver;
109
129
  onProgress?: ProgressCallback;
110
130
  }
131
+ /** The credential a written config carries: an explicit PAT, a Cloud project key, or none (URL-only). */
132
+ export type SetupMcpCredential = 'token' | 'project-key' | 'none';
111
133
  export interface SetupMcpSuccess {
112
134
  kind: 'success';
113
135
  success: true;
@@ -117,6 +139,12 @@ export interface SetupMcpSuccess {
117
139
  serverUrl: string;
118
140
  /** True when the URL carries the `/p/<pin-v2>` routing segment (the default; false with `--no-pin`). */
119
141
  pinned: boolean;
142
+ /** Which credential the written config carries. */
143
+ credential: SetupMcpCredential;
144
+ /** The server-side id of the project key written (credential `project-key` only). */
145
+ projectKeyId?: string;
146
+ /** Whether the project key was reused from the local cache or freshly minted. */
147
+ projectKeySource?: 'reused' | 'minted';
120
148
  warnings: string[];
121
149
  }
122
150
  export interface SetupMcpFailure {
package/dist/lib.d.ts CHANGED
@@ -11,4 +11,4 @@ export { enrollPlugin } from './lib/enroll.js';
11
11
  export { configureAgentViaServer } from './lib/configure-agent.js';
12
12
  export { EXTENSIONS_CATALOG, findExtension, hasVersion } from './utils/extensions-catalog.js';
13
13
  export type { ExtensionDescriptor, ExtensionTool } from './utils/extensions-catalog.js';
14
- export type { ProgressEvent, ProgressCallback, ResultKind, OpenProjectOptions, OpenProjectResult, OpenProjectSuccess, OpenProjectFailure, OpenProjectAuthOption, OpenProjectConnectionMode, BuildProjectOptions, BuildProjectResult, BuildProjectSuccess, BuildProjectFailure, BuildSkipReason, CreateProjectOptions, CreateProjectResult, CreateProjectSuccess, CreateProjectFailure, RunToolOptions, RunToolResult, RunToolSuccess, RunToolFailure, RunToolFailureReason, RunSystemToolOptions, RunSystemToolResult, RunSystemToolSuccess, RunSystemToolFailure, SetupMcpOptions, SetupMcpResult, SetupMcpSuccess, SetupMcpFailure, SetupSkillsOptions, SetupSkillsResult, SetupSkillsSuccess, SetupSkillsFailure, InstallPluginOptions, InstallPluginResult, InstallPluginSuccess, InstallPluginFailure, AddonMaterializeOutcome, CsprojPatchOutcome, RemovePluginOptions, RemovePluginResult, RemovePluginSuccess, RemovePluginFailure, InstallExtensionOptions, InstallExtensionResult, InstallExtensionSuccess, InstallExtensionFailure, ExtensionInstallOutcome, InstallServerOptions, InstallServerResult, InstallServerSuccess, InstallServerFailure, EnrollPluginOptions, EnrollPluginResult, EnrollPluginSuccess, EnrollPluginFailure, ConfigureAgentOptions, ConfigureAgentResult, ConfigureAgentSuccess, ConfigureAgentFailure, } from './lib/types.js';
14
+ export type { ProgressEvent, ProgressCallback, ResultKind, OpenProjectOptions, OpenProjectResult, OpenProjectSuccess, OpenProjectFailure, OpenProjectAuthOption, OpenProjectConnectionMode, BuildProjectOptions, BuildProjectResult, BuildProjectSuccess, BuildProjectFailure, BuildSkipReason, CreateProjectOptions, CreateProjectResult, CreateProjectSuccess, CreateProjectFailure, RunToolOptions, RunToolResult, RunToolSuccess, RunToolFailure, RunToolFailureReason, RunSystemToolOptions, RunSystemToolResult, RunSystemToolSuccess, RunSystemToolFailure, SetupMcpOptions, SetupMcpResult, SetupMcpCredential, SetupMcpSuccess, SetupMcpFailure, SetupSkillsOptions, SetupSkillsResult, SetupSkillsSuccess, SetupSkillsFailure, InstallPluginOptions, InstallPluginResult, InstallPluginSuccess, InstallPluginFailure, AddonMaterializeOutcome, CsprojPatchOutcome, RemovePluginOptions, RemovePluginResult, RemovePluginSuccess, RemovePluginFailure, InstallExtensionOptions, InstallExtensionResult, InstallExtensionSuccess, InstallExtensionFailure, ExtensionInstallOutcome, InstallServerOptions, InstallServerResult, InstallServerSuccess, InstallServerFailure, EnrollPluginOptions, EnrollPluginResult, EnrollPluginSuccess, EnrollPluginFailure, ConfigureAgentOptions, ConfigureAgentResult, ConfigureAgentSuccess, ConfigureAgentFailure, } from './lib/types.js';
@@ -20,7 +20,7 @@
20
20
  */
21
21
  export const ADDON_PACKAGE_REFERENCES = [
22
22
  { id: 'com.IvanMurzak.ReflectorNet', version: '5.4.1' },
23
- { id: 'com.IvanMurzak.McpPlugin', version: '8.4.0' },
23
+ { id: 'com.IvanMurzak.McpPlugin', version: '8.5.0' },
24
24
  ];
25
25
  /**
26
26
  * The exact `<EmbeddedResource>`s the consumer's project `.csproj` needs, single-sourced
@@ -48,7 +48,14 @@ export interface AgentDefinition {
48
48
  getHttpProps(url: string, token: string, authRequired: boolean): Record<string, unknown>;
49
49
  /** Keys to delete from a pre-existing entry before merging new props. */
50
50
  httpRemoveKeys: string[];
51
+ /**
52
+ * The entry key holding static http headers, when it is not `headers` (Codex: `http_headers`). Used to
53
+ * detect a written `Authorization` header and to clear a stale one from a URL-only Cloud config.
54
+ */
55
+ httpHeadersKey?: string;
51
56
  }
57
+ /** The entry key an agent's static http headers live under (`headers` unless the agent overrides it). */
58
+ export declare function httpHeadersKeyOf(agent: AgentDefinition): string;
52
59
  declare const MCP_SERVER_NAME = "ai-game-developer";
53
60
  /**
54
61
  * Note on the Unity-only `unity-ai` agent: the Unity CLI registry includes a
@@ -67,7 +74,7 @@ export declare function writeJsonAgentConfig(configPath: string, bodyPath: strin
67
74
  * headers are preserved; the target section is replaced wholesale (so a re-run
68
75
  * is idempotent and stale keys are dropped). Keys in `removeKeys` are never
69
76
  * written. This is a deliberately minimal TOML emitter — Codex's config schema
70
- * here is flat (string/number/bool/array scalars only), so a full TOML library
77
+ * here is flat (string/number/bool/array scalars plus the `http_headers` inline table), so a full TOML library
71
78
  * dependency is unwarranted.
72
79
  */
73
80
  export declare function writeTomlAgentConfig(configPath: string, bodyPath: string, serverName: string, props: Record<string, unknown>, removeKeys: string[]): void;
@@ -2,6 +2,10 @@ import chalk from 'chalk';
2
2
  import * as fs from 'fs';
3
3
  import * as os from 'os';
4
4
  import * as path from 'path';
5
+ /** The entry key an agent's static http headers live under (`headers` unless the agent overrides it). */
6
+ export function httpHeadersKeyOf(agent) {
7
+ return agent.httpHeadersKey ?? 'headers';
8
+ }
5
9
  // ---------------------------------------------------------------------------
6
10
  // Platform helpers
7
11
  // ---------------------------------------------------------------------------
@@ -33,6 +37,11 @@ function authHeaders(token, authRequired) {
33
37
  }
34
38
  return undefined;
35
39
  }
40
+ /** `{ [key]: <Bearer header> }` when {@link authHeaders} emits one, else `{}` — for spreading into props. */
41
+ function headersProp(key, token, authRequired) {
42
+ const headers = authHeaders(token, authRequired);
43
+ return headers ? { [key]: headers } : {};
44
+ }
36
45
  // ---------------------------------------------------------------------------
37
46
  // Agent Registry
38
47
  // ---------------------------------------------------------------------------
@@ -57,7 +66,7 @@ export const agentRegistry = [
57
66
  getHttpProps: (url, token, authRequired) => ({
58
67
  type: 'http',
59
68
  url,
60
- ...(authHeaders(token, authRequired) ? { headers: authHeaders(token, authRequired) } : {}),
69
+ ...headersProp('headers', token, authRequired),
61
70
  }),
62
71
  httpRemoveKeys: ['command', 'args'],
63
72
  },
@@ -82,7 +91,7 @@ export const agentRegistry = [
82
91
  getHttpProps: (url, token, authRequired) => ({
83
92
  type: 'http',
84
93
  url,
85
- ...(authHeaders(token, authRequired) ? { headers: authHeaders(token, authRequired) } : {}),
94
+ ...headersProp('headers', token, authRequired),
86
95
  }),
87
96
  httpRemoveKeys: ['command', 'args'],
88
97
  },
@@ -99,7 +108,7 @@ export const agentRegistry = [
99
108
  getHttpProps: (url, token, authRequired) => ({
100
109
  type: 'http',
101
110
  url,
102
- ...(authHeaders(token, authRequired) ? { headers: authHeaders(token, authRequired) } : {}),
111
+ ...headersProp('headers', token, authRequired),
103
112
  }),
104
113
  httpRemoveKeys: ['command', 'args'],
105
114
  },
@@ -116,7 +125,7 @@ export const agentRegistry = [
116
125
  getHttpProps: (url, token, authRequired) => ({
117
126
  type: 'http',
118
127
  url,
119
- ...(authHeaders(token, authRequired) ? { headers: authHeaders(token, authRequired) } : {}),
128
+ ...headersProp('headers', token, authRequired),
120
129
  }),
121
130
  httpRemoveKeys: ['command', 'args'],
122
131
  },
@@ -133,7 +142,7 @@ export const agentRegistry = [
133
142
  getHttpProps: (url, token, authRequired) => ({
134
143
  type: 'http',
135
144
  url,
136
- ...(authHeaders(token, authRequired) ? { headers: authHeaders(token, authRequired) } : {}),
145
+ ...headersProp('headers', token, authRequired),
137
146
  }),
138
147
  httpRemoveKeys: ['command', 'args'],
139
148
  },
@@ -151,7 +160,7 @@ export const agentRegistry = [
151
160
  enabled: true,
152
161
  type: 'http',
153
162
  url,
154
- ...(authHeaders(token, authRequired) ? { headers: authHeaders(token, authRequired) } : {}),
163
+ ...headersProp('headers', token, authRequired),
155
164
  }),
156
165
  httpRemoveKeys: ['disabled', 'command', 'args'],
157
166
  },
@@ -169,7 +178,7 @@ export const agentRegistry = [
169
178
  type: 'http',
170
179
  url,
171
180
  tools: ['*'],
172
- ...(authHeaders(token, authRequired) ? { headers: authHeaders(token, authRequired) } : {}),
181
+ ...headersProp('headers', token, authRequired),
173
182
  }),
174
183
  httpRemoveKeys: ['command', 'args'],
175
184
  },
@@ -186,7 +195,7 @@ export const agentRegistry = [
186
195
  getHttpProps: (url, token, authRequired) => ({
187
196
  type: 'http',
188
197
  url,
189
- ...(authHeaders(token, authRequired) ? { headers: authHeaders(token, authRequired) } : {}),
198
+ ...headersProp('headers', token, authRequired),
190
199
  }),
191
200
  httpRemoveKeys: ['command', 'args'],
192
201
  },
@@ -200,10 +209,11 @@ export const agentRegistry = [
200
209
  configFormat: 'json',
201
210
  bodyPath: 'mcpServers',
202
211
  getConfigPath: () => path.join(home(), '.gemini', 'config', 'mcp_config.json'),
203
- // Antigravity uses a `serverUrl` key (not `url`) and a `disabled` flag.
204
- getHttpProps: (url, _token, _authRequired) => ({
212
+ // Antigravity uses a `serverUrl` key (not `url`), a `disabled` flag, and static `headers`.
213
+ getHttpProps: (url, token, authRequired) => ({
205
214
  disabled: false,
206
215
  serverUrl: url,
216
+ ...headersProp('headers', token, authRequired),
207
217
  }),
208
218
  httpRemoveKeys: ['command', 'args', 'url', 'type'],
209
219
  },
@@ -228,7 +238,7 @@ export const agentRegistry = [
228
238
  getHttpProps: (url, token, authRequired) => ({
229
239
  type: 'streamableHttp',
230
240
  url,
231
- ...(authHeaders(token, authRequired) ? { headers: authHeaders(token, authRequired) } : {}),
241
+ ...headersProp('headers', token, authRequired),
232
242
  }),
233
243
  httpRemoveKeys: ['command', 'args'],
234
244
  },
@@ -246,7 +256,7 @@ export const agentRegistry = [
246
256
  type: 'remote',
247
257
  enabled: true,
248
258
  url,
249
- ...(authHeaders(token, authRequired) ? { headers: authHeaders(token, authRequired) } : {}),
259
+ ...headersProp('headers', token, authRequired),
250
260
  }),
251
261
  httpRemoveKeys: ['command', 'args'],
252
262
  },
@@ -260,13 +270,17 @@ export const agentRegistry = [
260
270
  configFormat: 'toml',
261
271
  bodyPath: 'mcp_servers',
262
272
  getConfigPath: (p) => path.join(p, '.codex', 'config.toml'),
263
- getHttpProps: (url, _token, _authRequired) => ({
273
+ // Codex takes static http headers from the `http_headers` inline table (project-keys contract §7);
274
+ // the section is rewritten wholesale, so a legacy `bearer_token_env_var` never coexists with it.
275
+ getHttpProps: (url, token, authRequired) => ({
264
276
  enabled: true,
265
277
  url,
266
278
  tool_timeout_sec: 300,
267
279
  startup_timeout_sec: 30,
280
+ ...headersProp('http_headers', token, authRequired),
268
281
  }),
269
282
  httpRemoveKeys: ['command', 'args', 'type'],
283
+ httpHeadersKey: 'http_headers',
270
284
  },
271
285
  // ── Kilo Code ───────────────────────────────────────────────
272
286
  {
@@ -282,7 +296,7 @@ export const agentRegistry = [
282
296
  type: 'streamable-http',
283
297
  disabled: false,
284
298
  url,
285
- ...(authHeaders(token, authRequired) ? { headers: authHeaders(token, authRequired) } : {}),
299
+ ...headersProp('headers', token, authRequired),
286
300
  }),
287
301
  httpRemoveKeys: ['command', 'args'],
288
302
  },
@@ -299,7 +313,7 @@ export const agentRegistry = [
299
313
  getHttpProps: (url, token, authRequired) => ({
300
314
  type: 'http',
301
315
  url,
302
- ...(authHeaders(token, authRequired) ? { headers: authHeaders(token, authRequired) } : {}),
316
+ ...headersProp('headers', token, authRequired),
303
317
  }),
304
318
  httpRemoveKeys: ['command', 'args'],
305
319
  },
@@ -390,7 +404,7 @@ export function writeJsonAgentConfig(configPath, bodyPath, serverName, props, re
390
404
  * headers are preserved; the target section is replaced wholesale (so a re-run
391
405
  * is idempotent and stale keys are dropped). Keys in `removeKeys` are never
392
406
  * written. This is a deliberately minimal TOML emitter — Codex's config schema
393
- * here is flat (string/number/bool/array scalars only), so a full TOML library
407
+ * here is flat (string/number/bool/array scalars plus the `http_headers` inline table), so a full TOML library
394
408
  * dependency is unwarranted.
395
409
  */
396
410
  export function writeTomlAgentConfig(configPath, bodyPath, serverName, props, removeKeys) {
@@ -404,6 +418,11 @@ export function writeTomlAgentConfig(configPath, bodyPath, serverName, props, re
404
418
  lines = fs.readFileSync(configPath, 'utf-8').split('\n');
405
419
  }
406
420
  const sectionHeader = `[${bodyPath}.${serverName}]`;
421
+ // The entry is owned wholesale, so drop its sub-tables too (e.g. a hand-written
422
+ // `[mcp_servers.<name>.http_headers]`): leaving one beside the inline
423
+ // `http_headers = {…}` is a duplicate key (invalid TOML), and on a URL-only
424
+ // write it would keep a stale Authorization header.
425
+ lines = removeTomlSubTables(lines, `[${bodyPath}.${serverName}.`);
407
426
  // Find existing section boundaries
408
427
  const sectionIdx = lines.findIndex((l) => l.trim() === sectionHeader);
409
428
  // Build TOML key-value pairs for the section
@@ -433,6 +452,23 @@ export function writeTomlAgentConfig(configPath, bodyPath, serverName, props, re
433
452
  }
434
453
  fs.writeFileSync(configPath, lines.join('\n') + '\n');
435
454
  }
455
+ /** Remove every `[<prefix>…]` table (header line through the line before the next header). */
456
+ function removeTomlSubTables(lines, headerPrefix) {
457
+ const out = [];
458
+ let skipping = false;
459
+ for (const line of lines) {
460
+ const trimmed = line.trim();
461
+ if (trimmed.startsWith('['))
462
+ skipping = trimmed.startsWith(headerPrefix);
463
+ if (!skipping)
464
+ out.push(line);
465
+ }
466
+ return out;
467
+ }
468
+ /** A TOML key: bare when it is a valid bare key, else a quoted string. */
469
+ function tomlKey(k) {
470
+ return /^[A-Za-z0-9_-]+$/.test(k) ? k : tomlValue(k);
471
+ }
436
472
  function tomlValue(v) {
437
473
  if (typeof v === 'string')
438
474
  return `"${v.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
@@ -451,9 +487,14 @@ function tomlValue(v) {
451
487
  if (Array.isArray(v)) {
452
488
  return `[${v.map(tomlValue).join(', ')}]`;
453
489
  }
454
- // null/undefined/object have no valid TOML scalar form here; emit a quoted
490
+ if (v && typeof v === 'object') {
491
+ // An inline table of string values (Codex `http_headers`).
492
+ const pairs = Object.entries(v).map(([k, val]) => `${tomlKey(k)} = ${tomlValue(val)}`);
493
+ return `{ ${pairs.join(', ')} }`;
494
+ }
495
+ // null/undefined have no valid TOML scalar form here; emit a quoted
455
496
  // string so we never produce an invalid bare token (the Codex schema only
456
- // feeds string/number/bool/array scalars, so this is a defensive fallback).
497
+ // feeds string/number/bool/array scalars and string tables, so this is a defensive fallback).
457
498
  return `"${String(v).replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
458
499
  }
459
500
  export { MCP_SERVER_NAME };
@@ -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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"}
@@ -5,7 +5,7 @@
5
5
  * download entirely (offline / CI). Bumping the addon's server pin requires
6
6
  * bumping this in the same PR or the parity test goes red.
7
7
  */
8
- export declare const DEFAULT_SERVER_VERSION = "9.2.7";
8
+ export declare const DEFAULT_SERVER_VERSION = "9.2.8";
9
9
  /** GitHub-release host the server zip + manifest are downloaded from. NOTHING else is trusted. */
10
10
  export declare const TRUSTED_DOWNLOAD_HOST = "github.com";
11
11
  /** The `owner/repo` the shared server releases live under. */
@@ -18,7 +18,7 @@ import { createHash } from 'crypto';
18
18
  * download entirely (offline / CI). Bumping the addon's server pin requires
19
19
  * bumping this in the same PR or the parity test goes red.
20
20
  */
21
- export const DEFAULT_SERVER_VERSION = '9.2.7';
21
+ export const DEFAULT_SERVER_VERSION = '9.2.8';
22
22
  /** GitHub-release host the server zip + manifest are downloaded from. NOTHING else is trusted. */
23
23
  export const TRUSTED_DOWNLOAD_HOST = 'github.com';
24
24
  /** The `owner/repo` the shared server releases live under. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "godot-cli",
3
- "version": "0.23.0",
3
+ "version": "0.24.0",
4
4
  "description": "Cross-platform CLI tool for Godot-MCP (Skills & MCP). Resolves and launches the Godot editor with MCP connection env vars, runs MCP/system tools over HTTP, probes server health, configures AI agents (Claude Code, Cursor, VS Code, …), and enables/disables the godot_mcp addon. Works with Claude Code, Cursor, Copilot, and any MCP client.",
5
5
  "type": "module",
6
6
  "main": "dist/lib.js",
@@ -62,7 +62,7 @@
62
62
  "node": "^20.19.0 || >=22.12.0"
63
63
  },
64
64
  "dependencies": {
65
- "@baizor/gamedev-cli-core": "^0.4.2",
65
+ "@baizor/gamedev-cli-core": "^0.5.0",
66
66
  "chalk": "^5.6.2",
67
67
  "commander": "^13.1.0",
68
68
  "yocto-spinner": "^1.1.0"