Atomic adoption and validation of a provider-only tool-result view.
WireViewOwner
apply_wire_view
apply_wire_view(view: ToolWireView, context: RunToolContext) -> None
Adopt a proposed view only for the exact live source revision.
Source code in src/symfonic/agent/backend/wire_view.py
| def apply_wire_view(self, view: ToolWireView, context: RunToolContext) -> None:
"""Adopt a proposed view only for the exact live source revision."""
context.require_live()
binding = self._model_port_binding
if (
type(view) is not ToolWireView
or binding is None
or (binding.run_id, binding.scope_path) != (context.run_id, context.scope_path)
or (view.run_id, view.scope_path) != (context.run_id, context.scope_path)
or view.transcript_id != id(self)
or view.version != self._wire_version
or tuple(self.wire) != view.source
):
raise ContractViolationError("tool wire view has stale run, scope, or transcript")
self._model_view = view
|