smarta2a 0.4.17__py3-none-any.whl → 0.4.18__py3-none-any.whl
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.
- smarta2a/client/a2a_client.py +0 -18
- smarta2a/model_providers/openai_provider.py +3 -1
- smarta2a/server/server.py +0 -2
- smarta2a/server/state_manager.py +7 -2
- {smarta2a-0.4.17.dist-info → smarta2a-0.4.18.dist-info}/METADATA +1 -1
- {smarta2a-0.4.17.dist-info → smarta2a-0.4.18.dist-info}/RECORD +8 -8
- {smarta2a-0.4.17.dist-info → smarta2a-0.4.18.dist-info}/WHEEL +0 -0
- {smarta2a-0.4.17.dist-info → smarta2a-0.4.18.dist-info}/licenses/LICENSE +0 -0
smarta2a/client/a2a_client.py
CHANGED
@@ -54,15 +54,6 @@ class A2AClient:
|
|
54
54
|
metadata: dict[str, Any] | None = None,
|
55
55
|
):
|
56
56
|
"""Send a task to another Agent."""
|
57
|
-
|
58
|
-
# Auto-create PushNotificationConfig if not provided and we have a URL
|
59
|
-
if push_notification is None and self.url:
|
60
|
-
push_notification = PushNotificationConfig(
|
61
|
-
url=f"{self.url}/webhook",
|
62
|
-
token=None,
|
63
|
-
authentication=None
|
64
|
-
)
|
65
|
-
|
66
57
|
params = TaskRequestBuilder.build_send_task_request(
|
67
58
|
id=id,
|
68
59
|
role=role,
|
@@ -93,15 +84,6 @@ class A2AClient:
|
|
93
84
|
metadata: dict[str, Any] | None = None,
|
94
85
|
):
|
95
86
|
"""Send to another Agent and receive a stream of responses."""
|
96
|
-
|
97
|
-
# Auto-create PushNotificationConfig if not provided and we have a URL
|
98
|
-
if push_notification is None and self.url:
|
99
|
-
push_notification = PushNotificationConfig(
|
100
|
-
url=f"{self.url}/webhook",
|
101
|
-
token=None,
|
102
|
-
authentication=None
|
103
|
-
)
|
104
|
-
|
105
87
|
params = TaskRequestBuilder.build_send_task_request(
|
106
88
|
id=id,
|
107
89
|
role=role,
|
@@ -193,10 +193,12 @@ class OpenAIProvider(BaseLLMProvider):
|
|
193
193
|
|
194
194
|
# Call the actual tool
|
195
195
|
try:
|
196
|
+
|
196
197
|
override_args = {
|
197
198
|
'id': state.task_id,
|
198
199
|
'sessionId': state.task.sessionId,
|
199
|
-
'metadata': state.task.metadata
|
200
|
+
'metadata': state.task.metadata,
|
201
|
+
'pushNotification': state.push_notification_config
|
200
202
|
}
|
201
203
|
|
202
204
|
tool_result = await self.tools_manager.call_tool(fn_name, fn_args, override_args)
|
smarta2a/server/server.py
CHANGED
@@ -37,7 +37,6 @@ class SmartA2A:
|
|
37
37
|
name: str,
|
38
38
|
agent_card: Optional[AgentCard] = None,
|
39
39
|
state_manager: Optional[StateManager] = None,
|
40
|
-
has_frontend: bool = False,
|
41
40
|
**fastapi_kwargs
|
42
41
|
):
|
43
42
|
self.name = name
|
@@ -46,7 +45,6 @@ class SmartA2A:
|
|
46
45
|
self.state_mgr = state_manager
|
47
46
|
self.app = FastAPI(title=name, **fastapi_kwargs)
|
48
47
|
self.router = APIRouter()
|
49
|
-
self.has_frontend = has_frontend
|
50
48
|
self._setup_cors()
|
51
49
|
self._setup_routes()
|
52
50
|
self.server_config = {
|
smarta2a/server/state_manager.py
CHANGED
@@ -10,11 +10,12 @@ from smarta2a.utils.types import Message, StateData, Task, TaskStatus, TaskState
|
|
10
10
|
from smarta2a.server.nats_client import NATSClient
|
11
11
|
|
12
12
|
class StateManager:
|
13
|
-
def __init__(self, state_store: BaseStateStore, file_store: BaseFileStore, history_strategy: HistoryUpdateStrategy, nats_server_url: Optional[str] = "nats://localhost:4222"):
|
13
|
+
def __init__(self, state_store: BaseStateStore, file_store: BaseFileStore, history_strategy: HistoryUpdateStrategy, nats_server_url: Optional[str] = "nats://localhost:4222", push_notification_config: Optional[PushNotificationConfig] = None):
|
14
14
|
self.state_store = state_store
|
15
15
|
self.file_store = file_store
|
16
16
|
self.strategy = history_strategy
|
17
17
|
self.nats_client = NATSClient(server_url=nats_server_url)
|
18
|
+
self.push_notification_config = push_notification_config
|
18
19
|
|
19
20
|
async def load(self):
|
20
21
|
await self.nats_client.connect()
|
@@ -40,11 +41,15 @@ class StateManager:
|
|
40
41
|
history=[],
|
41
42
|
metadata={}
|
42
43
|
)
|
44
|
+
|
45
|
+
# Use self.push_notification_config if push_notification_config is None
|
46
|
+
notification_config = push_notification_config if push_notification_config is not None else self.push_notification_config
|
47
|
+
|
43
48
|
state = StateData(
|
44
49
|
task_id=task_id,
|
45
50
|
task=initial_task,
|
46
51
|
context_history=[],
|
47
|
-
push_notification_config=
|
52
|
+
push_notification_config=notification_config
|
48
53
|
)
|
49
54
|
self.state_store.initialize_state(state)
|
50
55
|
return state
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: smarta2a
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.18
|
4
4
|
Summary: a Python framework that helps you build servers and AI agents that communicate using the A2A protocol
|
5
5
|
Project-URL: Homepage, https://github.com/siddharthsma/smarta2a
|
6
6
|
Project-URL: Bug Tracker, https://github.com/siddharthsma/smarta2a/issues
|
@@ -6,7 +6,7 @@ smarta2a/archive/smart_mcp_client.py,sha256=0s2OWFKWSv-_UF7rb9fOrsh1OIYsYOsGukkX
|
|
6
6
|
smarta2a/archive/subscription_service.py,sha256=vftmZD94HbdjPFa_1UBvsBm-WkW-s3ZCVq60fF7OCgA,4109
|
7
7
|
smarta2a/archive/task_service.py,sha256=ptf-oMHy98Rw4XSxyK1-lpqc1JtkCkEEHTmwAaunet4,8199
|
8
8
|
smarta2a/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
|
-
smarta2a/client/a2a_client.py,sha256=
|
9
|
+
smarta2a/client/a2a_client.py,sha256=MGhqcIx8reo-HCvgABFiFm8SGjKV7OIjzCdAwYZmDOw,12256
|
10
10
|
smarta2a/client/mcp_client.py,sha256=JeXhBqxM9TYAArpExLRtEr3lZeQZMcnTmGFl6XKsdu8,3797
|
11
11
|
smarta2a/file_stores/base_file_store.py,sha256=fcwFIOoFjLQiIKb8lIRVujnV6udyuI9Dq8cEc2ldmIQ,591
|
12
12
|
smarta2a/file_stores/local_file_store.py,sha256=4GLDrsKxSoLWn2Oha4OD-P2r5vBpfV-8ePvZ5bhP1e8,2616
|
@@ -16,15 +16,15 @@ smarta2a/history_update_strategies/history_update_strategy.py,sha256=n2sfIGu8ztK
|
|
16
16
|
smarta2a/history_update_strategies/rolling_window_strategy.py,sha256=7Ch042JWt4TM_r1-sFKlSIxHj8VX1P3ZoqjCvIdeSqA,540
|
17
17
|
smarta2a/model_providers/__init__.py,sha256=hJj0w00JjqTiBgJmHmOWwL6MU_hwmro9xTiX3XYf6ts,148
|
18
18
|
smarta2a/model_providers/base_llm_provider.py,sha256=iQUqjnypl0f2M929iU0WhHoxAE4ek-NUFJPbEnNQ8-4,412
|
19
|
-
smarta2a/model_providers/openai_provider.py,sha256=
|
19
|
+
smarta2a/model_providers/openai_provider.py,sha256=2i7TJkhDefvDKCrWNLXmVif9yQ4LZuIouZvY6R9LY2c,12220
|
20
20
|
smarta2a/server/__init__.py,sha256=f2X454Ll4vJc02V4JLJHTN-h8u0TBm4d_FkiO4t686U,53
|
21
21
|
smarta2a/server/handler_registry.py,sha256=OVRG5dTvxB7qUNXgsqWxVNxIyRljUShSYxb1gtbi5XM,820
|
22
22
|
smarta2a/server/json_rpc_request_processor.py,sha256=qRB3sfj_n9ImkIOCdaUKMsDmKcO7CiMhaZ4VdQS7Mb4,6993
|
23
23
|
smarta2a/server/nats_client.py,sha256=akyNg1hLd9XYoLSH_qQVs8uoiTQerztgvqu_3TifSgE,1617
|
24
24
|
smarta2a/server/request_handler.py,sha256=QPVWWEKAzMAf4TiwXSEuPBiKGn8_f4ahTRs0mo3qjEE,26569
|
25
25
|
smarta2a/server/send_task_handler.py,sha256=fiBeCCHCu9c2H4EJOUc0t3EZgpHVFJy4B_6qZOC140s,6336
|
26
|
-
smarta2a/server/server.py,sha256=
|
27
|
-
smarta2a/server/state_manager.py,sha256=
|
26
|
+
smarta2a/server/server.py,sha256=E58tvOjAvHf_gYjST76sPEC5piaNyrHePa9k-fSadZA,6797
|
27
|
+
smarta2a/server/state_manager.py,sha256=uSRF-DbfEuV7QtUJqKej53qHg1xADiDPs2a5BiZuU8k,8005
|
28
28
|
smarta2a/server/webhook_request_processor.py,sha256=LAVA4FiICci-6R2htxRf4bSnKFYoNoaQ3zKI83380ZE,5634
|
29
29
|
smarta2a/state_stores/__init__.py,sha256=vafxAqpwvag_cYFH2XKGk3DPmJIWJr4Ioey30yLFkVQ,220
|
30
30
|
smarta2a/state_stores/base_state_store.py,sha256=_3LInM-qepKwwdypJTDNs9-DozBNrKVycwPwUm7bYdU,512
|
@@ -36,7 +36,7 @@ smarta2a/utils/task_builder.py,sha256=wqSyfVHNTaXuGESu09dhlaDi7D007gcN3-8tH-nPQ4
|
|
36
36
|
smarta2a/utils/task_request_builder.py,sha256=6cOGOqj2Rg43xWM03GRJQzlIZHBptsMCJRp7oD-TDAQ,3362
|
37
37
|
smarta2a/utils/tools_manager.py,sha256=igKYeSi0SaYzd36jUqOMPvnYd5kK55EPQ0X_pdTo5e4,4857
|
38
38
|
smarta2a/utils/types.py,sha256=kzA6Vv5xXfu1sJuxhEXrglI9e9S6eZVIljMnsrQVyN0,13650
|
39
|
-
smarta2a-0.4.
|
40
|
-
smarta2a-0.4.
|
41
|
-
smarta2a-0.4.
|
42
|
-
smarta2a-0.4.
|
39
|
+
smarta2a-0.4.18.dist-info/METADATA,sha256=8Pw03g1wAFMF8To-DyGX3fEzxZFcP805-jyjliIocR8,13051
|
40
|
+
smarta2a-0.4.18.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
41
|
+
smarta2a-0.4.18.dist-info/licenses/LICENSE,sha256=lDbqrxVnzDMY5KJ8JS1WhvkWE8TJaw-O-CHDy-ecsJA,2095
|
42
|
+
smarta2a-0.4.18.dist-info/RECORD,,
|
File without changes
|
File without changes
|