Skip to content

Commit a28508b

Browse files
release: 0.103.0 (#1565)
* feat(client): Add support for self-hosted sandboxes in CMA with sandbox helpers * release: 0.103.0 --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
1 parent 9aa85c8 commit a28508b

85 files changed

Lines changed: 9957 additions & 114 deletions

File tree

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: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.102.0"
2+
".": "0.103.0"
33
}

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 97
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/anthropic/anthropic-9bc52c052beb11ccfff68e9d96335774c8377f914bcf36278e5774c68aa84e69.yml
3-
openapi_spec_hash: 3a5f6e11b9fda1c165c6f9edbdee7d90
4-
config_hash: ed200254fa6776c7b124706c91c80475
1+
configured_endpoints: 106
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/anthropic/anthropic-56896df83861385b03a49bdf36623a811f5dedd599fdacf5680c73f9e73e1546.yml
3+
openapi_spec_hash: e1812c6c53a1029d12b5d83ca50f4b78
4+
config_hash: 45b88a8e434814b9e6f4258be5804047

CHANGELOG.md

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

3+
## 0.103.0 (2026-05-19)
4+
5+
Full Changelog: [v0.102.0...v0.103.0](https://github.com/anthropics/anthropic-sdk-python/compare/v0.102.0...v0.103.0)
6+
7+
### Features
8+
9+
* **client:** Add support for self-hosted sandboxes in CMA with sandbox helpers ([e5625b0](https://github.com/anthropics/anthropic-sdk-python/commit/e5625b0ae2a1e9d25847a53217c8fd70fa67c5ed))
10+
311
## 0.102.0 (2026-05-13)
412

513
Full Changelog: [v0.101.0...v0.102.0](https://github.com/anthropics/anthropic-sdk-python/compare/v0.101.0...v0.102.0)

api.md

Lines changed: 47 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,13 @@ from anthropic.types.beta import (
558558
BetaManagedAgentsAgentToolsetDefaultConfig,
559559
BetaManagedAgentsAgentToolsetDefaultConfigParams,
560560
BetaManagedAgentsAgentToolset20260401,
561+
BetaManagedAgentsAgentToolset20260401BashInput,
562+
BetaManagedAgentsAgentToolset20260401EditInput,
563+
BetaManagedAgentsAgentToolset20260401GlobInput,
564+
BetaManagedAgentsAgentToolset20260401GrepInput,
561565
BetaManagedAgentsAgentToolset20260401Params,
566+
BetaManagedAgentsAgentToolset20260401ReadInput,
567+
BetaManagedAgentsAgentToolset20260401WriteInput,
562568
BetaManagedAgentsAlwaysAllowPolicy,
563569
BetaManagedAgentsAlwaysAskPolicy,
564570
BetaManagedAgentsAnthropicSkill,
@@ -581,6 +587,7 @@ from anthropic.types.beta import (
581587
BetaManagedAgentsMultiagentCoordinator,
582588
BetaManagedAgentsMultiagentCoordinatorParams,
583589
BetaManagedAgentsMultiagentSelfParams,
590+
BetaManagedAgentsSessionThreadAgent,
584591
BetaManagedAgentsSkillParams,
585592
BetaManagedAgentsURLMCPServerParams,
586593
)
@@ -614,18 +621,47 @@ from anthropic.types.beta import (
614621
BetaLimitedNetworkParams,
615622
BetaPackages,
616623
BetaPackagesParams,
624+
BetaSelfHostedConfig,
625+
BetaSelfHostedConfigParams,
617626
BetaUnrestrictedNetwork,
618627
)
619628
```
620629

621630
Methods:
622631

623-
- <code title="post /v1/environments?beta=true">client.beta.environments.<a href="./src/anthropic/resources/beta/environments.py">create</a>(\*\*<a href="src/anthropic/types/beta/environment_create_params.py">params</a>) -> <a href="./src/anthropic/types/beta/beta_environment.py">BetaEnvironment</a></code>
624-
- <code title="get /v1/environments/{environment_id}?beta=true">client.beta.environments.<a href="./src/anthropic/resources/beta/environments.py">retrieve</a>(environment_id) -> <a href="./src/anthropic/types/beta/beta_environment.py">BetaEnvironment</a></code>
625-
- <code title="post /v1/environments/{environment_id}?beta=true">client.beta.environments.<a href="./src/anthropic/resources/beta/environments.py">update</a>(environment_id, \*\*<a href="src/anthropic/types/beta/environment_update_params.py">params</a>) -> <a href="./src/anthropic/types/beta/beta_environment.py">BetaEnvironment</a></code>
626-
- <code title="get /v1/environments?beta=true">client.beta.environments.<a href="./src/anthropic/resources/beta/environments.py">list</a>(\*\*<a href="src/anthropic/types/beta/environment_list_params.py">params</a>) -> <a href="./src/anthropic/types/beta/beta_environment.py">SyncPageCursor[BetaEnvironment]</a></code>
627-
- <code title="delete /v1/environments/{environment_id}?beta=true">client.beta.environments.<a href="./src/anthropic/resources/beta/environments.py">delete</a>(environment_id) -> <a href="./src/anthropic/types/beta/beta_environment_delete_response.py">BetaEnvironmentDeleteResponse</a></code>
628-
- <code title="post /v1/environments/{environment_id}/archive?beta=true">client.beta.environments.<a href="./src/anthropic/resources/beta/environments.py">archive</a>(environment_id) -> <a href="./src/anthropic/types/beta/beta_environment.py">BetaEnvironment</a></code>
632+
- <code title="post /v1/environments?beta=true">client.beta.environments.<a href="./src/anthropic/resources/beta/environments/environments.py">create</a>(\*\*<a href="src/anthropic/types/beta/environment_create_params.py">params</a>) -> <a href="./src/anthropic/types/beta/beta_environment.py">BetaEnvironment</a></code>
633+
- <code title="get /v1/environments/{environment_id}?beta=true">client.beta.environments.<a href="./src/anthropic/resources/beta/environments/environments.py">retrieve</a>(environment_id) -> <a href="./src/anthropic/types/beta/beta_environment.py">BetaEnvironment</a></code>
634+
- <code title="post /v1/environments/{environment_id}?beta=true">client.beta.environments.<a href="./src/anthropic/resources/beta/environments/environments.py">update</a>(environment_id, \*\*<a href="src/anthropic/types/beta/environment_update_params.py">params</a>) -> <a href="./src/anthropic/types/beta/beta_environment.py">BetaEnvironment</a></code>
635+
- <code title="get /v1/environments?beta=true">client.beta.environments.<a href="./src/anthropic/resources/beta/environments/environments.py">list</a>(\*\*<a href="src/anthropic/types/beta/environment_list_params.py">params</a>) -> <a href="./src/anthropic/types/beta/beta_environment.py">SyncPageCursor[BetaEnvironment]</a></code>
636+
- <code title="delete /v1/environments/{environment_id}?beta=true">client.beta.environments.<a href="./src/anthropic/resources/beta/environments/environments.py">delete</a>(environment_id) -> <a href="./src/anthropic/types/beta/beta_environment_delete_response.py">BetaEnvironmentDeleteResponse</a></code>
637+
- <code title="post /v1/environments/{environment_id}/archive?beta=true">client.beta.environments.<a href="./src/anthropic/resources/beta/environments/environments.py">archive</a>(environment_id) -> <a href="./src/anthropic/types/beta/beta_environment.py">BetaEnvironment</a></code>
638+
639+
### Work
640+
641+
Types:
642+
643+
```python
644+
from anthropic.types.beta.environments import (
645+
BetaSelfHostedWork,
646+
BetaSelfHostedWorkHeartbeatResponse,
647+
BetaSelfHostedWorkListResponse,
648+
BetaSelfHostedWorkQueueStats,
649+
BetaSelfHostedWorkStopRequest,
650+
BetaSelfHostedWorkUpdateRequest,
651+
BetaSessionWorkData,
652+
)
653+
```
654+
655+
Methods:
656+
657+
- <code title="get /v1/environments/{environment_id}/work/{work_id}?beta=true">client.beta.environments.work.<a href="./src/anthropic/resources/beta/environments/work.py">retrieve</a>(work_id, \*, environment_id) -> <a href="./src/anthropic/types/beta/environments/beta_self_hosted_work.py">BetaSelfHostedWork</a></code>
658+
- <code title="post /v1/environments/{environment_id}/work/{work_id}?beta=true">client.beta.environments.work.<a href="./src/anthropic/resources/beta/environments/work.py">update</a>(work_id, \*, environment_id, \*\*<a href="src/anthropic/types/beta/environments/work_update_params.py">params</a>) -> <a href="./src/anthropic/types/beta/environments/beta_self_hosted_work.py">BetaSelfHostedWork</a></code>
659+
- <code title="get /v1/environments/{environment_id}/work?beta=true">client.beta.environments.work.<a href="./src/anthropic/resources/beta/environments/work.py">list</a>(environment_id, \*\*<a href="src/anthropic/types/beta/environments/work_list_params.py">params</a>) -> <a href="./src/anthropic/types/beta/environments/beta_self_hosted_work.py">SyncPageCursor[BetaSelfHostedWork]</a></code>
660+
- <code title="post /v1/environments/{environment_id}/work/{work_id}/ack?beta=true">client.beta.environments.work.<a href="./src/anthropic/resources/beta/environments/work.py">ack</a>(work_id, \*, environment_id) -> <a href="./src/anthropic/types/beta/environments/beta_self_hosted_work.py">BetaSelfHostedWork</a></code>
661+
- <code title="post /v1/environments/{environment_id}/work/{work_id}/heartbeat?beta=true">client.beta.environments.work.<a href="./src/anthropic/resources/beta/environments/work.py">heartbeat</a>(work_id, \*, environment_id, \*\*<a href="src/anthropic/types/beta/environments/work_heartbeat_params.py">params</a>) -> <a href="./src/anthropic/types/beta/environments/beta_self_hosted_work_heartbeat_response.py">BetaSelfHostedWorkHeartbeatResponse</a></code>
662+
- <code title="get /v1/environments/{environment_id}/work/poll?beta=true">client.beta.environments.work.<a href="./src/anthropic/resources/beta/environments/work.py">poll</a>(environment_id, \*\*<a href="src/anthropic/types/beta/environments/work_poll_params.py">params</a>) -> <a href="./src/anthropic/types/beta/environments/beta_self_hosted_work.py">Optional[BetaSelfHostedWork]</a></code>
663+
- <code title="get /v1/environments/{environment_id}/work/stats?beta=true">client.beta.environments.work.<a href="./src/anthropic/resources/beta/environments/work.py">stats</a>(environment_id) -> <a href="./src/anthropic/types/beta/environments/beta_self_hosted_work_queue_stats.py">BetaSelfHostedWorkQueueStats</a></code>
664+
- <code title="post /v1/environments/{environment_id}/work/{work_id}/stop?beta=true">client.beta.environments.work.<a href="./src/anthropic/resources/beta/environments/work.py">stop</a>(work_id, \*, environment_id, \*\*<a href="src/anthropic/types/beta/environments/work_stop_params.py">params</a>) -> <a href="./src/anthropic/types/beta/environments/beta_self_hosted_work.py">BetaSelfHostedWork</a></code>
629665

630666
## Sessions
631667

@@ -647,9 +683,12 @@ from anthropic.types.beta import (
647683
BetaManagedAgentsOutcomeEvaluationResource,
648684
BetaManagedAgentsSession,
649685
BetaManagedAgentsSessionAgent,
686+
BetaManagedAgentsSessionAgentUpdate,
650687
BetaManagedAgentsSessionMultiagentCoordinator,
651688
BetaManagedAgentsSessionStats,
689+
BetaManagedAgentsSessionUpdatedEvent,
652690
BetaManagedAgentsSessionUsage,
691+
BetaManagedAgentsUserToolResultEvent,
653692
)
654693
```
655694

@@ -739,6 +778,7 @@ from anthropic.types.beta.sessions import (
739778
BetaManagedAgentsUserMessageEventParams,
740779
BetaManagedAgentsUserToolConfirmationEvent,
741780
BetaManagedAgentsUserToolConfirmationEventParams,
781+
BetaManagedAgentsUserToolResultEventParams,
742782
)
743783
```
744784

@@ -779,7 +819,6 @@ Types:
779819
```python
780820
from anthropic.types.beta.sessions import (
781821
BetaManagedAgentsSessionThread,
782-
BetaManagedAgentsSessionThreadAgent,
783822
BetaManagedAgentsSessionThreadStats,
784823
BetaManagedAgentsSessionThreadStatus,
785824
BetaManagedAgentsSessionThreadUsage,
@@ -981,6 +1020,7 @@ Methods:
9811020
- <code title="get /v1/skills/{skill_id}/versions/{version}?beta=true">client.beta.skills.versions.<a href="./src/anthropic/resources/beta/skills/versions.py">retrieve</a>(version, \*, skill_id) -> <a href="./src/anthropic/types/beta/skills/version_retrieve_response.py">VersionRetrieveResponse</a></code>
9821021
- <code title="get /v1/skills/{skill_id}/versions?beta=true">client.beta.skills.versions.<a href="./src/anthropic/resources/beta/skills/versions.py">list</a>(skill_id, \*\*<a href="src/anthropic/types/beta/skills/version_list_params.py">params</a>) -> <a href="./src/anthropic/types/beta/skills/version_list_response.py">SyncPageCursor[VersionListResponse]</a></code>
9831022
- <code title="delete /v1/skills/{skill_id}/versions/{version}?beta=true">client.beta.skills.versions.<a href="./src/anthropic/resources/beta/skills/versions.py">delete</a>(version, \*, skill_id) -> <a href="./src/anthropic/types/beta/skills/version_delete_response.py">VersionDeleteResponse</a></code>
1023+
- <code title="get /v1/skills/{skill_id}/versions/{version}/content?beta=true">client.beta.skills.versions.<a href="./src/anthropic/resources/beta/skills/versions.py">download</a>(version, \*, skill_id) -> BinaryAPIResponse</code>
9841024

9851025
## Webhooks
9861026

examples/agents_comprehensive.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,16 +110,16 @@ def main() -> None:
110110
with anthropic.beta.sessions.events.stream(session.id) as stream:
111111
for event in stream:
112112
print(event.to_json(indent=2))
113+
# `get_weather` is a custom (non-builtin) tool, so the agent emits an
114+
# `agent.custom_tool_use` event and expects a `user.custom_tool_result`.
113115
if event.type == "agent.custom_tool_use" and event.name == "get_weather":
114116
anthropic.beta.sessions.events.send(
115117
session.id,
116118
events=[
117119
{
118120
"type": "user.custom_tool_result",
119121
"custom_tool_use_id": event.id,
120-
"content": [
121-
{"type": "text", "text": '{"temperature_c": 14}'}
122-
],
122+
"content": [{"type": "text", "text": '{"temperature_c": 14}'}],
123123
}
124124
],
125125
)

0 commit comments

Comments
 (0)