Expose formatter route traces

This commit is contained in:
2026-06-27 15:20:04 +02:00
parent e7bc227c6f
commit 3d0a8cace8
8 changed files with 192 additions and 13 deletions
+30
View File
@@ -5,9 +5,11 @@ from typing import Any, Callable
try:
from . import formatter_input as input_policy
from . import formatter_route_trace as trace_policy
from . import formatter_target as target_policy
except ImportError: # pragma: no cover - plain-script smoke tests
import formatter_input as input_policy
import formatter_route_trace as trace_policy
import formatter_target as target_policy
@@ -35,10 +37,14 @@ class CaptionFormatRoute:
style_policy: str
include_trigger: bool
keep_style: bool
route_trace_json: str = ""
def as_tuple(self) -> tuple[str, str]:
return self.caption, self.method
def as_trace_tuple(self) -> tuple[str, str, str]:
return self.caption, self.method, self.route_trace_json
@dataclass(frozen=True)
class CaptionFormatDependencies:
@@ -72,6 +78,17 @@ def naturalize_caption_result(
triggers=(request.trigger,),
)
full_method = f"{row_method}:{method}"
route_trace = trace_policy.route_trace_json(
formatter="caption",
branch="metadata",
method=full_method,
input_hint=input_hint,
target=target,
detail_level=detail_level,
style_policy=style_policy,
include_trigger=include_trigger,
keep_style=keep_style,
)
return CaptionFormatRoute(
caption=caption,
method=full_method,
@@ -82,6 +99,7 @@ def naturalize_caption_result(
style_policy=style_policy,
include_trigger=include_trigger,
keep_style=keep_style,
route_trace_json=route_trace,
)
prose, method = deps.text_to_prose(request.source_text, detail_level, keep_style)
@@ -89,6 +107,17 @@ def naturalize_caption_result(
deps.with_trigger(prose, request.trigger, include_trigger),
triggers=(request.trigger,),
)
route_trace = trace_policy.route_trace_json(
formatter="caption",
branch="text",
method=method,
input_hint=input_hint,
target=target,
detail_level=detail_level,
style_policy=style_policy,
include_trigger=include_trigger,
keep_style=keep_style,
)
return CaptionFormatRoute(
caption=caption,
method=method,
@@ -99,6 +128,7 @@ def naturalize_caption_result(
style_policy=style_policy,
include_trigger=include_trigger,
keep_style=keep_style,
route_trace_json=route_trace,
)