3737 prepare_outbound_body_bytes as prepare_outbound_body_bytes , # noqa: F401 - compatibility export
3838)
3939from headroom .proxy .body_forwarding import serialize_body_canonical
40+ from headroom .proxy .ccr_golden_policy import (
41+ create_fresh_ccr_tool_definition ,
42+ replay_golden_ccr_tool_definition ,
43+ )
4044
4145if TYPE_CHECKING :
4246 import httpx
@@ -2624,7 +2628,7 @@ def apply_session_sticky_ccr_tool(
26242628 Returns ``(updated_tools, was_injected)``. ``updated_tools`` is a
26252629 fresh list (caller-safe).
26262630 """
2627- from headroom .ccr .tool_injection import CCR_TOOL_NAME , create_ccr_tool_definition
2631+ from headroom .ccr .tool_injection import CCR_TOOL_NAME
26282632
26292633 if provider not in ("anthropic" , "openai" , "google" ):
26302634 raise ValueError (f"unsupported provider: { provider !r} " )
@@ -2658,14 +2662,13 @@ def apply_session_sticky_ccr_tool(
26582662 request_id = request_id ,
26592663 )
26602664 return tools_out , False
2661- tool_def = create_ccr_tool_definition (provider )
2662- canonical = serialize_tool_definition_canonical (tool_def )
2663- tools_out .append (tool_def )
2665+ replay = create_fresh_ccr_tool_definition (provider )
2666+ tools_out .append (replay .tool_definition )
26642667 log_tool_injection_decision (
26652668 provider = provider ,
26662669 session_id = None ,
26672670 decision = "inject_first_time" ,
2668- tool_definition_bytes_count = len (canonical ),
2671+ tool_definition_bytes_count = len (replay . canonical_bytes ),
26692672 request_id = request_id ,
26702673 )
26712674 return tools_out , True
@@ -2682,13 +2685,13 @@ def apply_session_sticky_ccr_tool(
26822685 golden = tracker .get_golden_tool_bytes (provider , session_id )
26832686 if golden is not None :
26842687 try :
2685- tool_def = json . loads (golden . decode ( "utf-8" ) )
2686- tools_out .append (tool_def )
2688+ replay = replay_golden_ccr_tool_definition (golden )
2689+ tools_out .append (replay . tool_definition )
26872690 log_tool_injection_decision (
26882691 provider = provider ,
26892692 session_id = session_id ,
26902693 decision = "inject_sticky_replay" ,
2691- tool_definition_bytes_count = len (golden ),
2694+ tool_definition_bytes_count = len (replay . canonical_bytes ),
26922695 request_id = request_id ,
26932696 )
26942697 return tools_out , True
@@ -2702,15 +2705,14 @@ def apply_session_sticky_ccr_tool(
27022705 # Fall through to fresh creation below
27032706 # Tracker says "done CCR" but has no golden bytes (or they were corrupt). Pin
27042707 # them now so future turns are stable.
2705- tool_def = create_ccr_tool_definition (provider )
2706- canonical = serialize_tool_definition_canonical (tool_def )
2707- tracker .record_ccr_done (provider , session_id , canonical )
2708- tools_out .append (tool_def )
2708+ replay = create_fresh_ccr_tool_definition (provider )
2709+ tracker .record_ccr_done (provider , session_id , replay .canonical_bytes )
2710+ tools_out .append (replay .tool_definition )
27092711 log_tool_injection_decision (
27102712 provider = provider ,
27112713 session_id = session_id ,
27122714 decision = "inject_sticky_replay" ,
2713- tool_definition_bytes_count = len (canonical ),
2715+ tool_definition_bytes_count = len (replay . canonical_bytes ),
27142716 request_id = request_id ,
27152717 )
27162718 return tools_out , True
@@ -2726,15 +2728,14 @@ def apply_session_sticky_ccr_tool(
27262728 )
27272729 return tools_out , False
27282730
2729- tool_def = create_ccr_tool_definition (provider )
2730- canonical = serialize_tool_definition_canonical (tool_def )
2731- tracker .record_ccr_done (provider , session_id , canonical )
2732- tools_out .append (tool_def )
2731+ replay = create_fresh_ccr_tool_definition (provider )
2732+ tracker .record_ccr_done (provider , session_id , replay .canonical_bytes )
2733+ tools_out .append (replay .tool_definition )
27332734 log_tool_injection_decision (
27342735 provider = provider ,
27352736 session_id = session_id ,
27362737 decision = "inject_first_time" ,
2737- tool_definition_bytes_count = len (canonical ),
2738+ tool_definition_bytes_count = len (replay . canonical_bytes ),
27382739 request_id = request_id ,
27392740 )
27402741 return tools_out , True
0 commit comments