@xelandernt/skilly 0.0.28 → 0.0.30
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 +119 -128
- package/dist/src/lib/launcher.js +2 -2
- package/dist/src/lib/targets.js +7 -6
- package/package.json +33 -32
- package/vendor/aarch64-apple-darwin/skilly +0 -0
- package/vendor/x86_64-apple-darwin/skilly +0 -0
- package/vendor/x86_64-pc-windows-msvc/skilly.exe +0 -0
- package/vendor/x86_64-unknown-linux-gnu/skilly +0 -0
package/README.md
CHANGED
|
@@ -1,90 +1,91 @@
|
|
|
1
|
-
[](https://www.npmjs.com/package/@xelandernt/skilly)
|
|
2
|
+
[](https://pypi.org/project/skilly/)
|
|
3
3
|
[](https://github.com/facebook/pyrefly)
|
|
4
4
|
[](https://github.com/xelandernt/skilly/stargazers)
|
|
5
|
+
[](https://www.npmjs.com/package/@xelandernt/skilly)
|
|
5
6
|
[](https://pepy.tech/projects/skilly)
|
|
6
|
-
[](https://github.com/xelandernt/skilly/blob/main/LICENSE)
|
|
8
|
-
# skilly
|
|
7
|
+
[](https://github.com/xelandernt/skilly/blob/main/LICENSE)
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
or Python.
|
|
9
|
+
# skilly
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
Manage [Agent Skills](https://agentskills.io/specification) from the command line or Python.
|
|
12
|
+
|
|
13
|
+
`skilly` creates specification-compliant skills, installs skills from GitHub or Python dependencies, and keeps managed skills up to date.
|
|
14
|
+
|
|
15
|
+
## Table of Contents
|
|
16
|
+
|
|
17
|
+
- [Installation](#installation)
|
|
18
|
+
- [Python](#python)
|
|
19
|
+
- [Node](#node)
|
|
20
|
+
- [Homebrew](#homebrew)
|
|
21
|
+
- [Info](#info)
|
|
22
|
+
- [Quick Start](#quick-start)
|
|
23
|
+
- [CLI Commands](#cli-commands)
|
|
24
|
+
- [Create Skills](#create-skills)
|
|
25
|
+
- [Install Dependency Skills](#install-dependency-skills)
|
|
26
|
+
- [Install GitHub Skills](#install-github-skills)
|
|
27
|
+
- [Destinations](#destinations)
|
|
28
|
+
- [Configure Destinations](#configure-destinations)
|
|
29
|
+
- [GitHub Authentication](#github-authentication)
|
|
30
|
+
- [Python API](#python-api)
|
|
31
|
+
- [Development](#development)
|
|
32
|
+
- [License](#license)
|
|
15
33
|
|
|
16
34
|
## Installation
|
|
17
35
|
|
|
18
|
-
|
|
36
|
+
|
|
37
|
+
### Python
|
|
19
38
|
```shell
|
|
20
39
|
uvx skilly --help
|
|
21
|
-
|
|
22
40
|
```
|
|
23
41
|
|
|
24
|
-
|
|
42
|
+
### Node
|
|
25
43
|
```shell
|
|
26
44
|
npx @xelandernt/skilly --help
|
|
27
45
|
```
|
|
28
46
|
|
|
29
|
-
Install the native CLI with Homebrew from this repository's tap:
|
|
30
47
|
|
|
48
|
+
### Homebrew
|
|
31
49
|
```shell
|
|
32
50
|
brew tap xelandernt/skilly https://github.com/xelandernt/skilly
|
|
33
51
|
brew install xelandernt/skilly/skilly
|
|
34
52
|
```
|
|
35
53
|
|
|
36
|
-
|
|
37
|
-
import surface as well:
|
|
54
|
+
### Info
|
|
38
55
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
`skilly`. The current npm support matrix is macOS arm64/x64, Linux x64
|
|
45
|
-
(glibc), and Windows x64.
|
|
56
|
+
| Method | Ships |
|
|
57
|
+
|---------------|------------------------------------------------------------------------------------------------------|
|
|
58
|
+
| `uvx` / `pip` | Python package with import surface + CLI (pre-built wheels: Linux x64, macOS arm64/x64, Windows x64) |
|
|
59
|
+
| `npx` | Native Rust CLI (macOS arm64/x64, Linux x64 glibc, Windows x64) |
|
|
60
|
+
| `brew` | Native Rust CLI (macOS arm64/x64, Linux x64) |
|
|
46
61
|
|
|
47
62
|
## Quick Start
|
|
48
63
|
|
|
49
|
-
Scan the current Python project for skills shipped by its dependencies:
|
|
50
|
-
|
|
51
|
-
```shell
|
|
52
|
-
uvx skilly scan
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Download a skill from GitHub:
|
|
56
|
-
|
|
57
|
-
```shell
|
|
58
|
-
uvx skilly download https://github.com/example/project/tree/main/skills/code-review
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Inspect installed skills:
|
|
62
|
-
|
|
63
64
|
```shell
|
|
64
|
-
uvx skilly
|
|
65
|
+
uvx skilly scan # Find skills from Python dependencies
|
|
66
|
+
uvx skilly download <github-url> # Install skills from GitHub
|
|
67
|
+
uvx skilly list # Browse installed skills
|
|
68
|
+
uvx skilly update # Preview available updates
|
|
65
69
|
```
|
|
66
70
|
|
|
67
71
|
## CLI Commands
|
|
68
72
|
|
|
69
73
|
| Command | Purpose |
|
|
70
|
-
|
|
71
|
-
| `
|
|
72
|
-
| `
|
|
73
|
-
| `
|
|
74
|
-
| `
|
|
75
|
-
| `
|
|
76
|
-
| `
|
|
77
|
-
| `
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
|---------|---------|
|
|
75
|
+
| `scan` | Find skills provided by the project's Python dependencies |
|
|
76
|
+
| `download <github-url>` | Install one or more skills from GitHub |
|
|
77
|
+
| `list` | Browse, update, or remove installed skills |
|
|
78
|
+
| `update` | Preview available updates; `--yes` applies all |
|
|
79
|
+
| `remove <name>` | Remove an installed skill by directory name |
|
|
80
|
+
| `skillsmp search <query>` | Search SkillsMP and install a selected result |
|
|
81
|
+
| `create` | Create a valid skill through a terminal wizard or explicit options |
|
|
82
|
+
| `configure` | Set which directories skilly manages via TUI or CLI flags |
|
|
83
|
+
|
|
84
|
+
Run `skilly <command> --help` for all options.
|
|
80
85
|
|
|
81
86
|
### Create Skills
|
|
82
87
|
|
|
83
|
-
Interactive terminals open a full-screen editor
|
|
84
|
-
Agent Skills fields. `Ctrl+S` creates the skill, `Ctrl+X` cancels, and `Enter`
|
|
85
|
-
in the multi-line editors inserts real line breaks.
|
|
86
|
-
|
|
87
|
-
For scripts and automation, provide the required name and description:
|
|
88
|
+
Interactive terminals open a full-screen editor. `Ctrl+S` creates the skill, `Ctrl+X` cancels.
|
|
88
89
|
|
|
89
90
|
```shell
|
|
90
91
|
uvx skilly create deployment-checks \
|
|
@@ -97,22 +98,20 @@ Run the deployment checklist and report blockers." \
|
|
|
97
98
|
--yes
|
|
98
99
|
```
|
|
99
100
|
|
|
100
|
-
Existing skills are rejected
|
|
101
|
-
atomically. See `uvx skilly create --help` for the complete contract.
|
|
101
|
+
Existing skills are rejected unless `--overwrite` is passed.
|
|
102
102
|
|
|
103
103
|
### Install Dependency Skills
|
|
104
104
|
|
|
105
|
-
`
|
|
106
|
-
skills shipped by direct, development, and optional dependencies:
|
|
105
|
+
`skilly scan` reads `pyproject.toml` and the project's `.venv`, then surfaces skills shipped by dependencies:
|
|
107
106
|
|
|
108
107
|
```shell
|
|
109
108
|
uvx skilly scan
|
|
110
109
|
```
|
|
111
110
|
|
|
112
|
-
|
|
111
|
+
Include or exclude specific extras and dependency groups (flags are repeatable):
|
|
113
112
|
|
|
114
113
|
```shell
|
|
115
|
-
uvx skilly scan --group dev --exclude-extra docs
|
|
114
|
+
uvx skilly scan --group dev --group test --exclude-extra docs
|
|
116
115
|
```
|
|
117
116
|
|
|
118
117
|
### Install GitHub Skills
|
|
@@ -121,86 +120,96 @@ uvx skilly scan --group dev --exclude-extra docs
|
|
|
121
120
|
uvx skilly download https://github.com/example/project
|
|
122
121
|
```
|
|
123
122
|
|
|
124
|
-
When a repository contains multiple skills
|
|
123
|
+
When a repository contains multiple skills:
|
|
125
124
|
|
|
126
125
|
```shell
|
|
127
|
-
uvx skilly download https://github.com/example/project --skill-name code-review
|
|
128
126
|
uvx skilly download https://github.com/example/project --all
|
|
127
|
+
uvx skilly download https://github.com/example/project --skill-name code-review
|
|
129
128
|
```
|
|
130
129
|
|
|
131
130
|
### Destinations
|
|
132
131
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
| Option | Destination |
|
|
136
|
-
| --- | --- |
|
|
137
|
-
| `--local` | Project-local skills directory. |
|
|
138
|
-
| `--global` | User-global skills directory. |
|
|
139
|
-
| `--claude` | Claude skills directory. |
|
|
140
|
-
| `--codex` | Codex skills directory. |
|
|
141
|
-
| `--copilot` | GitHub Copilot skills directory. |
|
|
142
|
-
| `--directory <path>` | Explicit directory; overrides all other destination options. |
|
|
132
|
+
All management commands accept the same destination options:
|
|
143
133
|
|
|
144
|
-
|
|
134
|
+
```shell
|
|
135
|
+
uvx skilly list --local # .agents/skills
|
|
136
|
+
uvx skilly list --global # ~/.agents/skills
|
|
137
|
+
uvx skilly list --claude # .claude/skills
|
|
138
|
+
uvx skilly list --codex # .codex/skills
|
|
139
|
+
uvx skilly list --copilot # .github/skills (local), ~/.copilot/skills (global)
|
|
140
|
+
uvx skilly list --directory ~/custom # Explicit directory
|
|
141
|
+
```
|
|
145
142
|
|
|
146
|
-
|
|
147
|
-
|
|
143
|
+
| Flags | Resolved destination |
|
|
144
|
+
|----------------------|-------------------------------------------------------|
|
|
145
|
+
| _none_ | `SKILLY_DIRECTORY` if set, otherwise `.agents/skills` |
|
|
146
|
+
| `--local` | `.agents/skills` |
|
|
147
|
+
| `--global` | `~/.agents/skills` |
|
|
148
|
+
| `--claude` | `.claude/skills` |
|
|
149
|
+
| `--claude --global` | `~/.claude/skills` |
|
|
150
|
+
| `--codex` | `.codex/skills` |
|
|
151
|
+
| `--codex --global` | `~/.codex/skills` |
|
|
152
|
+
| `--copilot` | `.github/skills` |
|
|
153
|
+
| `--copilot --global` | `~/.copilot/skills` |
|
|
154
|
+
| `--directory <path>` | That directory (after `~` expansion) |
|
|
155
|
+
|
|
156
|
+
Set a default destination:
|
|
148
157
|
|
|
149
158
|
```shell
|
|
150
159
|
export SKILLY_DIRECTORY="$HOME/.config/skilly/skills"
|
|
151
|
-
skilly list
|
|
152
160
|
```
|
|
153
161
|
|
|
154
|
-
`--directory
|
|
155
|
-
|
|
162
|
+
`--directory` overrides all other destination options and `SKILLY_DIRECTORY`.
|
|
163
|
+
|
|
164
|
+
### Configure Destinations
|
|
165
|
+
|
|
166
|
+
`skilly configure` lets you choose which directories skilly should manage. Interactive terminals open a two-tab TUI (Global / Local). Non-interactive runs accept flags.
|
|
156
167
|
|
|
157
168
|
```shell
|
|
158
|
-
uvx skilly
|
|
159
|
-
uvx skilly
|
|
169
|
+
uvx skilly configure # Open the TUI
|
|
170
|
+
uvx skilly configure --show # Print current config as TOML
|
|
171
|
+
uvx skilly configure --reset # Restore defaults
|
|
160
172
|
```
|
|
161
173
|
|
|
162
|
-
|
|
174
|
+
Add or remove custom directories:
|
|
163
175
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
176
|
+
```shell
|
|
177
|
+
uvx skilly configure --add-global /opt/skills
|
|
178
|
+
uvx skilly configure --add-local .project/skills
|
|
179
|
+
uvx skilly configure --remove-global /opt/skills
|
|
180
|
+
uvx skilly configure --remove-local .project/skills
|
|
181
|
+
```
|
|
167
182
|
|
|
168
|
-
|
|
169
|
-
|----------------------|---------------------------------------------------------------------------|
|
|
170
|
-
| _none_ | `SKILLY_DIRECTORY` when set, otherwise `.agents/skills` |
|
|
171
|
-
| `--local` | `.agents/skills` |
|
|
172
|
-
| `--global` | `~/.agents/skills` |
|
|
173
|
-
| `--claude` | `.claude/skills` |
|
|
174
|
-
| `--claude --global` | `~/.claude/skills` |
|
|
175
|
-
| `--codex` | `.codex/skills` |
|
|
176
|
-
| `--codex --global` | `~/.codex/skills` |
|
|
177
|
-
| `--copilot` | `.github/skills` |
|
|
178
|
-
| `--copilot --global` | `~/.copilot/skills` |
|
|
179
|
-
| `--directory <path>` | Exactly that directory, after `~` expansion and absolute-path resolution. |
|
|
183
|
+
Enable or disable built-in destinations (valid keys: `agents_global`, `agents_local`, `claude_global`, `claude_local`, `codex_global`, `codex_local`, `copilot_global`, `copilot_local`):
|
|
180
184
|
|
|
181
|
-
|
|
182
|
-
|
|
185
|
+
```shell
|
|
186
|
+
uvx skilly configure --enable agents_global --disable copilot_global
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Configuration is stored in `~/.skilly.toml`:
|
|
190
|
+
|
|
191
|
+
```toml
|
|
192
|
+
enabled_builtin = ["agents_global", "agents_local", ...]
|
|
193
|
+
custom_global_dirs = []
|
|
194
|
+
custom_local_dirs = []
|
|
195
|
+
```
|
|
183
196
|
|
|
184
197
|
### GitHub Authentication
|
|
185
198
|
|
|
186
|
-
|
|
187
|
-
available token:
|
|
199
|
+
Set a token for higher API rate limits (first available wins: `SKILLY_GITHUB_TOKEN`, `GITHUB_TOKEN`, `GH_TOKEN`):
|
|
188
200
|
|
|
189
201
|
```shell
|
|
190
202
|
export SKILLY_GITHUB_TOKEN=ghp_your_token
|
|
191
|
-
# or GITHUB_TOKEN / GH_TOKEN
|
|
192
203
|
```
|
|
193
204
|
|
|
194
|
-
GitHub-fetching commands also accept `--github-token`.
|
|
205
|
+
All GitHub-fetching commands also accept `--github-token`.
|
|
195
206
|
|
|
196
207
|
## Python API
|
|
197
208
|
|
|
198
|
-
`SkillRepository`
|
|
199
|
-
project settings, or custom filesystem once and reuse it:
|
|
209
|
+
`SkillRepository` bundles a directory and project settings for stateful workflows:
|
|
200
210
|
|
|
201
211
|
```python
|
|
202
212
|
from pathlib import Path
|
|
203
|
-
|
|
204
213
|
from skilly import ProjectSettings, Skill, SkillRepository
|
|
205
214
|
|
|
206
215
|
repository = SkillRepository(
|
|
@@ -211,7 +220,7 @@ repository = SkillRepository(
|
|
|
211
220
|
),
|
|
212
221
|
)
|
|
213
222
|
|
|
214
|
-
|
|
223
|
+
repository.install(
|
|
215
224
|
Skill(
|
|
216
225
|
name="code-review",
|
|
217
226
|
description="Review code for correctness and maintainability.",
|
|
@@ -223,7 +232,7 @@ for match in repository.scan_project():
|
|
|
223
232
|
print(match.available.name, match.status)
|
|
224
233
|
```
|
|
225
234
|
|
|
226
|
-
|
|
235
|
+
Stateless discovery functions for one-shot reads:
|
|
227
236
|
|
|
228
237
|
```python
|
|
229
238
|
from skilly import discover_installed_skills, discover_venv_skills
|
|
@@ -232,8 +241,7 @@ installed = discover_installed_skills()
|
|
|
232
241
|
dependency_skills = discover_venv_skills()
|
|
233
242
|
```
|
|
234
243
|
|
|
235
|
-
|
|
236
|
-
same result types without blocking the event loop:
|
|
244
|
+
SkillsMP client with typed results:
|
|
237
245
|
|
|
238
246
|
```python
|
|
239
247
|
from skilly.skillsmp import ClientSettings, SkillsMp, SkillsMpSearchQuery
|
|
@@ -245,28 +253,11 @@ print(result.data.skills[0].github_url)
|
|
|
245
253
|
|
|
246
254
|
## Development
|
|
247
255
|
|
|
248
|
-
Install development dependencies and the editable extension:
|
|
249
|
-
|
|
250
|
-
```shell
|
|
251
|
-
just install
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
Run the required quality gates:
|
|
255
|
-
|
|
256
|
-
```shell
|
|
257
|
-
just lint
|
|
258
|
-
just test
|
|
259
|
-
just typecheck
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
The TypeScript launcher package also has dedicated helpers:
|
|
263
|
-
|
|
264
256
|
```shell
|
|
265
|
-
just
|
|
266
|
-
just
|
|
267
|
-
just
|
|
268
|
-
just
|
|
269
|
-
just ts::publish-dry-run
|
|
257
|
+
just install # Install dev dependencies + editable extension
|
|
258
|
+
just lint # Run linters
|
|
259
|
+
just test # Run tests
|
|
260
|
+
just typecheck # Run type checkers
|
|
270
261
|
```
|
|
271
262
|
|
|
272
263
|
## License
|
package/dist/src/lib/launcher.js
CHANGED
|
@@ -7,9 +7,9 @@ exports.resolveBinaryPath = resolveBinaryPath;
|
|
|
7
7
|
exports.ensureBinaryExists = ensureBinaryExists;
|
|
8
8
|
exports.launch = launch;
|
|
9
9
|
exports.run = run;
|
|
10
|
+
const node_child_process_1 = require("node:child_process");
|
|
10
11
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
11
12
|
const node_path_1 = __importDefault(require("node:path"));
|
|
12
|
-
const node_child_process_1 = require("node:child_process");
|
|
13
13
|
const targets_1 = require("./targets");
|
|
14
14
|
function resolveBinaryPath(options = {}) {
|
|
15
15
|
const rootDir = options.rootDir ?? node_path_1.default.resolve(__dirname, "..", "..", "..");
|
|
@@ -33,7 +33,7 @@ function launch(argv, options = {}) {
|
|
|
33
33
|
const child = spawnImpl(binaryPath, argv, {
|
|
34
34
|
env: processLike.env,
|
|
35
35
|
stdio: "inherit",
|
|
36
|
-
windowsHide: false
|
|
36
|
+
windowsHide: false,
|
|
37
37
|
});
|
|
38
38
|
return { child, binaryPath };
|
|
39
39
|
}
|
package/dist/src/lib/targets.js
CHANGED
|
@@ -17,27 +17,27 @@ exports.TARGETS = [
|
|
|
17
17
|
platform: "darwin",
|
|
18
18
|
arch: "arm64",
|
|
19
19
|
triple: "aarch64-apple-darwin",
|
|
20
|
-
label: "macOS arm64"
|
|
20
|
+
label: "macOS arm64",
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
platform: "darwin",
|
|
24
24
|
arch: "x64",
|
|
25
25
|
triple: "x86_64-apple-darwin",
|
|
26
|
-
label: "macOS x64"
|
|
26
|
+
label: "macOS x64",
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
platform: "linux",
|
|
30
30
|
arch: "x64",
|
|
31
31
|
libc: "glibc",
|
|
32
32
|
triple: "x86_64-unknown-linux-gnu",
|
|
33
|
-
label: "Linux x64 (glibc)"
|
|
33
|
+
label: "Linux x64 (glibc)",
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
platform: "win32",
|
|
37
37
|
arch: "x64",
|
|
38
38
|
triple: "x86_64-pc-windows-msvc",
|
|
39
|
-
label: "Windows x64"
|
|
40
|
-
}
|
|
39
|
+
label: "Windows x64",
|
|
40
|
+
},
|
|
41
41
|
];
|
|
42
42
|
function supportedTargetLabels() {
|
|
43
43
|
return exports.TARGETS.map((target) => target.label);
|
|
@@ -75,7 +75,8 @@ function unsupportedPlatformError(processLike = process) {
|
|
|
75
75
|
function resolveTarget(processLike = process) {
|
|
76
76
|
const libc = detectLinuxLibc(processLike);
|
|
77
77
|
const target = exports.TARGETS.find((candidate) => {
|
|
78
|
-
if (candidate.platform !== processLike.platform ||
|
|
78
|
+
if (candidate.platform !== processLike.platform ||
|
|
79
|
+
candidate.arch !== processLike.arch) {
|
|
79
80
|
return false;
|
|
80
81
|
}
|
|
81
82
|
if (candidate.platform !== "linux") {
|
package/package.json
CHANGED
|
@@ -1,34 +1,35 @@
|
|
|
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
|
-
|
|
2
|
+
"name": "@xelandernt/skilly",
|
|
3
|
+
"version": "0.0.30",
|
|
4
|
+
"description": "Native npm launcher for the skilly CLI.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"bin": {
|
|
7
|
+
"skilly": "dist/src/bin/skilly.js"
|
|
8
|
+
},
|
|
9
|
+
"type": "commonjs",
|
|
10
|
+
"files": [
|
|
11
|
+
"README.md",
|
|
12
|
+
"dist/src/bin",
|
|
13
|
+
"dist/src/lib",
|
|
14
|
+
"vendor"
|
|
15
|
+
],
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=18"
|
|
18
|
+
},
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsc -p tsconfig.json",
|
|
24
|
+
"stage-local-binary": "npm run build && node ./dist/scripts/stage-local-binary.js",
|
|
25
|
+
"sync-readme": "node ./dist/scripts/sync-readme.js",
|
|
26
|
+
"test": "npm run build && node --test ./dist/test/targets.test.js ./dist/test/launcher.test.js",
|
|
27
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
28
|
+
"prepack": "npm run build && npm run sync-readme"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@biomejs/biome": "2.4.16",
|
|
32
|
+
"@types/node": "^22.16.5",
|
|
33
|
+
"typescript": "^5.8.3"
|
|
34
|
+
}
|
|
34
35
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|