This commit is contained in:
Raven Scott
2026-04-04 18:41:34 -04:00
parent 7cf1a8d1c5
commit d75f4e7383
29 changed files with 1219 additions and 469 deletions
+2 -2
View File
@@ -8,7 +8,7 @@ Former **DOCUMENTATION.md** §§12.112.9 (runtime, VFS, shell, identity). [Re
- `main``./index.js`
- `scripts.start` / `dev``bare index.js`
- `scripts.test``brittle-node test.js`
- `scripts.test``brittle-bare test.identity.js` then `node --require ./scripts/bare-node-test-shim.cjs … brittle-node test.js` (shim supplies Bare-style `bare-type` binding + Node `util.inspect` stand-in for `bare-inspect`; `openssl` / `ssh-keygen` delegates lazy-load `bare-crypto` so the main suite does not import native addons at startup)
- `dependencies` — Same hyperstack as seeder + `bare-os-protocol` + `bare-crypto` (identity account + vault AEAD)
- `devDependencies``brittle`
- `imports``path`, `url`, `node:url` Bare/Node conditional
@@ -110,7 +110,7 @@ Former **DOCUMENTATION.md** §§12.112.9 (runtime, VFS, shell, identity). [Re
**`runBinCommand(ctx, argv)`**
- **Host delegates first** — [`host-delegate-registry.js`](../../packages/bare-os-booter/lib/host-delegate-registry.js) registers **`git`**, **`curl`**, **`wget`**, **`openssl`**, **`ssh-keygen`**, **`tar`**, **`systemctl`** / **`bare-initctl`** / **`journalctl`**, **`warc`**, and **`archive`** (ustar front-end) with **static** imports (Pear-safe). Each delegate checks **`BARE_OS_DELEGATE_ALLOW`**; denied kinds exit **126**. **`curl`** and **`wget`** are Fetch-based subsets (not libcurl / full GNU wget); **`/bin/curl`** and **`/bin/wget`** on the image call **`ctx.bareOsRunCurlCli`** / **`ctx.bareOsRunWgetCli`** when present—see [HTTP: curl and wget](http-curl-and-wget.md). **`/bin/systemctl`** and **`/bin/journalctl`** call **`ctx.bareOsRunSystemctlCli`** when present (same backend as the host delegate).
- **Host delegates first** — [`host-delegate-registry.js`](../../packages/bare-os-booter/lib/host-delegate-registry.js) registers **`git`**, **`curl`**, **`wget`**, **`openssl`**, **`ssh-keygen`**, **`tar`**, **`systemctl`** / **`bare-initctl`** / **`journalctl`**, **`warc`**, **`archive`** (ustar front-end), **`hrpc`**, **`bundlebee`**, **`sidecar`**, and **`pear-runtime-matrix`** via [`host-bridge-cli.js`](../../packages/bare-os-booter/lib/host-bridge-cli.js), with **static** imports (Pear-safe). Each delegate checks **`BARE_OS_DELEGATE_ALLOW`**; denied kinds exit **126**. **`curl`** and **`wget`** are Fetch-based subsets (not libcurl / full GNU wget); **`/bin/curl`** and **`/bin/wget`** on the image call **`ctx.bareOsRunCurlCli`** / **`ctx.bareOsRunWgetCli`** when present—see [HTTP: curl and wget](http-curl-and-wget.md). **`/bin/systemctl`** and **`/bin/journalctl`** call **`ctx.bareOsRunSystemctlCli`** when present (same backend as the host delegate). **Host bridge CLIs:** **`hrpc probe`** prints **`bareOsHrpcAllowlistProbe()`** (optional **`BARE_OS_HRPC_ALLOWLIST_JSON`**); **`hrpc request`** calls **`ctx.bareOsHrpcRequest`** when the host assigns a non-stock handler and sets **`BARE_OS_HRPC_BRIDGE_WIRED=1`** (**`bareOsHostCapability('hrpcBridge')`**). **`bundlebee hint`** emits **`bare-os:bundlebee-cli`**; **`bundlebee status`** prints **`BARE_OS_BUNDLEBEE_STAGE_JSON`**. **`sidecar cap <class>`** calls **`bareOsSidecarResourceCap`**. **`pear-runtime-matrix`** prints **`bareOsPearRuntimeMatrixProbe()`** (optional **`BARE_OS_PEAR_RUNTIME_MATRIX_JSON`**). **`BARE_OS_SIDECAR_BRIDGE_WIRED`** / **`BARE_OS_BUNDLEBEE_CLI_WIRED`** are advertised via **`bareOsHostCapability`** for operator probes.
- If **`argv[0]`** is **`git`** (or a POSIX path whose basename is `git`, but not `./git` or `../git`), **delegates** to **`runGitCli`** in [`git-cli.js`](../../packages/bare-os-booter/lib/git-cli.js).
- If **`argv[0]`** is **`curl`** under the same basename rules, **delegates** to **`runCurlCli`** in [`curl-cli.js`](../../packages/bare-os-booter/lib/curl-cli.js).
- If **`argv[0]`** is **`wget`** under the same basename rules, **delegates** to **`runWgetCli`** in [`wget-cli.js`](../../packages/bare-os-booter/lib/wget-cli.js).