assistant-ui 0.0.92 → 0.0.94

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