acp-sdk 0.2.0__py3-none-any.whl → 0.2.2__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
@@ -39,16 +39,14 @@ class Client:
39
39
  base_url: httpx.URL | str = "",
40
40
  session_id: SessionId | None = None,
41
41
  client: httpx.AsyncClient | None = None,
42
+ instrument: bool = True,
42
43
  ) -> None:
43
44
  self.base_url = base_url
44
45
  self.session_id = session_id
45
46
 
46
- self._client = self._init_client(client)
47
-
48
- def _init_client(self, client: httpx.AsyncClient | None = None) -> httpx.AsyncClient:
49
- client = client or httpx.AsyncClient(base_url=self.base_url)
50
- HTTPXClientInstrumentor.instrument_client(client)
51
- return client
47
+ self._client = client or httpx.AsyncClient(base_url=self.base_url)
48
+ if instrument:
49
+ HTTPXClientInstrumentor.instrument_client(self._client)
52
50
 
53
51
  async def __aenter__(self) -> Self:
54
52
  await self._client.__aenter__()
@@ -64,7 +62,7 @@ class Client:
64
62
 
65
63
  @asynccontextmanager
66
64
  async def session(self, session_id: SessionId | None = None) -> AsyncGenerator[Self]:
67
- yield Client(client=self._client, session_id=session_id or uuid.uuid4())
65
+ yield Client(client=self._client, session_id=session_id or uuid.uuid4(), instrument=False)
68
66
 
69
67
  async def agents(self) -> AsyncIterator[Agent]:
70
68
  response = await self._client.get("/agents")
@@ -134,28 +132,28 @@ class Client:
134
132
  self._raise_error(response)
135
133
  return RunCancelResponse.model_validate(response.json())
136
134
 
137
- async def run_resume_sync(self, *, run_id: RunId, await_: AwaitResume) -> Run:
135
+ async def run_resume_sync(self, *, run_id: RunId, await_resume: AwaitResume) -> Run:
138
136
  response = await self._client.post(
139
137
  f"/runs/{run_id}",
140
- json=RunResumeRequest(await_=await_, mode=RunMode.SYNC).model_dump(),
138
+ json=RunResumeRequest(await_resume=await_resume, mode=RunMode.SYNC).model_dump(),
141
139
  )
142
140
  self._raise_error(response)
143
141
  return RunResumeResponse.model_validate(response.json())
144
142
 
145
- async def run_resume_async(self, *, run_id: RunId, await_: AwaitResume) -> Run:
143
+ async def run_resume_async(self, *, run_id: RunId, await_resume: AwaitResume) -> Run:
146
144
  response = await self._client.post(
147
145
  f"/runs/{run_id}",
148
- json=RunResumeRequest(await_=await_, mode=RunMode.ASYNC).model_dump(),
146
+ json=RunResumeRequest(await_resume=await_resume, mode=RunMode.ASYNC).model_dump(),
149
147
  )
150
148
  self._raise_error(response)
151
149
  return RunResumeResponse.model_validate(response.json())
152
150
 
153
- async def run_resume_stream(self, *, run_id: RunId, await_: AwaitResume) -> AsyncIterator[Event]:
151
+ async def run_resume_stream(self, *, run_id: RunId, await_resume: AwaitResume) -> AsyncIterator[Event]:
154
152
  async with aconnect_sse(
155
153
  self._client,
156
154
  "POST",
157
155
  f"/runs/{run_id}",
158
- json=RunResumeRequest(await_=await_, mode=RunMode.STREAM).model_dump(),
156
+ json=RunResumeRequest(await_resume=await_resume, mode=RunMode.STREAM).model_dump(),
159
157
  ) as event_source:
160
158
  async for event in self._validate_stream(event_source):
161
159
  yield event
acp_sdk/models/models.py CHANGED
@@ -113,9 +113,9 @@ class MessageCompletedEvent(BaseModel):
113
113
  message: Message
114
114
 
115
115
 
116
- class AwaitEvent(BaseModel):
117
- type: Literal["await"] = "await"
118
- await_request: AwaitRequest | None = None
116
+ class RunAwaitingEvent(BaseModel):
117
+ type: Literal["run.awaiting"] = "run.awaiting"
118
+ run: Run
119
119
 
120
120
 
121
121
  class GenericEvent(BaseModel):
@@ -155,7 +155,7 @@ Event = Union[
155
155
  ArtifactEvent,
156
156
  MessagePartEvent,
157
157
  MessageCompletedEvent,
158
- AwaitEvent,
158
+ RunAwaitingEvent,
159
159
  GenericEvent,
160
160
  RunCancelledEvent,
161
161
  RunFailedEvent,
acp_sdk/models/schemas.py CHANGED
@@ -1,4 +1,4 @@
1
- from pydantic import BaseModel, ConfigDict, Field
1
+ from pydantic import BaseModel
2
2
 
3
3
  from acp_sdk.models.models import Agent, AgentName, AwaitResume, Message, Run, RunMode, SessionId
4
4
 
@@ -23,11 +23,9 @@ class RunCreateResponse(Run):
23
23
 
24
24
 
25
25
  class RunResumeRequest(BaseModel):
26
- await_: AwaitResume = Field(alias="await")
26
+ await_resume: AwaitResume
27
27
  mode: RunMode
28
28
 
29
- model_config = ConfigDict(populate_by_name=True)
30
-
31
29
 
32
30
  class RunResumeResponse(Run):
33
31
  pass
acp_sdk/server/app.py CHANGED
@@ -144,7 +144,7 @@ def create_app(*agents: Agent) -> FastAPI:
144
144
  @app.post("/runs/{run_id}")
145
145
  async def resume_run(run_id: RunId, request: RunResumeRequest) -> RunResumeResponse:
146
146
  bundle = find_run_bundle(run_id)
147
- await bundle.resume(request.await_)
147
+ await bundle.resume(request.await_resume)
148
148
  match request.mode:
149
149
  case RunMode.STREAM:
150
150
  return StreamingResponse(
acp_sdk/server/bundle.py CHANGED
@@ -7,7 +7,6 @@ from pydantic import ValidationError
7
7
 
8
8
  from acp_sdk.models import (
9
9
  AnyModel,
10
- AwaitEvent,
11
10
  AwaitRequest,
12
11
  AwaitResume,
13
12
  Error,
@@ -17,6 +16,7 @@ from acp_sdk.models import (
17
16
  MessageCreatedEvent,
18
17
  MessagePartEvent,
19
18
  Run,
19
+ RunAwaitingEvent,
20
20
  RunCancelledEvent,
21
21
  RunCompletedEvent,
22
22
  RunCreatedEvent,
@@ -120,15 +120,7 @@ class RunBundle:
120
120
  elif isinstance(next, AwaitRequest):
121
121
  self.run.await_request = next
122
122
  self.run.status = RunStatus.AWAITING
123
- await self.emit(
124
- AwaitEvent.model_validate(
125
- {
126
- "run_id": self.run.run_id,
127
- "type": "await",
128
- "await": next,
129
- }
130
- )
131
- )
123
+ await self.emit(RunAwaitingEvent(run=self.run))
132
124
  run_logger.info("Run awaited")
133
125
  await_resume = await self.await_()
134
126
  await self.emit(RunInProgressEvent(run=self.run))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: acp-sdk
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Agent Communication Protocol SDK
5
5
  Author: IBM Corp.
6
6
  Maintainer-email: Tomas Pilar <thomas7pilar@gmail.com>
@@ -2,15 +2,15 @@ acp_sdk/__init__.py,sha256=tXdAUM9zcmdSKCAkVrOCrGcXcuVS-yuvQUoQwTe9pek,98
2
2
  acp_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  acp_sdk/version.py,sha256=Niy83rgvigB4hL_rR-O4ySvI7dj6xnqkyOe_JTymi9s,73
4
4
  acp_sdk/client/__init__.py,sha256=Bca1DORrswxzZsrR2aUFpATuNG2xNSmYvF1Z2WJaVbc,51
5
- acp_sdk/client/client.py,sha256=yXEtwdCxBCXwNz7xeeD7gPT9J7SYG2rb8QAjhuYhTlY,6131
5
+ acp_sdk/client/client.py,sha256=N3kkxtSFlz_BzDcnq4xQCGDiu66EWzTzZ9HTpzNEOBk,6113
6
6
  acp_sdk/models/__init__.py,sha256=numSDBDT1QHx7n_Y3Deb5VOvKWcUBxbOEaMwQBSRHxc,151
7
7
  acp_sdk/models/errors.py,sha256=rEyaMVvQuBi7fwWe_d0PGGySYsD3FZTluQ-SkC0yhAs,444
8
- acp_sdk/models/models.py,sha256=NCYYKKnWU1OSHQ0r1lSP_y4Z5cY3Agx-jmwfEwF3dLw,4001
9
- acp_sdk/models/schemas.py,sha256=LNs3oN1pQ4GD0ceV3-k6X6R39eu33nsAfnW6uEgOP0c,735
8
+ acp_sdk/models/models.py,sha256=Z8qgURpz18uPXpYDYmlbMQ3Du9-hrJUE3GVPf7ufdUY,3994
9
+ acp_sdk/models/schemas.py,sha256=Kj7drJSR8d-N3KHzu_qTnLdagrMtAyhid5swluuhHTw,645
10
10
  acp_sdk/server/__init__.py,sha256=mxBBBFaZuMEUENRMLwp1XZkuLeT9QghcFmNvjnqvAAU,377
11
11
  acp_sdk/server/agent.py,sha256=fGky5MIuknw-Gy-THqhWLt9I9-gUyNIar8qEAvZb3uQ,6195
12
- acp_sdk/server/app.py,sha256=Ys5EN4MzmrwrpBGvycEP5dKEIYkDZmeBMMV1Aq58AU0,5897
13
- acp_sdk/server/bundle.py,sha256=BOOGuzEPS4bp6dhflcsQkyawllbsWoS3l6JqwKqI9n0,6312
12
+ acp_sdk/server/app.py,sha256=qLeQ1STgX8_7cRtG-7Be6V5vS9ooBq6O89cQryqBdII,5903
13
+ acp_sdk/server/bundle.py,sha256=GXmYzn9PlKQ-acu8y6TwUxAXZ1XVlYQiGRi2UUEbe4w,6003
14
14
  acp_sdk/server/context.py,sha256=MgnLV6qcDIhc_0BjW7r4Jj1tHts4ZuwpdTGIBnz2Mgo,1036
15
15
  acp_sdk/server/errors.py,sha256=fWlgVsQ5hs_AXwzc-wvy6QgoDWEMRUBlSrfJfhHHMyE,2085
16
16
  acp_sdk/server/logging.py,sha256=Oc8yZigCsuDnHHPsarRzu0RX3NKaLEgpELM2yovGKDI,411
@@ -19,6 +19,6 @@ acp_sdk/server/session.py,sha256=0cDr924HC5x2bBNbK9NSKVHAt5A_mi5dK8P4jP_ugq0,629
19
19
  acp_sdk/server/telemetry.py,sha256=WIEHK8syOTG9SyWi3Y-cos7CsCF5-IHGiyL9bCaUN0E,1921
20
20
  acp_sdk/server/types.py,sha256=1bqMCjwZM3JzvJ1h4aBHWzjbldMQ45HqcezBD6hUoYo,175
21
21
  acp_sdk/server/utils.py,sha256=EfrF9VCyVk3AM_ao-BIB9EzGbfTrh4V2Bz-VFr6f6Sg,351
22
- acp_sdk-0.2.0.dist-info/METADATA,sha256=B9sMxk3P4tBEoVCkEeKD_95EuohKvErdLR3VTU0JiKQ,3463
23
- acp_sdk-0.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
24
- acp_sdk-0.2.0.dist-info/RECORD,,
22
+ acp_sdk-0.2.2.dist-info/METADATA,sha256=NkTtKLlosgCY5bEAXLne3FVOJyw6sb-V4la74zFlMnI,3463
23
+ acp_sdk-0.2.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
24
+ acp_sdk-0.2.2.dist-info/RECORD,,