recursive-agent 0.6.0

A minimal, orthogonal, self-improving coding agent kernel in Rust
Documentation
version: "1"

project:
  name: recursive-agent
  description: "Recursive Agent E2E Integration Tests"
  version: "0.6.0"

plugins:
  - ./plugins/dist/index.js

service:
  build:
    dockerfile: Dockerfile
    context: ..
    image: recursive:e2e
  container:
    name: recursive-e2e
    ports:
      - "8080:8080"
    environment:
      RECURSIVE_API_BASE: http://aimock:4010/v1
      RECURSIVE_API_KEY: mock-key
      RECURSIVE_MODEL: mock-chat
      RUST_LOG: info
      RECURSIVE_RATE_LIMIT_BURST: "200"
      RECURSIVE_RATE_LIMIT_RPM: "6000"

mocks:
  aimock:
    image: ghcr.io/copilotkit/aimock
    port: 4010
    volumes:
      - "./fixtures:/fixtures"
    args: "-f /fixtures -h 0.0.0.0"

tests:
  suites:
    - name: "Smoke Gate (self-improve)"
      id: smoke
      file: tests/00-smoke.yaml

    - name: "Basic Agent Tools"
      id: basic
      file: tests/01-basic-tools.yaml

    - name: "Session Persistence"
      id: session
      file: tests/02-session-persistence.yaml

    - name: "Memory Scratchpad"
      id: memory
      file: tests/03-memory-scratchpad.yaml

    - name: "Cost Tracking"
      id: cost
      file: tests/04-cost-tracking.yaml

    - name: "Sessions Export CLI"
      id: export
      file: tests/05-sessions-export.yaml

    - name: "Live LLM Integration"
      id: live
      file: tests/06-live-integration.yaml

    - name: "LLM-as-Judge"
      id: judge
      file: tests/07-llm-judge.yaml

    - name: "HTTP API Server (AgentRuntime)"
      id: http-api
      file: tests/08-http-api.yaml

    - name: "HTTP API Rate Limit"
      id: http-rate-limit
      file: tests/08b-http-rate-limit.yaml

    - name: "REPL Mode (multi-turn interactive)"
      id: repl
      file: tests/09-repl-mode.yaml

    - name: "Loop Mode (agent self-scheduling)"
      id: loop
      file: tests/10-loop-mode.yaml

    - name: "Session Resume"
      id: resume
      file: tests/11-session-resume.yaml

    - name: "Hooks Lifecycle"
      id: hooks
      file: tests/12-hooks.yaml

    - name: "apply_patch Tool"
      id: apply-patch
      file: tests/13-apply-patch.yaml

    - name: "MCP Stdio Server"
      id: mcp-serve
      file: tests/14-mcp-serve.yaml

    - name: "search_files Tool"
      id: search-files
      file: tests/15-search-files.yaml

    - name: "Skill Lazy Load"
      id: skill-lazy-load
      file: tests/16-skill-lazy-load.yaml

    - name: "Loop Mode — schedule_wakeup multi-turn"
      id: loop-schedule
      file: tests/17-loop-mode.yaml

    - name: "Goal Loop API (Goal-168)"
      id: goal-loop
      file: tests/18-goal-loop.yaml

    - name: "HTTP Interrupt endpoint (Goal-170)"
      id: http-interrupt
      file: tests/19-http-interrupt.yaml

    - name: "Python SDK smoke test"
      id: python-sdk
      file: tests/20-python-sdk.yaml

    - name: "TypeScript SDK smoke test"
      id: typescript-sdk
      file: tests/21-typescript-sdk.yaml

    - name: "Context compaction multi-turn"
      id: compaction
      file: tests/22-compaction.yaml