skillpack 0.1.0 → 0.1.2
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/README.md +44 -4
- package/dist/cli.js +9 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +29 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +24 -8
- package/dist/commands/install.js.map +1 -1
- package/dist/lib/config.d.ts +4 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +26 -14
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/lockfile.d.ts.map +1 -1
- package/dist/lib/lockfile.js +8 -7
- package/dist/lib/lockfile.js.map +1 -1
- package/dist/lib/skills-cli.d.ts +5 -2
- package/dist/lib/skills-cli.d.ts.map +1 -1
- package/dist/lib/skills-cli.js +21 -5
- package/dist/lib/skills-cli.js.map +1 -1
- package/dist/lib/types.d.ts +9 -3
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +34 -1
- package/dist/lib/types.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +3 -1
- package/dist/utils/logger.js.map +1 -1
- package/package.json +56 -51
- package/templates/skillpack.yaml +11 -4
package/README.md
CHANGED
|
@@ -27,6 +27,7 @@ skillpack init
|
|
|
27
27
|
```yaml
|
|
28
28
|
agents:
|
|
29
29
|
- claude-code
|
|
30
|
+
- antigravity
|
|
30
31
|
- cursor
|
|
31
32
|
|
|
32
33
|
skills:
|
|
@@ -46,10 +47,14 @@ skillpack install
|
|
|
46
47
|
### skillpack.yaml
|
|
47
48
|
|
|
48
49
|
```yaml
|
|
49
|
-
#
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
# Install skills to global folders (default: false)
|
|
51
|
+
# global: true
|
|
52
|
+
|
|
53
|
+
# Target agents to install skills to (defaults to all agents if omitted)
|
|
54
|
+
# agents:
|
|
55
|
+
# - claude-code
|
|
56
|
+
# - github-copilot
|
|
57
|
+
# - cursor
|
|
53
58
|
|
|
54
59
|
# Skills to install (owner/repo format)
|
|
55
60
|
skills:
|
|
@@ -68,6 +73,40 @@ skills:
|
|
|
68
73
|
- specific-skill
|
|
69
74
|
```
|
|
70
75
|
|
|
76
|
+
### Supported Agents
|
|
77
|
+
|
|
78
|
+
Skillpack supports all 25 agents from [skills.sh](https://skills.sh):
|
|
79
|
+
|
|
80
|
+
| Agent | Local Skills Dir | Global Skills Dir |
|
|
81
|
+
|-------|------------------|-------------------|
|
|
82
|
+
| `amp` | `.agents/skills/` | `~/.config/agents/skills/` |
|
|
83
|
+
| `antigravity` | `.agent/skills/` | `~/.gemini/antigravity/skills/` |
|
|
84
|
+
| `claude-code` | `.claude/skills/` | `~/.claude/skills/` |
|
|
85
|
+
| `clawdbot` | `skills/` | `~/.clawdbot/skills/` |
|
|
86
|
+
| `cline` | `.cline/skills/` | `~/.cline/skills/` |
|
|
87
|
+
| `codex` | `.codex/skills/` | `~/.codex/skills/` |
|
|
88
|
+
| `command-code` | `.commandcode/skills/` | `~/.commandcode/skills/` |
|
|
89
|
+
| `cursor` | `.cursor/skills/` | `~/.cursor/skills/` |
|
|
90
|
+
| `droid` | `.factory/skills/` | `~/.factory/skills/` |
|
|
91
|
+
| `gemini-cli` | `.gemini/skills/` | `~/.gemini/skills/` |
|
|
92
|
+
| `github-copilot` | `.github/skills/` | `~/.copilot/skills/` |
|
|
93
|
+
| `goose` | `.goose/skills/` | `~/.config/goose/skills/` |
|
|
94
|
+
| `kilo` | `.kilocode/skills/` | `~/.kilocode/skills/` |
|
|
95
|
+
| `kiro-cli` | `.kiro/skills/` | `~/.kiro/skills/` |
|
|
96
|
+
| `mcpjam` | `.mcpjam/skills/` | `~/.mcpjam/skills/` |
|
|
97
|
+
| `neovate` | `.neovate/skills/` | `~/.neovate/skills/` |
|
|
98
|
+
| `opencode` | `.opencode/skills/` | `~/.config/opencode/skills/` |
|
|
99
|
+
| `openhands` | `.openhands/skills/` | `~/.openhands/skills/` |
|
|
100
|
+
| `pi` | `.pi/skills/` | `~/.pi/agent/skills/` |
|
|
101
|
+
| `qoder` | `.qoder/skills/` | `~/.qoder/skills/` |
|
|
102
|
+
| `qwen-code` | `.qwen/skills/` | `~/.qwen/skills/` |
|
|
103
|
+
| `roo` | `.roo/skills/` | `~/.roo/skills/` |
|
|
104
|
+
| `trae` | `.trae/skills/` | `~/.trae/skills/` |
|
|
105
|
+
| `windsurf` | `.windsurf/skills/` | `~/.codeium/windsurf/skills/` |
|
|
106
|
+
| `zencoder` | `.zencoder/skills/` | `~/.zencoder/skills/` |
|
|
107
|
+
|
|
108
|
+
Skills are installed by the underlying `npx skills add` command from [skills.sh](https://skills.sh).
|
|
109
|
+
|
|
71
110
|
### Lockfile
|
|
72
111
|
|
|
73
112
|
Running `skillpack install` creates a `skillpack-lock.yaml` file that tracks installed versions. Commit this file to ensure reproducible installs across your team.
|
|
@@ -87,6 +126,7 @@ Running `skillpack install` creates a `skillpack-lock.yaml` file that tracks ins
|
|
|
87
126
|
--verbose # Detailed output
|
|
88
127
|
--config <path> # Custom config file path
|
|
89
128
|
--no-lock # Ignore lockfile and install latest
|
|
129
|
+
-g, --global # Install skills to global folders
|
|
90
130
|
```
|
|
91
131
|
|
|
92
132
|
## Examples
|
package/dist/cli.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
2
5
|
import { Command } from "commander";
|
|
3
|
-
import { installCommand } from "./commands/install.js";
|
|
4
6
|
import { initCommand } from "./commands/init.js";
|
|
7
|
+
import { installCommand } from "./commands/install.js";
|
|
8
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
const pkg = JSON.parse(readFileSync(join(__dirname, "../package.json"), "utf-8"));
|
|
5
10
|
const program = new Command();
|
|
6
11
|
program
|
|
7
12
|
.name("skillpack")
|
|
8
13
|
.description("Package manager for skills.sh - batch install skills to AI agents")
|
|
9
|
-
.version(
|
|
14
|
+
.version(pkg.version);
|
|
10
15
|
program
|
|
11
16
|
.command("install")
|
|
12
17
|
.description("Install all skills from skillpack.yaml")
|
|
@@ -15,6 +20,7 @@ program
|
|
|
15
20
|
.option("--verbose", "Detailed output", false)
|
|
16
21
|
.option("--config <path>", "Custom config file path")
|
|
17
22
|
.option("--no-lock", "Ignore lockfile and install latest")
|
|
23
|
+
.option("-g, --global", "Install skills to global folders", false)
|
|
18
24
|
.action(async (opts) => {
|
|
19
25
|
const options = {
|
|
20
26
|
dryRun: opts.dryRun,
|
|
@@ -22,6 +28,7 @@ program
|
|
|
22
28
|
verbose: opts.verbose,
|
|
23
29
|
config: opts.config,
|
|
24
30
|
noLock: !opts.lock, // commander converts --no-lock to lock: false
|
|
31
|
+
global: opts.global,
|
|
25
32
|
};
|
|
26
33
|
await installCommand(options);
|
|
27
34
|
});
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACrB,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CACzD,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACL,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CACX,mEAAmE,CACnE;KACA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAEvB,OAAO;KACL,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,WAAW,EAAE,iDAAiD,EAAE,KAAK,CAAC;KAC7E,MAAM,CAAC,SAAS,EAAE,mCAAmC,EAAE,KAAK,CAAC;KAC7D,MAAM,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,CAAC;KAC7C,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;KACpD,MAAM,CAAC,WAAW,EAAE,oCAAoC,CAAC;KACzD,MAAM,CAAC,cAAc,EAAE,kCAAkC,EAAE,KAAK,CAAC;KACjE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACtB,MAAM,OAAO,GAAmB;QAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,8CAA8C;QAClE,MAAM,EAAE,IAAI,CAAC,MAAM;KACnB,CAAC;IACF,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,SAAS,EAAE,mCAAmC,EAAE,KAAK,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACtB,MAAM,OAAO,GAAgB;QAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;KACjB,CAAC;IACF,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEJ,6CAA6C;AAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;IACzB,4BAA4B;IAC5B,OAAO,CAAC,IAAI,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AASnD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBrE"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { readFile, writeFile } from "node:fs/promises";
|
|
2
1
|
import { existsSync } from "node:fs";
|
|
3
|
-
import {
|
|
2
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
import { dirname } from "node:path";
|
|
6
5
|
import { logger } from "../utils/logger.js";
|
|
7
6
|
const CONFIG_FILENAME = "skillpack.yaml";
|
|
8
7
|
// Get template path relative to this file
|
|
@@ -33,9 +32,36 @@ function getDefaultTemplate() {
|
|
|
33
32
|
# Run \`skillpack install\` to install all skills below
|
|
34
33
|
|
|
35
34
|
# Target agents to install skills to
|
|
35
|
+
# Supported: amp, antigravity, claude-code, clawdbot, cline, codex, command-code,
|
|
36
|
+
# cursor, droid, gemini-cli, github-copilot, goose, kilo, kiro-cli,
|
|
37
|
+
# mcpjam, neovate, opencode, openhands, pi, qoder, qwen-code, roo,
|
|
38
|
+
# trae, windsurf, zencoder
|
|
36
39
|
agents:
|
|
37
40
|
- claude-code
|
|
41
|
+
# - amp
|
|
42
|
+
# - antigravity
|
|
43
|
+
# - clawdbot
|
|
44
|
+
# - cline
|
|
45
|
+
# - codex
|
|
46
|
+
# - command-code
|
|
38
47
|
# - cursor
|
|
48
|
+
# - droid
|
|
49
|
+
# - gemini-cli
|
|
50
|
+
# - github-copilot
|
|
51
|
+
# - goose
|
|
52
|
+
# - kilo
|
|
53
|
+
# - kiro-cli
|
|
54
|
+
# - mcpjam
|
|
55
|
+
# - neovate
|
|
56
|
+
# - opencode
|
|
57
|
+
# - openhands
|
|
58
|
+
# - pi
|
|
59
|
+
# - qoder
|
|
60
|
+
# - qwen-code
|
|
61
|
+
# - roo
|
|
62
|
+
# - trae
|
|
63
|
+
# - windsurf
|
|
64
|
+
# - zencoder
|
|
39
65
|
|
|
40
66
|
# Skills to install (owner/repo format)
|
|
41
67
|
skills:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEzC,0CAA0C;AAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,gCAAgC,CAAC,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;IAExD,+BAA+B;IAC/B,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,4CAA4C,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,iCAAiC;IACjC,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACJ,QAAQ,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACR,2EAA2E;QAC3E,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,CAAC,OAAO,CAAC,WAAW,eAAe,EAAE,CAAC,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,kBAAkB;IAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDP,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACX,cAAc,EAId,MAAM,iBAAiB,CAAC;AAGzB,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAkJ3E"}
|
package/dist/commands/install.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { findConfigPath, loadConfig, parseSkillsToInstall } from "../lib/config.js";
|
|
2
|
-
import { getLockfilePath,
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { findConfigPath, loadConfig, parseSkillsToInstall, } from "../lib/config.js";
|
|
2
|
+
import { createLockfile, getLockfilePath, isAlreadyInstalled, readLockfile, updateLockfile, writeLockfile, } from "../lib/lockfile.js";
|
|
3
|
+
import { getRepoCommit, installSkillEntry } from "../lib/skills-cli.js";
|
|
4
|
+
import { createSpinner, logger } from "../utils/logger.js";
|
|
5
5
|
export async function installCommand(options) {
|
|
6
6
|
// 1. Find config file
|
|
7
7
|
const configPath = options.config || findConfigPath();
|
|
@@ -20,12 +20,28 @@ export async function installCommand(options) {
|
|
|
20
20
|
logger.error(err instanceof Error ? err.message : String(err));
|
|
21
21
|
process.exit(1);
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
// Merge global: CLI -g flag OR config global: true
|
|
24
|
+
const isGlobal = options.global || config.global;
|
|
25
|
+
const { skills: skillsToInstall, invalidRepos } = parseSkillsToInstall(config);
|
|
26
|
+
const allResults = [];
|
|
27
|
+
// Report invalid repos but continue with valid ones
|
|
28
|
+
for (const repo of invalidRepos) {
|
|
29
|
+
logger.error(`Invalid repo format: "${repo}". Expected "owner/repo" format, skipping.`);
|
|
30
|
+
allResults.push({
|
|
31
|
+
repo,
|
|
32
|
+
skill: "unknown",
|
|
33
|
+
status: "failed",
|
|
34
|
+
message: "invalid repo format",
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
if (skillsToInstall.length === 0 && invalidRepos.length === 0) {
|
|
25
38
|
logger.warn("No skills defined in skillpack.yaml");
|
|
26
39
|
return;
|
|
27
40
|
}
|
|
28
|
-
|
|
41
|
+
const resolvedAgents = skillsToInstall[0]?.agents ?? config.agents;
|
|
42
|
+
if (skillsToInstall.length > 0) {
|
|
43
|
+
logger.info(`Found ${skillsToInstall.length} skill source(s) for agents: ${resolvedAgents.join(", ")}`);
|
|
44
|
+
}
|
|
29
45
|
// 3. Load lockfile (unless --no-lock)
|
|
30
46
|
const lockfilePath = getLockfilePath(configPath);
|
|
31
47
|
let lockfile = null;
|
|
@@ -36,7 +52,6 @@ export async function installCommand(options) {
|
|
|
36
52
|
}
|
|
37
53
|
}
|
|
38
54
|
// 4. Install each skill
|
|
39
|
-
const allResults = [];
|
|
40
55
|
let newLockfile = lockfile || createLockfile();
|
|
41
56
|
for (const skill of skillsToInstall) {
|
|
42
57
|
// Check if already installed (unless --force)
|
|
@@ -60,6 +75,7 @@ export async function installCommand(options) {
|
|
|
60
75
|
const results = await installSkillEntry(skill, {
|
|
61
76
|
dryRun: options.dryRun,
|
|
62
77
|
verbose: options.verbose,
|
|
78
|
+
global: isGlobal,
|
|
63
79
|
});
|
|
64
80
|
allResults.push(...results);
|
|
65
81
|
// Update spinner based on results
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -10,7 +10,10 @@ export declare function loadConfig(configPath: string): Promise<SkillpackConfig>
|
|
|
10
10
|
/**
|
|
11
11
|
* Transform config into normalized list of skills to install
|
|
12
12
|
*/
|
|
13
|
-
export declare function parseSkillsToInstall(config: SkillpackConfig):
|
|
13
|
+
export declare function parseSkillsToInstall(config: SkillpackConfig): {
|
|
14
|
+
skills: SkillToInstall[];
|
|
15
|
+
invalidRepos: string[];
|
|
16
|
+
};
|
|
14
17
|
/**
|
|
15
18
|
* Validate repo format (owner/repo)
|
|
16
19
|
*/
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAKA,OAAO,EAEN,KAAK,eAAe,EAEpB,KAAK,cAAc,EAEnB,MAAM,YAAY,CAAC;AAIpB;;GAEG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,GAAE,MAAsB,GAC9B,MAAM,GAAG,IAAI,CAkBf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAuB7E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG;IAC9D,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;CACvB,CA2BA;AAgBD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD"}
|
package/dist/lib/config.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { readFile } from "node:fs/promises";
|
|
2
1
|
import { existsSync } from "node:fs";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
3
|
import { dirname, join, resolve } from "node:path";
|
|
4
4
|
import { parse as parseYaml } from "yaml";
|
|
5
5
|
import { ZodError } from "zod";
|
|
6
|
-
import { SkillpackConfigSchema, } from "./types.js";
|
|
6
|
+
import { SkillpackConfigSchema, SUPPORTED_AGENTS, } from "./types.js";
|
|
7
7
|
const CONFIG_FILENAME = "skillpack.yaml";
|
|
8
8
|
/**
|
|
9
9
|
* Find skillpack.yaml by walking up from cwd
|
|
10
10
|
*/
|
|
11
11
|
export function findConfigPath(startDir = process.cwd()) {
|
|
12
12
|
let dir = resolve(startDir);
|
|
13
|
-
const
|
|
14
|
-
|
|
13
|
+
const MAX_DEPTH = 256;
|
|
14
|
+
for (let depth = 0; depth < MAX_DEPTH; depth++) {
|
|
15
15
|
const configPath = join(dir, CONFIG_FILENAME);
|
|
16
16
|
if (existsSync(configPath)) {
|
|
17
17
|
return configPath;
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
const parent = dirname(dir);
|
|
20
|
+
if (parent === dir) {
|
|
21
|
+
// Reached filesystem root
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
dir = parent;
|
|
25
25
|
}
|
|
26
26
|
return null;
|
|
27
27
|
}
|
|
@@ -56,20 +56,32 @@ export async function loadConfig(configPath) {
|
|
|
56
56
|
* Transform config into normalized list of skills to install
|
|
57
57
|
*/
|
|
58
58
|
export function parseSkillsToInstall(config) {
|
|
59
|
-
const
|
|
59
|
+
const skills = [];
|
|
60
|
+
const invalidRepos = [];
|
|
61
|
+
const agents = resolveAgents(config.agents);
|
|
60
62
|
for (const [repo, entry] of Object.entries(config.skills)) {
|
|
63
|
+
if (!isValidRepoFormat(repo)) {
|
|
64
|
+
invalidRepos.push(repo);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
61
67
|
const item = {
|
|
62
68
|
repo,
|
|
63
69
|
skills: resolveSkillsList(entry),
|
|
64
|
-
agents
|
|
70
|
+
agents,
|
|
65
71
|
};
|
|
66
72
|
// Extract ref if present
|
|
67
73
|
if (typeof entry === "object" && entry !== null && "ref" in entry) {
|
|
68
74
|
item.ref = entry.ref;
|
|
69
75
|
}
|
|
70
|
-
|
|
76
|
+
skills.push(item);
|
|
77
|
+
}
|
|
78
|
+
return { skills, invalidRepos };
|
|
79
|
+
}
|
|
80
|
+
function resolveAgents(agents) {
|
|
81
|
+
if (agents.includes("*")) {
|
|
82
|
+
return [...SUPPORTED_AGENTS];
|
|
71
83
|
}
|
|
72
|
-
return
|
|
84
|
+
return agents;
|
|
73
85
|
}
|
|
74
86
|
function resolveSkillsList(entry) {
|
|
75
87
|
if (entry === "all") {
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAGN,qBAAqB,EAErB,gBAAgB,GAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,cAAc,CAC7B,WAAmB,OAAO,CAAC,GAAG,EAAE;IAEhC,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAG,GAAG,CAAC;IAEtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAC9C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO,UAAU,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACpB,0BAA0B;YAC1B,MAAM;QACP,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAkB;IAClD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEpD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC;QACJ,OAAO,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,OAAO,OAAO,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACxC,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,GAAG,CAAC;IACX,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAuB;IAI3D,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,SAAS;QACV,CAAC;QAED,MAAM,IAAI,GAAmB;YAC5B,IAAI;YACJ,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC;YAChC,MAAM;SACN,CAAC;QAEF,yBAAyB;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACnE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACtB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,aAAa,CAAC,MAAgB;IACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAiB;IAC3C,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../../src/lib/lockfile.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../../src/lib/lockfile.ts"],"names":[],"mappings":"AAIA,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,oBAAoB,EAEzB,MAAM,YAAY,CAAC;AAIpB;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAsB,YAAY,CACjC,YAAY,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAgB1B;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAKzC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,oBAAoB,GAChC,QAAQ,CAQV;AAED;;GAEG;AACH,wBAAsB,aAAa,CAClC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,EACxB,MAAM,EAAE,MAAM,EAAE,GACd,OAAO,CAmBT"}
|
package/dist/lib/lockfile.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { readFile, writeFile } from "node:fs/promises";
|
|
2
1
|
import { existsSync } from "node:fs";
|
|
2
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import { parse as parseYaml, stringify as stringifyYaml } from "yaml";
|
|
5
|
-
import { LockfileSchema } from "./types.js";
|
|
5
|
+
import { LockfileSchema, } from "./types.js";
|
|
6
6
|
const LOCKFILE_NAME = "skillpack-lock.yaml";
|
|
7
7
|
/**
|
|
8
8
|
* Get lockfile path relative to config path
|
|
@@ -53,11 +53,12 @@ export function updateLockfile(lockfile, repo, installation) {
|
|
|
53
53
|
*/
|
|
54
54
|
export async function writeLockfile(lockfilePath, lockfile) {
|
|
55
55
|
const header = "# Auto-generated by skillpack. Commit this file to git.\n\n";
|
|
56
|
-
const content = header +
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
const content = header +
|
|
57
|
+
stringifyYaml(lockfile, {
|
|
58
|
+
lineWidth: 0, // Don't wrap lines
|
|
59
|
+
defaultStringType: "QUOTE_DOUBLE",
|
|
60
|
+
defaultKeyType: "PLAIN",
|
|
61
|
+
});
|
|
61
62
|
await writeFile(lockfilePath, content, "utf-8");
|
|
62
63
|
}
|
|
63
64
|
/**
|
package/dist/lib/lockfile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../src/lib/lockfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../src/lib/lockfile.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/skills-cli.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { InstallResult, SkillToInstall } from "./types.js";
|
|
2
2
|
interface SkillsAddOptions {
|
|
3
3
|
dryRun: boolean;
|
|
4
4
|
verbose: boolean;
|
|
5
|
+
global: boolean;
|
|
5
6
|
}
|
|
6
7
|
/**
|
|
7
8
|
* Build the npx skills add command arguments
|
|
8
9
|
*/
|
|
9
|
-
export declare function buildSkillsCommand(skill: SkillToInstall
|
|
10
|
+
export declare function buildSkillsCommand(skill: SkillToInstall, options?: {
|
|
11
|
+
global?: boolean;
|
|
12
|
+
}): string[];
|
|
10
13
|
/**
|
|
11
14
|
* Execute a single skill installation
|
|
12
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-cli.d.ts","sourceRoot":"","sources":["../../src/lib/skills-cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"skills-cli.d.ts","sourceRoot":"","sources":["../../src/lib/skills-cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIhE,UAAU,gBAAgB;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B,MAAM,EAAE,CAsBV;AAED;;GAEG;AACH,wBAAsB,YAAY,CACjC,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,GAAG,IAAI,EAAE,oDAAoD;AAClF,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC,aAAa,CAAC,CAmFxB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACtC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC,aAAa,EAAE,CAAC,CAgB1B;AAqBD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIlE"}
|
package/dist/lib/skills-cli.js
CHANGED
|
@@ -4,8 +4,13 @@ const MAX_RETRIES = 1;
|
|
|
4
4
|
/**
|
|
5
5
|
* Build the npx skills add command arguments
|
|
6
6
|
*/
|
|
7
|
-
export function buildSkillsCommand(skill) {
|
|
8
|
-
const
|
|
7
|
+
export function buildSkillsCommand(skill, options) {
|
|
8
|
+
const repoArg = skill.ref ? `${skill.repo}@${skill.ref}` : skill.repo;
|
|
9
|
+
const args = ["skills", "add", repoArg, "-y"];
|
|
10
|
+
// Add global flag
|
|
11
|
+
if (options?.global) {
|
|
12
|
+
args.push("-g");
|
|
13
|
+
}
|
|
9
14
|
// Add agents
|
|
10
15
|
for (const agent of skill.agents) {
|
|
11
16
|
args.push("-a", agent);
|
|
@@ -26,7 +31,12 @@ options) {
|
|
|
26
31
|
const skillName = specificSkill ?? (skill.skills === "all" ? "all" : skill.skills.join(", "));
|
|
27
32
|
const repo = skill.repo;
|
|
28
33
|
// Build command for this specific skill or all
|
|
29
|
-
const
|
|
34
|
+
const repoArg = skill.ref ? `${repo}@${skill.ref}` : repo;
|
|
35
|
+
const baseArgs = ["skills", "add", repoArg, "-y"];
|
|
36
|
+
// Add global flag
|
|
37
|
+
if (options.global) {
|
|
38
|
+
baseArgs.push("-g");
|
|
39
|
+
}
|
|
30
40
|
// Add agents
|
|
31
41
|
for (const agent of skill.agents) {
|
|
32
42
|
baseArgs.push("-a", agent);
|
|
@@ -62,8 +72,14 @@ options) {
|
|
|
62
72
|
const stdout = String(result.stdout ?? "");
|
|
63
73
|
const stderr = String(result.stderr ?? "");
|
|
64
74
|
const output = stdout + stderr;
|
|
65
|
-
if (output.includes("already installed") ||
|
|
66
|
-
|
|
75
|
+
if (output.includes("already installed") ||
|
|
76
|
+
output.includes("Already installed")) {
|
|
77
|
+
return {
|
|
78
|
+
repo,
|
|
79
|
+
skill: skillName,
|
|
80
|
+
status: "skipped",
|
|
81
|
+
message: "already installed",
|
|
82
|
+
};
|
|
67
83
|
}
|
|
68
84
|
lastError = stderr || stdout || `Exit code ${result.exitCode}`;
|
|
69
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-cli.js","sourceRoot":"","sources":["../../src/lib/skills-cli.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"skills-cli.js","sourceRoot":"","sources":["../../src/lib/skills-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
export declare const SUPPORTED_AGENTS: readonly ["amp", "antigravity", "claude-code", "clawdbot", "cline", "codex", "command-code", "cursor", "droid", "gemini-cli", "github-copilot", "goose", "kilo", "kiro-cli", "mcpjam", "neovate", "opencode", "openhands", "pi", "qoder", "qwen-code", "roo", "trae", "windsurf", "zencoder"];
|
|
3
|
+
export type SupportedAgent = (typeof SUPPORTED_AGENTS)[number];
|
|
2
4
|
declare const SkillEntrySchema: z.ZodEffects<z.ZodUnion<[z.ZodLiteral<"all">, z.ZodObject<{
|
|
3
5
|
ref: z.ZodOptional<z.ZodString>;
|
|
4
6
|
skills: z.ZodArray<z.ZodString, "many">;
|
|
@@ -14,7 +16,8 @@ declare const SkillEntrySchema: z.ZodEffects<z.ZodUnion<[z.ZodLiteral<"all">, z.
|
|
|
14
16
|
}, unknown>;
|
|
15
17
|
export type SkillEntry = z.infer<typeof SkillEntrySchema>;
|
|
16
18
|
export declare const SkillpackConfigSchema: z.ZodObject<{
|
|
17
|
-
agents: z.ZodArray<z.ZodString, "many"
|
|
19
|
+
agents: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
20
|
+
global: z.ZodDefault<z.ZodBoolean>;
|
|
18
21
|
skills: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodLiteral<"all">, z.ZodObject<{
|
|
19
22
|
ref: z.ZodOptional<z.ZodString>;
|
|
20
23
|
skills: z.ZodArray<z.ZodString, "many">;
|
|
@@ -34,9 +37,11 @@ export declare const SkillpackConfigSchema: z.ZodObject<{
|
|
|
34
37
|
ref?: string | undefined;
|
|
35
38
|
}>;
|
|
36
39
|
agents: string[];
|
|
40
|
+
global: boolean;
|
|
37
41
|
}, {
|
|
38
42
|
skills: Record<string, unknown>;
|
|
39
|
-
agents
|
|
43
|
+
agents?: string[] | undefined;
|
|
44
|
+
global?: boolean | undefined;
|
|
40
45
|
}>;
|
|
41
46
|
export type SkillpackConfig = z.infer<typeof SkillpackConfigSchema>;
|
|
42
47
|
declare const LockfileInstallationSchema: z.ZodObject<{
|
|
@@ -108,8 +113,9 @@ export interface InstallOptions {
|
|
|
108
113
|
dryRun: boolean;
|
|
109
114
|
force: boolean;
|
|
110
115
|
verbose: boolean;
|
|
111
|
-
config
|
|
116
|
+
config?: string;
|
|
112
117
|
noLock: boolean;
|
|
118
|
+
global: boolean;
|
|
113
119
|
}
|
|
114
120
|
export interface InitOptions {
|
|
115
121
|
force: boolean;
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,gBAAgB,+RA0BnB,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAO/D,QAAA,MAAM,gBAAgB;;;;;;;;;;;;WAerB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAGpE,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;EAK9B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAGtD,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAGD,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,OAAO,CAAC;CACf"}
|
package/dist/lib/types.js
CHANGED
|
@@ -1,4 +1,33 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
// Supported agents for skill installation
|
|
3
|
+
// Source: https://github.com/vercel-labs/add-skill
|
|
4
|
+
export const SUPPORTED_AGENTS = [
|
|
5
|
+
"amp",
|
|
6
|
+
"antigravity",
|
|
7
|
+
"claude-code",
|
|
8
|
+
"clawdbot",
|
|
9
|
+
"cline",
|
|
10
|
+
"codex",
|
|
11
|
+
"command-code",
|
|
12
|
+
"cursor",
|
|
13
|
+
"droid",
|
|
14
|
+
"gemini-cli",
|
|
15
|
+
"github-copilot",
|
|
16
|
+
"goose",
|
|
17
|
+
"kilo",
|
|
18
|
+
"kiro-cli",
|
|
19
|
+
"mcpjam",
|
|
20
|
+
"neovate",
|
|
21
|
+
"opencode",
|
|
22
|
+
"openhands",
|
|
23
|
+
"pi",
|
|
24
|
+
"qoder",
|
|
25
|
+
"qwen-code",
|
|
26
|
+
"roo",
|
|
27
|
+
"trae",
|
|
28
|
+
"windsurf",
|
|
29
|
+
"zencoder",
|
|
30
|
+
];
|
|
2
31
|
// Schema for individual skill entry in config
|
|
3
32
|
// Can be:
|
|
4
33
|
// - "all" (install all skills from repo)
|
|
@@ -19,7 +48,11 @@ const SkillEntrySchema = z.preprocess((val) => {
|
|
|
19
48
|
]));
|
|
20
49
|
// Main skillpack.yaml schema
|
|
21
50
|
export const SkillpackConfigSchema = z.object({
|
|
22
|
-
agents: z
|
|
51
|
+
agents: z
|
|
52
|
+
.array(z.string())
|
|
53
|
+
.min(1, "At least one agent must be specified")
|
|
54
|
+
.default(["*"]),
|
|
55
|
+
global: z.boolean().default(false),
|
|
23
56
|
skills: z.record(z.string(), SkillEntrySchema),
|
|
24
57
|
});
|
|
25
58
|
// Lockfile schema for tracking installed versions
|
package/dist/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8CAA8C;AAC9C,UAAU;AACV,yCAAyC;AACzC,+CAA+C;AAC/C,2DAA2D;AAC3D,MAAM,gBAAgB,GAAG,CAAC,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,0CAA0C;AAC1C,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC/B,KAAK;IACL,aAAa;IACb,aAAa;IACb,UAAU;IACV,OAAO;IACP,OAAO;IACP,cAAc;IACd,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,gBAAgB;IAChB,OAAO;IACP,MAAM;IACN,UAAU;IACV,QAAQ;IACR,SAAS;IACT,UAAU;IACV,WAAW;IACX,IAAI;IACJ,OAAO;IACP,WAAW;IACX,KAAK;IACL,MAAM;IACN,UAAU;IACV,UAAU;CACD,CAAC;AAGX,8CAA8C;AAC9C,UAAU;AACV,yCAAyC;AACzC,+CAA+C;AAC/C,2DAA2D;AAC3D,MAAM,gBAAgB,GAAG,CAAC,CAAC,UAAU,CACpC,CAAC,GAAG,EAAE,EAAE;IACP,2CAA2C;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACxB,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,EACD,CAAC,CAAC,KAAK,CAAC;IACP,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAChB,CAAC,CAAC,MAAM,CAAC;QACR,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAClC,CAAC;CACF,CAAC,CACF,CAAC;AAIF,6BAA6B;AAC7B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;SAC9C,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;IAChB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC;CAC9C,CAAC,CAAC;AAIH,kDAAkD;AAClD,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,0BAA0B,CAAC;CAC/D,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AACA,OAAY,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEpC,eAAO,MAAM,MAAM;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AACA,OAAY,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEpC,eAAO,MAAM,MAAM;gBACN,MAAM;mBACH,MAAM;gBACT,MAAM;iBACL,MAAM;iBACN,MAAM,WAAW,OAAO;iBAKxB,MAAM;gBACP,MAAM;iBACL,MAAM;kBACL,MAAM;mBACL,MAAM;gBACT,MAAM;yBAGG,MAAM,WAAW,MAAM,UAAU,MAAM;;CAW5D,CAAC;AAGF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAE/C"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -25,7 +25,9 @@ export const logger = {
|
|
|
25
25
|
parts.push(chalk.yellow(`${skipped} skipped`));
|
|
26
26
|
if (failed > 0)
|
|
27
27
|
parts.push(chalk.red(`${failed} failed`));
|
|
28
|
-
|
|
28
|
+
if (parts.length === 0)
|
|
29
|
+
parts.push(chalk.gray("nothing to install"));
|
|
30
|
+
console.log(`\n${chalk.bold("Summary:")}`, parts.join(", "));
|
|
29
31
|
},
|
|
30
32
|
// Blank line
|
|
31
33
|
blank: () => console.log(),
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAiB,MAAM,KAAK,CAAC;AAEpC,MAAM,CAAC,MAAM,MAAM,GAAG;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAiB,MAAM,KAAK,CAAC;AAEpC,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACxD,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IAC5D,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IAC1D,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IAC1D,KAAK,EAAE,CAAC,GAAW,EAAE,OAAgB,EAAE,EAAE;QACxC,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,sBAAsB;IACtB,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IACtC,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IAC1C,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5C,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAEtC,qBAAqB;IACrB,OAAO,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAE,MAAc,EAAE,EAAE;QAC/D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,SAAS,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,YAAY,CAAC,CAAC,CAAC;QACrE,IAAI,OAAO,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,UAAU,CAAC,CAAC,CAAC;QAChE,IAAI,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,aAAa;IACb,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;CAC1B,CAAC;AAEF,kBAAkB;AAClB,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACrC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,53 +1,58 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
2
|
+
"name": "skillpack",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Package manager for skills.sh - batch install skills to AI agents",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"skillpack": "./dist/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"main": "./dist/cli.js",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"templates"
|
|
13
|
+
],
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/joventuraz/skillpack.git"
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"dev": "tsc --watch",
|
|
21
|
+
"start": "node dist/cli.js",
|
|
22
|
+
"typecheck": "tsc --noEmit",
|
|
23
|
+
"test": "vitest run",
|
|
24
|
+
"test:watch": "vitest",
|
|
25
|
+
"prepublishOnly": "npm run build",
|
|
26
|
+
"format": "biome format --write .",
|
|
27
|
+
"lint": "biome check --write .",
|
|
28
|
+
"lint:check": "biome ci ."
|
|
29
|
+
},
|
|
30
|
+
"keywords": [
|
|
31
|
+
"skills",
|
|
32
|
+
"ai",
|
|
33
|
+
"claude",
|
|
34
|
+
"cursor",
|
|
35
|
+
"antigravity",
|
|
36
|
+
"package-manager",
|
|
37
|
+
"cli"
|
|
38
|
+
],
|
|
39
|
+
"author": "",
|
|
40
|
+
"license": "MIT",
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"chalk": "^5.3.0",
|
|
43
|
+
"commander": "^12.1.0",
|
|
44
|
+
"execa": "^9.5.2",
|
|
45
|
+
"ora": "^8.1.1",
|
|
46
|
+
"yaml": "^2.7.0",
|
|
47
|
+
"zod": "^3.24.2"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@biomejs/biome": "2.3.12",
|
|
51
|
+
"@types/node": "^22.10.7",
|
|
52
|
+
"typescript": "^5.7.3",
|
|
53
|
+
"vitest": "^4.0.18"
|
|
54
|
+
},
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">=18"
|
|
57
|
+
}
|
|
53
58
|
}
|
package/templates/skillpack.yaml
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
# skillpack.yaml - Package manager for skills.sh
|
|
2
2
|
# Run `skillpack install` to install all skills below
|
|
3
3
|
|
|
4
|
-
#
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
# Install skills to global folders (e.g. ~/.claude/skills/ instead of .claude/skills/)
|
|
5
|
+
# global: true
|
|
6
|
+
|
|
7
|
+
# Target agents to install skills to (defaults to all agents if omitted)
|
|
8
|
+
# Supported: amp, antigravity, claude-code, clawdbot, cline, codex, command-code,
|
|
9
|
+
# cursor, droid, gemini-cli, github-copilot, goose, kilo, kiro-cli,
|
|
10
|
+
# mcpjam, neovate, opencode, openhands, pi, qoder, qwen-code, roo,
|
|
11
|
+
# trae, windsurf, zencoder
|
|
12
|
+
# agents:
|
|
13
|
+
# - claude-code
|
|
14
|
+
# - cursor
|
|
8
15
|
|
|
9
16
|
# Skills to install (owner/repo format)
|
|
10
17
|
skills:
|