Adds tasks.md, scenarios copy, full API contract, Dockerfile.staging with nginx proxy to api-staging container on port 8192. Co-authored-by: Cursor <cursoragent@cursor.com>
73 lines
1.4 KiB
Markdown
73 lines
1.4 KiB
Markdown
# Agent Platform API — Spec 029 (completo)
|
||
|
||
**Prod:** `https://api.ops.ligbox.com.br/api/v1/agents`
|
||
**Staging:** `http://10.10.10.122:8180/api/v1/agents`
|
||
**Desk UI:** módulo `agentic-ops` · staging `:8192`
|
||
|
||
---
|
||
|
||
## GET /health
|
||
|
||
Público. Sem auth.
|
||
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"tier": "t1",
|
||
"ollama": true,
|
||
"ollama_url": "http://10.10.10.123:11434",
|
||
"model": "qwen2.5:7b-instruct",
|
||
"embed_model": "nomic-embed-text"
|
||
}
|
||
```
|
||
|
||
## GET /roster
|
||
|
||
Auth JWT. Lista A0–A7 + Vigia + Curador com acções e aprovação.
|
||
|
||
## GET /inbox
|
||
|
||
Auth JWT. Mensagens `requires_human=1` filtradas por role Desk.
|
||
|
||
## GET /threads · GET /threads/{id}/messages
|
||
|
||
Auth JWT. Conversas agente↔humano.
|
||
|
||
## POST /threads/{id}/reply
|
||
|
||
Body: `{"body": "...", "target_agent": "A6"}`
|
||
|
||
## POST /messages/{id}/ack
|
||
|
||
Arquiva item inbox.
|
||
|
||
## GET /scenarios · GET /findings · GET /action-log
|
||
|
||
Auth JWT. Painel operacional.
|
||
|
||
## POST /findings/{id}/ack
|
||
|
||
Marca finding visto.
|
||
|
||
## POST /runs/{scenario_id}
|
||
|
||
Roles: `super_admin`, `ops_lead`, `agentic_operator`.
|
||
|
||
## POST /chat
|
||
|
||
Body: `{"question": "...", "include_findings": true, "target_agent": "A6"}`
|
||
|
||
Response: `{"answer": "...", "model": "...", "kb_hits": N, "thread_id": 1}`
|
||
|
||
## POST /internal/tick
|
||
|
||
Header: `X-Ops-Internal-Token`. Worker cron 5 min.
|
||
|
||
```json
|
||
{
|
||
"ok": true,
|
||
"kb_indexed": 65,
|
||
"runs": [{"ok": true, "scenario_id": "desk.api.health", "status": "ok", "findings_count": 0}],
|
||
"total": 9
|
||
}
|
||
```
|