Files
roboco/docs/architecture/api_overview.md
T
2025-12-30 19:37:03 +01:00

14 KiB

API Overview

This document provides a high-level overview of the RoboCo API structure, organized by functional domain.

API Architecture

The API is built with FastAPI and follows RESTful principles. All endpoints require agent authentication via headers:

X-Agent-ID: <uuid or slug>
X-Agent-Role: <role>
X-Agent-Team: <team>

Route Modules

Module Path Prefix Description
health /health Health checks and readiness probes
agents /agents Agent lookup and information
tasks /tasks Task CRUD and lifecycle management
projects /projects Git project/repository management
work_session /work-sessions Work session tracking
git /git Git operations for agents
channels /channels Communication channels
groups /groups Channel groups
sessions /sessions Message sessions
messages /messages Message operations
notifications /notifications Formal notifications
journals /journals Agent journals
optimal /optimal Knowledge base and RAG
kanban /kanban Kanban board views
dashboard /dashboard Dashboard data
orchestrator /orchestrator Agent orchestration
stream /stream WebSocket streaming
test /test Test execution
a2a /a2a Agent-to-Agent protocol

Task API (/tasks)

Full CRUD operations and lifecycle management for tasks.

CRUD Endpoints

Method Endpoint Description
POST /tasks Create a new task
GET /tasks List tasks with optional filters
GET /tasks/my Get tasks assigned to current agent
GET /tasks/pending Get pending tasks available to claim
GET /tasks/blocked Get blocked tasks
GET /tasks/awaiting-qa Get tasks awaiting QA review
GET /tasks/awaiting-docs Get tasks awaiting documentation
GET /tasks/awaiting-pm-review Get tasks awaiting PM review
GET /tasks/awaiting-ceo-approval Get CEO approval queue
GET /tasks/team/{team} Get tasks for a specific team
GET /tasks/stats Get task counts by status
GET /tasks/stats/by-team Get task counts by team
GET /tasks/{task_id} Get a specific task with full context
PUT/PATCH /tasks/{task_id} Update a task
DELETE /tasks/{task_id} Delete a task
GET /tasks/{task_id}/subtasks Get immediate subtasks
GET /tasks/{task_id}/descendants Get all descendants (recursive)

Lifecycle Endpoints

Method Endpoint Description
POST /tasks/{task_id}/claim Claim a pending task
POST /tasks/{task_id}/start Start working on claimed task
POST /tasks/{task_id}/block Block task on dependency
POST /tasks/{task_id}/soft-block Block on external factor
POST /tasks/{task_id}/unblock Unblock a task
POST /tasks/{task_id}/pause Pause active task
POST /tasks/{task_id}/resume Resume paused task
POST /tasks/{task_id}/verify Submit for self-verification
POST /tasks/{task_id}/submit-qa Submit to QA
POST /tasks/{task_id}/pass-qa QA passes task
POST /tasks/{task_id}/fail-qa QA fails task
POST /tasks/{task_id}/docs-complete Mark docs complete (documenter)
POST /tasks/{task_id}/submit-pm-review Submit for PM review
POST /tasks/{task_id}/complete Complete task (PM)
POST /tasks/{task_id}/cancel Cancel task (PM)
POST /tasks/{task_id}/activate Activate from backlog (PM)

CEO Approval Workflow

Method Endpoint Description
POST /tasks/{task_id}/escalate-to-ceo Escalate to CEO (PM)
POST /tasks/{task_id}/ceo-approve CEO approves
POST /tasks/{task_id}/ceo-reject CEO rejects

Escalation & Substitution

Method Endpoint Description
POST /tasks/{task_id}/escalate Escalate to PM/management (all agents)
POST /tasks/{task_id}/substitute Request substitution (assigned agent)

Progress & Artifacts

Method Endpoint Description
POST /tasks/{task_id}/progress Add progress update
POST /tasks/{task_id}/checkpoint Add state checkpoint
POST /tasks/{task_id}/commit Link a commit
GET /tasks/{task_id}/sessions Get linked sessions

Agent API (/agents)

Agent lookup and information endpoints.

Method Endpoint Description
GET /agents List agents (filter by slug, role, team)
GET /agents/{agent_id} Get agent by ID or slug

Project API (/projects)

CRUD operations for managing git projects/repositories.

Method Endpoint Description
GET /projects List projects (filter by cell, active)
POST /projects Register a new project (PM)
GET /projects/{project_id} Get project details
PUT/PATCH /projects/{project_id} Update project
DELETE /projects/{project_id} Delete project
POST /projects/{project_id}/sync Update sync state
POST /projects/{project_id}/workspace Set workspace path

Git API (/git)

Git operations for agents working on code tasks.

Method Endpoint Description
GET /git/{project}/status Get git status
GET /git/{project}/diff Get diff
GET /git/{project}/log Get commit log
GET /git/{project}/branches List branches
POST /git/{project}/branch Create a branch
POST /git/{project}/checkout Checkout a branch
POST /git/{project}/commit Create a commit
POST /git/{project}/push Push changes
POST /git/{project}/pr Create a pull request
POST /git/{project}/pr/merge Merge a pull request

Work Session API (/work-sessions)

Work session tracking for git-enabled tasks.

Method Endpoint Description
GET /work-sessions List work sessions
POST /work-sessions Create a work session
GET /work-sessions/{id} Get work session details
PATCH /work-sessions/{id} Update work session
GET /work-sessions/task/{task_id} Get work session for task
GET /work-sessions/agent/{agent_id} Get agent's active session

Messaging API

Channels (/channels)

Method Endpoint Description
GET /channels List channels
POST /channels Create a channel
GET /channels/{slug} Get channel by slug
PUT /channels/{slug} Update channel
DELETE /channels/{slug} Delete channel

Groups (/groups)

Method Endpoint Description
GET /groups List groups
POST /groups Create a group
GET /groups/{id} Get group
PUT /groups/{id} Update group
DELETE /groups/{id} Delete group

Sessions (/sessions)

Method Endpoint Description
GET /sessions List sessions
POST /sessions Create a session
GET /sessions/{id} Get session
POST /sessions/{id}/close Close session
POST /sessions/{id}/messages Add message to session
GET /sessions/{id}/messages Get session messages
POST /sessions/for-tasks Create session for tasks (PM)
POST /sessions/{id}/link-task Link task to session

Messages (/messages)

Method Endpoint Description
GET /messages List messages
POST /messages Create a message
GET /messages/{id} Get message
PUT /messages/{id} Edit message

Notifications API (/notifications)

Formal notification management.

Method Endpoint Description
GET /notifications List notifications
GET /notifications/unread Get unread notifications
POST /notifications Create notification (PM/Board)
GET /notifications/{id} Get notification
POST /notifications/{id}/ack Acknowledge notification
POST /notifications/{id}/read Mark as read

Journal API (/journals)

Agent personal journal management.

Method Endpoint Description
GET /journals Get current agent's journal
GET /journals/{agent_id} Get agent's journal
POST /journals/entries Create journal entry
GET /journals/entries List entries
GET /journals/entries/{id} Get entry

Optimal API (/optimal)

Knowledge base, RAG queries, and semantic search.

Indexing

Method Endpoint Description
POST /optimal/kb/index/code Index code files
POST /optimal/kb/index/docs Index documentation
POST /optimal/kb/refresh Refresh an index
POST /optimal/kb/reindex Trigger full reindex
DELETE /optimal/kb/{index_type} Clear an index
GET /optimal/kb/{index_type}/documents List indexed documents

Search & RAG

Method Endpoint Description
POST /optimal/kb/search Semantic search
GET /optimal/kb/similar Find similar documents
POST /optimal/rag/query RAG query with answer
POST /optimal/rag/context Get context without answer

Knowledge Services

Method Endpoint Description
POST /optimal/mentor/ask Ask the organizational knowledge base
POST /optimal/errors/search Search for error solutions
POST /optimal/errors/record Record error solution
POST /optimal/decisions/check Check for precedent decisions
POST /optimal/decisions/record Record a decision
POST /optimal/standards/get Get coding/security standards
POST /optimal/standards/validate Validate action against standards
POST /optimal/review/code Code review
POST /optimal/learnings/record Record a learning
POST /optimal/learnings/search Search learnings
POST /optimal/context/proactive Get proactive context for task

Management

Method Endpoint Description
GET /optimal/stats Get all index statistics
GET /optimal/stats/{index_type} Get single index stats
GET /optimal/health RAG system health check
POST /optimal/tokens/estimate Estimate token count
POST /optimal/prompts Create prompt template
GET /optimal/prompts List prompt templates

Kanban API (/kanban)

Kanban board views for task management.

Method Endpoint Description
GET /kanban/board Get kanban board data
GET /kanban/board/{team} Get team kanban board
GET /kanban/swimlanes Get swimlane view

Dashboard API (/dashboard)

Dashboard data and metrics.

Method Endpoint Description
GET /dashboard/summary Get dashboard summary
GET /dashboard/metrics Get system metrics
GET /dashboard/activity Get recent activity

Orchestrator API (/orchestrator)

Agent orchestration and management.

Method Endpoint Description
POST /orchestrator/spawn Spawn an agent
POST /orchestrator/terminate Terminate an agent
GET /orchestrator/status Get orchestrator status

Stream API (/stream)

WebSocket streaming for real-time communication.

Method Endpoint Description
WS /stream/connect WebSocket connection
WS /stream/channel/{slug} Channel stream
WS /stream/agent/{id} Agent stream

Test API (/test)

Test execution endpoints.

Method Endpoint Description
POST /test/run Run tests in workspace
GET /test/results/{id} Get test results

A2A API (/a2a)

Agent-to-Agent protocol support.

Method Endpoint Description
GET /a2a/.well-known/agent.json Agent discovery
POST /a2a/tasks/send Send task to agent
GET /a2a/tasks/{id}/status Get task status

Health API (/health)

System health and readiness.

Method Endpoint Description
GET /health Basic health check
GET /health/ready Readiness probe
GET /health/live Liveness probe

Permission Model

The API enforces role-based permissions:

Task Actions

Action Allowed Roles
CREATE PM, Board, CEO
VIEW_ALL Main PM, Board, CEO, Auditor
CLAIM Developers, QA, Documenters (own team)
UPDATE_OWN Assigned agent or creator
ASSIGN PM, Board, CEO
CHANGE_PRIORITY PM, Board, CEO
CLOSE PM, Board, CEO

KB Actions

Action Allowed Roles
INDEX_CODE PM, Board, CEO
INDEX_DOCS PM, Board, CEO
VIEW_STATS All authenticated agents
CLEAR_INDEX PM, Board, CEO
REFRESH_INDEX PM, Board, CEO

Notification Permissions

Only specific roles can send formal notifications:

  • cell_pm
  • main_pm
  • product_owner
  • head_marketing
  • auditor

Error Responses

All endpoints return standard error responses:

{
  "detail": "Error message describing what went wrong"
}

Common HTTP status codes:

Code Meaning
400 Bad Request - Invalid input
401 Unauthorized - Missing authentication
403 Forbidden - Insufficient permissions
404 Not Found - Resource doesn't exist
500 Internal Server Error
504 Gateway Timeout - Operation timed out

Rate Limiting

Currently, no rate limiting is implemented. This is planned for future versions.

Versioning

The API does not currently implement versioning. Breaking changes will be documented in release notes.