Co-Authored-By: Quentin Torroba <quentin.torroba@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: Clément Siriex <clement.sirieix@mistral.ai> Co-Authored-By: Kim-Adeline Miguel <kimadeline.miguel@mistral.ai> Co-Authored-By: Thaddee Tyl <thaddee.tyl@gmail.com> Co-Authored-By: David Brochart <david.brochart@gmail.com> Co-Authored-By: Joseph Guhlin <joseph.guhlin@gmail.com> Co-Authored-By: Thomas Kenbeek <thomaskenbeek@gmail.com> Co-Authored-By: Remenby31 <baptiste.cruvellier31@gmail.com>
35 lines
888 B
Python
35 lines
888 B
Python
from __future__ import annotations
|
|
|
|
from collections.abc import AsyncGenerator
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from vibe.core.tools.base import BaseTool, BaseToolConfig, BaseToolState, InvokeContext
|
|
from vibe.core.types import ToolStreamEvent
|
|
|
|
|
|
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, ctx: InvokeContext | None = None
|
|
) -> AsyncGenerator[ToolStreamEvent | FakeToolResult, None]:
|
|
if self._exception_to_raise:
|
|
raise self._exception_to_raise
|
|
yield FakeToolResult()
|