Agents over the data
The Investigator: a propose-only agent that assembles the evidence for a hold and streams a draft disposition.
| Method | Path | Scope | Summary |
|---|---|---|---|
POST | /ai/investigator/run | review + read | Run Investigator |
GET | /ai/runs | read | List Runs |
GET | /ai/runs/{run_id} | read | Get Run |
Try it
curl -sf -H "Authorization: Bearer $VIGIL_KEY" "$VIGIL_URL/ai/runs?limit=5"
Routes
POST /ai/investigator/run
Run Investigator. Scope: review + read.
Stream an Investigator run for one enforcement action in the caller's org.
Request body:
{
"action_id": 0
}
| Field | Type | Required | Notes |
|---|---|---|---|
action_id | integer | yes |
Response 200:
"any"
GET /ai/runs
List Runs. Scope: read.
| Parameter | In | Required | Type | Notes |
|---|---|---|---|---|
limit | query | no | integer |
Response 200:
[
{
"id": 0,
"agent": "string",
"input": {},
"status": "string",
"tokens_in": 0,
"tokens_out": 0,
"cost_usd": 0,
"output_text": "string | null",
"started_at": "string",
"finished_at": "string | null",
"proposals": [
{
"id": 0,
"run_id": 0,
"action_id": 0,
"kind": "string",
"body": {},
"status": "string",
"created_at": "string"
}
]
}
]
GET /ai/runs/{run_id}
Get Run. Scope: read.
| Parameter | In | Required | Type | Notes |
|---|---|---|---|---|
run_id | path | yes | integer |
Response 200:
{
"id": 0,
"agent": "string",
"input": {},
"status": "string",
"tokens_in": 0,
"tokens_out": 0,
"cost_usd": 0,
"output_text": "string | null",
"started_at": "string",
"finished_at": "string | null",
"proposals": [
{
"id": 0,
"run_id": 0,
"action_id": 0,
"kind": "string",
"body": {},
"status": "string",
"created_at": "string"
}
]
}
Generated from openapi.json (VIGIL 0.2.0). Scopes follow the router dependencies in VIGIL_SPEC.md section 4.2.