Skip to content

symfonic.agent.backend.wire_view

wire_view

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