Initial commit
This commit is contained in:
61
server/tools/mock.py
Normal file
61
server/tools/mock.py
Normal file
@@ -0,0 +1,61 @@
|
||||
"""
|
||||
tools/mock.py — Mock tools for testing the agent loop without real integrations.
|
||||
|
||||
EchoTool — returns its input unchanged, no side effects
|
||||
ConfirmTool — always requires confirmation; logs that confirmation was received
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from .base import BaseTool, ToolResult
|
||||
|
||||
|
||||
class EchoTool(BaseTool):
|
||||
name = "echo"
|
||||
description = (
|
||||
"Returns whatever text you pass in. Useful for testing. "
|
||||
"Use this when you need to verify tool calling works."
|
||||
)
|
||||
input_schema = {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"message": {
|
||||
"type": "string",
|
||||
"description": "The text to echo back",
|
||||
}
|
||||
},
|
||||
"required": ["message"],
|
||||
}
|
||||
requires_confirmation = False
|
||||
allowed_in_scheduled_tasks = True
|
||||
|
||||
async def execute(self, message: str = "", **kwargs) -> ToolResult:
|
||||
return ToolResult(success=True, data={"echo": message})
|
||||
|
||||
|
||||
class ConfirmTool(BaseTool):
|
||||
name = "confirm_action"
|
||||
description = (
|
||||
"A test tool that always requires user confirmation before proceeding. "
|
||||
"Use to verify the confirmation flow works end-to-end."
|
||||
)
|
||||
input_schema = {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"action": {
|
||||
"type": "string",
|
||||
"description": "Description of the action requiring confirmation",
|
||||
}
|
||||
},
|
||||
"required": ["action"],
|
||||
}
|
||||
requires_confirmation = True
|
||||
allowed_in_scheduled_tasks = False
|
||||
|
||||
async def execute(self, action: str = "", **kwargs) -> ToolResult:
|
||||
return ToolResult(
|
||||
success=True,
|
||||
data={"confirmed": True, "action": action},
|
||||
)
|
||||
|
||||
def confirmation_description(self, action: str = "", **kwargs) -> str:
|
||||
return f"Perform action: {action}"
|
||||
Reference in New Issue
Block a user