Allow independently deployed engines to report into Evotown without depending on Evotown as their runtime.
The v0.1 ingest API defines the first contract:
POST /api/v1/engines/registerGET /api/v1/enginesPOST /api/v1/eventsforrun.started,run.progress,run.completedPOST /api/v1/runs/{run_id}/eventsPOST /api/v1/runs/{run_id}/completeGET /api/v1/runsGET /api/v1/runs/{run_id}GET /api/v1/runs/{run_id}/events- optional artifact upload
- optional run lease
See:
MVP implementation notes:
- Mutating endpoints use bearer auth.
- Token source is
EVOTOWN_ENGINE_INGEST_TOKEN, falling back toADMIN_TOKENfor local development. - External ingest data is stored in
engine_ingest.dbunderEVOTOWN_DATA_DIR. - Unknown engines are rejected during run completion and lifecycle event ingest; register first.
The external runtime reports lifecycle events or completed runs. run.started / run.progress / run.completed are the preferred shape for live enterprise dashboards, while /runs/{run_id}/complete remains the lowest-friction terminal compatibility path.
A small process runs near the employee workspace.
Responsibilities:
- detect local agent runs
- upload run events and artifacts
- pull policies
- redact secrets before upload
- propose reusable assets
Evotown may integrate with model gateways for routing, cost, and audit, but gateway mode must not be required.
GET /api/v1/policies
POST /api/v1/policy/violations
Event types:
run.startedrun.progressrun.completedstep_startedtool_callmodel_callartifact_writtenpolicy_violationrun_finished
POST /api/v1/assets/propose
GET /api/v1/assets
POST /api/v1/assets/{asset_id}/review
GET /api/v1/assets/recommend
POST /api/v1/evaluations
GET /api/v1/evaluations/{evaluation_id}
POST /api/v1/assets/{asset_id}/promote
POST /api/v1/assets/{asset_id}/deprecate