Skip to content
Daksh Kaul edited this page Sep 8, 2026 · 2 revisions

api.py

System Topology

src/catfish/agents/api.py defines MootAPI, imports MootRunner, FinanceAgent, and Portfolio, binds HTTP routes on a FastAPI app, and serves that app with uvicorn.

Data Mutation Ledger

  • self.last_by_moot[moot_id] = payload on successful POST /v1/moot/run.
  • POST /v1/trades/live and POST /v1/trades/complete mutate portfolio JSON and broker memory through FinanceAgent.

Interface Signatures

Routes

Method Path Handler
GET /health health
POST /v1/moot/run run_moot
GET /v1/moot/last last_moot
GET /v1/trades trades
POST /v1/trades/live confirm_live
POST /v1/trades/complete complete_live
GET /v1/memory memory
GET /v1/portfolio portfolio

MootAPI.confirm_live(self, config=None, trade=Body(...))

  • Inputs: optional config query; trade JSON body.
  • Steps: Builds portfolio/agent for that moot; calls confirm_live; returns event payload.
  • Returns: dict.

MootAPI.complete_live(self, config=None, body=Body(...))

  • Inputs: optional config query; body with position_id and/or trade.
  • Steps: Calls complete_live; returns closed position and portfolio snapshot.
  • Returns: dict.

Clone this wiki locally