@mifune/agro 0.9.0 → 0.10.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/NOTICE +2 -2
- package/README.md +16 -16
- package/dist/agro.js +1132 -474
- package/dist/oh.js +1132 -474
- package/package.json +5 -5
package/NOTICE
CHANGED
|
@@ -9,9 +9,9 @@ of the License is included in the LICENSE file.
|
|
|
9
9
|
Third-Party Attributions
|
|
10
10
|
=========================
|
|
11
11
|
|
|
12
|
-
typescript (referenced in .
|
|
12
|
+
typescript (referenced in .agro/cli/package-lock.json) is the sole dependency
|
|
13
13
|
in this repository declaring "license": "Apache-2.0". It is a devDependency
|
|
14
|
-
(.
|
|
14
|
+
(.agro/cli/package.json, "devDependencies") used only for type-checking and is
|
|
15
15
|
excluded from the published package, whose "files" array is limited to
|
|
16
16
|
"dist" (bundled output produced by esbuild, not the typescript package
|
|
17
17
|
itself). It therefore carries no NOTICE obligation for consumers of this
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @mifune/agro
|
|
2
2
|
|
|
3
|
-
The **AGRO CLI** (`agro`) — create an [Open Harness](https://
|
|
3
|
+
The **AGRO CLI** (`agro`) — create an [Open Harness](https://agro.mifune.dev)
|
|
4
4
|
Docker sandbox for coding agents and drive its lifecycle from the command line.
|
|
5
5
|
|
|
6
6
|
Open Harness is a portable harness for running coding agents (Claude Code, Codex, Pi,
|
|
@@ -31,7 +31,7 @@ installs the prebuilt `agro` artifact from the latest GitHub release — it neve
|
|
|
31
31
|
clones or builds on your machine:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
curl -fsSL https://
|
|
34
|
+
curl -fsSL https://agro.mifune.dev/get-agro.sh | bash
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
### Requirements
|
|
@@ -48,7 +48,7 @@ contains no CLI code of its own: its only file imports the `agro` bundle from an
|
|
|
48
48
|
exact-pinned `@mifune/agro` dependency. The two packages expose disjoint executables
|
|
49
49
|
(`agro` and `oh`), can be installed together, and removing either never removes the
|
|
50
50
|
other's executable. `oh --help` ends with a line that names `agro` as the canonical
|
|
51
|
-
CLI; everything else about `oh` — the `.
|
|
51
|
+
CLI; everything else about `oh` — the `.agro/` control plane, `agro.json`, `OH_*`
|
|
52
52
|
variables, `~/.oh/sandboxes` — is unchanged, and `agro` reads and writes exactly the
|
|
53
53
|
same files.
|
|
54
54
|
|
|
@@ -66,7 +66,7 @@ To bind one of your own checkouts into the sandbox, equip it and pass `--repo`:
|
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
68
|
cd your-project
|
|
69
|
-
oh update # vendor .
|
|
69
|
+
oh update # vendor .agro/ + crons/ — and nothing else (compatibility window)
|
|
70
70
|
agro sandbox install docker --repo "$PWD" --name your-project
|
|
71
71
|
```
|
|
72
72
|
|
|
@@ -105,34 +105,34 @@ with `OH_EXECUTION_TARGET=local` or `OH_EXECUTION_TARGET=docker-compose`.
|
|
|
105
105
|
| `agro ps [name]` | Show sandbox service status. |
|
|
106
106
|
| `agro destroy [name] [--yes]` | Remove the sandbox, wipe its named volumes (`docker compose down -v`), then delete the registry entry. Names the volumes, then requires you to type the sandbox name; refuses without a TTY unless `--yes` is passed. |
|
|
107
107
|
| `agro update [--dry-run]` | Upgrade the installed `agro` executable and nothing else, through the mechanism that installed it: npm-managed (`npm view` + `npm install -g --prefix <owning prefix> @mifune/agro@<version>`) or standalone (download `AGRO_JS_URL`, falling back to `OH_JS_URL` and defaulting to the latest `agro.js` release asset; verify its shebang and `--version`; rename it over the file; keep `<path>.prev` until the new file verifies). Refuses image-shipped, source-checkout, legacy-package, unresolvable, read-only, PATH-shadowed, and downgrade cases with the supported procedure; never uses `sudo`; a no-op when current. Project payload vendoring is `oh update` — see the compatibility note below. |
|
|
108
|
-
| `agro config show [--sandbox <name>]` | Print the resolved `
|
|
109
|
-
| `agro config set <field> <value> [--sandbox <name>]` | Set one dotted `
|
|
108
|
+
| `agro config show [--sandbox <name>]` | Print the resolved `agro.json` — every non-secret setting. |
|
|
109
|
+
| `agro config set <field> <value> [--sandbox <name>]` | Set one dotted `agro.json` field (`access.sshPort 2200`), validated against the schema. A secret key is refused with a pointer at `agro secret set`. |
|
|
110
110
|
| `agro config repo` | Create a repo on your GitHub account, keep the cloned-from upstream as the `openharness` remote, point `origin` at yours, and push. Asks first and defaults to no; never runs without an interactive yes. |
|
|
111
111
|
| `agro config <integration>` | Configure an integration via an interactive wizard. |
|
|
112
112
|
| `agro secret set <KEY> [--sandbox <name>]` | Prompt for the value with the input hidden and write it to the gitignored `.env` (mode `0600`). The value is never taken from the command line, where shell history would keep it. |
|
|
113
113
|
| `agro secret list [--sandbox <name>]` | List the allow-listed keys that hold a value, with the values redacted. |
|
|
114
114
|
| `agro compose config` | Print the resolved compose configuration. |
|
|
115
|
-
| `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 `
|
|
115
|
+
| `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
116
|
| `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
117
|
| `agro gateway <args…>` | Manage a messaging client session (Slack bridge for `pi`/`hermes`). |
|
|
118
118
|
| `agro cloud <args…>` | Configure credentials and manage OpenHarness Cloud SSH keys and nodes. |
|
|
119
119
|
| `agro --version` | Print the CLI version. |
|
|
120
120
|
| `agro --help` | Show help; every subcommand also accepts `--help`. |
|
|
121
121
|
|
|
122
|
-
`
|
|
122
|
+
`agro.json` and the `.env` beside it are the only two configuration surfaces: `agro.json`
|
|
123
123
|
holds every non-secret setting, `.env` holds only the allow-listed secrets. Each has
|
|
124
124
|
two homes — a sandbox's registry entry (`--sandbox <name>`) and the project root
|
|
125
125
|
(no flag). See
|
|
126
|
-
[configuration](https://github.com/mifunedev/
|
|
126
|
+
[configuration](https://github.com/mifunedev/agro/blob/main/docs/configuration.md)
|
|
127
127
|
for the field reference.
|
|
128
128
|
|
|
129
129
|
`agro` (or `oh`) is the only lifecycle door, on the host and in the sandbox, and every verb
|
|
130
|
-
runs `.
|
|
131
|
-
[lifecycle commands](https://github.com/mifunedev/
|
|
130
|
+
runs `.agro/scripts/docker-compose.sh` — see
|
|
131
|
+
[lifecycle commands](https://github.com/mifunedev/agro/blob/main/docs/lifecycle-commands.md), which also
|
|
132
132
|
states the confirmation policy `agro destroy` carries.
|
|
133
133
|
|
|
134
134
|
`agro update` never touches a project. During the compatibility window `oh update` vendors
|
|
135
|
-
`.
|
|
135
|
+
`.agro/` + `crons/` into the current directory, equipping an empty checkout and upgrading an
|
|
136
136
|
equipped one (`--from <dir>` / `--from-remote [--ref <ref>]`, `--dry-run`, `--force`); it
|
|
137
137
|
writes nothing else and never prompts. `agro update` rejects those flags and points at
|
|
138
138
|
`oh update`. `oh update` prefers the payload bundled into the CLI itself; with `--from-remote`
|
|
@@ -158,7 +158,7 @@ agro cloud nodes watch <node-id>
|
|
|
158
158
|
```
|
|
159
159
|
|
|
160
160
|
Both settings are repository-local. `agro cloud config` writes the API base URL to `cloud.apiUrl`
|
|
161
|
-
in the tracked `
|
|
161
|
+
in the tracked `agro.json` and, until OpenHarness Cloud issues user API tokens, stores the
|
|
162
162
|
user-provided provisioner key as `OH_CLOUD_PROVISION_KEY` in the gitignored root `.env`
|
|
163
163
|
(mode `0600`). The key is never printed; `agro cloud config show` redacts it. Nothing is written
|
|
164
164
|
under `$HOME`.
|
|
@@ -173,9 +173,9 @@ SSH-key and node lifecycle command set.
|
|
|
173
173
|
|
|
174
174
|
## Documentation
|
|
175
175
|
|
|
176
|
-
- **Docs:** https://
|
|
177
|
-
- **Installation guide:** https://
|
|
178
|
-
- **Source & issues:** https://github.com/mifunedev/
|
|
176
|
+
- **Docs:** https://agro.mifune.dev
|
|
177
|
+
- **Installation guide:** https://agro.mifune.dev/docs/installation
|
|
178
|
+
- **Source & issues:** https://github.com/mifunedev/agro
|
|
179
179
|
|
|
180
180
|
## License
|
|
181
181
|
|