acp-sdk 0.7.2__tar.gz → 0.7.3__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.
Files changed (48) hide show
  1. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/PKG-INFO +1 -1
  2. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/pyproject.toml +1 -1
  3. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/client/client.py +0 -8
  4. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/server/app.py +1 -1
  5. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/server/session.py +2 -2
  6. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/tests/unit/client/test_client.py +14 -0
  7. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/.gitignore +0 -0
  8. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/.python-version +0 -0
  9. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/README.md +0 -0
  10. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/docs/_sidebar.md +0 -0
  11. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/docs/client.md +0 -0
  12. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/docs/index.html +0 -0
  13. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/docs/models.md +0 -0
  14. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/docs/server.md +0 -0
  15. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/pytest.ini +0 -0
  16. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/__init__.py +0 -0
  17. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/client/__init__.py +0 -0
  18. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/client/types.py +0 -0
  19. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/client/utils.py +0 -0
  20. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/instrumentation.py +0 -0
  21. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/models/__init__.py +0 -0
  22. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/models/errors.py +0 -0
  23. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/models/models.py +0 -0
  24. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/models/schemas.py +0 -0
  25. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/py.typed +0 -0
  26. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/server/__init__.py +0 -0
  27. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/server/agent.py +0 -0
  28. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/server/bundle.py +0 -0
  29. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/server/context.py +0 -0
  30. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/server/errors.py +0 -0
  31. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/server/logging.py +0 -0
  32. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/server/server.py +0 -0
  33. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/server/telemetry.py +0 -0
  34. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/server/types.py +0 -0
  35. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/server/utils.py +0 -0
  36. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/src/acp_sdk/version.py +0 -0
  37. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/tests/conftest.py +0 -0
  38. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/tests/e2e/__init__.py +0 -0
  39. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/tests/e2e/config.py +0 -0
  40. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/tests/e2e/fixtures/__init__.py +0 -0
  41. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/tests/e2e/fixtures/client.py +0 -0
  42. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/tests/e2e/fixtures/server.py +0 -0
  43. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/tests/e2e/test_suites/__init__.py +0 -0
  44. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/tests/e2e/test_suites/test_discovery.py +0 -0
  45. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/tests/e2e/test_suites/test_runs.py +0 -0
  46. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/tests/unit/client/test_utils.py +0 -0
  47. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/tests/unit/models/__init__.py +0 -0
  48. {acp_sdk-0.7.2 → acp_sdk-0.7.3}/tests/unit/models/test_models.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: acp-sdk
3
- Version: 0.7.2
3
+ Version: 0.7.3
4
4
  Summary: Agent Communication Protocol SDK
5
5
  Author: IBM Corp.
6
6
  Maintainer-email: Tomas Pilar <thomas7pilar@gmail.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "acp-sdk"
3
- version = "0.7.2"
3
+ version = "0.7.3"
4
4
  description = "Agent Communication Protocol SDK"
5
5
  license = "Apache-2.0"
6
6
  readme = "README.md"
@@ -25,7 +25,6 @@ from acp_sdk.models import (
25
25
  Event,
26
26
  Run,
27
27
  RunCancelResponse,
28
- RunCreatedEvent,
29
28
  RunCreateRequest,
30
29
  RunCreateResponse,
31
30
  RunId,
@@ -137,7 +136,6 @@ class Client:
137
136
  )
138
137
  self._raise_error(response)
139
138
  response = RunCreateResponse.model_validate(response.json())
140
- self._set_session(response)
141
139
  return Run(**response.model_dump())
142
140
 
143
141
  async def run_async(self, input: Input, *, agent: AgentName) -> Run:
@@ -152,7 +150,6 @@ class Client:
152
150
  )
153
151
  self._raise_error(response)
154
152
  response = RunCreateResponse.model_validate(response.json())
155
- self._set_session(response)
156
153
  return Run(**response.model_dump())
157
154
 
158
155
  async def run_stream(self, input: Input, *, agent: AgentName) -> AsyncIterator[Event]:
@@ -168,8 +165,6 @@ class Client:
168
165
  ).model_dump_json(),
169
166
  ) as event_source:
170
167
  async for event in self._validate_stream(event_source):
171
- if isinstance(event, RunCreatedEvent):
172
- self._set_session(event.run)
173
168
  yield event
174
169
 
175
170
  async def run_status(self, *, run_id: RunId) -> Run:
@@ -227,6 +222,3 @@ class Client:
227
222
  response.raise_for_status()
228
223
  except httpx.HTTPError:
229
224
  raise ACPError(Error.model_validate(response.json()))
230
-
231
- def _set_session(self, run: Run) -> None:
232
- self._session_id = run.session_id
@@ -112,7 +112,7 @@ def create_app(
112
112
  async def create_run(request: RunCreateRequest) -> RunCreateResponse:
113
113
  agent = find_agent(request.agent_name)
114
114
 
115
- session = sessions.get(request.session_id, Session()) if request.session_id else Session()
115
+ session = sessions.get(request.session_id, Session(id=request.session_id)) if request.session_id else Session()
116
116
  nonlocal executor
117
117
  bundle = RunBundle(
118
118
  agent=agent,
@@ -7,8 +7,8 @@ from acp_sdk.server.bundle import RunBundle
7
7
 
8
8
 
9
9
  class Session:
10
- def __init__(self) -> None:
11
- self.id: SessionId = uuid.uuid4()
10
+ def __init__(self, id: SessionId | None = None) -> None:
11
+ self.id: SessionId = id or uuid.uuid4()
12
12
  self.bundles: list[RunBundle] = []
13
13
 
14
14
  def append(self, bundle: RunBundle) -> None:
@@ -143,3 +143,17 @@ async def test_session(httpx_mock: HTTPXMock) -> None:
143
143
 
144
144
  body = json.loads(requests[1].content)
145
145
  assert body["session_id"] is None
146
+
147
+
148
+ @pytest.mark.asyncio
149
+ async def test_no_session(httpx_mock: HTTPXMock) -> None:
150
+ httpx_mock.add_response(url="http://test/runs", method="POST", content=mock_run.model_dump_json(), is_reusable=True)
151
+
152
+ async with Client(base_url="http://test") as client:
153
+ await client.run_sync("Howdy!", agent=mock_run.agent_name)
154
+ await client.run_sync("Howdy!", agent=mock_run.agent_name)
155
+
156
+ requests = httpx_mock.get_requests()
157
+
158
+ body = json.loads(requests[1].content)
159
+ assert body["session_id"] is None
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