@mifune/agro 0.10.0 → 0.11.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 +11 -37
- package/dist/agro.js +1292 -1609
- package/dist/oh.js +1292 -1609
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# @mifune/agro
|
|
2
2
|
|
|
3
|
-
The **AGRO CLI** (`agro`) — create an [
|
|
3
|
+
The **AGRO CLI** (`agro`) — create an [AGRO](https://agro.mifune.dev)
|
|
4
4
|
Docker sandbox for coding agents and drive its lifecycle from the command line.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
AGRO is a portable harness for running coding agents (Claude Code, Codex, Pi,
|
|
7
7
|
and others) in an isolated Docker sandbox, with the agent's identity, skills, and crons
|
|
8
8
|
versioned in git. This package is the standalone `agro` CLI that creates sandboxes and
|
|
9
9
|
manages their lifecycle.
|
|
@@ -57,19 +57,21 @@ same files.
|
|
|
57
57
|
Create a sandbox from any directory — no project checkout needed:
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
agro sandbox install docker # wizard, then boot; writes ~/.
|
|
61
|
-
agro sandbox list # name, runtime, status,
|
|
60
|
+
agro sandbox install docker # wizard, then boot; writes ~/.agro/sandboxes/<name>/
|
|
61
|
+
agro sandbox list # name, runtime, status, checkout
|
|
62
62
|
agro shell <name> # open a zsh shell in the running container
|
|
63
63
|
```
|
|
64
64
|
|
|
65
|
-
To bind one of your own checkouts into the sandbox, equip it and pass `--
|
|
65
|
+
To bind one of your own checkouts into the sandbox, equip it and pass `--checkout`:
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
68
|
cd your-project
|
|
69
69
|
oh update # vendor .agro/ + crons/ — and nothing else (compatibility window)
|
|
70
|
-
agro sandbox install docker --
|
|
70
|
+
agro sandbox install docker --checkout "$PWD" --name your-project
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
+
`--repo` remains a supported alias for `--checkout`.
|
|
74
|
+
|
|
73
75
|
Add an agent harness or a tool at any point — this needs no rebuild. The verb is
|
|
74
76
|
the only door; nothing installs at boot:
|
|
75
77
|
|
|
@@ -96,8 +98,8 @@ with `OH_EXECUTION_TARGET=local` or `OH_EXECUTION_TARGET=docker-compose`.
|
|
|
96
98
|
|
|
97
99
|
| Command | What it does |
|
|
98
100
|
|---|---|
|
|
99
|
-
| `agro sandbox install <runtime>` | Create a sandbox: run the wizard, write the registry entry under `${
|
|
100
|
-
| `agro sandbox list [--json]` | List the registry entries with name, runtime, container status, and bound
|
|
101
|
+
| `agro sandbox install <runtime>` | Create a sandbox: run the wizard, write the registry entry under `${AGRO_HOME:-~/.agro}/sandboxes/<name>/`, materialise the compose files and wrapper into it, and boot the container. Flags: `--name`, `--checkout <dir>` (alias `--repo <dir>`), `--home-mount <dir>`, `--yes`, `--image[=<ref>]`, `--no-build`, `--print-argv`. `docker` is provisionable; `microsandbox` is planned and refuses with a pointer at the runtime RFC. |
|
|
102
|
+
| `agro sandbox list [--json]` | List the registry entries with name, runtime, container status, and bound checkout. |
|
|
101
103
|
| `agro shell [name]` | Open a `zsh` shell in the running sandbox container. |
|
|
102
104
|
| `agro stop [name]` | Stop the sandbox, preserving volumes. |
|
|
103
105
|
| `agro restart [name]` | Restart the sandbox service. |
|
|
@@ -115,7 +117,6 @@ with `OH_EXECUTION_TARGET=local` or `OH_EXECUTION_TARGET=docker-compose`.
|
|
|
115
117
|
| `agro harness <list\|install\|status>` | Install and inspect agent CLI harnesses. `install` is the only door: it probes the running sandbox, installs into the persistent home volume, and reports. It reads and writes no `agro.json` field, and needs no rebuild. |
|
|
116
118
|
| `agro tool <list\|install\|status>` | Install and inspect sandbox tooling that is not an agent CLI. `herdr`, `cloudflared`, `agent-browser`, `microsandbox`, and `tailscale` are `installable`; `gh` and the Docker CLI are `baked-in` and cannot be installed. Nothing installs at boot. A large download is confirmed first, and `--yes` accepts it. |
|
|
117
119
|
| `agro gateway <args…>` | Manage a messaging client session (Slack bridge for `pi`/`hermes`). |
|
|
118
|
-
| `agro cloud <args…>` | Configure credentials and manage OpenHarness Cloud SSH keys and nodes. |
|
|
119
120
|
| `agro --version` | Print the CLI version. |
|
|
120
121
|
| `agro --help` | Show help; every subcommand also accepts `--help`. |
|
|
121
122
|
|
|
@@ -138,39 +139,12 @@ writes nothing else and never prompts. `agro update` rejects those flags and poi
|
|
|
138
139
|
`oh update`. `oh update` prefers the payload bundled into the CLI itself; with `--from-remote`
|
|
139
140
|
(or no payload at all) it shallow-clones the public OpenHarness repo into a temp dir and
|
|
140
141
|
removes it after the run (`--ref <ref>` pins it). Root `docs/` remains project-owned and is
|
|
141
|
-
not part of that payload. Catalog and help output therefore links to the
|
|
142
|
+
not part of that payload. Catalog and help output therefore links to the AGRO source
|
|
142
143
|
documentation instead of a path inside the equipped project.
|
|
143
144
|
|
|
144
145
|
The CLI writes no scaffold. It creates no `AGENTS.md`, no provider configuration, and no
|
|
145
146
|
`.gitignore` line beyond the `.env` line `agro secret set` adds inside a git checkout.
|
|
146
147
|
|
|
147
|
-
## OpenHarness Cloud
|
|
148
|
-
|
|
149
|
-
`agro cloud` is an Apache-2.0 licensed client that talks to a proprietary hosted service.
|
|
150
|
-
Configure the Cloud API once, then use `agro cloud` instead of hand-writing authenticated HTTP
|
|
151
|
-
requests:
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
agro cloud config # securely prompts for the current provisioner key
|
|
155
|
-
agro cloud ssh-keys create --name laptop --public-key-file ~/.ssh/openharness_node.pub
|
|
156
|
-
agro cloud nodes create --name demo --ssh-key-id <ssh-key-id>
|
|
157
|
-
agro cloud nodes watch <node-id>
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
Both settings are repository-local. `agro cloud config` writes the API base URL to `cloud.apiUrl`
|
|
161
|
-
in the tracked `agro.json` and, until OpenHarness Cloud issues user API tokens, stores the
|
|
162
|
-
user-provided provisioner key as `OH_CLOUD_PROVISION_KEY` in the gitignored root `.env`
|
|
163
|
-
(mode `0600`). The key is never printed; `agro cloud config show` redacts it. Nothing is written
|
|
164
|
-
under `$HOME`.
|
|
165
|
-
|
|
166
|
-
`OH_CLOUD_API_URL` and `OH_CLOUD_PROVISION_KEY` (`OH_PROVISION_KEY` and `PROVISION_KEY` are
|
|
167
|
-
still accepted) provide non-persistent overrides for automation. Because the settings live in
|
|
168
|
-
the repository, `agro cloud` runs inside an OpenHarness-equipped repo; outside one, pass
|
|
169
|
-
`--api-url` and `--provision-key`. On the first `agro cloud` run in a repo, a legacy
|
|
170
|
-
`~/.config/openharness/cloud.json` is migrated into these two homes and then reported as no
|
|
171
|
-
longer read — it is left on disk for you to delete. Run `agro cloud --help` for the complete
|
|
172
|
-
SSH-key and node lifecycle command set.
|
|
173
|
-
|
|
174
148
|
## Documentation
|
|
175
149
|
|
|
176
150
|
- **Docs:** https://agro.mifune.dev
|