@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.
Files changed (40) hide show
  1. package/README.md +28 -0
  2. package/build/commands/formatSetup.d.ts +6 -0
  3. package/build/commands/formatSetup.d.ts.map +1 -1
  4. package/build/commands/formatSetup.js +22 -0
  5. package/build/commands/formatSetup.js.map +1 -1
  6. package/build/commands/setup.d.ts.map +1 -1
  7. package/build/commands/setup.js +10 -38
  8. package/build/commands/setup.js.map +1 -1
  9. package/build/commands/setupErrors.d.ts +10 -0
  10. package/build/commands/setupErrors.d.ts.map +1 -0
  11. package/build/commands/setupErrors.js +54 -0
  12. package/build/commands/setupErrors.js.map +1 -0
  13. package/build/commands/setupMcp.d.ts +15 -0
  14. package/build/commands/setupMcp.d.ts.map +1 -0
  15. package/build/commands/setupMcp.js +141 -0
  16. package/build/commands/setupMcp.js.map +1 -0
  17. package/build/setup/agents/registry.d.ts +4 -0
  18. package/build/setup/agents/registry.d.ts.map +1 -1
  19. package/build/setup/agents/registry.js +7 -3
  20. package/build/setup/agents/registry.js.map +1 -1
  21. package/build/setup/mcp/agents.d.ts +91 -0
  22. package/build/setup/mcp/agents.d.ts.map +1 -0
  23. package/build/setup/mcp/agents.js +265 -0
  24. package/build/setup/mcp/agents.js.map +1 -0
  25. package/build/setup/mcp/install.d.ts +34 -0
  26. package/build/setup/mcp/install.d.ts.map +1 -0
  27. package/build/setup/mcp/install.js +76 -0
  28. package/build/setup/mcp/install.js.map +1 -0
  29. package/build/setup/mcp/runSetupMcp.d.ts +68 -0
  30. package/build/setup/mcp/runSetupMcp.d.ts.map +1 -0
  31. package/build/setup/mcp/runSetupMcp.js +235 -0
  32. package/build/setup/mcp/runSetupMcp.js.map +1 -0
  33. package/build/setup/steps/offerDocsMcp.d.ts.map +1 -1
  34. package/build/setup/steps/offerDocsMcp.js +3 -2
  35. package/build/setup/steps/offerDocsMcp.js.map +1 -1
  36. package/build/setup/util/mcpConfig.d.ts +12 -5
  37. package/build/setup/util/mcpConfig.d.ts.map +1 -1
  38. package/build/setup/util/mcpConfig.js +6 -4
  39. package/build/setup/util/mcpConfig.js.map +1 -1
  40. 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;AAEH,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"}
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
- directory: deps.context.cwd,
120
- relativePath: install.relativePath,
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
- /** Repo root the relative config path resolves against. */
11
- directory: string;
12
- /** Config file path, relative to `directory`. */
13
- relativePath: string;
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({ directory, relativePath, patch, createDefaults, }: WriteMcpConfigArgs): void;
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,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,YAAY,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,SAAS,EACT,YAAY,EACZ,KAAK,EACL,cAAc,GACf,EAAE,kBAAkB,GAAG,IAAI,CA8B3B"}
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({ directory, relativePath, patch, createDefaults, }) {
40
- const filePath = path.join(directory, relativePath);
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(relativePath, error instanceof Error ? error.message : String(error));
50
+ throw new McpConfigUnreadableError(displayPath, error instanceof Error ? error.message : String(error));
49
51
  }
50
52
  if (!isPlainObject(parsed)) {
51
- throw new McpConfigUnreadableError(relativePath, "not a JSON object");
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;AAoBlC,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,SAAS,WAAW,CAClB,IAA6B,EAC7B,KAA8B,EAC9B,MAAc;IAEd,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC;YACT,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC;gBACjE,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC;gBAChD,CAAC,CAAC,UAAU,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mEAAmE;AACnE,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,YAAY,YAAoB,EAAE,MAAc;QAC9C,KAAK,CAAC,GAAG,YAAY,oCAAoC,MAAM,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,SAAS,EACT,YAAY,EACZ,KAAK,EACL,cAAc,GACK;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAEpD,IAAI,QAAQ,GAA4B,cAAc,IAAI,EAAE,CAAC;IAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,wBAAwB,CAChC,YAAY,EACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,wBAAwB,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;QACxE,CAAC;QACD,QAAQ,GAAG,MAAM,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,yEAAyE;IACzE,oBAAoB;IACpB,MAAM,QAAQ,GAAG,GAAG,QAAQ,eAAe,CAAC;IAC5C,EAAE,CAAC,aAAa,CACd,QAAQ,EACR,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAC1E,OAAO,CACR,CAAC;IACF,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC"}
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;AA2BlC,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,SAAS,WAAW,CAClB,IAA6B,EAC7B,KAA8B,EAC9B,MAAc;IAEd,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC;YACT,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC;gBACjE,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC;gBAChD,CAAC,CAAC,UAAU,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mEAAmE;AACnE,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,YAAY,YAAoB,EAAE,MAAc;QAC9C,KAAK,CAAC,GAAG,YAAY,oCAAoC,MAAM,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,WAAW,GAAG,QAAQ,EACtB,KAAK,EACL,cAAc,GACK;IACnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,QAAQ,GAA4B,cAAc,IAAI,EAAE,CAAC;IAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,wBAAwB,CAChC,WAAW,EACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,wBAAwB,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACvE,CAAC;QACD,QAAQ,GAAG,MAAM,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,yEAAyE;IACzE,oBAAoB;IACpB,MAAM,QAAQ,GAAG,GAAG,QAAQ,eAAe,CAAC;IAC5C,EAAE,CAAC,aAAa,CACd,QAAQ,EACR,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAC1E,OAAO,CACR,CAAC;IACF,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arizeai/phoenix-cli",
3
- "version": "1.9.1",
3
+ "version": "1.10.0",
4
4
  "description": "A command-line interface for Phoenix",
5
5
  "keywords": [
6
6
  "arize",