diff --git a/.c8rc.json b/.c8rc.json index 8dbc4ea..4347f18 100644 --- a/.c8rc.json +++ b/.c8rc.json @@ -1,7 +1,7 @@ { "all": false, "include": [ - "slack-bridge/security.mjs", + "broker-gateway/security.mjs", "bin/scan-extensions.mjs" ], "exclude": [ diff --git a/.env.schema b/.env.schema index 363d272..9a0680b 100644 --- a/.env.schema +++ b/.env.schema @@ -31,6 +31,10 @@ GEMINI_API_KEY= # @docs(https://opencode.ai) OPENCODE_ZEN_API_KEY= +# Override auto-detected model (e.g. anthropic/claude-haiku for CI) +# @sensitive=false @type=string +BAUDBOT_MODEL= + # ── Slack ──────────────────────────────────────────────────────────────────── # Slack bot OAuth token (required for direct Socket Mode, optional in broker mode) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 7030aa3..ad0b37d 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -115,7 +115,8 @@ jobs: bash bin/ci/droplet.sh run \ "${{ steps.droplet.outputs.DROPLET_IP }}" \ ~/.ssh/ci_key \ - "${{ matrix.setup_script }}" + "${{ matrix.setup_script }}" \ + "CI_ANTHROPIC_API_KEY=${{ secrets.CI_ANTHROPIC_API_KEY }}" - name: Cleanup if: always() diff --git a/.gitignore b/.gitignore index cfcad7a..0bff16e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,9 +2,9 @@ *.key *.pem node_modules/ -# Slack bridge -slack-bridge/node_modules/ -slack-bridge/.env +# Broker gateway +broker-gateway/node_modules/ +broker-gateway/.env .pi/ # Coverage coverage/ diff --git a/AGENTS.md b/AGENTS.md index 57e91ec..95ebd6a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -5,7 +5,7 @@ Baudbot is hardened infrastructure for running always-on AI agents. Use this file for **repo-wide** guidance. For directory-specific rules, use the nearest nested `AGENTS.md`: - [`bin/AGENTS.md`](bin/AGENTS.md) - [`pi/extensions/AGENTS.md`](pi/extensions/AGENTS.md) -- [`slack-bridge/AGENTS.md`](slack-bridge/AGENTS.md) +- [`broker-gateway/AGENTS.md`](broker-gateway/AGENTS.md) ## How Baudbot works @@ -16,7 +16,7 @@ Baudbot is a persistent, team-facing coding agent system. It connects to Slack, ```text Slack ↓ -slack-bridge (broker pull-mode or legacy Socket Mode) +broker-gateway (broker pull-mode or legacy Socket Mode) ↓ control-agent (always-on, manages todo/routing/Slack threads) ├── dev-agent(s) — ephemeral coding workers in isolated worktrees @@ -36,7 +36,7 @@ git commits → PRs → CI feedback → thread updates back to Slack - `dev-agent/` — coding worker persona - `sentry-agent/` — incident triage persona - `pi/settings.json` — pi agent settings -- `slack-bridge/` — Slack integration bridges + security module +- `broker-gateway/` — Slack integration bridges + security module - `docs/` — architecture/operations/security documentation - `test/` — vitest wrappers for shell scripts, integration, and legacy Node tests - `hooks/` — git hooks (security-critical `pre-commit` protecting admin-managed files) diff --git a/bin/ci/droplet.sh b/bin/ci/droplet.sh index d4aa8b2..b12d913 100755 --- a/bin/ci/droplet.sh +++ b/bin/ci/droplet.sh @@ -184,12 +184,20 @@ cmd_wait_ssh() { # ── run