mirror of
https://github.com/Xe138/AI-Trader.git
synced 2026-04-02 01:27:24 -04:00
Compare commits
2 Commits
v0.3.0-alp
...
v0.3.0-alp
| Author | SHA1 | Date | |
|---|---|---|---|
| a16bac5d08 | |||
| 81b92e293a |
@@ -5,7 +5,7 @@ This interceptor automatically injects `signature` and `today_date` parameters
|
||||
into buy/sell tool calls to support concurrent multi-model simulations.
|
||||
"""
|
||||
|
||||
from typing import Any, Dict
|
||||
from typing import Any, Callable, Awaitable
|
||||
|
||||
|
||||
class ContextInjector:
|
||||
@@ -28,23 +28,28 @@ class ContextInjector:
|
||||
self.signature = signature
|
||||
self.today_date = today_date
|
||||
|
||||
def __call__(self, tool_name: str, tool_input: Dict[str, Any]) -> Dict[str, Any]:
|
||||
async def __call__(
|
||||
self,
|
||||
request: Any, # MCPToolCallRequest
|
||||
handler: Callable[[Any], Awaitable[Any]]
|
||||
) -> Any: # MCPToolCallResult
|
||||
"""
|
||||
Intercept tool call and inject context parameters.
|
||||
|
||||
Args:
|
||||
tool_name: Name of the tool being called
|
||||
tool_input: Original tool input parameters
|
||||
request: Tool call request containing name and arguments
|
||||
handler: Async callable to execute the actual tool
|
||||
|
||||
Returns:
|
||||
Modified tool input with injected context
|
||||
Result from handler after injecting context
|
||||
"""
|
||||
# Only inject for trade tools (buy/sell)
|
||||
if tool_name in ["buy", "sell"]:
|
||||
# Inject signature and today_date if not already provided
|
||||
if "signature" not in tool_input:
|
||||
tool_input["signature"] = self.signature
|
||||
if "today_date" not in tool_input:
|
||||
tool_input["today_date"] = self.today_date
|
||||
# Inject signature and today_date for trade tools
|
||||
if request.name in ["buy", "sell"]:
|
||||
# Add signature and today_date to args if not present
|
||||
if "signature" not in request.args:
|
||||
request.args["signature"] = self.signature
|
||||
if "today_date" not in request.args:
|
||||
request.args["today_date"] = self.today_date
|
||||
|
||||
return tool_input
|
||||
# Call the actual tool handler
|
||||
return await handler(request)
|
||||
|
||||
Reference in New Issue
Block a user