Skip to content

Commit 0e80699

Browse files
committed
chore: initialize agent-compose repository
1 parent fec409a commit 0e80699

376 files changed

Lines changed: 123275 additions & 2 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.dockerignore

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
.git
2+
playground
3+
.venv
4+
.vscode
5+
.cache
6+
data
7+
build/*
8+
!build/boxlite/
9+
!build/boxlite/**
10+
!build/microsandbox/
11+
!build/microsandbox/**
12+
vendor
13+
node_modules
14+
runtime/javascript/node_modules
15+
runtime/agent-compose-runtime-sdk/node_modules
16+
.pnpm-store
17+
!assets/
18+
!guest-images/
19+
!guest-images/**
20+
tmp

.env.example

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# agent-compose local development example
2+
3+
# Data and listeners
4+
DATA_ROOT=./data/agent-compose
5+
# HTTP_LISTEN is optional. Keep it on loopback for local unauthenticated use.
6+
HTTP_LISTEN=127.0.0.1:7410
7+
# AGENT_COMPOSE_SOCKET=/tmp/agent-compose.sock
8+
# AGENT_COMPOSE_HOST=http://127.0.0.1:7410
9+
10+
# Authentication
11+
# AUTH_USERNAME=admin
12+
# AUTH_PASSWORD=change-me
13+
# Use a stable, high-entropy value in shared or production-like deployments.
14+
# AUTH_SECRET=change-me-to-a-long-random-secret
15+
# AUTH_SESSION_TTL=24h
16+
# HTTP_BASIC_AUTH is base64(username:password).
17+
# HTTP_BASIC_AUTH=
18+
19+
# OAuth
20+
# OAUTH_APIKEY=
21+
# OAUTH_SECRET=
22+
# OAUTH_BASE_URL=
23+
# OAUTH_CALLBACK_URL=
24+
# OAUTH_SCOPES=profile
25+
# OAUTH_CLIENT_AUTH_METHOD=client_secret_post
26+
27+
# LLM
28+
# LLM_API_ENDPOINT=https://api.openai.com
29+
# LLM_API_KEY=
30+
# OPENAI_API_KEY=
31+
# LLM_MODEL=
32+
# LLM_TIMEOUT=60s
33+
34+
# Runtime
35+
RUNTIME_DRIVER=docker
36+
DEFAULT_IMAGE=debian:bookworm-slim
37+
# DOCKER_DEFAULT_IMAGE=debian:bookworm-slim
38+
# MICROSANDBOX_DEFAULT_IMAGE=debian:bookworm-slim
39+
40+
# Images
41+
IMAGE_STORE_MODE=auto
42+
# IMAGE_REGISTRY=docker.io
43+
# IMAGE_CACHE_ROOT=./data/agent-compose/images
44+
# IMAGE_INSECURE_REGISTRIES=
45+
46+
# BoxLite
47+
# BOXLITE_HOME=./data/agent-compose/boxlite
48+
# BOXLITE_RUNTIME_DIR=./build/boxlite/runtime
49+
# BOX_ROOTFS_PATH=
50+
# BOX_DISK_SIZE_GB=6
51+
# BOX_CACHE_TTL=168h
52+
53+
# Docker runtime
54+
# DOCKER_HOME=./data/agent-compose/docker
55+
# DOCKER_HOST_SESSION_ROOT=
56+
57+
# Microsandbox
58+
# MICROSANDBOX_HOME=./data/agent-compose/microsandbox
59+
# MICROSANDBOX_MSB_PATH=./build/microsandbox/bin/msb
60+
# MICROSANDBOX_LIB_PATH=./build/microsandbox/lib/libmicrosandbox_go_ffi.so
61+
# MICROSANDBOX_INSECURE_REGISTRIES=
62+
63+
# Guest paths
64+
GUEST_WORKSPACE=/workspace
65+
GUEST_STATE_ROOT=/data/state
66+
GUEST_RUNTIME_ROOT=/data/runtime
67+
GUEST_LOG_ROOT=/data/logs
68+
JUPYTER_GUEST_PORT=8888
69+
JUPYTER_PROXY_BASE=/jupyter
70+
71+
# Limits and timeouts
72+
# AGENT_TIMEOUT=10m
73+
# LOADER_RUN_TIMEOUT=20m
74+
# SESSION_START_TIMEOUT=30m
75+
# SESSION_STOP_TIMEOUT=30s
76+
# WEBHOOK_BODY_LIMIT_BYTES=1048576
77+
# WORKSPACE_UPLOAD_LIMIT_BYTES=1073741824
78+
79+
# Legacy compatibility. The daemon does not serve the Web UI in the current
80+
# deployment model; use an external static frontend service instead.
81+
# HTTP_ROOT=./dist
82+
# UI_ROOT=./dist-ui
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Bug report
2+
description: Report a reproducible problem in agent-compose.
3+
title: "[Bug]: "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Please do not include secrets, tokens, private repository URLs, or sensitive logs.
10+
- type: textarea
11+
id: summary
12+
attributes:
13+
label: Summary
14+
description: What happened?
15+
validations:
16+
required: true
17+
- type: textarea
18+
id: steps
19+
attributes:
20+
label: Steps to reproduce
21+
description: Provide the smallest reproduction you can.
22+
placeholder: |
23+
1. Start daemon with ...
24+
2. Run ...
25+
3. Observe ...
26+
validations:
27+
required: true
28+
- type: textarea
29+
id: expected
30+
attributes:
31+
label: Expected behavior
32+
validations:
33+
required: true
34+
- type: textarea
35+
id: actual
36+
attributes:
37+
label: Actual behavior
38+
validations:
39+
required: true
40+
- type: input
41+
id: version
42+
attributes:
43+
label: Version or commit
44+
placeholder: agent-compose version or git commit
45+
- type: dropdown
46+
id: runtime
47+
attributes:
48+
label: Runtime driver
49+
options:
50+
- boxlite
51+
- docker
52+
- microsandbox
53+
- not runtime-related
54+
- type: textarea
55+
id: logs
56+
attributes:
57+
label: Logs
58+
description: Paste relevant logs with secrets redacted.
59+
render: text

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: true
2+
contact_links:
3+
- name: Security vulnerability
4+
url: https://github.com/chaitin/agent-compose/security/advisories/new
5+
about: Please use a private GitHub security advisory for vulnerability reports.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Feature request
2+
description: Suggest a capability or workflow improvement.
3+
title: "[Feature]: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: textarea
7+
id: problem
8+
attributes:
9+
label: Problem
10+
description: What user problem should this solve?
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: proposal
15+
attributes:
16+
label: Proposal
17+
description: Describe the behavior you want.
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: alternatives
22+
attributes:
23+
label: Alternatives considered
24+
- type: textarea
25+
id: context
26+
attributes:
27+
label: Additional context

.github/pull_request_template.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
## Summary
2+
3+
<!-- What changed and why? -->
4+
5+
## Testing
6+
7+
<!-- List commands run, or explain why testing was not run. -->
8+
9+
## Checklist
10+
11+
- [ ] Documentation updated when behavior or configuration changed.
12+
- [ ] Tests added or updated for user-visible behavior.
13+
- [ ] No secrets, private endpoints, internal certificates, or local runtime state included.

.github/workflows/ci.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- main
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
go-test:
14+
name: Go tests
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v4
18+
- uses: actions/setup-go@v5
19+
with:
20+
go-version-file: go.mod
21+
cache: true
22+
- run: go test ./cmd/... ./pkg/...
23+
24+
frontend:
25+
name: Frontend build
26+
runs-on: ubuntu-latest
27+
steps:
28+
- uses: actions/checkout@v4
29+
- uses: actions/setup-node@v4
30+
with:
31+
node-version: 22
32+
cache: npm
33+
- run: npm ci
34+
- run: npm run build:ui
35+
36+
runtime-sdk:
37+
name: Runtime SDK
38+
runs-on: ubuntu-latest
39+
defaults:
40+
run:
41+
working-directory: runtime/agent-compose-runtime-sdk
42+
steps:
43+
- uses: actions/checkout@v4
44+
- uses: actions/setup-node@v4
45+
with:
46+
node-version: 22
47+
cache: npm
48+
cache-dependency-path: runtime/agent-compose-runtime-sdk/package-lock.json
49+
- run: npm ci
50+
- run: npm test
51+
- run: npm run test:packaging
52+
53+
scheduler-runtime:
54+
name: Scheduler runtime
55+
runs-on: ubuntu-latest
56+
defaults:
57+
run:
58+
working-directory: runtime/javascript
59+
steps:
60+
- uses: actions/checkout@v4
61+
- uses: actions/setup-node@v4
62+
with:
63+
node-version: 22
64+
cache: npm
65+
cache-dependency-path: runtime/javascript/package-lock.json
66+
- run: npm ci
67+
- run: npm run test:unit

.gitignore

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Local configuration and secrets
2+
.env
3+
.env.*
4+
!.env.example
5+
6+
# agent-compose runtime state
7+
/data/
8+
/playground/data/
9+
/.state/
10+
11+
# Build outputs
12+
/build/
13+
/dist/
14+
/dist-ui/
15+
/agent-compose
16+
/runtime/agent-compose-runtime-sdk/dist/
17+
/runtime/javascript/dist/
18+
19+
# Node / frontend dependencies and caches
20+
node_modules/
21+
.pnpm-store/
22+
.npm/
23+
.yarn/
24+
/.vite/
25+
/.svelte-kit/
26+
27+
# Test and coverage output
28+
/coverage/
29+
/runtime/javascript/coverage/
30+
/.cache/
31+
*.coverprofile
32+
coverage.out
33+
*.lcov
34+
35+
# Go build/test artifacts
36+
*.test
37+
*.prof
38+
__debug_bin*
39+
40+
# Task runner
41+
/.task/
42+
43+
# Logs
44+
*.log
45+
npm-debug.log*
46+
yarn-debug.log*
47+
yarn-error.log*
48+
pnpm-debug.log*
49+
50+
# OS and editor files
51+
.DS_Store
52+
Thumbs.db
53+
*.swp
54+
*.swo
55+
*~
56+
.idea/
57+
.vscode/

0 commit comments

Comments
 (0)