Skip to content

Commit 22dc5b5

Browse files
Merge remote-tracking branch 'origin/next' into maxparke/agx1-418-build-provenance-capture
# Conflicts: # uv.lock
2 parents 904a7d5 + 6c23d76 commit 22dc5b5

42 files changed

Lines changed: 4680 additions & 843 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.release-please-manifest.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
".": "0.17.0",
3-
"adk": "0.17.0"
2+
".": "0.18.0",
3+
"adk": "0.18.0"
44
}

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 65
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp/agentex-sdk-cd43ba4b554ca024dd7ee7b74e4f4700a743282c17def704a0967e6ff251c09b.yml
3-
openapi_spec_hash: 9369ccc9c0289e9d6f641a526d244d1c
4-
config_hash: 1ae003838971335aac550f3ad5872f54
1+
configured_endpoints: 74
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp/agentex-sdk-f3f1b47fa785a0d7b4e1cce1932a2ab0c0b6531d67d499e6188292ea2a00c9d8.yml
3+
openapi_spec_hash: 77044dc5774eb88f1541ebbe53b413a7
4+
config_hash: 5c4e326f797c879e72d6bf32fc1ea49d

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,33 @@
1212

1313
* **tracing:** emit OTel metrics for async span queue depth, batch drain, and SGP export success/failure (HTTP status labels). Disable SDK-side recording with ``AGENTEX_TRACING_METRICS=0``.
1414

15+
## 0.18.0 (2026-07-10)
16+
17+
Full Changelog: [agentex-client-v0.17.0...agentex-client-v0.18.0](https://github.com/scaleapi/scale-agentex-python/compare/agentex-client-v0.17.0...agentex-client-v0.18.0)
18+
19+
### Features
20+
21+
* **api:** add schedule resume ([56f41aa](https://github.com/scaleapi/scale-agentex-python/commit/56f41aa78a79ba7ff75acb909371354f6732a299))
22+
* **api:** add skipped_action_times field to agents schedule responses ([de49d43](https://github.com/scaleapi/scale-agentex-python/commit/de49d43d6dd4fd12896c519ebd745c87f224f596))
23+
* **api:** add webhook endpoint ([f1c1252](https://github.com/scaleapi/scale-agentex-python/commit/f1c1252edea74f7cb84deb11d5e915a1e5506ea6))
24+
* **api:** manual updates ([e855070](https://github.com/scaleapi/scale-agentex-python/commit/e855070cc8dcb4f5ffae96f55ba8862ac890dafc))
25+
* **api:** manual updates ([e3c8baf](https://github.com/scaleapi/scale-agentex-python/commit/e3c8baf19509319e9d5b545d95574cf92f24e63c))
26+
* **api:** remove retrieve/delete/pause/trigger/unpause, update create/list in schedules ([8f084b6](https://github.com/scaleapi/scale-agentex-python/commit/8f084b6080cb2492ea8d18f4209547be0c057437))
27+
* **api:** update schedule configs ([c1e7db8](https://github.com/scaleapi/scale-agentex-python/commit/c1e7db875930c532e61a8ab72ec3b62473caae3a))
28+
* Use stable handles for run schedules ([9145865](https://github.com/scaleapi/scale-agentex-python/commit/91458652755536383693466c1b63a357bf610099))
29+
30+
31+
### Bug Fixes
32+
33+
* cap openai <2.45 for openai-agents 0.14.x compatibility ([#459](https://github.com/scaleapi/scale-agentex-python/issues/459)) ([14c124d](https://github.com/scaleapi/scale-agentex-python/commit/14c124d363ed964ed8c08e10a95ca3939095ea92))
34+
35+
36+
### Chores
37+
38+
* **internal:** version bump ([7aeb893](https://github.com/scaleapi/scale-agentex-python/commit/7aeb8937bb794586f7d5931bdc5964d007762b4c))
39+
* **internal:** version bump ([fcddeea](https://github.com/scaleapi/scale-agentex-python/commit/fcddeea8ef4bdff0a5f7735156c3003166464eac))
40+
* **internal:** version bump ([0793543](https://github.com/scaleapi/scale-agentex-python/commit/079354303393c28c5087ce3907d4b5b4a64ee1c0))
41+
1542
## 0.17.0 (2026-07-01)
1643

1744
Full Changelog: [agentex-client-v0.16.2...agentex-client-v0.17.0](https://github.com/scaleapi/scale-agentex-python/compare/agentex-client-v0.16.2...agentex-client-v0.17.0)

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,23 @@ Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typ
139139

140140
Typed requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.
141141

142+
## Nested params
143+
144+
Nested parameters are dictionaries, typed using `TypedDict`, for example:
145+
146+
```python
147+
from agentex import Agentex
148+
149+
client = Agentex()
150+
151+
schedule = client.agents.schedules.create(
152+
agent_id="agent_id",
153+
initial_input={"content": "content"},
154+
name="name",
155+
)
156+
print(schedule.initial_input)
157+
```
158+
142159
## Handling errors
143160

144161
When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `agentex.APIConnectionError` is raised.

adk/CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# Changelog
22

3+
## 0.18.0 (2026-07-10)
4+
5+
Full Changelog: [agentex-sdk-v0.17.0...agentex-sdk-v0.18.0](https://github.com/scaleapi/scale-agentex-python/compare/agentex-sdk-v0.17.0...agentex-sdk-v0.18.0)
6+
7+
### Bug Fixes
8+
9+
* cap openai <2.45 for openai-agents 0.14.x compatibility ([#459](https://github.com/scaleapi/scale-agentex-python/issues/459)) ([14c124d](https://github.com/scaleapi/scale-agentex-python/commit/14c124d363ed964ed8c08e10a95ca3939095ea92))
10+
11+
12+
### Chores
13+
14+
* **internal:** version bump ([7aeb893](https://github.com/scaleapi/scale-agentex-python/commit/7aeb8937bb794586f7d5931bdc5964d007762b4c))
15+
* **internal:** version bump ([fcddeea](https://github.com/scaleapi/scale-agentex-python/commit/fcddeea8ef4bdff0a5f7735156c3003166464eac))
16+
317
## 0.17.0 (2026-07-01)
418

519
Full Changelog: [agentex-sdk-v0.16.2...agentex-sdk-v0.17.0](https://github.com/scaleapi/scale-agentex-python/compare/agentex-sdk-v0.16.2...agentex-sdk-v0.17.0)

adk/pyproject.toml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# (agentex/{__init__.py, _*.py, types/, resources/}) ships from the slim
55
# sibling package `agentex-client` which is pinned as a runtime dep.
66
name = "agentex-sdk"
7-
version = "0.17.0"
7+
version = "0.18.0"
88
description = "Agent Development Kit (ADK) overlay for the Agentex API — FastACP server, Temporal workflows, LLM provider integrations, observability"
99
license = "Apache-2.0"
1010
authors = [
@@ -41,7 +41,14 @@ dependencies = [
4141
# LLM provider integrations
4242
"litellm>=1.83.7,<2",
4343
"openai-agents>=0.14.3,<0.15",
44-
"openai>=2.2,<3", # Required by openai-agents; litellm now supports openai 2.x (issue #13711 resolved: https://github.com/BerriAI/litellm/issues/13711)
44+
# Cap <2.45: openai 2.45.0 makes InputTokensDetails.cache_write_tokens a
45+
# required field, but openai-agents 0.14.x still builds
46+
# InputTokensDetails(cached_tokens=0) (agents/usage.py), so every
47+
# Runner.run_streamed raises a pydantic ValidationError at context setup.
48+
# openai-agents 0.14.8 is the latest release, so there is no newer version
49+
# to bump to; drop this ceiling once openai-agents ships a fix.
50+
# litellm now supports openai 2.x (issue #13711 resolved: https://github.com/BerriAI/litellm/issues/13711)
51+
"openai>=2.2,<2.45",
4552
"claude-agent-sdk>=0.1.0",
4653
"pydantic-ai-slim>=1.0,<2",
4754
"langgraph-checkpoint>=2.0.0",

api.md

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,22 +69,39 @@ Types:
6969
from agentex.types.agents import (
7070
ScheduleCreateResponse,
7171
ScheduleRetrieveResponse,
72+
ScheduleUpdateResponse,
7273
ScheduleListResponse,
7374
SchedulePauseResponse,
75+
SchedulePauseByNameResponse,
76+
ScheduleResumeResponse,
77+
ScheduleResumeByNameResponse,
78+
ScheduleRetrieveByNameResponse,
79+
ScheduleSkipResponse,
7480
ScheduleTriggerResponse,
75-
ScheduleUnpauseResponse,
81+
ScheduleTriggerByNameResponse,
82+
ScheduleUnskipResponse,
83+
ScheduleUpdateByNameResponse,
7684
)
7785
```
7886

7987
Methods:
8088

8189
- <code title="post /agents/{agent_id}/schedules">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">create</a>(agent_id, \*\*<a href="src/agentex/types/agents/schedule_create_params.py">params</a>) -> <a href="./src/agentex/types/agents/schedule_create_response.py">ScheduleCreateResponse</a></code>
82-
- <code title="get /agents/{agent_id}/schedules/{schedule_name}">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">retrieve</a>(schedule_name, \*, agent_id) -> <a href="./src/agentex/types/agents/schedule_retrieve_response.py">ScheduleRetrieveResponse</a></code>
90+
- <code title="get /agents/{agent_id}/schedules/{schedule_id}">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">retrieve</a>(schedule_id, \*, agent_id) -> <a href="./src/agentex/types/agents/schedule_retrieve_response.py">ScheduleRetrieveResponse</a></code>
91+
- <code title="patch /agents/{agent_id}/schedules/{schedule_id}">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">update</a>(schedule_id, \*, agent_id, \*\*<a href="src/agentex/types/agents/schedule_update_params.py">params</a>) -> <a href="./src/agentex/types/agents/schedule_update_response.py">ScheduleUpdateResponse</a></code>
8392
- <code title="get /agents/{agent_id}/schedules">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">list</a>(agent_id, \*\*<a href="src/agentex/types/agents/schedule_list_params.py">params</a>) -> <a href="./src/agentex/types/agents/schedule_list_response.py">ScheduleListResponse</a></code>
84-
- <code title="delete /agents/{agent_id}/schedules/{schedule_name}">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">delete</a>(schedule_name, \*, agent_id) -> <a href="./src/agentex/types/shared/delete_response.py">DeleteResponse</a></code>
85-
- <code title="post /agents/{agent_id}/schedules/{schedule_name}/pause">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">pause</a>(schedule_name, \*, agent_id, \*\*<a href="src/agentex/types/agents/schedule_pause_params.py">params</a>) -> <a href="./src/agentex/types/agents/schedule_pause_response.py">SchedulePauseResponse</a></code>
86-
- <code title="post /agents/{agent_id}/schedules/{schedule_name}/trigger">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">trigger</a>(schedule_name, \*, agent_id) -> <a href="./src/agentex/types/agents/schedule_trigger_response.py">ScheduleTriggerResponse</a></code>
87-
- <code title="post /agents/{agent_id}/schedules/{schedule_name}/unpause">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">unpause</a>(schedule_name, \*, agent_id, \*\*<a href="src/agentex/types/agents/schedule_unpause_params.py">params</a>) -> <a href="./src/agentex/types/agents/schedule_unpause_response.py">ScheduleUnpauseResponse</a></code>
93+
- <code title="delete /agents/{agent_id}/schedules/{schedule_id}">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">delete</a>(schedule_id, \*, agent_id) -> <a href="./src/agentex/types/shared/delete_response.py">DeleteResponse</a></code>
94+
- <code title="delete /agents/{agent_id}/schedules/name/{name}">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">delete_by_name</a>(name, \*, agent_id) -> <a href="./src/agentex/types/shared/delete_response.py">DeleteResponse</a></code>
95+
- <code title="post /agents/{agent_id}/schedules/{schedule_id}/pause">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">pause</a>(schedule_id, \*, agent_id, \*\*<a href="src/agentex/types/agents/schedule_pause_params.py">params</a>) -> <a href="./src/agentex/types/agents/schedule_pause_response.py">SchedulePauseResponse</a></code>
96+
- <code title="post /agents/{agent_id}/schedules/name/{name}/pause">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">pause_by_name</a>(name, \*, agent_id, \*\*<a href="src/agentex/types/agents/schedule_pause_by_name_params.py">params</a>) -> <a href="./src/agentex/types/agents/schedule_pause_by_name_response.py">SchedulePauseByNameResponse</a></code>
97+
- <code title="post /agents/{agent_id}/schedules/{schedule_id}/resume">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">resume</a>(schedule_id, \*, agent_id, \*\*<a href="src/agentex/types/agents/schedule_resume_params.py">params</a>) -> <a href="./src/agentex/types/agents/schedule_resume_response.py">ScheduleResumeResponse</a></code>
98+
- <code title="post /agents/{agent_id}/schedules/name/{name}/resume">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">resume_by_name</a>(name, \*, agent_id, \*\*<a href="src/agentex/types/agents/schedule_resume_by_name_params.py">params</a>) -> <a href="./src/agentex/types/agents/schedule_resume_by_name_response.py">ScheduleResumeByNameResponse</a></code>
99+
- <code title="get /agents/{agent_id}/schedules/name/{name}">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">retrieve_by_name</a>(name, \*, agent_id) -> <a href="./src/agentex/types/agents/schedule_retrieve_by_name_response.py">ScheduleRetrieveByNameResponse</a></code>
100+
- <code title="post /agents/{agent_id}/schedules/{schedule_id}/skip">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">skip</a>(schedule_id, \*, agent_id, \*\*<a href="src/agentex/types/agents/schedule_skip_params.py">params</a>) -> <a href="./src/agentex/types/agents/schedule_skip_response.py">ScheduleSkipResponse</a></code>
101+
- <code title="post /agents/{agent_id}/schedules/{schedule_id}/trigger">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">trigger</a>(schedule_id, \*, agent_id) -> <a href="./src/agentex/types/agents/schedule_trigger_response.py">ScheduleTriggerResponse</a></code>
102+
- <code title="post /agents/{agent_id}/schedules/name/{name}/trigger">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">trigger_by_name</a>(name, \*, agent_id) -> <a href="./src/agentex/types/agents/schedule_trigger_by_name_response.py">ScheduleTriggerByNameResponse</a></code>
103+
- <code title="post /agents/{agent_id}/schedules/{schedule_id}/unskip">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">unskip</a>(schedule_id, \*, agent_id, \*\*<a href="src/agentex/types/agents/schedule_unskip_params.py">params</a>) -> <a href="./src/agentex/types/agents/schedule_unskip_response.py">ScheduleUnskipResponse</a></code>
104+
- <code title="patch /agents/{agent_id}/schedules/name/{name}">client.agents.schedules.<a href="./src/agentex/resources/agents/schedules.py">update_by_name</a>(path_name, \*, agent_id, \*\*<a href="src/agentex/types/agents/schedule_update_by_name_params.py">params</a>) -> <a href="./src/agentex/types/agents/schedule_update_by_name_response.py">ScheduleUpdateByNameResponse</a></code>
88105

89106
# Tasks
90107

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# overlay (formerly `src/agentex/lib/*`) now lives in `adk/` and ships
44
# as the sibling `agentex-sdk` package — see `adk/pyproject.toml`.
55
name = "agentex-client"
6-
version = "0.17.0"
6+
version = "0.18.0"
77
description = "The official Python REST client for the Agentex API"
88
dynamic = ["readme"]
99
license = "Apache-2.0"

src/agentex/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
__title__ = "agentex"
4-
__version__ = "0.17.0" # x-release-please-version
4+
__version__ = "0.18.0" # x-release-please-version

src/agentex/lib/core/tracing/processors/sgp_tracing_processor.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from agentex.lib.utils.logging import make_logger
1616
from agentex.lib.core.observability import tracing_metrics_recording as _metrics
1717
from agentex.lib.environment_variables import EnvironmentVariables
18+
from agentex.lib.core.tracing.span_error import get_span_error
1819
from agentex.lib.core.tracing.processors.tracing_processor_interface import (
1920
SyncTracingProcessor,
2021
AsyncTracingProcessor,
@@ -83,6 +84,9 @@ def _build_sgp_span(span: Span, env_vars: EnvironmentVariables) -> SGPSpan:
8384
),
8485
)
8586
sgp_span.start_time = span.start_time.isoformat() # type: ignore[union-attr]
87+
error = get_span_error(span)
88+
if error is not None:
89+
sgp_span.set_error(error_type=error["type"], error_message=error["message"])
8690
return sgp_span
8791

8892

0 commit comments

Comments
 (0)