@wrktr/cli 0.1.1 → 0.3.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/README.md +350 -8
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -1,14 +1,356 @@
|
|
|
1
1
|
# @wrktr/cli
|
|
2
2
|
|
|
3
|
-
Agent-first git on Cloudflare
|
|
4
|
-
|
|
3
|
+
Agent-first git on Cloudflare. Each agent gets a branch and a worktree of its own; a daemon commits and pushes
|
|
4
|
+
its work as it goes; every push runs your checks and a review agent; and a branch lands when its checks pass, its
|
|
5
|
+
review approves and no thread is open.
|
|
6
|
+
|
|
7
|
+
The CLI is headless first: everything you can do in the web app that an agent needs, it can do from here, with
|
|
8
|
+
`--json` output and no clone required (`--project`).
|
|
9
|
+
|
|
10
|
+
- [Install](#install)
|
|
11
|
+
- [Sign in](#sign-in)
|
|
12
|
+
- [The everyday loop](#the-everyday-loop)
|
|
13
|
+
- [Global flags](#global-flags)
|
|
14
|
+
- [Commands](#commands)
|
|
15
|
+
- [JSON output and exit codes](#json-output-and-exit-codes)
|
|
16
|
+
- [Environment variables](#environment-variables)
|
|
17
|
+
- [Files](#files)
|
|
18
|
+
|
|
19
|
+
## Install
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
npm i -g @wrktr/cli
|
|
23
|
+
# or, without Node:
|
|
24
|
+
curl -fsSL https://wrktr.com/install | sh
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Either way you get a standalone binary for your platform; it needs `git`. The install script puts it in
|
|
28
|
+
`~/.wrktr/bin` (`WRKTR_INSTALL_DIR` to change that) and installs the latest release (`WRKTR_VERSION` to pin one).
|
|
29
|
+
|
|
30
|
+
## Sign in
|
|
31
|
+
|
|
32
|
+
On your own machine:
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
wrktr login # approve the sign-in in your browser; saves a token in ~/.wrktr/config.json
|
|
36
|
+
wrktr whoami # who the CLI acts as
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
In CI, containers and other agents, skip `login` and set a token instead:
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
wrktr token create --name ci-deploy # run once, on your machine; you approve it in the browser
|
|
43
|
+
export WRKTR_TOKEN=<the token it printed>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
A token can't create tokens by itself: only a person signed in to the web app can approve a new one.
|
|
47
|
+
|
|
48
|
+
## The everyday loop
|
|
49
|
+
|
|
50
|
+
```sh
|
|
51
|
+
wrktr init # put the repo you're in on wrktr (or: wrktr clone <org>/<project>)
|
|
52
|
+
wrktr daemon install # keep worktrees committed, pushed and up to date, as a login service
|
|
53
|
+
wrktr branch new fix-login # a branch in its own worktree, under .wrktr/worktrees/fix-login
|
|
54
|
+
cd .wrktr/worktrees/fix-login # ...and just edit: the daemon commits and pushes after a quiet moment
|
|
55
|
+
wrktr status # checks, the review, open threads, conflicts
|
|
56
|
+
wrktr feedback show # what the review asked for
|
|
57
|
+
wrktr feedback reply <id> "Fixed: the token now refreshes before it expires."
|
|
58
|
+
wrktr land --when-ready # lands by itself once checks, the review and threads allow it
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Global flags
|
|
62
|
+
|
|
63
|
+
Every command takes these, before or after the subcommand.
|
|
64
|
+
|
|
65
|
+
| Flag | |
|
|
66
|
+
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
67
|
+
| `--project <org>/<name>` | Act on that project on wrktr instead of the clone you're in. No clone is needed, so name the branch too (`--branch`, or the command's branch argument). Commands that act on this machine or your account (`login`, `whoami`, `token`, `init`, `clone`, `branch new`, `branch ls`, `branch rm`, `skill`, `daemon`) refuse it. |
|
|
68
|
+
| `--json` | Print the result as JSON on stdout, and a failure as JSON on stderr. See [JSON output](#json-output-and-exit-codes). |
|
|
69
|
+
| `--help`, `-h` | Help for any command. |
|
|
70
|
+
| `--version`, `-v` | The CLI's version and build. |
|
|
71
|
+
| `--log-level <level>` | `all`, `trace`, `debug`, `info`, `warn`, `error`, `fatal` or `none`. |
|
|
72
|
+
| `--completions <shell>` | Print a completion script for `bash`, `zsh`, `fish` or `sh`. |
|
|
73
|
+
| `--wizard` | Build a command interactively. |
|
|
74
|
+
|
|
75
|
+
## Commands
|
|
76
|
+
|
|
77
|
+
Where a command takes a branch and you leave it out, it uses the branch of the worktree you're standing in.
|
|
78
|
+
|
|
79
|
+
### Account
|
|
80
|
+
|
|
81
|
+
#### `wrktr login`
|
|
82
|
+
|
|
83
|
+
Sign this machine in. By default it shows a code and opens the browser to approve it; the token it receives is
|
|
84
|
+
saved in `~/.wrktr/config.json`, readable only by you.
|
|
85
|
+
|
|
86
|
+
| Flag | |
|
|
87
|
+
| ------------------- | ---------------------------------------------------------------------------------------- |
|
|
88
|
+
| `--env <prod\|dev>` | Which wrktr to sign in to (default `prod`). Use a separate `WRKTR_HOME` per environment. |
|
|
89
|
+
| `--api <url>` | The API's base URL (overrides `--env`). |
|
|
90
|
+
| `--token <token>` | Use an existing access token, or an `op://` 1Password reference, instead of the browser. |
|
|
91
|
+
|
|
92
|
+
#### `wrktr whoami`
|
|
93
|
+
|
|
94
|
+
Who the CLI acts as, and the organizations they belong to with their role in each.
|
|
95
|
+
|
|
96
|
+
#### `wrktr token ls`
|
|
97
|
+
|
|
98
|
+
Your access tokens: name, prefix, when each was created and last used, and when it expires. Never the values.
|
|
99
|
+
|
|
100
|
+
#### `wrktr token create --name <name>`
|
|
101
|
+
|
|
102
|
+
Mint an access token for CI or another agent. It opens the browser so you can approve it (the page shows
|
|
103
|
+
`<name>`), then prints the token once on stdout, alone, so `wrktr token create --name ci | pbcopy` captures just
|
|
104
|
+
the token. Use it as `WRKTR_TOKEN`.
|
|
105
|
+
|
|
106
|
+
#### `wrktr token revoke <id>`
|
|
107
|
+
|
|
108
|
+
Revoke a token. Whatever uses it stops working at once. `<id>` can be the start of an id from `token ls`.
|
|
109
|
+
|
|
110
|
+
### Projects
|
|
111
|
+
|
|
112
|
+
#### `wrktr init`
|
|
113
|
+
|
|
114
|
+
Create a wrktr project for the repo you're in and push it, or link the repo to an existing one. It registers the
|
|
115
|
+
repo with the daemon.
|
|
116
|
+
|
|
117
|
+
| Flag | |
|
|
118
|
+
| --------------- | -------------------------------------------------------------------------------- |
|
|
119
|
+
| `--name <name>` | The project's name (defaults to the repo folder's name). |
|
|
120
|
+
| `--org <org>` | The organization to put it in (defaults to the one it's linked to, or your own). |
|
|
121
|
+
|
|
122
|
+
#### `wrktr clone <org>/<project> [<directory>]`
|
|
123
|
+
|
|
124
|
+
Clone a project (into `<directory>`, by default the project's name) and register it with the daemon.
|
|
125
|
+
|
|
126
|
+
### Branches
|
|
127
|
+
|
|
128
|
+
#### `wrktr branch new <name>`
|
|
129
|
+
|
|
130
|
+
Create a branch in its own worktree under `.wrktr/worktrees/<name>`, copy the files listed in `wrktr.json` `copy`
|
|
131
|
+
into it, run its `install` command, and push it. The daemon keeps it in sync from then on. A name used before is
|
|
132
|
+
reused only if that branch is fully merged.
|
|
133
|
+
|
|
134
|
+
| Flag | |
|
|
135
|
+
| -------------- | ----------------------------------------------------------- |
|
|
136
|
+
| `--from <ref>` | Where to start it (defaults to the default branch). |
|
|
137
|
+
| `--experiment` | A spike or prototype: it stays in progress and never lands. |
|
|
138
|
+
|
|
139
|
+
#### `wrktr branch ls`
|
|
140
|
+
|
|
141
|
+
The branches that have a worktree on this machine.
|
|
142
|
+
|
|
143
|
+
#### `wrktr branch rm <name>`
|
|
144
|
+
|
|
145
|
+
Remove a branch's worktree. Alias: `wrktr branch remove`.
|
|
146
|
+
|
|
147
|
+
| Flag | |
|
|
148
|
+
| ---------- | ----------------------------------------------------------------------- |
|
|
149
|
+
| `--force` | Remove it even with uncommitted changes (they're lost). |
|
|
150
|
+
| `--delete` | Also delete the branch, on wrktr and locally. Its review history stays. |
|
|
151
|
+
|
|
152
|
+
#### `wrktr branch experiment [<name>]`
|
|
153
|
+
|
|
154
|
+
Mark a branch as an experiment that never lands. `--off` lets it land again.
|
|
155
|
+
|
|
156
|
+
#### `wrktr branch close [<name>]`
|
|
157
|
+
|
|
158
|
+
Close a branch without landing it (a spike, an abandoned approach). Its agents and checks stop; its history and
|
|
159
|
+
reviews stay.
|
|
160
|
+
|
|
161
|
+
#### `wrktr branch reopen [<name>]`
|
|
162
|
+
|
|
163
|
+
Reopen a closed branch.
|
|
164
|
+
|
|
165
|
+
### Where a branch stands
|
|
166
|
+
|
|
167
|
+
#### `wrktr status`
|
|
168
|
+
|
|
169
|
+
The branch's head (and whether this worktree has commits not pushed yet), its state (in progress, landing when
|
|
170
|
+
ready, landed, closed, an experiment), its checks, the review agent's verdict, open threads, and whether it
|
|
171
|
+
conflicts with the default branch or the daemon can't sync it.
|
|
172
|
+
|
|
173
|
+
| Flag | |
|
|
174
|
+
| ----------------- | -------------------------------------------------------------------------- |
|
|
175
|
+
| `--branch <name>` | The branch. |
|
|
176
|
+
| `--watch` | Refresh every 10 seconds. With `--json`, prints one JSON line per refresh. |
|
|
177
|
+
|
|
178
|
+
#### `wrktr feedback show`
|
|
179
|
+
|
|
180
|
+
The branch's open reviews, their threads and failing checks: what an agent works through. `--branch <name>` for
|
|
181
|
+
another branch.
|
|
182
|
+
|
|
183
|
+
#### `wrktr feedback reply <id> <body>`
|
|
184
|
+
|
|
185
|
+
Reply to a review thread, as the agent: what you did, or why not. `--branch <name>` for another branch.
|
|
186
|
+
|
|
187
|
+
#### `wrktr feedback resolve <id>`
|
|
188
|
+
|
|
189
|
+
Mark a thread resolved. `--branch <name>` for another branch.
|
|
190
|
+
|
|
191
|
+
### Reviews
|
|
192
|
+
|
|
193
|
+
#### `wrktr review ls <branch>`
|
|
194
|
+
|
|
195
|
+
A branch's reviews, newest first.
|
|
196
|
+
|
|
197
|
+
#### `wrktr review submit <branch>`
|
|
198
|
+
|
|
199
|
+
Review a branch, yours or another agent's: a summary, a verdict and line comments, in one go. Line numbers refer
|
|
200
|
+
to the branch's head.
|
|
201
|
+
|
|
202
|
+
| Flag | |
|
|
203
|
+
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
204
|
+
| `--verdict <approve\|changes\|comment>` | Approve, request changes, or leave notes without a verdict. |
|
|
205
|
+
| `--summary <markdown>` | What you found. |
|
|
206
|
+
| `--comments <file.json>` | Line comments: `[{"path": "src/a.ts", "line": 12, "body": "..."}]`, or `{"comments": [...], "notes": ["..."]}` to add points that aren't about one line. |
|
|
207
|
+
|
|
208
|
+
#### `wrktr review dismiss <branch> <id>`
|
|
209
|
+
|
|
210
|
+
Set a review aside so it no longer counts. `<id>` can be the start of an id from `review ls`.
|
|
211
|
+
|
|
212
|
+
### Landing
|
|
213
|
+
|
|
214
|
+
#### `wrktr land [<branch>]`
|
|
215
|
+
|
|
216
|
+
Land a branch on the default branch with a merge commit, made by the server. It lands only if checks pass, the
|
|
217
|
+
review agent approved the current head and no blocking thread is open (nits never block); otherwise it says
|
|
218
|
+
what's missing. Run from the branch's worktree, it refuses uncommitted changes and a head the daemon hasn't
|
|
219
|
+
pushed yet.
|
|
220
|
+
|
|
221
|
+
| Flag | |
|
|
222
|
+
| -------------- | ------------------------------------------------------------------------------------------------ |
|
|
223
|
+
| `--when-ready` | Don't land now: the server lands it (as you) as soon as it's ready. Nothing has to keep running. |
|
|
224
|
+
| `--cancel` | Stop waiting to land it (undoes `--when-ready`). |
|
|
225
|
+
| `--force` | Land even though checks, threads or the review say it isn't ready. |
|
|
226
|
+
| `--rm` | Remove the branch's worktree after landing, if it has no uncommitted changes. |
|
|
227
|
+
|
|
228
|
+
### Deploys
|
|
229
|
+
|
|
230
|
+
Environments are declared in `wrktr.json` under `environments`. An `on: land` environment deploys every land by
|
|
231
|
+
itself; an `on: promote` one deploys the commit someone promotes.
|
|
232
|
+
|
|
233
|
+
#### `wrktr env ls`
|
|
234
|
+
|
|
235
|
+
The project's environments: what's live in each, what's running, and what a promotion would ship.
|
|
236
|
+
|
|
237
|
+
#### `wrktr env runs <environment>`
|
|
238
|
+
|
|
239
|
+
An environment's runs, newest first. `--limit <n>` for how many (default 10).
|
|
240
|
+
|
|
241
|
+
#### `wrktr env show <environment> <run>`
|
|
242
|
+
|
|
243
|
+
One run: every step (done or not) with its command and state, the last lines of a failed step's log, and the
|
|
244
|
+
commits it ships.
|
|
245
|
+
|
|
246
|
+
#### `wrktr env promote <environment> [<commit>]`
|
|
247
|
+
|
|
248
|
+
Deploy a commit to a promote environment: by default what its `from` environment has live. The commit must be
|
|
249
|
+
the full 40 characters. An older commit than what's live is a rollback.
|
|
250
|
+
|
|
251
|
+
#### `wrktr env rerun <environment> <run>`
|
|
252
|
+
|
|
253
|
+
Run an environment's newest run again, once it's over.
|
|
254
|
+
|
|
255
|
+
#### `wrktr env cancel <environment> <run>`
|
|
256
|
+
|
|
257
|
+
Stop a queued or running run.
|
|
258
|
+
|
|
259
|
+
### Secrets
|
|
260
|
+
|
|
261
|
+
Values an environment's steps use, listed under `environments.<name>.secrets` in `wrktr.json`. They're stored
|
|
262
|
+
encrypted and only reach a deploy while it runs.
|
|
263
|
+
|
|
264
|
+
#### `wrktr secret set <name>`
|
|
265
|
+
|
|
266
|
+
Set a secret from stdin, never from the command line (so it isn't in your shell history): `pbpaste | wrktr secret
|
|
267
|
+
set CLOUDFLARE_API_TOKEN`. Owners only. Names are capitals, digits and `_`, starting with a letter.
|
|
268
|
+
|
|
269
|
+
#### `wrktr secret ls`
|
|
270
|
+
|
|
271
|
+
The project's secrets: names, who set each and when. Never the values.
|
|
272
|
+
|
|
273
|
+
#### `wrktr secret rm <name>`
|
|
274
|
+
|
|
275
|
+
Remove a secret. Owners only.
|
|
276
|
+
|
|
277
|
+
### The daemon
|
|
278
|
+
|
|
279
|
+
The daemon keeps every worktree of every registered repo in sync: it commits after a quiet moment, pushes, merges
|
|
280
|
+
the default branch in, and writes the [files](#files) agents read.
|
|
281
|
+
|
|
282
|
+
#### `wrktr daemon`
|
|
283
|
+
|
|
284
|
+
Run it in the foreground.
|
|
285
|
+
|
|
286
|
+
| Flag | |
|
|
287
|
+
| ----------------- | ------------------------------------------------------------------------------------ |
|
|
288
|
+
| `--quiet-ms <ms>` | Commit after this long without file changes (overrides `wrktr.json`; default 30000). |
|
|
289
|
+
| `--poll-ms <ms>` | How often to check the remote (default 5000). |
|
|
290
|
+
|
|
291
|
+
#### `wrktr daemon install` / `upgrade` / `restart` / `uninstall`
|
|
292
|
+
|
|
293
|
+
Run it as a login service from a stable copy of the CLI; move the service to this CLI's build and restart it;
|
|
294
|
+
restart it; stop it and remove it. The service is a macOS LaunchAgent; elsewhere, run `wrktr daemon` under your
|
|
295
|
+
own supervisor (systemd, a container's entrypoint).
|
|
296
|
+
|
|
297
|
+
#### `wrktr daemon status`
|
|
298
|
+
|
|
299
|
+
What the running daemon is syncing, repo by repo and worktree by worktree, with any errors.
|
|
300
|
+
|
|
301
|
+
#### `wrktr daemon logs`
|
|
302
|
+
|
|
303
|
+
The service's log. `--follow` (`-f`) keeps printing; `--lines <n>` (`-n`) for how many lines (default 50).
|
|
304
|
+
|
|
305
|
+
### Agent skill
|
|
306
|
+
|
|
307
|
+
#### `wrktr skill install`
|
|
308
|
+
|
|
309
|
+
Install the wrktr skill, which teaches coding agents (Claude Code and others) to work the wrktr way. `--dir
|
|
310
|
+
<path>` for another skills directory (defaults to `~/.claude/skills` and `~/.agents/skills`).
|
|
311
|
+
|
|
312
|
+
#### `wrktr skill show`
|
|
313
|
+
|
|
314
|
+
Print the skill (`SKILL.md`).
|
|
315
|
+
|
|
316
|
+
## JSON output and exit codes
|
|
317
|
+
|
|
318
|
+
With `--json`:
|
|
319
|
+
|
|
320
|
+
- **stdout** carries exactly one JSON value: the command's result. Progress lines, and the output of a new
|
|
321
|
+
worktree's `install` command, go to stderr instead. `status --watch --json` is the exception: one JSON value
|
|
322
|
+
per line, one line per refresh. `wrktr daemon` (in the foreground) and `wrktr daemon logs` stream, so they
|
|
323
|
+
refuse `--json`.
|
|
324
|
+
- **A failure** prints `{"error": {"tag": "...", "message": "..."}}` on stderr. `tag` names the kind of failure
|
|
325
|
+
when there is one (`ProjectNotFound`, `Unauthorized`, `InvalidProjectFlag`, `ProjectFlagNotAllowed`,
|
|
326
|
+
`JsonNotSupported`, ...).
|
|
327
|
+
|
|
328
|
+
Exit codes: `0` when the command did what it was asked, `1` when it didn't (including a refusal, such as `land`
|
|
329
|
+
when the branch isn't ready). Act on the exit code, not the wording.
|
|
5
330
|
|
|
6
331
|
```sh
|
|
7
|
-
|
|
8
|
-
wrktr login
|
|
9
|
-
wrktr clone <org>/<project> # or, in a repo you have: wrktr init
|
|
10
|
-
wrktr branch new <name>
|
|
11
|
-
wrktr daemon install
|
|
332
|
+
wrktr status --project acme/api --branch fix-login --json | jq -r '.review.verdict'
|
|
333
|
+
wrktr land fix-login --project acme/api --json || echo "not landed yet"
|
|
12
334
|
```
|
|
13
335
|
|
|
14
|
-
|
|
336
|
+
## Environment variables
|
|
337
|
+
|
|
338
|
+
| Variable | |
|
|
339
|
+
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------- |
|
|
340
|
+
| `WRKTR_TOKEN` | An access token. When set, the CLI uses it instead of `~/.wrktr/config.json`, so no `login` is needed. |
|
|
341
|
+
| `WRKTR_API_URL` | The API to use with `WRKTR_TOKEN` (default `https://api.wrktr.com`). |
|
|
342
|
+
| `WRKTR_HOME` | Where the CLI keeps its config, state and the daemon's files (default `~/.wrktr`). Use one per wrktr environment. |
|
|
343
|
+
| `WRKTR_DEBUG` | Set to `1` to print a failure's full cause instead of one line. |
|
|
344
|
+
| `WRKTR_INSTALL_DIR`, `WRKTR_VERSION` | For the install script: where to put the binary, and which release. |
|
|
345
|
+
|
|
346
|
+
## Files
|
|
347
|
+
|
|
348
|
+
| File | |
|
|
349
|
+
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
350
|
+
| `~/.wrktr/config.json` | The API and the access token (or an `op://` reference), written by `login`. |
|
|
351
|
+
| `wrktr.json` | At the repo root, committed. `copy`: gitignored files to copy into each new worktree (such as `.env`). `install`: a command run in each new worktree. `quietMs`: how long the daemon waits before committing. `maxFileBytes`: files larger than this are never committed. `ci`: the checks each push runs. `environments`: where the project deploys. |
|
|
352
|
+
| `.wrktr/worktrees/<branch>/` | Each branch's worktree. `.wrktr/` is kept out of git. |
|
|
353
|
+
| `.wrktr/FEEDBACK.md` | In a worktree: the branch's open review threads and failing checks. |
|
|
354
|
+
| `.wrktr/BEHIND.md` | Merging the default branch in conflicts: what to do. |
|
|
355
|
+
| `.wrktr/DAEMON.md` | The daemon can't sync this worktree: why. |
|
|
356
|
+
| `.wrktr/CONFLICT.json` | A rebase onto the remote stopped on conflicts: resolve them, then `git rebase --continue`. |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wrktr/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Agent-first git on Cloudflare: a branch and a worktree per agent, live review, CI and landing.",
|
|
5
5
|
"homepage": "https://wrktr.com",
|
|
6
6
|
"bin": {
|
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
"bin"
|
|
11
11
|
],
|
|
12
12
|
"optionalDependencies": {
|
|
13
|
-
"@wrktr/cli-darwin-arm64": "0.
|
|
14
|
-
"@wrktr/cli-darwin-x64": "0.
|
|
15
|
-
"@wrktr/cli-linux-x64": "0.
|
|
16
|
-
"@wrktr/cli-linux-arm64": "0.
|
|
17
|
-
"@wrktr/cli-linux-x64-musl": "0.
|
|
18
|
-
"@wrktr/cli-linux-arm64-musl": "0.
|
|
19
|
-
"@wrktr/cli-windows-x64": "0.
|
|
13
|
+
"@wrktr/cli-darwin-arm64": "0.3.0",
|
|
14
|
+
"@wrktr/cli-darwin-x64": "0.3.0",
|
|
15
|
+
"@wrktr/cli-linux-x64": "0.3.0",
|
|
16
|
+
"@wrktr/cli-linux-arm64": "0.3.0",
|
|
17
|
+
"@wrktr/cli-linux-x64-musl": "0.3.0",
|
|
18
|
+
"@wrktr/cli-linux-arm64-musl": "0.3.0",
|
|
19
|
+
"@wrktr/cli-windows-x64": "0.3.0"
|
|
20
20
|
}
|
|
21
21
|
}
|