diff --git a/.release-please-manifest.json b/.release-please-manifest.json index bdc78d564..7d9b009db 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.9.10" + ".": "0.10.0" } diff --git a/.stats.yml b/.stats.yml index 531f129e4..7b6d3dc17 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 45 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5fa3cb3c867281c804913c7c3e6d2143b5606d4924d42119f4b2b246f33e3db3.yml -openapi_spec_hash: 7372cd7b99d93e200d7b9a63440cdc6f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-636aa63c588134e6f47fc45212049593d91f810a9c7bd8d7a57810cf1b5ffc92.yml +openapi_spec_hash: c76a42d4510aeafd896bc0d596f17af4 config_hash: fb079ef7936611b032568661b8165f19 diff --git a/CHANGELOG.md b/CHANGELOG.md index 00d90563e..8397ebc2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## 0.10.0 (2026-04-10) + +Full Changelog: [v0.9.10...v0.10.0](https://github.com/scaleapi/scale-agentex-python/compare/v0.9.10...v0.10.0) + +### Features + +* add AgentCard for self-describing agent capabilities ([#296](https://github.com/scaleapi/scale-agentex-python/issues/296)) ([6509be1](https://github.com/scaleapi/scale-agentex-python/commit/6509be1e5d9bc53e6058b22c45c760e04a4c4006)) +* **api:** api update ([0ed71a9](https://github.com/scaleapi/scale-agentex-python/commit/0ed71a97249478a35cddcd79ec39cae4d531fc6d)) + + +### Bug Fixes + +* ensure file data are only sent as 1 parameter ([dea857a](https://github.com/scaleapi/scale-agentex-python/commit/dea857a5a18363ba1aae4ae699069331d4f7280d)) + ## 0.9.10 (2026-04-07) Full Changelog: [v0.9.9...v0.9.10](https://github.com/scaleapi/scale-agentex-python/compare/v0.9.9...v0.9.10) diff --git a/pyproject.toml b/pyproject.toml index e31434e02..6913db8be 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "agentex-sdk" -version = "0.9.10" +version = "0.10.0" description = "The official Python library for the agentex API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/agentex/_utils/_utils.py b/src/agentex/_utils/_utils.py index eec7f4a1f..63b8cd602 100644 --- a/src/agentex/_utils/_utils.py +++ b/src/agentex/_utils/_utils.py @@ -86,8 +86,9 @@ def _extract_items( index += 1 if is_dict(obj): try: - # We are at the last entry in the path so we must remove the field - if (len(path)) == index: + # Remove the field if there are no more dict keys in the path, + # only "" traversal markers or end. + if all(p == "" for p in path[index:]): item = obj.pop(key) else: item = obj[key] diff --git a/src/agentex/_version.py b/src/agentex/_version.py index c497d910a..2d6a90e5b 100644 --- a/src/agentex/_version.py +++ b/src/agentex/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "agentex" -__version__ = "0.9.10" # x-release-please-version +__version__ = "0.10.0" # x-release-please-version diff --git a/src/agentex/types/agent.py b/src/agentex/types/agent.py index 7828822c4..5ed7588b1 100644 --- a/src/agentex/types/agent.py +++ b/src/agentex/types/agent.py @@ -32,6 +32,9 @@ class Agent(BaseModel): agent_input_type: Optional[Literal["text", "json"]] = None """The type of input the agent expects.""" + production_deployment_id: Optional[str] = None + """ID of the current production deployment.""" + registered_at: Optional[datetime] = None """The timestamp when the agent was last registered""" diff --git a/tests/test_extract_files.py b/tests/test_extract_files.py index 43b12be2e..9c32b2a52 100644 --- a/tests/test_extract_files.py +++ b/tests/test_extract_files.py @@ -35,6 +35,15 @@ def test_multiple_files() -> None: assert query == {"documents": [{}, {}]} +def test_top_level_file_array() -> None: + query = {"files": [b"file one", b"file two"], "title": "hello"} + assert extract_files(query, paths=[["files", ""]]) == [ + ("files[]", b"file one"), + ("files[]", b"file two"), + ] + assert query == {"title": "hello"} + + @pytest.mark.parametrize( "query,paths,expected", [