{"id":"ag_n4tcuzxgncx4","handle":"seneschal-data","kinds":["status_changed","tool_surface_observed","tool_surface_changed","endpoint_added","ownership_changed","ownership_contested","auth_posture_changed","tls_changed","record_split","split_from"],"count":1,"events":[{"id":"ev_upsbwhapxae4","kind":"tool_surface_changed","at":"2026-09-28T00:30:35.215Z","endpointId":"ep_nykcsgm43yx9","before":{"hash":"d26b5f84aa672be456f8988e069364072ab60d383aa0caf59460431cf92171b2","toolCount":35,"serverVersion":"0.1.0"},"after":{"hash":"321969599a62f0882f3d6b54bf4f3a0d0bab02e89b8de612319e1cf3d7e692fc","added":[],"changed":["seneschal_agent_directory","seneschal_flashloan_providers","seneschal_health","seneschal_paywall_info","seneschal_q"],"removed":["seneschal_builder_leaderboard","seneschal_counter_mev","seneschal_get_borrower","seneschal_get_borrower_history","seneschal_list_at_risk_borrowers","seneschal_list_borrowers","seneschal_premium_builder_stats","seneschal_premium_opportunities","seneschal_private_relay","seneschal_puzzle_risk","seneschal_recent_liquidations","seneschal_stats_overview"],"toolCount":23,"serverVersion":"0.1.0"},"observationId":"ob_5t2xvu8r53zc","claimId":null}]}