arborist-viz/arborist_viz/routes.py
russell@unturf.com 0cd96ab1d7
Initial commit: arborist VIZ — Merkle command center
Pyramid web app for inspecting arborist Merkle trees over sharded SQLite:
document roots, inclusion proofs, an interactive 3D Merkle lattice
(six.js / WebGL with graceful fallback), audit-chain linkage, and a live
SSE event stream.

Generated artifacts (env/, vendored static/six/ bundles, demo databases)
are gitignored and rebuilt via the Makefile (venv, six, init-db, serve).
2026-05-28 09:22:59 -04:00

62 lines
2.7 KiB
Python

"""Route declarations — ticket §13 (with WS→SSE translation per §3-corrected)."""
def includeme(config):
# static + meta
config.add_static_view("static", "static", cache_max_age=3600)
config.add_route("favicon", "/favicon.ico")
config.add_route("robots", "/robots.txt")
config.add_route("version", "/version")
config.add_route("home", "/")
config.add_route("dashboard_page", "/dashboard/{dashboard_id}")
config.add_route("proof_page", "/proof/{root_hash}")
config.add_route("audit_page", "/audit/{event_hash}")
# dashboards (saved layout metadata)
config.add_route("api_dashboards", "/api/dashboards")
config.add_route("api_dashboard", "/api/dashboards/{dashboard_id}")
# roots
config.add_route("api_roots", "/api/roots")
config.add_route("api_root", "/api/root/{root_hash}")
config.add_route("api_root_leaves", "/api/root/{root_hash}/leaves")
config.add_route("api_lattice", "/api/lattice/{root_hash}")
# hash resolver — drop-a-hash dispatcher
config.add_route("api_resolve", "/api/resolve/{hex_hash}")
# proofs
config.add_route("api_proof", "/api/proof/{root_hash}/{leaf_index}")
# claims + graveyard
config.add_route("api_claim", "/api/claim/{claim_id}")
config.add_route("api_claim_neighborhood", "/api/claim/{claim_id}/neighborhood")
config.add_route("api_graveyard_entry", "/api/graveyard/{claim_hash}")
# audit
config.add_route("api_audit_recent", "/api/audit/recent")
config.add_route("api_audit_by_root", "/api/audit/by-root/{root_hash}")
config.add_route("api_audit_event", "/api/audit/{event_hash}")
config.add_route("api_audit_chain", "/api/audit/chain/{event_hash}")
# run / cache / fork
config.add_route("api_run", "/api/run/{run_id}")
config.add_route("api_cache", "/api/cache/{cache_key}")
config.add_route("api_fork", "/api/fork/{fork_id}")
# traces (gated on arborist #000062 producing MechanisticWitnessRoot;
# Phase 0 returns 501 Not Implemented).
config.add_route("api_trace", "/api/trace/{trace_id}")
config.add_route("api_circuit", "/api/circuit/{circuit_id}")
# diff + snapshot
config.add_route("api_diff", "/api/diff/{root_a}/{root_b}")
config.add_route("api_graph_snapshot", "/api/graph/snapshot")
# SSE — §3-corrected replaces WS routes with text/event-stream.
config.add_route("sse_audit_live", "/sse/audit/live")
config.add_route("sse_run", "/sse/run/{run_id}")
config.add_route("sse_root", "/sse/root/{root_hash}")
config.add_route("sse_claim", "/sse/claim/{claim_id}")
config.add_route("sse_dashboard", "/sse/dashboard/{dashboard_id}")
config.add_route("sse_mesh_live", "/sse/mesh/live")