diff --git a/python/pyproject.toml b/python/pyproject.toml index 84fe0836e..629ca267b 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -7,10 +7,16 @@ readme = "README.md" keywords = ["goat", "sdk", "web3", "agents", "ai"] homepage = "https://ohmygoat.dev/" repository = "https://github.com/goat-sdk/goat" +package-mode = false [tool.poetry.dependencies] python = "^3.12" pydantic = "^2.10.0" +goat-sdk = { path = "src/goat-sdk/" } +goat-sdk-plugin-coingecko = { path = "src/plugins/coingecko/" } +goat-sdk-plugin-erc20 = { path = "src/plugins/erc20/" } +goat-sdk-wallet-web3 = { path = "src/wallets/web3/" } +goat-sdk-adapter-langchain = { path = "src/adapters/langchain/" } [tool.poetry.group.test.dependencies] pytest = "^8.3.4" @@ -30,12 +36,6 @@ asyncio_default_fixture_loop_scope = "function" requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" -[tool.poetry.group.dev.dependencies] -ruff = "^0.8.6" -goat-sdk = { path = "src/goat-sdk/", develop = true } -goat-sdk-plugin-coingecko = { path = "src/plugins/coingecko/", develop = true } -goat-sdk-plugin-erc20 = { path = "src/plugins/erc20/", develop = true } - [tool.ruff] line-length = 120 target-version = "py312" diff --git a/python/src/goat-sdk/goat/classes/plugin_base.py b/python/src/goat-sdk/goat/classes/plugin_base.py index 2601e2f28..a86a9365d 100644 --- a/python/src/goat-sdk/goat/classes/plugin_base.py +++ b/python/src/goat-sdk/goat/classes/plugin_base.py @@ -1,3 +1,5 @@ +import asyncio +import inspect from abc import ABC, abstractmethod from typing import List, Any, TypeVar, Generic @@ -112,4 +114,8 @@ def _execute_tool( args[parameters_index - 1] = params method = getattr(tool_provider, tool_metadata.target.__name__) - return method(*args) + result = method(*args) + + if inspect.iscoroutine(result): + return asyncio.get_event_loop().run_until_complete(result) + return result diff --git a/python/src/goat-sdk/pyproject.toml b/python/src/goat-sdk/pyproject.toml index 3dcc085fb..b153f1143 100644 --- a/python/src/goat-sdk/pyproject.toml +++ b/python/src/goat-sdk/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "goat-sdk" -version = "0.1.0" +version = "0.1.1" description = "Goat 🐐 (Great Onchain Agent Toolkit) is an open-source framework for connecting AI agents to any onchain app" authors = ["Andrea Villa "] readme = "README.md" @@ -14,6 +14,7 @@ packages = [ [tool.poetry.dependencies] python = "^3.10" pydantic = "^2.10.0" +asyncio = "^3.4.1" [tool.poetry.group.test.dependencies] pytest = "^8.3.4"