agentstack-sdk 0.4.0__tar.gz → 0.4.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/PKG-INFO +1 -1
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/pyproject.toml +1 -1
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/services/mcp.py +23 -1
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/agent.py +1 -1
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/server.py +5 -3
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/README.md +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/__init__.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/__init__.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/__init__.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/auth/__init__.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/auth/oauth/__init__.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/auth/oauth/oauth.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/auth/oauth/storage/__init__.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/auth/oauth/storage/base.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/auth/oauth/storage/memory.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/auth/secrets/__init__.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/auth/secrets/secrets.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/base.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/exceptions.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/services/__init__.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/services/embedding.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/services/llm.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/services/platform.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/ui/__init__.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/ui/agent_detail.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/ui/canvas.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/ui/citation.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/ui/form.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/ui/settings.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/ui/trajectory.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/types.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/platform/__init__.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/platform/client.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/platform/common.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/platform/configuration.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/platform/context.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/platform/file.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/platform/model_provider.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/platform/provider.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/platform/provider_build.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/platform/types.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/platform/variables.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/platform/vector_store.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/py.typed +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/__init__.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/app.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/constants.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/context.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/dependencies.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/store/__init__.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/store/context_store.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/store/memory_context_store.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/store/platform_context_store.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/telemetry.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/utils.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/util/__init__.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/util/file.py +0 -0
- {agentstack_sdk-0.4.0/src/agentstack_sdk/server → agentstack_sdk-0.4.1/src/agentstack_sdk/util}/logging.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/util/resource_context.py +0 -0
- {agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/util/utils.py +0 -0
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/services/mcp.py
RENAMED
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
from __future__ import annotations
|
|
5
5
|
|
|
6
|
+
import re
|
|
6
7
|
from contextlib import asynccontextmanager
|
|
7
8
|
from types import NoneType
|
|
8
|
-
from typing import Annotated, Any, Literal, Self
|
|
9
|
+
from typing import TYPE_CHECKING, Annotated, Any, Literal, Self
|
|
9
10
|
|
|
10
11
|
import a2a.types
|
|
11
12
|
import pydantic
|
|
@@ -14,6 +15,10 @@ from mcp.client.streamable_http import streamablehttp_client
|
|
|
14
15
|
|
|
15
16
|
from agentstack_sdk.a2a.extensions.auth.oauth.oauth import OAuthExtensionServer
|
|
16
17
|
from agentstack_sdk.a2a.extensions.base import BaseExtensionClient, BaseExtensionServer, BaseExtensionSpec
|
|
18
|
+
from agentstack_sdk.util.logging import logger
|
|
19
|
+
|
|
20
|
+
if TYPE_CHECKING:
|
|
21
|
+
from agentstack_sdk.server.context import RunContext
|
|
17
22
|
|
|
18
23
|
_TRANSPORT_TYPES = Literal["streamable_http", "stdio"]
|
|
19
24
|
|
|
@@ -95,6 +100,23 @@ class MCPServiceExtensionMetadata(pydantic.BaseModel):
|
|
|
95
100
|
|
|
96
101
|
|
|
97
102
|
class MCPServiceExtensionServer(BaseExtensionServer[MCPServiceExtensionSpec, MCPServiceExtensionMetadata]):
|
|
103
|
+
def handle_incoming_message(self, message: a2a.types.Message, context: RunContext):
|
|
104
|
+
from agentstack_sdk.platform import get_platform_client
|
|
105
|
+
|
|
106
|
+
super().handle_incoming_message(message, context)
|
|
107
|
+
if not self.data:
|
|
108
|
+
return
|
|
109
|
+
|
|
110
|
+
platform_url = str(get_platform_client().base_url)
|
|
111
|
+
for fullfilment in self.data.mcp_fulfillments.values():
|
|
112
|
+
if fullfilment.transport.type == "streamable_http":
|
|
113
|
+
try:
|
|
114
|
+
fullfilment.transport.url = pydantic.AnyHttpUrl(
|
|
115
|
+
re.sub(r"^http[s]?://{platform_url}", platform_url, str(fullfilment.transport.url))
|
|
116
|
+
)
|
|
117
|
+
except Exception:
|
|
118
|
+
logger.warning("Platform URL substitution failed", exc_info=True)
|
|
119
|
+
|
|
98
120
|
def parse_client_metadata(self, message: a2a.types.Message) -> MCPServiceExtensionMetadata | None:
|
|
99
121
|
metadata = super().parse_client_metadata(message)
|
|
100
122
|
if metadata:
|
|
@@ -41,9 +41,9 @@ from agentstack_sdk.a2a.types import ArtifactChunk, Metadata, RunYield, RunYield
|
|
|
41
41
|
from agentstack_sdk.server.constants import _IMPLICIT_DEPENDENCY_PREFIX
|
|
42
42
|
from agentstack_sdk.server.context import RunContext
|
|
43
43
|
from agentstack_sdk.server.dependencies import extract_dependencies
|
|
44
|
-
from agentstack_sdk.server.logging import logger
|
|
45
44
|
from agentstack_sdk.server.store.context_store import ContextStore
|
|
46
45
|
from agentstack_sdk.server.utils import cancel_task, close_queue
|
|
46
|
+
from agentstack_sdk.util.logging import logger
|
|
47
47
|
from agentstack_sdk.util.utils import extract_messages
|
|
48
48
|
|
|
49
49
|
AgentFunction: TypeAlias = Callable[[], AsyncGenerator[RunYield, RunYieldResume]]
|
|
@@ -36,12 +36,12 @@ from agentstack_sdk.platform.client import PlatformClient
|
|
|
36
36
|
from agentstack_sdk.platform.provider import Provider
|
|
37
37
|
from agentstack_sdk.server.agent import Agent, AgentFactory
|
|
38
38
|
from agentstack_sdk.server.agent import agent as agent_decorator
|
|
39
|
-
from agentstack_sdk.server.logging import configure_logger as configure_logger_func
|
|
40
|
-
from agentstack_sdk.server.logging import logger
|
|
41
39
|
from agentstack_sdk.server.store.context_store import ContextStore
|
|
42
40
|
from agentstack_sdk.server.store.memory_context_store import InMemoryContextStore
|
|
43
41
|
from agentstack_sdk.server.telemetry import configure_telemetry as configure_telemetry_func
|
|
44
42
|
from agentstack_sdk.server.utils import cancel_task
|
|
43
|
+
from agentstack_sdk.util.logging import configure_logger as configure_logger_func
|
|
44
|
+
from agentstack_sdk.util.logging import logger
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
class Server:
|
|
@@ -83,6 +83,7 @@ class Server:
|
|
|
83
83
|
request_context_builder: RequestContextBuilder | None = None,
|
|
84
84
|
host: str = "127.0.0.1",
|
|
85
85
|
port: int = 10000,
|
|
86
|
+
url: str | None = None,
|
|
86
87
|
uds: str | None = None,
|
|
87
88
|
fd: int | None = None,
|
|
88
89
|
loop: Literal["none", "auto", "asyncio", "uvloop"] = "auto",
|
|
@@ -138,7 +139,8 @@ class Server:
|
|
|
138
139
|
|
|
139
140
|
context_store = context_store or InMemoryContextStore()
|
|
140
141
|
self._agent = self._agent_factory(context_store)
|
|
141
|
-
|
|
142
|
+
card_url = url and url.strip()
|
|
143
|
+
self._agent.card.url = card_url.rstrip("/") if card_url else f"http://{host}:{port}"
|
|
142
144
|
|
|
143
145
|
self._self_registration_client = (
|
|
144
146
|
self_registration_client_factory() if self_registration_client_factory else None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/auth/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/auth/oauth/oauth.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/exceptions.py
RENAMED
|
File without changes
|
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/services/llm.py
RENAMED
|
File without changes
|
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/services/platform.py
RENAMED
|
File without changes
|
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/ui/__init__.py
RENAMED
|
File without changes
|
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/ui/agent_detail.py
RENAMED
|
File without changes
|
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/ui/canvas.py
RENAMED
|
File without changes
|
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/ui/citation.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/ui/settings.py
RENAMED
|
File without changes
|
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/a2a/extensions/ui/trajectory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentstack_sdk-0.4.0 → agentstack_sdk-0.4.1}/src/agentstack_sdk/server/store/context_store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|