Co-Authored-By: Quentin Torroba <quentin.torroba@mistral.ai> Co-Authored-By: Laure Hugo <laure.hugo@mistral.ai> Co-Authored-By: Benjamin Trom <benjamin.trom@mistral.ai> Co-Authored-By: Mathias Gesbert <mathias.gesbert@ext.mistral.ai> Co-Authored-By: Michel Thomazo <michel.thomazo@mistral.ai> Co-Authored-By: Clément Drouin <clement.drouin@mistral.ai> Co-Authored-By: Vincent Guilloux <vincent.guilloux@mistral.ai> Co-Authored-By: Valentin Berard <val@mistral.ai> Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
30 lines
698 B
Python
30 lines
698 B
Python
from __future__ import annotations
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from vibe.core.tools.base import BaseTool, BaseToolConfig, BaseToolState
|
|
|
|
|
|
class FakeToolArgs(BaseModel):
|
|
pass
|
|
|
|
|
|
class FakeToolResult(BaseModel):
|
|
message: str = "fake tool executed"
|
|
|
|
|
|
class FakeToolState(BaseToolState):
|
|
pass
|
|
|
|
|
|
class FakeTool(BaseTool[FakeToolArgs, FakeToolResult, BaseToolConfig, FakeToolState]):
|
|
_exception_to_raise: BaseException | None = None
|
|
|
|
@classmethod
|
|
def get_name(cls) -> str:
|
|
return "stub_tool"
|
|
|
|
async def run(self, args: FakeToolArgs) -> FakeToolResult:
|
|
if self._exception_to_raise:
|
|
raise self._exception_to_raise
|
|
return FakeToolResult()
|