@roarpeng/graphflow 1.15.0 → 1.15.2

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.
@@ -0,0 +1,291 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CURSOR_HOME_ENV = exports.CURSOR_HOST_ADAPTER_ID = void 0;
4
+ exports.resolveCursorHome = resolveCursorHome;
5
+ exports.getCursorHostStatus = getCursorHostStatus;
6
+ exports.installCursorHost = installCursorHost;
7
+ exports.uninstallCursorHost = uninstallCursorHost;
8
+ /**
9
+ * Cursor HostAdapter install slice.
10
+ *
11
+ * Composes existing MCP + rules + skill installers. Isolated `home` /
12
+ * GRAPHFLOW_CURSOR_HOME writes only under that `.cursor` directory so tests
13
+ * never touch the real user home.
14
+ */
15
+ const node_fs_1 = require("node:fs");
16
+ const node_os_1 = require("node:os");
17
+ const node_path_1 = require("node:path");
18
+ const agent_mcp_installer_1 = require("./agent-mcp-installer");
19
+ const host_adapter_1 = require("./host-adapter");
20
+ const skill_installer_1 = require("./skill-installer");
21
+ exports.CURSOR_HOST_ADAPTER_ID = "cursor";
22
+ exports.CURSOR_HOME_ENV = "GRAPHFLOW_CURSOR_HOME";
23
+ const CURSOR_PROFILE_IDS = ["cursor", "cursor-windows"];
24
+ function cursorDisplayName() {
25
+ return (0, host_adapter_1.getHostAdapter)(exports.CURSOR_HOST_ADAPTER_ID)?.displayName ?? "Cursor";
26
+ }
27
+ function isolatedCursorHome(override) {
28
+ const explicit = override?.trim() || process.env[exports.CURSOR_HOME_ENV]?.trim();
29
+ return explicit || undefined;
30
+ }
31
+ function resolveCursorHome(override) {
32
+ return isolatedCursorHome(override) ?? (0, node_path_1.join)((0, node_os_1.homedir)(), ".cursor");
33
+ }
34
+ function cursorPaths(home) {
35
+ return {
36
+ mcpPath: (0, node_path_1.join)(home, "mcp.json"),
37
+ rulesPath: (0, node_path_1.join)(home, "rules", "graphflow.mdc"),
38
+ skillPath: (0, node_path_1.join)(home, "skills", "graphflow", "SKILL.md"),
39
+ skillsRoot: (0, node_path_1.join)(home, "skills"),
40
+ };
41
+ }
42
+ function isMcpServerInstalled(configPath, serverName = "graphflow") {
43
+ if (!(0, node_fs_1.existsSync)(configPath))
44
+ return false;
45
+ try {
46
+ const json = JSON.parse((0, node_fs_1.readFileSync)(configPath, "utf8"));
47
+ return Boolean(json.mcpServers?.[serverName]);
48
+ }
49
+ catch {
50
+ return false;
51
+ }
52
+ }
53
+ function copyIfChanged(sourcePath, destDir, destFileName) {
54
+ const destFile = (0, node_path_1.join)(destDir, destFileName);
55
+ const existed = (0, node_fs_1.existsSync)(destFile);
56
+ if (existed && (0, node_fs_1.readFileSync)(destFile, "utf8") === (0, node_fs_1.readFileSync)(sourcePath, "utf8")) {
57
+ return { status: "skipped", filePath: destFile };
58
+ }
59
+ (0, node_fs_1.mkdirSync)(destDir, { recursive: true });
60
+ (0, node_fs_1.copyFileSync)(sourcePath, destFile);
61
+ return { status: existed ? "updated" : "created", filePath: destFile };
62
+ }
63
+ function writeCursorMcp(configPath) {
64
+ try {
65
+ const node = (0, agent_mcp_installer_1.buildMcpServerNode)({ strategy: "npx" });
66
+ const existed = (0, node_fs_1.existsSync)(configPath);
67
+ let json = {};
68
+ if (existed) {
69
+ try {
70
+ json = JSON.parse((0, node_fs_1.readFileSync)(configPath, "utf8"));
71
+ }
72
+ catch {
73
+ json = {};
74
+ }
75
+ }
76
+ const servers = json.mcpServers && typeof json.mcpServers === "object"
77
+ ? { ...json.mcpServers }
78
+ : {};
79
+ const serverExisted = Boolean(servers.graphflow);
80
+ servers.graphflow = node;
81
+ const next = { ...json, mcpServers: servers };
82
+ const payload = `${JSON.stringify(next, null, 2)}\n`;
83
+ if (existed && (0, node_fs_1.readFileSync)(configPath, "utf8") === payload) {
84
+ return { status: "skipped", filePath: configPath, message: "already up to date" };
85
+ }
86
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(configPath), { recursive: true });
87
+ (0, node_fs_1.writeFileSync)(configPath, payload, "utf8");
88
+ if (!existed)
89
+ return { status: "created", filePath: configPath };
90
+ if (!serverExisted)
91
+ return { status: "created", filePath: configPath };
92
+ return { status: "updated", filePath: configPath };
93
+ }
94
+ catch (error) {
95
+ return {
96
+ status: "error",
97
+ filePath: configPath,
98
+ message: error instanceof Error ? error.message : String(error),
99
+ };
100
+ }
101
+ }
102
+ function rollupStatus(results) {
103
+ if (results.some((item) => item.status === "error"))
104
+ return "error";
105
+ if (results.some((item) => item.status === "created" || item.status === "injected"))
106
+ return "created";
107
+ if (results.some((item) => item.status === "updated"))
108
+ return "updated";
109
+ return "skipped";
110
+ }
111
+ function detectedCursorProfileIds() {
112
+ const ids = (0, agent_mcp_installer_1.detectInstalledAgents)()
113
+ .map((agent) => agent.id)
114
+ .filter((id) => CURSOR_PROFILE_IDS.includes(id));
115
+ if (ids.length === 0 && (0, node_fs_1.existsSync)((0, node_path_1.join)((0, node_os_1.homedir)(), ".cursor"))) {
116
+ return ["cursor"];
117
+ }
118
+ return ids;
119
+ }
120
+ function installCursorSkillAt(skillsRoot) {
121
+ const sourceDir = (0, skill_installer_1.resolveSkillSourcePath)();
122
+ const destFile = (0, node_path_1.join)(skillsRoot, "graphflow", "SKILL.md");
123
+ if (!sourceDir) {
124
+ return { status: "skipped", filePath: destFile, message: "Skill source (SKILL.md) not found" };
125
+ }
126
+ try {
127
+ const copied = copyIfChanged((0, node_path_1.join)(sourceDir, "SKILL.md"), (0, node_path_1.join)(skillsRoot, "graphflow"), "SKILL.md");
128
+ return copied;
129
+ }
130
+ catch (error) {
131
+ return {
132
+ status: "error",
133
+ filePath: destFile,
134
+ message: error instanceof Error ? error.message : String(error),
135
+ };
136
+ }
137
+ }
138
+ function installCursorRulesAt(home) {
139
+ const rulesPath = (0, node_path_1.join)(home, "rules", "graphflow.mdc");
140
+ const sourceDir = (0, skill_installer_1.resolveCursorRulesSourcePath)();
141
+ if (!sourceDir) {
142
+ return { status: "skipped", filePath: rulesPath, message: "Cursor rules source (graphflow.mdc) not found" };
143
+ }
144
+ try {
145
+ return copyIfChanged((0, node_path_1.join)(sourceDir, "graphflow.mdc"), (0, node_path_1.join)(home, "rules"), "graphflow.mdc");
146
+ }
147
+ catch (error) {
148
+ return {
149
+ status: "error",
150
+ filePath: rulesPath,
151
+ message: error instanceof Error ? error.message : String(error),
152
+ };
153
+ }
154
+ }
155
+ function resultFromParts(parts, fallbackPath) {
156
+ const status = rollupStatus(parts);
157
+ const filePath = parts.find((part) => part.filePath)?.filePath ?? fallbackPath;
158
+ const message = parts
159
+ .map((part) => part.message)
160
+ .filter((item) => Boolean(item))
161
+ .join("; ");
162
+ const result = { status, filePath };
163
+ if (message)
164
+ result.message = message;
165
+ return result;
166
+ }
167
+ function getCursorHostStatus(options = {}) {
168
+ const isolated = isolatedCursorHome(options.home);
169
+ const home = resolveCursorHome(options.home);
170
+ const paths = cursorPaths(home);
171
+ const agent = cursorDisplayName();
172
+ if (isolated) {
173
+ const detected = (0, node_fs_1.existsSync)(home);
174
+ const mcpInstalled = detected && isMcpServerInstalled(paths.mcpPath);
175
+ const rulesInstalled = (0, node_fs_1.existsSync)(paths.rulesPath);
176
+ const skillInstalled = (0, node_fs_1.existsSync)(paths.skillPath);
177
+ return {
178
+ hostId: exports.CURSOR_HOST_ADAPTER_ID,
179
+ agent,
180
+ detected,
181
+ installed: mcpInstalled,
182
+ mcpInstalled,
183
+ rulesInstalled,
184
+ skillInstalled,
185
+ home,
186
+ mcpPath: paths.mcpPath,
187
+ rulesPath: paths.rulesPath,
188
+ skillPath: paths.skillPath,
189
+ mcpTargets: detected
190
+ ? [{ path: paths.mcpPath, installed: mcpInstalled, scope: "user", agentName: agent }]
191
+ : [],
192
+ };
193
+ }
194
+ const mcp = (0, agent_mcp_installer_1.getMcpInstallStatus)().filter((item) => item.agentId === "cursor" || item.agentId === "cursor-windows");
195
+ const skill = (0, skill_installer_1.getAgentSkillStatus)().find((item) => item.agent === "Cursor skill");
196
+ const detected = mcp.length > 0 || (0, node_fs_1.existsSync)(home) || detectedCursorProfileIds().length > 0;
197
+ const mcpInstalled = mcp.some((item) => item.installed);
198
+ const skillInstalled = skill?.installed ?? (0, node_fs_1.existsSync)(paths.skillPath);
199
+ const rulesInstalled = (0, node_fs_1.existsSync)(paths.rulesPath);
200
+ return {
201
+ hostId: exports.CURSOR_HOST_ADAPTER_ID,
202
+ agent,
203
+ detected,
204
+ installed: mcpInstalled,
205
+ mcpInstalled,
206
+ rulesInstalled,
207
+ skillInstalled,
208
+ home,
209
+ mcpPath: mcp[0]?.configPath ?? paths.mcpPath,
210
+ rulesPath: paths.rulesPath,
211
+ skillPath: skill?.configPath ?? paths.skillPath,
212
+ mcpTargets: mcp.map((item) => ({
213
+ path: item.configPath,
214
+ installed: item.installed,
215
+ scope: item.scope,
216
+ agentName: item.agentName,
217
+ })),
218
+ };
219
+ }
220
+ function installCursorHost(options = {}) {
221
+ const isolated = isolatedCursorHome(options.home);
222
+ const home = resolveCursorHome(options.home);
223
+ const paths = cursorPaths(home);
224
+ if (isolated) {
225
+ if (!(0, node_fs_1.existsSync)(home)) {
226
+ return { status: "skipped", filePath: paths.mcpPath, message: `${cursorDisplayName()} not detected` };
227
+ }
228
+ const mcp = writeCursorMcp(paths.mcpPath);
229
+ const rules = installCursorRulesAt(home);
230
+ const skill = installCursorSkillAt(paths.skillsRoot);
231
+ return resultFromParts([mcp, rules, skill], paths.mcpPath);
232
+ }
233
+ const ids = detectedCursorProfileIds();
234
+ if (ids.length === 0 && !(0, node_fs_1.existsSync)(home)) {
235
+ return { status: "skipped", filePath: paths.mcpPath, message: `${cursorDisplayName()} not detected` };
236
+ }
237
+ const mcp = (0, agent_mcp_installer_1.installMcpToDetectedAgents)({
238
+ strategy: "npx",
239
+ installScope: "user",
240
+ agentIdsOverride: ids.length > 0 ? ids : ["cursor"],
241
+ });
242
+ const rules = (0, skill_installer_1.installCursorRules)();
243
+ const skill = (0, node_fs_1.existsSync)(home)
244
+ ? installCursorSkillAt(paths.skillsRoot)
245
+ : { status: "skipped", filePath: paths.skillPath, message: "Cursor skill marker not found" };
246
+ return resultFromParts([
247
+ ...mcp.map((item) => ({
248
+ status: item.status,
249
+ filePath: item.configPath,
250
+ ...(item.message ? { message: item.message } : {}),
251
+ })),
252
+ ...rules.map((item) => ({
253
+ status: item.status,
254
+ ...(item.message ? { message: item.message } : {}),
255
+ })),
256
+ skill,
257
+ ], mcp[0]?.configPath ?? paths.mcpPath);
258
+ }
259
+ function uninstallCursorHost(options = {}) {
260
+ const isolated = isolatedCursorHome(options.home);
261
+ const home = resolveCursorHome(options.home);
262
+ const paths = cursorPaths(home);
263
+ if (isolated) {
264
+ if (!(0, node_fs_1.existsSync)(paths.mcpPath) && !(0, node_fs_1.existsSync)(paths.rulesPath) && !(0, node_fs_1.existsSync)(paths.skillPath)) {
265
+ return { status: "skipped", filePath: paths.mcpPath, message: "not found" };
266
+ }
267
+ const mcpRemoved = (0, node_fs_1.existsSync)(paths.mcpPath) ? (0, agent_mcp_installer_1.removeMcpEntry)(paths.mcpPath, "mcpServers", "graphflow") : false;
268
+ const rulesRemoved = (0, skill_installer_1.removeGraphFlowOwnedFile)(paths.rulesPath);
269
+ const skillRemoved = (0, skill_installer_1.removeAgentSkill)(paths.skillsRoot);
270
+ if (!mcpRemoved && !rulesRemoved && !skillRemoved) {
271
+ return { status: "skipped", filePath: paths.mcpPath, message: "no GraphFlow Cursor files" };
272
+ }
273
+ return { status: "updated", filePath: paths.mcpPath, message: "removed GraphFlow Cursor MCP + rules + skill" };
274
+ }
275
+ const mcp = [
276
+ ...(0, agent_mcp_installer_1.uninstallMcpFromDetectedAgents)({ agentId: "cursor" }),
277
+ ...(0, agent_mcp_installer_1.uninstallMcpFromDetectedAgents)({ agentId: "cursor-windows" }),
278
+ ];
279
+ const rulesRemoved = (0, skill_installer_1.removeGraphFlowOwnedFile)(paths.rulesPath);
280
+ const appData = process.env.APPDATA;
281
+ const appDataRules = process.platform === "win32" && appData
282
+ ? (0, skill_installer_1.removeGraphFlowOwnedFile)((0, node_path_1.join)(appData, "Cursor", "User", "rules", "graphflow.mdc"))
283
+ : false;
284
+ const skillRemoved = (0, skill_installer_1.removeAgentSkill)(paths.skillsRoot);
285
+ const mcpRemoved = mcp.some((item) => item.removed);
286
+ if (!mcpRemoved && !rulesRemoved && !appDataRules && !skillRemoved) {
287
+ return { status: "skipped", filePath: paths.mcpPath, message: "no GraphFlow Cursor files" };
288
+ }
289
+ return { status: "updated", filePath: paths.mcpPath, message: "removed GraphFlow Cursor MCP + rules + skill" };
290
+ }
291
+ //# sourceMappingURL=cursor-host-installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-host-installer.js","sourceRoot":"","sources":["../../src/integrations/cursor-host-installer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,16 @@
1
- import { DSH_HOST_ADAPTER_ID, type DshHarnessInstallResult, type DshHarnessStatus } from "./dsh-harness-installer";
2
- export { DSH_HOST_ADAPTER_ID };
1
+ /**
2
+ * Thin HostAdapter install dispatch.
3
+ *
4
+ * v1.13 added the capability registry (`host-adapter.ts`). Migrated install
5
+ * slices: DeepSeek Harness, Cursor, and Claude Code. Other IDE installers
6
+ * (Trae, VS Code, Windsurf, Codex, Gemini, …) still use the legacy paths.
7
+ */
8
+ import { CLAUDE_CODE_HOST_ADAPTER_ID } from "./claude-code-host-installer";
9
+ import { CURSOR_HOST_ADAPTER_ID } from "./cursor-host-installer";
10
+ import { DSH_HOST_ADAPTER_ID, type DshHarnessInstallResult } from "./dsh-harness-installer";
11
+ export { CLAUDE_CODE_HOST_ADAPTER_ID, CURSOR_HOST_ADAPTER_ID, DSH_HOST_ADAPTER_ID };
3
12
  export declare const HOST_ADAPTER_INSTALL_UNMIGRATED = "install path is not yet migrated onto HostAdapter";
13
+ export declare const HOST_ADAPTER_MIGRATED_IDS: readonly ["deepseek-harness", "cursor", "claude-code"];
4
14
  export interface HostAdapterInstallOptions {
5
15
  home?: string;
6
16
  }
@@ -12,8 +22,33 @@ export interface HostAdapterInstallResult {
12
22
  filePath?: string;
13
23
  message?: string;
14
24
  }
15
- /** Install the migrated host slice. DSH only in this PR; other hosts are unsupported. */
25
+ export interface HostAdapterHostStatus {
26
+ hostId: string;
27
+ agent: string;
28
+ detected: boolean;
29
+ installed: boolean;
30
+ glueInstalled?: boolean;
31
+ skillInstalled?: boolean;
32
+ mcpInstalled?: boolean;
33
+ rulesInstalled?: boolean;
34
+ hooksInstalled?: boolean;
35
+ home?: string;
36
+ mcpPath?: string;
37
+ rulesPath?: string;
38
+ skillPath?: string;
39
+ hooksPath?: string;
40
+ settingsPath?: string;
41
+ patchPath?: string;
42
+ dshHome?: string;
43
+ mcpTargets?: Array<{
44
+ path: string;
45
+ installed: boolean;
46
+ scope?: "user" | "workspace";
47
+ agentName?: string;
48
+ }>;
49
+ }
50
+ /** Install a migrated host slice. Unknown registry ids error; unmigrated hosts are unsupported. */
16
51
  export declare function installViaHostAdapter(hostId: string, options?: HostAdapterInstallOptions): HostAdapterInstallResult;
17
52
  export declare function uninstallViaHostAdapter(hostId: string, options?: HostAdapterInstallOptions): HostAdapterInstallResult;
18
- export declare function getHostAdapterInstallStatus(hostId: string, options?: HostAdapterInstallOptions): DshHarnessStatus | undefined;
53
+ export declare function getHostAdapterInstallStatus(hostId: string, options?: HostAdapterInstallOptions): HostAdapterHostStatus | undefined;
19
54
  //# sourceMappingURL=host-adapter-install.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-adapter-install.d.ts","sourceRoot":"","sources":["../../src/integrations/host-adapter-install.ts"],"names":[],"mappings":"AASA,OAAO,EACL,mBAAmB,EAInB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,eAAO,MAAM,+BAA+B,sDACS,CAAC;AAEtD,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,wBAAwB,GAAG,uBAAuB,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;AAEzF,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,wBAAwB,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAuCD,yFAAyF;AACzF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAO1B;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAO1B;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,yBAA8B,GACtC,gBAAgB,GAAG,SAAS,CAI9B"}
1
+ {"version":3,"file":"host-adapter-install.d.ts","sourceRoot":"","sources":["../../src/integrations/host-adapter-install.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,2BAA2B,EAM5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,sBAAsB,EAMvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mBAAmB,EAInB,KAAK,uBAAuB,EAE7B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,CAAC;AAEpF,eAAO,MAAM,+BAA+B,sDACS,CAAC;AAEtD,eAAO,MAAM,yBAAyB,wDAI5B,CAAC;AAEX,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,wBAAwB,GAAG,uBAAuB,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;AAEzF,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,wBAAwB,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;QAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAiGD,mGAAmG;AACnG,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAa1B;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAa1B;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,yBAA8B,GACtC,qBAAqB,GAAG,SAAS,CAanC"}
@@ -1,21 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HOST_ADAPTER_INSTALL_UNMIGRATED = exports.DSH_HOST_ADAPTER_ID = void 0;
3
+ exports.HOST_ADAPTER_MIGRATED_IDS = exports.HOST_ADAPTER_INSTALL_UNMIGRATED = exports.DSH_HOST_ADAPTER_ID = exports.CURSOR_HOST_ADAPTER_ID = exports.CLAUDE_CODE_HOST_ADAPTER_ID = void 0;
4
4
  exports.installViaHostAdapter = installViaHostAdapter;
5
5
  exports.uninstallViaHostAdapter = uninstallViaHostAdapter;
6
6
  exports.getHostAdapterInstallStatus = getHostAdapterInstallStatus;
7
7
  /**
8
8
  * Thin HostAdapter install dispatch.
9
9
  *
10
- * v1.13 added the capability registry (`host-adapter.ts`). This module is the
11
- * first installer slice on top of it: DeepSeek Harness home overlay.
12
- * Cursor and Claude Code still use their existing installers migrate those
13
- * hosts here next, do not grow this file into a rewrite of agent-mcp-installer.
10
+ * v1.13 added the capability registry (`host-adapter.ts`). Migrated install
11
+ * slices: DeepSeek Harness, Cursor, and Claude Code. Other IDE installers
12
+ * (Trae, VS Code, Windsurf, Codex, Gemini, …) still use the legacy paths.
14
13
  */
15
- const host_adapter_1 = require("./host-adapter");
14
+ const claude_code_host_installer_1 = require("./claude-code-host-installer");
15
+ Object.defineProperty(exports, "CLAUDE_CODE_HOST_ADAPTER_ID", { enumerable: true, get: function () { return claude_code_host_installer_1.CLAUDE_CODE_HOST_ADAPTER_ID; } });
16
+ const cursor_host_installer_1 = require("./cursor-host-installer");
17
+ Object.defineProperty(exports, "CURSOR_HOST_ADAPTER_ID", { enumerable: true, get: function () { return cursor_host_installer_1.CURSOR_HOST_ADAPTER_ID; } });
16
18
  const dsh_harness_installer_1 = require("./dsh-harness-installer");
17
19
  Object.defineProperty(exports, "DSH_HOST_ADAPTER_ID", { enumerable: true, get: function () { return dsh_harness_installer_1.DSH_HOST_ADAPTER_ID; } });
20
+ const host_adapter_1 = require("./host-adapter");
18
21
  exports.HOST_ADAPTER_INSTALL_UNMIGRATED = "install path is not yet migrated onto HostAdapter";
22
+ exports.HOST_ADAPTER_MIGRATED_IDS = [
23
+ dsh_harness_installer_1.DSH_HOST_ADAPTER_ID,
24
+ cursor_host_installer_1.CURSOR_HOST_ADAPTER_ID,
25
+ claude_code_host_installer_1.CLAUDE_CODE_HOST_ADAPTER_ID,
26
+ ];
19
27
  function unknownHost(hostId) {
20
28
  return {
21
29
  hostId,
@@ -35,6 +43,9 @@ function unsupportedHost(hostId, displayName) {
35
43
  function dshHomeOptions(options) {
36
44
  return typeof options.home === "string" ? { dshHome: options.home } : {};
37
45
  }
46
+ function sliceHomeOptions(options) {
47
+ return typeof options.home === "string" ? { home: options.home } : {};
48
+ }
38
49
  function withAdapterMeta(hostId, displayName, result) {
39
50
  const mapped = {
40
51
  hostId,
@@ -47,7 +58,56 @@ function withAdapterMeta(hostId, displayName, result) {
47
58
  mapped.message = result.message;
48
59
  return mapped;
49
60
  }
50
- /** Install the migrated host slice. DSH only in this PR; other hosts are unsupported. */
61
+ function fromDshStatus(status) {
62
+ return {
63
+ hostId: dsh_harness_installer_1.DSH_HOST_ADAPTER_ID,
64
+ agent: status.agent,
65
+ detected: status.detected,
66
+ installed: status.installed,
67
+ glueInstalled: status.glueInstalled,
68
+ skillInstalled: status.skillInstalled,
69
+ home: status.dshHome,
70
+ patchPath: status.patchPath,
71
+ skillPath: status.skillPath,
72
+ dshHome: status.dshHome,
73
+ };
74
+ }
75
+ function fromCursorStatus(status) {
76
+ return {
77
+ hostId: status.hostId,
78
+ agent: status.agent,
79
+ detected: status.detected,
80
+ installed: status.installed,
81
+ mcpInstalled: status.mcpInstalled,
82
+ rulesInstalled: status.rulesInstalled,
83
+ skillInstalled: status.skillInstalled,
84
+ home: status.home,
85
+ mcpPath: status.mcpPath,
86
+ rulesPath: status.rulesPath,
87
+ skillPath: status.skillPath,
88
+ mcpTargets: status.mcpTargets,
89
+ };
90
+ }
91
+ function fromClaudeStatus(status) {
92
+ return {
93
+ hostId: status.hostId,
94
+ agent: status.agent,
95
+ detected: status.detected,
96
+ installed: status.installed,
97
+ mcpInstalled: status.mcpInstalled,
98
+ rulesInstalled: status.rulesInstalled,
99
+ skillInstalled: status.skillInstalled,
100
+ hooksInstalled: status.hooksInstalled,
101
+ home: status.home,
102
+ mcpPath: status.mcpPath,
103
+ rulesPath: status.rulesPath,
104
+ skillPath: status.skillPath,
105
+ hooksPath: status.settingsPath,
106
+ settingsPath: status.settingsPath,
107
+ mcpTargets: status.mcpTargets,
108
+ };
109
+ }
110
+ /** Install a migrated host slice. Unknown registry ids error; unmigrated hosts are unsupported. */
51
111
  function installViaHostAdapter(hostId, options = {}) {
52
112
  const adapter = (0, host_adapter_1.getHostAdapter)(hostId);
53
113
  if (!adapter)
@@ -55,6 +115,12 @@ function installViaHostAdapter(hostId, options = {}) {
55
115
  if (adapter.id === dsh_harness_installer_1.DSH_HOST_ADAPTER_ID) {
56
116
  return withAdapterMeta(adapter.id, adapter.displayName, (0, dsh_harness_installer_1.installDshHarness)(dshHomeOptions(options)));
57
117
  }
118
+ if (adapter.id === cursor_host_installer_1.CURSOR_HOST_ADAPTER_ID) {
119
+ return withAdapterMeta(adapter.id, adapter.displayName, (0, cursor_host_installer_1.installCursorHost)(sliceHomeOptions(options)));
120
+ }
121
+ if (adapter.id === claude_code_host_installer_1.CLAUDE_CODE_HOST_ADAPTER_ID) {
122
+ return withAdapterMeta(adapter.id, adapter.displayName, (0, claude_code_host_installer_1.installClaudeCodeHost)(sliceHomeOptions(options)));
123
+ }
58
124
  return unsupportedHost(adapter.id, adapter.displayName);
59
125
  }
60
126
  function uninstallViaHostAdapter(hostId, options = {}) {
@@ -64,12 +130,27 @@ function uninstallViaHostAdapter(hostId, options = {}) {
64
130
  if (adapter.id === dsh_harness_installer_1.DSH_HOST_ADAPTER_ID) {
65
131
  return withAdapterMeta(adapter.id, adapter.displayName, (0, dsh_harness_installer_1.uninstallDshHarness)(dshHomeOptions(options)));
66
132
  }
133
+ if (adapter.id === cursor_host_installer_1.CURSOR_HOST_ADAPTER_ID) {
134
+ return withAdapterMeta(adapter.id, adapter.displayName, (0, cursor_host_installer_1.uninstallCursorHost)(sliceHomeOptions(options)));
135
+ }
136
+ if (adapter.id === claude_code_host_installer_1.CLAUDE_CODE_HOST_ADAPTER_ID) {
137
+ return withAdapterMeta(adapter.id, adapter.displayName, (0, claude_code_host_installer_1.uninstallClaudeCodeHost)(sliceHomeOptions(options)));
138
+ }
67
139
  return unsupportedHost(adapter.id, adapter.displayName);
68
140
  }
69
141
  function getHostAdapterInstallStatus(hostId, options = {}) {
70
142
  const adapter = (0, host_adapter_1.getHostAdapter)(hostId);
71
- if (!adapter || adapter.id !== dsh_harness_installer_1.DSH_HOST_ADAPTER_ID)
143
+ if (!adapter)
72
144
  return undefined;
73
- return (0, dsh_harness_installer_1.getDshHarnessStatus)(dshHomeOptions(options));
145
+ if (adapter.id === dsh_harness_installer_1.DSH_HOST_ADAPTER_ID) {
146
+ return fromDshStatus((0, dsh_harness_installer_1.getDshHarnessStatus)(dshHomeOptions(options)));
147
+ }
148
+ if (adapter.id === cursor_host_installer_1.CURSOR_HOST_ADAPTER_ID) {
149
+ return fromCursorStatus((0, cursor_host_installer_1.getCursorHostStatus)(sliceHomeOptions(options)));
150
+ }
151
+ if (adapter.id === claude_code_host_installer_1.CLAUDE_CODE_HOST_ADAPTER_ID) {
152
+ return fromClaudeStatus((0, claude_code_host_installer_1.getClaudeCodeHostStatus)(sliceHomeOptions(options)));
153
+ }
154
+ return undefined;
74
155
  }
75
156
  //# sourceMappingURL=host-adapter-install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-adapter-install.js","sourceRoot":"","sources":["../../src/integrations/host-adapter-install.ts"],"names":[],"mappings":";;;AA2EA,sDAUC;AAED,0DAUC;AAED,kEAOC;AA1GD;;;;;;;GAOG;AACH,iDAAgD;AAChD,mEAOiC;AAExB,oGARP,2CAAmB,OAQO;AAEf,QAAA,+BAA+B,GAC1C,mDAAmD,CAAC;AAgBtD,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO;QACL,MAAM;QACN,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,yBAAyB,MAAM,EAAE;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,WAAmB;IAC1D,OAAO;QACL,MAAM;QACN,WAAW;QACX,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,GAAG,WAAW,IAAI,uCAA+B,EAAE;KAC7D,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAkC;IACxD,OAAO,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,eAAe,CACtB,MAAc,EACd,WAAmB,EACnB,MAA+B;IAE/B,MAAM,MAAM,GAA6B;QACvC,MAAM;QACN,WAAW;QACX,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAClE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yFAAyF;AACzF,SAAgB,qBAAqB,CACnC,MAAc,EACd,UAAqC,EAAE;IAEvC,MAAM,OAAO,GAAG,IAAA,6BAAc,EAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,EAAE,KAAK,2CAAmB,EAAE,CAAC;QACvC,OAAO,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,IAAA,yCAAiB,EAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,uBAAuB,CACrC,MAAc,EACd,UAAqC,EAAE;IAEvC,MAAM,OAAO,GAAG,IAAA,6BAAc,EAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,EAAE,KAAK,2CAAmB,EAAE,CAAC;QACvC,OAAO,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,IAAA,2CAAmB,EAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxG,CAAC;IACD,OAAO,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,2BAA2B,CACzC,MAAc,EACd,UAAqC,EAAE;IAEvC,MAAM,OAAO,GAAG,IAAA,6BAAc,EAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,2CAAmB;QAAE,OAAO,SAAS,CAAC;IACrE,OAAO,IAAA,2CAAmB,EAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"host-adapter-install.js","sourceRoot":"","sources":["../../src/integrations/host-adapter-install.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Host capability registry (v1.13).
3
- * Install dispatch lives in `host-adapter-install.ts` — DSH is the first
4
- * migrated slice; Cursor and Claude Code installers are still standalone.
3
+ * Install dispatch lives in `host-adapter-install.ts` — DSH, Cursor, and
4
+ * Claude Code are migrated; other IDE installers remain standalone.
5
5
  */
6
6
  export type HostCapability = "mcp-stdio" | "mcp-http" | "skills" | "rules" | "hooks" | "client-panel" | "workbench";
7
7
  export interface HostAdapter {
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/surfaces/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/surfaces/cli/init.ts"],"names":[],"mappings":"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"}