"""The single route registry (contract v2, item 6 of the evolution).

This module is the source of truth for the daemon's HTTP route allowlists.
The Go perimeter's maps are GENERATED from these lists by
mac/tools/generate_route_allowlist.py into
mac/connectd/internal/gateway/routes_generated.go; the hand-maintained
copies in proxy.go were deleted when generation landed. Add a route here,
rerun the generator, and rebuild connectd. The parity contract test fails
when the generated file drifts from this registry.

Dynamic path families (prefix-matched routes like /orchestrations/<id>/...)
stay in proxy.go's dynamic*Path functions; this registry covers the exact
match allowlists only.
"""

GET_ROUTES = [
    "/activity",
    "/fleet/digest",
    "/activity-stream",
    "/aperture-cli/launch-contexts",
    "/aperture-cli/providers",
    "/aperture-cli/status",
    "/commands",
    "/commands-stream",
    "/corpus",
    "/device-events",
    "/filesystem/directories",
    "/health",
    "/health-stream",
    "/healthz",
    "/invocations",
    "/invocations-stream",
    "/manifest",
    "/mirror/conflicts",
    "/mirror/projects",
    "/mirror/status",
    "/model-status",
    "/orchestrations",
    "/pairdrop/events",
    "/pairdrop/files",
    "/phone-tools/activity",
    "/personal-context",
    "/pickers/hooks",
    "/pickers/mcp",
    "/pickers/memory",
    "/pickers/permissions",
    "/pickers/resume",
    "/pickers/resume/preview",
    "/postures",
    "/power-state",
    "/provider-status",
    "/provider-controls/snapshot",
    "/provider-controls/stream",
    "/providers/visibility",
    "/push/status",
    "/readyz",
    "/recent-projects",
    "/routez",
    "/safety/events",
    "/safety/status",
    "/search",
    "/sentinel/events",
    "/sentinel/preferences",
    "/sentinel/status",
    "/session-control/v1/events",
    "/session-control/v1/snapshot",
    "/session-events-v2",
    "/session-events-v2-raw",
    "/session-events-v2-content",
    "/session-live-events",
    "/session-meta",
    "/session-runtime-truth",
    "/session-runtime-truth-stream",
    "/session-source-diagnostics",
    "/sessions",
    "/sessions-stream",
    "/sessions-visible",
    "/status",
    "/substrate-feed",
    "/substrate-status",
    "/terminal-stream",
    "/terminal-stream-diagnostics",
    "/terminal-surface",
    "/terminal-surface-stream",
    "/terminal-surface-stream-v2",
    "/terminal-surface-v2",
    "/terminal-workspace",
    "/terminal-workspace-stream",
    "/tokens",
    "/transcript",
    "/transcript-stream",
    "/turn-state-stream",
    "/worker-stats",
    "/workers",
    "/workstate-feed",
]

POST_ROUTES = [
    "/aperture-cli/open",
    "/compose/recordings/sync",
    "/llm-route",
    "/llm-route-stream",
    "/mirror/flush",
    "/mirror/resume",
    "/open",
    "/orchestrations",
    "/pair/bind-node",
    "/pair/psk-activate",
    "/pair/psk-claim-v2",
    "/pair/reauth-challenge",
    "/pair/reauth-claim",
    "/pair/revoke",
    "/pair/rotate-token",
    "/pair/start",
    "/pairdrop/files",
    "/pairdrop/maintenance/cleanup-partials",
    "/pairdrop/uploads",
    "/pairling-tools/run",
    "/phone-tools/availability",
    "/phone-tools/next",
    "/phone-tools/result",
    "/postures",
    "/provider-controls/execute",
    "/providers/visibility",
    "/push/live-activity-test",
    "/push/live-activity-token",
    "/push/permission/allow",
    "/push/permission/deny",
    "/deepfield/observation",
    "/session-control/v1/execute",
    "/session-control/v1/negotiate",
    "/session-control/v1/recover",
    "/sessions/delete-transcript",
    "/sessions/remove",
    "/sessions/race/prepare",
    "/push/preferences",
    "/push/test",
    "/safety/ack",
    "/send-text",
    "/sentinel/evaluate-now",
    "/sentinel/preferences",
    "/sentinel/snooze",
    "/sigint",
    "/sigterm",
    "/spawn-session",
    "/terminal-control",
    "/terminal-input",
    "/upload",
    "/worker-kill",
]
