@arizeai/phoenix-cli 1.9.1 → 1.10.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 +28 -0
- package/build/commands/formatSetup.d.ts +6 -0
- package/build/commands/formatSetup.d.ts.map +1 -1
- package/build/commands/formatSetup.js +22 -0
- package/build/commands/formatSetup.js.map +1 -1
- package/build/commands/setup.d.ts.map +1 -1
- package/build/commands/setup.js +10 -38
- package/build/commands/setup.js.map +1 -1
- package/build/commands/setupErrors.d.ts +10 -0
- package/build/commands/setupErrors.d.ts.map +1 -0
- package/build/commands/setupErrors.js +54 -0
- package/build/commands/setupErrors.js.map +1 -0
- package/build/commands/setupMcp.d.ts +15 -0
- package/build/commands/setupMcp.d.ts.map +1 -0
- package/build/commands/setupMcp.js +141 -0
- package/build/commands/setupMcp.js.map +1 -0
- package/build/setup/agents/registry.d.ts +4 -0
- package/build/setup/agents/registry.d.ts.map +1 -1
- package/build/setup/agents/registry.js +7 -3
- package/build/setup/agents/registry.js.map +1 -1
- package/build/setup/mcp/agents.d.ts +91 -0
- package/build/setup/mcp/agents.d.ts.map +1 -0
- package/build/setup/mcp/agents.js +265 -0
- package/build/setup/mcp/agents.js.map +1 -0
- package/build/setup/mcp/install.d.ts +34 -0
- package/build/setup/mcp/install.d.ts.map +1 -0
- package/build/setup/mcp/install.js +76 -0
- package/build/setup/mcp/install.js.map +1 -0
- package/build/setup/mcp/runSetupMcp.d.ts +68 -0
- package/build/setup/mcp/runSetupMcp.d.ts.map +1 -0
- package/build/setup/mcp/runSetupMcp.js +235 -0
- package/build/setup/mcp/runSetupMcp.js.map +1 -0
- package/build/setup/steps/offerDocsMcp.d.ts.map +1 -1
- package/build/setup/steps/offerDocsMcp.js +3 -2
- package/build/setup/steps/offerDocsMcp.js.map +1 -1
- package/build/setup/util/mcpConfig.d.ts +12 -5
- package/build/setup/util/mcpConfig.d.ts.map +1 -1
- package/build/setup/util/mcpConfig.js +6 -4
- package/build/setup/util/mcpConfig.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `px setup mcp` — register the Phoenix remote MCP server (`<base-url>/mcp`)
|
|
3
|
+
* with a coding agent's config. This module receives the already-resolved
|
|
4
|
+
* endpoint from the command layer.
|
|
5
|
+
*
|
|
6
|
+
* Auth defaults to OAuth (URL-only config; the agent handles browser login on
|
|
7
|
+
* first use). `--header` adds an API-key bearer fallback for headless clients,
|
|
8
|
+
* applied per agent (see {@link ./agents}).
|
|
9
|
+
*
|
|
10
|
+
* Without `--agent` the command prompts for scope then agent, after confirming
|
|
11
|
+
* the endpoint. A headless run requires `--agent` and defaults to global scope.
|
|
12
|
+
*/
|
|
13
|
+
import { ENDPOINT_REQUIREMENT, isEndpointUrl, normalizeEndpoint, } from "../../validation/endpoint.js";
|
|
14
|
+
import { detectAgents } from "../agents/registry.js";
|
|
15
|
+
import { HeadlessInputError, SetupFatalError } from "../errors.js";
|
|
16
|
+
import { getMcpAgent, MCP_AGENTS, MCP_AGENT_IDS, PHOENIX_MCP_SERVER_NAME, } from "./agents.js";
|
|
17
|
+
import { runMcpInstall } from "./install.js";
|
|
18
|
+
export const COPY = {
|
|
19
|
+
endpointPrompt: "Phoenix endpoint",
|
|
20
|
+
endpointInvalid: "Enter a full http:// or https:// URL (e.g. http://localhost:6006).",
|
|
21
|
+
endpointUnusable: (value) => `The resolved endpoint "${value}" ${ENDPOINT_REQUIREMENT}. ` +
|
|
22
|
+
"Fix PHOENIX_HOST or the active profile, or pass --endpoint <url>.",
|
|
23
|
+
usingEndpoint: (url) => `Registering the Phoenix MCP server at ${url}`,
|
|
24
|
+
scopePrompt: "Where should the MCP server be configured?",
|
|
25
|
+
scopeGlobalLabel: "Global",
|
|
26
|
+
scopeGlobalHint: "available across all your projects",
|
|
27
|
+
scopeLocalLabel: "This repo",
|
|
28
|
+
scopeLocalHint: "written into this project's config, checked in with it",
|
|
29
|
+
agentPrompt: "Which coding agent?",
|
|
30
|
+
detectedHint: "detected",
|
|
31
|
+
headlessNeedsAgent: `--agent is required with --no-input. Pass one of: ${MCP_AGENT_IDS.join(", ")}.`,
|
|
32
|
+
localNeedsRepo: "--local must run inside a git repository. Re-run from your project, or use --global.",
|
|
33
|
+
globalOnly: (agentLabel) => `${agentLabel} reads only a global config, so it is always configured globally.`,
|
|
34
|
+
globalOnlyHeadless: (agentLabel) => `${agentLabel} has no repo-scoped config. Drop --local (${agentLabel} is always global).`,
|
|
35
|
+
homeUnknown: (agentLabel) => `Could not find your home directory (HOME/USERPROFILE is unset), ` +
|
|
36
|
+
`where the global ${agentLabel} config lives. Set HOME, or use --local.`,
|
|
37
|
+
scopeUnsupported: (agentLabel, scope) => `${agentLabel} does not support ${scope} MCP configuration.`,
|
|
38
|
+
headersUnsupported: (agentLabel, dropped) => `${agentLabel} can't store this header (${dropped
|
|
39
|
+
.map((header) => header.name)
|
|
40
|
+
.join(", ")}) — it only accepts a bearer token via env var. Pass ` +
|
|
41
|
+
`--header "Authorization: Bearer \${VAR}", or omit --header to use OAuth.`,
|
|
42
|
+
configuredCli: (agentLabel) => `Registered the Phoenix MCP server with ${agentLabel}.`,
|
|
43
|
+
configuredFile: (agentLabel, file) => `Wrote the Phoenix MCP server to ${file} for ${agentLabel}.`,
|
|
44
|
+
installFailed: (agentLabel, reason) => `Could not configure ${agentLabel}: ${reason}`,
|
|
45
|
+
nextStepOAuth: (agentLabel) => `Open ${agentLabel} and run /mcp (or use the ${PHOENIX_MCP_SERVER_NAME} server) — it will open a browser to log in to Phoenix on first use.`,
|
|
46
|
+
nextStepHeader: "The server is configured with your bearer header — no browser login needed.",
|
|
47
|
+
};
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
// Entry
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
export async function runSetupMcp(deps, inputs) {
|
|
52
|
+
const endpoint = await resolveEndpoint(deps, inputs);
|
|
53
|
+
const url = `${endpoint}/mcp`;
|
|
54
|
+
const scope = await resolveScope(deps, inputs);
|
|
55
|
+
const agent = await resolveAgent(deps, inputs);
|
|
56
|
+
const effectiveScope = await reconcileScope(deps, agent, scope, inputs);
|
|
57
|
+
// A local install must land at the repo root — `px` may be running in a
|
|
58
|
+
// subdirectory, where a repo-scoped config would never be picked up.
|
|
59
|
+
const installCwd = effectiveScope === "local" ? await resolveRepoRoot(deps) : deps.context.cwd;
|
|
60
|
+
const action = agent.install[effectiveScope];
|
|
61
|
+
if (!action) {
|
|
62
|
+
// reconcileScope already handles codex; this covers any future scope gap.
|
|
63
|
+
throw new SetupFatalError(COPY.scopeUnsupported(agent.label, effectiveScope));
|
|
64
|
+
}
|
|
65
|
+
// Refuse headers the agent can't actually persist rather than writing a
|
|
66
|
+
// config that reports `auth: "header"` but carries no credential.
|
|
67
|
+
if (action.kind === "cli" && action.droppedHeaders) {
|
|
68
|
+
const dropped = action.droppedHeaders(inputs.headers);
|
|
69
|
+
if (dropped.length > 0) {
|
|
70
|
+
throw new HeadlessInputError(COPY.headersUnsupported(agent.label, dropped));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const installContext = {
|
|
74
|
+
home: resolveHome(deps),
|
|
75
|
+
cwd: installCwd,
|
|
76
|
+
};
|
|
77
|
+
// A global file install writes under the home directory; without one the
|
|
78
|
+
// path would be relative and the failure message an internal invariant.
|
|
79
|
+
if (action.kind === "file" &&
|
|
80
|
+
effectiveScope === "global" &&
|
|
81
|
+
!installContext.home) {
|
|
82
|
+
throw new SetupFatalError(COPY.homeUnknown(agent.label));
|
|
83
|
+
}
|
|
84
|
+
const result = await runMcpInstall(deps, {
|
|
85
|
+
action,
|
|
86
|
+
url,
|
|
87
|
+
headers: inputs.headers,
|
|
88
|
+
installContext,
|
|
89
|
+
});
|
|
90
|
+
if (result.outcome === "failed") {
|
|
91
|
+
throw new SetupFatalError(COPY.installFailed(agent.label, result.reason ?? "unknown error"));
|
|
92
|
+
}
|
|
93
|
+
const auth = inputs.headers.length > 0 ? "header" : "oauth";
|
|
94
|
+
if (!inputs.headless) {
|
|
95
|
+
deps.prompter.line(result.file
|
|
96
|
+
? COPY.configuredFile(agent.label, result.file)
|
|
97
|
+
: COPY.configuredCli(agent.label));
|
|
98
|
+
deps.prompter.line(auth === "oauth" ? COPY.nextStepOAuth(agent.label) : COPY.nextStepHeader);
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
endpoint,
|
|
102
|
+
url,
|
|
103
|
+
serverName: PHOENIX_MCP_SERVER_NAME,
|
|
104
|
+
agent: agent.id,
|
|
105
|
+
scope: effectiveScope,
|
|
106
|
+
auth,
|
|
107
|
+
...(result.file ? { file: result.file } : {}),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
// Endpoint
|
|
112
|
+
// ---------------------------------------------------------------------------
|
|
113
|
+
async function resolveEndpoint(deps, inputs) {
|
|
114
|
+
// Headless, or endpoint pinned by flag: take the resolved value as-is.
|
|
115
|
+
if (inputs.headless || inputs.endpointExplicit) {
|
|
116
|
+
// The value may come from PHOENIX_HOST or a profile, which nothing has
|
|
117
|
+
// validated yet — refuse it as bad input rather than let
|
|
118
|
+
// `normalizeEndpoint`'s TypeError get misreported as a network error.
|
|
119
|
+
if (!isEndpointUrl(inputs.endpoint)) {
|
|
120
|
+
throw new HeadlessInputError(COPY.endpointUnusable(inputs.endpoint));
|
|
121
|
+
}
|
|
122
|
+
return normalizeEndpoint(inputs.endpoint);
|
|
123
|
+
}
|
|
124
|
+
// Interactive: show the inferred endpoint as the default and let the user
|
|
125
|
+
// accept it (Enter) or point somewhere else.
|
|
126
|
+
const entered = await deps.prompter.textInput({
|
|
127
|
+
message: COPY.endpointPrompt,
|
|
128
|
+
defaultValue: inputs.endpoint,
|
|
129
|
+
validate: (value) => isEndpointUrl(value) ? undefined : COPY.endpointInvalid,
|
|
130
|
+
});
|
|
131
|
+
const endpoint = normalizeEndpoint(entered);
|
|
132
|
+
deps.prompter.line(COPY.usingEndpoint(`${endpoint}/mcp`));
|
|
133
|
+
return endpoint;
|
|
134
|
+
}
|
|
135
|
+
// ---------------------------------------------------------------------------
|
|
136
|
+
// Scope
|
|
137
|
+
// ---------------------------------------------------------------------------
|
|
138
|
+
async function resolveScope(deps, inputs) {
|
|
139
|
+
if (inputs.scope) {
|
|
140
|
+
return inputs.scope;
|
|
141
|
+
}
|
|
142
|
+
// Headless defaults to global — the safe, agent-agnostic choice, and the one
|
|
143
|
+
// scope every agent supports.
|
|
144
|
+
if (inputs.headless) {
|
|
145
|
+
return "global";
|
|
146
|
+
}
|
|
147
|
+
return deps.prompter.select({
|
|
148
|
+
message: COPY.scopePrompt,
|
|
149
|
+
options: [
|
|
150
|
+
{
|
|
151
|
+
value: "global",
|
|
152
|
+
label: COPY.scopeGlobalLabel,
|
|
153
|
+
hint: COPY.scopeGlobalHint,
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
value: "local",
|
|
157
|
+
label: COPY.scopeLocalLabel,
|
|
158
|
+
hint: COPY.scopeLocalHint,
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Codex has no repo-scoped config. When `--local` names it, a headless run
|
|
165
|
+
* errors on the unsupported scope; an interactive run warns and falls back to
|
|
166
|
+
* global.
|
|
167
|
+
*/
|
|
168
|
+
async function reconcileScope(deps, agent, scope, inputs) {
|
|
169
|
+
if (agent.install[scope]) {
|
|
170
|
+
return scope;
|
|
171
|
+
}
|
|
172
|
+
if (scope === "local" && agent.install.global) {
|
|
173
|
+
if (inputs.headless) {
|
|
174
|
+
throw new HeadlessInputError(COPY.globalOnlyHeadless(agent.label));
|
|
175
|
+
}
|
|
176
|
+
deps.prompter.line(COPY.globalOnly(agent.label));
|
|
177
|
+
return "global";
|
|
178
|
+
}
|
|
179
|
+
throw new SetupFatalError(COPY.scopeUnsupported(agent.label, scope));
|
|
180
|
+
}
|
|
181
|
+
/** The repo root a local install writes into; errors outside a git repo. */
|
|
182
|
+
async function resolveRepoRoot(deps) {
|
|
183
|
+
const check = await deps.processes.exec({
|
|
184
|
+
command: "git",
|
|
185
|
+
args: ["rev-parse", "--show-toplevel"],
|
|
186
|
+
cwd: deps.context.cwd,
|
|
187
|
+
});
|
|
188
|
+
const root = check.stdout.trim();
|
|
189
|
+
if (check.exitCode !== 0 || !root) {
|
|
190
|
+
// Same class either mode: it's a bad invocation, not a runtime failure.
|
|
191
|
+
throw new HeadlessInputError(COPY.localNeedsRepo);
|
|
192
|
+
}
|
|
193
|
+
return root;
|
|
194
|
+
}
|
|
195
|
+
// ---------------------------------------------------------------------------
|
|
196
|
+
// Agent
|
|
197
|
+
// ---------------------------------------------------------------------------
|
|
198
|
+
async function resolveAgent(deps, inputs) {
|
|
199
|
+
if (inputs.agent) {
|
|
200
|
+
const agent = getMcpAgent(inputs.agent);
|
|
201
|
+
if (!agent) {
|
|
202
|
+
// Unreachable: the command layer validates --agent against MCP_AGENT_IDS.
|
|
203
|
+
throw new HeadlessInputError(COPY.headlessNeedsAgent);
|
|
204
|
+
}
|
|
205
|
+
return agent;
|
|
206
|
+
}
|
|
207
|
+
if (inputs.headless) {
|
|
208
|
+
throw new HeadlessInputError(COPY.headlessNeedsAgent);
|
|
209
|
+
}
|
|
210
|
+
const detected = await detectAgents(deps, MCP_AGENTS);
|
|
211
|
+
const detectedIds = new Set(detected.map((agent) => agent.id));
|
|
212
|
+
// Detected agents first (with a hint), then the rest — so a user can still
|
|
213
|
+
// configure an agent whose binary isn't on PATH (e.g. the VS Code app without
|
|
214
|
+
// the `code` shell command).
|
|
215
|
+
const ordered = [
|
|
216
|
+
...MCP_AGENTS.filter((agent) => detectedIds.has(agent.id)),
|
|
217
|
+
...MCP_AGENTS.filter((agent) => !detectedIds.has(agent.id)),
|
|
218
|
+
];
|
|
219
|
+
const chosen = await deps.prompter.select({
|
|
220
|
+
message: COPY.agentPrompt,
|
|
221
|
+
options: ordered.map((agent) => ({
|
|
222
|
+
value: agent.id,
|
|
223
|
+
label: agent.label,
|
|
224
|
+
...(detectedIds.has(agent.id) ? { hint: COPY.detectedHint } : {}),
|
|
225
|
+
})),
|
|
226
|
+
});
|
|
227
|
+
// `chosen` is one of MCP_AGENTS' ids by construction.
|
|
228
|
+
return getMcpAgent(chosen);
|
|
229
|
+
}
|
|
230
|
+
/** The user's home directory, read only through the run context's env copy. */
|
|
231
|
+
function resolveHome(deps) {
|
|
232
|
+
const { env } = deps.context;
|
|
233
|
+
return env.HOME ?? env.USERPROFILE ?? "";
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=runSetupMcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runSetupMcp.js","sourceRoot":"","sources":["../../../src/setup/mcp/runSetupMcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offerDocsMcp.d.ts","sourceRoot":"","sources":["../../../src/setup/steps/offerDocsMcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"offerDocsMcp.d.ts","sourceRoot":"","sources":["../../../src/setup/steps/offerDocsMcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKzC,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9E,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,gDAAgD;IAChD,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5B,yEAAyE;IACzE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAOD,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC,EAC3D,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,aAAa,CAAC,CAaxB"}
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
* get a merge into their documented config file. Headless runs never touch
|
|
22
22
|
* agent config unless `--docs-mcp` asked for it.
|
|
23
23
|
*/
|
|
24
|
+
import * as path from "node:path";
|
|
24
25
|
import { DOCS_MCP_SERVER_URL } from "../agents/registry.js";
|
|
25
26
|
import * as COPY from "../copy.js";
|
|
26
27
|
import { SetupCancelledError } from "../errors.js";
|
|
@@ -116,8 +117,8 @@ async function runOffer(deps, args) {
|
|
|
116
117
|
// A write that throws (unparseable existing file, permissions) is handled
|
|
117
118
|
// by the catch-all in offerDocsMcp.
|
|
118
119
|
writeMcpConfig({
|
|
119
|
-
|
|
120
|
-
|
|
120
|
+
filePath: path.join(deps.context.cwd, install.relativePath),
|
|
121
|
+
displayPath: install.relativePath,
|
|
121
122
|
patch: install.patch(DOCS_MCP_SERVER_URL),
|
|
122
123
|
...(install.createDefaults
|
|
123
124
|
? { createDefaults: install.createDefaults }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offerDocsMcp.js","sourceRoot":"","sources":["../../../src/setup/steps/offerDocsMcp.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"offerDocsMcp.js","sourceRoot":"","sources":["../../../src/setup/steps/offerDocsMcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,17 @@
|
|
|
7
7
|
* refused rather than clobbered; the caller degrades to the docs download.
|
|
8
8
|
*/
|
|
9
9
|
export interface WriteMcpConfigArgs {
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Absolute path to the config file to merge into. Callers compose it from a
|
|
12
|
+
* repo root or the user's home directory before calling — this function does
|
|
13
|
+
* not join paths.
|
|
14
|
+
*/
|
|
15
|
+
filePath: string;
|
|
16
|
+
/**
|
|
17
|
+
* How the path reads in the "could not be parsed" error: the repo-relative
|
|
18
|
+
* path where the caller has one, else the absolute `filePath` (the default).
|
|
19
|
+
*/
|
|
20
|
+
displayPath?: string;
|
|
14
21
|
/**
|
|
15
22
|
* JSON fragment to merge in: container and server-name keys merge, a
|
|
16
23
|
* server entry itself is replaced wholesale.
|
|
@@ -27,5 +34,5 @@ export interface WriteMcpConfigArgs {
|
|
|
27
34
|
export declare class McpConfigUnreadableError extends Error {
|
|
28
35
|
constructor(relativePath: string, detail: string);
|
|
29
36
|
}
|
|
30
|
-
export declare function writeMcpConfig({
|
|
37
|
+
export declare function writeMcpConfig({ filePath, displayPath, patch, createDefaults, }: WriteMcpConfigArgs): void;
|
|
31
38
|
//# sourceMappingURL=mcpConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpConfig.d.ts","sourceRoot":"","sources":["../../../src/setup/util/mcpConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,WAAW,kBAAkB;IACjC
|
|
1
|
+
{"version":3,"file":"mcpConfig.d.ts","sourceRoot":"","sources":["../../../src/setup/util/mcpConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AA8BD,mEAAmE;AACnE,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,YAAY,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAG/C;CACF;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,WAAsB,EACtB,KAAK,EACL,cAAc,GACf,EAAE,kBAAkB,GAAG,IAAI,CAgC3B"}
|
|
@@ -36,8 +36,10 @@ export class McpConfigUnreadableError extends Error {
|
|
|
36
36
|
this.name = "McpConfigUnreadableError";
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
export function writeMcpConfig({
|
|
40
|
-
|
|
39
|
+
export function writeMcpConfig({ filePath, displayPath = filePath, patch, createDefaults, }) {
|
|
40
|
+
if (!path.isAbsolute(filePath)) {
|
|
41
|
+
throw new Error("writeMcpConfig requires an absolute path");
|
|
42
|
+
}
|
|
41
43
|
let existing = createDefaults ?? {};
|
|
42
44
|
if (fs.existsSync(filePath)) {
|
|
43
45
|
let parsed;
|
|
@@ -45,10 +47,10 @@ export function writeMcpConfig({ directory, relativePath, patch, createDefaults,
|
|
|
45
47
|
parsed = JSON.parse(fs.readFileSync(filePath, "utf-8"));
|
|
46
48
|
}
|
|
47
49
|
catch (error) {
|
|
48
|
-
throw new McpConfigUnreadableError(
|
|
50
|
+
throw new McpConfigUnreadableError(displayPath, error instanceof Error ? error.message : String(error));
|
|
49
51
|
}
|
|
50
52
|
if (!isPlainObject(parsed)) {
|
|
51
|
-
throw new McpConfigUnreadableError(
|
|
53
|
+
throw new McpConfigUnreadableError(displayPath, "not a JSON object");
|
|
52
54
|
}
|
|
53
55
|
existing = parsed;
|
|
54
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpConfig.js","sourceRoot":"","sources":["../../../src/setup/util/mcpConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"mcpConfig.js","sourceRoot":"","sources":["../../../src/setup/util/mcpConfig.ts"],"names":[],"mappings":"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"}
|