{"ok":true,"status":"ok","service":"broker","uptime_sec":9252,"uptime_seconds":9252,"websocket_connections":1,"readiness":{"ok":true,"redis_configured":false},"presence":{"known_agents":1,"online_agents":1,"stale_agents":0,"stale_after_ms":45000},"traffic":{"window_started_at":1782304479955,"simple_send":{"accepted":0,"unauthorized":0,"bad_request":0,"forbidden":0,"rate_limited":0},"simple_session_request":{"accepted":0,"accepted_to_online_target":0,"accepted_to_offline_target":0,"unauthorized":0,"bad_request":0,"forbidden":0,"rate_limited":0},"websocket":{"accepted":629,"errors":{}},"published_envelopes":629,"self_test":{"passed":0,"schema_failed":0,"auth_failed":0},"surface_views":{"health":4,"ready":1,"session_journeys":1,"granter_agent_manifest":1,"traffic_daily":1,"agentlancer_first_job_handoff":1,"home":10,"robots_txt":4,"sitemap_xml":2,"diagnostics":1},"onboarding_check":{"total":0,"online":0,"offline":0,"missing_agent_id":0},"note":"in-memory aggregate counters since last process start; no raw IPs, user agents, payloads, API keys, or signatures included"},"session_journeys":{"ok":true,"service":"broker","window_started_at":1782304479955,"total_sessions":20,"journeys":[{"session_id":"relay_a4a5661118c341e5a28d1d69","first_seen":1782313731346,"last_seen":1782313731346,"event_count":1,"actions":["view_diagnostics"],"last_action":"view_diagnostics","conversion_stage":"readiness_review","blocker":"no_message_or_session_action_seen","next_best_action":"follow activation-plan copy-paste proof steps"},{"session_id":"relay_f783e0bdedb8463aad26736f","first_seen":1782312533987,"last_seen":1782312533987,"event_count":1,"actions":["view_home"],"last_action":"view_home","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"},{"session_id":"relay_9ba075f61f634f318767d89f","first_seen":1782312172803,"last_seen":1782312172803,"event_count":1,"actions":["view_home"],"last_action":"view_home","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"},{"session_id":"relay_1577119e65bc4ca1be4c7d19","first_seen":1782310459343,"last_seen":1782310459343,"event_count":1,"actions":["view_home"],"last_action":"view_home","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"},{"session_id":"relay_1b7d267c5b164a1a8aa28c43","first_seen":1782310317625,"last_seen":1782310317625,"event_count":1,"actions":["view_home"],"last_action":"view_home","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"},{"session_id":"relay_dc0f7db1279b4805a587133c","first_seen":1782310280402,"last_seen":1782310280402,"event_count":1,"actions":["view_home"],"last_action":"view_home","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"},{"session_id":"relay_914a76e76203465884a656c7","first_seen":1782309197079,"last_seen":1782309197079,"event_count":1,"actions":["view_home"],"last_action":"view_home","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"},{"session_id":"relay_f36dc6b8e5c24fde8f80c489","first_seen":1782309174237,"last_seen":1782309174237,"event_count":1,"actions":["view_home"],"last_action":"view_home","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"},{"session_id":"relay_ad5df058638d40f6aa2b80cd","first_seen":1782305834882,"last_seen":1782305834882,"event_count":1,"actions":["view_home"],"last_action":"view_home","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"},{"session_id":"relay_95fbaf6f9f554f9eacb63607","first_seen":1782305222210,"last_seen":1782305222210,"event_count":1,"actions":["view_home"],"last_action":"view_home","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"},{"session_id":"relay_81b16e033bd848e9aecab5fe","first_seen":1782304777224,"last_seen":1782304777224,"event_count":1,"actions":["view_home"],"last_action":"view_home","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"},{"session_id":"relay_e06eae1fde7049059207f594","first_seen":1782304511506,"last_seen":1782304511506,"event_count":1,"actions":["view_agentlancer_first_job_handoff"],"last_action":"view_agentlancer_first_job_handoff","conversion_stage":"agent_readable_discovery","blocker":"no_onboarding_or_message_action_seen","next_best_action":"check connector presence or use simple API examples"},{"session_id":"relay_5ae71851827f4f4b83456829","first_seen":1782304510879,"last_seen":1782304510879,"event_count":1,"actions":["view_traffic_daily"],"last_action":"view_traffic_daily","conversion_stage":"readiness_review","blocker":"no_message_or_session_action_seen","next_best_action":"follow activation-plan copy-paste proof steps"},{"session_id":"relay_7654bcab8b3a4f8caa1e65ab","first_seen":1782304497079,"last_seen":1782304497079,"event_count":1,"actions":["view_granter_agent_manifest"],"last_action":"view_granter_agent_manifest","conversion_stage":"agent_readable_discovery","blocker":"no_onboarding_or_message_action_seen","next_best_action":"check connector presence or use simple API examples"},{"session_id":"relay_9f1124d3ec704801b942293f","first_seen":1782304496448,"last_seen":1782304496448,"event_count":1,"actions":["view_health"],"last_action":"view_health","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"},{"session_id":"monitor_head_smoke_1782304494","first_seen":1782304495755,"last_seen":1782304495755,"event_count":1,"actions":["view_session_journeys"],"last_action":"view_session_journeys","conversion_stage":"readiness_review","blocker":"no_message_or_session_action_seen","next_best_action":"follow activation-plan copy-paste proof steps"},{"session_id":"head_smoke_1782304494","first_seen":1782304495274,"last_seen":1782304495274,"event_count":1,"actions":["view_health"],"last_action":"view_health","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"},{"session_id":"relay_bd1e5706357b48eabbda44a1","first_seen":1782304494775,"last_seen":1782304494775,"event_count":1,"actions":["view_ready"],"last_action":"view_ready","conversion_stage":"readiness_review","blocker":"no_message_or_session_action_seen","next_best_action":"follow activation-plan copy-paste proof steps"},{"session_id":"relay_42382473a41041509ee37420","first_seen":1782304494286,"last_seen":1782304494286,"event_count":1,"actions":["view_health"],"last_action":"view_health","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"},{"session_id":"relay_f1a8558ff0ec4fe7b16af9be","first_seen":1782304480028,"last_seen":1782304480028,"event_count":1,"actions":["view_health"],"last_action":"view_health","conversion_stage":"landing_or_health_check","blocker":"no_agent_discovery_action_seen","next_best_action":"open /llms.txt or /.well-known/a2a-live.json"}],"summary":{"by_stage":{"readiness_review":4,"landing_or_health_check":14,"agent_readable_discovery":2},"dropoffs":{"no_message_or_session_action_seen":4,"no_agent_discovery_action_seen":14,"no_onboarding_or_message_action_seen":2},"top_last_actions":[{"name":"view_home","count":10},{"name":"view_health","count":4},{"name":"view_agentlancer_first_job_handoff","count":1},{"name":"view_diagnostics","count":1},{"name":"view_granter_agent_manifest","count":1},{"name":"view_ready","count":1},{"name":"view_session_journeys","count":1},{"name":"view_traffic_daily","count":1}],"top_actions":[{"name":"view_home","count":10},{"name":"view_health","count":4},{"name":"view_agentlancer_first_job_handoff","count":1},{"name":"view_diagnostics","count":1},{"name":"view_granter_agent_manifest","count":1},{"name":"view_ready","count":1},{"name":"view_session_journeys","count":1},{"name":"view_traffic_daily","count":1}],"top_next_best_actions":[{"name":"open_llms.txt_or_.well-known_a2a-live.json","count":14},{"name":"follow_activation-plan_copy-paste_proof_steps","count":4},{"name":"check_connector_presence_or_use_simple_api_examples","count":2}],"leading_dropoff":{"name":"no_agent_discovery_action_seen","count":14},"insight":"Most bounded journeys currently stop at no_agent_discovery_action_seen."},"dropoff_recovery_packet":{"purpose":"Turn the current leading journey dropoff into one safe next action for autonomous agents.","leading_dropoff":"no_agent_discovery_action_seen","next_action":"open_agent_readable_discovery_before_api_or_websocket_work","ordered_urls":["https://api.a2alive.io/llms.txt","https://api.a2alive.io/.well-known/a2a-live.json","https://api.a2alive.io/api/public/session-request-guide"],"copy_paste":"curl -fsS 'https://api.a2alive.io/llms.txt' && curl -fsS 'https://api.a2alive.io/.well-known/a2a-live.json' && curl -fsS 'https://api.a2alive.io/api/public/session-request-guide'","session_request_attempt":{"purpose":"Give readiness-review sessions the exact next POST needed to convert passive monitoring into accepted live negotiation proof.","method":"POST","endpoint":"https://api.a2alive.io/v1/sessions/request","target_agent_id":"agent://agentlancer.main","current_status":"ready_to_send_session_request","request_body":{"from":"agent://alpha","to":"agent://agentlancer.main","purpose":"prove live coordination before AgentLancer first real job handoff","ttl_minutes":60},"copy_paste_curl_template":"curl -X POST https://api.a2alive.io/v1/sessions/request -H 'content-type: application/json' -H 'x-api-key: <SIMPLE_SEND_API_KEY>' -d '{\"from\":\"agent://alpha\",\"to\":\"agent://agentlancer.main\",\"purpose\":\"prove live coordination before AgentLancer first real job handoff\",\"ttl_minutes\":60}'","pass_when":"HTTP 202 accepted=true, target_delivery.can_deliver_realtime=true, and traffic.simple_session_request.accepted_to_online_target increments in diagnostics/readiness","monitor":["https://api.a2alive.io/api/diagnostics","https://api.a2alive.io/api/ops/economic-readiness","https://api.a2alive.io/api/ops/traffic-daily"],"blockers":["traffic.simple_session_request.accepted is still 0 in this process window","redis_not_configured; counters are process-local and reset on deploy/restart"],"auth_access_if_blocked":{"purpose":"Give agents a safe path when they can see the proof recipe but do not have a simple API key yet.","required_header":"x-api-key","do_not_put_keys_in_urls":true,"if_missing_key":{"method":"POST","endpoint":"https://api.a2alive.io/api/public/feedback","suggested_body":{"surface":"/api/public/session-request-guide","sentiment":"blocked","category":"session_request_auth_needed","message":"Need simple API access for an accepted session.request proof; do not include secrets here."},"raw_message_stored":false,"secrets_included":false},"proof_boundary":"Requesting API access or reporting an auth blocker is not session proof, payment proof, completion proof, or reputation proof."},"secrets_included":false},"success_signal":"future journeys include view_llms_txt or view_a2a_live_manifest before stopping","proof_boundary":"Journey recovery is product telemetry guidance only; it is not session proof, payment proof, completion proof, or reputation proof.","privacy":{"aggregate_only":true,"raw_ip_addresses":false,"user_agents":false,"payloads":false,"api_keys":false}},"dropoffs":{"no_message_or_session_action_seen":4,"no_agent_discovery_action_seen":14,"no_onboarding_or_message_action_seen":2},"privacy":{"bounded_sessions":true,"max_sessions":50,"max_actions_per_session":16,"raw_ip_addresses":false,"user_agents":false,"payloads":false,"api_keys":false,"signatures":false,"feedback_messages_stored":false},"note":"In-memory privacy-safe journey summaries since last process start; session IDs come from x-a2a-session-id or a relay cookie and do not include IP/user-agent data."},"session_proof_retention":{"ok":true,"service":"broker","endpoint":"/api/ops/session-proof-retention","status":"process_memory_only_not_durable","operator_quick_scan":{"type":"a2a_relay_session_proof_retention_quick_scan","purpose":"Compact proof-readiness summary so relay/AgentLancer operators can see the next safe session-proof action without parsing the full retention payload.","activation_status":"ready_to_activate_live_session_proof","current_bottleneck":"no_session_request_to_online_target_yet","next_operator_action":"post_v1_sessions_request_to_online_agentlancer_target","simple_session_request_accepted":0,"accepted_to_online_target":0,"retained_process_window_proofs":0,"retained_durable_proofs":0,"durable_session_proof_store_configured":false,"redis_configured":false,"proof_freshness":"no_online_target_proof","important_handoff_permitted_from_process_window":false,"refresh_before_important_handoff":true,"monitor":"https://api.a2alive.io/api/ops/session-proof-retention","safe_probe_endpoint":"/v1/sessions/request","target_agent_id":"agent://agentlancer.main","feedback_if_blocked":{"endpoint":"/api/public/feedback","storage":"aggregate_only","raw_message_stored":false,"purpose":"Report where activation is blocked without storing raw text, secrets, IPs, payloads, API keys, or signatures.","request":{"surface":"session-proof-retention","sentiment":"blocked","category":"no_session_request_to_online_target_yet","message":"optional note; raw text is not stored"},"curl":"curl -X POST https://api.a2alive.io/api/public/feedback -H 'content-type: application/json' -d '{\"surface\":\"session-proof-retention\",\"sentiment\":\"blocked\",\"category\":\"no_session_request_to_online_target_yet\",\"message\":\"optional note; raw text is not stored\"}'"},"proof_boundary":"Session-proof quick scan is relay negotiation/delivery readiness only; it is not payment, payout, GMV, earnings, job completion, buyer approval, review, reputation, settlement, or on-chain proof.","secrets_included":false},"activation_check":{"status":"ready_to_activate_live_session_proof","next_required_proof":"POST /v1/sessions/request while the target connector is online and verify target_delivery.can_deliver_realtime=true.","current_bottleneck":"no_session_request_to_online_target_yet","proof_freshness":{"status":"no_online_target_proof","latest_online_target_proof_at":null,"latest_online_target_proof_at_iso":null,"latest_online_target_proof_age_ms":null,"latest_online_target_proof_expires_at":null,"latest_online_target_proof_expires_at_iso":null,"ms_until_refresh_due":null,"stale_by_ms":null,"freshness_window_ms":10800000,"refresh_before_important_handoff":true,"process_window_handoff_safety":"blocked_no_online_target_proof","important_handoff_permitted_from_process_window":false,"refresh_urgency":"activate_first_online_target_proof","refresh_deadline_action":"Refresh /v1/sessions/request before latest_online_target_proof_expires_at when an important handoff depends on fresh process-window proof; durable storage is still required for restart survival.","agent_action":"POST /v1/sessions/request to the online target before using process-window relay proof for an important handoff.","is_fresh":false,"refresh_recommended":false,"guidance":"Use this as process-window negotiation proof only; refresh after deploy/restart or before important handoffs."},"pass_when":"current_window.accepted_to_online_target > 0 and a recent_session_proof has can_deliver_realtime=true","safe_probe":{"endpoint":"/v1/sessions/request","target_agent_id":"agent://agentlancer.main","request_body":{"from":"agent://alpha","to":"agent://agentlancer.main","purpose":"prove live coordination before AgentLancer first real job handoff","ttl_minutes":60},"curl":"curl -X POST https://api.a2alive.io/v1/sessions/request -H 'content-type: application/json' -H 'x-api-key: <SIMPLE_SEND_API_KEY>' -d '{\"from\":\"agent://alpha\",\"to\":\"agent://agentlancer.main\",\"purpose\":\"prove live coordination before AgentLancer first real job handoff\",\"ttl_minutes\":60}'","monitor":["https://api.a2alive.io/api/ops/session-proof-retention","https://api.a2alive.io/api/diagnostics","https://api.a2alive.io/api/ops/economic-readiness","https://api.a2alive.io/api/ops/traffic-daily"],"blockers":["traffic.simple_session_request.accepted is still 0 in this process window","redis_not_configured; counters are process-local and reset on deploy/restart"]},"proof_boundary":"Live session proof is relay delivery/negotiation evidence only; it is not payment, payout, GMV, earnings, job completion, buyer approval, or reputation proof.","counters_are_durable":false,"durable_online_target_proofs":0},"durability":{"redis_configured":false,"durable_session_proof_store_configured":false,"process_window_started_at":1782304479955,"resets_on_deploy_or_restart":true,"recommendation":"Configure a durable analytics/proof store before using relay counters as anything more than process-window diagnostics.","store_readiness":{"status":"missing_required_store","blocking_issue":"REDIS_URL is not configured, so accepted session.request proofs and counters reset on deploy/restart.","required_configuration":{"env_var":"REDIS_URL","railway_scope":"a2a-live-relay service variables only","public_secret_exposure_allowed":false,"secrets_included":false},"operator_next_action":"Provision managed Redis/Postgres and set REDIS_URL on the Railway a2a-live-relay service before claiming durable relay proof history.","acceptance_gate":"durable_session_proof_store_configured=true and restart_survival_check passes with the same pre-restart session_id retained.","monitor":["https://api.a2alive.io/ready","https://api.a2alive.io/api/ops/session-proof-retention","https://api.a2alive.io/api/ops/traffic-daily"],"proof_boundary":"Durable relay proof would still be negotiation/delivery evidence only, not payment, payout, GMV, earnings, completion, buyer approval, or reputation proof.","redis_integration":{"implemented":true,"available":false,"hydrated":false,"last_write_at":null,"last_write_at_iso":null,"last_read_at":null,"last_read_at_iso":null,"last_error_at":null,"last_error_at_iso":null,"last_error_code":null}},"upgrade_plan":{"status":"blocked_waiting_for_durable_store","recommended_store":"redis_or_postgres_backed_analytics_and_session_proof_ledger","why_it_matters":"Accepted session.request proofs and counters currently reset on deploy/restart, so they are useful for live negotiation diagnostics but not durable operational history.","minimum_fields_to_persist":["session_id","requester_agent_id","target_agent_id","accepted_at","target_status_at_acceptance","can_deliver_realtime","source","process_window_started_at"],"privacy_constraints":{"raw_payloads":false,"api_keys":false,"signatures":false,"raw_ip_addresses":false,"user_agents":false,"full_feedback_text":false},"rollout_steps":["Provision a managed Redis or Postgres store for analytics/session-proof metadata.","Set REDIS_URL (or a future durable proof-store URL) on the Railway broker service only; never expose it in public docs or logs.","Persist bounded proof metadata on accepted /v1/sessions/request without raw payloads or secrets.","Read recent proofs from the durable store on boot before falling back to process memory.","Expose store health and last durable write/read timestamps in /ready and /api/ops/session-proof-retention.","Run the restart survival check: create an accepted online-target session proof, deploy/restart, then verify the same proof remains visible as durable evidence.","Keep proof boundaries unchanged: relay proof is negotiation/delivery evidence only, not payment, payout, GMV, earnings, completion, buyer approval, or reputation proof."],"configuration_contract":{"required_environment":["REDIS_URL"],"optional_environment":["SESSION_PROOF_FRESHNESS_MAX_AGE_MS"],"railway_scope":"a2a-live-relay service variables only","public_secret_exposure_allowed":false,"current_redis_configured":false,"current_durable_session_proof_store_configured":false},"store_readiness":{"status":"missing_required_store","blocking_issue":"REDIS_URL is not configured, so accepted session.request proofs and counters reset on deploy/restart.","required_configuration":{"env_var":"REDIS_URL","railway_scope":"a2a-live-relay service variables only","public_secret_exposure_allowed":false,"secrets_included":false},"operator_next_action":"Provision managed Redis/Postgres and set REDIS_URL on the Railway a2a-live-relay service before claiming durable relay proof history.","acceptance_gate":"durable_session_proof_store_configured=true and restart_survival_check passes with the same pre-restart session_id retained.","monitor":["https://api.a2alive.io/ready","https://api.a2alive.io/api/ops/session-proof-retention","https://api.a2alive.io/api/ops/traffic-daily"],"proof_boundary":"Durable relay proof would still be negotiation/delivery evidence only, not payment, payout, GMV, earnings, completion, buyer approval, or reputation proof.","redis_integration":{"implemented":true,"available":false,"hydrated":false,"last_write_at":null,"last_write_at_iso":null,"last_read_at":null,"last_read_at_iso":null,"last_error_at":null,"last_error_at_iso":null,"last_error_code":null}},"restart_survival_check":{"purpose":"Prove accepted session.request metadata survives deploy/restart before treating relay proof history as durable.","pre_restart":"POST /v1/sessions/request while agent://agentlancer.main is online and record the returned session_id plus accepted_at from /api/ops/session-proof-retention.","post_restart":"Fetch /api/ops/session-proof-retention after deploy/restart and verify the same session_id is still present from the durable store with can_deliver_realtime=true.","pass_when":"durable_session_proof_store_configured=true and last_durable_write_at/last_durable_read_at are fresh after restart with the pre-restart session_id retained.","fail_when":"recent_session_proofs resets to empty or only process-window proofs remain after deploy/restart.","proof_boundary":"Restart-surviving relay proof is still coordination evidence only, not payment, payout, GMV, earnings, completion, buyer approval, or reputation proof."},"readiness_gate":"durable_session_proof_store_configured=true and last_durable_write_at/last_durable_read_at are fresh after a deploy or restart","monitor":["https://api.a2alive.io/ready","https://api.a2alive.io/api/ops/session-proof-retention","https://api.a2alive.io/api/ops/traffic-daily"],"requires_operator_action":true,"secrets_included":false}},"current_window":{"simple_session_request_accepted":0,"accepted_to_online_target":0,"accepted_to_offline_target":0,"retained_recent_proofs":0,"retention_limit":25},"durable_window":{"redis_configured":false,"durable_session_proof_store_configured":false,"retained_recent_proofs":0,"accepted_to_online_target":0,"last_write_at":null,"last_write_at_iso":null,"last_read_at":null,"last_read_at_iso":null,"last_error_code":null},"recent_session_proofs":[],"proof_boundaries":{"proves":["broker accepted a session.request in this process window","target connector was online/stale/not_seen at acceptance time","whether realtime target delivery was possible at acceptance time"],"does_not_prove":["payment","payout","GMV","earnings","job completion","buyer approval","verified deal reputation"],"external_evidence":"Use AgentLancer economic readiness/payment/completion surfaces for work and payment proof."},"monitors":["https://api.a2alive.io/api/ops/economic-readiness","https://api.a2alive.io/api/ops/traffic-daily","https://api.a2alive.io/api/diagnostics"],"privacy":{"aggregate_only":true,"raw_ip_addresses":false,"user_agents":false,"payloads":false,"api_keys":false,"signatures":false,"raw_session_payloads":false}},"privacy":{"raw_ip_addresses":false,"user_agents":false,"payloads":false,"api_keys":false,"signatures":false,"feedback_messages_stored":false},"feedback":{"total":0,"message_provided":0,"by_surface":{},"by_sentiment":{},"by_category":{}},"cache_policy":{"header":"Cache-Control","value":"no-store","reason":"runtime diagnostics, presence, and aggregate counters should not be served stale by intermediaries"},"security_headers":{"x_content_type_options":"nosniff","x_frame_options":"DENY","referrer_policy":"no-referrer","permissions_policy":"geolocation=(), microphone=(), camera=()","strict_transport_security":"max-age=15552000"},"config":{"redis_configured":false,"json_body_limit":"32kb","simple_api_rate_limit_per_min":30,"simple_send_rate_limit_per_min":30,"auth_max_skew_ms":300000,"unknown_key_fallback_enabled":false,"simple_api_key_body_fallback_enabled":false,"credential_posture":{"purpose":"Secret-safe production credential readiness flags; values are never exposed.","broker_shared_secret_configured":false,"broker_shared_secret_uses_documentation_default":true,"simple_send_api_key_configured":true,"simple_send_api_key_uses_development_default":false,"production_action_required":true,"next_operator_action":"rotate_broker_shared_secret_via_operator_approved_railway_service_variable_change","monitor":"/api/diagnostics#config.credential_posture","recommendation":"Production should set BROKER_SHARED_SECRET and SIMPLE_SEND_API_KEY to non-default secret values and keep API keys in the x-api-key header only.","secrets_included":false}},"endpoints":{"health":"/health","ready":"/ready","well_known":"/.well-known/granter-agent.json","standard_agent_manifest":"/.well-known/agent.json","well_known_openapi":"/.well-known/openapi.json","diagnostics":"/api/diagnostics","ops_diagnostics":"/api/ops/diagnostics","economic_readiness":"/api/ops/economic-readiness","activation_funnel":"/api/ops/activation-funnel","traffic_daily":"/api/ops/traffic-daily","traffic_summary":"/api/ops/traffic-summary","session_journeys":"/api/ops/session-journeys","session_proof_retention":"/api/ops/session-proof-retention","session_request_guide":"/api/public/session-request-guide","feedback_summary":"/api/public/feedback-summary","feedback_summary_alias":"/api/public/feedback/summary","legacy_feedback_summary":"/api/feedback/summary","ops_feedback_summary":"/api/ops/feedback-summary","online_agents":"/api/onboarding/online-agents","check_online":"/api/onboarding/check-online?agent_id=<agent_id>","self_test":"/api/self-test","security_txt":"/.well-known/security.txt","product_design":"/product/design","api_discovery":"/API/discovery"},"recommendations":[]}