@mifune/agro 0.10.0 → 0.12.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.
Files changed (4) hide show
  1. package/README.md +11 -37
  2. package/dist/agro.js +2373 -1780
  3. package/dist/oh.js +2373 -1780
  4. 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 [Open Harness](https://agro.mifune.dev)
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
- Open Harness is a portable harness for running coding agents (Claude Code, Codex, Pi,
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 ~/.oh/sandboxes/<name>/
61
- agro sandbox list # name, runtime, status, repo
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 `--repo`:
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 --repo "$PWD" --name your-project
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 `${OH_HOME:-~/.oh}/sandboxes/<name>/`, materialise the compose files and wrapper into it, and boot the container. Flags: `--name`, `--repo <dir>`, `--yes`, `--image[=<ref>]`, `--no-build`, `--print-argv`. `docker` is provisionable; `microsandbox` is planned and refuses with a pointer at the runtime RFC. |
100
- | `agro sandbox list [--json]` | List the registry entries with name, runtime, container status, and bound repo. |
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 Open Harness source
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