acp-sdk 0.2.4__py3-none-any.whl → 0.3.0__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.
acp_sdk/client/client.py
CHANGED
@@ -38,17 +38,20 @@ class Client:
|
|
38
38
|
self,
|
39
39
|
*,
|
40
40
|
base_url: httpx.URL | str = "",
|
41
|
+
timeout: httpx.Timeout | None = None,
|
41
42
|
session_id: SessionId | None = None,
|
42
43
|
client: httpx.AsyncClient | None = None,
|
43
44
|
instrument: bool = True,
|
44
45
|
) -> None:
|
45
|
-
self.
|
46
|
-
self.
|
47
|
-
|
48
|
-
self._client = client or httpx.AsyncClient(base_url=self.base_url)
|
46
|
+
self._session_id = session_id
|
47
|
+
self._client = client or httpx.AsyncClient(base_url=base_url, timeout=timeout)
|
49
48
|
if instrument:
|
50
49
|
HTTPXClientInstrumentor.instrument_client(self._client)
|
51
50
|
|
51
|
+
@property
|
52
|
+
def client(self) -> httpx.AsyncClient:
|
53
|
+
return self._client
|
54
|
+
|
52
55
|
async def __aenter__(self) -> Self:
|
53
56
|
await self._client.__aenter__()
|
54
57
|
return self
|
@@ -85,7 +88,7 @@ class Client:
|
|
85
88
|
agent_name=agent,
|
86
89
|
inputs=inputs,
|
87
90
|
mode=RunMode.SYNC,
|
88
|
-
session_id=self.
|
91
|
+
session_id=self._session_id,
|
89
92
|
).model_dump_json(),
|
90
93
|
)
|
91
94
|
self._raise_error(response)
|
@@ -100,7 +103,7 @@ class Client:
|
|
100
103
|
agent_name=agent,
|
101
104
|
inputs=inputs,
|
102
105
|
mode=RunMode.ASYNC,
|
103
|
-
session_id=self.
|
106
|
+
session_id=self._session_id,
|
104
107
|
).model_dump_json(),
|
105
108
|
)
|
106
109
|
self._raise_error(response)
|
@@ -117,7 +120,7 @@ class Client:
|
|
117
120
|
agent_name=agent,
|
118
121
|
inputs=inputs,
|
119
122
|
mode=RunMode.STREAM,
|
120
|
-
session_id=self.
|
123
|
+
session_id=self._session_id,
|
121
124
|
).model_dump_json(),
|
122
125
|
) as event_source:
|
123
126
|
async for event in self._validate_stream(event_source):
|
@@ -138,7 +141,7 @@ class Client:
|
|
138
141
|
async def run_resume_sync(self, *, run_id: RunId, await_resume: AwaitResume) -> Run:
|
139
142
|
response = await self._client.post(
|
140
143
|
f"/runs/{run_id}",
|
141
|
-
|
144
|
+
content=RunResumeRequest(await_resume=await_resume, mode=RunMode.SYNC).model_dump_json(),
|
142
145
|
)
|
143
146
|
self._raise_error(response)
|
144
147
|
return RunResumeResponse.model_validate(response.json())
|
@@ -146,7 +149,7 @@ class Client:
|
|
146
149
|
async def run_resume_async(self, *, run_id: RunId, await_resume: AwaitResume) -> Run:
|
147
150
|
response = await self._client.post(
|
148
151
|
f"/runs/{run_id}",
|
149
|
-
|
152
|
+
content=RunResumeRequest(await_resume=await_resume, mode=RunMode.ASYNC).model_dump_json(),
|
150
153
|
)
|
151
154
|
self._raise_error(response)
|
152
155
|
return RunResumeResponse.model_validate(response.json())
|
@@ -156,7 +159,7 @@ class Client:
|
|
156
159
|
self._client,
|
157
160
|
"POST",
|
158
161
|
f"/runs/{run_id}",
|
159
|
-
|
162
|
+
content=RunResumeRequest(await_resume=await_resume, mode=RunMode.STREAM).model_dump_json(),
|
160
163
|
) as event_source:
|
161
164
|
async for event in self._validate_stream(event_source):
|
162
165
|
yield event
|
@@ -165,6 +168,9 @@ class Client:
|
|
165
168
|
self,
|
166
169
|
event_source: EventSource,
|
167
170
|
) -> AsyncIterator[Event]:
|
171
|
+
if event_source.response.is_error:
|
172
|
+
await event_source.response.aread()
|
173
|
+
self._raise_error(event_source.response)
|
168
174
|
async for event in event_source.aiter_sse():
|
169
175
|
event = TypeAdapter(Event).validate_json(event.data)
|
170
176
|
yield event
|
@@ -176,4 +182,4 @@ class Client:
|
|
176
182
|
raise ACPError(Error.model_validate(response.json()))
|
177
183
|
|
178
184
|
def _set_session(self, run: Run) -> None:
|
179
|
-
self.
|
185
|
+
self._session_id = run.session_id
|
acp_sdk/server/errors.py
CHANGED
@@ -32,7 +32,9 @@ def status_code_to_error_code(status_code: int) -> ErrorCode:
|
|
32
32
|
|
33
33
|
async def acp_error_handler(request: Request, exc: ACPError, *, status_code: int | None = None) -> JSONResponse:
|
34
34
|
error = exc.error
|
35
|
-
return JSONResponse(
|
35
|
+
return JSONResponse(
|
36
|
+
status_code=status_code or error_code_to_status_code(error.code), content=error.model_dump_json()
|
37
|
+
)
|
36
38
|
|
37
39
|
|
38
40
|
async def http_exception_handler(request: Request, exc: StarletteHTTPException) -> JSONResponse:
|
@@ -1,23 +1,21 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: acp-sdk
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.3.0
|
4
4
|
Summary: Agent Communication Protocol SDK
|
5
5
|
Author: IBM Corp.
|
6
6
|
Maintainer-email: Tomas Pilar <thomas7pilar@gmail.com>
|
7
7
|
License-Expression: Apache-2.0
|
8
8
|
Requires-Python: <4.0,>=3.11
|
9
|
+
Requires-Dist: fastapi[standard]>=0.115.8
|
10
|
+
Requires-Dist: httpx-sse>=0.4.0
|
11
|
+
Requires-Dist: httpx>=0.28.1
|
12
|
+
Requires-Dist: janus>=2.0.0
|
9
13
|
Requires-Dist: opentelemetry-api>=1.31.1
|
14
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.31.1
|
15
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.52b1
|
16
|
+
Requires-Dist: opentelemetry-instrumentation-httpx>=0.52b1
|
17
|
+
Requires-Dist: opentelemetry-sdk>=1.31.1
|
10
18
|
Requires-Dist: pydantic>=2.11.1
|
11
|
-
Provides-Extra: client
|
12
|
-
Requires-Dist: httpx-sse>=0.4.0; extra == 'client'
|
13
|
-
Requires-Dist: httpx>=0.28.1; extra == 'client'
|
14
|
-
Requires-Dist: opentelemetry-instrumentation-httpx>=0.52b1; extra == 'client'
|
15
|
-
Provides-Extra: server
|
16
|
-
Requires-Dist: fastapi[standard]>=0.115.8; extra == 'server'
|
17
|
-
Requires-Dist: janus>=2.0.0; extra == 'server'
|
18
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.31.1; extra == 'server'
|
19
|
-
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.52b1; extra == 'server'
|
20
|
-
Requires-Dist: opentelemetry-sdk>=1.31.1; extra == 'server'
|
21
19
|
Description-Content-Type: text/markdown
|
22
20
|
|
23
21
|
# Agent Communication Protocol SDK for Python
|
@@ -3,7 +3,7 @@ acp_sdk/instrumentation.py,sha256=JqSyvILN3sGAfOZrmckQq4-M_4_5alyPn95DK0o5lfA,16
|
|
3
3
|
acp_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
acp_sdk/version.py,sha256=Niy83rgvigB4hL_rR-O4ySvI7dj6xnqkyOe_JTymi9s,73
|
5
5
|
acp_sdk/client/__init__.py,sha256=Bca1DORrswxzZsrR2aUFpATuNG2xNSmYvF1Z2WJaVbc,51
|
6
|
-
acp_sdk/client/client.py,sha256=
|
6
|
+
acp_sdk/client/client.py,sha256=lEUs0Oc7MZbKkTF2E6e8Wn3dTW5cMVj6fD8TbuEOMDk,6584
|
7
7
|
acp_sdk/models/__init__.py,sha256=numSDBDT1QHx7n_Y3Deb5VOvKWcUBxbOEaMwQBSRHxc,151
|
8
8
|
acp_sdk/models/errors.py,sha256=rEyaMVvQuBi7fwWe_d0PGGySYsD3FZTluQ-SkC0yhAs,444
|
9
9
|
acp_sdk/models/models.py,sha256=Z8qgURpz18uPXpYDYmlbMQ3Du9-hrJUE3GVPf7ufdUY,3994
|
@@ -13,13 +13,13 @@ acp_sdk/server/agent.py,sha256=fGky5MIuknw-Gy-THqhWLt9I9-gUyNIar8qEAvZb3uQ,6195
|
|
13
13
|
acp_sdk/server/app.py,sha256=qLeQ1STgX8_7cRtG-7Be6V5vS9ooBq6O89cQryqBdII,5903
|
14
14
|
acp_sdk/server/bundle.py,sha256=VchPUW8URH83-qJo9kRQsYCBcuLKbxGXHB3sw9CK0cc,6178
|
15
15
|
acp_sdk/server/context.py,sha256=MgnLV6qcDIhc_0BjW7r4Jj1tHts4ZuwpdTGIBnz2Mgo,1036
|
16
|
-
acp_sdk/server/errors.py,sha256=
|
16
|
+
acp_sdk/server/errors.py,sha256=IGtpPpb2ChtYvCac8kf_P-RkcY71gBvX0yq97uZWa-w,2104
|
17
17
|
acp_sdk/server/logging.py,sha256=Oc8yZigCsuDnHHPsarRzu0RX3NKaLEgpELM2yovGKDI,411
|
18
18
|
acp_sdk/server/server.py,sha256=-eT3fmnEsBUN44Spi2EP2eV0l4RAlKa8bzqxnhz16SM,5399
|
19
19
|
acp_sdk/server/session.py,sha256=0cDr924HC5x2bBNbK9NSKVHAt5A_mi5dK8P4jP_ugq0,629
|
20
20
|
acp_sdk/server/telemetry.py,sha256=1BUxNg-xL_Vqgs27PDWNc3HikrQW2lidAtT_FKlp_Qk,1833
|
21
21
|
acp_sdk/server/types.py,sha256=1bqMCjwZM3JzvJ1h4aBHWzjbldMQ45HqcezBD6hUoYo,175
|
22
22
|
acp_sdk/server/utils.py,sha256=EfrF9VCyVk3AM_ao-BIB9EzGbfTrh4V2Bz-VFr6f6Sg,351
|
23
|
-
acp_sdk-0.
|
24
|
-
acp_sdk-0.
|
25
|
-
acp_sdk-0.
|
23
|
+
acp_sdk-0.3.0.dist-info/METADATA,sha256=7GnGZ92jFahL6u1NS9lKMg04V6zFjyprgwBUQota1iE,3265
|
24
|
+
acp_sdk-0.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
25
|
+
acp_sdk-0.3.0.dist-info/RECORD,,
|
File without changes
|