diff --git a/arcade/arcade/cli/main.py b/arcade/arcade/cli/main.py index c67704c7..9c8880dd 100644 --- a/arcade/arcade/cli/main.py +++ b/arcade/arcade/cli/main.py @@ -7,7 +7,7 @@ from typing import Any, Optional import typer from arcadepy import Arcade -from arcadepy.types import AuthAuthorizationResponse +from arcadepy.types import AuthorizationResponse from openai import OpenAI, OpenAIError from rich.console import Console from rich.markup import escape @@ -269,7 +269,7 @@ def chat( if tool_authorization and is_authorization_pending(tool_authorization): chat_result = handle_tool_authorization( client, - AuthAuthorizationResponse.model_validate(tool_authorization), + AuthorizationResponse.model_validate(tool_authorization), history, openai_client, model, diff --git a/arcade/arcade/cli/utils.py b/arcade/arcade/cli/utils.py index 1671e1f6..595600fb 100644 --- a/arcade/arcade/cli/utils.py +++ b/arcade/arcade/cli/utils.py @@ -12,7 +12,7 @@ from urllib.parse import urlencode, urlparse import idna import typer from arcadepy import NOT_GIVEN, APIConnectionError, APIStatusError, APITimeoutError, Arcade -from arcadepy.types import AuthAuthorizationResponse +from arcadepy.types import AuthorizationResponse from openai import OpenAI from openai.resources.chat.completions import ChatCompletionChunk, Stream from openai.types.chat.chat_completion import Choice as ChatCompletionChoice @@ -404,7 +404,7 @@ def handle_chat_interaction( def handle_tool_authorization( arcade_client: Arcade, - tool_authorization: AuthAuthorizationResponse, + tool_authorization: AuthorizationResponse, history: list[dict[str, Any]], openai_client: OpenAI, model: str, @@ -432,7 +432,7 @@ def handle_tool_authorization( def wait_for_authorization_completion( - client: Arcade, tool_authorization: AuthAuthorizationResponse | None + client: Arcade, tool_authorization: AuthorizationResponse | None ) -> None: """ Wait for the authorization for a tool call to complete i.e., wait for the user to click on @@ -441,7 +441,7 @@ def wait_for_authorization_completion( if tool_authorization is None: return - auth_response = AuthAuthorizationResponse.model_validate(tool_authorization) + auth_response = AuthorizationResponse.model_validate(tool_authorization) while auth_response.status != "completed": try: diff --git a/arcade/pyproject.toml b/arcade/pyproject.toml index caad6d4e..a6fbdcf2 100644 --- a/arcade/pyproject.toml +++ b/arcade/pyproject.toml @@ -21,7 +21,7 @@ rich = "^13.7.1" Jinja2 = ">=3.1.5,<4.0.0" pyyaml = "^6.0" openai = "^1.36.0" # TODO: relax to an earlier version that still has what we need -arcadepy = "1.0.0rc1" +arcadepy = "^1.0.0" pyjwt = "^2.8.0" loguru = "^0.7.0" tqdm = "^4.1.0" diff --git a/contrib/langchain/langchain_arcade/_utilities.py b/contrib/langchain/langchain_arcade/_utilities.py index 3c636300..7486c31c 100644 --- a/contrib/langchain/langchain_arcade/_utilities.py +++ b/contrib/langchain/langchain_arcade/_utilities.py @@ -1,7 +1,7 @@ from typing import Any, Callable from arcadepy import NOT_GIVEN, Arcade -from arcadepy.types import ToolGetResponse as ToolDefinition +from arcadepy.types import ToolDefinition from langchain_core.runnables import RunnableConfig from langchain_core.tools import StructuredTool from pydantic import BaseModel, Field, create_model diff --git a/contrib/langchain/langchain_arcade/manager.py b/contrib/langchain/langchain_arcade/manager.py index 322b4431..b10b471d 100644 --- a/contrib/langchain/langchain_arcade/manager.py +++ b/contrib/langchain/langchain_arcade/manager.py @@ -3,8 +3,8 @@ from collections.abc import Iterator from typing import Any, Optional from arcadepy import Arcade -from arcadepy.types import ToolGetResponse as ToolDefinition -from arcadepy.types.shared import AuthAuthorizationResponse as AuthorizationResponse +from arcadepy.types import ToolDefinition +from arcadepy.types.shared import AuthorizationResponse from langchain_core.tools import StructuredTool from langchain_arcade._utilities import ( @@ -188,7 +188,7 @@ class ArcadeToolManager: # First, gather single tools if the user specifically requested them. if tools: for tool_id in tools: - # ToolsResource.get(...) returns a single ToolGetResponse. + # ToolsResource.get(...) returns a single ToolDefinition. single_tool = self.client.tools.get(name=tool_id) all_tools.append(single_tool) diff --git a/contrib/langchain/pyproject.toml b/contrib/langchain/pyproject.toml index d5a7a566..f31ead18 100644 --- a/contrib/langchain/pyproject.toml +++ b/contrib/langchain/pyproject.toml @@ -10,7 +10,7 @@ license = "MIT" [tool.poetry.dependencies] python = ">=3.10,<3.13" langchain-core = "^0.3.0" -arcadepy = "~1.0.0rc1" +arcadepy = "^1.0.0" langgraph = {version = ">=0.2.32,<0.3.0", optional = true} [tool.poetry.extras] diff --git a/contrib/langchain/tests/test_manager.py b/contrib/langchain/tests/test_manager.py index a32a9113..bdd0d162 100644 --- a/contrib/langchain/tests/test_manager.py +++ b/contrib/langchain/tests/test_manager.py @@ -2,8 +2,8 @@ from unittest.mock import MagicMock import pytest from arcadepy.pagination import SyncOffsetPage -from arcadepy.types import ToolGetResponse as ToolDefinition -from arcadepy.types.shared import AuthAuthorizationResponse as AuthorizationResponse +from arcadepy.types import ToolDefinition +from arcadepy.types.shared import AuthorizationResponse from langchain_arcade.manager import ArcadeToolManager @@ -63,7 +63,7 @@ def make_tool(): toolkit = kwargs.pop("toolkit", {"name": raw_toolkit}) # Provide a default input - # arcadepy.types.ToolGetResponse expects "input" to be a valid structure (dict). + # arcadepy.types.ToolDefinition expects "input" to be a valid structure (dict). tool_input = kwargs.pop("input", {"parameters": []}) # Convert MagicMock-based requirements (with authorization) to an appropriate dict,