assistant-ui 0.0.92 → 0.0.93
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/dist/codemods/utils/createTransformer.d.ts +17 -13
- package/dist/codemods/utils/createTransformer.d.ts.map +1 -1
- package/dist/codemods/utils/createTransformer.js +18 -15
- package/dist/codemods/utils/createTransformer.js.map +1 -1
- package/dist/codemods/v0-11/content-part-to-message-part.d.ts +3 -1
- package/dist/codemods/v0-11/content-part-to-message-part.d.ts.map +1 -1
- package/dist/codemods/v0-11/content-part-to-message-part.js +98 -135
- package/dist/codemods/v0-11/content-part-to-message-part.js.map +1 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.d.ts +3 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.d.ts.map +1 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.js +126 -213
- package/dist/codemods/v0-12/assistant-api-to-aui.js.map +1 -1
- package/dist/codemods/v0-12/event-names-to-camelcase.d.ts +3 -1
- package/dist/codemods/v0-12/event-names-to-camelcase.d.ts.map +1 -1
- package/dist/codemods/v0-12/event-names-to-camelcase.js +33 -38
- package/dist/codemods/v0-12/event-names-to-camelcase.js.map +1 -1
- package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts +3 -1
- package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts.map +1 -1
- package/dist/codemods/v0-12/primitive-if-to-aui-if.js +212 -297
- package/dist/codemods/v0-12/primitive-if-to-aui-if.js.map +1 -1
- package/dist/codemods/v0-8/ui-package-split.d.ts +3 -1
- package/dist/codemods/v0-8/ui-package-split.d.ts.map +1 -1
- package/dist/codemods/v0-8/ui-package-split.js +121 -164
- package/dist/codemods/v0-8/ui-package-split.js.map +1 -1
- package/dist/codemods/v0-9/edge-package-split.d.ts +3 -1
- package/dist/codemods/v0-9/edge-package-split.d.ts.map +1 -1
- package/dist/codemods/v0-9/edge-package-split.js +96 -140
- package/dist/codemods/v0-9/edge-package-split.js.map +1 -1
- package/dist/commands/add.d.ts +16 -12
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +53 -64
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/agent.d.ts +5 -1
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +16 -25
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/create.d.ts +34 -30
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +454 -527
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/info.d.ts +5 -1
- package/dist/commands/info.d.ts.map +1 -1
- package/dist/commands/info.js +233 -314
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.d.ts +12 -9
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +98 -107
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp.d.ts +5 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +175 -214
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/update.d.ts +5 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +46 -55
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/upgrade.d.ts +11 -7
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +26 -38
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.js +15 -14
- package/dist/index.js.map +1 -1
- package/dist/lib/create-project.d.ts +24 -21
- package/dist/lib/create-project.d.ts.map +1 -1
- package/dist/lib/create-project.js +227 -297
- package/dist/lib/create-project.js.map +1 -1
- package/dist/lib/install-ai-sdk-lib.d.ts +4 -1
- package/dist/lib/install-ai-sdk-lib.d.ts.map +1 -1
- package/dist/lib/install-ai-sdk-lib.js +12 -8
- package/dist/lib/install-ai-sdk-lib.js.map +1 -1
- package/dist/lib/install-edge-lib.d.ts +4 -1
- package/dist/lib/install-edge-lib.d.ts.map +1 -1
- package/dist/lib/install-edge-lib.js +16 -12
- package/dist/lib/install-edge-lib.js.map +1 -1
- package/dist/lib/install-ui-lib.d.ts +4 -1
- package/dist/lib/install-ui-lib.d.ts.map +1 -1
- package/dist/lib/install-ui-lib.js +12 -8
- package/dist/lib/install-ui-lib.js.map +1 -1
- package/dist/lib/run-spawn.d.ts +7 -4
- package/dist/lib/run-spawn.d.ts.map +1 -1
- package/dist/lib/run-spawn.js +23 -23
- package/dist/lib/run-spawn.js.map +1 -1
- package/dist/lib/transform-options.d.ts +8 -5
- package/dist/lib/transform-options.d.ts.map +1 -1
- package/dist/lib/transform-options.js +0 -2
- package/dist/lib/transform.d.ts +15 -11
- package/dist/lib/transform.d.ts.map +1 -1
- package/dist/lib/transform.js +97 -114
- package/dist/lib/transform.js.map +1 -1
- package/dist/lib/upgrade.d.ts +6 -2
- package/dist/lib/upgrade.d.ts.map +1 -1
- package/dist/lib/upgrade.js +62 -64
- package/dist/lib/upgrade.js.map +1 -1
- package/dist/lib/utils/config.d.ts +21 -18
- package/dist/lib/utils/config.d.ts.map +1 -1
- package/dist/lib/utils/config.js +24 -28
- package/dist/lib/utils/config.js.map +1 -1
- package/dist/lib/utils/file-scanner.d.ts +9 -6
- package/dist/lib/utils/file-scanner.d.ts.map +1 -1
- package/dist/lib/utils/file-scanner.js +44 -51
- package/dist/lib/utils/file-scanner.js.map +1 -1
- package/dist/lib/utils/logger.d.ts +10 -7
- package/dist/lib/utils/logger.d.ts.map +1 -1
- package/dist/lib/utils/logger.js +23 -19
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/lib/utils/package-installer.d.ts +10 -7
- package/dist/lib/utils/package-installer.d.ts.map +1 -1
- package/dist/lib/utils/package-installer.js +18 -19
- package/dist/lib/utils/package-installer.js.map +1 -1
- package/dist/lib/utils/package-manager.d.ts +10 -7
- package/dist/lib/utils/package-manager.d.ts.map +1 -1
- package/dist/lib/utils/package-manager.js +68 -59
- package/dist/lib/utils/package-manager.js.map +1 -1
- package/package.json +7 -7
- package/dist/index.d.ts.map +0 -1
- package/dist/lib/transform-options.js.map +0 -1
package/dist/commands/mcp.js
CHANGED
|
@@ -1,226 +1,187 @@
|
|
|
1
|
+
import { logger } from "../lib/utils/logger.js";
|
|
1
2
|
import { Command } from "commander";
|
|
2
3
|
import fs from "node:fs";
|
|
3
4
|
import path from "node:path";
|
|
4
|
-
import os from "node:os";
|
|
5
|
-
import { spawn } from "cross-spawn";
|
|
6
|
-
import { logger } from "../lib/utils/logger.js";
|
|
7
5
|
import * as p from "@clack/prompts";
|
|
6
|
+
import { spawn } from "cross-spawn";
|
|
7
|
+
import os from "node:os";
|
|
8
|
+
//#region src/commands/mcp.ts
|
|
8
9
|
const MCP_CONFIGS = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
"assistant-ui": {
|
|
63
|
-
command: {
|
|
64
|
-
path: "npx",
|
|
65
|
-
args: ["-y", "@assistant-ui/mcp-docs-server"],
|
|
66
|
-
},
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
postInstall: "The server starts automatically with the Assistant Panel.",
|
|
71
|
-
},
|
|
72
|
-
"claude-desktop": {
|
|
73
|
-
name: "Claude Desktop",
|
|
74
|
-
getPath: () => {
|
|
75
|
-
if (process.platform === "win32") {
|
|
76
|
-
return path.join(process.env.APPDATA || "", "Claude", "claude_desktop_config.json");
|
|
77
|
-
}
|
|
78
|
-
return path.join(os.homedir(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
|
|
79
|
-
},
|
|
80
|
-
config: {
|
|
81
|
-
mcpServers: {
|
|
82
|
-
"assistant-ui": {
|
|
83
|
-
command: "npx",
|
|
84
|
-
args: ["-y", "@assistant-ui/mcp-docs-server"],
|
|
85
|
-
},
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
postInstall: "Restart Claude Desktop to activate.",
|
|
89
|
-
},
|
|
10
|
+
cursor: {
|
|
11
|
+
name: "Cursor",
|
|
12
|
+
getPath: () => path.join(process.cwd(), ".cursor", "mcp.json"),
|
|
13
|
+
config: { mcpServers: { "assistant-ui": {
|
|
14
|
+
command: "npx",
|
|
15
|
+
args: ["-y", "@assistant-ui/mcp-docs-server"]
|
|
16
|
+
} } },
|
|
17
|
+
postInstall: "Open Cursor Settings → MCP → find 'assistant-ui' and click enable."
|
|
18
|
+
},
|
|
19
|
+
windsurf: {
|
|
20
|
+
name: "Windsurf",
|
|
21
|
+
getPath: () => path.join(os.homedir(), ".codeium", "windsurf", "mcp_config.json"),
|
|
22
|
+
config: { mcpServers: { "assistant-ui": {
|
|
23
|
+
command: "npx",
|
|
24
|
+
args: ["-y", "@assistant-ui/mcp-docs-server"]
|
|
25
|
+
} } },
|
|
26
|
+
postInstall: "Fully quit and re-open Windsurf to activate."
|
|
27
|
+
},
|
|
28
|
+
vscode: {
|
|
29
|
+
name: "VSCode",
|
|
30
|
+
getPath: () => path.join(process.cwd(), ".vscode", "mcp.json"),
|
|
31
|
+
config: { servers: { "assistant-ui": {
|
|
32
|
+
command: "npx",
|
|
33
|
+
args: ["-y", "@assistant-ui/mcp-docs-server"],
|
|
34
|
+
type: "stdio"
|
|
35
|
+
} } },
|
|
36
|
+
postInstall: "Enable MCP in Settings → search 'MCP' → enable 'Chat > MCP'. Use Copilot Chat in Agent mode."
|
|
37
|
+
},
|
|
38
|
+
zed: {
|
|
39
|
+
name: "Zed",
|
|
40
|
+
getPath: () => {
|
|
41
|
+
if (process.platform === "win32") return path.join(process.env.APPDATA || "", "Zed", "settings.json");
|
|
42
|
+
if (process.platform === "darwin") return path.join(os.homedir(), ".zed", "settings.json");
|
|
43
|
+
return path.join(os.homedir(), ".config", "zed", "settings.json");
|
|
44
|
+
},
|
|
45
|
+
config: { context_servers: { "assistant-ui": { command: {
|
|
46
|
+
path: "npx",
|
|
47
|
+
args: ["-y", "@assistant-ui/mcp-docs-server"]
|
|
48
|
+
} } } },
|
|
49
|
+
postInstall: "The server starts automatically with the Assistant Panel."
|
|
50
|
+
},
|
|
51
|
+
"claude-desktop": {
|
|
52
|
+
name: "Claude Desktop",
|
|
53
|
+
getPath: () => {
|
|
54
|
+
if (process.platform === "win32") return path.join(process.env.APPDATA || "", "Claude", "claude_desktop_config.json");
|
|
55
|
+
return path.join(os.homedir(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
|
|
56
|
+
},
|
|
57
|
+
config: { mcpServers: { "assistant-ui": {
|
|
58
|
+
command: "npx",
|
|
59
|
+
args: ["-y", "@assistant-ui/mcp-docs-server"]
|
|
60
|
+
} } },
|
|
61
|
+
postInstall: "Restart Claude Desktop to activate."
|
|
62
|
+
}
|
|
90
63
|
};
|
|
91
64
|
function deepMerge(target, source) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
!Array.isArray(source[key])) {
|
|
97
|
-
result[key] = deepMerge(result[key] || {}, source[key]);
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
result[key] = source[key];
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return result;
|
|
65
|
+
const result = { ...target };
|
|
66
|
+
for (const key of Object.keys(source)) if (source[key] && typeof source[key] === "object" && !Array.isArray(source[key])) result[key] = deepMerge(result[key] || {}, source[key]);
|
|
67
|
+
else result[key] = source[key];
|
|
68
|
+
return result;
|
|
104
69
|
}
|
|
105
70
|
async function installForTarget(target) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
logger.success(`MCP server installed for ${targetConfig.name}!`);
|
|
168
|
-
logger.info(`Config written to: ${configPath}`);
|
|
169
|
-
if (targetConfig.postInstall) {
|
|
170
|
-
logger.break();
|
|
171
|
-
logger.info(targetConfig.postInstall);
|
|
172
|
-
}
|
|
71
|
+
if (target === "claude-code") {
|
|
72
|
+
logger.info("Installing MCP server for Claude Code...");
|
|
73
|
+
logger.break();
|
|
74
|
+
const child = spawn("claude", [
|
|
75
|
+
"mcp",
|
|
76
|
+
"add",
|
|
77
|
+
"assistant-ui",
|
|
78
|
+
"--",
|
|
79
|
+
"npx",
|
|
80
|
+
"-y",
|
|
81
|
+
"@assistant-ui/mcp-docs-server"
|
|
82
|
+
], { stdio: "inherit" });
|
|
83
|
+
return new Promise((resolve, reject) => {
|
|
84
|
+
child.on("error", (error) => {
|
|
85
|
+
logger.error(`Failed to install: ${error.message}`);
|
|
86
|
+
logger.info("Make sure Claude Code CLI is installed: https://docs.anthropic.com/en/docs/claude-code");
|
|
87
|
+
reject(error);
|
|
88
|
+
});
|
|
89
|
+
child.on("close", (code) => {
|
|
90
|
+
if (code !== 0) {
|
|
91
|
+
logger.error(`Installation failed with code ${code}`);
|
|
92
|
+
reject(/* @__PURE__ */ new Error(`Exit code ${code}`));
|
|
93
|
+
} else {
|
|
94
|
+
logger.break();
|
|
95
|
+
logger.success("MCP server installed for Claude Code!");
|
|
96
|
+
logger.info("The server starts automatically. Try asking about assistant-ui!");
|
|
97
|
+
resolve();
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
if (target === "claude-desktop" && process.platform === "linux") {
|
|
103
|
+
logger.error("Claude Desktop is not available on Linux.");
|
|
104
|
+
logger.info("See: https://claude.ai/download for supported operating systems.");
|
|
105
|
+
throw new Error("Unsupported platform for Claude Desktop");
|
|
106
|
+
}
|
|
107
|
+
const targetConfig = MCP_CONFIGS[target];
|
|
108
|
+
const configPath = targetConfig.getPath();
|
|
109
|
+
const configDir = path.dirname(configPath);
|
|
110
|
+
logger.info(`Installing MCP server for ${targetConfig.name}...`);
|
|
111
|
+
if (!fs.existsSync(configDir)) fs.mkdirSync(configDir, { recursive: true });
|
|
112
|
+
let existingConfig = {};
|
|
113
|
+
if (fs.existsSync(configPath)) {
|
|
114
|
+
const content = fs.readFileSync(configPath, "utf-8");
|
|
115
|
+
try {
|
|
116
|
+
existingConfig = JSON.parse(content);
|
|
117
|
+
} catch (e) {
|
|
118
|
+
logger.error(`Could not parse existing config at ${configPath}`);
|
|
119
|
+
logger.error("Please fix the JSON syntax error before running this command.");
|
|
120
|
+
throw e;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const newConfig = deepMerge(existingConfig, targetConfig.config);
|
|
124
|
+
fs.writeFileSync(configPath, `${JSON.stringify(newConfig, null, 2)}\n`);
|
|
125
|
+
logger.break();
|
|
126
|
+
logger.success(`MCP server installed for ${targetConfig.name}!`);
|
|
127
|
+
logger.info(`Config written to: ${configPath}`);
|
|
128
|
+
if (targetConfig.postInstall) {
|
|
129
|
+
logger.break();
|
|
130
|
+
logger.info(targetConfig.postInstall);
|
|
131
|
+
}
|
|
173
132
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
}
|
|
133
|
+
const mcp = new Command().name("mcp").description("install assistant-ui MCP docs server for your IDE").option("--cursor", "install for Cursor").option("--windsurf", "install for Windsurf").option("--vscode", "install for VSCode").option("--zed", "install for Zed").option("--claude-code", "install for Claude Code").option("--claude-desktop", "install for Claude Desktop").action(async (opts) => {
|
|
134
|
+
const targets = [];
|
|
135
|
+
if (opts.cursor) targets.push("cursor");
|
|
136
|
+
if (opts.windsurf) targets.push("windsurf");
|
|
137
|
+
if (opts.vscode) targets.push("vscode");
|
|
138
|
+
if (opts.zed) targets.push("zed");
|
|
139
|
+
if (opts.claudeCode) targets.push("claude-code");
|
|
140
|
+
if (opts.claudeDesktop) targets.push("claude-desktop");
|
|
141
|
+
if (targets.length === 0) {
|
|
142
|
+
p.intro("assistant-ui MCP Server Installation");
|
|
143
|
+
const selected = await p.select({
|
|
144
|
+
message: "Select your IDE or tool:",
|
|
145
|
+
options: [
|
|
146
|
+
{
|
|
147
|
+
value: "cursor",
|
|
148
|
+
label: "Cursor"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
value: "windsurf",
|
|
152
|
+
label: "Windsurf"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
value: "vscode",
|
|
156
|
+
label: "VSCode"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
value: "zed",
|
|
160
|
+
label: "Zed"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
value: "claude-code",
|
|
164
|
+
label: "Claude Code"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
value: "claude-desktop",
|
|
168
|
+
label: "Claude Desktop"
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
});
|
|
172
|
+
if (p.isCancel(selected)) {
|
|
173
|
+
p.cancel("Installation cancelled.");
|
|
174
|
+
process.exit(0);
|
|
175
|
+
}
|
|
176
|
+
targets.push(selected);
|
|
177
|
+
}
|
|
178
|
+
for (const target of targets) try {
|
|
179
|
+
await installForTarget(target);
|
|
180
|
+
} catch {
|
|
181
|
+
process.exit(1);
|
|
182
|
+
}
|
|
225
183
|
});
|
|
184
|
+
//#endregion
|
|
185
|
+
export { mcp };
|
|
186
|
+
|
|
226
187
|
//# sourceMappingURL=mcp.js.map
|
package/dist/commands/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","names":[],"sources":["../../src/commands/mcp.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport os from \"node:os\";\nimport { spawn } from \"cross-spawn\";\nimport { logger } from \"../lib/utils/logger\";\nimport * as p from \"@clack/prompts\";\n\ntype MCPTarget =\n | \"cursor\"\n | \"windsurf\"\n | \"vscode\"\n | \"zed\"\n | \"claude-code\"\n | \"claude-desktop\";\n\nconst MCP_CONFIGS: Record<\n Exclude<MCPTarget, \"claude-code\">,\n {\n name: string;\n getPath: () => string;\n config: object;\n postInstall?: string;\n }\n> = {\n cursor: {\n name: \"Cursor\",\n getPath: () => path.join(process.cwd(), \".cursor\", \"mcp.json\"),\n config: {\n mcpServers: {\n \"assistant-ui\": {\n command: \"npx\",\n args: [\"-y\", \"@assistant-ui/mcp-docs-server\"],\n },\n },\n },\n postInstall:\n \"Open Cursor Settings → MCP → find 'assistant-ui' and click enable.\",\n },\n windsurf: {\n name: \"Windsurf\",\n getPath: () =>\n path.join(os.homedir(), \".codeium\", \"windsurf\", \"mcp_config.json\"),\n config: {\n mcpServers: {\n \"assistant-ui\": {\n command: \"npx\",\n args: [\"-y\", \"@assistant-ui/mcp-docs-server\"],\n },\n },\n },\n postInstall: \"Fully quit and re-open Windsurf to activate.\",\n },\n vscode: {\n name: \"VSCode\",\n getPath: () => path.join(process.cwd(), \".vscode\", \"mcp.json\"),\n config: {\n servers: {\n \"assistant-ui\": {\n command: \"npx\",\n args: [\"-y\", \"@assistant-ui/mcp-docs-server\"],\n type: \"stdio\",\n },\n },\n },\n postInstall:\n \"Enable MCP in Settings → search 'MCP' → enable 'Chat > MCP'. Use Copilot Chat in Agent mode.\",\n },\n zed: {\n name: \"Zed\",\n getPath: () => {\n if (process.platform === \"win32\") {\n return path.join(process.env.APPDATA || \"\", \"Zed\", \"settings.json\");\n }\n if (process.platform === \"darwin\") {\n return path.join(os.homedir(), \".zed\", \"settings.json\");\n }\n return path.join(os.homedir(), \".config\", \"zed\", \"settings.json\");\n },\n config: {\n context_servers: {\n \"assistant-ui\": {\n command: {\n path: \"npx\",\n args: [\"-y\", \"@assistant-ui/mcp-docs-server\"],\n },\n },\n },\n },\n postInstall: \"The server starts automatically with the Assistant Panel.\",\n },\n \"claude-desktop\": {\n name: \"Claude Desktop\",\n getPath: () => {\n if (process.platform === \"win32\") {\n return path.join(\n process.env.APPDATA || \"\",\n \"Claude\",\n \"claude_desktop_config.json\",\n );\n }\n return path.join(\n os.homedir(),\n \"Library\",\n \"Application Support\",\n \"Claude\",\n \"claude_desktop_config.json\",\n );\n },\n config: {\n mcpServers: {\n \"assistant-ui\": {\n command: \"npx\",\n args: [\"-y\", \"@assistant-ui/mcp-docs-server\"],\n },\n },\n },\n postInstall: \"Restart Claude Desktop to activate.\",\n },\n};\n\nfunction deepMerge(target: any, source: any): any {\n const result = { ...target };\n for (const key of Object.keys(source)) {\n if (\n source[key] &&\n typeof source[key] === \"object\" &&\n !Array.isArray(source[key])\n ) {\n result[key] = deepMerge(result[key] || {}, source[key]);\n } else {\n result[key] = source[key];\n }\n }\n return result;\n}\n\nasync function installForTarget(target: MCPTarget): Promise<void> {\n if (target === \"claude-code\") {\n logger.info(\"Installing MCP server for Claude Code...\");\n logger.break();\n\n const child = spawn(\n \"claude\",\n [\n \"mcp\",\n \"add\",\n \"assistant-ui\",\n \"--\",\n \"npx\",\n \"-y\",\n \"@assistant-ui/mcp-docs-server\",\n ],\n {\n stdio: \"inherit\",\n },\n );\n\n return new Promise((resolve, reject) => {\n child.on(\"error\", (error) => {\n logger.error(`Failed to install: ${error.message}`);\n logger.info(\n \"Make sure Claude Code CLI is installed: https://docs.anthropic.com/en/docs/claude-code\",\n );\n reject(error);\n });\n\n child.on(\"close\", (code) => {\n if (code !== 0) {\n logger.error(`Installation failed with code ${code}`);\n reject(new Error(`Exit code ${code}`));\n } else {\n logger.break();\n logger.success(\"MCP server installed for Claude Code!\");\n logger.info(\n \"The server starts automatically. Try asking about assistant-ui!\",\n );\n resolve();\n }\n });\n });\n }\n\n if (target === \"claude-desktop\" && process.platform === \"linux\") {\n logger.error(\"Claude Desktop is not available on Linux.\");\n logger.info(\n \"See: https://claude.ai/download for supported operating systems.\",\n );\n throw new Error(\"Unsupported platform for Claude Desktop\");\n }\n\n const targetConfig = MCP_CONFIGS[target];\n const configPath = targetConfig.getPath();\n const configDir = path.dirname(configPath);\n\n logger.info(`Installing MCP server for ${targetConfig.name}...`);\n\n if (!fs.existsSync(configDir)) {\n fs.mkdirSync(configDir, { recursive: true });\n }\n\n let existingConfig: any = {};\n if (fs.existsSync(configPath)) {\n const content = fs.readFileSync(configPath, \"utf-8\");\n try {\n existingConfig = JSON.parse(content);\n } catch (e) {\n logger.error(`Could not parse existing config at ${configPath}`);\n logger.error(\n \"Please fix the JSON syntax error before running this command.\",\n );\n throw e;\n }\n }\n\n const newConfig = deepMerge(existingConfig, targetConfig.config);\n\n fs.writeFileSync(configPath, `${JSON.stringify(newConfig, null, 2)}\\n`);\n\n logger.break();\n logger.success(`MCP server installed for ${targetConfig.name}!`);\n logger.info(`Config written to: ${configPath}`);\n\n if (targetConfig.postInstall) {\n logger.break();\n logger.info(targetConfig.postInstall);\n }\n}\n\nexport const mcp = new Command()\n .name(\"mcp\")\n .description(\"install assistant-ui MCP docs server for your IDE\")\n .option(\"--cursor\", \"install for Cursor\")\n .option(\"--windsurf\", \"install for Windsurf\")\n .option(\"--vscode\", \"install for VSCode\")\n .option(\"--zed\", \"install for Zed\")\n .option(\"--claude-code\", \"install for Claude Code\")\n .option(\"--claude-desktop\", \"install for Claude Desktop\")\n .action(async (opts) => {\n const targets: MCPTarget[] = [];\n\n if (opts.cursor) targets.push(\"cursor\");\n if (opts.windsurf) targets.push(\"windsurf\");\n if (opts.vscode) targets.push(\"vscode\");\n if (opts.zed) targets.push(\"zed\");\n if (opts.claudeCode) targets.push(\"claude-code\");\n if (opts.claudeDesktop) targets.push(\"claude-desktop\");\n\n // If no target specified, prompt user\n if (targets.length === 0) {\n p.intro(\"assistant-ui MCP Server Installation\");\n\n const selected = await p.select({\n message: \"Select your IDE or tool:\",\n options: [\n { value: \"cursor\", label: \"Cursor\" },\n { value: \"windsurf\", label: \"Windsurf\" },\n { value: \"vscode\", label: \"VSCode\" },\n { value: \"zed\", label: \"Zed\" },\n { value: \"claude-code\", label: \"Claude Code\" },\n { value: \"claude-desktop\", label: \"Claude Desktop\" },\n ],\n });\n\n if (p.isCancel(selected)) {\n p.cancel(\"Installation cancelled.\");\n process.exit(0);\n }\n\n targets.push(selected as MCPTarget);\n }\n\n for (const target of targets) {\n try {\n await installForTarget(target);\n } catch {\n process.exit(1);\n }\n }\n });\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","
|
|
1
|
+
{"version":3,"file":"update.d.ts","names":[],"sources":["../../src/commands/update.ts"],"mappings":";;;cAOa,MAAA,EAAM,OAuEf"}
|
package/dist/commands/update.js
CHANGED
|
@@ -1,60 +1,51 @@
|
|
|
1
|
+
import { logger } from "../lib/utils/logger.js";
|
|
2
|
+
import { getInstallCommand } from "../lib/utils/package-manager.js";
|
|
1
3
|
import { Command } from "commander";
|
|
2
4
|
import fs from "node:fs";
|
|
3
5
|
import path from "node:path";
|
|
4
|
-
import { sync
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
logger.info(` ${installCmd.command} ${installCmd.args.join(" ")}`);
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
logger.step("Updating packages...");
|
|
49
|
-
const result = spawnSync(installCmd.command, installCmd.args, {
|
|
50
|
-
stdio: "inherit",
|
|
51
|
-
cwd: opts.cwd,
|
|
52
|
-
});
|
|
53
|
-
if (result.status !== 0) {
|
|
54
|
-
logger.error("Package manager update failed.");
|
|
55
|
-
process.exit(result.status || 1);
|
|
56
|
-
}
|
|
57
|
-
logger.break();
|
|
58
|
-
logger.success("All packages updated to latest version!");
|
|
6
|
+
import { sync } from "cross-spawn";
|
|
7
|
+
//#region src/commands/update.ts
|
|
8
|
+
const update = new Command().name("update").description("Update all '@assistant-ui/*' and 'assistant-*' packages in package.json to latest versions using your package manager.").option("--dry", "Print the package manager command instead of running it.").option("-c, --cwd <cwd>", "the working directory. defaults to the current directory.", process.cwd()).action(async (opts) => {
|
|
9
|
+
const packageJsonPath = path.join(opts.cwd, "package.json");
|
|
10
|
+
if (!fs.existsSync(packageJsonPath)) {
|
|
11
|
+
logger.error("No package.json found in the current directory.");
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
const pkg = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
|
|
15
|
+
const sections = ["dependencies", "devDependencies"];
|
|
16
|
+
const targets = [];
|
|
17
|
+
for (const section of sections) {
|
|
18
|
+
if (!pkg[section]) continue;
|
|
19
|
+
for (const dep in pkg[section]) if (dep.startsWith("@assistant-ui/") || dep === "assistant-stream" || dep === "assistant-cloud") targets.push(dep);
|
|
20
|
+
}
|
|
21
|
+
if (!targets.length) {
|
|
22
|
+
logger.warn("No matching packages found to update.");
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
logger.info(`Found ${targets.length} package(s) to update:`);
|
|
26
|
+
targets.forEach((pkg) => {
|
|
27
|
+
logger.info(` - ${pkg}`);
|
|
28
|
+
});
|
|
29
|
+
logger.break();
|
|
30
|
+
const installCmd = await getInstallCommand(targets.map((d) => `${d}@latest`), opts.cwd);
|
|
31
|
+
if (opts.dry) {
|
|
32
|
+
logger.info("Dry run: would run the following command:");
|
|
33
|
+
logger.info(` ${installCmd.command} ${installCmd.args.join(" ")}`);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
logger.step("Updating packages...");
|
|
37
|
+
const result = sync(installCmd.command, installCmd.args, {
|
|
38
|
+
stdio: "inherit",
|
|
39
|
+
cwd: opts.cwd
|
|
40
|
+
});
|
|
41
|
+
if (result.status !== 0) {
|
|
42
|
+
logger.error("Package manager update failed.");
|
|
43
|
+
process.exit(result.status || 1);
|
|
44
|
+
}
|
|
45
|
+
logger.break();
|
|
46
|
+
logger.success("All packages updated to latest version!");
|
|
59
47
|
});
|
|
48
|
+
//#endregion
|
|
49
|
+
export { update };
|
|
50
|
+
|
|
60
51
|
//# sourceMappingURL=update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","
|
|
1
|
+
{"version":3,"file":"update.js","names":["spawnSync"],"sources":["../../src/commands/update.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { sync as spawnSync } from \"cross-spawn\";\nimport { logger } from \"../lib/utils/logger\";\nimport { getInstallCommand } from \"../lib/utils/package-manager\";\n\nexport const update = new Command()\n .name(\"update\")\n .description(\n \"Update all '@assistant-ui/*' and 'assistant-*' packages in package.json to latest versions using your package manager.\",\n )\n .option(\"--dry\", \"Print the package manager command instead of running it.\")\n .option(\n \"-c, --cwd <cwd>\",\n \"the working directory. defaults to the current directory.\",\n process.cwd(),\n )\n .action(async (opts) => {\n const packageJsonPath = path.join(opts.cwd, \"package.json\");\n if (!fs.existsSync(packageJsonPath)) {\n logger.error(\"No package.json found in the current directory.\");\n process.exit(1);\n }\n\n const pkg = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\"));\n const sections = [\"dependencies\", \"devDependencies\"];\n const targets: string[] = [];\n\n for (const section of sections) {\n if (!pkg[section]) continue;\n for (const dep in pkg[section]) {\n if (\n dep.startsWith(\"@assistant-ui/\") ||\n dep === \"assistant-stream\" ||\n dep === \"assistant-cloud\"\n ) {\n targets.push(dep);\n }\n }\n }\n\n if (!targets.length) {\n logger.warn(\"No matching packages found to update.\");\n return;\n }\n\n logger.info(`Found ${targets.length} package(s) to update:`);\n targets.forEach((pkg) => {\n logger.info(` - ${pkg}`);\n });\n logger.break();\n\n // Build command using the utility\n const installCmd = await getInstallCommand(\n targets.map((d) => `${d}@latest`),\n opts.cwd,\n );\n\n if (opts.dry) {\n logger.info(\"Dry run: would run the following command:\");\n logger.info(` ${installCmd.command} ${installCmd.args.join(\" \")}`);\n return;\n }\n\n logger.step(\"Updating packages...\");\n const result = spawnSync(installCmd.command, installCmd.args, {\n stdio: \"inherit\",\n cwd: opts.cwd,\n });\n\n if (result.status !== 0) {\n logger.error(\"Package manager update failed.\");\n process.exit(result.status || 1);\n }\n\n logger.break();\n logger.success(\"All packages updated to latest version!\");\n });\n"],"mappings":";;;;;;;AAOA,MAAa,SAAS,IAAI,QAAQ,EAC/B,KAAK,QAAQ,EACb,YACC,wHACF,EACC,OAAO,SAAS,0DAA0D,EAC1E,OACC,mBACA,6DACA,QAAQ,IAAI,CACd,EACC,OAAO,OAAO,SAAS;CACtB,MAAM,kBAAkB,KAAK,KAAK,KAAK,KAAK,cAAc;CAC1D,IAAI,CAAC,GAAG,WAAW,eAAe,GAAG;EACnC,OAAO,MAAM,iDAAiD;EAC9D,QAAQ,KAAK,CAAC;CAChB;CAEA,MAAM,MAAM,KAAK,MAAM,GAAG,aAAa,iBAAiB,OAAO,CAAC;CAChE,MAAM,WAAW,CAAC,gBAAgB,iBAAiB;CACnD,MAAM,UAAoB,CAAC;CAE3B,KAAK,MAAM,WAAW,UAAU;EAC9B,IAAI,CAAC,IAAI,UAAU;EACnB,KAAK,MAAM,OAAO,IAAI,UACpB,IACE,IAAI,WAAW,gBAAgB,KAC/B,QAAQ,sBACR,QAAQ,mBAER,QAAQ,KAAK,GAAG;CAGtB;CAEA,IAAI,CAAC,QAAQ,QAAQ;EACnB,OAAO,KAAK,uCAAuC;EACnD;CACF;CAEA,OAAO,KAAK,SAAS,QAAQ,OAAO,uBAAuB;CAC3D,QAAQ,SAAS,QAAQ;EACvB,OAAO,KAAK,OAAO,KAAK;CAC1B,CAAC;CACD,OAAO,MAAM;CAGb,MAAM,aAAa,MAAM,kBACvB,QAAQ,KAAK,MAAM,GAAG,EAAE,QAAQ,GAChC,KAAK,GACP;CAEA,IAAI,KAAK,KAAK;EACZ,OAAO,KAAK,2CAA2C;EACvD,OAAO,KAAK,KAAK,WAAW,QAAQ,GAAG,WAAW,KAAK,KAAK,GAAG,GAAG;EAClE;CACF;CAEA,OAAO,KAAK,sBAAsB;CAClC,MAAM,SAASA,KAAU,WAAW,SAAS,WAAW,MAAM;EAC5D,OAAO;EACP,KAAK,KAAK;CACZ,CAAC;CAED,IAAI,OAAO,WAAW,GAAG;EACvB,OAAO,MAAM,gCAAgC;EAC7C,QAAQ,KAAK,OAAO,UAAU,CAAC;CACjC;CAEA,OAAO,MAAM;CACb,OAAO,QAAQ,yCAAyC;AAC1D,CAAC"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
|
|
3
|
+
//#region src/commands/upgrade.d.ts
|
|
4
|
+
interface TransformOptions {
|
|
5
|
+
dry?: boolean;
|
|
6
|
+
print?: boolean;
|
|
7
|
+
verbose?: boolean;
|
|
8
|
+
jscodeshift?: string;
|
|
7
9
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
declare const codemodCommand: Command;
|
|
11
|
+
declare const upgradeCommand: Command;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { TransformOptions, codemodCommand, upgradeCommand };
|
|
10
14
|
//# sourceMappingURL=upgrade.d.ts.map
|