@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.
- package/dist/commands/skills/index.d.ts.map +1 -1
- package/dist/commands/skills/index.js +13 -8
- package/dist/commands/skills/index.js.map +1 -1
- package/dist/commands/skills/install-helpers.d.ts +6 -1
- package/dist/commands/skills/install-helpers.d.ts.map +1 -1
- package/dist/commands/skills/install-helpers.js +11 -0
- package/dist/commands/skills/install-helpers.js.map +1 -1
- package/dist/commands/skills/install.d.ts +2 -0
- package/dist/commands/skills/install.d.ts.map +1 -1
- package/dist/commands/skills/install.js +227 -56
- package/dist/commands/skills/install.js.map +1 -1
- package/dist/commands/skills/uninstall.d.ts +11 -0
- package/dist/commands/skills/uninstall.d.ts.map +1 -0
- package/dist/commands/skills/uninstall.js +142 -0
- package/dist/commands/skills/uninstall.js.map +1 -0
- package/package.json +11 -11
|
@@ -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;
|
|
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
|
|
22
|
-
$ vat skills install
|
|
23
|
-
$ vat 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
|
|
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
|
|
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;
|
|
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":"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"}
|
|
@@ -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;
|
|
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
|
|
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
|
|
58
|
-
$ vat skills install
|
|
59
|
-
$ vat skills install
|
|
60
|
-
$ vat skills install
|
|
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
|
-
//
|
|
122
|
-
const
|
|
123
|
-
? skills.
|
|
124
|
-
: skills
|
|
125
|
-
if (
|
|
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
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
-
|
|
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
|
-
|
|
153
|
-
let
|
|
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
|
|
158
|
-
? skills.
|
|
159
|
-
: skills
|
|
160
|
-
if (
|
|
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
|
-
|
|
165
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
235
|
-
|
|
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
|
|
240
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename --
|
|
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
|
|
264
|
-
|
|
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(
|
|
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(
|
|
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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,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,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAE1B,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAa9B,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC,OAAO;SACJ,WAAW,CAAC,iDAAiD,CAAC;SAC9D,QAAQ,CAAC,UAAU,EAAE,mEAAmE,CAAC;SACzF,MAAM,CACL,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAAE,CAAC,SAAS,CAC/B;SACA,MAAM,CAAC,mBAAmB,EAAE,oEAAoE,CAAC;SACjG,MAAM,CAAC,aAAa,EAAE,qCAAqC,EAAE,KAAK,CAAC;SACnE,MAAM,CAAC,WAAW,EAAE,6CAA6C,EAAE,KAAK,CAAC;SACzE,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,EAAE,KAAK,CAAC;SAChF,MAAM,CAAC,WAAW,EAAE,yFAAyF,CAAC;SAC9G,MAAM,CAAC,SAAS,EAAE,gDAAgD,CAAC;SACnE,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;SACzC,MAAM,CAAC,cAAc,CAAC;SACtB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCL,CACI,CAAC;IAEJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,MAA0B,EAC1B,OAAoC;IAEpC,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,iCAAiC;QACjC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,MAAM,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,gCAAgC;QAChC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACrF,CAAC;QAED,qBAAqB;QACrB,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;QAEpD,+BAA+B;QAC/B,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC3D,MAAM;YACR,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC7D,MAAM;YACR,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC3D,MAAM;YACR,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,0EAA0E;gBAC1E,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC7F,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,8DAA8D;gBAC9D,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,gBAAgB,CAC7B,MAAc,EACd,OAAoC,EACpC,MAAuC,EACvC,SAAiB;IAEjB,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEzE,MAAM,CAAC,IAAI,CAAC,iCAAiC,WAAW,EAAE,CAAC,CAAC;IAE5D,wBAAwB;IACxB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE5E,IAAI,CAAC;QACH,mCAAmC;QACnC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE/D,sCAAsC;QACtC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,0BAA0B,CAAC,aAAa,CAAC,CAAC;QAEnE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,8BAA8B,WAAW,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,uDAAuD;QACvD,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI;YAClC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;YAC7C,CAAC,CAAC,MAAM,CAAC;QAEX,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,UAAU,OAAO,CAAC,IAAI,IAAI,EAAE,0BAA0B,WAAW,IAAI;gBACnE,cAAc,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrD,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,EAAE,CAAC,SAAS,CAAC;QAEtE,8BAA8B;QAC9B,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,oBAAoB,CAClB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC;SACrC,CAAC,CAAC,EACH,OAAO,WAAW,EAAE,EACpB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAO,CAAC,MAAM,CACf,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,yBAAyB;QACzB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,MAAc,EACd,OAAoC,EACpC,MAAuC,EACvC,SAAiB;IAEjB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,CAAC,IAAI,CAAC,uCAAuC,UAAU,EAAE,CAAC,CAAC;IAEjE,2DAA2D;IAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACzD,iGAAiG;IACjG,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAEnD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,EAAE,CAAC,SAAS,CAAC;IACtE,IAAI,SAAuD,CAAC;IAE5D,IAAI,cAAc,EAAE,CAAC;QACnB,iEAAiE;QACjE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,0BAA0B,CAAC,UAAU,CAAC,CAAC;QAE7E,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI;YAClC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;YAC7C,CAAC,CAAC,MAAM,CAAC;QAEX,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,UAAU,OAAO,CAAC,IAAI,IAAI,EAAE,0BAA0B,WAAW,CAAC,IAAI,IAAI;gBACxE,cAAc,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrD,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;QAED,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC;SAAM,CAAC;QACN,uCAAuC;QACvC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,oBAAoB,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACnE,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,oBAAoB,CAAC,SAAS,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,MAAc,EACd,OAAoC,EACpC,MAAuC,EACvC,SAAiB;IAEjB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,CAAC,IAAI,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC;IAE3D,sBAAsB;IACtB,iGAAiG;IACjG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAEtE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,cAAc;QACd,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;QACnC,2GAA2G;QAC3G,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,oBAAoB,CAClB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAClC,UAAU,EACV,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAO,CAAC,MAAM,CACf,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,gBAAgB,CAC7B,OAAoC,EACpC,MAAuC,EACvC,SAAiB;IAEjB,uDAAuD;IACvD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,6CAA6C;YAC3C,oDAAoD,CACvD,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,kDAAkD;IAClD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,uCAAuC;IACvC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,0BAA0B,CAAC,GAAG,CAAC,CAAC;IACtE,MAAM,CAAC,IAAI,CAAC,iCAAiC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjE,gCAAgC;IAChC,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI;QAClC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;QAC7C,CAAC,CAAC,MAAM,CAAC;IAEX,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI;YACtB,CAAC,CAAC,UAAU,OAAO,CAAC,IAAI,sCAAsC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAClG,CAAC,CAAC,sBAAsB,WAAW,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,EAAE,CAAC,SAAS,CAAC;IACtE,MAAM,SAAS,GAAqE,EAAE,CAAC;IAEvF,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1E,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,GAAW,EACX,SAA6B,EAC7B,MAAuC;IAEvC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtC,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IACD,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,EAAE;QAC5C,GAAG;QACH,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;KACzC,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CACzB,KAAqC,EACrC,GAAW,EACX,SAAiB,EACjB,OAAoC,EACpC,MAAuC;IAEvC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAEhD,wBAAwB;IACxB,uGAAuG;IACvG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC9F,MAAM,IAAI,KAAK,CACb,UAAU,KAAK,CAAC,IAAI,kBAAkB,UAAU,IAAI;YAClD,QAAQ,QAAQ,IAAI;YACpB,oCAAoC,CACvC,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,MAAM,iBAAiB,GAAG,MAAM,wBAAwB,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE3F,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,mGAAmG;QACnG,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,sFAAsF;QACtF,MAAM,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC;IAChE,MAAM,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,MAAM,UAAU,EAAE,CAAC,CAAC;IAC9F,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,wBAAwB,CACrC,WAAmB,EACnB,SAAiB,EACjB,OAAoC;IAEpC,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,CAAC;QACH,6FAA6F;QAC7F,SAAS,CAAC,WAAW,CAAC,CAAC;QACvB,+EAA+E;QAC/E,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,UAAU,SAAS,0BAA0B,WAAW,KAAK;gBAC3D,2BAA2B,CAC9B,CAAC;QACJ,CAAC;QACD,6FAA6F;QAC7F,iBAAiB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,cAAc,EAAE,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iDAAiD;QACjD,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1E,MAAM,KAAK,CAAC;QACd,CAAC;QACD,qCAAqC;IACvC,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,SAA2E,EAC3E,WAAmB,EACnB,QAAgB,EAChB,MAAuC,EACvC,MAAgB;IAEhB,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,WAAW,KAAK,CAAC,CAAC;IACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QAChE,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,yBAAyB,SAAS,CAAC,MAAM,8BAA8B,CAAC,CAAC;IACvF,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,qBAAqB,SAAS,CAAC,MAAM,uBAAuB,CAAC,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,OAAoC,EACpC,MAAuC,EACvC,SAAiB;IAEjB,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAE/C,oCAAoC;IACpC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2CAA2C;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,0BAA0B,CAAC,GAAG,CAAC,CAAC;IAEtE,MAAM,CAAC,IAAI,CAAC,eAAe,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAEjD,kCAAkC;IAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,oBAAoB,CACxB,SAAS,EACT,KAAK,CAAC,IAAI,EACV,OAAO,EACP,MAAM,CACP,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,MAAM,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,kBAAkB,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9E,MAAM,CAAC,IAAI,CAAC,gBAAgB,QAAQ,IAAI,CAAC,CAAC;IAE1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAChC,SAAiB,EACjB,OAAoC;IAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,EAAE,CAAC,SAAS,CAAC;IACtE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE/C,wEAAwE;IACxE,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC;QACH,+FAA+F;QAC/F,SAAS,CAAC,WAAW,CAAC,CAAC;QACvB,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IAED,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,2BAA2B,WAAW,6BAA6B,CACpE,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,0BAA0B;QAC1B,kGAAkG;QAClG,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,SAAiB,EACjB,SAAiB,EACjB,OAAoC,EACpC,MAAuC;IAEvC,qFAAqF;IACrF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAEtE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,kCAAkC;QAClC,MAAM,CAAC,IAAI,CAAC,iBAAiB,SAAS,KAAK,CAAC,CAAC;QAC7C,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,MAAoD,EACpD,MAAc,EACd,UAAuB,EACvB,QAAgB,EAChB,MAAuC,EACvC,MAAgB;IAEhB,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,UAAU,IAAI,CAAC,CAAC;IACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,MAAM,CAAC,CAAC;IAElD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,MAAM,8BAA8B,CAAC,CAAC;IACpF,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC"}
|
|
@@ -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":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibe-agent-toolkit/cli",
|
|
3
|
-
"version": "0.1.
|
|
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.
|
|
45
|
-
"@vibe-agent-toolkit/agent-schema": "0.1.
|
|
46
|
-
"@vibe-agent-toolkit/agent-skills": "0.1.
|
|
47
|
-
"@vibe-agent-toolkit/discovery": "0.1.
|
|
48
|
-
"@vibe-agent-toolkit/gateway-mcp": "0.1.
|
|
49
|
-
"@vibe-agent-toolkit/rag": "0.1.
|
|
50
|
-
"@vibe-agent-toolkit/rag-lancedb": "0.1.
|
|
51
|
-
"@vibe-agent-toolkit/resources": "0.1.
|
|
52
|
-
"@vibe-agent-toolkit/utils": "0.1.
|
|
53
|
-
"@vibe-agent-toolkit/vat-development-agents": "0.1.
|
|
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",
|