@mifune/agro 0.12.2 → 0.13.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 +8 -20
- package/dist/agro.js +1998 -1846
- package/package.json +1 -1
- package/dist/oh.js +0 -6964
package/NOTICE
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
AGRO
|
|
2
2
|
Copyright 2026 Ryan Eggleston, d/b/a Mifune Dev (mifune.dev)
|
|
3
3
|
|
|
4
4
|
This product includes software developed at Mifune Dev (https://mifune.dev).
|
|
@@ -22,6 +22,6 @@ Trademarks
|
|
|
22
22
|
|
|
23
23
|
Apache License, Version 2.0, Section 6 grants no permission to use the
|
|
24
24
|
trade names, trademarks, service marks, or product names of the Licensor
|
|
25
|
-
-- including "Mifune" and "
|
|
25
|
+
-- including "Mifune" and "AGRO", their logos, or associated trade
|
|
26
26
|
dress -- beyond the reasonable and customary use in describing the origin
|
|
27
27
|
of the Work that Section 6 itself allows.
|
package/README.md
CHANGED
|
@@ -40,18 +40,6 @@ curl -fsSL https://agro.mifune.dev/get-agro.sh | bash
|
|
|
40
40
|
npm will not install Node for you.
|
|
41
41
|
- **Docker** and **git** for the sandbox lifecycle commands (`agro sandbox install`, `agro shell`).
|
|
42
42
|
|
|
43
|
-
## Compatibility: `oh`
|
|
44
|
-
|
|
45
|
-
`oh` is the compatibility entry point for `agro`. It ships as the npm package
|
|
46
|
-
[`@mifune/openharness`](https://www.npmjs.com/package/@mifune/openharness), which
|
|
47
|
-
contains no CLI code of its own: its only file imports the `agro` bundle from an
|
|
48
|
-
exact-pinned `@mifune/agro` dependency. The two packages expose disjoint executables
|
|
49
|
-
(`agro` and `oh`), can be installed together, and removing either never removes the
|
|
50
|
-
other's executable. `oh --help` ends with a line that names `agro` as the canonical
|
|
51
|
-
CLI; everything else about `oh` — the `.agro/` control plane, `agro.json`, `OH_*`
|
|
52
|
-
variables, `~/.oh/sandboxes` — is unchanged, and `agro` reads and writes exactly the
|
|
53
|
-
same files.
|
|
54
|
-
|
|
55
43
|
## Quick start
|
|
56
44
|
|
|
57
45
|
Create a sandbox from any directory — no project checkout needed:
|
|
@@ -66,7 +54,7 @@ To bind one of your own checkouts into the sandbox, equip it and pass `--checkou
|
|
|
66
54
|
|
|
67
55
|
```bash
|
|
68
56
|
cd your-project
|
|
69
|
-
|
|
57
|
+
agro vendor # vendor .agro/ + crons/ — and nothing else (compatibility window)
|
|
70
58
|
agro sandbox install docker --checkout "$PWD" --name your-project
|
|
71
59
|
```
|
|
72
60
|
|
|
@@ -91,7 +79,7 @@ agro tool install agent-browser # asks before the ~1 GB Chromium download
|
|
|
91
79
|
`agro harness` and `agro tool` also run **inside** the sandbox, where they install
|
|
92
80
|
into the current environment instead of driving the container over Docker
|
|
93
81
|
Compose. Detection is automatic (`/.dockerenv` plus `SANDBOX_NAME`); override it
|
|
94
|
-
with `
|
|
82
|
+
with `AGRO_EXECUTION_TARGET=local` or `AGRO_EXECUTION_TARGET=docker-compose`.
|
|
95
83
|
`agro sandbox install` remains host-only and says so.
|
|
96
84
|
|
|
97
85
|
## Commands
|
|
@@ -106,10 +94,10 @@ with `OH_EXECUTION_TARGET=local` or `OH_EXECUTION_TARGET=docker-compose`.
|
|
|
106
94
|
| `agro logs [name]` | Tail the sandbox compose logs. |
|
|
107
95
|
| `agro ps [name]` | Show sandbox service status. |
|
|
108
96
|
| `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. |
|
|
109
|
-
| `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 `
|
|
97
|
+
| `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 `AGRO_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 `agro vendor` — see the compatibility note below. |
|
|
110
98
|
| `agro config show [--sandbox <name>]` | Print the resolved `agro.json` — every non-secret setting. |
|
|
111
99
|
| `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`. |
|
|
112
|
-
| `agro config repo` | Create a repo on your GitHub account, keep the cloned-from upstream as the `
|
|
100
|
+
| `agro config repo` | Create a repo on your GitHub account, keep the cloned-from upstream as the `agro` remote, point `origin` at yours, and push. Asks first and defaults to no; never runs without an interactive yes. |
|
|
113
101
|
| `agro config <integration>` | Configure an integration via an interactive wizard. |
|
|
114
102
|
| `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. |
|
|
115
103
|
| `agro secret list [--sandbox <name>]` | List the allow-listed keys that hold a value, with the values redacted. |
|
|
@@ -127,17 +115,17 @@ two homes — a sandbox's registry entry (`--sandbox <name>`) and the project ro
|
|
|
127
115
|
[configuration](https://github.com/mifunedev/agro/blob/main/docs/configuration.md)
|
|
128
116
|
for the field reference.
|
|
129
117
|
|
|
130
|
-
`agro`
|
|
118
|
+
`agro` is the only lifecycle door, on the host and in the sandbox, and every verb
|
|
131
119
|
runs `.agro/scripts/docker-compose.sh` — see
|
|
132
120
|
[lifecycle commands](https://github.com/mifunedev/agro/blob/main/docs/lifecycle-commands.md), which also
|
|
133
121
|
states the confirmation policy `agro destroy` carries.
|
|
134
122
|
|
|
135
|
-
`agro update` never touches a project. During the compatibility window `
|
|
123
|
+
`agro update` never touches a project. During the compatibility window `agro vendor` vendors
|
|
136
124
|
`.agro/` + `crons/` into the current directory, equipping an empty checkout and upgrading an
|
|
137
125
|
equipped one (`--from <dir>` / `--from-remote [--ref <ref>]`, `--dry-run`, `--force`); it
|
|
138
126
|
writes nothing else and never prompts. `agro update` rejects those flags and points at
|
|
139
|
-
`
|
|
140
|
-
(or no payload at all) it shallow-clones the public
|
|
127
|
+
`agro vendor`. `agro vendor` prefers the payload bundled into the CLI itself; with `--from-remote`
|
|
128
|
+
(or no payload at all) it shallow-clones the public AGRO repo into a temp dir and
|
|
141
129
|
removes it after the run (`--ref <ref>` pins it). Root `docs/` remains project-owned and is
|
|
142
130
|
not part of that payload. Catalog and help output therefore links to the AGRO source
|
|
143
131
|
documentation instead of a path inside the equipped project.
|