What calls what. Every endpoint the site uses, the pages that call it, and the service behind it — read out of the source, not remembered.
This exists because /map shows pages and nothing showed the plumbing. On 18 July 2026 the hire enquiry form was posting to a Worker that had quietly stopped existing, and four other pages were calling endpoints with no handler at all. None of it was visible anywhere. Regenerated on every build, so it cannot drift from the code.
None. Every endpoint the site calls has a handler.
| endpoint | state | methods | called from | backed by |
|---|---|---|---|---|
| /api/ai | wired | GET POST | /ai/chat, /field/ai, /field/proprioception | Anthropic API, Workers AI |
| /api/ai/spec | no caller | GET | — | — |
| /api/alice/spec | wired | GET OPTIONS | /field/alice-spec | — |
| /api/analytics | wired | GET POST | lib/analytics.ts | — |
| /api/analyze | no caller | POST | — | — |
| /api/ask | wired | OPTIONS POST | /work/connect | databins (stored submissions) |
| /api/calibration | wired | OPTIONS POST | components/CoherenceFeedback.tsx | databins (stored submissions) |
| /api/clarity | no caller | OPTIONS POST | — | Anthropic API, Workers AI |
| /api/clarity-log | wired | OPTIONS POST | /clarity | databins (stored submissions) |
| /api/clarity-study | wired | OPTIONS POST | /clarity/study | databins (stored submissions) |
| /api/icm | no caller | POST | — | — |
| /api/judge | wired | POST | /field/judge, /field/passthru | Anthropic API, Workers AI |
| /api/passthru | wired | POST | /field/passthru | Anthropic API, Workers AI |
| /api/reframe | wired | POST | lib/clarity-generation.ts | — |
| /api/seen | wired | POST | /drift | — |
| /api/send-course-email | no caller | OPTIONS POST | — | databins (stored submissions) |
| /api/stripe-webhook | no caller | POST | — | Stripe webhook signature, databins (stored submissions) |
| /api/studio | no caller | POST | — | — |
| /api/suggest | wired | OPTIONS POST | /survey | databins (stored submissions) |
| host | used by |
|---|---|
| https://databins.degibug.workers.dev | lib/databins.ts |
| https://laserbrain.degibug.workers.dev/signal | /field/knot, /field/skin |
| https://lasertree.degibug.workers.dev/signal | /bonus |
| https://natural-bias.degibug.workers.dev | /natural-bias |
| https://phronesis-drift-scores.degibug.workers.dev | /drift |
| https://phronesis-research-log.degibug.workers.dev/log | lib/research.ts |
| https://phronesis-research-log.degibug.workers.dev/records | lib/research.ts |
| wss://phronesis-open-field.degibug.workers.dev | /field/open-field |
| wss://phronesis-redtooth.degibug.workers.dev | /field/redtooth |
19 endpoints · 0 with no handler · 7 with no caller · 9 external hosts
An endpoint with no caller is not necessarily wrong — a webhook is called by Stripe, not by a page. An endpoint with no handler always is.