@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.
- package/CHANGELOG.md +17 -0
- package/README.md +10 -7
- package/README.zh.md +5 -3
- package/dist/integrations/claude-code-host-installer.d.ts +42 -0
- package/dist/integrations/claude-code-host-installer.d.ts.map +1 -0
- package/dist/integrations/claude-code-host-installer.js +341 -0
- package/dist/integrations/claude-code-host-installer.js.map +1 -0
- package/dist/integrations/cursor-host-installer.d.ts +38 -0
- package/dist/integrations/cursor-host-installer.d.ts.map +1 -0
- package/dist/integrations/cursor-host-installer.js +291 -0
- package/dist/integrations/cursor-host-installer.js.map +1 -0
- package/dist/integrations/host-adapter-install.d.ts +39 -4
- package/dist/integrations/host-adapter-install.d.ts.map +1 -1
- package/dist/integrations/host-adapter-install.js +90 -9
- package/dist/integrations/host-adapter-install.js.map +1 -1
- package/dist/integrations/host-adapter.d.ts +2 -2
- package/dist/surfaces/cli/init.d.ts.map +1 -1
- package/dist/surfaces/cli/init.js +115 -59
- package/dist/surfaces/cli/init.js.map +1 -1
- package/package.json +2 -1
- package/plugin.json +1 -1
|
@@ -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":";;;AAsEA,8CAEC;AAkJD,kDAsDC;AAED,8CA6CC;AAED,kDAkCC;AAnWD;;;;;;GAMG;AACH,qCAA2F;AAC3F,qCAAkC;AAClC,yCAA0C;AAC1C,+DAO+B;AAC/B,iDAAgD;AAChD,uDAO2B;AAEd,QAAA,sBAAsB,GAAG,QAAQ,CAAC;AAClC,QAAA,eAAe,GAAG,uBAAuB,CAAC;AAEvD,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAU,CAAC;AA8BjE,SAAS,iBAAiB;IACxB,OAAO,IAAA,6BAAc,EAAC,8BAAsB,CAAC,EAAE,WAAW,IAAI,QAAQ,CAAC;AACzE,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAiB;IAC3C,MAAM,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAe,CAAC,EAAE,IAAI,EAAE,CAAC;IAC1E,OAAO,QAAQ,IAAI,SAAS,CAAC;AAC/B,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAiB;IACjD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,IAAI,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,SAAS,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO;QACL,OAAO,EAAE,IAAA,gBAAI,EAAC,IAAI,EAAE,UAAU,CAAC;QAC/B,SAAS,EAAE,IAAA,gBAAI,EAAC,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC;QAC/C,SAAS,EAAE,IAAA,gBAAI,EAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC;QACxD,UAAU,EAAE,IAAA,gBAAI,EAAC,IAAI,EAAE,QAAQ,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB,EAAE,UAAU,GAAG,WAAW;IACxE,IAAI,CAAC,IAAA,oBAAU,EAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAEvD,CAAC;QACF,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,UAAkB,EAClB,OAAe,EACf,YAAoB;IAEpB,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,OAAO,IAAI,IAAA,sBAAY,EAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,IAAA,sBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;QACnF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACnD,CAAC;IACD,IAAA,mBAAS,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,IAAA,sBAAY,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACxC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,wCAAkB,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC;QACvC,IAAI,IAAI,GAA4B,EAAE,CAAC;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAA4B,CAAC;YACjF,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,GAAG,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GACX,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;YACpD,CAAC,CAAC,EAAE,GAAI,IAAI,CAAC,UAAsC,EAAE;YACrD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACrD,IAAI,OAAO,IAAI,IAAA,sBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC;YAC5D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;QACpF,CAAC;QACD,IAAA,mBAAS,EAAC,IAAA,mBAAO,EAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,IAAA,uBAAa,EAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACjE,IAAI,CAAC,aAAa;YAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACvE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CACnB,OAAkC;IAElC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACpE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACtG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACxE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB;IAC/B,MAAM,GAAG,GAAG,IAAA,2CAAqB,GAAE;SAChC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,EAAE,EAA6C,EAAE,CACvD,kBAAwC,CAAC,QAAQ,CAAC,EAAE,CAAC,CACvD,CAAC;IACJ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,MAAM,SAAS,GAAG,IAAA,wCAAsB,GAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC;IACjG,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,UAAU,CAAC,EAAE,IAAA,gBAAI,EAAC,UAAU,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;QACrG,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,IAAA,8CAA4B,GAAE,CAAC;IACjD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,+CAA+C,EAAE,CAAC;IAC9G,CAAC;IACD,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,eAAe,CAAC,EAAE,IAAA,gBAAI,EAAC,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;IAC/F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,KAAqE,EACrE,YAAoB;IAEpB,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,IAAI,YAAY,CAAC;IAC/E,MAAM,OAAO,GAAG,KAAK;SAClB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;SAC3B,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,MAAM,GAA4B,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC7D,IAAI,OAAO;QAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,mBAAmB,CAAC,UAA6B,EAAE;IACjE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAElC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,IAAA,oBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,IAAA,oBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnD,OAAO;YACL,MAAM,EAAE,8BAAsB;YAC9B,KAAK;YACL,QAAQ;YACR,SAAS,EAAE,YAAY;YACvB,YAAY;YACZ,cAAc;YACd,cAAc;YACd,IAAI;YACJ,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,QAAQ;gBAClB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;gBACrF,CAAC,CAAC,EAAE;SACP,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,yCAAmB,GAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC;IACnH,MAAM,KAAK,GAAG,IAAA,qCAAmB,GAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,IAAA,oBAAU,EAAC,IAAI,CAAC,IAAI,wBAAwB,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7F,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,KAAK,EAAE,SAAS,IAAI,IAAA,oBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvE,MAAM,cAAc,GAAG,IAAA,oBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACnD,OAAO;QACL,MAAM,EAAE,8BAAsB;QAC9B,KAAK;QACL,QAAQ;QACR,SAAS,EAAE,YAAY;QACvB,YAAY;QACZ,cAAc;QACd,cAAc;QACd,IAAI;QACJ,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,KAAK,CAAC,OAAO;QAC5C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,EAAE,UAAU,IAAI,KAAK,CAAC,SAAS;QAC/C,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,SAAgB,iBAAiB,CAAC,UAA6B,EAAE;IAC/D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,iBAAiB,EAAE,eAAe,EAAE,CAAC;QACxG,CAAC;QACD,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrD,OAAO,eAAe,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,GAAG,GAAG,wBAAwB,EAAE,CAAC;IACvC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,iBAAiB,EAAE,eAAe,EAAE,CAAC;IACxG,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,gDAA0B,EAAC;QACrC,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,MAAM;QACpB,gBAAgB,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;KACpD,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC;QACxC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAkB,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IAExG,OAAO,eAAe,CACpB;QACE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnD,CAAC,CAAC;QACH,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnD,CAAC,CAAC;QACH,KAAK;KACN,EACD,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,KAAK,CAAC,OAAO,CACpC,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB,CAAC,UAA6B,EAAE;IACjE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,IAAA,oBAAU,EAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,oBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAA,oBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/F,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAC9E,CAAC;QACD,MAAM,UAAU,GAAG,IAAA,oBAAU,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,oCAAc,EAAC,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAChH,MAAM,YAAY,GAAG,IAAA,0CAAwB,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,IAAA,kCAAgB,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;YAClD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;QAC9F,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC;IACjH,CAAC;IAED,MAAM,GAAG,GAAG;QACV,GAAG,IAAA,oDAA8B,EAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QACxD,GAAG,IAAA,oDAA8B,EAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;KACjE,CAAC;IACF,MAAM,YAAY,GAAG,IAAA,0CAAwB,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IACpC,MAAM,YAAY,GAChB,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO;QACrC,CAAC,CAAC,IAAA,0CAAwB,EAAC,IAAA,gBAAI,EAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QACrF,CAAC,CAAC,KAAK,CAAC;IACZ,MAAM,YAAY,GAAG,IAAA,kCAAgB,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;QACnE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IAC9F,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC;AACjH,CAAC"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
-
|
|
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):
|
|
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":"
|
|
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`).
|
|
11
|
-
*
|
|
12
|
-
*
|
|
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
|
|
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
|
-
|
|
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
|
|
143
|
+
if (!adapter)
|
|
72
144
|
return undefined;
|
|
73
|
-
|
|
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":";;;
|
|
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
|
|
4
|
-
*
|
|
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":"AAKA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAQL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,wCAAwC,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/surfaces/cli/init.ts"],"names":[],"mappings":"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"}
|