diff --git a/agents/chat/src/chat/agent.py b/agents/chat/src/chat/agent.py index 36a2e3d175..05c61f2fbf 100644 --- a/agents/chat/src/chat/agent.py +++ b/agents/chat/src/chat/agent.py @@ -7,10 +7,7 @@ from textwrap import dedent from typing import Annotated -from a2a.types import ( - AgentSkill, - Message, -) +from a2a.types import AgentSkill, Message from agentstack_sdk.a2a.extensions import ( AgentDetail, AgentDetailContributor, @@ -24,8 +21,6 @@ LLMServiceExtensionSpec, TrajectoryExtensionServer, TrajectoryExtensionSpec, -) -from agentstack_sdk.a2a.extensions.services.platform import ( PlatformApiExtensionServer, PlatformApiExtensionSpec, ) diff --git a/agents/deepagents_content_builder/src/content_builder/utils.py b/agents/deepagents_content_builder/src/content_builder/utils.py index 1fbebfcb6c..1ec6db031c 100644 --- a/agents/deepagents_content_builder/src/content_builder/utils.py +++ b/agents/deepagents_content_builder/src/content_builder/utils.py @@ -11,8 +11,7 @@ from langchain_core.tools import BaseTool from langchain_openai import ChatOpenAI from pydantic import SecretStr -from a2a.types import Role -from a2a.types import Message as A2AMessage +from a2a.types import Role, Message as A2AMessage from langchain.messages import AIMessage, HumanMessage from agentstack_sdk.a2a.extensions import LLMFulfillment diff --git a/agents/form/src/form/agent.py b/agents/form/src/form/agent.py index a012669f5b..f9b752f5c6 100644 --- a/agents/form/src/form/agent.py +++ b/agents/form/src/form/agent.py @@ -9,7 +9,7 @@ import a2a.types import agentstack_sdk.a2a.extensions from a2a.types import Message -from agentstack_sdk.a2a.extensions.common.form import ( +from agentstack_sdk.a2a.extensions import ( CheckboxField, DateField, FileField, @@ -18,8 +18,6 @@ MultiSelectField, OptionItem, TextField, -) -from agentstack_sdk.a2a.extensions.services.form import ( FormServiceExtensionServer, FormServiceExtensionSpec, ) diff --git a/agents/rag/src/rag/agent.py b/agents/rag/src/rag/agent.py index 15b3b33172..95fd63c64c 100644 --- a/agents/rag/src/rag/agent.py +++ b/agents/rag/src/rag/agent.py @@ -21,8 +21,9 @@ LLMServiceExtensionSpec, TrajectoryExtensionServer, TrajectoryExtensionSpec, + PlatformApiExtensionServer, + PlatformApiExtensionSpec, ) -from agentstack_sdk.a2a.extensions.services.platform import PlatformApiExtensionServer, PlatformApiExtensionSpec from agentstack_sdk.a2a.types import AgentArtifact, AgentMessage from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext @@ -41,7 +42,12 @@ from rag.helpers.citations import extract_citations from rag.helpers.event_binder import EventBinder from rag.helpers.trajectory import ToolCallTrajectoryEvent -from rag.helpers.vectore_store import CreateVectorStoreEvent, EmbeddingFunction, create_vector_store, embed_all_files +from rag.helpers.vectore_store import ( + CreateVectorStoreEvent, + EmbeddingFunction, + create_vector_store, + embed_all_files, +) from rag.tools.files.file_creator import FileCreatorTool, FileCreatorToolOutput from rag.tools.files.file_reader import create_file_reader_tool_class from rag.tools.files.utils import extract_files, to_framework_message diff --git a/agents/rag/src/rag/helpers/trajectory.py b/agents/rag/src/rag/helpers/trajectory.py index c3d5b43a76..ec16ddf652 100644 --- a/agents/rag/src/rag/helpers/trajectory.py +++ b/agents/rag/src/rag/helpers/trajectory.py @@ -7,7 +7,7 @@ from typing import Any, Literal from beeai_framework.errors import FrameworkError from beeai_framework.tools import ToolOutput -from agentstack_sdk.a2a.extensions.ui.trajectory import TrajectoryExtensionServer +from agentstack_sdk.a2a.extensions import TrajectoryExtensionServer from pydantic import BaseModel, Field, InstanceOf, field_serializer diff --git a/agents/rag/src/rag/helpers/vectore_store.py b/agents/rag/src/rag/helpers/vectore_store.py index 28f03c5cb4..ef4de438b1 100644 --- a/agents/rag/src/rag/helpers/vectore_store.py +++ b/agents/rag/src/rag/helpers/vectore_store.py @@ -12,16 +12,10 @@ from openai.types import CreateEmbeddingResponse from agentstack_sdk.a2a.extensions import TrajectoryExtensionServer -from agentstack_sdk.platform import File, VectorStore -from agentstack_sdk.platform.vector_store import VectorStoreItem +from agentstack_sdk.platform import File, VectorStore, VectorStoreItem from langchain_text_splitters import RecursiveCharacterTextSplitter from rag.helpers.trajectory import TrajectoryEvent -from tenacity import ( - AsyncRetrying, - retry_if_exception_type, - stop_after_delay, - wait_fixed, -) +from tenacity import AsyncRetrying, retry_if_exception_type, stop_after_delay, wait_fixed class FileExtractionEvent(TrajectoryEvent): diff --git a/agents/rag/src/rag/tools/files/file_reader.py b/agents/rag/src/rag/tools/files/file_reader.py index 44dceed554..715f2a3ff2 100644 --- a/agents/rag/src/rag/tools/files/file_reader.py +++ b/agents/rag/src/rag/tools/files/file_reader.py @@ -7,11 +7,7 @@ from agentstack_sdk.platform import File from beeai_framework.emitter import Emitter -from beeai_framework.tools import ( - JSONToolOutput, - Tool, - ToolRunOptions, -) +from beeai_framework.tools import JSONToolOutput, Tool, ToolRunOptions from pydantic import BaseModel, Field, create_model from rag.tools.files.utils import format_size diff --git a/agents/rag/src/rag/tools/general/act.py b/agents/rag/src/rag/tools/general/act.py index 582e06650c..19bb5e7953 100644 --- a/agents/rag/src/rag/tools/general/act.py +++ b/agents/rag/src/rag/tools/general/act.py @@ -6,15 +6,10 @@ import typing from typing import Literal -from beeai_framework.agents.requirement import ( - RequirementAgent, - RequirementAgentRunState, -) +from beeai_framework.agents.requirement import RequirementAgent, RequirementAgentRunState from beeai_framework.agents.requirement.events import RequirementAgentStartEvent from beeai_framework.agents.requirement.requirements import Requirement, Rule -from beeai_framework.agents.requirement.requirements.requirement import ( - run_with_context, -) +from beeai_framework.agents.requirement.requirements.requirement import run_with_context from beeai_framework.context import RunContext from beeai_framework.emitter import Emitter, EventMeta from beeai_framework.tools import ( diff --git a/agents/rag/src/rag/tools/general/clarification.py b/agents/rag/src/rag/tools/general/clarification.py index a9dffc2d4b..2cb33607a5 100644 --- a/agents/rag/src/rag/tools/general/clarification.py +++ b/agents/rag/src/rag/tools/general/clarification.py @@ -3,20 +3,12 @@ from __future__ import annotations -from beeai_framework.agents.requirement import ( - RequirementAgent, - RequirementAgentRunState, -) +from beeai_framework.agents.requirement import RequirementAgent, RequirementAgentRunState from beeai_framework.agents.requirement.events import RequirementAgentStartEvent from beeai_framework.backend import AssistantMessage from beeai_framework.context import RunContext from beeai_framework.emitter import Emitter, EventMeta -from beeai_framework.tools import ( - StringToolOutput, - Tool, - ToolInputValidationError, - ToolRunOptions, -) +from beeai_framework.tools import StringToolOutput, Tool, ToolInputValidationError, ToolRunOptions from pydantic import BaseModel, Field diff --git a/apps/agentstack-sdk-py/examples/agent.py b/apps/agentstack-sdk-py/examples/agent.py index c66f05a57a..e23753a849 100644 --- a/apps/agentstack-sdk-py/examples/agent.py +++ b/apps/agentstack-sdk-py/examples/agent.py @@ -25,7 +25,7 @@ import uvicorn import agentstack_sdk.a2a.extensions -from agentstack_sdk.a2a.extensions.services.llm import LLMServiceExtensionServer +from agentstack_sdk.a2a.extensions import LLMServiceExtensionServer agent_detail_extension_spec = agentstack_sdk.a2a.extensions.AgentDetailExtensionSpec( params=agentstack_sdk.a2a.extensions.AgentDetail( diff --git a/apps/agentstack-sdk-py/examples/artifacts.py b/apps/agentstack-sdk-py/examples/artifacts.py index 514aa61125..9ae89da645 100644 --- a/apps/agentstack-sdk-py/examples/artifacts.py +++ b/apps/agentstack-sdk-py/examples/artifacts.py @@ -11,17 +11,13 @@ from a2a.utils.message import get_message_text from beeai_framework.adapters.agentstack.backend.chat import AgentStackChatModel from beeai_framework.agents.requirement import RequirementAgent -from beeai_framework.agents.requirement.requirements.conditional import ( - ConditionalRequirement, -) +from beeai_framework.agents.requirement.requirements.conditional import ConditionalRequirement from beeai_framework.backend import AssistantMessage, UserMessage from beeai_framework.tools.think import ThinkTool from agentstack_sdk.a2a.extensions import ( LLMServiceExtensionServer, LLMServiceExtensionSpec, -) -from agentstack_sdk.a2a.extensions.ui.canvas import ( CanvasEditRequest, CanvasExtensionServer, CanvasExtensionSpec, diff --git a/apps/agentstack-sdk-py/examples/canvas_ui_code_agent.py b/apps/agentstack-sdk-py/examples/canvas_ui_code_agent.py index 4fd1a02de0..373598da04 100644 --- a/apps/agentstack-sdk-py/examples/canvas_ui_code_agent.py +++ b/apps/agentstack-sdk-py/examples/canvas_ui_code_agent.py @@ -15,8 +15,9 @@ ErrorExtensionParams, ErrorExtensionServer, ErrorExtensionSpec, + CanvasExtensionServer, + CanvasExtensionSpec, ) -from agentstack_sdk.a2a.extensions.ui.canvas import CanvasExtensionServer, CanvasExtensionSpec from agentstack_sdk.a2a.types import AgentArtifact, AgentMessage from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/apps/agentstack-sdk-py/examples/canvas_ui_test_agent.py b/apps/agentstack-sdk-py/examples/canvas_ui_test_agent.py index e7287363d8..485f41463f 100644 --- a/apps/agentstack-sdk-py/examples/canvas_ui_test_agent.py +++ b/apps/agentstack-sdk-py/examples/canvas_ui_test_agent.py @@ -11,7 +11,7 @@ from a2a.types import Message, TextPart -from agentstack_sdk.a2a.extensions.ui.canvas import CanvasExtensionServer, CanvasExtensionSpec +from agentstack_sdk.a2a.extensions import CanvasExtensionServer, CanvasExtensionSpec from agentstack_sdk.a2a.types import AgentArtifact, AgentMessage from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/apps/agentstack-sdk-py/examples/citation_agent.py b/apps/agentstack-sdk-py/examples/citation_agent.py index 43b5f9c937..0ff03adb8f 100644 --- a/apps/agentstack-sdk-py/examples/citation_agent.py +++ b/apps/agentstack-sdk-py/examples/citation_agent.py @@ -8,11 +8,7 @@ from a2a.types import Message -from agentstack_sdk.a2a.extensions import ( - Citation, - CitationExtensionServer, - CitationExtensionSpec, -) +from agentstack_sdk.a2a.extensions import Citation, CitationExtensionServer, CitationExtensionSpec from agentstack_sdk.a2a.types import AgentMessage from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/apps/agentstack-sdk-py/examples/citation_agent_artifact.py b/apps/agentstack-sdk-py/examples/citation_agent_artifact.py index d6feb0e698..cd0a6a11b7 100644 --- a/apps/agentstack-sdk-py/examples/citation_agent_artifact.py +++ b/apps/agentstack-sdk-py/examples/citation_agent_artifact.py @@ -8,11 +8,7 @@ from a2a.types import Message, TextPart -from agentstack_sdk.a2a.extensions import ( - Citation, - CitationExtensionServer, - CitationExtensionSpec, -) +from agentstack_sdk.a2a.extensions import Citation, CitationExtensionServer, CitationExtensionSpec from agentstack_sdk.a2a.types import AgentArtifact from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/apps/agentstack-sdk-py/examples/connector_management.py b/apps/agentstack-sdk-py/examples/connector_management.py index e9240ac81a..e676b3454c 100644 --- a/apps/agentstack-sdk-py/examples/connector_management.py +++ b/apps/agentstack-sdk-py/examples/connector_management.py @@ -16,7 +16,7 @@ import asyncio import logging -from agentstack_sdk.platform.connector import Connector, ConnectorState +from agentstack_sdk.platform import Connector, ConnectorState logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) diff --git a/apps/agentstack-sdk-py/examples/connectors_agent.py b/apps/agentstack-sdk-py/examples/connectors_agent.py index f31e682a37..f0c99895da 100644 --- a/apps/agentstack-sdk-py/examples/connectors_agent.py +++ b/apps/agentstack-sdk-py/examples/connectors_agent.py @@ -9,8 +9,12 @@ from a2a.types import Message from mcp import ClientSession -from agentstack_sdk.a2a.extensions.services.mcp import MCPServiceExtensionServer, MCPServiceExtensionSpec -from agentstack_sdk.a2a.extensions.services.platform import PlatformApiExtensionServer, PlatformApiExtensionSpec +from agentstack_sdk.a2a.extensions import ( + MCPServiceExtensionServer, + MCPServiceExtensionSpec, + PlatformApiExtensionServer, + PlatformApiExtensionSpec, +) from agentstack_sdk.a2a.types import RunYield from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/apps/agentstack-sdk-py/examples/connectors_client.py b/apps/agentstack-sdk-py/examples/connectors_client.py index 3d21e14179..51efd55d84 100644 --- a/apps/agentstack-sdk-py/examples/connectors_client.py +++ b/apps/agentstack-sdk-py/examples/connectors_client.py @@ -12,8 +12,8 @@ from pydantic import HttpUrl import agentstack_sdk.a2a.extensions -from agentstack_sdk.a2a.extensions.services.platform import PlatformApiExtensionClient -from agentstack_sdk.platform.client import use_platform_client +from agentstack_sdk.a2a.extensions import PlatformApiExtensionClient +from agentstack_sdk.platform import use_platform_client from agentstack_sdk.platform.context import Context, ContextPermissions, Permissions diff --git a/apps/agentstack-sdk-py/examples/dependencies.py b/apps/agentstack-sdk-py/examples/dependencies.py index fa72efb6ed..af58689aa6 100644 --- a/apps/agentstack-sdk-py/examples/dependencies.py +++ b/apps/agentstack-sdk-py/examples/dependencies.py @@ -8,12 +8,14 @@ from a2a.types import Message -from agentstack_sdk.a2a.extensions import LLMServiceExtensionServer, LLMServiceExtensionSpec -from agentstack_sdk.a2a.extensions.services.platform import ( +from agentstack_sdk.a2a.extensions import ( + LLMServiceExtensionServer, + LLMServiceExtensionSpec, PlatformApiExtensionServer, PlatformApiExtensionSpec, + TrajectoryExtensionServer, + TrajectoryExtensionSpec, ) -from agentstack_sdk.a2a.extensions.ui.trajectory import TrajectoryExtensionServer, TrajectoryExtensionSpec from agentstack_sdk.a2a.types import AuthRequired, RunYield from agentstack_sdk.platform import File from agentstack_sdk.server import Server diff --git a/apps/agentstack-sdk-py/examples/error_agent.py b/apps/agentstack-sdk-py/examples/error_agent.py index 0ce94d4d58..1311021ce3 100644 --- a/apps/agentstack-sdk-py/examples/error_agent.py +++ b/apps/agentstack-sdk-py/examples/error_agent.py @@ -8,7 +8,7 @@ from a2a.types import Message -from agentstack_sdk.a2a.extensions.ui.error import ( +from agentstack_sdk.a2a.extensions import ( ErrorExtensionParams, ErrorExtensionServer, ErrorExtensionSpec, diff --git a/apps/agentstack-sdk-py/examples/form_agent.py b/apps/agentstack-sdk-py/examples/form_agent.py index f3f95874a0..58ce6018ac 100644 --- a/apps/agentstack-sdk-py/examples/form_agent.py +++ b/apps/agentstack-sdk-py/examples/form_agent.py @@ -7,8 +7,9 @@ from a2a.types import Message from pydantic import BaseModel -from agentstack_sdk.a2a.extensions.common.form import FormRender, TextField -from agentstack_sdk.a2a.extensions.services.form import ( +from agentstack_sdk.a2a.extensions import ( + FormRender, + TextField, FormServiceExtensionServer, FormServiceExtensionSpec, ) diff --git a/apps/agentstack-sdk-py/examples/form_request_agent.py b/apps/agentstack-sdk-py/examples/form_request_agent.py index 11984abe6a..a40c846479 100644 --- a/apps/agentstack-sdk-py/examples/form_request_agent.py +++ b/apps/agentstack-sdk-py/examples/form_request_agent.py @@ -8,7 +8,7 @@ from a2a.types import Message from pydantic import BaseModel -from agentstack_sdk.a2a.extensions.common.form import ( +from agentstack_sdk.a2a.extensions import ( CheckboxField, DateField, FileField, @@ -18,8 +18,9 @@ OptionItem, SingleSelectField, TextField, + FormRequestExtensionServer, + FormRequestExtensionSpec, ) -from agentstack_sdk.a2a.extensions.ui.form_request import FormRequestExtensionServer, FormRequestExtensionSpec from agentstack_sdk.server import Server server = Server() diff --git a/apps/agentstack-sdk-py/examples/github_mcp_agent.py b/apps/agentstack-sdk-py/examples/github_mcp_agent.py index 55fd0c9420..80c135dc15 100644 --- a/apps/agentstack-sdk-py/examples/github_mcp_agent.py +++ b/apps/agentstack-sdk-py/examples/github_mcp_agent.py @@ -10,7 +10,7 @@ from a2a.types import Message from mcp import ClientSession -from agentstack_sdk.a2a.extensions.services.mcp import MCPServiceExtensionServer, MCPServiceExtensionSpec +from agentstack_sdk.a2a.extensions import MCPServiceExtensionServer, MCPServiceExtensionSpec from agentstack_sdk.a2a.types import RunYield from agentstack_sdk.server import Server diff --git a/apps/agentstack-sdk-py/examples/history_framework.py b/apps/agentstack-sdk-py/examples/history_framework.py index aeb2e6ca80..c7c401042a 100644 --- a/apps/agentstack-sdk-py/examples/history_framework.py +++ b/apps/agentstack-sdk-py/examples/history_framework.py @@ -14,10 +14,7 @@ from beeai_framework.backend import AssistantMessage, UserMessage from beeai_framework.tools.think import ThinkTool -from agentstack_sdk.a2a.extensions import ( - LLMServiceExtensionServer, - LLMServiceExtensionSpec, -) +from agentstack_sdk.a2a.extensions import LLMServiceExtensionServer, LLMServiceExtensionSpec from agentstack_sdk.a2a.types import AgentMessage from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/apps/agentstack-sdk-py/examples/mcp_agent.py b/apps/agentstack-sdk-py/examples/mcp_agent.py index b62b34a6da..b567a41e75 100644 --- a/apps/agentstack-sdk-py/examples/mcp_agent.py +++ b/apps/agentstack-sdk-py/examples/mcp_agent.py @@ -9,9 +9,11 @@ from a2a.types import Message from mcp import ClientSession -from agentstack_sdk.a2a.extensions.auth.oauth import OAuthExtensionServer, OAuthExtensionSpec -from agentstack_sdk.a2a.extensions.services.mcp import MCPServiceExtensionServer, MCPServiceExtensionSpec -from agentstack_sdk.a2a.extensions.tools.call import ( +from agentstack_sdk.a2a.extensions import ( + OAuthExtensionServer, + OAuthExtensionSpec, + MCPServiceExtensionServer, + MCPServiceExtensionSpec, ToolCallExtensionParams, ToolCallExtensionServer, ToolCallExtensionSpec, diff --git a/apps/agentstack-sdk-py/examples/mcp_client.py b/apps/agentstack-sdk-py/examples/mcp_client.py index cc9ad2835e..5c4ab28bda 100644 --- a/apps/agentstack-sdk-py/examples/mcp_client.py +++ b/apps/agentstack-sdk-py/examples/mcp_client.py @@ -15,7 +15,7 @@ from pydantic import AnyUrl import agentstack_sdk.a2a.extensions -from agentstack_sdk.a2a.extensions.tools.call import ToolCallResponse +from agentstack_sdk.a2a.extensions import ToolCallResponse class OAuthHandler: diff --git a/apps/agentstack-sdk-py/examples/oauth.py b/apps/agentstack-sdk-py/examples/oauth.py index ced5b3f729..2a2615ad19 100644 --- a/apps/agentstack-sdk-py/examples/oauth.py +++ b/apps/agentstack-sdk-py/examples/oauth.py @@ -11,21 +11,19 @@ from a2a.utils.message import get_message_text from beeai_framework.adapters.agentstack.backend.chat import AgentStackChatModel from beeai_framework.agents.requirement import RequirementAgent -from beeai_framework.agents.requirement.requirements.conditional import ( - ConditionalRequirement, -) +from beeai_framework.agents.requirement.requirements.conditional import ConditionalRequirement from beeai_framework.backend import AssistantMessage, UserMessage from beeai_framework.backend.types import ChatModelParameters from beeai_framework.tools.mcp import MCPTool from beeai_framework.tools.think import ThinkTool from mcp import ClientSession -from mcp.client.streamable_http import streamablehttp_client # pyrefly: ignore [deprecated] -- TODO: upgrade +from mcp.client.streamable_http import ( + streamablehttp_client # pyrefly: ignore [deprecated] -- TODO: upgrade, +) from agentstack_sdk.a2a.extensions import ( LLMServiceExtensionServer, LLMServiceExtensionSpec, -) -from agentstack_sdk.a2a.extensions.auth.oauth import ( OAuthExtensionServer, OAuthExtensionSpec, ) diff --git a/apps/agentstack-sdk-py/examples/secrets_agent.py b/apps/agentstack-sdk-py/examples/secrets_agent.py index 4ee66a0e30..1f7ba41982 100644 --- a/apps/agentstack-sdk-py/examples/secrets_agent.py +++ b/apps/agentstack-sdk-py/examples/secrets_agent.py @@ -11,8 +11,6 @@ from agentstack_sdk.a2a.extensions import ( AgentDetail, AgentDetailContributor, -) -from agentstack_sdk.a2a.extensions.auth.secrets import ( SecretDemand, SecretsExtensionServer, SecretsExtensionSpec, diff --git a/apps/agentstack-sdk-py/examples/settings_agent_legacy.py b/apps/agentstack-sdk-py/examples/settings_agent_legacy.py index b78f3d58c7..89ef062cd3 100644 --- a/apps/agentstack-sdk-py/examples/settings_agent_legacy.py +++ b/apps/agentstack-sdk-py/examples/settings_agent_legacy.py @@ -9,7 +9,7 @@ from a2a.types import Message -from agentstack_sdk.a2a.extensions.ui.settings import ( +from agentstack_sdk.a2a.extensions import ( CheckboxField, CheckboxGroupField, OptionItem, diff --git a/apps/agentstack-sdk-py/examples/tool_call_approval_agent.py b/apps/agentstack-sdk-py/examples/tool_call_approval_agent.py index 87f08bb4ec..30baff5fb7 100644 --- a/apps/agentstack-sdk-py/examples/tool_call_approval_agent.py +++ b/apps/agentstack-sdk-py/examples/tool_call_approval_agent.py @@ -7,10 +7,12 @@ from a2a.types import Message from mcp import ClientSession -from mcp.client.streamable_http import streamablehttp_client # pyrefly: ignore [deprecated] -- TODO: upgrade +from mcp.client.streamable_http import ( + streamablehttp_client # pyrefly: ignore [deprecated] -- TODO: upgrade, +) from mcp.types import TextContent -from agentstack_sdk.a2a.extensions.interactions.approval import ( +from agentstack_sdk.a2a.extensions import ( ApprovalExtensionParams, ApprovalExtensionServer, ApprovalExtensionSpec, diff --git a/apps/agentstack-sdk-py/examples/tool_call_approval_client.py b/apps/agentstack-sdk-py/examples/tool_call_approval_client.py index d5a0349f9a..07ba93b681 100644 --- a/apps/agentstack-sdk-py/examples/tool_call_approval_client.py +++ b/apps/agentstack-sdk-py/examples/tool_call_approval_client.py @@ -12,7 +12,7 @@ from a2a.types import Task import agentstack_sdk.a2a.extensions -from agentstack_sdk.a2a.extensions.interactions.approval import ApprovalResponse +from agentstack_sdk.a2a.extensions import ApprovalResponse async def run(base_url: str = "http://127.0.0.1:10000"): diff --git a/apps/agentstack-sdk-py/examples/trajectory_agent.py b/apps/agentstack-sdk-py/examples/trajectory_agent.py index 1e6b329c77..a5e28cf724 100644 --- a/apps/agentstack-sdk-py/examples/trajectory_agent.py +++ b/apps/agentstack-sdk-py/examples/trajectory_agent.py @@ -9,10 +9,7 @@ from a2a.types import Message -from agentstack_sdk.a2a.extensions import ( - TrajectoryExtensionServer, - TrajectoryExtensionSpec, -) +from agentstack_sdk.a2a.extensions import TrajectoryExtensionServer, TrajectoryExtensionSpec from agentstack_sdk.a2a.types import AgentMessage from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/apps/agentstack-sdk-py/src/agentstack_sdk/a2a/extensions/__init__.py b/apps/agentstack-sdk-py/src/agentstack_sdk/a2a/extensions/__init__.py index d6dfcab78b..e4329742f2 100644 --- a/apps/agentstack-sdk-py/src/agentstack_sdk/a2a/extensions/__init__.py +++ b/apps/agentstack-sdk-py/src/agentstack_sdk/a2a/extensions/__init__.py @@ -8,3 +8,4 @@ from .services import * from .tools import * from .ui import * +from .common import * diff --git a/apps/agentstack-server/tests/e2e/agents/test_agent_builds.py b/apps/agentstack-server/tests/e2e/agents/test_agent_builds.py index 3034def427..2e28e9628e 100644 --- a/apps/agentstack-server/tests/e2e/agents/test_agent_builds.py +++ b/apps/agentstack-server/tests/e2e/agents/test_agent_builds.py @@ -8,9 +8,7 @@ import pytest from a2a.client.helpers import create_text_message_object -from a2a.types import ( - TaskState, -) +from a2a.types import TaskState from agentstack_sdk.platform import AddProvider, BuildState, Provider, ProviderBuild from agentstack_sdk.platform.context import Context diff --git a/apps/agentstack-server/tests/e2e/agents/test_agent_starts.py b/apps/agentstack-server/tests/e2e/agents/test_agent_starts.py index 0eee19b2ef..29a5660171 100644 --- a/apps/agentstack-server/tests/e2e/agents/test_agent_starts.py +++ b/apps/agentstack-server/tests/e2e/agents/test_agent_starts.py @@ -19,7 +19,11 @@ from a2a.client.helpers import create_text_message_object from a2a.server.apps import A2AStarletteApplication from a2a.types import AgentCapabilities, AgentCard, Role, Task, TaskState -from agentstack_sdk.a2a.extensions import LLMFulfillment, LLMServiceExtensionClient, LLMServiceExtensionSpec +from agentstack_sdk.a2a.extensions import ( + LLMFulfillment, + LLMServiceExtensionClient, + LLMServiceExtensionSpec, +) from agentstack_sdk.platform import ModelProvider, Provider from agentstack_sdk.platform.context import Context, ContextPermissions, Permissions from kr8s.asyncio.objects import Deployment diff --git a/apps/agentstack-server/tests/e2e/agents/test_context_store.py b/apps/agentstack-server/tests/e2e/agents/test_context_store.py index 2317b9c40a..c7bd37349b 100644 --- a/apps/agentstack-server/tests/e2e/agents/test_context_store.py +++ b/apps/agentstack-server/tests/e2e/agents/test_context_store.py @@ -8,7 +8,7 @@ import pytest from a2a.client import Client, ClientEvent, create_text_message_object from a2a.types import Message, Role, Task -from agentstack_sdk.a2a.extensions.services.platform import PlatformApiExtensionClient, PlatformApiExtensionSpec +from agentstack_sdk.a2a.extensions import PlatformApiExtensionClient, PlatformApiExtensionSpec from agentstack_sdk.a2a.types import RunYield from agentstack_sdk.platform.context import Context, ContextPermissions, ContextToken, Permissions from agentstack_sdk.server import Server diff --git a/apps/agentstack-server/tests/e2e/agents/test_platform_extensions.py b/apps/agentstack-server/tests/e2e/agents/test_platform_extensions.py index fbe2ec6098..8cd359db32 100644 --- a/apps/agentstack-server/tests/e2e/agents/test_platform_extensions.py +++ b/apps/agentstack-server/tests/e2e/agents/test_platform_extensions.py @@ -11,7 +11,7 @@ import pytest from a2a.client import Client, create_text_message_object from a2a.types import FilePart, Message, Role, TaskState -from agentstack_sdk.a2a.extensions.services.platform import ( +from agentstack_sdk.a2a.extensions import ( PlatformApiExtensionClient, PlatformApiExtensionServer, PlatformApiExtensionSpec, diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/agent-settings/test_basic_settings.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/agent-settings/test_basic_settings.py index c971670030..0d71c2fa64 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/agent-settings/test_basic_settings.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/agent-settings/test_basic_settings.py @@ -6,8 +6,13 @@ import pytest from a2a.client.helpers import create_text_message_object from a2a.types import TaskState -from agentstack_sdk.a2a.extensions import FormServiceExtensionMetadata, FormServiceExtensionSpec, SettingsFormResponse -from agentstack_sdk.a2a.extensions.common.form import CheckboxGroupFieldValue, SingleSelectFieldValue +from agentstack_sdk.a2a.extensions import ( + FormServiceExtensionMetadata, + FormServiceExtensionSpec, + SettingsFormResponse, + CheckboxGroupFieldValue, + SingleSelectFieldValue, +) from tests.e2e.examples.conftest import run_example diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/canvas/test_canvas_with_llm.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/canvas/test_canvas_with_llm.py index b3af1f2619..16638e197c 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/canvas/test_canvas_with_llm.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/canvas/test_canvas_with_llm.py @@ -6,7 +6,7 @@ import pytest from a2a.client.helpers import create_text_message_object from a2a.types import TaskState -from agentstack_sdk.a2a.extensions.ui.canvas import CanvasExtensionSpec +from agentstack_sdk.a2a.extensions import CanvasExtensionSpec from tests.e2e.examples.conftest import run_example diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_adding_error_context.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_adding_error_context.py index c86e143cd5..31a31506f6 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_adding_error_context.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_adding_error_context.py @@ -6,7 +6,7 @@ import pytest from a2a.client.helpers import create_text_message_object from a2a.types import TaskState -from agentstack_sdk.a2a.extensions.ui.error import ErrorExtensionSpec +from agentstack_sdk.a2a.extensions import ErrorExtensionSpec from tests.e2e.examples.conftest import run_example diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_advanced_error_reporting.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_advanced_error_reporting.py index 927a2986e9..149e59d839 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_advanced_error_reporting.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_advanced_error_reporting.py @@ -6,7 +6,7 @@ import pytest from a2a.client.helpers import create_text_message_object from a2a.types import TaskState -from agentstack_sdk.a2a.extensions.ui.error import ErrorExtensionSpec +from agentstack_sdk.a2a.extensions import ErrorExtensionSpec from tests.e2e.examples.conftest import run_example diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_multiple_errors_handling.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_multiple_errors_handling.py index 57fb3ee43c..2595973cab 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_multiple_errors_handling.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_multiple_errors_handling.py @@ -6,7 +6,7 @@ import pytest from a2a.client.helpers import create_text_message_object from a2a.types import TaskState -from agentstack_sdk.a2a.extensions.ui.error import ErrorExtensionSpec +from agentstack_sdk.a2a.extensions import ErrorExtensionSpec from tests.e2e.examples.conftest import run_example diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/files/test_file_processing.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/files/test_file_processing.py index eacc552f75..315c1adc52 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/files/test_file_processing.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/files/test_file_processing.py @@ -7,7 +7,7 @@ import pytest from a2a.types import Message, Role, TaskState -from agentstack_sdk.a2a.extensions.services.platform import PlatformApiExtensionClient, PlatformApiExtensionSpec +from agentstack_sdk.a2a.extensions import PlatformApiExtensionClient, PlatformApiExtensionSpec from agentstack_sdk.platform import File from agentstack_sdk.platform.context import ContextPermissions, Permissions from agentstack_sdk.util.file import load_file diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/forms/test_dynamic_form_requests.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/forms/test_dynamic_form_requests.py index d9a3399889..fffff79eea 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/forms/test_dynamic_form_requests.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/forms/test_dynamic_form_requests.py @@ -8,8 +8,12 @@ import pytest from a2a.client.helpers import create_text_message_object from a2a.types import Message, Role, TaskState -from agentstack_sdk.a2a.extensions.common.form import FormResponse, TextFieldValue -from agentstack_sdk.a2a.extensions.ui.form_request import FormRequestExtensionClient, FormRequestExtensionSpec +from agentstack_sdk.a2a.extensions import ( + FormResponse, + TextFieldValue, + FormRequestExtensionClient, + FormRequestExtensionSpec, +) from tests.e2e.examples.conftest import run_example diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/forms/test_initial_form_rendering.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/forms/test_initial_form_rendering.py index fdcfa00164..65268dfa66 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/forms/test_initial_form_rendering.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/forms/test_initial_form_rendering.py @@ -6,8 +6,12 @@ import pytest from a2a.client.helpers import create_text_message_object from a2a.types import TaskState -from agentstack_sdk.a2a.extensions import FormResponse, FormServiceExtensionMetadata, FormServiceExtensionSpec -from agentstack_sdk.a2a.extensions.common.form import TextFieldValue +from agentstack_sdk.a2a.extensions import ( + FormResponse, + FormServiceExtensionMetadata, + FormServiceExtensionSpec, + TextFieldValue, +) from tests.e2e.examples.conftest import run_example diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/llm-proxy-service/test_llm_access.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/llm-proxy-service/test_llm_access.py index abd4eef159..8334c50893 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/llm-proxy-service/test_llm_access.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/llm-proxy-service/test_llm_access.py @@ -6,7 +6,11 @@ import pytest from a2a.client.helpers import create_text_message_object from a2a.types import TaskState -from agentstack_sdk.a2a.extensions import LLMFulfillment, LLMServiceExtensionClient, LLMServiceExtensionSpec +from agentstack_sdk.a2a.extensions import ( + LLMFulfillment, + LLMServiceExtensionClient, + LLMServiceExtensionSpec, +) from tests.e2e.examples.conftest import run_example diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/mcp/test_custom_mcp_client_with_oauth.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/mcp/test_custom_mcp_client_with_oauth.py index 3a117c93ee..d23b8f3e38 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/mcp/test_custom_mcp_client_with_oauth.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/mcp/test_custom_mcp_client_with_oauth.py @@ -16,8 +16,7 @@ import pytest import uvicorn from a2a.types import Message, Part, Role, TaskState, TextPart -from agentstack_sdk.a2a.extensions import OAuthExtensionClient, OAuthFulfillment -from agentstack_sdk.a2a.extensions.auth.oauth import OAuthExtensionSpec +from agentstack_sdk.a2a.extensions import OAuthExtensionClient, OAuthFulfillment, OAuthExtensionSpec from mcp.server.auth.provider import ( AccessToken, AuthorizationCode, diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/mcp/test_github_mcp_agent.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/mcp/test_github_mcp_agent.py index c4ee9a7b95..99c969f37e 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/mcp/test_github_mcp_agent.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/mcp/test_github_mcp_agent.py @@ -14,7 +14,7 @@ import uvicorn from a2a.client.helpers import create_text_message_object from a2a.types import TaskState -from agentstack_sdk.a2a.extensions.services.mcp import ( +from agentstack_sdk.a2a.extensions import ( MCPFulfillment, MCPServiceExtensionClient, MCPServiceExtensionSpec, diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/multi-turn/test_advanced_history.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/multi-turn/test_advanced_history.py index e52b1e13eb..98479953a2 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/multi-turn/test_advanced_history.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/multi-turn/test_advanced_history.py @@ -6,7 +6,11 @@ import pytest from a2a.client.helpers import create_text_message_object from a2a.types import TaskState -from agentstack_sdk.a2a.extensions import LLMFulfillment, LLMServiceExtensionClient, LLMServiceExtensionSpec +from agentstack_sdk.a2a.extensions import ( + LLMFulfillment, + LLMServiceExtensionClient, + LLMServiceExtensionSpec, +) from agentstack_sdk.platform import ModelProvider from tests.e2e.examples.conftest import run_example diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/overview/test_advanced_server_wrapper.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/overview/test_advanced_server_wrapper.py index f78fddc59e..b851b2897a 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/overview/test_advanced_server_wrapper.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/overview/test_advanced_server_wrapper.py @@ -8,8 +8,12 @@ import pytest from a2a.client.helpers import create_text_message_object from a2a.types import Message, Role, TaskState -from agentstack_sdk.a2a.extensions.common.form import FormResponse, TextFieldValue -from agentstack_sdk.a2a.extensions.ui.form_request import FormRequestExtensionClient, FormRequestExtensionSpec +from agentstack_sdk.a2a.extensions import ( + FormResponse, + TextFieldValue, + FormRequestExtensionClient, + FormRequestExtensionSpec, +) from tests.e2e.examples.conftest import run_example diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/overview/test_dependency_injection.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/overview/test_dependency_injection.py index faa9f695f9..48cd040a1e 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/overview/test_dependency_injection.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/overview/test_dependency_injection.py @@ -6,7 +6,11 @@ import pytest from a2a.client.helpers import create_text_message_object from a2a.types import TaskState -from agentstack_sdk.a2a.extensions import LLMFulfillment, LLMServiceExtensionClient, LLMServiceExtensionSpec +from agentstack_sdk.a2a.extensions import ( + LLMFulfillment, + LLMServiceExtensionClient, + LLMServiceExtensionSpec, +) from agentstack_sdk.platform import ModelProvider from tests.e2e.examples.conftest import run_example diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/rag/test_conversation_rag_agent.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/rag/test_conversation_rag_agent.py index a730e0c901..c3c9ce7182 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/rag/test_conversation_rag_agent.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/rag/test_conversation_rag_agent.py @@ -12,8 +12,9 @@ EmbeddingFulfillment, EmbeddingServiceExtensionClient, EmbeddingServiceExtensionSpec, + PlatformApiExtensionClient, + PlatformApiExtensionSpec, ) -from agentstack_sdk.a2a.extensions.services.platform import PlatformApiExtensionClient, PlatformApiExtensionSpec from agentstack_sdk.platform import File, ModelCapability, ModelProvider from agentstack_sdk.platform.context import ContextPermissions, Permissions diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/rag/test_simple_rag_agent.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/rag/test_simple_rag_agent.py index 0a32c37d71..6402ae99f8 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/rag/test_simple_rag_agent.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/rag/test_simple_rag_agent.py @@ -12,8 +12,9 @@ EmbeddingFulfillment, EmbeddingServiceExtensionClient, EmbeddingServiceExtensionSpec, + PlatformApiExtensionClient, + PlatformApiExtensionSpec, ) -from agentstack_sdk.a2a.extensions.services.platform import PlatformApiExtensionClient, PlatformApiExtensionSpec from agentstack_sdk.platform import File, ModelCapability, ModelProvider from agentstack_sdk.platform.context import ContextPermissions, Permissions diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/secrets/test_basic_secrets.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/secrets/test_basic_secrets.py index 2cfef66b1e..fc9fe8baa9 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/secrets/test_basic_secrets.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/secrets/test_basic_secrets.py @@ -8,7 +8,7 @@ import pytest from a2a.client.helpers import create_text_message_object from a2a.types import Message, Role, TaskState -from agentstack_sdk.a2a.extensions.auth.secrets import SecretsExtensionSpec +from agentstack_sdk.a2a.extensions import SecretsExtensionSpec from tests.e2e.examples.conftest import run_example diff --git a/apps/agentstack-server/tests/e2e/examples/agent-integration/tool-calls/test_basic_approve.py b/apps/agentstack-server/tests/e2e/examples/agent-integration/tool-calls/test_basic_approve.py index 750c217d10..57f31b5cd8 100644 --- a/apps/agentstack-server/tests/e2e/examples/agent-integration/tool-calls/test_basic_approve.py +++ b/apps/agentstack-server/tests/e2e/examples/agent-integration/tool-calls/test_basic_approve.py @@ -8,8 +8,11 @@ import pytest from a2a.client.helpers import create_text_message_object from a2a.types import Message, Role, TaskState -from agentstack_sdk.a2a.extensions import ApprovalExtensionClient, ApprovalExtensionSpec -from agentstack_sdk.a2a.extensions.interactions.approval import ApprovalResponse +from agentstack_sdk.a2a.extensions import ( + ApprovalExtensionClient, + ApprovalExtensionSpec, + ApprovalResponse, +) from tests.e2e.examples.conftest import run_example diff --git a/apps/agentstack-server/tests/e2e/routes/test_a2a_proxy.py b/apps/agentstack-server/tests/e2e/routes/test_a2a_proxy.py index 4cbcc57457..c9d676aa21 100644 --- a/apps/agentstack-server/tests/e2e/routes/test_a2a_proxy.py +++ b/apps/agentstack-server/tests/e2e/routes/test_a2a_proxy.py @@ -17,10 +17,7 @@ import pytest import uvicorn -from a2a.server.apps import ( - A2AFastAPIApplication, - A2AStarletteApplication, -) +from a2a.server.apps import A2AFastAPIApplication, A2AStarletteApplication from a2a.types import ( AgentCapabilities, AgentCard, @@ -52,12 +49,7 @@ from httpx import Client from sqlalchemy import text from starlette.applications import Starlette -from starlette.authentication import ( - AuthCredentials, - AuthenticationBackend, - BaseUser, - SimpleUser, -) +from starlette.authentication import AuthCredentials, AuthenticationBackend, BaseUser, SimpleUser from starlette.middleware import Middleware from starlette.middleware.authentication import AuthenticationMiddleware from starlette.requests import HTTPConnection diff --git a/apps/agentstack-server/tests/e2e/routes/test_files.py b/apps/agentstack-server/tests/e2e/routes/test_files.py index 91f7c9f62d..21204c3888 100644 --- a/apps/agentstack-server/tests/e2e/routes/test_files.py +++ b/apps/agentstack-server/tests/e2e/routes/test_files.py @@ -9,10 +9,8 @@ import httpx import pytest -from agentstack_sdk.platform import use_platform_client -from agentstack_sdk.platform.client import PlatformClient +from agentstack_sdk.platform import use_platform_client, PlatformClient, File from agentstack_sdk.platform.context import Context, ContextPermissions, Permissions -from agentstack_sdk.platform.file import File from httpx import AsyncClient from tenacity import AsyncRetrying, stop_after_delay, wait_fixed diff --git a/apps/agentstack-server/tests/e2e/routes/test_user.py b/apps/agentstack-server/tests/e2e/routes/test_user.py index 02b3b0d636..1a729e39ad 100644 --- a/apps/agentstack-server/tests/e2e/routes/test_user.py +++ b/apps/agentstack-server/tests/e2e/routes/test_user.py @@ -4,7 +4,7 @@ from __future__ import annotations import pytest -from agentstack_sdk.platform.user import User +from agentstack_sdk.platform import User pytestmark = pytest.mark.e2e diff --git a/apps/agentstack-server/tests/e2e/routes/test_vector_stores.py b/apps/agentstack-server/tests/e2e/routes/test_vector_stores.py index 33f10fc566..1f61c57bd0 100644 --- a/apps/agentstack-server/tests/e2e/routes/test_vector_stores.py +++ b/apps/agentstack-server/tests/e2e/routes/test_vector_stores.py @@ -5,7 +5,7 @@ import httpx import pytest -from agentstack_sdk.platform.vector_store import VectorStore, VectorStoreItem +from agentstack_sdk.platform import VectorStore, VectorStoreItem pytestmark = pytest.mark.e2e diff --git a/apps/agentstack-server/tests/e2e/sdk/test_connectors_sdk.py b/apps/agentstack-server/tests/e2e/sdk/test_connectors_sdk.py index 3b1145cf4f..d6df94da1c 100644 --- a/apps/agentstack-server/tests/e2e/sdk/test_connectors_sdk.py +++ b/apps/agentstack-server/tests/e2e/sdk/test_connectors_sdk.py @@ -13,8 +13,7 @@ import logging import pytest -from agentstack_sdk.platform.client import PlatformClient -from agentstack_sdk.platform.connector import Connector, ConnectorState +from agentstack_sdk.platform import PlatformClient, Connector, ConnectorState from httpx import HTTPStatusError from tests.conftest import Configuration diff --git a/docs/development/agent-integration/agent-settings.mdx b/docs/development/agent-integration/agent-settings.mdx index 89a5701add..2e2d1e2e58 100644 --- a/docs/development/agent-integration/agent-settings.mdx +++ b/docs/development/agent-integration/agent-settings.mdx @@ -50,14 +50,12 @@ from collections.abc import AsyncGenerator from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions.common.form import ( +from agentstack_sdk.a2a.extensions import ( CheckboxField, CheckboxGroupField, OptionItem, SettingsFormRender, SingleSelectField, -) -from agentstack_sdk.a2a.extensions.services.form import ( FormServiceExtensionServer, FormServiceExtensionSpec, ) @@ -185,7 +183,7 @@ if __name__ == "__main__": Here's what you need to know to add settings capabilities to your agent: -**Import the form extension**: Import `FormServiceExtensionServer`, `FormServiceExtensionSpec`, `SettingsFormRender`, and field types from `agentstack_sdk.a2a.extensions.common.form` and `agentstack_sdk.a2a.extensions.services.form`. +**Import the form extension**: Import `FormServiceExtensionServer`, `FormServiceExtensionSpec`, `SettingsFormRender`, and field types from `agentstack_sdk.a2a.extensions`. **Inject the extension**: Add a form parameter to your agent function using the `Annotated` type hint with `FormServiceExtensionServer` and `FormServiceExtensionSpec.demand_settings()`. @@ -213,7 +211,7 @@ Agent Stack supports various field types for collecting different kinds of confi Groups multiple checkboxes together for related boolean options. A single checkbox must still be wrapped inside the `CheckboxGroupField`. ```python -from agentstack_sdk.a2a.extensions.common.form import CheckboxField, CheckboxGroupField +from agentstack_sdk.a2a.extensions import CheckboxField, CheckboxGroupField CheckboxGroupField( id="features", @@ -239,7 +237,7 @@ CheckboxGroupField( Dropdown fields for choosing an option from a list: ```python -from agentstack_sdk.a2a.extensions.common.form import OptionItem, SingleSelectField +from agentstack_sdk.a2a.extensions import OptionItem, SingleSelectField SingleSelectField( id="response_style", diff --git a/docs/development/agent-integration/canvas.mdx b/docs/development/agent-integration/canvas.mdx index 2e10a48784..fee8102567 100644 --- a/docs/development/agent-integration/canvas.mdx +++ b/docs/development/agent-integration/canvas.mdx @@ -34,8 +34,9 @@ from typing import Annotated from a2a.types import Message, TextPart -from agentstack_sdk.a2a.extensions import LLMServiceExtensionServer, LLMServiceExtensionSpec -from agentstack_sdk.a2a.extensions.ui.canvas import ( +from agentstack_sdk.a2a.extensions import ( + LLMServiceExtensionServer, + LLMServiceExtensionSpec, CanvasExtensionServer, CanvasExtensionSpec, ) @@ -124,7 +125,7 @@ if __name__ == "__main__": -Import `CanvasExtensionServer` and `CanvasExtensionSpec` from `agentstack_sdk.a2a.extensions.ui.canvas`. +Import `CanvasExtensionServer` and `CanvasExtensionSpec` from `agentstack_sdk.a2a.extensions`. diff --git a/docs/development/agent-integration/citations.mdx b/docs/development/agent-integration/citations.mdx index f84fe914b2..d605c83a9b 100644 --- a/docs/development/agent-integration/citations.mdx +++ b/docs/development/agent-integration/citations.mdx @@ -28,11 +28,7 @@ import os from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions import ( - Citation, - CitationExtensionServer, - CitationExtensionSpec, -) +from agentstack_sdk.a2a.extensions import Citation, CitationExtensionServer, CitationExtensionSpec from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/docs/development/agent-integration/env-variables.mdx b/docs/development/agent-integration/env-variables.mdx index e57130d0ae..eaafd910e4 100644 --- a/docs/development/agent-integration/env-variables.mdx +++ b/docs/development/agent-integration/env-variables.mdx @@ -27,8 +27,7 @@ Here's how to request environment variables for your agent: import os from a2a.types import Message -from agentstack_sdk.a2a.extensions import AgentDetail -from agentstack_sdk.a2a.extensions.ui.agent_detail import EnvVar +from agentstack_sdk.a2a.extensions import AgentDetail, EnvVar from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/docs/development/agent-integration/error.mdx b/docs/development/agent-integration/error.mdx index 3777795842..617a5288da 100644 --- a/docs/development/agent-integration/error.mdx +++ b/docs/development/agent-integration/error.mdx @@ -53,7 +53,7 @@ import os from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions.ui.error import ( +from agentstack_sdk.a2a.extensions import ( ErrorExtensionParams, ErrorExtensionServer, ErrorExtensionSpec, @@ -149,7 +149,7 @@ import os from typing import Annotated, cast from a2a.types import Message -from agentstack_sdk.a2a.extensions.ui.error import ( +from agentstack_sdk.a2a.extensions import ( ErrorExtensionParams, ErrorExtensionServer, ErrorExtensionSpec, diff --git a/docs/development/agent-integration/files.mdx b/docs/development/agent-integration/files.mdx index 7c46397820..92e2141828 100644 --- a/docs/development/agent-integration/files.mdx +++ b/docs/development/agent-integration/files.mdx @@ -18,10 +18,7 @@ import os from typing import Annotated from a2a.types import FilePart, Message -from agentstack_sdk.a2a.extensions.services.platform import ( - PlatformApiExtensionServer, - PlatformApiExtensionSpec, -) +from agentstack_sdk.a2a.extensions import PlatformApiExtensionServer, PlatformApiExtensionSpec from agentstack_sdk.platform import File from agentstack_sdk.server import Server from agentstack_sdk.util.file import load_file diff --git a/docs/development/agent-integration/forms.mdx b/docs/development/agent-integration/forms.mdx index d89c310add..285aba4f54 100644 --- a/docs/development/agent-integration/forms.mdx +++ b/docs/development/agent-integration/forms.mdx @@ -23,8 +23,9 @@ import os from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions.common.form import FormRender, TextField -from agentstack_sdk.a2a.extensions.services.form import ( +from agentstack_sdk.a2a.extensions import ( + FormRender, + TextField, FormServiceExtensionServer, FormServiceExtensionSpec, ) @@ -104,8 +105,9 @@ from typing import Annotated from a2a.types import Message from a2a.utils.message import get_message_text -from agentstack_sdk.a2a.extensions.common.form import FormRender, TextField -from agentstack_sdk.a2a.extensions.ui.form_request import ( +from agentstack_sdk.a2a.extensions import ( + FormRender, + TextField, FormRequestExtensionServer, FormRequestExtensionSpec, ) @@ -189,9 +191,9 @@ Call `await form_request.request_form(form=FormRender(...), model=YourModel)` wh Here's what you need to know to add form capabilities to your agent: **Import the form components**: -- For form fields and `FormRender`, import from `agentstack_sdk.a2a.extensions.common.form` -- For initial forms, import `FormServiceExtensionServer` and `FormServiceExtensionSpec` from `agentstack_sdk.a2a.extensions.services.form` -- For dynamic forms, import `FormRequestExtensionServer` and `FormRequestExtensionSpec` from `agentstack_sdk.a2a.extensions.ui.form_request` +- For form fields and `FormRender`, import from `agentstack_sdk.a2a.extensions` +- For initial forms, import `FormServiceExtensionServer` and `FormServiceExtensionSpec` from `agentstack_sdk.a2a.extensions` +- For dynamic forms, import `FormRequestExtensionServer` and `FormRequestExtensionSpec` from `agentstack_sdk.a2a.extensions` **Inject the extension**: Add a form parameter to your agent function using the `Annotated` type hint. @@ -242,7 +244,7 @@ The Agent Stack supports various field types for collecting different kinds of s Basic text input fields for collecting strings, names, descriptions, etc. ```python -from agentstack_sdk.a2a.extensions.common.form import TextField +from agentstack_sdk.a2a.extensions import TextField TextField( id="username", @@ -259,7 +261,7 @@ TextField( Date input fields for collecting dates and timestamps. ```python -from agentstack_sdk.a2a.extensions.common.form import DateField +from agentstack_sdk.a2a.extensions import DateField DateField( id="birth_date", @@ -275,7 +277,7 @@ DateField( File upload fields for collecting files from users. ```python -from agentstack_sdk.a2a.extensions.common.form import FileField +from agentstack_sdk.a2a.extensions import FileField FileField( id="document", @@ -290,7 +292,7 @@ FileField( Single-select dropdown fields for choosing single option from a list. ```python -from agentstack_sdk.a2a.extensions.common.form import OptionItem, SingleSelectField +from agentstack_sdk.a2a.extensions import OptionItem, SingleSelectField SingleSelectField( id="contact_method", @@ -311,7 +313,7 @@ SingleSelectField( Multi-select dropdown fields for choosing multiple options from a list. ```python -from agentstack_sdk.a2a.extensions.common.form import OptionItem, MultiSelectField +from agentstack_sdk.a2a.extensions import OptionItem, MultiSelectField MultiSelectField( id="interests", @@ -332,7 +334,7 @@ MultiSelectField( Single checkbox fields for boolean values. ```python -from agentstack_sdk.a2a.extensions.common.form import CheckboxField +from agentstack_sdk.a2a.extensions import CheckboxField CheckboxField( id="newsletter", @@ -349,7 +351,7 @@ CheckboxField( Control how your form appears using the `FormRender` configuration: ```python -from agentstack_sdk.a2a.extensions.common.form import FormRender +from agentstack_sdk.a2a.extensions import FormRender FormRender( title="Form Title", diff --git a/docs/development/agent-integration/mcp.mdx b/docs/development/agent-integration/mcp.mdx index e63a148f5d..7a09ebdd43 100644 --- a/docs/development/agent-integration/mcp.mdx +++ b/docs/development/agent-integration/mcp.mdx @@ -48,7 +48,7 @@ Here's an example of how to setup the GitHub connector using the Agent Stack SDK ```python import asyncio -from agentstack_sdk.platform.connector import Connector, ConnectorState +from agentstack_sdk.platform import Connector, ConnectorState async def main(): connector = await Connector.create(url="https://api.githubcopilot.com/mcp") @@ -73,7 +73,7 @@ from collections.abc import AsyncGenerator from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions.services.mcp import MCPServiceExtensionServer, MCPServiceExtensionSpec +from agentstack_sdk.a2a.extensions import MCPServiceExtensionServer, MCPServiceExtensionSpec from agentstack_sdk.a2a.types import RunYield from agentstack_sdk.server import Server from mcp import ClientSession @@ -153,7 +153,7 @@ import os from typing import Annotated import pydantic -from agentstack_sdk.a2a.extensions.auth.oauth import OAuthExtensionServer, OAuthExtensionSpec +from agentstack_sdk.a2a.extensions import OAuthExtensionServer, OAuthExtensionSpec from agentstack_sdk.server import Server from mcp import ClientSession from mcp.client.streamable_http import streamablehttp_client diff --git a/docs/development/agent-integration/multi-turn.mdx b/docs/development/agent-integration/multi-turn.mdx index fd15154c87..9e3c9ed9bc 100644 --- a/docs/development/agent-integration/multi-turn.mdx +++ b/docs/development/agent-integration/multi-turn.mdx @@ -201,19 +201,14 @@ from typing import Annotated from a2a.types import Message, Role from a2a.utils.message import get_message_text -from agentstack_sdk.a2a.extensions import ( - LLMServiceExtensionServer, - LLMServiceExtensionSpec, -) +from agentstack_sdk.a2a.extensions import LLMServiceExtensionServer, LLMServiceExtensionSpec from agentstack_sdk.a2a.types import AgentMessage from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext from agentstack_sdk.server.store.platform_context_store import PlatformContextStore from beeai_framework.adapters.agentstack.backend.chat import AgentStackChatModel from beeai_framework.agents.requirement import RequirementAgent -from beeai_framework.agents.requirement.requirements.conditional import ( - ConditionalRequirement, -) +from beeai_framework.agents.requirement.requirements.conditional import ConditionalRequirement from beeai_framework.backend import AssistantMessage, UserMessage from beeai_framework.tools.think import ThinkTool diff --git a/docs/development/agent-integration/overview.mdx b/docs/development/agent-integration/overview.mdx index 04b4a4093a..71d7540e97 100644 --- a/docs/development/agent-integration/overview.mdx +++ b/docs/development/agent-integration/overview.mdx @@ -70,8 +70,9 @@ import os from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions.common.form import FormRender, TextField -from agentstack_sdk.a2a.extensions.ui.form_request import ( +from agentstack_sdk.a2a.extensions import ( + FormRender, + TextField, FormRequestExtensionServer, FormRequestExtensionSpec, ) diff --git a/docs/development/agent-integration/secrets.mdx b/docs/development/agent-integration/secrets.mdx index aeadffbc85..7a10e86b53 100644 --- a/docs/development/agent-integration/secrets.mdx +++ b/docs/development/agent-integration/secrets.mdx @@ -22,7 +22,7 @@ import os from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions.auth.secrets import ( +from agentstack_sdk.a2a.extensions import ( SecretDemand, SecretsExtensionServer, SecretsExtensionSpec, @@ -72,7 +72,7 @@ if __name__ == "__main__": -Import `SecretsExtensionServer`, `SecretsExtensionSpec`, `SecretDemand`, and `SecretsServiceExtensionParams` from `agentstack_sdk.a2a.extensions.auth.secrets`. +Import `SecretsExtensionServer`, `SecretsExtensionSpec`, `SecretDemand`, and `SecretsServiceExtensionParams` from `agentstack_sdk.a2a.extensions`. diff --git a/docs/development/agent-integration/tool-calls.mdx b/docs/development/agent-integration/tool-calls.mdx index dbd04e7784..0b5504d00c 100644 --- a/docs/development/agent-integration/tool-calls.mdx +++ b/docs/development/agent-integration/tool-calls.mdx @@ -17,11 +17,8 @@ This example uses the [BeeAI Framework](https://framework.beeai.dev/modules/agen import os from typing import Annotated, Any -from a2a.types import ( - Message, - TextPart, -) -from agentstack_sdk.a2a.extensions.interactions.approval import ( +from a2a.types import Message, TextPart +from agentstack_sdk.a2a.extensions import ( ApprovalExtensionParams, ApprovalExtensionServer, ApprovalExtensionSpec, @@ -76,7 +73,7 @@ if __name__ == "__main__": -Import `ApprovalExtensionServer`, `ApprovalExtensionSpec`, `ApprovalExtensionParams`, and `ToolCallApprovalRequest` from `agentstack_sdk.a2a.extensions.interactions.approval`. +Import `ApprovalExtensionServer`, `ApprovalExtensionSpec`, `ApprovalExtensionParams`, and `ToolCallApprovalRequest` from `agentstack_sdk.a2a.extensions`. diff --git a/docs/development/community/acp-a2a-migration-guide.mdx b/docs/development/community/acp-a2a-migration-guide.mdx index 7c87a3c41f..52b572b785 100644 --- a/docs/development/community/acp-a2a-migration-guide.mdx +++ b/docs/development/community/acp-a2a-migration-guide.mdx @@ -45,12 +45,17 @@ from a2a.types import AgentSkill, Message from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext from agentstack_sdk.a2a.extensions import ( - AgentDetail, AgentDetailTool, - CitationExtensionServer, CitationExtensionSpec, - TrajectoryExtensionServer, TrajectoryExtensionSpec, - LLMServiceExtensionServer, LLMServiceExtensionSpec + AgentDetail, + AgentDetailTool, + CitationExtensionServer, + CitationExtensionSpec, + TrajectoryExtensionServer, + TrajectoryExtensionSpec, + LLMServiceExtensionServer, + LLMServiceExtensionSpec, + PlatformApiExtensionServer, + PlatformApiExtensionSpec, ) -from agentstack_sdk.a2a.extensions.services.platform import PlatformApiExtensionServer, PlatformApiExtensionSpec from agentstack_sdk.a2a.types import AgentMessage, AgentArtifact from agentstack_sdk.util.file import load_file ``` @@ -158,10 +163,7 @@ user_msg = input[-1].parts[0].content if input else "Hello" Use `PlatformApiExtensionServer` in your agent to get access to files. ```py -from agentstack_sdk.a2a.extensions.services.platform import ( - PlatformApiExtensionServer, - PlatformApiExtensionSpec, -) +from agentstack_sdk.a2a.extensions import PlatformApiExtensionServer, PlatformApiExtensionSpec async def example_agent( input: Message, diff --git a/docs/development/custom-ui/permissions-and-tokens.mdx b/docs/development/custom-ui/permissions-and-tokens.mdx index e6493a3aee..8b2b5ae2f0 100644 --- a/docs/development/custom-ui/permissions-and-tokens.mdx +++ b/docs/development/custom-ui/permissions-and-tokens.mdx @@ -410,10 +410,7 @@ from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions import ( - PlatformApiExtensionServer, - PlatformApiExtensionSpec, -) +from agentstack_sdk.a2a.extensions import PlatformApiExtensionServer, PlatformApiExtensionSpec from agentstack_sdk.platform import File from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/docs/development/experimental/connectors.mdx b/docs/development/experimental/connectors.mdx index eee0a3551d..21c4d1d85e 100644 --- a/docs/development/experimental/connectors.mdx +++ b/docs/development/experimental/connectors.mdx @@ -212,7 +212,7 @@ The AgentStack Python SDK provides a convenient wrapper around the connectors AP ### Getting Started ```python -from agentstack_sdk.platform.connector import Connector, ConnectorState +from agentstack_sdk.platform import Connector, ConnectorState ``` ### Core Operations @@ -309,7 +309,7 @@ response_text = b"".join(response_chunks).decode() ### Complete Workflow Example ```python import asyncio -from agentstack_sdk.platform.connector import Connector, ConnectorState +from agentstack_sdk.platform import Connector, ConnectorState async def main(): # Create connector diff --git a/docs/development/introduction/welcome.mdx b/docs/development/introduction/welcome.mdx index 7bc298daf8..5924f975f9 100644 --- a/docs/development/introduction/welcome.mdx +++ b/docs/development/introduction/welcome.mdx @@ -80,9 +80,7 @@ uv add agentstack-sdk ```python import os -from a2a.types import ( - Message, -) +from a2a.types import Message from a2a.utils.message import get_message_text from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/examples/agent-integration/agent-settings/basic-settings/src/basic_settings/agent.py b/examples/agent-integration/agent-settings/basic-settings/src/basic_settings/agent.py index 4bc6fa3f02..e99f84a8b3 100644 --- a/examples/agent-integration/agent-settings/basic-settings/src/basic_settings/agent.py +++ b/examples/agent-integration/agent-settings/basic-settings/src/basic_settings/agent.py @@ -6,14 +6,12 @@ from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions.common.form import ( +from agentstack_sdk.a2a.extensions import ( CheckboxField, CheckboxGroupField, OptionItem, SettingsFormRender, SingleSelectField, -) -from agentstack_sdk.a2a.extensions.services.form import ( FormServiceExtensionServer, FormServiceExtensionSpec, ) diff --git a/examples/agent-integration/canvas/canvas-with-llm/src/canvas_with_llm/agent.py b/examples/agent-integration/canvas/canvas-with-llm/src/canvas_with_llm/agent.py index c288c9acd9..571720de4c 100644 --- a/examples/agent-integration/canvas/canvas-with-llm/src/canvas_with_llm/agent.py +++ b/examples/agent-integration/canvas/canvas-with-llm/src/canvas_with_llm/agent.py @@ -7,10 +7,7 @@ from a2a.types import Message, TextPart from agentstack_sdk.a2a.extensions import LLMServiceExtensionServer, LLMServiceExtensionSpec from agentstack_sdk.a2a.extensions.ui import CanvasEditRequest -from agentstack_sdk.a2a.extensions.ui.canvas import ( - CanvasExtensionServer, - CanvasExtensionSpec, -) +from agentstack_sdk.a2a.extensions import CanvasExtensionServer, CanvasExtensionSpec from agentstack_sdk.a2a.types import AgentArtifact from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/examples/agent-integration/citations/citation-basic-usage/src/citation_basic_usage/agent.py b/examples/agent-integration/citations/citation-basic-usage/src/citation_basic_usage/agent.py index 087810d8e0..7c002c520c 100644 --- a/examples/agent-integration/citations/citation-basic-usage/src/citation_basic_usage/agent.py +++ b/examples/agent-integration/citations/citation-basic-usage/src/citation_basic_usage/agent.py @@ -5,11 +5,7 @@ from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions import ( - Citation, - CitationExtensionServer, - CitationExtensionSpec, -) +from agentstack_sdk.a2a.extensions import Citation, CitationExtensionServer, CitationExtensionSpec from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/examples/agent-integration/env-variables/basic-environment-variables/src/basic_environment_variables/agent.py b/examples/agent-integration/env-variables/basic-environment-variables/src/basic_environment_variables/agent.py index a16de42774..8782a422d1 100644 --- a/examples/agent-integration/env-variables/basic-environment-variables/src/basic_environment_variables/agent.py +++ b/examples/agent-integration/env-variables/basic-environment-variables/src/basic_environment_variables/agent.py @@ -4,8 +4,7 @@ import os from a2a.types import Message -from agentstack_sdk.a2a.extensions import AgentDetail -from agentstack_sdk.a2a.extensions.ui.agent_detail import EnvVar +from agentstack_sdk.a2a.extensions import AgentDetail, EnvVar from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext diff --git a/examples/agent-integration/error/adding-error-context/src/adding_error_context/agent.py b/examples/agent-integration/error/adding-error-context/src/adding_error_context/agent.py index ba43ac7fcd..7af4a917a0 100644 --- a/examples/agent-integration/error/adding-error-context/src/adding_error_context/agent.py +++ b/examples/agent-integration/error/adding-error-context/src/adding_error_context/agent.py @@ -5,7 +5,7 @@ from typing import Annotated, cast from a2a.types import Message -from agentstack_sdk.a2a.extensions.ui.error import ( +from agentstack_sdk.a2a.extensions import ( ErrorExtensionParams, ErrorExtensionServer, ErrorExtensionSpec, diff --git a/examples/agent-integration/error/advanced-error-reporting/src/advanced_error_reporting/agent.py b/examples/agent-integration/error/advanced-error-reporting/src/advanced_error_reporting/agent.py index aad12012ea..7a391656db 100644 --- a/examples/agent-integration/error/advanced-error-reporting/src/advanced_error_reporting/agent.py +++ b/examples/agent-integration/error/advanced-error-reporting/src/advanced_error_reporting/agent.py @@ -5,7 +5,7 @@ from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions.ui.error import ( +from agentstack_sdk.a2a.extensions import ( ErrorExtensionParams, ErrorExtensionServer, ErrorExtensionSpec, diff --git a/examples/agent-integration/files/file-processing/src/file_processing/agent.py b/examples/agent-integration/files/file-processing/src/file_processing/agent.py index 67c48216c3..1890c27ce4 100644 --- a/examples/agent-integration/files/file-processing/src/file_processing/agent.py +++ b/examples/agent-integration/files/file-processing/src/file_processing/agent.py @@ -5,10 +5,7 @@ from typing import Annotated from a2a.types import FilePart, Message -from agentstack_sdk.a2a.extensions.services.platform import ( - PlatformApiExtensionServer, - PlatformApiExtensionSpec, -) +from agentstack_sdk.a2a.extensions import PlatformApiExtensionServer, PlatformApiExtensionSpec from agentstack_sdk.platform import File from agentstack_sdk.server import Server from agentstack_sdk.util.file import load_file diff --git a/examples/agent-integration/forms/dynamic-form-requests/src/dynamic_form_requests/agent.py b/examples/agent-integration/forms/dynamic-form-requests/src/dynamic_form_requests/agent.py index f91e447a22..577505c3e0 100644 --- a/examples/agent-integration/forms/dynamic-form-requests/src/dynamic_form_requests/agent.py +++ b/examples/agent-integration/forms/dynamic-form-requests/src/dynamic_form_requests/agent.py @@ -6,8 +6,9 @@ from a2a.types import Message from a2a.utils.message import get_message_text -from agentstack_sdk.a2a.extensions.common.form import FormRender, TextField -from agentstack_sdk.a2a.extensions.ui.form_request import ( +from agentstack_sdk.a2a.extensions import ( + FormRender, + TextField, FormRequestExtensionServer, FormRequestExtensionSpec, ) diff --git a/examples/agent-integration/forms/initial-form-rendering/src/initial_form_rendering/agent.py b/examples/agent-integration/forms/initial-form-rendering/src/initial_form_rendering/agent.py index b2213ae1f3..fd1fc7a618 100644 --- a/examples/agent-integration/forms/initial-form-rendering/src/initial_form_rendering/agent.py +++ b/examples/agent-integration/forms/initial-form-rendering/src/initial_form_rendering/agent.py @@ -5,8 +5,9 @@ from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions.common.form import FormRender, TextField -from agentstack_sdk.a2a.extensions.services.form import ( +from agentstack_sdk.a2a.extensions import ( + FormRender, + TextField, FormServiceExtensionServer, FormServiceExtensionSpec, ) diff --git a/examples/agent-integration/mcp/custom-mcp-client-with-oauth/src/custom_mcp_client_with_oauth/agent.py b/examples/agent-integration/mcp/custom-mcp-client-with-oauth/src/custom_mcp_client_with_oauth/agent.py index 97a12d36ee..7924bac5b2 100644 --- a/examples/agent-integration/mcp/custom-mcp-client-with-oauth/src/custom_mcp_client_with_oauth/agent.py +++ b/examples/agent-integration/mcp/custom-mcp-client-with-oauth/src/custom_mcp_client_with_oauth/agent.py @@ -5,7 +5,7 @@ from typing import Annotated import pydantic -from agentstack_sdk.a2a.extensions.auth.oauth import OAuthExtensionServer, OAuthExtensionSpec +from agentstack_sdk.a2a.extensions import OAuthExtensionServer, OAuthExtensionSpec from agentstack_sdk.server import Server from mcp import ClientSession from mcp.client.streamable_http import streamablehttp_client diff --git a/examples/agent-integration/mcp/github-mcp-agent/src/github_mcp_agent/agent.py b/examples/agent-integration/mcp/github-mcp-agent/src/github_mcp_agent/agent.py index 0a9e6f57ee..b1469af150 100644 --- a/examples/agent-integration/mcp/github-mcp-agent/src/github_mcp_agent/agent.py +++ b/examples/agent-integration/mcp/github-mcp-agent/src/github_mcp_agent/agent.py @@ -7,7 +7,7 @@ from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions.services.mcp import MCPServiceExtensionServer, MCPServiceExtensionSpec +from agentstack_sdk.a2a.extensions import MCPServiceExtensionServer, MCPServiceExtensionSpec from agentstack_sdk.a2a.types import RunYield from agentstack_sdk.server import Server from mcp import ClientSession diff --git a/examples/agent-integration/multi-turn/advanced-history/src/advanced_history/agent.py b/examples/agent-integration/multi-turn/advanced-history/src/advanced_history/agent.py index ac46a213af..36d140faeb 100644 --- a/examples/agent-integration/multi-turn/advanced-history/src/advanced_history/agent.py +++ b/examples/agent-integration/multi-turn/advanced-history/src/advanced_history/agent.py @@ -6,19 +6,14 @@ from a2a.types import Message, Role from a2a.utils.message import get_message_text -from agentstack_sdk.a2a.extensions import ( - LLMServiceExtensionServer, - LLMServiceExtensionSpec, -) +from agentstack_sdk.a2a.extensions import LLMServiceExtensionServer, LLMServiceExtensionSpec from agentstack_sdk.a2a.types import AgentMessage from agentstack_sdk.server import Server from agentstack_sdk.server.context import RunContext from agentstack_sdk.server.store.platform_context_store import PlatformContextStore from beeai_framework.adapters.agentstack.backend.chat import AgentStackChatModel from beeai_framework.agents.requirement import RequirementAgent -from beeai_framework.agents.requirement.requirements.conditional import ( - ConditionalRequirement, -) +from beeai_framework.agents.requirement.requirements.conditional import ConditionalRequirement from beeai_framework.backend import AssistantMessage, UserMessage from beeai_framework.tools.think import ThinkTool diff --git a/examples/agent-integration/overview/advanced-server-wrapper/src/advanced_server_wrapper/agent.py b/examples/agent-integration/overview/advanced-server-wrapper/src/advanced_server_wrapper/agent.py index aa6417ab0b..91de750b8c 100644 --- a/examples/agent-integration/overview/advanced-server-wrapper/src/advanced_server_wrapper/agent.py +++ b/examples/agent-integration/overview/advanced-server-wrapper/src/advanced_server_wrapper/agent.py @@ -5,8 +5,9 @@ from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions.common.form import FormRender, TextField -from agentstack_sdk.a2a.extensions.ui.form_request import ( +from agentstack_sdk.a2a.extensions import ( + FormRender, + TextField, FormRequestExtensionServer, FormRequestExtensionSpec, ) diff --git a/examples/agent-integration/secrets/basic-secrets/src/basic_secrets/agent.py b/examples/agent-integration/secrets/basic-secrets/src/basic_secrets/agent.py index 28501f3fb4..99a7225557 100644 --- a/examples/agent-integration/secrets/basic-secrets/src/basic_secrets/agent.py +++ b/examples/agent-integration/secrets/basic-secrets/src/basic_secrets/agent.py @@ -5,7 +5,7 @@ from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions.auth.secrets import ( +from agentstack_sdk.a2a.extensions import ( SecretDemand, SecretsExtensionServer, SecretsExtensionSpec, diff --git a/examples/agent-integration/tool-calls/basic-approve/src/basic_approve/agent.py b/examples/agent-integration/tool-calls/basic-approve/src/basic_approve/agent.py index 71d8ae9db6..87bee8352d 100644 --- a/examples/agent-integration/tool-calls/basic-approve/src/basic_approve/agent.py +++ b/examples/agent-integration/tool-calls/basic-approve/src/basic_approve/agent.py @@ -3,11 +3,8 @@ import os from typing import Annotated, Any -from a2a.types import ( - Message, - TextPart, -) -from agentstack_sdk.a2a.extensions.interactions.approval import ( +from a2a.types import Message, TextPart +from agentstack_sdk.a2a.extensions import ( ApprovalExtensionParams, ApprovalExtensionServer, ApprovalExtensionSpec, diff --git a/skills/agentstack-wrapper/references/files.md b/skills/agentstack-wrapper/references/files.md index 2091913b99..3fa9bcb8ab 100644 --- a/skills/agentstack-wrapper/references/files.md +++ b/skills/agentstack-wrapper/references/files.md @@ -26,7 +26,7 @@ Scan the original code for: `open()`, `pathlib.Path.read_*()`, `with open(...)`, ## Replacing File Inputs -1. Add a `FileField` (from `agentstack_sdk.a2a.extensions.common.form`) to the form with appropriate `accept` MIME types matching the original agent's supported file types. Use `FileInfo` in the Pydantic model (`list[FileInfo] | None`). +1. Add a `FileField` (from `agentstack_sdk.a2a.extensions`) to the form with appropriate `accept` MIME types matching the original agent's supported file types. Use `FileInfo` in the Pydantic model (`list[FileInfo] | None`). 2. Parse the form via `form.parse_initial_form(model=...)` (same as Step 6). 3. Resolve `FileInfo.uri` (an `agentstack://` URI) to a `File` object: extract the file ID using `PlatformFileUrl(file.uri)`, then call `File.get(file_id)`. 4. Load file content via `file.load_content()` (raw bytes) or `file.load_text_content()` (extracted text). @@ -89,11 +89,16 @@ from pydantic import BaseModel from typing import Annotated from a2a.types import Message -from agentstack_sdk.a2a.extensions.common.form import FileField, FileInfo, FormRender -from agentstack_sdk.a2a.extensions.services.form import FormServiceExtensionServer, FormServiceExtensionSpec -from agentstack_sdk.a2a.extensions.services.platform import PlatformApiExtensionServer, PlatformApiExtensionSpec -from agentstack_sdk.platform import File -from agentstack_sdk.platform.file import PlatformFileUrl +from agentstack_sdk.a2a.extensions import ( + FileField, + FileInfo, + FormRender, + FormServiceExtensionServer, + FormServiceExtensionSpec, + PlatformApiExtensionServer, + PlatformApiExtensionSpec, +) +from agentstack_sdk.platform import File, PlatformFileUrl class UploadForm(BaseModel): diff --git a/skills/agentstack-wrapper/references/trajectory.md b/skills/agentstack-wrapper/references/trajectory.md index 7c525249fe..8f2e79ec53 100644 --- a/skills/agentstack-wrapper/references/trajectory.md +++ b/skills/agentstack-wrapper/references/trajectory.md @@ -18,7 +18,7 @@ Trajectory entries are metadata for transparency and observability. They are not When implementing trajectories, follow the [Trajectory Documentation](https://agentstack.beeai.dev/stable/agent-integration/trajectory.md) and utilize these patterns: -- **Import**: `from agentstack_sdk.a2a.extensions.ui.trajectory import TrajectoryExtensionServer, TrajectoryExtensionSpec` +- **Import**: `from agentstack_sdk.a2a.extensions import TrajectoryExtensionServer, TrajectoryExtensionSpec` - **Injection**: `trajectory: Annotated[TrajectoryExtensionServer, TrajectoryExtensionSpec()]` as an agent function parameter. - **`yield`**: Use `yield trajectory.trajectory_metadata(title="...", content="...")` within the main agent generator to emit progress updates. - **`group_id` for updates**: Use `yield trajectory.trajectory_metadata(title="...", content="...", group_id="...")` to update an existing step instead of creating a new one.