create-codemodekit 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -1,20 +1,37 @@
1
1
  #!/usr/bin/env node
2
+ import { createInterface } from "node:readline/promises";
3
+ import { realpathSync } from "node:fs";
4
+ import path from "node:path";
5
+ import { fileURLToPath } from "node:url";
2
6
  import { parseMcpCommand } from "./command.js";
3
- import { scaffoldCodeModeMcp } from "./scaffold.js";
4
- export async function runCli(args) {
7
+ import { scaffoldCodeModeMcp, } from "./scaffold.js";
8
+ export async function runCli(args, runtime = {}) {
5
9
  if (args.includes("--help") || args.includes("-h")) {
6
- process.stdout.write(usage());
10
+ (runtime.write ?? process.stdout.write.bind(process.stdout))(usage());
7
11
  return;
8
12
  }
9
- const options = parseOptions(args);
13
+ const draft = parseOptions(args);
14
+ const needsPrompt = requiresPrompt(draft);
15
+ const ownedPrompter = needsPrompt && runtime.prompter === undefined ? terminalPrompter() : undefined;
16
+ const prompter = runtime.prompter ?? ownedPrompter;
17
+ if (needsPrompt && prompter === undefined) {
18
+ throw new TypeError("Missing required options in a non-interactive terminal; pass a directory and source flags");
19
+ }
20
+ let options;
21
+ try {
22
+ options = await completeOptions(draft, prompter);
23
+ }
24
+ finally {
25
+ ownedPrompter?.close?.();
26
+ }
10
27
  const result = await scaffoldCodeModeMcp({
11
28
  targetDirectory: options.targetDirectory,
12
- mcpName: options.mcpName,
13
- mcpCommand: parseMcpCommand(options.mcpCommand),
29
+ source: options.source,
14
30
  ...(options.serverName === undefined
15
31
  ? {}
16
32
  : { serverName: options.serverName }),
17
33
  policy: options.policy,
34
+ authoringSkill: options.authoringSkill,
18
35
  install: options.install,
19
36
  ...(options.codemodekitVersion === undefined
20
37
  ? {}
@@ -23,18 +40,37 @@ export async function runCli(args) {
23
40
  ? {}
24
41
  : { createCodemodekitVersion: options.createCodemodekitVersion }),
25
42
  ...(options.agentPlugin
26
- ? { agentPlugin: { sync: options.sync && options.install } }
43
+ ? {
44
+ agentPlugin: {
45
+ sync: options.sync && options.install,
46
+ ...(options.pluginName === undefined
47
+ ? {}
48
+ : { pluginName: options.pluginName }),
49
+ ...(options.skillName === undefined
50
+ ? {}
51
+ : { skillName: options.skillName }),
52
+ ...(options.pluginDescription === undefined
53
+ ? {}
54
+ : { description: options.pluginDescription }),
55
+ ...(options.pluginLicense === undefined
56
+ ? {}
57
+ : { license: options.pluginLicense }),
58
+ },
59
+ }
27
60
  : {}),
28
61
  });
29
62
  const pluginSummary = result.agentPlugin === undefined
30
63
  ? ""
31
- : result.agentPlugin.synced
32
- ? `Agent Plugin: ready (${result.agentPlugin.skillName})\n`
33
- : `Agent Plugin: scaffolded (${result.agentPlugin.skillName})\n` +
34
- `${result.agentPlugin.syncError === undefined ? "" : `Catalog sync pending: ${result.agentPlugin.syncError}\n`}` +
35
- " npm run plugin:sync\n";
36
- process.stdout.write(`\nCreated ${options.serverName ?? `${options.mcpName}-code-mode`} in ${result.directory}\n\n` +
64
+ : `Agent Plugin: ${result.agentPlugin.built ? "built" : "scaffolded"} (${result.agentPlugin.skillName})\n` +
65
+ `${result.agentPlugin.synced ? "Catalog: synchronized\n" : "Catalog: pending\n"}` +
66
+ `${result.agentPlugin.syncError === undefined ? "" : `Catalog sync pending: ${result.agentPlugin.syncError}\n`}` +
67
+ `${result.agentPlugin.synced ? "" : " npm run plugin:sync\n"}` +
68
+ `${result.agentPlugin.built ? "" : " npm run plugin:build\n"}` +
69
+ " npm run plugin:install:cursor\n";
70
+ const sourceName = options.source.type === "weather" ? "weather" : options.source.name;
71
+ (runtime.write ?? process.stdout.write.bind(process.stdout))(`\nCreated ${options.serverName ?? `${sourceName}-code-mode`} in ${result.directory}\n\n` +
37
72
  `${result.installed ? "" : " npm install\n"} npm start\n\n` +
73
+ `${result.authoringSkillDirectories === undefined ? "" : "Authoring skills: .agents/skills/build-codemodekit-server, .agents/skills/author-codemode-skill\n"}` +
38
74
  pluginSummary +
39
75
  `Tool policy: ${options.policy}\n`);
40
76
  }
@@ -42,9 +78,16 @@ function parseOptions(args) {
42
78
  let targetDirectory;
43
79
  let mcpName;
44
80
  let mcpCommand;
81
+ let mcpUrl;
82
+ let example;
45
83
  let serverName;
46
- let policy = "allow-all";
47
- let agentPlugin = false;
84
+ let pluginName;
85
+ let skillName;
86
+ let pluginDescription;
87
+ let pluginLicense;
88
+ let policy;
89
+ let agentPlugin;
90
+ let authoringSkill = true;
48
91
  let sync = true;
49
92
  let install = true;
50
93
  let codemodekitVersion;
@@ -65,9 +108,23 @@ function parseOptions(args) {
65
108
  continue;
66
109
  }
67
110
  if (argument === "--agent-plugin") {
111
+ if (agentPlugin === false) {
112
+ throw new TypeError("Use either --agent-plugin or --no-agent-plugin");
113
+ }
68
114
  agentPlugin = true;
69
115
  continue;
70
116
  }
117
+ if (argument === "--no-agent-plugin") {
118
+ if (agentPlugin === true) {
119
+ throw new TypeError("Use either --agent-plugin or --no-agent-plugin");
120
+ }
121
+ agentPlugin = false;
122
+ continue;
123
+ }
124
+ if (argument === "--no-authoring-skill") {
125
+ authoringSkill = false;
126
+ continue;
127
+ }
71
128
  if (argument === "--no-sync") {
72
129
  sync = false;
73
130
  continue;
@@ -78,15 +135,36 @@ function parseOptions(args) {
78
135
  }
79
136
  index += 1;
80
137
  switch (argument) {
138
+ case "--example":
139
+ if (value !== "weather") {
140
+ throw new TypeError("--example currently supports only weather");
141
+ }
142
+ example = value;
143
+ break;
81
144
  case "--mcp-name":
82
145
  mcpName = value;
83
146
  break;
84
147
  case "--mcp-command":
85
148
  mcpCommand = value;
86
149
  break;
150
+ case "--mcp-url":
151
+ mcpUrl = value;
152
+ break;
87
153
  case "--server-name":
88
154
  serverName = value;
89
155
  break;
156
+ case "--plugin-name":
157
+ pluginName = value;
158
+ break;
159
+ case "--skill-name":
160
+ skillName = value;
161
+ break;
162
+ case "--plugin-description":
163
+ pluginDescription = value;
164
+ break;
165
+ case "--plugin-license":
166
+ pluginLicense = value;
167
+ break;
90
168
  case "--policy":
91
169
  if (value !== "allow-all" && value !== "deny-all") {
92
170
  throw new TypeError("--policy must be allow-all or deny-all");
@@ -103,22 +181,31 @@ function parseOptions(args) {
103
181
  throw new TypeError(`Unknown option: ${argument}`);
104
182
  }
105
183
  }
106
- if (targetDirectory === undefined) {
107
- throw new TypeError("A target directory is required");
184
+ if (example !== undefined &&
185
+ [mcpName, mcpCommand, mcpUrl].some((value) => value !== undefined)) {
186
+ throw new TypeError("--example cannot be combined with MCP source flags");
108
187
  }
109
- if (mcpName === undefined) {
110
- throw new TypeError("--mcp-name is required");
188
+ if (mcpCommand !== undefined && mcpUrl !== undefined) {
189
+ throw new TypeError("Use either --mcp-command or --mcp-url");
111
190
  }
112
- if (mcpCommand === undefined) {
113
- throw new TypeError("--mcp-command is required");
191
+ if (agentPlugin === false &&
192
+ [pluginName, skillName, pluginDescription, pluginLicense].some((value) => value !== undefined)) {
193
+ throw new TypeError("Plugin metadata options require --agent-plugin");
114
194
  }
115
195
  return {
116
- targetDirectory,
117
- mcpName,
118
- mcpCommand,
196
+ ...(targetDirectory === undefined ? {} : { targetDirectory }),
197
+ ...(mcpName === undefined ? {} : { mcpName }),
198
+ ...(mcpCommand === undefined ? {} : { mcpCommand }),
199
+ ...(mcpUrl === undefined ? {} : { mcpUrl }),
200
+ ...(example === undefined ? {} : { example }),
119
201
  ...(serverName === undefined ? {} : { serverName }),
120
- policy,
121
- agentPlugin,
202
+ ...(pluginName === undefined ? {} : { pluginName }),
203
+ ...(skillName === undefined ? {} : { skillName }),
204
+ ...(pluginDescription === undefined ? {} : { pluginDescription }),
205
+ ...(pluginLicense === undefined ? {} : { pluginLicense }),
206
+ ...(policy === undefined ? {} : { policy }),
207
+ ...(agentPlugin === undefined ? {} : { agentPlugin }),
208
+ authoringSkill,
122
209
  sync,
123
210
  install,
124
211
  ...(codemodekitVersion === undefined ? {} : { codemodekitVersion }),
@@ -127,19 +214,199 @@ function parseOptions(args) {
127
214
  : { createCodemodekitVersion }),
128
215
  };
129
216
  }
217
+ function requiresPrompt(draft) {
218
+ if (draft.targetDirectory === undefined)
219
+ return true;
220
+ if (draft.example !== undefined)
221
+ return false;
222
+ if (draft.mcpCommand === undefined && draft.mcpUrl === undefined)
223
+ return true;
224
+ return draft.mcpName === undefined;
225
+ }
226
+ async function completeOptions(draft, prompter) {
227
+ const targetDirectory = draft.targetDirectory ??
228
+ (await requiredInput(prompter, "Project directory", "weather-code-mode"));
229
+ let source;
230
+ if (draft.example === "weather") {
231
+ source = { type: "weather" };
232
+ }
233
+ else if (draft.mcpCommand !== undefined) {
234
+ source = {
235
+ type: "mcp-stdio",
236
+ name: draft.mcpName ??
237
+ (await requiredInput(prompter, "Tool source name", "upstream")),
238
+ command: parseMcpCommand(draft.mcpCommand),
239
+ };
240
+ }
241
+ else if (draft.mcpUrl !== undefined) {
242
+ source = {
243
+ type: "mcp-http",
244
+ name: draft.mcpName ??
245
+ (await requiredInput(prompter, "Tool source name", "upstream")),
246
+ url: draft.mcpUrl,
247
+ };
248
+ }
249
+ else {
250
+ if (prompter === undefined)
251
+ throw new TypeError("A tool source is required");
252
+ const starter = await prompter.select("What would you like to connect?", [
253
+ { label: "Weather starter", value: "weather" },
254
+ { label: "MCP command", value: "mcp-command" },
255
+ { label: "Remote MCP URL", value: "mcp-url" },
256
+ ], "weather");
257
+ if (starter === "weather") {
258
+ source = { type: "weather" };
259
+ }
260
+ else {
261
+ const name = await requiredInput(prompter, "Tool source name", "upstream");
262
+ if (starter === "mcp-command") {
263
+ source = {
264
+ type: "mcp-stdio",
265
+ name,
266
+ command: parseMcpCommand(await requiredInput(prompter, "MCP command")),
267
+ };
268
+ }
269
+ else {
270
+ source = {
271
+ type: "mcp-http",
272
+ name,
273
+ url: await requiredInput(prompter, "Remote MCP URL"),
274
+ };
275
+ }
276
+ }
277
+ }
278
+ const interactive = prompter !== undefined;
279
+ const agentPlugin = draft.agentPlugin ??
280
+ (interactive
281
+ ? await prompter.confirm("Generate an Agent Plugin?", true)
282
+ : source.type === "weather");
283
+ const policy = draft.policy ??
284
+ (interactive
285
+ ? await prompter.select("Starting tool policy", [
286
+ { label: "Allow all discovered tools", value: "allow-all" },
287
+ { label: "Deny all until edited", value: "deny-all" },
288
+ ], "allow-all")
289
+ : "allow-all");
290
+ if (!agentPlugin &&
291
+ [
292
+ draft.pluginName,
293
+ draft.skillName,
294
+ draft.pluginDescription,
295
+ draft.pluginLicense,
296
+ ].some((value) => value !== undefined)) {
297
+ throw new TypeError("Plugin metadata options require --agent-plugin");
298
+ }
299
+ return {
300
+ targetDirectory,
301
+ source,
302
+ ...(draft.serverName === undefined ? {} : { serverName: draft.serverName }),
303
+ ...(draft.pluginName === undefined ? {} : { pluginName: draft.pluginName }),
304
+ ...(draft.skillName === undefined ? {} : { skillName: draft.skillName }),
305
+ ...(draft.pluginDescription === undefined
306
+ ? {}
307
+ : { pluginDescription: draft.pluginDescription }),
308
+ ...(draft.pluginLicense === undefined
309
+ ? {}
310
+ : { pluginLicense: draft.pluginLicense }),
311
+ policy,
312
+ agentPlugin,
313
+ authoringSkill: draft.authoringSkill,
314
+ sync: draft.sync,
315
+ install: draft.install,
316
+ ...(draft.codemodekitVersion === undefined
317
+ ? {}
318
+ : { codemodekitVersion: draft.codemodekitVersion }),
319
+ ...(draft.createCodemodekitVersion === undefined
320
+ ? {}
321
+ : { createCodemodekitVersion: draft.createCodemodekitVersion }),
322
+ };
323
+ }
324
+ function terminalPrompter() {
325
+ if (process.stdin.isTTY !== true || process.stdout.isTTY !== true) {
326
+ return undefined;
327
+ }
328
+ const readline = createInterface({ input: process.stdin, output: process.stdout });
329
+ return {
330
+ input: async (message, defaultValue) => {
331
+ const suffix = defaultValue === undefined ? ": " : ` (${defaultValue}): `;
332
+ const answer = (await readline.question(`${message}${suffix}`)).trim();
333
+ return answer === "" && defaultValue !== undefined ? defaultValue : answer;
334
+ },
335
+ select: async (message, choices, defaultValue) => {
336
+ const defaultIndex = Math.max(0, choices.findIndex((choice) => choice.value === defaultValue));
337
+ const menu = choices
338
+ .map((choice, index) => ` ${String(index + 1)}) ${choice.label}`)
339
+ .join("\n");
340
+ while (true) {
341
+ const answer = (await readline.question(`${message}\n${menu}\nChoice (${String(defaultIndex + 1)}): `)).trim();
342
+ const selected = answer === "" ? defaultIndex : Number(answer) - 1;
343
+ const choice = choices[selected];
344
+ if (choice !== undefined)
345
+ return choice.value;
346
+ process.stdout.write("Choose one of the listed numbers.\n");
347
+ }
348
+ },
349
+ confirm: async (message, defaultValue) => {
350
+ while (true) {
351
+ const marker = defaultValue ? "Y/n" : "y/N";
352
+ const answer = (await readline.question(`${message} (${marker}): `))
353
+ .trim()
354
+ .toLowerCase();
355
+ if (answer === "")
356
+ return defaultValue;
357
+ if (answer === "y" || answer === "yes")
358
+ return true;
359
+ if (answer === "n" || answer === "no")
360
+ return false;
361
+ process.stdout.write("Answer yes or no.\n");
362
+ }
363
+ },
364
+ close: () => readline.close(),
365
+ };
366
+ }
367
+ async function requiredInput(prompter, message, defaultValue) {
368
+ if (prompter === undefined)
369
+ throw new TypeError(`${message} is required`);
370
+ while (true) {
371
+ const value = (await prompter.input(message, defaultValue)).trim();
372
+ if (value !== "")
373
+ return value;
374
+ }
375
+ }
130
376
  function usage() {
131
377
  return `Create a batteries-included Code Mode MCP server.
132
378
 
133
- Usage:
134
- npm create codemodekit@latest <directory> -- \\
379
+ Interactive:
380
+ npm create codemodekit@latest
381
+
382
+ Weather starter:
383
+ npm create codemodekit@latest weather-code-mode -- --example weather
384
+
385
+ MCP command:
386
+ npm create codemodekit@latest my-code-mode -- \\
135
387
  --mcp-name <name> \\
136
388
  --mcp-command '<executable> [args...]'
137
389
 
390
+ Remote MCP:
391
+ npm create codemodekit@latest my-code-mode -- \\
392
+ --mcp-name <name> \\
393
+ --mcp-url <https://example.com/mcp>
394
+
138
395
  Options:
396
+ --example weather Generate the editable Open-Meteo Local Tools starter
397
+ --mcp-name <name> Name beneath tools.* for an MCP source
398
+ --mcp-command <command> Shell-free stdio MCP executable and arguments
399
+ --mcp-url <url> Streamable HTTP MCP endpoint
139
400
  --server-name <name> Downstream MCP server name
140
- --policy allow-all Allow every discovered upstream tool (default)
141
- --policy deny-all Deny every upstream tool until policy is edited
142
- --agent-plugin Add plugin.json, mcp.json, and a companion Agent Skill
401
+ --policy allow-all Allow every discovered tool (default)
402
+ --policy deny-all Deny every tool until policy is edited
403
+ --agent-plugin Generate a portable Agent Plugin
404
+ --no-agent-plugin Omit the Agent Plugin (weather includes it by default)
405
+ --plugin-name <name> Override the portable plugin name
406
+ --skill-name <name> Override the runtime companion skill name
407
+ --plugin-description <s> Override the plugin manifest description
408
+ --plugin-license <SPDX> Add a license identifier to plugin.json
409
+ --no-authoring-skill Omit both project-local CodeModeKit authoring skills
143
410
  --no-sync Do not snapshot tool types during Agent Plugin creation
144
411
  --no-install Generate files without running npm install
145
412
  --codemodekit-version <v> Override the generated runtime dependency
@@ -148,9 +415,12 @@ Options:
148
415
  -h, --help Show this help
149
416
  `;
150
417
  }
151
- runCli(process.argv.slice(2)).catch((error) => {
152
- const message = error instanceof Error ? error.message : String(error);
153
- process.stderr.write(`create-codemodekit: ${message}\n\n${usage()}`);
154
- process.exitCode = 1;
155
- });
418
+ if (process.argv[1] !== undefined &&
419
+ realpathSync(process.argv[1]) === realpathSync(fileURLToPath(import.meta.url))) {
420
+ runCli(process.argv.slice(2)).catch((error) => {
421
+ const message = error instanceof Error ? error.message : String(error);
422
+ process.stderr.write(`create-codemodekit: ${message}\n\n${usage()}`);
423
+ process.exitCode = 1;
424
+ });
425
+ }
156
426
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAepD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAuB;IAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC;QACvC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC;QAC/C,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS;YAC1C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACvD,GAAG,CAAC,OAAO,CAAC,wBAAwB,KAAK,SAAS;YAChD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,wBAAwB,EAAE,OAAO,CAAC,wBAAwB,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,WAAW;YACrB,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,MAAM,aAAa,GACjB,MAAM,CAAC,WAAW,KAAK,SAAS;QAC9B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM;YACzB,CAAC,CAAC,wBAAwB,MAAM,CAAC,WAAW,CAAC,SAAS,KAAK;YAC3D,CAAC,CAAC,6BAA6B,MAAM,CAAC,WAAW,CAAC,SAAS,KAAK;gBAC9D,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB,MAAM,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE;gBAChH,yBAAyB,CAAC;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,aAAa,OAAO,CAAC,UAAU,IAAI,GAAG,OAAO,CAAC,OAAO,YAAY,OAAO,MAAM,CAAC,SAAS,MAAM;QAC5F,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,iBAAiB;QAC7D,aAAa;QACb,gBAAgB,OAAO,CAAC,MAAM,IAAI,CACrC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAuB;IAC3C,IAAI,eAAmC,CAAC;IACxC,IAAI,OAA2B,CAAC;IAChC,IAAI,UAA8B,CAAC;IACnC,IAAI,UAA8B,CAAC;IACnC,IAAI,MAAM,GAA6B,WAAW,CAAC;IACnD,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,kBAAsC,CAAC;IAC3C,IAAI,wBAA4C,CAAC;IAEjD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAS;QACrC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,IAAI,SAAS,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;YAC1D,CAAC;YACD,eAAe,GAAG,QAAQ,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAChC,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YAClC,WAAW,GAAG,IAAI,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7B,IAAI,GAAG,KAAK,CAAC;YACb,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,SAAS,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;QAEX,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,YAAY;gBACf,OAAO,GAAG,KAAK,CAAC;gBAChB,MAAM;YACR,KAAK,eAAe;gBAClB,UAAU,GAAG,KAAK,CAAC;gBACnB,MAAM;YACR,KAAK,eAAe;gBAClB,UAAU,GAAG,KAAK,CAAC;gBACnB,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;oBAClD,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;gBAChE,CAAC;gBACD,MAAM,GAAG,KAAK,CAAC;gBACf,MAAM;YACR,KAAK,uBAAuB;gBAC1B,kBAAkB,GAAG,KAAK,CAAC;gBAC3B,MAAM;YACR,KAAK,8BAA8B;gBACjC,wBAAwB,GAAG,KAAK,CAAC;gBACjC,MAAM;YACR;gBACE,MAAM,IAAI,SAAS,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC;IACnD,CAAC;IAED,OAAO;QACL,eAAe;QACf,OAAO;QACP,UAAU;QACV,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,MAAM;QACN,WAAW;QACX,IAAI;QACJ,OAAO;QACP,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;QACnE,GAAG,CAAC,wBAAwB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,wBAAwB,EAAE,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,SAAS,KAAK;IACZ,OAAO;;;;;;;;;;;;;;;;;;CAkBR,CAAC;AACF,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACrD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,OAAO,OAAO,KAAK,EAAE,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export interface InstallCursorPluginOptions {
2
+ readonly root: string;
3
+ readonly cursorHome?: string;
4
+ readonly nodePath?: string;
5
+ }
6
+ export interface CursorPluginInstallation {
7
+ readonly pluginName: string;
8
+ readonly destination: string;
9
+ readonly artifactDirectory: string;
10
+ readonly nodePath: string;
11
+ }
12
+ export interface CursorPluginStatusOptions {
13
+ readonly root: string;
14
+ readonly cursorHome?: string;
15
+ }
16
+ export interface CursorPluginStatus {
17
+ readonly pluginName: string;
18
+ readonly destination: string;
19
+ readonly installed: boolean;
20
+ }
21
+ /** Builds and installs a concrete copy under Cursor's local plugin directory. */
22
+ export declare function installCursorPlugin(options: InstallCursorPluginOptions): Promise<CursorPluginInstallation>;
23
+ export declare function getCursorPluginStatus(options: CursorPluginStatusOptions): Promise<CursorPluginStatus>;
24
+ export declare function uninstallCursorPlugin(options: CursorPluginStatusOptions): Promise<CursorPluginStatus>;
25
+ //# sourceMappingURL=cursor-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-plugin.d.ts","sourceRoot":"","sources":["../src/cursor-plugin.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,iFAAiF;AACjF,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,wBAAwB,CAAC,CAwCnC;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAY7B;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAM7B"}