Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
e3dfe5f
feat: inital commit for sandbox support
0x5487 Feb 20, 2026
82e6c31
Merge upstream/main into feat/agent-sandbox
0x5487 Feb 20, 2026
ba1d7c9
chore: rename link
0x5487 Feb 20, 2026
824f4f9
Merge remote-tracking branch 'upstream/main' into feat/agent-sandbox
0x5487 Feb 21, 2026
0f576ba
refactor: Rename sandbox Stop to Prune, remove DisabledTool, and intr…
0x5487 Feb 21, 2026
658cf6a
refactor: Introduce sandbox manager, consolidate sandbox components, …
0x5487 Feb 22, 2026
5491954
refactor: Rework sandbox tool registration logic, simplify sandbox st…
0x5487 Feb 22, 2026
c690248
refactor: reimplement sandbox management with a Manager interface for…
0x5487 Feb 22, 2026
bd8af1b
Merge remote-tracking branch 'upstream/main' into feat/agent-sandbox
0x5487 Feb 22, 2026
c81f3d6
refactor: update error handling, code formatting, and configuration f…
0x5487 Feb 22, 2026
8762367
Merge remote-tracking branch 'upstream/main' into feat/agent-sandbox
0x5487 Feb 23, 2026
0186122
refactor: Consolidate sandbox context functions, update default image…
0x5487 Feb 24, 2026
7cdaf2c
feat: Improve sandbox image fallback, add Podman-compatible workspace…
0x5487 Feb 25, 2026
a547cbf
Merge remote-tracking branch 'upstream/main' into feat/agent-sandbox
0x5487 Feb 25, 2026
7a402c4
Refactor agent instance initialization to consolidate component setup…
0x5487 Feb 25, 2026
a75ff2c
refactor(sandbox): Unify host process management and refine tool enab…
0x5487 Feb 27, 2026
b31f0e3
feat: refactor sandbox management to use context-aware workspaces and…
0x5487 Feb 28, 2026
c22a6a6
Merge remote-tracking branch 'upstream/main' into feat/agent-sandbox
0x5487 Feb 28, 2026
f06f78f
feat: Implement a unified channel and provider management system with…
0x5487 Feb 28, 2026
7ef1cac
feat: expand default sandbox tool permissions and sanitize container …
0x5487 Feb 28, 2026
e9ddf8c
feat: enhance sandbox security by blocking additional host paths and …
0x5487 Feb 28, 2026
3c51497
feat: introduce agent workspace synchronization to copy agent files a…
0x5487 Mar 1, 2026
4b8dd64
Merge remote-tracking branch 'upstream/main' into feat/agent-sandbox
0x5487 Mar 1, 2026
a002550
refactor: enhance sandbox process termination, update state directory…
0x5487 Mar 1, 2026
bd6d839
Merge remote-tracking branch 'upstream/main' into feat/agent-sandbox
0x5487 Mar 1, 2026
ac52547
fix: Configure CI to use Docker for go tests and add Docker availabil…
0x5487 Mar 1, 2026
21e9651
feat: reimplement sandbox file writing using `docker exec` to ensure …
0x5487 Mar 1, 2026
851dfa2
Merge remote-tracking branch 'upstream/main' into feat/agent-sandbox
0x5487 Mar 1, 2026
befad96
feat: default container sandbox to drop all capabilities and fix erro…
0x5487 Mar 1, 2026
1bed044
Merge remote-tracking branch 'upstream/main' into feat/agent-sandbox
0x5487 Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,5 @@ jobs:

- name: Run go test
run: go test ./...
env:
DOCKER_HOST: unix:///var/run/docker.sock
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,9 @@ build-all: generate
GOOS=windows GOARCH=amd64 $(GO) build $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-windows-amd64.exe ./$(CMD_DIR)
@echo "All builds complete"

build-sandbox:
./scripts/build-sandbox.sh

## install: Install picoclaw to system and copy builtin skills
install: build
@echo "Installing $(BINARY_NAME)..."
Expand Down
11 changes: 10 additions & 1 deletion cmd/picoclaw/internal/gateway/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,16 @@ func setupCronTool(
var cronTool *tools.CronTool
if cfg.Tools.IsToolEnabled("cron") {
var err error
cronTool, err = tools.NewCronTool(cronService, agentLoop, msgBus, workspace, restrict, execTimeout, cfg)
cronTool, err = tools.NewCronTool(
cronService,
agentLoop,
msgBus,
workspace,
restrict,
execTimeout,
cfg,
agentLoop.GetDefaultSandboxManager(),
)
if err != nil {
log.Fatalf("Critical error during CronTool initialization: %v", err)
}
Expand Down
1 change: 1 addition & 0 deletions cmd/picoclaw/internal/onboard/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"github.com/spf13/cobra"
)

//go:generate rm -rf workspace
//go:generate cp -r ../../../../workspace .
//go:embed workspace
var embeddedFiles embed.FS
Expand Down
20 changes: 20 additions & 0 deletions docker/Dockerfile.sandbox
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM debian:bookworm-slim@sha256:98f4b71de414932439ac6ac690d7060df1f27161073c5036a7553723881bffbe

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
&& apt-get install -y --no-install-recommends \
bash \
ca-certificates \
curl \
git \
jq \
python3 \
ripgrep \
&& rm -rf /var/lib/apt/lists/*

RUN useradd --create-home --shell /bin/bash sandbox
USER sandbox
WORKDIR /home/sandbox

CMD ["sleep", "infinity"]
35 changes: 33 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ require (
)

require (
github.com/Microsoft/go-winio v0.4.21 // indirect
filippo.io/edwards25519 v1.1.1 // indirect
github.com/beeper/argo-go v1.1.2 // indirect
github.com/coder/websocket v1.8.14 // indirect
Expand Down Expand Up @@ -65,20 +66,41 @@ require (
modernc.org/memory v1.11.0 // indirect
rsc.io/qr v0.2.0 // indirect
)

require (
github.com/andybalholm/brotli v1.2.0 // indirect
github.com/bytedance/gopkg v0.1.3 // indirect
github.com/bytedance/sonic v1.15.0 // indirect
github.com/bytedance/sonic/loader v0.5.0 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/cloudwego/base64x v0.1.6 // indirect
github.com/containerd/errdefs v1.0.0 // indirect
github.com/containerd/errdefs/pkg v0.3.0 // indirect
github.com/containerd/log v0.1.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/distribution/reference v0.6.0 // indirect
github.com/docker/docker v28.5.2+incompatible
github.com/docker/go-connections v0.6.0 // indirect
github.com/docker/go-units v0.5.0
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/github/copilot-sdk/go v0.1.23
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-resty/resty/v2 v2.17.1 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/google/jsonschema-go v0.4.2 // indirect
github.com/grbit/go-json v0.11.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/klauspost/compress v1.18.4 // indirect
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
github.com/moby/docker-image-spec v1.3.1 // indirect
github.com/moby/sys/atomicwriter v0.1.0 // indirect
github.com/moby/term v0.5.2 // indirect
github.com/morikuni/aec v1.1.0 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.1 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/spf13/pflag v1.0.10 // indirect
github.com/tidwall/gjson v1.18.0 // indirect
github.com/tidwall/match v1.2.0 // indirect
github.com/tidwall/pretty v1.2.1 // indirect
Expand All @@ -87,10 +109,19 @@ require (
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasthttp v1.69.0 // indirect
github.com/valyala/fastjson v1.6.7 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect
go.opentelemetry.io/otel v1.40.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 // indirect
go.opentelemetry.io/otel/metric v1.40.0 // indirect
go.opentelemetry.io/otel/sdk v1.40.0 // indirect
go.opentelemetry.io/otel/trace v1.40.0 // indirect
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
golang.org/x/arch v0.24.0 // indirect
golang.org/x/crypto v0.48.0 // indirect
golang.org/x/net v0.51.0 // indirect
golang.org/x/sync v0.19.0 // indirect
golang.org/x/sys v0.41.0 // indirect
golang.org/x/sys v0.41.0
gopkg.in/yaml.v3 v3.0.1 // indirect
gotest.tools/v3 v3.5.2 // indirect
)
Loading
Loading