builder-doctor 1.0.23 → 1.0.24
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 +5 -0
- package/dist/auth.d.ts +2 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +86 -0
- package/dist/auth.js.map +1 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +76 -46
- package/dist/mcp.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -171,15 +171,19 @@ Supported agents and the file each one writes to:
|
|
|
171
171
|
| `cursor` | `~/.cursor/mcp.json` |
|
|
172
172
|
| `copilot` | `.vscode/mcp.json` (project-local) |
|
|
173
173
|
| `code_puppy` | `~/.code_puppy/mcp_servers.json` |
|
|
174
|
+
| `wibey` | `~/.wibey/mcp.json` and `~/.vscode/mcp.json` |
|
|
174
175
|
| `_(omitted)_` | `mcp.json` (project-local) |
|
|
175
176
|
|
|
176
177
|
`add` creates the file (and any missing parent directories) if it doesn't exist, and merges the `builder-mcp` entry into it without disturbing other settings. `remove` deletes only the `builder-mcp` entry.
|
|
177
178
|
|
|
179
|
+
After an `add`, your Builder.io authentication is checked by running `npx --yes "@builder.io/dev-tools@latest" auth status` (logged as `Checking Builder.io Authentication....`). If you're already authenticated it logs `Builder.io authenticated.` along with the status details and continues. Otherwise you are prompted `Authenticate with Builder.io? (Y/n)`, and unless you answer `n` it runs `npx --yes "@builder.io/dev-tools@latest" auth` to sign in. The check and prompt are skipped when not running in an interactive terminal.
|
|
180
|
+
|
|
178
181
|
```bash
|
|
179
182
|
npx builder-doctor mcp add claude # ~/.claude/settings.local.json
|
|
180
183
|
npx builder-doctor mcp add cursor # ~/.cursor/mcp.json
|
|
181
184
|
npx builder-doctor mcp add copilot # .vscode/mcp.json
|
|
182
185
|
npx builder-doctor mcp add code_puppy # ~/.code_puppy/mcp_servers.json
|
|
186
|
+
npx builder-doctor mcp add wibey # ~/.wibey/mcp.json and ~/.vscode/mcp.json
|
|
183
187
|
npx builder-doctor mcp add # ./mcp.json
|
|
184
188
|
npx builder-doctor mcp remove claude # remove from Claude
|
|
185
189
|
```
|
|
@@ -205,6 +209,7 @@ builder-doctor mcp add claude # Add Builder M
|
|
|
205
209
|
builder-doctor mcp add cursor # Add Builder MCP entry to ~/.cursor/mcp.json
|
|
206
210
|
builder-doctor mcp add copilot # Add Builder MCP entry to .vscode/mcp.json
|
|
207
211
|
builder-doctor mcp add code_puppy # Add Builder MCP entry to ~/.code_puppy/mcp_servers.json
|
|
212
|
+
builder-doctor mcp add wibey # Add Builder MCP entry to ~/.wibey/mcp.json and ~/.vscode/mcp.json
|
|
208
213
|
builder-doctor mcp add # Create or update a local mcp.json
|
|
209
214
|
builder-doctor mcp remove claude # Remove the Builder MCP entry for Claude
|
|
210
215
|
builder-doctor --verbose # Run all checks with detailed output
|
package/dist/auth.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAQA,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BnE"}
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.promptForAuth = promptForAuth;
|
|
4
|
+
const node_child_process_1 = require("node:child_process");
|
|
5
|
+
const promises_1 = require("node:readline/promises");
|
|
6
|
+
const AUTH_COMMAND = "npx";
|
|
7
|
+
const AUTH_ARGS = ["--yes", "@builder.io/dev-tools@latest", "auth"];
|
|
8
|
+
const AUTH_STATUS_ARGS = [...AUTH_ARGS, "status"];
|
|
9
|
+
const NOT_AUTHENTICATED_MARKER = "Not Authenticated to Builder.io";
|
|
10
|
+
async function promptForAuth(verbose) {
|
|
11
|
+
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
console.log("Checking Builder.io Authentication....");
|
|
15
|
+
const status = await getAuthStatus(verbose);
|
|
16
|
+
if (!status.includes(NOT_AUTHENTICATED_MARKER)) {
|
|
17
|
+
console.log("Builder.io authenticated.");
|
|
18
|
+
if (status.trim()) {
|
|
19
|
+
console.log(status.trimEnd());
|
|
20
|
+
}
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const rl = (0, promises_1.createInterface)({ input: process.stdin, output: process.stdout });
|
|
24
|
+
let answer;
|
|
25
|
+
try {
|
|
26
|
+
answer = (await rl.question("Authenticate with Builder.io? (Y/n) ")).trim();
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
rl.close();
|
|
30
|
+
}
|
|
31
|
+
if (answer.toLowerCase() === "n" || answer.toLowerCase() === "no") {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
await runAuth(verbose);
|
|
35
|
+
}
|
|
36
|
+
function getAuthStatus(verbose) {
|
|
37
|
+
return new Promise((resolve) => {
|
|
38
|
+
if (verbose) {
|
|
39
|
+
console.log(`Executing: ${AUTH_COMMAND} ${AUTH_STATUS_ARGS.join(" ")}`);
|
|
40
|
+
}
|
|
41
|
+
const child = (0, node_child_process_1.spawn)(AUTH_COMMAND, AUTH_STATUS_ARGS, { shell: true });
|
|
42
|
+
let output = "";
|
|
43
|
+
child.stdout?.on("data", (chunk) => {
|
|
44
|
+
output += chunk.toString();
|
|
45
|
+
});
|
|
46
|
+
child.stderr?.on("data", (chunk) => {
|
|
47
|
+
output += chunk.toString();
|
|
48
|
+
});
|
|
49
|
+
child.on("error", (error) => {
|
|
50
|
+
console.error(`Failed to check authentication status: ${error.message}`);
|
|
51
|
+
if (error.message.includes("ENOENT")) {
|
|
52
|
+
console.error("npx/npm is required but was not found. Please ensure Node.js and npm are installed.");
|
|
53
|
+
}
|
|
54
|
+
resolve(output);
|
|
55
|
+
});
|
|
56
|
+
child.on("close", () => {
|
|
57
|
+
resolve(output);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function runAuth(verbose) {
|
|
62
|
+
return new Promise((resolve) => {
|
|
63
|
+
if (verbose) {
|
|
64
|
+
console.log(`Executing: ${AUTH_COMMAND} ${AUTH_ARGS.join(" ")}`);
|
|
65
|
+
}
|
|
66
|
+
const child = (0, node_child_process_1.spawn)(AUTH_COMMAND, AUTH_ARGS, {
|
|
67
|
+
stdio: "inherit",
|
|
68
|
+
shell: true,
|
|
69
|
+
});
|
|
70
|
+
child.on("error", (error) => {
|
|
71
|
+
console.error(`Failed to start authentication process: ${error.message}`);
|
|
72
|
+
if (error.message.includes("ENOENT")) {
|
|
73
|
+
console.error("npx/npm is required but was not found. Please ensure Node.js and npm are installed.");
|
|
74
|
+
}
|
|
75
|
+
resolve();
|
|
76
|
+
});
|
|
77
|
+
child.on("close", (code) => {
|
|
78
|
+
const exitCode = code ?? 1;
|
|
79
|
+
if (exitCode !== 0) {
|
|
80
|
+
console.error(`Authentication command exited with code ${exitCode}`);
|
|
81
|
+
}
|
|
82
|
+
resolve();
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -61,7 +61,7 @@ Commands:
|
|
|
61
61
|
skills List available skills
|
|
62
62
|
install-plugin <plugin-name> Install a plugin from BuilderIO/builder-agent-plugins
|
|
63
63
|
mcp <add|remove> [agent] Add or remove the Builder MCP server entry
|
|
64
|
-
Agents: claude, cursor, copilot, code_puppy. Omit agent to write a local mcp.json.
|
|
64
|
+
Agents: claude, cursor, copilot, code_puppy, wibey. Omit agent to write a local mcp.json.
|
|
65
65
|
help Show this help message
|
|
66
66
|
|
|
67
67
|
Options:
|
|
@@ -90,6 +90,7 @@ Examples:
|
|
|
90
90
|
builder-doctor mcp add cursor Add Builder MCP entry to ~/.cursor/mcp.json
|
|
91
91
|
builder-doctor mcp add copilot Add Builder MCP entry to .vscode/mcp.json
|
|
92
92
|
builder-doctor mcp add code_puppy Add Builder MCP entry to ~/.code_puppy/mcp_servers.json
|
|
93
|
+
builder-doctor mcp add wibey Add Builder MCP entry to ~/.wibey/mcp.json and ~/.vscode/mcp.json
|
|
93
94
|
builder-doctor mcp add Create or update a local mcp.json
|
|
94
95
|
builder-doctor mcp remove claude Remove the Builder MCP entry for Claude
|
|
95
96
|
builder-doctor --verbose Run rules and network checks with detailed output
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,mCAAqC;AACrC,mCAAmC;AACnC,+BAA+B;AAC/B,uCAAuC;AACvC,uCAA6E;AAC7E,+BAA0C;AAC1C,mCAAyE;AAEzE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAC7D,IAAI,gBAAgB,EAAE,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;IAC/C,OAAO,CAAC,IAAI,CACV,0HAA0H,CAC3H,CAAC;AACJ,CAAC;AACD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACrC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjC,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC;AACjD,MAAM,iBAAiB,GAAa,EAAE,CAAC;AACvC,IAAI,YAAY,EAAE,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,MAAM;QACpC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AACD,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC;AACnD,MAAM,iBAAiB,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AACpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;AAC9B,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnF,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;AAC1C,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;AACxC,MAAM,GAAG,GACP,CAAC,KAAK;IACN,CAAC,OAAO;IACR,CAAC,KAAK;IACN,CAAC,GAAG;IACJ,CAAC,QAAQ;IACT,CAAC,YAAY;IACb,CAAC,aAAa;IACd,CAAC,MAAM;IACP,CAAC,GAAG,CAAC;AAEP,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAaD,wBAAsB,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB/D"}
|
package/dist/mcp.js
CHANGED
|
@@ -7,75 +7,105 @@ exports.runMcp = runMcp;
|
|
|
7
7
|
const node_fs_1 = require("node:fs");
|
|
8
8
|
const node_os_1 = require("node:os");
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const auth_1 = require("./auth");
|
|
10
11
|
const SERVER_KEY = "builder-mcp";
|
|
11
12
|
const SERVER_COMMAND = "npx";
|
|
12
13
|
const SERVER_ARGS = ["@builder.io/dev-tools@latest", "mcp"];
|
|
13
14
|
async function runMcp(options) {
|
|
14
15
|
const { action, agent, verbose = false } = options;
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
const targets = resolveTargets(agent);
|
|
17
|
+
for (const target of targets) {
|
|
18
|
+
if (verbose) {
|
|
19
|
+
console.log(`${action === "add" ? "Adding" : "Removing"} ${SERVER_KEY} ${action === "add" ? "to" : "from"} ${target.filePath}`);
|
|
20
|
+
}
|
|
21
|
+
if (action === "add") {
|
|
22
|
+
addServer(target);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
removeServer(target);
|
|
26
|
+
}
|
|
18
27
|
}
|
|
19
28
|
if (action === "add") {
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
removeServer(target);
|
|
29
|
+
await (0, auth_1.promptForAuth)(verbose);
|
|
24
30
|
}
|
|
25
31
|
}
|
|
26
|
-
function
|
|
32
|
+
function resolveTargets(agent) {
|
|
27
33
|
const standardEntry = {
|
|
28
34
|
command: SERVER_COMMAND,
|
|
29
35
|
args: [...SERVER_ARGS],
|
|
30
36
|
};
|
|
37
|
+
const stdioEntry = {
|
|
38
|
+
type: "stdio",
|
|
39
|
+
command: SERVER_COMMAND,
|
|
40
|
+
args: [...SERVER_ARGS],
|
|
41
|
+
};
|
|
31
42
|
if (!agent) {
|
|
32
|
-
return
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
43
|
+
return [
|
|
44
|
+
{
|
|
45
|
+
agentLabel: "local",
|
|
46
|
+
filePath: node_path_1.default.join(process.cwd(), "mcp.json"),
|
|
47
|
+
containerKey: "mcpServers",
|
|
48
|
+
serverEntry: standardEntry,
|
|
49
|
+
},
|
|
50
|
+
];
|
|
38
51
|
}
|
|
39
52
|
switch (agent) {
|
|
40
53
|
case "claude":
|
|
41
|
-
return
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
54
|
+
return [
|
|
55
|
+
{
|
|
56
|
+
agentLabel: "Claude",
|
|
57
|
+
filePath: node_path_1.default.join((0, node_os_1.homedir)(), ".claude", "settings.local.json"),
|
|
58
|
+
containerKey: "mcpServers",
|
|
59
|
+
serverEntry: standardEntry,
|
|
60
|
+
},
|
|
61
|
+
];
|
|
47
62
|
case "cursor":
|
|
48
|
-
return
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
63
|
+
return [
|
|
64
|
+
{
|
|
65
|
+
agentLabel: "Cursor",
|
|
66
|
+
filePath: node_path_1.default.join((0, node_os_1.homedir)(), ".cursor", "mcp.json"),
|
|
67
|
+
containerKey: "mcpServers",
|
|
68
|
+
serverEntry: standardEntry,
|
|
69
|
+
},
|
|
70
|
+
];
|
|
54
71
|
case "copilot":
|
|
55
|
-
return
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
command: SERVER_COMMAND,
|
|
62
|
-
args: [...SERVER_ARGS],
|
|
72
|
+
return [
|
|
73
|
+
{
|
|
74
|
+
agentLabel: "Copilot",
|
|
75
|
+
filePath: node_path_1.default.join(process.cwd(), ".vscode", "mcp.json"),
|
|
76
|
+
containerKey: "servers",
|
|
77
|
+
serverEntry: { ...stdioEntry },
|
|
63
78
|
},
|
|
64
|
-
|
|
79
|
+
];
|
|
65
80
|
case "code_puppy":
|
|
66
|
-
return
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
81
|
+
return [
|
|
82
|
+
{
|
|
83
|
+
agentLabel: "Code Puppy",
|
|
84
|
+
filePath: node_path_1.default.join((0, node_os_1.homedir)(), ".code_puppy", "mcp_servers.json"),
|
|
85
|
+
containerKey: "mcp_servers",
|
|
86
|
+
serverEntry: {
|
|
87
|
+
...stdioEntry,
|
|
88
|
+
enabled: true,
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
];
|
|
92
|
+
case "wibey":
|
|
93
|
+
return [
|
|
94
|
+
{
|
|
95
|
+
agentLabel: "Wibey",
|
|
96
|
+
filePath: node_path_1.default.join((0, node_os_1.homedir)(), ".wibey", "mcp.json"),
|
|
97
|
+
containerKey: "servers",
|
|
98
|
+
serverEntry: { ...stdioEntry },
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
agentLabel: "Wibey",
|
|
102
|
+
filePath: node_path_1.default.join((0, node_os_1.homedir)(), ".vscode", "mcp.json"),
|
|
103
|
+
containerKey: "servers",
|
|
104
|
+
serverEntry: { ...stdioEntry },
|
|
75
105
|
},
|
|
76
|
-
|
|
106
|
+
];
|
|
77
107
|
default:
|
|
78
|
-
throw new Error(`Unknown MCP agent "${agent}". Supported: claude, cursor, copilot, code_puppy, or omit for a local mcp.json.`);
|
|
108
|
+
throw new Error(`Unknown MCP agent "${agent}". Supported: claude, cursor, copilot, code_puppy, wibey, or omit for a local mcp.json.`);
|
|
79
109
|
}
|
|
80
110
|
}
|
|
81
111
|
function addServer(target) {
|
package/dist/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|