Four defects in the published @agentos-software/* packages, found while wiring registry software into an embedded @rivet-dev/agentos-core deployment (0.2.15 and 0.2.19; package versions 0.3.3/0.3.4). Grouped here since they're all publishing/packaging; happy to split if you prefer.
1. Entrypoints export a percent-encoded path
dist/index.js in every software package does:
const packagePath = new URL("./package.aospkg", import.meta.url).pathname;
URL.pathname keeps percent-encoding, so on any install path containing spaces or non-ASCII segments (/Users/x/My Projects/…, CJK directory names) the sidecar receives a nonexistent path and AgentOs.create fails with invalid_state: package dir … has neither package.aospkg nor agentos-package.json. This also breaks defaultSoftware (via @agentos-software/common), i.e. a bare AgentOs.create() on such a path. Fix is fileURLToPath(new URL(...)). Workaround: construct { packagePath } refs manually with decoded filesystem paths.
2. git/jq/ripgrep payloads ship without exec bits
The projected binaries under /opt/agentos/pkgs/<name>/current/bin/ have mode 644, so resolution through the /opt/agentos/bin symlinks fails:
$ bash -c 'jq --version'
error: failed to execute command 'jq': Permission denied (os error 2)
$ ls -l /opt/agentos/pkgs/git/0.3.0-rc.2/bin/git # from inside the VM
-rw-r--r-- … git
Direct spawn from a guest node process still works for jq/rg (the kernel command layer intercepts), which hides the defect from some paths, but anything that resolves via PATH-in-bash is broken. (Also worth noting: the archives embed internal version 0.3.0-rc.2 while the npm wrappers say 0.3.3.)
3. grep package registers no grep
@agentos-software/grep declares only egrep and fgrep. egrep is an "obsolescent" shim that execs grep — which doesn't exist — so it fails with failed to run grep: No such file or directory (os error 44). Nothing in the registry provides plain grep.
4. duckdb archive is empty
@agentos-software/duckdb@0.3.3's dist/package.aospkg is 1.1 KB and registers zero commands (software.list() shows commands: []; duckdb is command-not-found in the VM).
Environment: embedded core (no rivetkit), darwin/arm64 and linux/arm64 (node:24-bookworm-slim), explicit software: refs with defaultSoftware: false.
Four defects in the published
@agentos-software/*packages, found while wiring registry software into an embedded@rivet-dev/agentos-coredeployment (0.2.15 and 0.2.19; package versions 0.3.3/0.3.4). Grouped here since they're all publishing/packaging; happy to split if you prefer.1. Entrypoints export a percent-encoded path
dist/index.jsin every software package does:URL.pathnamekeeps percent-encoding, so on any install path containing spaces or non-ASCII segments (/Users/x/My Projects/…, CJK directory names) the sidecar receives a nonexistent path andAgentOs.createfails withinvalid_state: package dir … has neither package.aospkg nor agentos-package.json. This also breaksdefaultSoftware(via@agentos-software/common), i.e. a bareAgentOs.create()on such a path. Fix isfileURLToPath(new URL(...)). Workaround: construct{ packagePath }refs manually with decoded filesystem paths.2. git/jq/ripgrep payloads ship without exec bits
The projected binaries under
/opt/agentos/pkgs/<name>/current/bin/have mode 644, so resolution through the/opt/agentos/binsymlinks fails:Direct spawn from a guest node process still works for
jq/rg(the kernel command layer intercepts), which hides the defect from some paths, but anything that resolves via PATH-in-bash is broken. (Also worth noting: the archives embed internal version0.3.0-rc.2while the npm wrappers say 0.3.3.)3. grep package registers no
grep@agentos-software/grepdeclares onlyegrepandfgrep.egrepis an "obsolescent" shim that execsgrep— which doesn't exist — so it fails withfailed to run grep: No such file or directory (os error 44). Nothing in the registry provides plaingrep.4. duckdb archive is empty
@agentos-software/duckdb@0.3.3'sdist/package.aospkgis 1.1 KB and registers zero commands (software.list()showscommands: [];duckdbis command-not-found in the VM).Environment: embedded core (no rivetkit), darwin/arm64 and linux/arm64 (
node:24-bookworm-slim), explicitsoftware:refs withdefaultSoftware: false.