Skip to content

Published software packages: percent-encoded entrypoint paths, missing exec bits (git/jq/ripgrep), no grep command, empty duckdb archive #1962

Description

@Winston-Gu

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions