@toolr/seedr 0.1.72 → 0.1.74

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.
@@ -423,10 +423,113 @@ function parseAgentsArg(agents, allAgents) {
423
423
  return agents.split(",").map((a) => parseAgentArg(a.trim())).filter((a) => a !== null);
424
424
  }
425
425
 
426
+ // src/utils/ui.ts
427
+ import * as p from "@clack/prompts";
428
+ import chalk from "chalk";
429
+ var brand = chalk.hex("#22c55e");
430
+ var bgBrand = chalk.bgHex("#22c55e").black;
431
+ var LOGO = `
432
+ \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557
433
+ \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557
434
+ \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D
435
+ \u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557
436
+ \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551
437
+ \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D`;
438
+ var URLS = {
439
+ toolr: "https://toolr.dev",
440
+ seedr: "https://seedr.toolr.dev"
441
+ };
442
+ function printLogo() {
443
+ console.log(brand(LOGO));
444
+ console.log(brand(" \u{1F331} Seed your Coding Agents with capabilities"));
445
+ console.log(chalk.gray(` ${URLS.seedr}`));
446
+ console.log();
447
+ }
448
+ async function selectSkill(items) {
449
+ const result = await p.select({
450
+ message: "Select a skill to install",
451
+ options: items.map((item) => ({
452
+ label: item.name,
453
+ value: item,
454
+ hint: item.description
455
+ }))
456
+ });
457
+ return result;
458
+ }
459
+ async function selectAgents(compatible) {
460
+ const allOption = await p.select({
461
+ message: "Which coding agents do you want to install for?",
462
+ options: [
463
+ { label: `All (${compatible.length} agents)`, value: "all" },
464
+ { label: "Select specific agents...", value: "select" }
465
+ ]
466
+ });
467
+ if (p.isCancel(allOption)) return allOption;
468
+ if (allOption === "all") return compatible;
469
+ const result = await p.multiselect({
470
+ message: "Select agents",
471
+ options: compatible.map((agent) => ({
472
+ label: CODING_AGENTS[agent].name,
473
+ value: agent,
474
+ hint: CODING_AGENTS[agent].projectRoot
475
+ })),
476
+ initialValues: ["claude"],
477
+ required: true
478
+ });
479
+ return result;
480
+ }
481
+ async function selectScope(includeLocal = false) {
482
+ const options = [
483
+ { label: "Project", value: "project", hint: includeLocal ? "current directory, settings.json" : "current directory" },
484
+ { label: "User", value: "user", hint: "home directory" },
485
+ ...includeLocal ? [{ label: "Local", value: "local", hint: "current directory, settings.local.json" }] : []
486
+ ];
487
+ const result = await p.select({ message: "Installation scope", options });
488
+ return result;
489
+ }
490
+ async function selectMethod(symlinkPath) {
491
+ const result = await p.select({
492
+ message: "Installation method",
493
+ options: [
494
+ { label: "Symlink", value: "symlink", hint: `shared at ${symlinkPath}` },
495
+ { label: "Copy", value: "copy", hint: "standalone copy per agent" }
496
+ ]
497
+ });
498
+ return result;
499
+ }
500
+ async function confirm2(message) {
501
+ return p.confirm({ message });
502
+ }
503
+ function cancelled() {
504
+ p.cancel("Operation cancelled");
505
+ process.exit(0);
506
+ }
507
+ function intro2(message) {
508
+ p.intro(bgBrand(` ${message} `));
509
+ }
510
+ function outro2(message) {
511
+ p.outro(brand(message));
512
+ }
513
+ function step(message) {
514
+ p.log.step(message);
515
+ }
516
+ function info(message) {
517
+ p.log.info(message);
518
+ }
519
+ function success(message) {
520
+ p.log.success(message);
521
+ }
522
+ function warn(message) {
523
+ p.log.warn(message);
524
+ }
525
+ function error(message) {
526
+ p.log.error(message);
527
+ }
528
+
426
529
  // src/handlers/skill.ts
427
530
  import { join as join4, relative as relative2, dirname as dirname3 } from "path";
428
531
  import { readdir as readdir2, symlink as symlink2, rm as rm2 } from "fs/promises";
429
- import chalk from "chalk";
532
+ import chalk2 from "chalk";
430
533
  import ora from "ora";
431
534
  async function installToCentralLocation(item, sourcePath, cwd) {
432
535
  const centralPath = getAgentsPath("skill", item.slug, cwd);
@@ -463,13 +566,13 @@ async function installSkillForAgent(item, agent, scope, method, cwd, centralPath
463
566
  await fetchItemToDestination(item, destPath);
464
567
  }
465
568
  spinner.succeed(
466
- chalk.green(`Installed ${item.name} for ${CODING_AGENTS[agent].name}`)
569
+ brand(`Installed ${item.name} for ${CODING_AGENTS[agent].name}`)
467
570
  );
468
571
  return { agent, success: true, path: destPath };
469
- } catch (error) {
470
- const errorMsg = error instanceof Error ? error.message : "Unknown error";
572
+ } catch (error2) {
573
+ const errorMsg = error2 instanceof Error ? error2.message : "Unknown error";
471
574
  spinner.fail(
472
- chalk.red(`Failed to install for ${CODING_AGENTS[agent].name}: ${errorMsg}`)
575
+ chalk2.red(`Failed to install for ${CODING_AGENTS[agent].name}: ${errorMsg}`)
473
576
  );
474
577
  return { agent, success: false, path: "", error: errorMsg };
475
578
  }
@@ -556,6 +659,22 @@ export {
556
659
  detectProjectAgents,
557
660
  isAgentInstalled,
558
661
  parseAgentsArg,
662
+ p,
663
+ brand,
664
+ printLogo,
665
+ selectSkill,
666
+ selectAgents,
667
+ selectScope,
668
+ selectMethod,
669
+ confirm2 as confirm,
670
+ cancelled,
671
+ intro2 as intro,
672
+ outro2 as outro,
673
+ step,
674
+ info,
675
+ success,
676
+ warn,
677
+ error,
559
678
  installSkill,
560
679
  uninstallSkill,
561
680
  getInstalledSkills,
package/dist/cli.js CHANGED
@@ -2,7 +2,11 @@
2
2
  import {
3
3
  ALL_AGENTS,
4
4
  CODING_AGENTS,
5
+ brand,
6
+ cancelled,
7
+ confirm,
5
8
  ensureDir,
9
+ error,
6
10
  exists,
7
11
  fetchItemToDestination,
8
12
  getAgentPath,
@@ -14,123 +18,34 @@ import {
14
18
  getItemSourcePath,
15
19
  getMcpPath,
16
20
  getSettingsPath,
21
+ info,
17
22
  installDirectory,
18
23
  installFile,
24
+ intro,
19
25
  listItems,
26
+ outro,
27
+ p,
20
28
  parseAgentsArg,
29
+ printLogo,
21
30
  removeFile,
22
31
  searchItems,
32
+ selectAgents,
33
+ selectMethod,
34
+ selectScope,
35
+ selectSkill,
23
36
  skillHandler,
37
+ step,
38
+ success,
39
+ warn,
24
40
  writeTextFile
25
- } from "./chunk-TWSBWCGS.js";
41
+ } from "./chunk-GQOKE2XQ.js";
26
42
 
27
43
  // src/cli.ts
28
44
  import { Command as Command5 } from "commander";
29
- import chalk12 from "chalk";
30
45
 
31
46
  // src/commands/add.ts
32
47
  import { Command } from "commander";
33
- import chalk8 from "chalk";
34
-
35
- // src/utils/ui.ts
36
- import * as p from "@clack/prompts";
37
- import chalk from "chalk";
38
- var LOGO = `
39
- \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557
40
- \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557
41
- \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D
42
- \u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557
43
- \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551
44
- \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D`;
45
- var URLS = {
46
- toolr: "https://toolr.dev",
47
- seedr: "https://seedr.toolr.dev"
48
- };
49
- function printLogo() {
50
- console.log(chalk.cyan(LOGO));
51
- console.log(chalk.gray(` ${URLS.seedr} \xB7 ${URLS.toolr}`));
52
- console.log();
53
- }
54
- async function selectSkill(items) {
55
- const result = await p.select({
56
- message: "Select a skill to install",
57
- options: items.map((item) => ({
58
- label: item.name,
59
- value: item,
60
- hint: item.description
61
- }))
62
- });
63
- return result;
64
- }
65
- async function selectAgents(compatible) {
66
- const allOption = await p.select({
67
- message: "Which coding agents do you want to install for?",
68
- options: [
69
- { label: `All (${compatible.length} agents)`, value: "all" },
70
- { label: "Select specific agents...", value: "select" }
71
- ]
72
- });
73
- if (p.isCancel(allOption)) return allOption;
74
- if (allOption === "all") return compatible;
75
- const result = await p.multiselect({
76
- message: "Select agents",
77
- options: compatible.map((agent) => ({
78
- label: CODING_AGENTS[agent].name,
79
- value: agent,
80
- hint: CODING_AGENTS[agent].projectRoot
81
- })),
82
- initialValues: ["claude"],
83
- required: true
84
- });
85
- return result;
86
- }
87
- async function selectScope(includeLocal = false) {
88
- const options = [
89
- { label: "Project", value: "project", hint: includeLocal ? "current directory, settings.json" : "current directory" },
90
- { label: "User", value: "user", hint: "home directory" },
91
- ...includeLocal ? [{ label: "Local", value: "local", hint: "current directory, settings.local.json" }] : []
92
- ];
93
- const result = await p.select({ message: "Installation scope", options });
94
- return result;
95
- }
96
- async function selectMethod(symlinkPath) {
97
- const result = await p.select({
98
- message: "Installation method",
99
- options: [
100
- { label: "Symlink", value: "symlink", hint: `shared at ${symlinkPath}` },
101
- { label: "Copy", value: "copy", hint: "standalone copy per agent" }
102
- ]
103
- });
104
- return result;
105
- }
106
- async function confirm2(message) {
107
- return p.confirm({ message });
108
- }
109
- function cancelled() {
110
- p.cancel("Operation cancelled");
111
- process.exit(0);
112
- }
113
- function intro2(message) {
114
- p.intro(chalk.bgCyan.black(` ${message} `));
115
- }
116
- function outro2(message) {
117
- p.outro(chalk.green(message));
118
- }
119
- function step(message) {
120
- p.log.step(message);
121
- }
122
- function info(message) {
123
- p.log.info(message);
124
- }
125
- function success(message) {
126
- p.log.success(message);
127
- }
128
- function warn(message) {
129
- p.log.warn(message);
130
- }
131
- function error(message) {
132
- p.log.error(message);
133
- }
48
+ import chalk7 from "chalk";
134
49
 
135
50
  // src/handlers/registry.ts
136
51
  var handlers = /* @__PURE__ */ new Map();
@@ -142,10 +57,10 @@ function getHandler(type) {
142
57
  }
143
58
 
144
59
  // src/utils/errors.ts
145
- import chalk2 from "chalk";
60
+ import chalk from "chalk";
146
61
  function handleCommandError(error2) {
147
62
  console.error(
148
- chalk2.red(`Error: ${error2 instanceof Error ? error2.message : "Unknown error"}`)
63
+ chalk.red(`Error: ${error2 instanceof Error ? error2.message : "Unknown error"}`)
149
64
  );
150
65
  process.exit(1);
151
66
  }
@@ -164,7 +79,7 @@ function trackInstalls(slug, type, results, scope) {
164
79
  type,
165
80
  agent: result.agent,
166
81
  scope,
167
- version: "0.1.72"
82
+ version: "0.1.74"
168
83
  }),
169
84
  signal: AbortSignal.timeout(4e3)
170
85
  }).catch(() => {
@@ -190,7 +105,7 @@ function filterCompatibleAgents(type, agents) {
190
105
  // src/handlers/agent.ts
191
106
  import { join } from "path";
192
107
  import { readdir } from "fs/promises";
193
- import chalk3 from "chalk";
108
+ import chalk2 from "chalk";
194
109
  import ora from "ora";
195
110
  async function installAgentForCodingAgent(item, agent, scope, method, cwd) {
196
111
  const spinner = ora(
@@ -218,13 +133,13 @@ async function installAgentForCodingAgent(item, agent, scope, method, cwd) {
218
133
  await writeTextFile(destPath, content);
219
134
  }
220
135
  spinner.succeed(
221
- chalk3.green(`Installed ${item.name} for ${CODING_AGENTS[agent].name}`)
136
+ brand(`Installed ${item.name} for ${CODING_AGENTS[agent].name}`)
222
137
  );
223
138
  return { agent, success: true, path: destPath };
224
139
  } catch (error2) {
225
140
  const errorMsg = error2 instanceof Error ? error2.message : "Unknown error";
226
141
  spinner.fail(
227
- chalk3.red(`Failed to install for ${CODING_AGENTS[agent].name}: ${errorMsg}`)
142
+ chalk2.red(`Failed to install for ${CODING_AGENTS[agent].name}: ${errorMsg}`)
228
143
  );
229
144
  return { agent, success: false, path: "", error: errorMsg };
230
145
  }
@@ -271,7 +186,7 @@ var agentHandler = {
271
186
  import { join as join2, basename } from "path";
272
187
  import { homedir } from "os";
273
188
  import { mkdir, copyFile, chmod, rm } from "fs/promises";
274
- import chalk4 from "chalk";
189
+ import chalk3 from "chalk";
275
190
  import ora2 from "ora";
276
191
 
277
192
  // src/utils/json.ts
@@ -401,13 +316,13 @@ async function installHookForAgent(item, agent, scope, _method, cwd) {
401
316
  }
402
317
  await writeJson(settingsPath, settings);
403
318
  spinner.succeed(
404
- chalk4.green(`Installed ${item.name} for ${CODING_AGENTS[agent].name}`)
319
+ brand(`Installed ${item.name} for ${CODING_AGENTS[agent].name}`)
405
320
  );
406
321
  return { agent, success: true, path: destScriptPath };
407
322
  } catch (error2) {
408
323
  const errorMsg = error2 instanceof Error ? error2.message : "Unknown error";
409
324
  spinner.fail(
410
- chalk4.red(`Failed to install for ${CODING_AGENTS[agent].name}: ${errorMsg}`)
325
+ chalk3.red(`Failed to install for ${CODING_AGENTS[agent].name}: ${errorMsg}`)
411
326
  );
412
327
  return { agent, success: false, path: "", error: errorMsg };
413
328
  }
@@ -500,7 +415,7 @@ var hookHandler = {
500
415
  };
501
416
 
502
417
  // src/handlers/mcp.ts
503
- import chalk5 from "chalk";
418
+ import chalk4 from "chalk";
504
419
  import ora3 from "ora";
505
420
  function parseMcpDefinition(content) {
506
421
  try {
@@ -522,13 +437,13 @@ async function installMcpForAgent(item, agent, scope, _method, cwd) {
522
437
  config.mcpServers[mcpDef.name] = mcpDef.config;
523
438
  await writeJson(configPath, config);
524
439
  spinner.succeed(
525
- chalk5.green(`Installed ${item.name} for ${CODING_AGENTS[agent].name}`)
440
+ brand(`Installed ${item.name} for ${CODING_AGENTS[agent].name}`)
526
441
  );
527
442
  return { agent, success: true, path: configPath };
528
443
  } catch (error2) {
529
444
  const errorMsg = error2 instanceof Error ? error2.message : "Unknown error";
530
445
  spinner.fail(
531
- chalk5.red(`Failed to install for ${CODING_AGENTS[agent].name}: ${errorMsg}`)
446
+ chalk4.red(`Failed to install for ${CODING_AGENTS[agent].name}: ${errorMsg}`)
532
447
  );
533
448
  return { agent, success: false, path: "", error: errorMsg };
534
449
  }
@@ -572,7 +487,7 @@ var mcpHandler = {
572
487
  };
573
488
 
574
489
  // src/handlers/settings.ts
575
- import chalk6 from "chalk";
490
+ import chalk5 from "chalk";
576
491
  import ora4 from "ora";
577
492
  function parseSettings(content) {
578
493
  try {
@@ -596,13 +511,13 @@ async function installSettingsForAgent(item, agent, scope, _method, cwd) {
596
511
  const merged = deepMerge(existingSettings, newSettings);
597
512
  await writeJson(settingsPath, merged);
598
513
  spinner.succeed(
599
- chalk6.green(`Installed ${item.name} for ${CODING_AGENTS[agent].name}`)
514
+ brand(`Installed ${item.name} for ${CODING_AGENTS[agent].name}`)
600
515
  );
601
516
  return { agent, success: true, path: settingsPath };
602
517
  } catch (error2) {
603
518
  const errorMsg = error2 instanceof Error ? error2.message : "Unknown error";
604
519
  spinner.fail(
605
- chalk6.red(`Failed to install for ${CODING_AGENTS[agent].name}: ${errorMsg}`)
520
+ chalk5.red(`Failed to install for ${CODING_AGENTS[agent].name}: ${errorMsg}`)
606
521
  );
607
522
  return { agent, success: false, path: "", error: errorMsg };
608
523
  }
@@ -687,7 +602,7 @@ import { join as join3 } from "path";
687
602
  import { mkdir as mkdir2, rm as rm2 } from "fs/promises";
688
603
  import { execFile } from "child_process";
689
604
  import { promisify } from "util";
690
- import chalk7 from "chalk";
605
+ import chalk6 from "chalk";
691
606
  import ora5 from "ora";
692
607
  var home = homedir2();
693
608
  var PLUGINS_CACHE_DIR = join3(home, ".claude/plugins/cache");
@@ -779,13 +694,13 @@ async function installPluginForAgent(item, agent, scope, method, cwd) {
779
694
  settings.enabledPlugins[pluginId] = true;
780
695
  await writeJson(settingsPath, settings);
781
696
  spinner.succeed(
782
- chalk7.green(`Installed ${item.name} for ${CODING_AGENTS[agent].name}`)
697
+ brand(`Installed ${item.name} for ${CODING_AGENTS[agent].name}`)
783
698
  );
784
699
  return { agent, success: true, path: cachePath };
785
700
  } catch (error2) {
786
701
  const errorMsg = error2 instanceof Error ? error2.message : "Unknown error";
787
702
  spinner.fail(
788
- chalk7.red(`Failed to install for ${CODING_AGENTS[agent].name}: ${errorMsg}`)
703
+ chalk6.red(`Failed to install for ${CODING_AGENTS[agent].name}: ${errorMsg}`)
789
704
  );
790
705
  return { agent, success: false, path: "", error: errorMsg };
791
706
  }
@@ -918,29 +833,29 @@ function resolveAgents(agentsArg, item) {
918
833
  }
919
834
  function printDryRunSummary(item, agents, scope, method, cwd) {
920
835
  info("Dry run - no files will be written\n");
921
- console.log(chalk8.cyan(" Would install:"));
922
- console.log(` ${item.type}: ${chalk8.white(item.name)}`);
923
- console.log(` Scope: ${chalk8.white(scope)}`);
924
- console.log(` Method: ${chalk8.white(method)}`);
836
+ console.log(brand(" Would install:"));
837
+ console.log(` ${item.type}: ${chalk7.white(item.name)}`);
838
+ console.log(` Scope: ${chalk7.white(scope)}`);
839
+ console.log(` Method: ${chalk7.white(method)}`);
925
840
  console.log();
926
841
  if (method === "symlink" && item.type === "skill") {
927
842
  const centralPath = getAgentsPath("skill", item.slug, cwd);
928
- console.log(chalk8.cyan(" Central storage:"));
929
- console.log(` ${chalk8.gray("\u2192")} ${chalk8.gray(centralPath)}`);
843
+ console.log(brand(" Central storage:"));
844
+ console.log(` ${chalk7.gray("\u2192")} ${chalk7.gray(centralPath)}`);
930
845
  console.log();
931
- console.log(chalk8.cyan(" Symlinks from agent folders:"));
846
+ console.log(brand(" Symlinks from agent folders:"));
932
847
  } else {
933
- console.log(chalk8.cyan(" Target locations:"));
848
+ console.log(brand(" Target locations:"));
934
849
  }
935
850
  for (const agent of agents) {
936
851
  const config = CODING_AGENTS[agent];
937
852
  const contentPath = getContentPath(agent, item.type, scope, cwd);
938
853
  if (!contentPath) {
939
- console.log(` ${chalk8.gray("\u2192")} ${chalk8.white(config.name)}: ${chalk8.red("not supported")}`);
854
+ console.log(` ${chalk7.gray("\u2192")} ${chalk7.white(config.name)}: ${chalk7.red("not supported")}`);
940
855
  continue;
941
856
  }
942
857
  const targetPath = `${contentPath}/${item.slug}`;
943
- console.log(` ${chalk8.gray("\u2192")} ${chalk8.white(config.name)}: ${chalk8.gray(targetPath)}`);
858
+ console.log(` ${chalk7.gray("\u2192")} ${chalk7.white(config.name)}: ${chalk7.gray(targetPath)}`);
944
859
  }
945
860
  console.log();
946
861
  }
@@ -950,13 +865,13 @@ function printInstallSummary(results) {
950
865
  if (successful.length > 0) {
951
866
  success(`Installed for ${successful.length} agent(s)`);
952
867
  for (const r of successful) {
953
- console.log(chalk8.gray(` \u2192 ${r.path}`));
868
+ console.log(chalk7.gray(` \u2192 ${r.path}`));
954
869
  }
955
870
  }
956
871
  if (failed.length > 0) {
957
872
  error(`Failed for ${failed.length} agent(s)`);
958
873
  for (const r of failed) {
959
- console.log(chalk8.red(` \xD7 ${r.agent}: ${r.error}`));
874
+ console.log(chalk7.red(` \xD7 ${r.agent}: ${r.error}`));
960
875
  }
961
876
  process.exit(1);
962
877
  }
@@ -967,12 +882,12 @@ var addCommand = new Command("add").description("Install a skill, agent, hook, o
967
882
  ).option("-s, --scope <scope>", "Installation scope: project, user, or local").option("-m, --method <method>", "Installation method: symlink or copy").option("-y, --yes", "Skip confirmation prompts").option("-f, --force", "Overwrite existing files").option("-n, --dry-run", "Show what would be installed without making changes").action(async (name, options) => {
968
883
  try {
969
884
  printLogo();
970
- intro2("Seedr");
885
+ intro("Seedr");
971
886
  const itemName = name;
972
887
  const contentType = options.type;
973
888
  const item = await resolveItem(itemName, contentType);
974
889
  if (!item) process.exit(1);
975
- step(`Selected: ${chalk8.cyan(item.name)} ${chalk8.gray(`(${item.type})`)} ${chalk8.gray(`- ${item.description}`)}`);
890
+ step(`Selected: ${brand(item.name)} ${chalk7.gray(`(${item.type})`)} ${chalk7.gray(`- ${item.description}`)}`);
976
891
  const handler = getHandler(item.type);
977
892
  if (!handler) {
978
893
  error(`No handler found for type "${item.type}"`);
@@ -996,7 +911,7 @@ var addCommand = new Command("add").description("Install a skill, agent, hook, o
996
911
  error("No valid agents selected");
997
912
  process.exit(1);
998
913
  }
999
- step(`Agents: ${chalk8.cyan(agents.join(", "))}`);
914
+ step(`Agents: ${brand(agents.join(", "))}`);
1000
915
  let scope;
1001
916
  if (options.scope) {
1002
917
  scope = options.scope;
@@ -1009,7 +924,7 @@ var addCommand = new Command("add").description("Install a skill, agent, hook, o
1009
924
  }
1010
925
  scope = selected;
1011
926
  }
1012
- step(`Scope: ${chalk8.cyan(scope)}`);
927
+ step(`Scope: ${brand(scope)}`);
1013
928
  let method;
1014
929
  if (options.method) {
1015
930
  method = options.method;
@@ -1024,16 +939,16 @@ var addCommand = new Command("add").description("Install a skill, agent, hook, o
1024
939
  }
1025
940
  method = selected;
1026
941
  }
1027
- step(`Method: ${chalk8.cyan(method)}`);
942
+ step(`Method: ${brand(method)}`);
1028
943
  if (options.dryRun) {
1029
944
  console.log();
1030
945
  printDryRunSummary(item, agents, scope, method, process.cwd());
1031
- outro2("Dry run complete");
946
+ outro("Dry run complete");
1032
947
  return;
1033
948
  }
1034
949
  if (!options.yes) {
1035
950
  console.log();
1036
- const confirmed = await confirm2("Proceed with installation?");
951
+ const confirmed = await confirm("Proceed with installation?");
1037
952
  if (p.isCancel(confirmed) || !confirmed) {
1038
953
  cancelled();
1039
954
  return;
@@ -1043,7 +958,7 @@ var addCommand = new Command("add").description("Install a skill, agent, hook, o
1043
958
  const results = await handler.install(item, agents, scope, method, process.cwd());
1044
959
  trackInstalls(item.slug, item.type, results, scope);
1045
960
  printInstallSummary(results);
1046
- outro2("Installation complete");
961
+ outro("Installation complete");
1047
962
  } catch (error2) {
1048
963
  handleCommandError(error2);
1049
964
  }
@@ -1051,17 +966,17 @@ var addCommand = new Command("add").description("Install a skill, agent, hook, o
1051
966
 
1052
967
  // src/commands/list.ts
1053
968
  import { Command as Command2 } from "commander";
1054
- import chalk9 from "chalk";
969
+ import chalk8 from "chalk";
1055
970
  var SEPARATOR_WIDTH = 40;
1056
971
  var SLUG_COLUMN_WIDTH = 24;
1057
972
  var TYPE_COLORS = {
1058
- skill: chalk9.magenta,
1059
- hook: chalk9.hex("#a855f7"),
1060
- agent: chalk9.blue,
1061
- plugin: chalk9.hex("#6366f1"),
1062
- command: chalk9.hex("#f59e0b"),
1063
- settings: chalk9.hex("#f97316"),
1064
- mcp: chalk9.hex("#2dd4bf")
973
+ skill: chalk8.magenta,
974
+ hook: chalk8.hex("#a855f7"),
975
+ agent: chalk8.blue,
976
+ plugin: chalk8.hex("#6366f1"),
977
+ command: chalk8.hex("#f59e0b"),
978
+ settings: chalk8.hex("#f97316"),
979
+ mcp: chalk8.hex("#2dd4bf")
1065
980
  };
1066
981
  var listCommand = new Command2("list").alias("ls").description("List available or installed skills").option("-t, --type <type>", "Filter by type (skill, hook, agent, plugin)").option("-i, --installed", "Show only installed items").option("--scope <scope>", "Scope for installed check (project, user)", "project").action(async (options) => {
1067
982
  try {
@@ -1077,31 +992,31 @@ var listCommand = new Command2("list").alias("ls").description("List available o
1077
992
  async function listAvailable(type) {
1078
993
  const items = await listItems(type);
1079
994
  if (items.length === 0) {
1080
- console.log(chalk9.yellow("No items found in registry"));
995
+ console.log(chalk8.yellow("No items found in registry"));
1081
996
  return;
1082
997
  }
1083
998
  const grouped = groupByType(items);
1084
999
  for (const [itemType, typeItems] of Object.entries(grouped)) {
1085
- const colorFn = TYPE_COLORS[itemType] ?? chalk9.white;
1000
+ const colorFn = TYPE_COLORS[itemType] ?? chalk8.white;
1086
1001
  console.log(colorFn(`
1087
1002
  ${itemType.toUpperCase()}S`));
1088
- console.log(chalk9.gray("\u2500".repeat(SEPARATOR_WIDTH)));
1003
+ console.log(chalk8.gray("\u2500".repeat(SEPARATOR_WIDTH)));
1089
1004
  for (const item of typeItems) {
1090
1005
  const compatIcons = item.compatibility.map((a) => CODING_AGENTS[a].shortName).join(" ");
1091
- const featured = item.featured ? chalk9.yellow("\u2605 ") : " ";
1006
+ const featured = item.featured ? chalk8.yellow("\u2605 ") : " ";
1092
1007
  console.log(
1093
- `${featured}${chalk9.white(item.slug.padEnd(SLUG_COLUMN_WIDTH))} ${chalk9.gray(compatIcons)}`
1008
+ `${featured}${chalk8.white(item.slug.padEnd(SLUG_COLUMN_WIDTH))} ${chalk8.gray(compatIcons)}`
1094
1009
  );
1095
- console.log(` ${chalk9.gray(item.description)}`);
1010
+ console.log(` ${chalk8.gray(item.description)}`);
1096
1011
  }
1097
1012
  }
1098
1013
  console.log("");
1099
1014
  console.log(
1100
- chalk9.gray(`Total: ${items.length} items. Use 'npx @toolr/seedr add <name>' to install.`)
1015
+ chalk8.gray(`Total: ${items.length} items. Use 'npx @toolr/seedr add <name>' to install.`)
1101
1016
  );
1102
1017
  }
1103
1018
  async function listInstalled(scope) {
1104
- console.log(chalk9.cyan(`
1019
+ console.log(brand(`
1105
1020
  Installed skills (${scope} scope):
1106
1021
  `));
1107
1022
  let total = 0;
@@ -1111,18 +1026,18 @@ Installed skills (${scope} scope):
1111
1026
  scope
1112
1027
  );
1113
1028
  if (installed.length > 0) {
1114
- console.log(chalk9.blue(CODING_AGENTS[agent].name));
1029
+ console.log(chalk8.blue(CODING_AGENTS[agent].name));
1115
1030
  for (const skill of installed) {
1116
- console.log(` ${chalk9.white(skill)}`);
1031
+ console.log(` ${chalk8.white(skill)}`);
1117
1032
  total++;
1118
1033
  }
1119
1034
  console.log("");
1120
1035
  }
1121
1036
  }
1122
1037
  if (total === 0) {
1123
- console.log(chalk9.yellow("No skills installed"));
1038
+ console.log(chalk8.yellow("No skills installed"));
1124
1039
  } else {
1125
- console.log(chalk9.gray(`Total: ${total} installed`));
1040
+ console.log(chalk8.gray(`Total: ${total} installed`));
1126
1041
  }
1127
1042
  }
1128
1043
  function groupByType(items) {
@@ -1140,7 +1055,7 @@ function groupByType(items) {
1140
1055
 
1141
1056
  // src/commands/remove.ts
1142
1057
  import { Command as Command3 } from "commander";
1143
- import chalk10 from "chalk";
1058
+ import chalk9 from "chalk";
1144
1059
  import ora6 from "ora";
1145
1060
 
1146
1061
  // src/utils/prompts.ts
@@ -1178,10 +1093,10 @@ async function removeFromAgents(slug, type, agents, scope) {
1178
1093
  const spinner = ora6(`Removing from ${CODING_AGENTS[agent].name}...`).start();
1179
1094
  const removed = await handler.uninstall(slug, agent, scope);
1180
1095
  if (removed) {
1181
- spinner.succeed(chalk10.green(`Removed from ${CODING_AGENTS[agent].name}`));
1096
+ spinner.succeed(brand(`Removed from ${CODING_AGENTS[agent].name}`));
1182
1097
  successCount++;
1183
1098
  } else {
1184
- spinner.info(chalk10.gray(`Not found in ${CODING_AGENTS[agent].name}`));
1099
+ spinner.info(chalk9.gray(`Not found in ${CODING_AGENTS[agent].name}`));
1185
1100
  }
1186
1101
  }
1187
1102
  return successCount;
@@ -1199,24 +1114,24 @@ var removeCommand = new Command3("remove").alias("rm").description("Remove an in
1199
1114
  const type = options.type;
1200
1115
  if (!type) {
1201
1116
  console.log(
1202
- chalk10.yellow(`Please specify the content type with --type (skill, plugin, agent, hook, mcp, settings)`)
1117
+ chalk9.yellow(`Please specify the content type with --type (skill, plugin, agent, hook, mcp, settings)`)
1203
1118
  );
1204
1119
  process.exit(1);
1205
1120
  }
1206
1121
  const handler = getHandler(type);
1207
1122
  if (!handler) {
1208
- console.log(chalk10.red(`No handler found for type "${type}"`));
1123
+ console.log(chalk9.red(`No handler found for type "${type}"`));
1209
1124
  process.exit(1);
1210
1125
  }
1211
1126
  const agents = options.agents ? parseAgentsArg(options.agents, ALL_AGENTS) : await findInstalledAgents(name, type, scope);
1212
1127
  if (agents.length === 0) {
1213
1128
  console.log(
1214
- chalk10.yellow(`${type} "${name}" is not installed in ${scope} scope`)
1129
+ chalk9.yellow(`${type} "${name}" is not installed in ${scope} scope`)
1215
1130
  );
1216
1131
  process.exit(0);
1217
1132
  }
1218
1133
  if (!options.yes) {
1219
- console.log(chalk10.cyan(`
1134
+ console.log(brand(`
1220
1135
  Will remove ${type} "${name}" from:`));
1221
1136
  for (const agent of agents) {
1222
1137
  console.log(` - ${CODING_AGENTS[agent].name}`);
@@ -1224,7 +1139,7 @@ Will remove ${type} "${name}" from:`));
1224
1139
  console.log("");
1225
1140
  const confirmed = await promptConfirm("Proceed with removal?");
1226
1141
  if (!confirmed) {
1227
- console.log(chalk10.yellow("Removal cancelled"));
1142
+ console.log(chalk9.yellow("Removal cancelled"));
1228
1143
  process.exit(0);
1229
1144
  }
1230
1145
  }
@@ -1232,10 +1147,10 @@ Will remove ${type} "${name}" from:`));
1232
1147
  console.log("");
1233
1148
  if (successCount > 0) {
1234
1149
  console.log(
1235
- chalk10.green(`Successfully removed from ${successCount} agent(s)`)
1150
+ brand(`Successfully removed from ${successCount} agent(s)`)
1236
1151
  );
1237
1152
  } else {
1238
- console.log(chalk10.yellow("Nothing to remove"));
1153
+ console.log(chalk9.yellow("Nothing to remove"));
1239
1154
  }
1240
1155
  } catch (error2) {
1241
1156
  handleCommandError(error2);
@@ -1244,7 +1159,7 @@ Will remove ${type} "${name}" from:`));
1244
1159
 
1245
1160
  // src/commands/init.ts
1246
1161
  import { Command as Command4 } from "commander";
1247
- import chalk11 from "chalk";
1162
+ import chalk10 from "chalk";
1248
1163
  import ora7 from "ora";
1249
1164
  import { join as join4 } from "path";
1250
1165
  var initCommand = new Command4("init").description("Initialize coding agent configuration directories").option(
@@ -1255,10 +1170,10 @@ var initCommand = new Command4("init").description("Initialize coding agent conf
1255
1170
  try {
1256
1171
  const agents = parseAgentsArg(options.agents, ALL_AGENTS);
1257
1172
  if (agents.length === 0) {
1258
- console.error(chalk11.red("No valid agents specified"));
1173
+ console.error(chalk10.red("No valid agents specified"));
1259
1174
  process.exit(1);
1260
1175
  }
1261
- console.log(chalk11.cyan("\nWill initialize configuration for:"));
1176
+ console.log(brand("\nWill initialize configuration for:"));
1262
1177
  for (const agent of agents) {
1263
1178
  const path = getAgentPath(agent, "project");
1264
1179
  console.log(` - ${CODING_AGENTS[agent].name} \u2192 ${path}`);
@@ -1267,7 +1182,7 @@ var initCommand = new Command4("init").description("Initialize coding agent conf
1267
1182
  if (!options.yes) {
1268
1183
  const confirmed = await promptConfirm("Proceed?");
1269
1184
  if (!confirmed) {
1270
- console.log(chalk11.yellow("Cancelled"));
1185
+ console.log(chalk10.yellow("Cancelled"));
1271
1186
  process.exit(0);
1272
1187
  }
1273
1188
  }
@@ -1276,7 +1191,7 @@ var initCommand = new Command4("init").description("Initialize coding agent conf
1276
1191
  const path = getAgentPath(agent, "project");
1277
1192
  if (await exists(path)) {
1278
1193
  spinner.info(
1279
- chalk11.gray(`${CODING_AGENTS[agent].name} already initialized`)
1194
+ chalk10.gray(`${CODING_AGENTS[agent].name} already initialized`)
1280
1195
  );
1281
1196
  continue;
1282
1197
  }
@@ -1296,11 +1211,11 @@ npx @toolr/seedr add <skill-name> --agents ${agent}
1296
1211
  Browse available skills at https://seedr.toolr.dev
1297
1212
  `
1298
1213
  );
1299
- spinner.succeed(chalk11.green(`Initialized ${CODING_AGENTS[agent].name}`));
1214
+ spinner.succeed(brand(`Initialized ${CODING_AGENTS[agent].name}`));
1300
1215
  }
1301
1216
  console.log("");
1302
1217
  console.log(
1303
- chalk11.green("Done! Use 'npx @toolr/seedr add <skill>' to install skills.")
1218
+ brand("Done! Use 'npx @toolr/seedr add <skill>' to install skills.")
1304
1219
  );
1305
1220
  } catch (error2) {
1306
1221
  handleCommandError(error2);
@@ -1309,18 +1224,9 @@ Browse available skills at https://seedr.toolr.dev
1309
1224
 
1310
1225
  // src/cli.ts
1311
1226
  var program = new Command5();
1312
- program.name("seedr").description("Seed your projects with AI configurations").version("0.1.0").addCommand(addCommand).addCommand(listCommand).addCommand(removeCommand).addCommand(initCommand);
1227
+ program.name("seedr").description("Seed your Coding Agents with capabilities").version("0.1.0").addCommand(addCommand).addCommand(listCommand).addCommand(removeCommand).addCommand(initCommand);
1313
1228
  program.action(() => {
1314
- console.log(
1315
- chalk12.green(`
1316
- \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557
1317
- \u2551 \u2551
1318
- \u2551 \u{1F331} Seedr \u2551
1319
- \u2551 Seed your projects with AI configs \u2551
1320
- \u2551 \u2551
1321
- \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D
1322
- `)
1323
- );
1229
+ printLogo();
1324
1230
  program.help();
1325
1231
  });
1326
1232
  program.parse();
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  loadManifest,
16
16
  searchItems,
17
17
  uninstallSkill
18
- } from "./chunk-TWSBWCGS.js";
18
+ } from "./chunk-GQOKE2XQ.js";
19
19
 
20
20
  // src/converters/index.ts
21
21
  import matter from "gray-matter";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toolr/seedr",
3
- "version": "0.1.72",
3
+ "version": "0.1.74",
4
4
  "description": "Seed your projects with AI configurations",
5
5
  "type": "module",
6
6
  "bin": {