Skip to content

Commit fccbe40

Browse files
committed
Ensure fallback request managers reuse DI wire capture
1 parent 7357848 commit fccbe40

2 files changed

Lines changed: 64 additions & 2 deletions

File tree

src/core/app/controllers/anthropic_controller.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -533,8 +533,39 @@ def get_anthropic_controller(service_provider: IServiceProvider) -> AnthropicCon
533533
agent_response_formatter = AgentResponseFormatter()
534534

535535
session_manager = SessionManager(session, session_resolver)
536+
wire_capture = None
537+
try:
538+
from src.core.interfaces.wire_capture_interface import (
539+
IWireCapture as _IWireCapture,
540+
)
541+
542+
wire_capture = service_provider.get_service(
543+
cast(type, _IWireCapture)
544+
)
545+
except Exception:
546+
wire_capture = None
547+
548+
if wire_capture is None:
549+
try:
550+
from src.core.di.services import get_service_provider
551+
552+
global_provider = get_service_provider()
553+
except Exception:
554+
global_provider = None
555+
else:
556+
if (
557+
global_provider is not None
558+
and global_provider is not service_provider
559+
):
560+
try:
561+
wire_capture = global_provider.get_service(
562+
cast(type, _IWireCapture)
563+
)
564+
except Exception:
565+
wire_capture = None
566+
536567
backend_request_manager = BackendRequestManager(
537-
backend_processor, response_proc
568+
backend_processor, response_proc, wire_capture
538569
)
539570
response_manager = ResponseManager(agent_response_formatter)
540571

src/core/app/controllers/chat_controller.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -795,8 +795,39 @@ def backend_processor_factory(
795795
agent_response_formatter = AgentResponseFormatter()
796796

797797
session_manager = SessionManager(concrete_session, session_resolver)
798+
wire_capture = None
799+
try:
800+
from src.core.interfaces.wire_capture_interface import (
801+
IWireCapture as _IWireCapture,
802+
)
803+
804+
wire_capture = service_provider.get_service(
805+
cast(type, _IWireCapture)
806+
)
807+
except Exception:
808+
wire_capture = None
809+
810+
if wire_capture is None:
811+
try:
812+
from src.core.di.services import get_service_provider
813+
814+
global_provider = get_service_provider()
815+
except Exception:
816+
global_provider = None
817+
else:
818+
if (
819+
global_provider is not None
820+
and global_provider is not service_provider
821+
):
822+
try:
823+
wire_capture = global_provider.get_service(
824+
cast(type, _IWireCapture)
825+
)
826+
except Exception:
827+
wire_capture = None
828+
798829
backend_request_manager = BackendRequestManager(
799-
backend_processor, concrete_response_proc
830+
backend_processor, concrete_response_proc, wire_capture
800831
)
801832
response_manager = ResponseManager(agent_response_formatter)
802833

0 commit comments

Comments
 (0)