Files
2026-07-13 12:38:34 +08:00

32 lines
936 B
Python

from __future__ import annotations
import typing as t
from composio.client.types import Tool
from composio.core.provider.base import BaseProvider, TTool, TToolCollection
class NonAgenticProvider(BaseProvider[TTool, TToolCollection]):
"""
Base class for all non-agentic providers, such as `openai` This class is not
meant to be used directly, but rather to be extended by concrete implementations
This version doesn't have the execute_tool_fn for `wrap_tool` and `wrap_tools`
"""
def __init_subclass__(cls, name: str) -> None:
cls.name = name
def wrap_tool(
self,
tool: Tool,
) -> TTool:
"""Wrap a tool in the provider-specific format"""
raise NotImplementedError
def wrap_tools(
self,
tools: t.Sequence[Tool],
) -> TToolCollection:
"""Wrap a list of tools in the provider-specific format"""
raise NotImplementedError