@vibe-agent-toolkit/cli 0.1.12 → 0.1.13

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,mBAAmB,IAAI,OAAO,CAwC7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,mBAAmB,IAAI,OAAO,CA4C7C"}
@@ -8,6 +8,7 @@ import { createBuildCommand } from './build.js';
8
8
  import { createInstallCommand } from './install.js';
9
9
  import { listCommand } from './list.js';
10
10
  import { createPackageCommand } from './package.js';
11
+ import { createUninstallCommand } from './uninstall.js';
11
12
  import { createValidateCommand } from './validate-command.js';
12
13
  export function createSkillsCommand() {
13
14
  const command = new Command('skills');
@@ -18,9 +19,10 @@ export function createSkillsCommand() {
18
19
  Examples:
19
20
  $ vat skills validate # Validate all skills
20
21
  $ vat skills build # Build skills from package.json
21
- $ vat skills package resources/skills/SKILL.md # Package a skill
22
- $ vat skills install ./my-skill.zip # Install from ZIP
23
- $ vat skills list # List installed skills
22
+ $ vat skills install --dev # Dev-install (symlink) all skills
23
+ $ vat skills install --build # Build then dev-install
24
+ $ vat skills uninstall --all # Uninstall all package skills
25
+ $ vat skills list --user # List installed skills
24
26
 
25
27
  Distribution Workflow:
26
28
  1. Validate: Ensure SKILL.md is valid
@@ -29,18 +31,21 @@ Distribution Workflow:
29
31
  4. Share: Distribute via npm or GitHub releases
30
32
  5. Install: Users install from npm or extract ZIP to ~/.claude/plugins/
31
33
 
34
+ Development Workflow:
35
+ 1. Build: vat skills build
36
+ 2. Install: vat skills install --dev (or --build to combine)
37
+ 3. Iterate: Rebuild, /reload-skills in Claude Code
38
+ 4. Clean up: vat skills uninstall --all
39
+
32
40
  For detailed command help:
33
- $ vat skills validate --help
34
- $ vat skills build --help
35
- $ vat skills package --help
36
- $ vat skills install --help
37
- $ vat skills list --help
41
+ $ vat skills <command> --help
38
42
  `);
39
43
  // Add subcommands
40
44
  command.addCommand(createValidateCommand());
41
45
  command.addCommand(createBuildCommand());
42
46
  command.addCommand(createPackageCommand());
43
47
  command.addCommand(createInstallCommand());
48
+ command.addCommand(createUninstallCommand());
44
49
  command.addCommand(createListCommand());
45
50
  return command;
46
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/skills/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,UAAU,mBAAmB;IACjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtC,OAAO;SACJ,WAAW,CAAC,iDAAiD,CAAC;SAC9D,WAAW,CAAC,KAAK,CAAC;SAClB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;CAqBL,CACI,CAAC;IAEJ,kBAAkB;IAClB,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAExC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO;SACJ,WAAW,CAAC,6CAA6C,CAAC;SAC1D,QAAQ,CAAC,QAAQ,EAAE,uDAAuD,CAAC;SAC3E,MAAM,CAAC,YAAY,EAAE,yCAAyC,CAAC;SAC/D,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC;SACpD,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;SACzC,MAAM,CAAC,WAAW,CAAC;SACnB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCL,CACI,CAAC;IAEJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,wEAAwE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/skills/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,UAAU,mBAAmB;IACjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtC,OAAO;SACJ,WAAW,CAAC,iDAAiD,CAAC;SAC9D,WAAW,CAAC,KAAK,CAAC;SAClB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;CAwBL,CACI,CAAC;IAEJ,kBAAkB;IAClB,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAExC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO;SACJ,WAAW,CAAC,6CAA6C,CAAC;SAC1D,QAAQ,CAAC,QAAQ,EAAE,uDAAuD,CAAC;SAC3E,MAAM,CAAC,YAAY,EAAE,yCAAyC,CAAC;SAC/D,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC;SACpD,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;SACzC,MAAM,CAAC,WAAW,CAAC;SACnB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCL,CACI,CAAC;IAEJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,wEAAwE"}
@@ -8,7 +8,7 @@
8
8
  * - npm postinstall hook
9
9
  */
10
10
  import type { VatSkillMetadata } from '@vibe-agent-toolkit/agent-schema';
11
- export type SkillSource = 'npm' | 'local' | 'zip' | 'npm-postinstall';
11
+ export type SkillSource = 'npm' | 'local' | 'zip' | 'npm-postinstall' | 'dev';
12
12
  export interface PackageJsonVat {
13
13
  version?: string;
14
14
  type?: string;
@@ -42,4 +42,9 @@ export declare function downloadNpmPackage(packageName: string, tempDir: string)
42
42
  * Returns true if running in global install context (but not during npm link)
43
43
  */
44
44
  export declare function isGlobalNpmInstall(): boolean;
45
+ /**
46
+ * Write the common YAML header for skill command output
47
+ * Eliminates duplication between install and uninstall output functions
48
+ */
49
+ export declare function writeYamlHeader(dryRun?: boolean): void;
45
50
  //# sourceMappingURL=install-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/install-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIzE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,iBAAiB,CAAC;AAEtE,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,cAAc,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAqCvD;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAAC,CAwBnE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAyC/E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAc5C"}
1
+ {"version":3,"file":"install-helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/install-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIzE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,iBAAiB,GAAG,KAAK,CAAC;AAE9E,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,cAAc,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAqCvD;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAAC,CAwBnE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAyC/E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAc5C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAMtD"}
@@ -122,4 +122,15 @@ export function isGlobalNpmInstall() {
122
122
  const isInstallCommand = process.env['npm_command'] === 'install';
123
123
  return isGlobal && isPostinstall && isInstallCommand;
124
124
  }
125
+ /**
126
+ * Write the common YAML header for skill command output
127
+ * Eliminates duplication between install and uninstall output functions
128
+ */
129
+ export function writeYamlHeader(dryRun) {
130
+ process.stdout.write('---\n');
131
+ process.stdout.write(`status: success\n`);
132
+ if (dryRun) {
133
+ process.stdout.write(`dryRun: true\n`);
134
+ }
135
+ }
125
136
  //# sourceMappingURL=install-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-helpers.js","sourceRoot":"","sources":["../../../src/commands/skills/install-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-helpers.js","sourceRoot":"","sources":["../../../src/commands/skills/install-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAgB3B;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,wCAAwC;IACxC,IAAI,KAAK,KAAK,mBAAmB,EAAE,CAAC;QAClC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,mCAAmC;IACnC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gCAAgC;IAChC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mBAAmB;IACnB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpC,iGAAiG;IACjG,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,kHAAkH;QAClH,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,IAAI;QACzC,mFAAmF,CACtF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,GAAW;IAEX,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAElD,yGAAyG;IACzG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,yGAAyG;IACzG,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;IAEvD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CACb,qDAAqD;YACnD,YAAY,WAAW,CAAC,IAAI,IAAI;YAChC,oDAAoD,CACvD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,WAAW;QACX,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM;KAC/B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,OAAe;IACrE,gCAAgC;IAChC,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;QACtD,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC,WAAW,CAAC;IAEhB,iEAAiE;IACjE,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE;QAClE,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,iBAAiB,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,4DAA4D;IAC5D,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAE/C,wGAAwG;IACxG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,6CAA6C,WAAW,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,yDAAyD;IACzD,gCAAgC;IAChC,GAAG,CAAC,OAAO,CAAC;QACV,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE5C,wGAAwG;IACxG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,MAAM,CAAC;IAE7D,yCAAyC;IACzC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,aAAa,CAAC;IAE3E,4CAA4C;IAC5C,mEAAmE;IACnE,2DAA2D;IAC3D,8DAA8D;IAC9D,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC;IAElE,OAAO,QAAQ,IAAI,aAAa,IAAI,gBAAgB,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAgB;IAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC;AACH,CAAC"}
@@ -15,6 +15,8 @@ export interface SkillsInstallCommandOptions {
15
15
  dryRun?: boolean;
16
16
  debug?: boolean;
17
17
  npmPostinstall?: boolean;
18
+ dev?: boolean;
19
+ build?: boolean;
18
20
  }
19
21
  export declare function createInstallCommand(): Command;
20
22
  //# sourceMappingURL=install.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAoD9C"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CA2D9C"}
@@ -7,16 +7,16 @@
7
7
  * - Local directory
8
8
  * - npm postinstall hook (--npm-postinstall)
9
9
  */
10
- import { existsSync } from 'node:fs';
11
- import { cp, mkdir, mkdtemp, rm } from 'node:fs/promises';
10
+ import { existsSync, lstatSync } from 'node:fs';
11
+ import { cp, mkdir, mkdtemp, rm, symlink } from 'node:fs/promises';
12
12
  import { basename, join, resolve } from 'node:path';
13
- import { normalizedTmpdir } from '@vibe-agent-toolkit/utils';
13
+ import { normalizedTmpdir, safeExecSync } from '@vibe-agent-toolkit/utils';
14
14
  import AdmZip from 'adm-zip';
15
15
  import { Command } from 'commander';
16
16
  import { getClaudeUserPaths } from '../../utils/claude-paths.js';
17
17
  import { handleCommandError } from '../../utils/command-error.js';
18
18
  import { createLogger } from '../../utils/logger.js';
19
- import { detectSource, downloadNpmPackage, isGlobalNpmInstall, readPackageJsonVatMetadata, } from './install-helpers.js';
19
+ import { detectSource, downloadNpmPackage, isGlobalNpmInstall, readPackageJsonVatMetadata, writeYamlHeader, } from './install-helpers.js';
20
20
  export function createInstallCommand() {
21
21
  const command = new Command('install');
22
22
  command
@@ -27,26 +27,32 @@ export function createInstallCommand() {
27
27
  .option('-f, --force', 'Overwrite existing skill if present', false)
28
28
  .option('--dry-run', 'Preview installation without creating files', false)
29
29
  .option('--npm-postinstall', 'Run as npm postinstall hook (internal use)', false)
30
+ .option('-d, --dev', 'Development mode: symlink skills from cwd package.json (rebuilds reflected immediately)')
31
+ .option('--build', 'Build skills before installing (implies --dev)')
30
32
  .option('--debug', 'Enable debug logging')
31
33
  .action(installCommand)
32
34
  .addHelpText('after', `
33
35
  Description:
34
- Installs a skill to Claude Code's skills directory from various sources.
36
+ Installs skills to Claude Code's skills directory from various sources.
35
37
 
36
38
  Supported sources:
37
39
  - npm package: npm:@scope/package-name
38
40
  - Local ZIP file: ./path/to/skill.zip
39
41
  - Local directory: ./path/to/skill-dir
40
42
  - npm postinstall: --npm-postinstall (automatic during global install)
43
+ - Dev mode: --dev (symlinks from cwd package.json vat.skills[])
41
44
 
42
45
  Default skills directory: ~/.claude/skills/
43
46
 
47
+ Dev mode creates symlinks so rebuilds are immediately reflected.
48
+ Use --build to auto-build before symlinking.
49
+
44
50
  Output:
45
51
  - status: success/error
46
52
  - skillName: Name of installed skill
47
53
  - installPath: Where the skill was installed
48
54
  - source: Original source
49
- - sourceType: npm/local/zip/npm-postinstall
55
+ - sourceType: npm/local/zip/npm-postinstall/dev
50
56
 
51
57
  Exit Codes:
52
58
  0 - Installation successful
@@ -54,10 +60,11 @@ Exit Codes:
54
60
  2 - System error
55
61
 
56
62
  Example:
57
- $ vat skills install npm:@vibe-agent-toolkit/vat-development-agents
58
- $ vat skills install ./cat-agents-skill.zip
59
- $ vat skills install ./my-skill-dir --name custom-skill-name
60
- $ vat skills install skill.zip --force
63
+ $ vat skills install --dev # Symlink all skills from cwd
64
+ $ vat skills install --build # Build + symlink
65
+ $ vat skills install --dev --name my-skill # Symlink specific skill
66
+ $ vat skills install npm:@scope/package # Install from npm
67
+ $ vat skills install ./my-skill.zip --force # Install from ZIP
61
68
  `);
62
69
  return command;
63
70
  }
@@ -65,6 +72,15 @@ async function installCommand(source, options) {
65
72
  const logger = createLogger(options.debug ? { debug: true } : {});
66
73
  const startTime = Date.now();
67
74
  try {
75
+ // Handle --build (implies --dev)
76
+ if (options.build) {
77
+ options.dev = true;
78
+ }
79
+ // Handle --dev flag
80
+ if (options.dev) {
81
+ await handleDevInstall(options, logger, startTime);
82
+ return;
83
+ }
68
84
  // Handle --npm-postinstall flag
69
85
  if (options.npmPostinstall) {
70
86
  await handleNpmPostinstall(options, logger, startTime);
@@ -95,6 +111,10 @@ async function installCommand(source, options) {
95
111
  // This case is handled by --npm-postinstall flag, not by source detection
96
112
  throw new Error('npm-postinstall source type should be handled by --npm-postinstall flag');
97
113
  }
114
+ case 'dev': {
115
+ // This case is handled by --dev flag, not by source detection
116
+ throw new Error('dev source type should be handled by --dev flag');
117
+ }
98
118
  }
99
119
  }
100
120
  catch (error) {
@@ -103,6 +123,7 @@ async function installCommand(source, options) {
103
123
  }
104
124
  /**
105
125
  * Handle npm package installation
126
+ * Installs ALL skills from the package (or filtered by --name)
106
127
  */
107
128
  async function handleNpmInstall(source, options, logger, startTime) {
108
129
  const packageName = source.startsWith('npm:') ? source.slice(4) : source;
@@ -118,20 +139,25 @@ async function handleNpmInstall(source, options, logger, startTime) {
118
139
  if (skills.length === 0) {
119
140
  throw new Error(`No skills found in package ${packageName}`);
120
141
  }
121
- // Install first skill (or specific skill if --name provided)
122
- const skillToInstall = options.name
123
- ? skills.find(s => s.name === options.name)
124
- : skills[0];
125
- if (!skillToInstall) {
142
+ // Filter by --name if specified, otherwise install all
143
+ const skillsToInstall = options.name
144
+ ? skills.filter(s => s.name === options.name)
145
+ : skills;
146
+ if (skillsToInstall.length === 0) {
126
147
  throw new Error(`Skill "${options.name ?? ''}" not found in package ${packageName}. ` +
127
148
  `Available: ${skills.map(s => s.name).join(', ')}`);
128
149
  }
129
- // Determine skill path (from vat.skills metadata)
130
- const skillPath = resolve(extractedPath, skillToInstall.path);
131
- // Install skill
132
- await installSkillFromPath(skillPath, skillToInstall.name, options, logger);
150
+ const skillsDir = options.skillsDir ?? getClaudeUserPaths().skillsDir;
151
+ // Install all matching skills
152
+ for (const skill of skillsToInstall) {
153
+ const skillPath = resolve(extractedPath, skill.path);
154
+ await installSkillFromPath(skillPath, skill.name, options, logger);
155
+ }
133
156
  const duration = Date.now() - startTime;
134
- outputSuccess(skillToInstall.name, join(options.skillsDir ?? getClaudeUserPaths().skillsDir, skillToInstall.name), `npm:${packageName}`, 'npm', duration, logger, options.dryRun);
157
+ outputInstallSuccess(skillsToInstall.map(s => ({
158
+ name: s.name,
159
+ installPath: join(skillsDir, s.name),
160
+ })), `npm:${packageName}`, 'npm', duration, logger, options.dryRun);
135
161
  process.exit(0);
136
162
  }
137
163
  finally {
@@ -141,6 +167,7 @@ async function handleNpmInstall(source, options, logger, startTime) {
141
167
  }
142
168
  /**
143
169
  * Handle local directory installation
170
+ * If directory has package.json with vat.skills, installs ALL skills (or filtered by --name)
144
171
  */
145
172
  async function handleLocalInstall(source, options, logger, startTime) {
146
173
  const sourcePath = resolve(source);
@@ -149,29 +176,32 @@ async function handleLocalInstall(source, options, logger, startTime) {
149
176
  const packageJsonPath = join(sourcePath, 'package.json');
150
177
  // eslint-disable-next-line security/detect-non-literal-fs-filename -- User-provided CLI argument
151
178
  const hasPackageJson = existsSync(packageJsonPath);
152
- let skillName;
153
- let skillPath;
179
+ const skillsDir = options.skillsDir ?? getClaudeUserPaths().skillsDir;
180
+ let installed;
154
181
  if (hasPackageJson) {
155
- // Read vat metadata
156
- const { skills } = await readPackageJsonVatMetadata(sourcePath);
157
- const skillToInstall = options.name
158
- ? skills.find(s => s.name === options.name)
159
- : skills[0];
160
- if (!skillToInstall) {
161
- throw new Error(`Skill "${options.name ?? ''}" not found in package. ` +
182
+ // Read vat metadata - install all skills (or filtered by --name)
183
+ const { packageJson, skills } = await readPackageJsonVatMetadata(sourcePath);
184
+ const skillsToInstall = options.name
185
+ ? skills.filter(s => s.name === options.name)
186
+ : skills;
187
+ if (skillsToInstall.length === 0) {
188
+ throw new Error(`Skill "${options.name ?? ''}" not found in package ${packageJson.name}. ` +
162
189
  `Available: ${skills.map(s => s.name).join(', ')}`);
163
190
  }
164
- skillName = skillToInstall.name;
165
- skillPath = resolve(sourcePath, skillToInstall.path);
191
+ for (const skill of skillsToInstall) {
192
+ const skillPath = resolve(sourcePath, skill.path);
193
+ await installSkillFromPath(skillPath, skill.name, options, logger);
194
+ }
195
+ installed = skillsToInstall.map(s => ({ name: s.name, installPath: join(skillsDir, s.name) }));
166
196
  }
167
197
  else {
168
198
  // Plain directory - use directory name
169
- skillName = options.name ?? basename(sourcePath);
170
- skillPath = sourcePath;
199
+ const skillName = options.name ?? basename(sourcePath);
200
+ await installSkillFromPath(sourcePath, skillName, options, logger);
201
+ installed = [{ name: skillName, installPath: join(skillsDir, skillName) }];
171
202
  }
172
- await installSkillFromPath(skillPath, skillName, options, logger);
173
203
  const duration = Date.now() - startTime;
174
- outputSuccess(skillName, join(options.skillsDir ?? getClaudeUserPaths().skillsDir, skillName), `local:${sourcePath}`, 'local', duration, logger, options.dryRun);
204
+ outputInstallSuccess(installed, `local:${sourcePath}`, 'local', duration, logger, options.dryRun);
175
205
  process.exit(0);
176
206
  }
177
207
  /**
@@ -195,9 +225,143 @@ async function handleZipInstall(source, options, logger, startTime) {
195
225
  zip.extractAllTo(installPath, /* overwrite */ true);
196
226
  }
197
227
  const duration = Date.now() - startTime;
198
- outputSuccess(skillName, installPath, sourcePath, 'zip', duration, logger, options.dryRun);
228
+ outputInstallSuccess([{ name: skillName, installPath }], sourcePath, 'zip', duration, logger, options.dryRun);
229
+ process.exit(0);
230
+ }
231
+ /**
232
+ * Handle development mode installation (symlinks)
233
+ * Reads package.json vat.skills[], symlinks each built skill to ~/.claude/skills/
234
+ */
235
+ async function handleDevInstall(options, logger, startTime) {
236
+ // Windows check - symlinks require elevated privileges
237
+ if (process.platform === 'win32') {
238
+ throw new Error('--dev (symlink) not supported on Windows.\n' +
239
+ 'Use copy mode (omit --dev) or WSL for development.');
240
+ }
241
+ const cwd = process.cwd();
242
+ // If --build, shell out to vat skills build first
243
+ if (options.build) {
244
+ runSkillsBuild(cwd, options.name, logger);
245
+ }
246
+ // Read package.json for skill metadata
247
+ const { packageJson, skills } = await readPackageJsonVatMetadata(cwd);
248
+ logger.info(`šŸ“„ Dev-installing skills from ${packageJson.name}`);
249
+ // Filter by --name if specified
250
+ const skillsToInstall = options.name
251
+ ? skills.filter(s => s.name === options.name)
252
+ : skills;
253
+ if (skillsToInstall.length === 0) {
254
+ const msg = options.name
255
+ ? `Skill "${options.name}" not found in package. Available: ${skills.map(s => s.name).join(', ')}`
256
+ : `No skills found in ${packageJson.name}`;
257
+ throw new Error(msg);
258
+ }
259
+ const skillsDir = options.skillsDir ?? getClaudeUserPaths().skillsDir;
260
+ const installed = [];
261
+ for (const skill of skillsToInstall) {
262
+ const result = await symlinkSkill(skill, cwd, skillsDir, options, logger);
263
+ installed.push(result);
264
+ }
265
+ const duration = Date.now() - startTime;
266
+ outputDevSuccess(installed, packageJson.name, duration, logger, options.dryRun);
199
267
  process.exit(0);
200
268
  }
269
+ /**
270
+ * Shell out to vat skills build
271
+ */
272
+ function runSkillsBuild(cwd, skillName, logger) {
273
+ logger.info('šŸ”Ø Building skills first...');
274
+ const binPath = resolve(join(import.meta.dirname, '../../bin/vat.js'));
275
+ const buildArgs = ['skills', 'build'];
276
+ if (skillName) {
277
+ buildArgs.push('--skill', skillName);
278
+ }
279
+ safeExecSync('node', [binPath, ...buildArgs], {
280
+ cwd,
281
+ stdio: ['inherit', 'inherit', 'inherit'],
282
+ });
283
+ logger.info('');
284
+ }
285
+ /**
286
+ * Symlink a single skill to the skills directory
287
+ * Verifies skill is built, checks for existing installation, creates symlink
288
+ */
289
+ async function symlinkSkill(skill, cwd, skillsDir, options, logger) {
290
+ const sourcePath = resolve(cwd, skill.path);
291
+ const installPath = join(skillsDir, skill.name);
292
+ // Verify skill is built
293
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Validated path from package.json
294
+ if (!existsSync(sourcePath)) {
295
+ const buildCmd = options.name ? `vat skills build --skill ${skill.name}` : 'vat skills build';
296
+ throw new Error(`Skill "${skill.name}" not built at ${sourcePath}\n` +
297
+ `Run: ${buildCmd}\n` +
298
+ `Or use: vat skills install --build`);
299
+ }
300
+ // Check existing installation
301
+ const existingIsSymlink = await handleExistingDevInstall(installPath, skill.name, options);
302
+ if (!options.dryRun) {
303
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Skills directory from config
304
+ await mkdir(skillsDir, { recursive: true });
305
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Validated paths
306
+ await symlink(sourcePath, installPath, 'dir');
307
+ }
308
+ const action = existingIsSymlink ? 'Re-symlinked' : 'Symlinked';
309
+ logger.info(` ${options.dryRun ? 'Would symlink' : action}: ${skill.name} → ${sourcePath}`);
310
+ return { name: skill.name, installPath, sourcePath };
311
+ }
312
+ /**
313
+ * Check if a skill is already installed at the target path
314
+ * Returns whether the existing entry was a symlink (for logging)
315
+ */
316
+ async function handleExistingDevInstall(installPath, skillName, options) {
317
+ let existingIsSymlink = false;
318
+ try {
319
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Validated install path
320
+ lstatSync(installPath);
321
+ // Path exists (lstat doesn't follow symlinks, so broken symlinks are detected)
322
+ if (!options.force) {
323
+ throw new Error(`Skill "${skillName}" already installed at ${installPath}.\n` +
324
+ `Use --force to overwrite.`);
325
+ }
326
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Validated install path
327
+ existingIsSymlink = lstatSync(installPath).isSymbolicLink();
328
+ if (!options.dryRun) {
329
+ await rm(installPath, { recursive: true, force: true });
330
+ }
331
+ }
332
+ catch (error) {
333
+ // Re-throw if it's our "already installed" error
334
+ if (error instanceof Error && error.message.includes('already installed')) {
335
+ throw error;
336
+ }
337
+ // Otherwise: not installed, continue
338
+ }
339
+ return existingIsSymlink;
340
+ }
341
+ /**
342
+ * Output success YAML for dev install (multiple skills)
343
+ */
344
+ function outputDevSuccess(installed, packageName, duration, logger, dryRun) {
345
+ writeYamlHeader(dryRun);
346
+ process.stdout.write(`sourceType: dev\n`);
347
+ process.stdout.write(`package: "${packageName}"\n`);
348
+ process.stdout.write(`skillsInstalled: ${installed.length}\n`);
349
+ process.stdout.write(`symlink: true\n`);
350
+ process.stdout.write(`skills:\n`);
351
+ for (const skill of installed) {
352
+ process.stdout.write(` - name: ${skill.name}\n`);
353
+ process.stdout.write(` installPath: ${skill.installPath}\n`);
354
+ process.stdout.write(` sourcePath: ${skill.sourcePath}\n`);
355
+ }
356
+ process.stdout.write(`duration: ${duration}ms\n`);
357
+ if (dryRun) {
358
+ logger.info(`\nāœ… Dry-run complete: ${installed.length} skill(s) would be symlinked`);
359
+ }
360
+ else {
361
+ logger.info(`\nāœ… Dev-installed ${installed.length} skill(s) via symlink`);
362
+ logger.info(` After rebuilding, run /reload-skills in Claude Code`);
363
+ }
364
+ }
201
365
  /**
202
366
  * Handle npm postinstall hook
203
367
  */
@@ -230,14 +394,25 @@ async function handleNpmPostinstall(options, logger, startTime) {
230
394
  async function prepareInstallation(skillName, options) {
231
395
  const skillsDir = options.skillsDir ?? getClaudeUserPaths().skillsDir;
232
396
  const installPath = join(skillsDir, skillName);
233
- // Check if skill already exists
234
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- Constructed from validated paths
235
- if (existsSync(installPath) && !options.force) {
397
+ // Check if skill already exists (lstatSync detects broken symlinks too)
398
+ let exists = false;
399
+ try {
400
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Install path from config
401
+ lstatSync(installPath);
402
+ exists = true;
403
+ }
404
+ catch {
405
+ // Does not exist
406
+ }
407
+ if (exists && !options.force) {
236
408
  throw new Error(`Skill already exists at ${installPath}. Use --force to overwrite.`);
237
409
  }
410
+ if (exists && options.force && !options.dryRun) {
411
+ await rm(installPath, { recursive: true, force: true });
412
+ }
238
413
  if (!options.dryRun) {
239
- // Create plugins directory
240
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- Plugins directory path, safe
414
+ // Create skills directory
415
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Skills directory path, safe
241
416
  await mkdir(skillsDir, { recursive: true });
242
417
  }
243
418
  return { skillsDir, installPath };
@@ -258,28 +433,24 @@ async function installSkillFromPath(skillPath, skillName, options, logger) {
258
433
  }
259
434
  }
260
435
  /**
261
- * Output success YAML and human-readable messages
436
+ * Output success YAML and human-readable messages for install (supports multiple skills)
262
437
  */
263
- function outputSuccess(skillName, installPath, source, sourceType, duration, logger, dryRun) {
264
- // Output YAML to stdout
265
- process.stdout.write('---\n');
266
- process.stdout.write(`status: success\n`);
267
- if (dryRun) {
268
- process.stdout.write(`dryRun: true\n`);
269
- }
270
- process.stdout.write(`skillName: ${skillName}\n`);
271
- process.stdout.write(`installPath: ${installPath}\n`);
438
+ function outputInstallSuccess(skills, source, sourceType, duration, logger, dryRun) {
439
+ writeYamlHeader(dryRun);
272
440
  process.stdout.write(`source: ${source}\n`);
273
441
  process.stdout.write(`sourceType: ${sourceType}\n`);
442
+ process.stdout.write(`skillsInstalled: ${skills.length}\n`);
443
+ process.stdout.write(`skills:\n`);
444
+ for (const skill of skills) {
445
+ process.stdout.write(` - name: ${skill.name}\n`);
446
+ process.stdout.write(` installPath: ${skill.installPath}\n`);
447
+ }
274
448
  process.stdout.write(`duration: ${duration}ms\n`);
275
449
  if (dryRun) {
276
- logger.info(`āœ… Dry-run complete (no files created)`);
277
- logger.info(` Skill: ${skillName}`);
278
- logger.info(` Would install to: ${installPath}`);
450
+ logger.info(`\nāœ… Dry-run complete: ${skills.length} skill(s) would be installed`);
279
451
  }
280
452
  else {
281
- logger.info(`āœ… Installed skill: ${skillName}`);
282
- logger.info(` Location: ${installPath}`);
453
+ logger.info(`\nāœ… Installed ${skills.length} skill(s)`);
283
454
  logger.info(`\nšŸ’” Run 'vat skills list' to verify installation`);
284
455
  logger.info(` Restart Claude Code or run /reload-skills to use the new skill`);
285
456
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/skills/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/skills/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Uninstall skills from Claude's skills directory
3
+ *
4
+ * Supports:
5
+ * - Single skill by name: vat skills uninstall <name>
6
+ * - All skills from package: vat skills uninstall --all
7
+ * - Dry-run preview: --dry-run
8
+ */
9
+ import { Command } from 'commander';
10
+ export declare function createUninstallCommand(): Command;
11
+ //# sourceMappingURL=uninstall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/uninstall.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,sBAAsB,IAAI,OAAO,CA2ChD"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Uninstall skills from Claude's skills directory
3
+ *
4
+ * Supports:
5
+ * - Single skill by name: vat skills uninstall <name>
6
+ * - All skills from package: vat skills uninstall --all
7
+ * - Dry-run preview: --dry-run
8
+ */
9
+ import { lstatSync } from 'node:fs';
10
+ import { rm } from 'node:fs/promises';
11
+ import { join } from 'node:path';
12
+ import { Command } from 'commander';
13
+ import { getClaudeUserPaths } from '../../utils/claude-paths.js';
14
+ import { handleCommandError } from '../../utils/command-error.js';
15
+ import { createLogger } from '../../utils/logger.js';
16
+ import { readPackageJsonVatMetadata, writeYamlHeader } from './install-helpers.js';
17
+ export function createUninstallCommand() {
18
+ const command = new Command('uninstall');
19
+ command
20
+ .description('Uninstall skills from Claude Code skills directory')
21
+ .argument('[name]', 'Name of skill to uninstall')
22
+ .option('-s, --skills-dir <path>', 'Claude skills directory', getClaudeUserPaths().skillsDir)
23
+ .option('-a, --all', 'Uninstall all skills declared in package.json vat.skills[]', false)
24
+ .option('--dry-run', 'Preview uninstall without removing files', false)
25
+ .option('--debug', 'Enable debug logging')
26
+ .action(uninstallCommand)
27
+ .addHelpText('after', `
28
+ Description:
29
+ Removes installed skills from Claude Code's skills directory.
30
+ Detects and handles both symlinks (dev installs) and copied directories.
31
+
32
+ Single skill: vat skills uninstall my-skill
33
+ All from package: vat skills uninstall --all (reads package.json vat.skills[])
34
+
35
+ Output:
36
+ - status: success/error
37
+ - skillsRemoved: number of skills removed
38
+ - skills: array with name, path, wasSymlink for each
39
+
40
+ Exit Codes:
41
+ 0 - Uninstall successful
42
+ 1 - Skill not found or not installed
43
+ 2 - System error
44
+
45
+ Example:
46
+ $ vat skills uninstall my-skill # Remove single skill
47
+ $ vat skills uninstall --all # Remove all package skills
48
+ $ vat skills uninstall --all --dry-run # Preview removal
49
+ `);
50
+ return command;
51
+ }
52
+ async function uninstallCommand(name, options) {
53
+ const logger = createLogger(options.debug ? { debug: true } : {});
54
+ const startTime = Date.now();
55
+ try {
56
+ // Determine which skills to uninstall
57
+ const skillNames = await resolveSkillNames(name, options, logger);
58
+ const skillsDir = options.skillsDir ?? getClaudeUserPaths().skillsDir;
59
+ const removed = [];
60
+ for (const skillName of skillNames) {
61
+ const result = await removeSkill(skillName, skillsDir, options.dryRun ?? false, logger);
62
+ if (result) {
63
+ removed.push(result);
64
+ }
65
+ }
66
+ if (removed.length === 0) {
67
+ logger.error('No skills were removed');
68
+ process.exit(1);
69
+ }
70
+ const duration = Date.now() - startTime;
71
+ outputUninstallSuccess(removed, duration, logger, options.dryRun);
72
+ process.exit(0);
73
+ }
74
+ catch (error) {
75
+ handleCommandError(error, logger, startTime, 'SkillsUninstall');
76
+ }
77
+ }
78
+ /**
79
+ * Resolve skill names from argument or --all flag
80
+ */
81
+ async function resolveSkillNames(name, options, logger) {
82
+ if (options.all) {
83
+ const cwd = process.cwd();
84
+ const { packageJson, skills } = await readPackageJsonVatMetadata(cwd);
85
+ logger.info(`šŸ“¦ Uninstalling all skills from ${packageJson.name}`);
86
+ return skills.map(s => s.name);
87
+ }
88
+ if (!name) {
89
+ throw new Error('Skill name required. Usage:\n' +
90
+ ' vat skills uninstall <name> # Remove single skill\n' +
91
+ ' vat skills uninstall --all # Remove all from package.json');
92
+ }
93
+ return [name];
94
+ }
95
+ /**
96
+ * Remove a single skill from the skills directory
97
+ * Uses lstatSync to detect symlinks (doesn't follow them)
98
+ */
99
+ async function removeSkill(name, skillsDir, dryRun, logger) {
100
+ const skillPath = join(skillsDir, name);
101
+ // Check if installed (lstatSync detects broken symlinks)
102
+ let wasSymlink = false;
103
+ try {
104
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Skills dir from config
105
+ const stat = lstatSync(skillPath);
106
+ wasSymlink = stat.isSymbolicLink();
107
+ }
108
+ catch {
109
+ logger.error(` āš ļø ${name}: not installed at ${skillPath}`);
110
+ return undefined;
111
+ }
112
+ const typeLabel = wasSymlink ? 'symlink' : 'directory';
113
+ if (dryRun) {
114
+ logger.info(` Would remove ${typeLabel}: ${name} (${skillPath})`);
115
+ }
116
+ else {
117
+ await rm(skillPath, { recursive: true, force: true });
118
+ logger.info(` Removed ${typeLabel}: ${name}`);
119
+ }
120
+ return { name, path: skillPath, wasSymlink };
121
+ }
122
+ /**
123
+ * Output success YAML for uninstall
124
+ */
125
+ function outputUninstallSuccess(removed, duration, logger, dryRun) {
126
+ writeYamlHeader(dryRun);
127
+ process.stdout.write(`skillsRemoved: ${removed.length}\n`);
128
+ process.stdout.write(`skills:\n`);
129
+ for (const skill of removed) {
130
+ process.stdout.write(` - name: ${skill.name}\n`);
131
+ process.stdout.write(` path: ${skill.path}\n`);
132
+ process.stdout.write(` wasSymlink: ${skill.wasSymlink}\n`);
133
+ }
134
+ process.stdout.write(`duration: ${duration}ms\n`);
135
+ if (dryRun) {
136
+ logger.info(`\nāœ… Dry-run: ${removed.length} skill(s) would be removed`);
137
+ }
138
+ else {
139
+ logger.info(`\nāœ… Removed ${removed.length} skill(s)`);
140
+ }
141
+ }
142
+ //# sourceMappingURL=uninstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/commands/skills/uninstall.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AASnF,MAAM,UAAU,sBAAsB;IACpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzC,OAAO;SACJ,WAAW,CAAC,oDAAoD,CAAC;SACjE,QAAQ,CAAC,QAAQ,EAAE,4BAA4B,CAAC;SAChD,MAAM,CACL,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAAE,CAAC,SAAS,CAC/B;SACA,MAAM,CAAC,WAAW,EAAE,4DAA4D,EAAE,KAAK,CAAC;SACxF,MAAM,CAAC,WAAW,EAAE,0CAA0C,EAAE,KAAK,CAAC;SACtE,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;SACzC,MAAM,CAAC,gBAAgB,CAAC;SACxB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;CAsBL,CACI,CAAC;IAEJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,IAAwB,EACxB,OAA+B;IAE/B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,sCAAsC;QACtC,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,EAAE,CAAC,SAAS,CAAC;QAEtE,MAAM,OAAO,GAA+D,EAAE,CAAC;QAE/E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC;YACxF,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,IAAwB,EACxB,OAA+B,EAC/B,MAAuC;IAEvC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,0BAA0B,CAAC,GAAG,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,mCAAmC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,+BAA+B;YAC7B,6DAA6D;YAC7D,oEAAoE,CACvE,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,WAAW,CACxB,IAAY,EACZ,SAAiB,EACjB,MAAe,EACf,MAAuC;IAEvC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAExC,yDAAyD;IACzD,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC;QACH,6FAA6F;QAC7F,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAClC,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,sBAAsB,SAAS,EAAE,CAAC,CAAC;QAC9D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IAEvD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,mBAAmB,SAAS,KAAK,IAAI,KAAK,SAAS,GAAG,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,KAAK,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,OAAmE,EACnE,QAAgB,EAChB,MAAuC,EACvC,MAAgB;IAEhB,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,MAAM,CAAC,CAAC;IAElD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,MAAM,4BAA4B,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe-agent-toolkit/cli",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "description": "Command-line interface for vibe-agent-toolkit",
5
5
  "type": "module",
6
6
  "bin": {
@@ -41,16 +41,16 @@
41
41
  "//dependencies-note": "DO NOT add example agent packages (vat-example-cat-agents, etc.) - users install those separately, not as CLI dependencies. Only vat-development-agents (contains vibe-agent-toolkit skill) should be included.",
42
42
  "dependencies": {
43
43
  "@anthropic-ai/sdk": "^0.71.2",
44
- "@vibe-agent-toolkit/agent-config": "0.1.12",
45
- "@vibe-agent-toolkit/agent-schema": "0.1.12",
46
- "@vibe-agent-toolkit/agent-skills": "0.1.12",
47
- "@vibe-agent-toolkit/discovery": "0.1.12",
48
- "@vibe-agent-toolkit/gateway-mcp": "0.1.12",
49
- "@vibe-agent-toolkit/rag": "0.1.12",
50
- "@vibe-agent-toolkit/rag-lancedb": "0.1.12",
51
- "@vibe-agent-toolkit/resources": "0.1.12",
52
- "@vibe-agent-toolkit/utils": "0.1.12",
53
- "@vibe-agent-toolkit/vat-development-agents": "0.1.12",
44
+ "@vibe-agent-toolkit/agent-config": "0.1.13",
45
+ "@vibe-agent-toolkit/agent-schema": "0.1.13",
46
+ "@vibe-agent-toolkit/agent-skills": "0.1.13",
47
+ "@vibe-agent-toolkit/discovery": "0.1.13",
48
+ "@vibe-agent-toolkit/gateway-mcp": "0.1.13",
49
+ "@vibe-agent-toolkit/rag": "0.1.13",
50
+ "@vibe-agent-toolkit/rag-lancedb": "0.1.13",
51
+ "@vibe-agent-toolkit/resources": "0.1.13",
52
+ "@vibe-agent-toolkit/utils": "0.1.13",
53
+ "@vibe-agent-toolkit/vat-development-agents": "0.1.13",
54
54
  "adm-zip": "^0.5.16",
55
55
  "commander": "^12.1.0",
56
56
  "js-yaml": "^4.1.0",