Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
c89ac6f
refactor: centralize AgentOS runtime behavior in the sidecar
NathanFlurry Jul 13, 2026
46a278a
fix(core): isolate shared sidecar routing
NathanFlurry Jul 13, 2026
9555bf7
fix(sidecar): order process output before exit
NathanFlurry Jul 13, 2026
bb90cc7
fix(sidecar): bound process output capture
NathanFlurry Jul 13, 2026
e08555a
fix(client): route process events without lag
NathanFlurry Jul 13, 2026
cae3bbf
fix(client): preserve explicit stream stdin
NathanFlurry Jul 14, 2026
9bda8c9
fix(client): serialize stdin operations
NathanFlurry Jul 14, 2026
2d3d742
fix(client): parse tool input once
NathanFlurry Jul 14, 2026
2f98a14
fix(client): preserve sidecar error codes
NathanFlurry Jul 14, 2026
a10d746
fix(client): reject invalid software input
NathanFlurry Jul 14, 2026
573ec06
fix(client): remove permission timeout race
NathanFlurry Jul 14, 2026
b6659f0
fix(client): bound completed process routes
NathanFlurry Jul 14, 2026
d6fd589
fix(client): close sidecar sessions reliably
NathanFlurry Jul 14, 2026
5bb1a5e
fix(client): read live projected software state
NathanFlurry Jul 14, 2026
603de40
fix(client): retain ACP routes until close confirmation
NathanFlurry Jul 14, 2026
066f6b5
fix(acp): register session routes atomically
NathanFlurry Jul 14, 2026
ac77fa8
refactor(acp): converge native and browser behavior
NathanFlurry Jul 14, 2026
11bc452
fix(rust): preserve complete ACP results
NathanFlurry Jul 14, 2026
bbf4914
fix(acp): preserve cleanup failures
NathanFlurry Jul 14, 2026
b459cb9
chore: retain shared workspace changes
NathanFlurry Jul 14, 2026
ac744da
fix(rust): propagate cron callback failures
NathanFlurry Jul 14, 2026
81e281f
docs: correct permission defaults
NathanFlurry Jul 14, 2026
f75804e
docs: fix Pi quickstart package projection
NathanFlurry Jul 14, 2026
a67e7dd
test(actor): require real cron cold boot
NathanFlurry Jul 14, 2026
70e03f5
refactor(client): remove derived process tree APIs
NathanFlurry Jul 14, 2026
19b670e
refactor(typescript): remove compiler filesystem bootstrap
NathanFlurry Jul 14, 2026
88317c8
fix(sidecar): remove implicit host path execution
NathanFlurry Jul 14, 2026
2258b76
refactor(sidecar): remove legacy ACP test harness
NathanFlurry Jul 14, 2026
48e095c
fix(acp): reject malformed response envelopes
NathanFlurry Jul 14, 2026
4ec474c
refactor(sdk): remove inert process options
NathanFlurry Jul 14, 2026
325ff97
chore(limits): repair stale audit inventory
NathanFlurry Jul 14, 2026
0bc0729
fix(acp): reject unknown methods in sidecar
NathanFlurry Jul 14, 2026
62b1f46
build: add Gigacode install recipe
NathanFlurry Jul 14, 2026
ee39e0c
fix(codex): publish populated CLI package
NathanFlurry Jul 14, 2026
d578a31
Merge remote-tracking branch 'origin/main' into agent/acp-codex-sessi…
NathanFlurry Jul 14, 2026
2fe8fb6
fix(ci): satisfy merged ACP validation gates
NathanFlurry Jul 14, 2026
c26d7be
fix(acp): recover adapters that exit between turns
NathanFlurry Jul 14, 2026
9221939
fix(sidecar): preserve cleanup event admission
NathanFlurry Jul 14, 2026
045adab
fix(bench): build runtime workspace dependencies
NathanFlurry Jul 14, 2026
fd745e7
test(acp): expect typed missing-session errors
NathanFlurry Jul 14, 2026
c340fd7
fix(runtime): complete Codex and ACP integration
NathanFlurry Jul 14, 2026
1cf5206
fix(bench): record Git revision metadata
NathanFlurry Jul 14, 2026
1362700
fix(acp): tolerate already-exited adapters on close
NathanFlurry Jul 14, 2026
c3a4118
chore(bench): ignore generated benchmark artifacts
NathanFlurry Jul 14, 2026
7e6d1a2
fix(acp): finalize exited adapter cleanup
NathanFlurry Jul 14, 2026
ef7cd1d
fix(bench): reap actor engine subprocesses
NathanFlurry Jul 14, 2026
2666c5f
fix(acp): preserve exited-adapter close signal
NathanFlurry Jul 14, 2026
f6fa292
fix(bench): reap detached Rivet engines
NathanFlurry Jul 14, 2026
c73c230
fix(bench): retry local actor startup
NathanFlurry Jul 14, 2026
6ad8d0a
fix(acp): observe reaped adapter exits
NathanFlurry Jul 14, 2026
e8fe732
fix(sidecar): reap exited extension resources
NathanFlurry Jul 14, 2026
f312567
chore: retrigger pull request checks
NathanFlurry Jul 14, 2026
863f592
merge: update ACP benchmark branch with main
NathanFlurry Jul 14, 2026
aaa27c6
fix(bench): configure local actor runner
NathanFlurry Jul 14, 2026
169c6ba
fix(bench): allow slow OpenCode first turns
NathanFlurry Jul 14, 2026
1c96c6d
fix(bench): avoid Node in actor warmup
NathanFlurry Jul 14, 2026
9fdc039
fix(bench): retry transient actor warmup failures
NathanFlurry Jul 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .github/workflows/bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ jobs:
- run: cargo build --release --target wasm32-wasip1 -p agentos-native-baseline
- run: make -C registry/native commands
- run: node packages/runtime-core/scripts/copy-wasm-commands.mjs --require
- run: pnpm --dir packages/runtime-core build
- run: pnpm --filter '@agentos-software/common...' --filter '@rivet-dev/agentos-runtime-core' --workspace-concurrency=4 -r run build
- run: pnpm --dir packages/core build
- run: pnpm --dir packages/runtime-benchmarks bench:check
- run: pnpm --dir packages/runtime-benchmarks bench:gate
env:
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/ci-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,13 @@ jobs:
- run: pnpm test
env:
AGENTOS_E2E_NETWORK: '1'
- run: cargo build -p agentos-sidecar
env:
CARGO_TARGET_DIR: ${{ github.workspace }}/target
- run: cargo test --workspace -- --test-threads=1
env:
CARGO_TARGET_DIR: ${{ github.workspace }}/target
AGENTOS_SIDECAR_BIN: ${{ github.workspace }}/target/debug/agentos-sidecar
- run: cargo build --release -p agentos-native-sidecar
- run: cargo build --release -p agentos-native-baseline
- run: cargo build --release --target wasm32-wasip1 -p agentos-native-baseline
Expand Down
13 changes: 13 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
- run: node scripts/check-agentos-client-protocol-compat.mjs
- run: node --test scripts/verify-fixed-versions.test.mjs
- run: node scripts/verify-fixed-versions.mjs
- run: node --test scripts/verify-thin-client-docs.test.mjs
- run: node scripts/verify-thin-client-docs.mjs
- run: cargo fmt --check
- run: pnpm check-types
- run: pnpm lint
Expand Down Expand Up @@ -117,6 +119,17 @@ jobs:
- name: Verify complete coreutils runtime package
run: pnpm --filter @agentos-software/coreutils build:runtime
- run: cargo clippy --workspace --all-targets -- -D warnings
- name: Build sidecar for actor persistence E2E
run: cargo build -p agentos-sidecar
env:
CARGO_TARGET_DIR: ${{ github.workspace }}/target
- name: Test actor cron cold boot
run: |
test -x "$AGENTOS_SIDECAR_BIN"
cargo test -p agentos-actor-plugin persistence_e2e -- --test-threads=1 --nocapture
env:
CARGO_TARGET_DIR: ${{ github.workspace }}/target
AGENTOS_SIDECAR_BIN: ${{ github.workspace }}/target/debug/agentos-sidecar
- run: cargo test -p agentos-protocol -- --test-threads=1
- run: cargo test -p agentos-sidecar -- --test-threads=1
- run: cargo test -p agentos-client -- --test-threads=1
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ registry/native/c/vendor/
registry/native/c/libs/
registry/native/c/.cache/
registry/native/c/sysroot/
registry/software/coreutils/bin/
registry/software/*/bin/
registry/software/*/wasm/
registry/software/*/agentos-package.meta.json
registry/.last-publish-hash
Expand All @@ -59,6 +59,9 @@ scripts/ralph/.last-branch
scripts/ralph/prd.json
scripts/ralph/todo/prd.json
scripts/ralph/progress.txt

# Local benchmark outputs
scripts/benchmarks/results/
scripts/ralph/reviews/
scripts/ralph/.codex-last-msg-*

Expand Down
16 changes: 10 additions & 6 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,16 @@ the guest — over inventing a softer fallback that hides the failure.
they do not scan `node_modules` or parse adapter manifests for discovery.
- TypeScript and Rust clients must stay behaviorally identical. Any public
method or wire behavior change in one client must be mirrored in the other.
- Clients are thin transport adapters, not runtime policy owners. They may
validate and serialize explicit caller input, forward requests, route host
callbacks/events, and retain host-only state that the sidecar cannot access.
VM defaults, base environment, filesystem/bootstrap policy, default software,
permission policy, agent/session orchestration, prompt assembly, and other
behavior shared across clients belong in the sidecar/runtime.
- Clients must be as small and simple as possible: thin transport adapters, not
runtime policy owners. They may validate and serialize explicit caller input,
forward requests, route host callbacks/events, and retain only host-side state
that the sidecar cannot access. They must preserve omitted fields instead of
filling in defaults. VM defaults, base environment, filesystem/bootstrap
policy, default software, permission policy, agent/session orchestration,
prompt assembly, and other behavior shared across clients belong in the
sidecar/runtime. The sole exception is the TypeScript package manager's
default package list, which may be selected client-side and forwarded as
ordinary package inputs.
- Behavioral parity must come from one sidecar-owned implementation, not copied
TypeScript/Rust/actor constants or parallel state machines. Prefer omitted
wire fields meaning "use the sidecar default"; clients should send overrides
Expand Down
130 changes: 129 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

- **Runs inside your process**: No VMs to boot, no containers to pull. Agents start in milliseconds with minimal memory overhead.
- **Embeds in your backend**: Agents call your functions directly via [bindings](https://agentos-sdk.dev/docs/bindings). No network hops, no complex auth between services.
- **Granular security**: Deny-by-default permissions for filesystem, network, and process access. The same isolation technology trusted by browsers worldwide.
- **Granular security**: Sidecar-enforced permissions for filesystem, network, process, environment, and bindings. Omitted permissions allow all VM capabilities; pass explicit denies or allowlists for untrusted workloads.
- **Deploy anywhere**: Just an npm package. Works on your laptop, Rivet Cloud, Railway, Vercel, Kubernetes, or any container platform.
- **Open source**: Apache 2.0 licensed. Self-host or use [Rivet Cloud](https://agentos-sdk.dev/docs/deployment) for managed infrastructure.

Expand Down Expand Up @@ -107,7 +107,7 @@ All benchmarks compare agentOS against the fastest/cheapest mainstream sandbox p
## Features

### Agents
- **Multi-agent support**: Run built-in Pi, Claude Code, and OpenCode agents with a unified API, plus install registry command packages such as Codex as VM software
- **Multi-agent support**: Run built-in Pi, Claude Code, Codex, and OpenCode agents with a unified API
- **[Sessions via ACP](https://agentos-sdk.dev/docs/sessions)**: Create, manage, and resume agent sessions over the [Agent Communication Protocol](https://agentclientprotocol.com)
- **Universal transcript format**: One transcript format across all agents for debugging, auditing, and comparison
- **[Automatic persistence](https://agentos-sdk.dev/docs/persistence)**: Every conversation is saved and replayable without extra code
Expand All @@ -125,7 +125,7 @@ All benchmarks compare agentOS against the fastest/cheapest mainstream sandbox p
- **[Authentication](https://agentos-sdk.dev/docs/authentication)**: Integrate with your existing auth model (API keys, OAuth, JWTs)

### Security
- **[Deny-by-default permissions](https://agentos-sdk.dev/docs/permissions)**: Granular control over filesystem, network, process, and environment access
- **[Sidecar-enforced permissions](https://agentos-sdk.dev/docs/permissions)**: Omitted scopes allow access; explicit policies restrict individual scopes and resources
- **[Programmatic network control](https://agentos-sdk.dev/docs/networking)**: Allow, deny, or proxy any outbound connection
- **[Resource limits](https://agentos-sdk.dev/docs/resource-limits)**: Set precise CPU and memory limits per agent
- **[VM isolation](https://agentos-sdk.dev/docs/architecture)**: Each agent runs in its own VM with no shared state
Expand Down
Loading
Loading