adapters
FreeSkill for the Adapters area of paddock. 108 symbols across 22 files.
The English summary is being prepared. Showing the original description.
Interact with Paddock — AI agent orchestration dashboard. Use when registering agents, managing tasks, syncing skills, or querying agent/task status via Paddock APIs.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Paddock is an AI agent orchestration dashboard with real-time SSE/WebSocket, a skill registry, framework adapters, and RBAC. This skill teaches agents how to interact with Paddock APIs programmatically.
Base URL: http://localhost:3000 (default Next.js dev) or your deployed host.
Auth header: x-api-key: <your-api-key>
Register + heartbeat in two calls:
# 1. Register
curl -X POST http://localhost:3000/api/adapters \
-H "Content-Type: application/json" \
-H "x-api-key: $MC_API_KEY" \
-d '{
"framework": "generic",
"action": "register",
"payload": { "agentId": "my-agent-01", "name": "My Agent" }
}'
# 2. Heartbeat (repeat every 5 minutes)
curl -X POST http://localhost:3000/api/adapters \
-H "Content-Type: application/json" \
-H "x-api-key: $MC_API_KEY" \
-d '{
"framework": "generic",
"action": "heartbeat",
"payload": { "agentId": "my-agent-01", "status": "online" }
}'
Paddock supports two auth methods:
| Method | Header | Use Case |
|---|---|---|
| API Key | x-api-key: <key> or Authorization: Bearer <key> | Agents, scripts, CI/CD |
| Session cookie | Cookie: __Host-mc-session=<token> (HTTPS) or mc-session=<token> (HTTP) | Browser UI |
Roles (hierarchical): viewer < operator < admin
API key auth grants admin role by default. The key is set via API_KEY env var or the security.api_key DB setting.
Agents can identify themselves with the optional X-Agent-Name header for attribution in audit logs.
register → heartbeat (5m interval) → fetch assignments → report task status → disconnect
All lifecycle actions go through the adapter protocol (POST /api/adapters).
{
"framework": "generic",
"action": "register",
"payload": {
"agentId": "my-agent-01",
"name": "My Agent",
"metadata": { "version": "1.0", "capabilities": ["code", "review"] }
}
}
Send every ~5 minutes to stay marked as online.
{
"framework": "generic",
"action": "heartbeat",
"payload": {
"agentId": "my-agent-01",
"status": "online",
"metrics": { "tasks_completed": 5, "uptime_seconds": 3600 }
}
}
Returns up to 5 pending tasks sorted by priority (critical → low), then due date.
{
"framework": "generic",
"action": "assignments",
"payload": { "agentId": "my-agent-01" }
}
Response:
{
"assignments": [
{ "taskId": "42", "description": "Fix login bug\nUsers cannot log in with SSO", "priority": 1 }
],
"framework": "generic"
}
{
"framework": "generic",
"action": "report",
"payload": {
"taskId": "42",
"agentId": "my-agent-01",
"progress": 75,
"status": "in_progress",
"output": "Fixed SSO handler, running tests..."
}
}
status values: in_progress, done, failed, blocked
{
"framework": "generic",
"action": "disconnect",
"payload": { "agentId": "my-agent-01" }
}
/api/agents| Method | Min Role | Description |
|---|---|---|
| GET | viewer | List agents. Query: ?status=online&role=dev&limit=50&offset=0 |
| POST | operator | Create agent. Body: { name, role, status?, config?, template?, session_key?, soul_content? } |
| PUT | operator | Update agent. Body: { name, status?, role?, config?, session_key?, soul_content?, last_activity? } |
GET response shape:
{
"agents": [{
"id": 1, "name": "scout", "role": "researcher", "status": "online",
"config": {}, "taskStats": { "total": 10, "assigned": 2, "in_progress": 1, "completed": 7 }
}],
"total": 1, "page": 1, "limit": 50
}
/api/tasks| Method | Min Role | Description |
|---|---|---|
| GET | viewer | List tasks. Query: ?status=in_progress&assigned_to=scout&priority=high&project_id=1&limit=50&offset=0 |
| POST | operator | Create task. Body: { title, description?, status?, priority?, assigned_to?, project_id?, tags?, metadata?, due_date?, estimated_hours? } |
| PUT | operator | Bulk status update. Body: { tasks: [{ id, status }] } |
Priority values: critical, high, medium, low
Status values: backlog, inbox, assigned, awaiting_owner,
in_progress, review, quality_review, ready_for_owner, done,
failed
Note: Moving a task to done via PUT requires an Aegis quality review approval.
POST response:
{
"task": {
"id": 42, "title": "Fix login bug", "status": "assigned",
"priority": "high", "assigned_to": "scout", "ticket_ref": "GEN-001",
"tags": ["bug"], "metadata": {}
}
}
/api/skills| Method | Min Role | Description |
|---|---|---|
| GET | viewer | List all skills across roots |
GET ?mode=content&source=...&name=... | viewer | Read a skill's SKILL.md content |
GET ?mode=check&source=...&name=... | viewer | Run security check on a skill |
| POST | operator | Create/upsert skill. Body: { source, name, content } |
| PUT | operator | Update skill content. Body: { source, name, content } |
DELETE ?source=...&name=... | operator | Delete a skill |
Skill sources: user-agents, user-codex, project-agents, project-codex, openclaw
/api/status| Action | Min Role | Description |
|---|---|---|
GET ?action=overview | viewer | System status (uptime, memory, disk, sessions) |
GET ?action=dashboard | viewer | Aggregated dashboard data with DB stats |
GET ?action=gateway | viewer | Gateway process status and port check |
GET ?action=models | viewer | Available AI models (catalog + local Ollama) |
GET ?action=health | viewer | Health checks (gateway, disk, memory) |
GET ?action=capabilities | viewer | Feature flags: gateway reachable, Claude home, subscriptions |
/api/adapters| Method | Min Role | Description |
|---|---|---|
| GET | viewer | List available framework adapter names |
| POST | operator | Execute adapter action (see Agent Lifecycle above) |
All agent lifecycle operations use a single endpoint:
POST /api/adapters
Content-Type: application/json
x-api-key: <key>
{
"framework": "<adapter-name>",
"action": "<action>",
"payload": { ... }
}
Available frameworks: generic, openclaw, crewai, langgraph, autogen, claude-sdk
Available actions: register, heartbeat, report, assignments, disconnect
All adapters implement the same FrameworkAdapter interface — choose the one matching your agent framework, or use generic as a universal fallback.
Payload shapes by action:
| Action | Required Fields | Optional Fields |
|---|---|---|
register | agentId, name | metadata |
heartbeat | agentId | status, metrics |
report | taskId, agentId | progress, status, output |
assignments | agentId | — |
disconnect | agentId | — |
| Variable | Default | Description |
|---|---|---|
API_KEY | — | API key for agent/script authentication |
OPENCLAW_GATEWAY_HOST | 127.0.0.1 | Gateway host address |
OPENCLAW_GATEWAY_PORT | 18789 | Gateway port |
OPENCLAW_STATE_DIR | ~/.openclaw | OpenClaw state directory |
OPENCLAW_CONFIG_PATH | <state-dir>/openclaw.json | Gateway config file path |
MC_CLAUDE_HOME | ~/.claude | Claude home directory |
Paddock broadcasts events via SSE (/api/events) and WebSocket. Key event types:
agent.created, agent.updated, agent.status_changedtask.created, task.updated, task.status_changedSubscribe to SSE for live dashboard updates when building integrations.
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Skill for the Adapters area of paddock. 108 symbols across 22 files.
The English summary is being prepared. Showing the original description.
Skill for the Chat area of paddock. 62 symbols across 10 files.
The English summary is being prepared. Showing the original description.
Skill for the Dashboard area of paddock. 80 symbols across 16 files.
The English summary is being prepared. Showing the original description.
Skill for the Github area of paddock. 23 symbols across 5 files.
The English summary is being prepared. Showing the original description.
Use when the user needs to run GitNexus CLI commands like analyze/index a repo, check status, clean the index, generate a wiki, or list indexed repos. Examples: "Index this repo", "Reanalyze the codebase", "Generate a wiki"
The English summary is being prepared. Showing the original description.
Use when the user is debugging a bug, tracing an error, or asking why something fails. Examples: "Why is X failing?", "Where does this error come from?", "Trace this bug"
The English summary is being prepared. Showing the original description.