Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/build-rc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
required: true
type: string
targets:
description: 'Space-separated list of push targets (default: all). Options: openclaw-base hiclaw-controller embedded manager manager-copaw worker copaw-worker hermes-worker qwenpaw-worker'
description: 'Space-separated list of push targets (default: all). Options: openclaw-base agentteams-controller embedded manager manager-copaw worker copaw-worker hermes-worker qwenpaw-worker'
required: false
type: string
default: 'all'
Expand Down Expand Up @@ -83,7 +83,7 @@ jobs:

- name: Build and push multi-arch images
run: |
make push-manager push-manager-copaw push-worker push-copaw-worker push-hermes-worker push-qwenpaw-worker push-hiclaw-controller push-embedded \
make push-manager push-manager-copaw push-worker push-copaw-worker push-hermes-worker push-qwenpaw-worker push-agentteams-controller push-embedded \
VERSION=${{ inputs.version }} \
OPENCLAW_BASE_VERSION=${{ inputs.version }} \
REGISTRY=${{ env.REGISTRY }} \
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
required: false
type: string
targets:
description: 'Space-separated list of push targets (default: all). Options: openclaw-base hiclaw-controller embedded manager manager-copaw worker copaw-worker hermes-worker qwenpaw-worker'
description: 'Space-separated list of push targets (default: all). Options: openclaw-base agentteams-controller embedded manager manager-copaw worker copaw-worker hermes-worker qwenpaw-worker'
required: false
type: string
default: 'all'
Expand Down Expand Up @@ -64,7 +64,7 @@ jobs:
echo "version=${{ github.ref_name }}" >> $GITHUB_OUTPUT
# Keep QwenPaw available for explicit workflow_dispatch builds, but
# defer publishing it as part of the automatic release set.
echo "targets=openclaw-base hiclaw-controller embedded manager manager-copaw worker copaw-worker hermes-worker" >> $GITHUB_OUTPUT
echo "targets=openclaw-base agentteams-controller embedded manager manager-copaw worker copaw-worker hermes-worker" >> $GITHUB_OUTPUT
else
# workflow_dispatch: use inputs
VERSION="${{ inputs.version }}"
Expand All @@ -84,10 +84,10 @@ jobs:
REPO=${{ env.REPO }} \
HIGRESS_REGISTRY=higress-registry.us-west-1.cr.aliyuncs.com

- name: Build and push hiclaw-controller
if: ${{ steps.meta.outputs.targets == 'all' || contains(steps.meta.outputs.targets, 'hiclaw-controller') }}
- name: Build and push agentteams-controller
if: ${{ steps.meta.outputs.targets == 'all' || contains(steps.meta.outputs.targets, 'agentteams-controller') }}
run: |
make push-hiclaw-controller \
make push-agentteams-controller \
VERSION=${{ steps.meta.outputs.version }} \
REGISTRY=${{ env.REGISTRY }} \
REPO=${{ env.REPO }} \
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/check-crd-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ name: Check CRD Sync
on:
pull_request:
paths:
- 'hiclaw-controller/config/crd/**'
- 'helm/hiclaw/crds/**'
- 'agentteams-controller/config/crd/**'
- 'helm/agentteams/crds/**'
workflow_dispatch: ~

jobs:
Expand All @@ -16,11 +16,11 @@ jobs:

- name: Verify CRDs are in sync
run: |
if ! diff -r hiclaw-controller/config/crd/ helm/hiclaw/crds/; then
if ! diff -r agentteams-controller/config/crd/ helm/agentteams/crds/; then
echo ""
echo "ERROR: CRD files are out of sync between hiclaw-controller/config/crd/ and helm/hiclaw/crds/"
echo "The source of truth is hiclaw-controller/config/crd/."
echo "Run 'make sync-crds' to copy them to helm/hiclaw/crds/."
echo "ERROR: CRD files are out of sync between agentteams-controller/config/crd/ and helm/agentteams/crds/"
echo "The source of truth is agentteams-controller/config/crd/."
echo "Run 'make sync-crds' to copy them to helm/agentteams/crds/."
exit 1
fi
echo "CRDs are in sync."
4 changes: 2 additions & 2 deletions .github/workflows/deploy-helm-to-oss.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ jobs:
helmv3: 3.7.2
command: |
helmv3 repo add higress.io https://higress.io/helm-charts
helmv3 dependency build helm/hiclaw
helmv3 package helm/hiclaw --debug --app-version ${{steps.calc-version.outputs.version}} --version ${{steps.calc-version.outputs.version}} -d ./artifact
helmv3 dependency build helm/agentteams
helmv3 package helm/agentteams --debug --app-version ${{steps.calc-version.outputs.version}} --version ${{steps.calc-version.outputs.version}} -d ./artifact
helmv3 repo index --url https://higress.io/helm-charts/ --merge ./artifact/index.yaml ./artifact
cp ./artifact/index.yaml ./artifact/cn-index.yaml
sed -i 's/higress\.io/higress\.cn/g' ./artifact/cn-index.yaml
Expand Down
11 changes: 4 additions & 7 deletions .github/workflows/helm-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
- 'helm/**'
- 'openhuman/scripts/openhuman-worker-entrypoint.sh'
- 'tests/check-agentteams-rename-defaults.sh'
- 'tests/check-helm-rename-compat.sh'
workflow_dispatch: ~

jobs:
Expand All @@ -27,15 +28,11 @@ jobs:
run: helm repo add higress.io https://higress.io/helm-charts

- name: Build dependencies
run: helm dependency build helm/hiclaw/
run: helm dependency build helm/agentteams/

- name: Lint
run: helm lint helm/hiclaw/
run: helm lint helm/agentteams/

- name: Template dry-run
run: |
helm template hiclaw helm/hiclaw/ \
--set credentials.registrationToken=test \
--set credentials.adminPassword=test \
--set credentials.llmApiKey=test \
--set gateway.publicURL=http://localhost:18080
bash tests/check-helm-rename-compat.sh
8 changes: 4 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,13 @@ jobs:
#### macOS / Linux

\`\`\`bash
bash <(curl -fsSL https://raw.githubusercontent.com/${REPOSITORY}/${STABLE_VERSION}/install/hiclaw-install.sh)
bash <(curl -fsSL https://raw.githubusercontent.com/${REPOSITORY}/${STABLE_VERSION}/install/agentteams-install.sh)
\`\`\`

#### Windows (PowerShell 7+)

\`\`\`powershell
Set-ExecutionPolicy Bypass -Scope Process -Force; \$wc=New-Object Net.WebClient; \$wc.Encoding=[Text.Encoding]::UTF8; iex \$wc.DownloadString('https://raw.githubusercontent.com/${REPOSITORY}/${STABLE_VERSION}/install/hiclaw-install.ps1')
Set-ExecutionPolicy Bypass -Scope Process -Force; \$wc=New-Object Net.WebClient; \$wc.Encoding=[Text.Encoding]::UTF8; iex \$wc.DownloadString('https://raw.githubusercontent.com/${REPOSITORY}/${STABLE_VERSION}/install/agentteams-install.ps1')
\`\`\`
EOF

Expand All @@ -111,13 +111,13 @@ jobs:
#### macOS / Linux

\`\`\`bash
AGENTTEAMS_VERSION=${VERSION} bash <(curl -fsSL https://raw.githubusercontent.com/${REPOSITORY}/${VERSION}/install/hiclaw-install.sh)
AGENTTEAMS_VERSION=${VERSION} bash <(curl -fsSL https://raw.githubusercontent.com/${REPOSITORY}/${VERSION}/install/agentteams-install.sh)
\`\`\`

#### Windows (PowerShell 7+)

\`\`\`powershell
\$env:AGENTTEAMS_VERSION='${VERSION}'; Set-ExecutionPolicy Bypass -Scope Process -Force; \$wc=New-Object Net.WebClient; \$wc.Encoding=[Text.Encoding]::UTF8; iex \$wc.DownloadString('https://raw.githubusercontent.com/${REPOSITORY}/${VERSION}/install/hiclaw-install.ps1')
\$env:AGENTTEAMS_VERSION='${VERSION}'; Set-ExecutionPolicy Bypass -Scope Process -Force; \$wc=New-Object Net.WebClient; \$wc.Encoding=[Text.Encoding]::UTF8; iex \$wc.DownloadString('https://raw.githubusercontent.com/${REPOSITORY}/${VERSION}/install/agentteams-install.ps1')
\`\`\`
EOF
fi
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/test-controller.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ name: AgentTeams Controller Tests
on:
pull_request:
paths:
- 'hiclaw-controller/**'
- 'agentteams-controller/**'
- '.github/workflows/test-controller.yml'
push:
branches: [main]
paths:
- 'hiclaw-controller/**'
- 'agentteams-controller/**'
workflow_dispatch:

jobs:
Expand All @@ -20,13 +20,13 @@ jobs:

- uses: actions/setup-go@v5
with:
go-version-file: hiclaw-controller/go.mod
cache-dependency-path: hiclaw-controller/go.sum
go-version-file: agentteams-controller/go.mod
cache-dependency-path: agentteams-controller/go.sum

- name: Unit tests
working-directory: hiclaw-controller
working-directory: agentteams-controller
run: make test-unit

- name: Integration tests (envtest)
working-directory: hiclaw-controller
working-directory: agentteams-controller
run: make test-integration
12 changes: 6 additions & 6 deletions .github/workflows/test-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
- 'manager/**'
- 'worker/**'
- 'openclaw-base/**'
- 'hiclaw-controller/**'
- 'agentteams-controller/**'
- 'tests/**'
- 'install/**'
- 'shared/**'
Expand All @@ -25,7 +25,7 @@ on:
- 'manager/**'
- 'worker/**'
- 'openclaw-base/**'
- 'hiclaw-controller/**'
- 'agentteams-controller/**'
- 'tests/**'
- 'install/**'
- 'shared/**'
Expand Down Expand Up @@ -127,7 +127,7 @@ jobs:
# Override HIGRESS_REGISTRY to the us-west mirror — the default
# cn-hangzhou registry is unreachable from GitHub-hosted runners
# (frequently times out on `docker pull`).
make build-hiclaw-controller \
make build-agentteams-controller \
HIGRESS_REGISTRY=higress-registry.us-west-1.cr.aliyuncs.com \
DOCKER_BUILD_ARGS="--build-arg APT_MIRROR="

Expand Down Expand Up @@ -279,13 +279,13 @@ jobs:
| grep -v 'agentteams-controller' \
| grep -v 'agentteams-controller' \
| grep -v 'openclaw-base') \
| gzip > /tmp/hiclaw-${{ matrix.target }}.tar.gz
| gzip > /tmp/agentteams-${{ matrix.target }}.tar.gz

- name: Upload image
uses: actions/upload-artifact@v4
with:
name: image-${{ matrix.target }}
path: /tmp/hiclaw-${{ matrix.target }}.tar.gz
path: /tmp/agentteams-${{ matrix.target }}.tar.gz
retention-days: 1

# Step 3: Run test shards in parallel, each on its own runner with isolated cluster
Expand Down Expand Up @@ -679,7 +679,7 @@ jobs:
AGENTTEAMS_INSTALL_MANAGER_IMAGE=agentteams/manager:${VERSION} \
AGENTTEAMS_INSTALL_WORKER_IMAGE=agentteams/worker-agent:${VERSION} \
AGENTTEAMS_INSTALL_CONTROLLER_IMAGE=agentteams/agentteams-controller:${VERSION} \
bash ./install/hiclaw-install.sh manager
bash ./install/agentteams-install.sh manager

- name: Wait for Manager to be ready
run: |
Expand Down
12 changes: 6 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,17 @@ package.json
pnpm-lock.yaml
.cursor/

# Compiled binaries (build outputs of `make build` in hiclaw-controller/);
# Compiled binaries (build outputs of `make build` in agentteams-controller/);
# the multi-stage Dockerfiles build from source, so never commit these.
hiclaw-controller/controller
hiclaw-controller/hiclaw
hiclaw-controller/bin/
agentteams-controller/controller
agentteams-controller/hiclaw
agentteams-controller/bin/

# Build-time agent templates (copied from manager/agent/ during docker build)
hiclaw-controller/agent/
agentteams-controller/agent/

# Helm dependency artifacts
helm/hiclaw/charts/*.tgz
helm/agentteams/charts/*.tgz

# GitNexus
.gitnexus/
22 changes: 11 additions & 11 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@ AgentTeams is an open-source Agent Teams system that uses IM (Matrix protocol) f
## Project Structure

```
hiclaw/
├── hiclaw-controller/ # Kubernetes operator (Go): reconciles Worker, Manager, Team, Human CRDs
AgentTeams/
├── agentteams-controller/ # Kubernetes operator (Go): reconciles Worker, Manager, Team, Human CRDs
├── helm/ # Helm chart (K8s): Higress, Tuwunel, MinIO, controller, Manager CR, defaults
├── manager/ # Manager images: OpenClaw-based (Dockerfile) and CoPaw-based (Dockerfile.copaw)
├── worker/ # OpenClaw Worker image (shared base pattern; runtime also selected at deploy time)
├── copaw/ # CoPaw Python package source (published as e.g. copaw-worker on PyPI)
├── hermes/ # Hermes Python package source (Hermes Matrix worker runtime)
├── openhuman/ # OpenHuman Worker image: Rust core + native Matrix (channel-matrix feature)
├── openclaw-base/ # Base image: Ubuntu + Node.js + bundled agent assets + mcporter
├── shared/lib/ # Shared shell libs copied into images (hiclaw-env.sh, render-skills.sh, …)
├── shared/lib/ # Shared shell libs copied into images (agentteams-env.sh, render-skills.sh, …)
├── install/ # Local install scripts (Docker Compose / embedded “all-in-one” stack)
├── scripts/ # Project-level utilities (e.g. replay-task.sh)
├── tests/ # Automated integration tests
Expand Down Expand Up @@ -56,7 +56,7 @@ Hermes and OpenHuman are **Worker-only** runtimes in the API and Helm worker def

## `manager/agent/` layout (built into Manager images)

Agent-facing Markdown and skills under `manager/agent/` are copied to `/opt/hiclaw/agent/` in the image and synced into the Manager workspace by `upgrade-builtins.sh`. This tree is the single source of truth for builtin prompts and skills.
Agent-facing Markdown and skills under `manager/agent/` are copied to `/opt/agentteams/agent/` in the image and synced into the Manager workspace by `upgrade-builtins.sh`. This tree is the single source of truth for builtin prompts and skills.

```
manager/agent/
Expand Down Expand Up @@ -95,17 +95,17 @@ manager/agent/

### Kubernetes deployment

- [helm/hiclaw/](helm/hiclaw/) — primary Helm chart (`Chart.yaml`, `values.yaml`): matrix, gateway, storage, controller, Manager CR, worker defaults, optional Element Web and CMS hooks
- [helm/agentteams/](helm/agentteams/) — primary Helm chart (`Chart.yaml`, `values.yaml`): matrix, gateway, storage, controller, Manager CR, worker defaults, optional Element Web and CMS hooks

### Controller (operator) development

- [hiclaw-controller/](hiclaw-controller/) — Go operator: CRD definitions under `api/v1beta1/`, reconcilers, `hiclaw` CLI baked into Manager/Worker images
- [agentteams-controller/](agentteams-controller/) — Go operator: CRD definitions under `api/v1beta1/`, reconcilers, `agt` CLI baked into Manager/Worker images

### To build and run

- [Makefile](Makefile) — unified build/test/push/install/replay interface (`make help` for all targets)
- [docs/quickstart.md](docs/quickstart.md) — end-to-end guide from zero to working team
- [install/hiclaw-install.sh](install/hiclaw-install.sh) — local installation script
- [install/agentteams-install.sh](install/agentteams-install.sh) — local installation script
- [scripts/replay-task.sh](scripts/replay-task.sh) — send tasks to Manager via Matrix CLI

### Local full build (from source)
Expand All @@ -120,11 +120,11 @@ make build-openclaw-base

# Step 2: Build manager, worker, copaw-worker using the LOCAL base
make build-manager build-worker build-copaw-worker \
OPENCLAW_BASE_IMAGE=hiclaw/openclaw-base \
OPENCLAW_BASE_IMAGE=agentteams/openclaw-base \
OPENCLAW_BASE_VERSION=latest
```

**Common pitfall**: Running `make build-manager build-worker OPENCLAW_BASE_VERSION=latest` without `OPENCLAW_BASE_IMAGE=hiclaw/openclaw-base` will pull the remote registry's `:latest` tag instead of using the locally-built image. Always set both variables together for local builds.
**Common pitfall**: Running `make build-manager build-worker OPENCLAW_BASE_VERSION=latest` without `OPENCLAW_BASE_IMAGE=agentteams/openclaw-base` will pull the remote registry's `:latest` tag instead of using the locally-built image. Always set both variables together for local builds.

**Proxy support**: If behind an HTTP proxy, pass proxy build args. This covers APT, PIP, NPM and all other network access — no mirror args needed:

Expand Down Expand Up @@ -154,7 +154,7 @@ make build-openclaw-base DOCKER_BUILD_ARGS="--build-arg APT_MIRROR=mirrors.aliyu

### To modify the Manager container

- [manager/Dockerfile](manager/Dockerfile) — OpenClaw-based Manager (from `openclaw-base`; bundles `hiclaw` CLI from controller image)
- [manager/Dockerfile](manager/Dockerfile) — OpenClaw-based Manager (from `openclaw-base`; bundles `agt` CLI from controller image)
- [manager/Dockerfile.copaw](manager/Dockerfile.copaw) — CoPaw-based Manager (Python venv + CoPaw from PyPI; same agent tree and scripts pattern)
- [manager/supervisord.conf](manager/supervisord.conf) — process orchestration (local embedded stack)
- [manager/scripts/init/](manager/scripts/init/) — startup: `start-manager-agent.sh` (runtime + `AGENTTEAMS_RUNTIME`), `upgrade-builtins.sh`, Higress/Matrix bootstrap where applicable
Expand Down Expand Up @@ -228,7 +228,7 @@ In `k8s` / `aliyun` modes, Workers are created via the controller API instead of

## Changelog Policy

Any change that affects the content of a built image — i.e. modifications under `manager/`, `worker/`, `copaw/`, `hermes/`, `openclaw-base/`, or `hiclaw-controller/` — **must** be recorded in [`changelog/current.md`](changelog/current.md) before committing.
Any change that affects the content of a built image — i.e. modifications under `manager/`, `worker/`, `copaw/`, `hermes/`, `openclaw-base/`, or `agentteams-controller/` — **must** be recorded in [`changelog/current.md`](changelog/current.md) before committing.

Format: one bullet per logical change, with a linked commit hash, e.g.:

Expand Down
Loading
Loading