Add queen planning phase, global memory, and refactor hive_coder #4382
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint: | |
| name: Lint Python | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| enable-cache: true | |
| - name: Install dependencies | |
| run: uv sync --project core --group dev | |
| - name: Ruff lint | |
| run: | | |
| uv run --project core ruff check core/ | |
| uv run --project core ruff check tools/ | |
| - name: Ruff format | |
| run: | | |
| uv run --project core ruff format --check core/ | |
| uv run --project core ruff format --check tools/ | |
| test: | |
| name: Test Python Framework | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| enable-cache: true | |
| - name: Install dependencies and run tests | |
| working-directory: core | |
| run: | | |
| uv sync | |
| uv run pytest tests/ -v | |
| test-tools: | |
| name: Test Tools (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| enable-cache: true | |
| - name: Install dependencies and run tests | |
| working-directory: tools | |
| run: | | |
| uv sync --extra dev | |
| uv run pytest tests/ -v | |
| validate: | |
| name: Validate Agent Exports | |
| runs-on: ubuntu-latest | |
| needs: [lint, test, test-tools] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| enable-cache: true | |
| - name: Install dependencies | |
| working-directory: core | |
| run: | | |
| uv sync | |
| - name: Validate exported agents | |
| run: | | |
| # Check that agent exports have valid structure | |
| if [ ! -d "exports" ]; then | |
| echo "No exports/ directory found, skipping validation" | |
| exit 0 | |
| fi | |
| shopt -s nullglob | |
| agent_dirs=(exports/*/) | |
| shopt -u nullglob | |
| if [ ${#agent_dirs[@]} -eq 0 ]; then | |
| echo "No agent directories in exports/, skipping validation" | |
| exit 0 | |
| fi | |
| validated=0 | |
| for agent_dir in "${agent_dirs[@]}"; do | |
| if [ -f "$agent_dir/agent.json" ]; then | |
| echo "Validating $agent_dir" | |
| uv run python -c "import json; json.load(open('$agent_dir/agent.json'))" | |
| validated=$((validated + 1)) | |
| fi | |
| done | |
| if [ "$validated" -eq 0 ]; then | |
| echo "No agent.json files found in exports/, skipping validation" | |
| else | |
| echo "Validated $validated agent(s)" | |
| fi |