dino-spec 5.0.3 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/dino.js +0 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +38 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/store/index.d.ts +10 -0
- package/dist/commands/store/index.d.ts.map +1 -0
- package/dist/commands/store/index.js +10 -0
- package/dist/commands/store/index.js.map +1 -0
- package/dist/commands/store/install.d.ts +21 -0
- package/dist/commands/store/install.d.ts.map +1 -0
- package/dist/commands/store/install.js +54 -0
- package/dist/commands/store/install.js.map +1 -0
- package/dist/commands/store/list.d.ts +20 -0
- package/dist/commands/store/list.d.ts.map +1 -0
- package/dist/commands/store/list.js +120 -0
- package/dist/commands/store/list.js.map +1 -0
- package/dist/commands/store/remove.d.ts +17 -0
- package/dist/commands/store/remove.d.ts.map +1 -0
- package/dist/commands/store/remove.js +36 -0
- package/dist/commands/store/remove.js.map +1 -0
- package/dist/commands/store/sync.d.ts +10 -0
- package/dist/commands/store/sync.d.ts.map +1 -0
- package/dist/commands/store/sync.js +41 -0
- package/dist/commands/store/sync.js.map +1 -0
- package/dist/store/index.d.ts +12 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +14 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/installer.d.ts +58 -0
- package/dist/store/installer.d.ts.map +1 -0
- package/dist/store/installer.js +307 -0
- package/dist/store/installer.js.map +1 -0
- package/dist/store/registry.d.ts +143 -0
- package/dist/store/registry.d.ts.map +1 -0
- package/dist/store/registry.js +306 -0
- package/dist/store/registry.js.map +1 -0
- package/dist/store/remote.d.ts +55 -0
- package/dist/store/remote.d.ts.map +1 -0
- package/dist/store/remote.js +206 -0
- package/dist/store/remote.js.map +1 -0
- package/dist/store/types.d.ts +146 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/types.js +40 -0
- package/dist/store/types.js.map +1 -0
- package/package.json +66 -68
package/bin/dino.js
CHANGED
|
File without changes
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* dino refresh - Re-analyze codebase and update context
|
|
11
11
|
* dino hooks - Manage Claude Code hooks
|
|
12
12
|
* dino session - Manage session state (for hooks)
|
|
13
|
+
* dino store - Manage skills store (install, remove, list)
|
|
13
14
|
*
|
|
14
15
|
* Progressive context loading (--minimal flag on init):
|
|
15
16
|
* dino init --minimal - Generate minimal CLAUDE.md with MCP resource references
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;GAeG"}
|
package/dist/cli/index.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* dino refresh - Re-analyze codebase and update context
|
|
11
11
|
* dino hooks - Manage Claude Code hooks
|
|
12
12
|
* dino session - Manage session state (for hooks)
|
|
13
|
+
* dino store - Manage skills store (install, remove, list)
|
|
13
14
|
*
|
|
14
15
|
* Progressive context loading (--minimal flag on init):
|
|
15
16
|
* dino init --minimal - Generate minimal CLAUDE.md with MCP resource references
|
|
@@ -23,6 +24,7 @@ import { statusCommand } from '../commands/status.js';
|
|
|
23
24
|
import { refreshCommand } from '../commands/refresh.js';
|
|
24
25
|
import { hooksSetupCommand, hooksStatusCommand, hooksRemoveCommand, hooksEnableCommand, hooksDisableCommand, hooksListCommand, hooksDebugCommand, } from '../commands/hooks/index.js';
|
|
25
26
|
import { sessionReadCommand, sessionUpdateCommand } from '../commands/session.js';
|
|
27
|
+
import { storeListCommand, storeInstallCommand, storeRemoveCommand, storeSyncCommand, } from '../commands/store/index.js';
|
|
26
28
|
const program = new Command();
|
|
27
29
|
program
|
|
28
30
|
.name('dino')
|
|
@@ -139,6 +141,42 @@ sessionCmd
|
|
|
139
141
|
.action(async (options) => {
|
|
140
142
|
await sessionUpdateCommand(options);
|
|
141
143
|
});
|
|
144
|
+
// Store subcommand
|
|
145
|
+
const storeCmd = program
|
|
146
|
+
.command('store')
|
|
147
|
+
.description('Manage skills store (install, remove, list)');
|
|
148
|
+
storeCmd
|
|
149
|
+
.command('list')
|
|
150
|
+
.description('List installed skills (default: local project)')
|
|
151
|
+
.option('--remote', 'List available skills from remote store')
|
|
152
|
+
.option('-g, --global', 'List global skills only')
|
|
153
|
+
.option('--all', 'List both local and global skills')
|
|
154
|
+
.option('--json', 'Output as JSON')
|
|
155
|
+
.action(async (options) => {
|
|
156
|
+
await storeListCommand(options);
|
|
157
|
+
});
|
|
158
|
+
storeCmd
|
|
159
|
+
.command('install <skill>')
|
|
160
|
+
.description('Install a skill from the store (default: local project)')
|
|
161
|
+
.option('-f, --force', 'Force reinstall if already installed')
|
|
162
|
+
.option('-g, --global', 'Install to global ~/.claude/skills/ instead of local .claude/skills/')
|
|
163
|
+
.action(async (skill, options) => {
|
|
164
|
+
await storeInstallCommand(skill, options);
|
|
165
|
+
});
|
|
166
|
+
storeCmd
|
|
167
|
+
.command('remove <skill>')
|
|
168
|
+
.description('Remove an installed skill (default: local project)')
|
|
169
|
+
.option('-f, --force', 'Skip confirmation')
|
|
170
|
+
.option('-g, --global', 'Remove from global ~/.claude/skills/ instead of local .claude/skills/')
|
|
171
|
+
.action(async (skill, options) => {
|
|
172
|
+
await storeRemoveCommand(skill, options);
|
|
173
|
+
});
|
|
174
|
+
storeCmd
|
|
175
|
+
.command('sync')
|
|
176
|
+
.description('Refresh remote manifests and sync local registry')
|
|
177
|
+
.action(async () => {
|
|
178
|
+
await storeSyncCommand();
|
|
179
|
+
});
|
|
142
180
|
// Parse and execute
|
|
143
181
|
program.parse();
|
|
144
182
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store Commands - v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* CLI commands for the skills store.
|
|
5
|
+
*/
|
|
6
|
+
export { storeListCommand, type ListOptions } from './list.js';
|
|
7
|
+
export { storeInstallCommand, type InstallOptions } from './install.js';
|
|
8
|
+
export { storeRemoveCommand, type RemoveOptions } from './remove.js';
|
|
9
|
+
export { storeSyncCommand } from './sync.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/store/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store Commands - v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* CLI commands for the skills store.
|
|
5
|
+
*/
|
|
6
|
+
export { storeListCommand } from './list.js';
|
|
7
|
+
export { storeInstallCommand } from './install.js';
|
|
8
|
+
export { storeRemoveCommand } from './remove.js';
|
|
9
|
+
export { storeSyncCommand } from './sync.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/store/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAoB,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAuB,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAsB,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store Install Command - v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* Install skills from the store.
|
|
5
|
+
*/
|
|
6
|
+
export interface InstallOptions {
|
|
7
|
+
force?: boolean;
|
|
8
|
+
global?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Install a skill from the store
|
|
12
|
+
*
|
|
13
|
+
* Supports:
|
|
14
|
+
* - Simple name: "design-philosophy"
|
|
15
|
+
* - Full spec: "owner/repo#skill"
|
|
16
|
+
*
|
|
17
|
+
* Default: installs to project-local .claude/skills/
|
|
18
|
+
* Use -g/--global to install to global ~/.claude/skills/
|
|
19
|
+
*/
|
|
20
|
+
export declare function storeInstallCommand(skillSpec: string, options?: InstallOptions): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/store/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAmCf"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store Install Command - v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* Install skills from the store.
|
|
5
|
+
*/
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import ora from 'ora';
|
|
8
|
+
import { installSkill, installSkillFromSpec, parseSourceString, } from '../../store/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Install a skill from the store
|
|
11
|
+
*
|
|
12
|
+
* Supports:
|
|
13
|
+
* - Simple name: "design-philosophy"
|
|
14
|
+
* - Full spec: "owner/repo#skill"
|
|
15
|
+
*
|
|
16
|
+
* Default: installs to project-local .claude/skills/
|
|
17
|
+
* Use -g/--global to install to global ~/.claude/skills/
|
|
18
|
+
*/
|
|
19
|
+
export async function storeInstallCommand(skillSpec, options = {}) {
|
|
20
|
+
console.log('');
|
|
21
|
+
const isGlobal = options.global ?? false;
|
|
22
|
+
const locationLabel = isGlobal ? 'global' : 'local';
|
|
23
|
+
const spinner = ora(`Installing skill '${skillSpec}' (${locationLabel})...`).start();
|
|
24
|
+
try {
|
|
25
|
+
// Check if it's a full spec (owner/repo#skill) or simple name
|
|
26
|
+
const parsed = parseSourceString(skillSpec);
|
|
27
|
+
const isFullSpec = parsed !== null && parsed.skill !== undefined;
|
|
28
|
+
let result;
|
|
29
|
+
if (isFullSpec) {
|
|
30
|
+
result = await installSkillFromSpec(skillSpec, options.force, isGlobal);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
result = await installSkill(skillSpec, undefined, options.force, isGlobal);
|
|
34
|
+
}
|
|
35
|
+
if (result.success) {
|
|
36
|
+
spinner.succeed(chalk.green(result.message));
|
|
37
|
+
console.log('');
|
|
38
|
+
console.log(chalk.dim(` Version: ${result.version}`));
|
|
39
|
+
console.log(chalk.dim(` Source: ${result.source}`));
|
|
40
|
+
console.log(chalk.dim(` Scope: ${result.scope}`));
|
|
41
|
+
console.log('');
|
|
42
|
+
console.log(chalk.dim(' Skill is now available. Use /skill-name to invoke it.\n'));
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
spinner.fail(chalk.red(result.message ?? `Failed to install '${skillSpec}'`));
|
|
46
|
+
console.log('');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
spinner.fail(chalk.red('Failed to install skill'));
|
|
51
|
+
console.log(chalk.dim(` Error: ${error instanceof Error ? error.message : String(error)}\n`));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/store/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAO9B;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,UAA0B,EAAE;IAE5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACzC,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,SAAS,MAAM,aAAa,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IAErF,IAAI,CAAC;QACH,8DAA8D;QAC9D,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC;QAEjE,IAAI,MAAM,CAAC;QACX,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,sBAAsB,SAAS,GAAG,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store List Command - v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* List installed and available skills.
|
|
5
|
+
*/
|
|
6
|
+
export interface ListOptions {
|
|
7
|
+
remote?: boolean;
|
|
8
|
+
json?: boolean;
|
|
9
|
+
global?: boolean;
|
|
10
|
+
all?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* List installed skills or remote available skills
|
|
14
|
+
*
|
|
15
|
+
* Default: lists project-local skills
|
|
16
|
+
* -g/--global: lists global skills
|
|
17
|
+
* --all: lists both local and global skills
|
|
18
|
+
*/
|
|
19
|
+
export declare function storeListCommand(options?: ListOptions): Promise<void>;
|
|
20
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/store/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAS/E"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store List Command - v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* List installed and available skills.
|
|
5
|
+
*/
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import { getAllRemoteSkills, getDefaultSource, listInstalledSkills as getInstalledSkillsList, } from '../../store/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* List installed skills or remote available skills
|
|
10
|
+
*
|
|
11
|
+
* Default: lists project-local skills
|
|
12
|
+
* -g/--global: lists global skills
|
|
13
|
+
* --all: lists both local and global skills
|
|
14
|
+
*/
|
|
15
|
+
export async function storeListCommand(options = {}) {
|
|
16
|
+
console.log('');
|
|
17
|
+
if (options.remote) {
|
|
18
|
+
await listRemoteSkills(options.json);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const scope = options.all ? 'all' : (options.global ? 'global' : 'local');
|
|
22
|
+
await listInstalledSkills(options.json, scope);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* List installed skills
|
|
27
|
+
*/
|
|
28
|
+
async function listInstalledSkills(json, scope = 'local') {
|
|
29
|
+
const skills = await getInstalledSkillsList(scope);
|
|
30
|
+
if (json) {
|
|
31
|
+
console.log(JSON.stringify(skills, null, 2));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const scopeLabel = scope === 'all' ? 'All' : (scope === 'global' ? 'Global' : 'Local Project');
|
|
35
|
+
console.log(chalk.bold(` ${scopeLabel} Installed Skills\n`));
|
|
36
|
+
if (skills.length === 0) {
|
|
37
|
+
console.log(chalk.dim(' No skills installed.'));
|
|
38
|
+
if (scope === 'local') {
|
|
39
|
+
console.log(chalk.dim(' Use "dino store install <skill>" to install to this project.'));
|
|
40
|
+
console.log(chalk.dim(' Use "dino store install <skill> -g" for global installation.\n'));
|
|
41
|
+
}
|
|
42
|
+
else if (scope === 'global') {
|
|
43
|
+
console.log(chalk.dim(' Use "dino store install <skill> -g" to install globally.\n'));
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
console.log(chalk.dim(' Use "dino store install <skill>" to install skills.\n'));
|
|
47
|
+
}
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
// Table header - add Scope column when showing all
|
|
51
|
+
if (scope === 'all') {
|
|
52
|
+
console.log(chalk.dim(' ') +
|
|
53
|
+
chalk.bold('Name'.padEnd(22)) +
|
|
54
|
+
chalk.bold('Version'.padEnd(10)) +
|
|
55
|
+
chalk.bold('Scope'.padEnd(8)) +
|
|
56
|
+
chalk.bold('Source'));
|
|
57
|
+
console.log(chalk.dim(' ' + '-'.repeat(70)));
|
|
58
|
+
for (const skill of skills) {
|
|
59
|
+
const name = skill.name.padEnd(22);
|
|
60
|
+
const version = skill.version.padEnd(10);
|
|
61
|
+
const skillScope = (skill.scope ?? 'unknown').padEnd(8);
|
|
62
|
+
const source = skill.source;
|
|
63
|
+
console.log(` ${chalk.cyan(name)}${chalk.dim(version)}${chalk.yellow(skillScope)}${chalk.dim(source)}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
console.log(chalk.dim(' ') +
|
|
68
|
+
chalk.bold('Name'.padEnd(25)) +
|
|
69
|
+
chalk.bold('Version'.padEnd(12)) +
|
|
70
|
+
chalk.bold('Source'));
|
|
71
|
+
console.log(chalk.dim(' ' + '-'.repeat(60)));
|
|
72
|
+
for (const skill of skills) {
|
|
73
|
+
const name = skill.name.padEnd(25);
|
|
74
|
+
const version = skill.version.padEnd(12);
|
|
75
|
+
const source = skill.source;
|
|
76
|
+
console.log(` ${chalk.cyan(name)}${chalk.dim(version)}${chalk.dim(source)}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
console.log('');
|
|
80
|
+
console.log(chalk.dim(` Total: ${skills.length} skill(s) installed\n`));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* List available skills from remote store
|
|
84
|
+
*/
|
|
85
|
+
async function listRemoteSkills(json) {
|
|
86
|
+
try {
|
|
87
|
+
const source = await getDefaultSource();
|
|
88
|
+
const skills = await getAllRemoteSkills();
|
|
89
|
+
if (json) {
|
|
90
|
+
console.log(JSON.stringify(skills, null, 2));
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
console.log(chalk.bold(' Available Skills\n'));
|
|
94
|
+
console.log(chalk.dim(` Source: ${source.repo}\n`));
|
|
95
|
+
if (skills.length === 0) {
|
|
96
|
+
console.log(chalk.dim(' No skills available in store.\n'));
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
// Table header
|
|
100
|
+
console.log(chalk.dim(' ') +
|
|
101
|
+
chalk.bold('Name'.padEnd(25)) +
|
|
102
|
+
chalk.bold('Version'.padEnd(12)) +
|
|
103
|
+
chalk.bold('Description'));
|
|
104
|
+
console.log(chalk.dim(' ' + '-'.repeat(70)));
|
|
105
|
+
for (const skill of skills) {
|
|
106
|
+
const name = skill.name.padEnd(25);
|
|
107
|
+
const version = skill.version.padEnd(12);
|
|
108
|
+
const desc = skill.description.slice(0, 35) + (skill.description.length > 35 ? '...' : '');
|
|
109
|
+
console.log(` ${chalk.cyan(name)}${chalk.dim(version)}${desc}`);
|
|
110
|
+
}
|
|
111
|
+
console.log('');
|
|
112
|
+
console.log(chalk.dim(` Total: ${skills.length} skill(s) available\n`));
|
|
113
|
+
console.log(chalk.dim(' Use "dino store install <skill>" to install a skill.\n'));
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
console.log(chalk.red(' Failed to fetch remote skills.'));
|
|
117
|
+
console.log(chalk.dim(` Error: ${error instanceof Error ? error.message : String(error)}\n`));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/store/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store Remove Command - v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* Remove installed skills.
|
|
5
|
+
*/
|
|
6
|
+
export interface RemoveOptions {
|
|
7
|
+
force?: boolean;
|
|
8
|
+
global?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Remove an installed skill
|
|
12
|
+
*
|
|
13
|
+
* Default: removes from project-local .claude/skills/
|
|
14
|
+
* Use -g/--global to remove from global ~/.claude/skills/
|
|
15
|
+
*/
|
|
16
|
+
export declare function storeRemoveCommand(skillName: string, options?: RemoveOptions): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=remove.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/commands/store/remove.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAqBf"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store Remove Command - v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* Remove installed skills.
|
|
5
|
+
*/
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import ora from 'ora';
|
|
8
|
+
import { removeSkill } from '../../store/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Remove an installed skill
|
|
11
|
+
*
|
|
12
|
+
* Default: removes from project-local .claude/skills/
|
|
13
|
+
* Use -g/--global to remove from global ~/.claude/skills/
|
|
14
|
+
*/
|
|
15
|
+
export async function storeRemoveCommand(skillName, options = {}) {
|
|
16
|
+
console.log('');
|
|
17
|
+
const isGlobal = options.global ?? false;
|
|
18
|
+
const locationLabel = isGlobal ? 'global' : 'local';
|
|
19
|
+
const spinner = ora(`Removing skill '${skillName}' (${locationLabel})...`).start();
|
|
20
|
+
try {
|
|
21
|
+
const result = await removeSkill(skillName, isGlobal);
|
|
22
|
+
if (result.success) {
|
|
23
|
+
spinner.succeed(chalk.green(result.message));
|
|
24
|
+
console.log('');
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
spinner.fail(chalk.red(result.message ?? `Failed to remove '${skillName}'`));
|
|
28
|
+
console.log('');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
spinner.fail(chalk.red('Failed to remove skill'));
|
|
33
|
+
console.log(chalk.dim(` Error: ${error instanceof Error ? error.message : String(error)}\n`));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/store/remove.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAOnD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAiB,EACjB,UAAyB,EAAE;IAE3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACzC,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,SAAS,MAAM,aAAa,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IAEnF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEtD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,qBAAqB,SAAS,GAAG,CAAC,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store Sync Command - v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* Refresh remote manifests and sync local registry.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Sync command - refresh manifests and sync registry
|
|
8
|
+
*/
|
|
9
|
+
export declare function storeSyncCommand(): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/commands/store/sync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCtD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store Sync Command - v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* Refresh remote manifests and sync local registry.
|
|
5
|
+
*/
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import ora from 'ora';
|
|
8
|
+
import { getDefaultSource, refreshManifestCache, syncSkillsWithRegistry, } from '../../store/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Sync command - refresh manifests and sync registry
|
|
11
|
+
*/
|
|
12
|
+
export async function storeSyncCommand() {
|
|
13
|
+
console.log('');
|
|
14
|
+
const spinner = ora('Syncing with remote store...').start();
|
|
15
|
+
try {
|
|
16
|
+
// Refresh manifest cache
|
|
17
|
+
spinner.text = 'Refreshing remote manifest...';
|
|
18
|
+
const source = await getDefaultSource();
|
|
19
|
+
await refreshManifestCache(source);
|
|
20
|
+
// Sync local skills with registry
|
|
21
|
+
spinner.text = 'Syncing local registry...';
|
|
22
|
+
const syncResult = await syncSkillsWithRegistry();
|
|
23
|
+
spinner.succeed('Store synced successfully!');
|
|
24
|
+
console.log('');
|
|
25
|
+
if (syncResult.added.length > 0) {
|
|
26
|
+
console.log(chalk.dim(` Added to registry: ${syncResult.added.join(', ')}`));
|
|
27
|
+
}
|
|
28
|
+
if (syncResult.removed.length > 0) {
|
|
29
|
+
console.log(chalk.dim(` Removed from registry: ${syncResult.removed.join(', ')}`));
|
|
30
|
+
}
|
|
31
|
+
if (syncResult.added.length === 0 && syncResult.removed.length === 0) {
|
|
32
|
+
console.log(chalk.dim(' Registry is up to date.'));
|
|
33
|
+
}
|
|
34
|
+
console.log('');
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
spinner.fail(chalk.red('Failed to sync store'));
|
|
38
|
+
console.log(chalk.dim(` Error: ${error instanceof Error ? error.message : String(error)}\n`));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/store/sync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,OAAO,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE5D,IAAI,CAAC;QACH,yBAAyB;QACzB,OAAO,CAAC,IAAI,GAAG,+BAA+B,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAEnC,kCAAkC;QAClC,OAAO,CAAC,IAAI,GAAG,2BAA2B,CAAC;QAC3C,MAAM,UAAU,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAElD,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills Store System - v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* GitHub-based skills store for CLI installation and management.
|
|
5
|
+
* Enables skill sharing without self-hosted cloud storage.
|
|
6
|
+
*/
|
|
7
|
+
export type { RemoteSkill, RemoteManifest, InstalledSkill, LocalRegistry, SourceConfig, SourcesConfig, SkillFrontmatter, ParsedSkill, InstallResult, RemoveResult, ListResult, SkillSource, InstallScope, } from './types.js';
|
|
8
|
+
export { DEFAULT_SOURCE, STORE_PATHS, STORE_VERSIONS, } from './types.js';
|
|
9
|
+
export { getClaudeDir, getProjectDir, getLocalClaudeDir, getLocalStoreDir, getLocalSkillsDir, getLocalRegistryPath, getStoreDir, getSkillsDir, getRegistryPath, getSourcesPath, getCacheDir, getSkillPath, ensureStoreDirs, readRegistry, writeRegistry, readSources, writeSources, getInstalledSkills, getInstalledSkill, isSkillInstalled, addSkillToRegistry, removeSkillFromRegistry, updateSkillInRegistry, getDefaultSource, getAllSources, addSource, removeSource, parseSourceString, buildSourceString, } from './registry.js';
|
|
10
|
+
export { buildGitHubRawUrl, fetchRemoteManifest, fetchAndCacheManifest, getCachedManifest, getRemoteManifest, findRemoteSkill, fetchSkillFile, parseFrontmatter, getAllRemoteSkills, refreshManifestCache, clearManifestCache, } from './remote.js';
|
|
11
|
+
export { installSkill, installSkillFromSpec, removeSkill, checkSkillUpdate, updateSkill, listInstalledSkills, syncSkillsWithRegistry, } from './installer.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,WAAW,EACX,cAAc,EACd,cAAc,EACd,aAAa,EACb,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,cAAc,EACd,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,eAAe,EACf,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills Store System - v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* GitHub-based skills store for CLI installation and management.
|
|
5
|
+
* Enables skill sharing without self-hosted cloud storage.
|
|
6
|
+
*/
|
|
7
|
+
export { DEFAULT_SOURCE, STORE_PATHS, STORE_VERSIONS, } from './types.js';
|
|
8
|
+
// Registry operations
|
|
9
|
+
export { getClaudeDir, getProjectDir, getLocalClaudeDir, getLocalStoreDir, getLocalSkillsDir, getLocalRegistryPath, getStoreDir, getSkillsDir, getRegistryPath, getSourcesPath, getCacheDir, getSkillPath, ensureStoreDirs, readRegistry, writeRegistry, readSources, writeSources, getInstalledSkills, getInstalledSkill, isSkillInstalled, addSkillToRegistry, removeSkillFromRegistry, updateSkillInRegistry, getDefaultSource, getAllSources, addSource, removeSource, parseSourceString, buildSourceString, } from './registry.js';
|
|
10
|
+
// Remote operations
|
|
11
|
+
export { buildGitHubRawUrl, fetchRemoteManifest, fetchAndCacheManifest, getCachedManifest, getRemoteManifest, findRemoteSkill, fetchSkillFile, parseFrontmatter, getAllRemoteSkills, refreshManifestCache, clearManifestCache, } from './remote.js';
|
|
12
|
+
// Installer operations
|
|
13
|
+
export { installSkill, installSkillFromSpec, removeSkill, checkSkillUpdate, updateSkill, listInstalledSkills, syncSkillsWithRegistry, } from './installer.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH,OAAO,EACL,cAAc,EACd,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,sBAAsB;AACtB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,eAAe,EACf,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,oBAAoB;AACpB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,uBAAuB;AACvB,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Installer - v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* Install, update, and remove skills from the store.
|
|
5
|
+
* Handles downloading from remote sources and local file management.
|
|
6
|
+
*/
|
|
7
|
+
import type { InstallResult, RemoveResult, InstalledSkill, SourceConfig, InstallScope } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Install a skill from the store
|
|
10
|
+
*
|
|
11
|
+
* @param skillName - Name of the skill to install
|
|
12
|
+
* @param source - Optional source config (uses default if not provided)
|
|
13
|
+
* @param force - Force reinstall if already installed
|
|
14
|
+
* @param global - If true, install to global (~/.claude/skills/), otherwise local (.claude/skills/)
|
|
15
|
+
*/
|
|
16
|
+
export declare function installSkill(skillName: string, source?: SourceConfig, force?: boolean, global?: boolean): Promise<InstallResult>;
|
|
17
|
+
/**
|
|
18
|
+
* Install a skill from a specific repository
|
|
19
|
+
*
|
|
20
|
+
* @param fullSpec - Full spec like "owner/repo#skill"
|
|
21
|
+
* @param force - Force reinstall if already installed
|
|
22
|
+
* @param global - If true, install to global (~/.claude/skills/), otherwise local (.claude/skills/)
|
|
23
|
+
*/
|
|
24
|
+
export declare function installSkillFromSpec(fullSpec: string, force?: boolean, global?: boolean): Promise<InstallResult>;
|
|
25
|
+
/**
|
|
26
|
+
* Remove an installed skill
|
|
27
|
+
*
|
|
28
|
+
* @param skillName - Name of the skill to remove
|
|
29
|
+
* @param global - If true, remove from global (~/.claude/skills/), otherwise local (.claude/skills/)
|
|
30
|
+
*/
|
|
31
|
+
export declare function removeSkill(skillName: string, global?: boolean): Promise<RemoveResult>;
|
|
32
|
+
/**
|
|
33
|
+
* Check if a skill has an update available
|
|
34
|
+
*/
|
|
35
|
+
export declare function checkSkillUpdate(skillName: string): Promise<{
|
|
36
|
+
hasUpdate: boolean;
|
|
37
|
+
currentVersion: string;
|
|
38
|
+
latestVersion: string;
|
|
39
|
+
} | null>;
|
|
40
|
+
/**
|
|
41
|
+
* Update a skill to the latest version
|
|
42
|
+
*/
|
|
43
|
+
export declare function updateSkill(skillName: string): Promise<InstallResult>;
|
|
44
|
+
/**
|
|
45
|
+
* List installed skills
|
|
46
|
+
* @param scope - 'local' | 'global' | 'all' (defaults to 'local')
|
|
47
|
+
*/
|
|
48
|
+
export declare function listInstalledSkills(scope?: 'local' | 'global' | 'all'): Promise<InstalledSkill[]>;
|
|
49
|
+
/**
|
|
50
|
+
* Scan skills directory and sync with registry
|
|
51
|
+
* Finds skills not tracked in registry
|
|
52
|
+
* @param scope - 'local' | 'global' (defaults to 'local')
|
|
53
|
+
*/
|
|
54
|
+
export declare function syncSkillsWithRegistry(scope?: InstallScope): Promise<{
|
|
55
|
+
added: string[];
|
|
56
|
+
removed: string[];
|
|
57
|
+
}>;
|
|
58
|
+
//# sourceMappingURL=installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/store/installer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAmBpB;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,YAAY,EACrB,KAAK,GAAE,OAAe,EACtB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CA6ExB;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,OAAe,EACtB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CAgCxB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAuCnG;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAqBvF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAyB3E;AAmBD;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,GAAE,OAAO,GAAG,QAAQ,GAAG,KAAe,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA0BhH;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,GAAE,YAAsB,GAAG,OAAO,CAAC;IACnF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC,CAwDD"}
|