{"duration_api_ms":30363,"stop_reason":"end_turn","session_id":"17c803b8-a69d-45e5-891f-1b9eedf28e22","total_cost_usd":0.0550751,"usage":{"input_tokens":8,"cache_creation_input_tokens":5768,"cache_read_input_tokens":45909,"output_tokens":1535,"output_tokens_details":{"thinking_tokens":199},"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":5768,"ephemeral_5m_input_tokens":0},"inference_geo":"global","iterations":[{"input_tokens":2,"output_tokens":810,"cache_read_input_tokens":13041,"cache_creation_input_tokens":1197,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1197},"type":"message"}],"speed":"standard","fallback_credit":null},"modelUsage":{"claude-sonnet-5-5":{"inputTokens":8,"outputTokens":1535,"cacheReadInputTokens":45909,"cacheCreationInputTokens":5768,"webSearchRequests":0,"costUSD":0.043028899999999995,"contextWindow":1000000,"maxOutputTokens":128000,"thinkingTokens":199,"canonicalModel":"claude-sonnet-5-5","provider":"firstParty","costBasis":"list"},"claude-haiku-5-5":{"inputTokens":109522,"outputTokens":2188,"cacheReadInputTokens":0,"cacheCreationInputTokens":0,"webSearchRequests":0,"costUSD":0.0120462,"contextWindow":1000000,"maxOutputTokens":128000,"thinkingTokens":1380,"canonicalModel":"claude-haiku-5-5","provider":"firstParty","costBasis":"list"}},"permission_denials":[],"terminal_reason":"completed","fast_mode_state":"off","fast_mode_disabled_reason":"sdk_opt_in_required","subagent_stats":{"spawned":0,"requested":{"background":0,"foreground":0,"unset":0},"started_in_background":0,"max_depth":0,"spawned_by_subagents":0,"completed":0,"failed":0,"killed":{"parent":0,"user":0,"system":0},"refused":{"depth_limit":0,"concurrency_limit":0,"budget":0},"by_type":{}},"safety_stops":0,"is_error":false,"num_turns":5,"subtype":"success","api_error_status":null,"result":"**Steps** (from the \"Setting up Google reCAPTCHA\" procedure in the Server Administration Guide):\n\n1. **At Google:** open the Google reCAPTCHA admin page and create a site. Choose v2 (checkbox) or v3 (score-based). Copy the **site key** and **secret key**.\n2. **In the Admin Console:** select your realm, then go to **Authentication → Flows**. Open the **Registration** flow. If you need a custom copy, duplicate it first and bind the copy to the Registration flow.\n3. Find the **reCAPTCHA** execution. It sits in the registration form sub-flow. Set its requirement to **Required**.\n4. Click the **gear icon** on that row and enter the **Site key** and **Secret**. Turn on **reCAPTCHA v3** only if your key is a v3 key. Optionally turn on **Use recaptcha.net**, which is for regions where google.com is blocked.\n5. Go to **Realm settings → Security defenses**. Add the Google domain (`https://www.google.com`, or the recaptcha.net domain if you enabled that option) to the **X-Frame-Options** and **Content-Security-Policy** headers. Without this, the widget can't load in the registration page.\n6. Make sure **User registration** is on under **Realm settings → Login**, so the registration page exists.\n\n**What I'm not sure about:**\n- The documentation fetch went through a summarizer, and I didn't read the page text directly. I'm unsure of the exact label and value of the header changes in step 5, so check them against the guide (anchor `#procedure_recaptcha`).\n- The doc also has a separate \"Setting up Google reCAPTCHA Enterprise\" procedure. I didn't read it. Use it if your key is an Enterprise one.\n- Step 6 comes from my own knowledge of Keycloak, not from the fetched text.\n- The custom-theme caveat is also from my own knowledge, not the fetched text. A custom login theme must include the reCAPTCHA markup in `register.ftl`.","ttft_ms":3661,"type":"result","duration_ms":27701,"uuid":"a095a8cd-8f3e-44a5-a4c2-4cd612eb84d4","ttft_stream_ms":2793,"time_to_request_ms":218,"first_content_frame_ms":2794,"queued_turn_count":0,"result_index":0}
