Several router pods:
- incoming call and message webhooks are forwarded to a pod with a worker
for that customer; forwarded hooks are verified again, handled once
- hosted tools and a session's text reach a worker on any pod (node.Workers)
- simulation runs are leased, so a booting pod only writes off runs whose
holder stopped renewing; a cancel reaching any pod stops the run
Also in this change, from parallel work:
- /v1/detection: object detection via Moondream, Roboflow and Ultralytics
- /v1/agents/calls/reviews/analysis and /v1/stats/agents
- skills as folders: SKILL.md plus reference files and scripts
- Moondream 3 as an LLM, the security_camera video example
- regenerated SDK clients
Co-authored-by: Cursor <cursoragent@cursor.com>