anthropic 2.1.0 → 2.3.0

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 (421) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +57 -0
  3. data/README.md +2 -2
  4. data/lib/anthropic/client.rb +9 -1
  5. data/lib/anthropic/helpers/bedrock/client.rb +11 -3
  6. data/lib/anthropic/helpers/bedrock/mantle_client.rb +5 -0
  7. data/lib/anthropic/helpers/google_cloud/client.rb +9 -25
  8. data/lib/anthropic/helpers/refusal_fallback.rb +1 -2
  9. data/lib/anthropic/helpers/stainless_helper_header.rb +4 -2
  10. data/lib/anthropic/helpers/threads/beta_message_thread.rb +635 -0
  11. data/lib/anthropic/helpers/tools/runner.rb +79 -11
  12. data/lib/anthropic/helpers/vertex/client.rb +5 -0
  13. data/lib/anthropic/internal/report_page_cursor.rb +2 -2
  14. data/lib/anthropic/internal/tracing.rb +22 -0
  15. data/lib/anthropic/internal/transport/base_client.rb +16 -2
  16. data/lib/anthropic/models/anthropic_beta.rb +9 -0
  17. data/lib/anthropic/models/beta/beta_code_execution_tool_20260120.rb +10 -2
  18. data/lib/anthropic/models/beta/beta_code_execution_tool_result_block_content.rb +5 -1
  19. data/lib/anthropic/models/beta/beta_code_execution_tool_result_block_param_content.rb +1 -1
  20. data/lib/anthropic/models/beta/beta_encrypted_code_execution_result_block.rb +9 -1
  21. data/lib/anthropic/models/beta/beta_encrypted_code_execution_result_block_param.rb +2 -1
  22. data/lib/anthropic/models/beta/beta_message_thread_param.rb +61 -0
  23. data/lib/anthropic/models/beta/beta_response_tool_union.rb +5 -1
  24. data/lib/anthropic/models/beta/beta_skill_params.rb +1 -1
  25. data/lib/anthropic/models/beta/beta_thread_continue_params.rb +29 -0
  26. data/lib/anthropic/models/beta/beta_thread_create_params.rb +21 -0
  27. data/lib/anthropic/models/beta/beta_tool_union.rb +5 -1
  28. data/lib/anthropic/models/beta/environments/beta_self_hosted_work_heartbeat_response.rb +7 -2
  29. data/lib/anthropic/models/beta/environments/beta_self_hosted_work_queue_stats.rb +2 -4
  30. data/lib/anthropic/models/beta/message_count_tokens_params.rb +5 -1
  31. data/lib/anthropic/models/beta/message_create_params.rb +13 -1
  32. data/lib/anthropic/models/beta/messages/batch_create_params.rb +13 -1
  33. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_cost_group.rb +271 -0
  34. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_cost_group_by.rb +40 -0
  35. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_cost_item.rb +57 -0
  36. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_cost_metrics.rb +57 -0
  37. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_cost_order_by.rb +22 -0
  38. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_usage_group.rb +247 -0
  39. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_usage_group_by.rb +38 -0
  40. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_usage_item.rb +57 -0
  41. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_usage_metrics.rb +79 -0
  42. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_usage_order_by.rb +24 -0
  43. data/lib/anthropic/models/beta/organization/analytics/cost_list_params.rb +360 -0
  44. data/lib/anthropic/models/beta/organization/analytics/usage_list_params.rb +353 -0
  45. data/lib/anthropic/models/beta/organization/beta_analytics_actor.rb +81 -0
  46. data/lib/anthropic/models/beta/organization/beta_analytics_actor_type.rb +22 -0
  47. data/lib/anthropic/models/beta/organization/beta_analytics_api_actor.rb +27 -0
  48. data/lib/anthropic/models/beta/organization/beta_analytics_federated_actor.rb +42 -0
  49. data/lib/anthropic/models/beta/organization/beta_analytics_federated_actor_aws_provider.rb +35 -0
  50. data/lib/anthropic/models/beta/organization/beta_analytics_federated_actor_azure_provider.rb +27 -0
  51. data/lib/anthropic/models/beta/organization/beta_analytics_federated_actor_gcp_provider.rb +27 -0
  52. data/lib/anthropic/models/beta/organization/beta_analytics_federated_actor_oidc_provider.rb +27 -0
  53. data/lib/anthropic/models/beta/organization/beta_analytics_federated_actor_provider.rb +72 -0
  54. data/lib/anthropic/models/beta/organization/beta_analytics_grouped_cost_type.rb +21 -0
  55. data/lib/anthropic/models/beta/organization/beta_analytics_report_user_actor.rb +65 -0
  56. data/lib/anthropic/models/beta/organization/beta_analytics_service_account_actor.rb +27 -0
  57. data/lib/anthropic/models/beta/organization/beta_analytics_service_tier.rb +23 -0
  58. data/lib/anthropic/models/beta/organization/beta_analytics_speed.rb +19 -0
  59. data/lib/anthropic/models/beta/organization/beta_analytics_time_bucket_width.rb +20 -0
  60. data/lib/anthropic/models/beta/organization/beta_analytics_usage_cost_inference_geo.rb +19 -0
  61. data/lib/anthropic/models/beta/organization/beta_analytics_usage_cost_product_filter.rb +34 -0
  62. data/lib/anthropic/models/beta/organization/beta_analytics_usage_cost_sort_order.rb +19 -0
  63. data/lib/anthropic/models/beta/organization/beta_claude_tag_default_setting_source.rb +21 -0
  64. data/lib/anthropic/models/beta/organization/beta_claude_tag_guest_policy.rb +63 -0
  65. data/lib/anthropic/models/beta/organization/beta_claude_tag_guest_policy_allow.rb +21 -0
  66. data/lib/anthropic/models/beta/organization/beta_claude_tag_guest_policy_channel_only.rb +21 -0
  67. data/lib/anthropic/models/beta/organization/beta_claude_tag_guest_policy_restrict.rb +21 -0
  68. data/lib/anthropic/models/beta/organization/beta_claude_tag_setting_source.rb +87 -0
  69. data/lib/anthropic/models/beta/organization/beta_claude_tag_setting_sources.rb +72 -0
  70. data/lib/anthropic/models/beta/organization/beta_claude_tag_settings.rb +70 -0
  71. data/lib/anthropic/models/beta/organization/beta_claude_tag_settings_create.rb +67 -0
  72. data/lib/anthropic/models/beta/organization/beta_claude_tag_settings_update.rb +67 -0
  73. data/lib/anthropic/models/beta/organization/beta_claude_tag_slack_channel_identifiers.rb +37 -0
  74. data/lib/anthropic/models/beta/organization/beta_claude_tag_slack_channel_setting_source.rb +29 -0
  75. data/lib/anthropic/models/beta/organization/beta_claude_tag_slack_default_setting_source.rb +22 -0
  76. data/lib/anthropic/models/beta/organization/beta_claude_tag_slack_grid_channel_setting_source.rb +31 -0
  77. data/lib/anthropic/models/beta/organization/beta_claude_tag_slack_parent_channel_setting_source.rb +30 -0
  78. data/lib/anthropic/models/beta/organization/beta_claude_tag_slack_workspace_identifiers.rb +23 -0
  79. data/lib/anthropic/models/beta/organization/beta_claude_tag_slack_workspace_setting_source.rb +29 -0
  80. data/lib/anthropic/models/beta/organization/beta_external_key.rb +3 -3
  81. data/lib/anthropic/models/beta/organization/beta_organization_rate_limit.rb +2 -1
  82. data/lib/anthropic/models/beta/organization/beta_plugin.rb +12 -6
  83. data/lib/anthropic/models/beta/organization/beta_plugin_content_scan.rb +11 -5
  84. data/lib/anthropic/models/beta/organization/claude_tag/beta_claude_tag_bundle.rb +66 -0
  85. data/lib/anthropic/models/beta/organization/claude_tag/beta_claude_tag_deleted_slack_channel.rb +32 -0
  86. data/lib/anthropic/models/beta/organization/claude_tag/beta_claude_tag_slack_channel.rb +87 -0
  87. data/lib/anthropic/models/beta/organization/claude_tag/beta_claude_tag_slack_workspace.rb +86 -0
  88. data/lib/anthropic/models/beta/organization/claude_tag/bundle_list_params.rb +49 -0
  89. data/lib/anthropic/models/beta/organization/claude_tag/bundle_retrieve_params.rb +41 -0
  90. data/lib/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_bundle_target.rb +76 -0
  91. data/lib/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_bundle_target_create.rb +70 -0
  92. data/lib/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_deleted_bundle_target.rb +34 -0
  93. data/lib/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_slack_channel_bundle_target.rb +57 -0
  94. data/lib/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_slack_channel_bundle_target_create.rb +38 -0
  95. data/lib/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_slack_workspace_bundle_target.rb +57 -0
  96. data/lib/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_slack_workspace_bundle_target_create.rb +38 -0
  97. data/lib/anthropic/models/beta/organization/claude_tag/bundles/target_create_params.rb +43 -0
  98. data/lib/anthropic/models/beta/organization/claude_tag/bundles/target_delete_params.rb +53 -0
  99. data/lib/anthropic/models/beta/organization/claude_tag/bundles/target_list_params.rb +59 -0
  100. data/lib/anthropic/models/beta/organization/claude_tag/bundles/target_retrieve_params.rb +53 -0
  101. data/lib/anthropic/models/beta/organization/claude_tag/slack_channel_create_params.rb +50 -0
  102. data/lib/anthropic/models/beta/organization/claude_tag/slack_channel_delete_params.rb +41 -0
  103. data/lib/anthropic/models/beta/organization/claude_tag/slack_channel_list_params.rb +79 -0
  104. data/lib/anthropic/models/beta/organization/claude_tag/slack_channel_retrieve_params.rb +52 -0
  105. data/lib/anthropic/models/beta/organization/claude_tag/slack_channel_update_params.rb +49 -0
  106. data/lib/anthropic/models/beta/organization/claude_tag/slack_workspace_list_params.rb +70 -0
  107. data/lib/anthropic/models/beta/organization/claude_tag/slack_workspace_retrieve_params.rb +52 -0
  108. data/lib/anthropic/models/beta/organization/claude_tag/slack_workspace_update_params.rb +49 -0
  109. data/lib/anthropic/models/beta/organization/workspaces/beta_workspace_rate_limit.rb +2 -1
  110. data/lib/anthropic/models/code_execution_tool_20260120.rb +10 -2
  111. data/lib/anthropic/models/code_execution_tool_result_block_content.rb +5 -1
  112. data/lib/anthropic/models/code_execution_tool_result_block_param_content.rb +1 -1
  113. data/lib/anthropic/models/encrypted_code_execution_result_block.rb +9 -1
  114. data/lib/anthropic/models/encrypted_code_execution_result_block_param.rb +2 -1
  115. data/lib/anthropic/models/message_count_tokens_tool.rb +5 -1
  116. data/lib/anthropic/models/organization/external_key.rb +3 -3
  117. data/lib/anthropic/models/organization/organization_rate_limit.rb +2 -1
  118. data/lib/anthropic/models/organization/workspaces/workspace_rate_limit.rb +2 -1
  119. data/lib/anthropic/models/skill_params.rb +1 -1
  120. data/lib/anthropic/models/tool_union.rb +5 -1
  121. data/lib/anthropic/resources/beta/agents/versions.rb +2 -1
  122. data/lib/anthropic/resources/beta/agents.rb +10 -5
  123. data/lib/anthropic/resources/beta/deployment_runs.rb +4 -2
  124. data/lib/anthropic/resources/beta/deployments.rb +16 -8
  125. data/lib/anthropic/resources/beta/dreams.rb +10 -5
  126. data/lib/anthropic/resources/beta/environments/work.rb +16 -8
  127. data/lib/anthropic/resources/beta/environments.rb +12 -6
  128. data/lib/anthropic/resources/beta/files.rb +10 -5
  129. data/lib/anthropic/resources/beta/memory_stores/memories.rb +10 -5
  130. data/lib/anthropic/resources/beta/memory_stores/memory_versions.rb +6 -11
  131. data/lib/anthropic/resources/beta/memory_stores.rb +12 -6
  132. data/lib/anthropic/resources/beta/messages/batches.rb +12 -6
  133. data/lib/anthropic/resources/beta/messages.rb +84 -7
  134. data/lib/anthropic/resources/beta/models.rb +4 -2
  135. data/lib/anthropic/resources/beta/organization/analytics/apps/chat/projects.rb +2 -1
  136. data/lib/anthropic/resources/beta/organization/analytics/artifacts.rb +2 -1
  137. data/lib/anthropic/resources/beta/organization/analytics/connectors.rb +2 -1
  138. data/lib/anthropic/resources/beta/organization/analytics/cost.rb +176 -0
  139. data/lib/anthropic/resources/beta/organization/analytics/cost_report.rb +14 -6
  140. data/lib/anthropic/resources/beta/organization/analytics/plugins.rb +2 -1
  141. data/lib/anthropic/resources/beta/organization/analytics/skills.rb +2 -1
  142. data/lib/anthropic/resources/beta/organization/analytics/summaries.rb +2 -1
  143. data/lib/anthropic/resources/beta/organization/analytics/usage.rb +177 -0
  144. data/lib/anthropic/resources/beta/organization/analytics/usage_report.rb +11 -3
  145. data/lib/anthropic/resources/beta/organization/analytics/user_cost_report.rb +17 -9
  146. data/lib/anthropic/resources/beta/organization/analytics/user_usage_report.rb +17 -9
  147. data/lib/anthropic/resources/beta/organization/analytics/users.rb +2 -1
  148. data/lib/anthropic/resources/beta/organization/analytics.rb +8 -0
  149. data/lib/anthropic/resources/beta/organization/api_keys.rb +6 -3
  150. data/lib/anthropic/resources/beta/organization/claude_tag/bundles/targets.rb +204 -0
  151. data/lib/anthropic/resources/beta/organization/claude_tag/bundles.rb +102 -0
  152. data/lib/anthropic/resources/beta/organization/claude_tag/slack_channels.rb +263 -0
  153. data/lib/anthropic/resources/beta/organization/claude_tag/slack_workspaces.rb +162 -0
  154. data/lib/anthropic/resources/beta/organization/claude_tag.rb +31 -0
  155. data/lib/anthropic/resources/beta/organization/compliance_settings.rb +4 -2
  156. data/lib/anthropic/resources/beta/organization/external_keys.rb +12 -6
  157. data/lib/anthropic/resources/beta/organization/federation/issuers.rb +10 -5
  158. data/lib/anthropic/resources/beta/organization/federation/rules/workspaces.rb +6 -3
  159. data/lib/anthropic/resources/beta/organization/federation/rules.rb +10 -5
  160. data/lib/anthropic/resources/beta/organization/invites.rb +8 -4
  161. data/lib/anthropic/resources/beta/organization/plugin_marketplaces.rb +16 -11
  162. data/lib/anthropic/resources/beta/organization/plugins/installation_settings.rb +6 -11
  163. data/lib/anthropic/resources/beta/organization/plugins/shares.rb +2 -1
  164. data/lib/anthropic/resources/beta/organization/plugins/versions.rb +8 -4
  165. data/lib/anthropic/resources/beta/organization/plugins.rb +22 -14
  166. data/lib/anthropic/resources/beta/organization/rate_limits.rb +2 -1
  167. data/lib/anthropic/resources/beta/organization/rbac_groups/members.rb +6 -3
  168. data/lib/anthropic/resources/beta/organization/rbac_groups.rb +10 -5
  169. data/lib/anthropic/resources/beta/organization/rbac_roles/permissions.rb +2 -1
  170. data/lib/anthropic/resources/beta/organization/rbac_roles.rb +4 -2
  171. data/lib/anthropic/resources/beta/organization/service_accounts/workspaces.rb +6 -3
  172. data/lib/anthropic/resources/beta/organization/service_accounts.rb +10 -5
  173. data/lib/anthropic/resources/beta/organization/spend_limits/effective.rb +2 -1
  174. data/lib/anthropic/resources/beta/organization/spend_limits/increase_requests.rb +8 -4
  175. data/lib/anthropic/resources/beta/organization/spend_limits.rb +8 -4
  176. data/lib/anthropic/resources/beta/organization/telemetry_destinations/workspaces.rb +6 -3
  177. data/lib/anthropic/resources/beta/organization/telemetry_destinations.rb +12 -6
  178. data/lib/anthropic/resources/beta/organization/users.rb +8 -4
  179. data/lib/anthropic/resources/beta/organization/webhooks.rb +12 -9
  180. data/lib/anthropic/resources/beta/organization/workspaces/members.rb +10 -5
  181. data/lib/anthropic/resources/beta/organization/workspaces/rate_limits.rb +4 -6
  182. data/lib/anthropic/resources/beta/organization/workspaces/service_accounts.rb +10 -5
  183. data/lib/anthropic/resources/beta/organization/workspaces.rb +10 -5
  184. data/lib/anthropic/resources/beta/organization.rb +6 -1
  185. data/lib/anthropic/resources/beta/sessions/events.rb +6 -3
  186. data/lib/anthropic/resources/beta/sessions/resources.rb +10 -5
  187. data/lib/anthropic/resources/beta/sessions/threads/events.rb +4 -2
  188. data/lib/anthropic/resources/beta/sessions/threads.rb +6 -3
  189. data/lib/anthropic/resources/beta/sessions.rb +12 -6
  190. data/lib/anthropic/resources/beta/skills/versions.rb +10 -5
  191. data/lib/anthropic/resources/beta/skills.rb +8 -4
  192. data/lib/anthropic/resources/beta/tunnels/certificates.rb +8 -4
  193. data/lib/anthropic/resources/beta/tunnels.rb +12 -6
  194. data/lib/anthropic/resources/beta/user_profiles/action_urls.rb +2 -1
  195. data/lib/anthropic/resources/beta/user_profiles.rb +12 -6
  196. data/lib/anthropic/resources/beta/vaults/credentials.rb +14 -7
  197. data/lib/anthropic/resources/beta/vaults.rb +12 -6
  198. data/lib/anthropic/version.rb +1 -1
  199. data/lib/anthropic.rb +83 -0
  200. data/rbi/anthropic/client.rbi +5 -0
  201. data/rbi/anthropic/helpers/bedrock/client.rbi +5 -0
  202. data/rbi/anthropic/helpers/bedrock/mantle_client.rbi +5 -0
  203. data/rbi/anthropic/helpers/google_cloud/client.rbi +0 -4
  204. data/rbi/anthropic/helpers/threads/beta_message_thread.rbi +100 -0
  205. data/rbi/anthropic/helpers/vertex/client.rbi +5 -0
  206. data/rbi/anthropic/internal/tracing.rbi +32 -0
  207. data/rbi/anthropic/internal/transport/base_client.rbi +5 -1
  208. data/rbi/anthropic/internal/type/base_page.rbi +2 -0
  209. data/rbi/anthropic/internal/type/base_stream.rbi +2 -0
  210. data/rbi/anthropic/internal/type/request_parameters.rbi +4 -0
  211. data/rbi/anthropic/models/anthropic_beta.rbi +15 -0
  212. data/rbi/anthropic/models/beta/beta_code_execution_tool_20260120.rbi +10 -2
  213. data/rbi/anthropic/models/beta/beta_encrypted_code_execution_result_block.rbi +9 -1
  214. data/rbi/anthropic/models/beta/beta_encrypted_code_execution_result_block_param.rbi +2 -1
  215. data/rbi/anthropic/models/beta/beta_message_thread_param.rbi +80 -0
  216. data/rbi/anthropic/models/beta/beta_skill_params.rbi +1 -1
  217. data/rbi/anthropic/models/beta/beta_thread_continue_params.rbi +43 -0
  218. data/rbi/anthropic/models/beta/beta_thread_create_params.rbi +31 -0
  219. data/rbi/anthropic/models/beta/environments/beta_self_hosted_work_heartbeat_response.rbi +4 -2
  220. data/rbi/anthropic/models/beta/environments/beta_self_hosted_work_queue_stats.rbi +2 -4
  221. data/rbi/anthropic/models/beta/message_create_params.rbi +37 -0
  222. data/rbi/anthropic/models/beta/messages/batch_create_params.rbi +37 -0
  223. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_cost_group.rbi +439 -0
  224. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_cost_group_by.rbi +140 -0
  225. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_cost_item.rbi +110 -0
  226. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_cost_metrics.rbi +79 -0
  227. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_cost_order_by.rbi +50 -0
  228. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_usage_group.rbi +399 -0
  229. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_usage_group_by.rbi +130 -0
  230. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_usage_item.rbi +110 -0
  231. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_usage_metrics.rbi +120 -0
  232. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_usage_order_by.rbi +60 -0
  233. data/rbi/anthropic/models/beta/organization/analytics/cost_list_params.rbi +624 -0
  234. data/rbi/anthropic/models/beta/organization/analytics/usage_list_params.rbi +612 -0
  235. data/rbi/anthropic/models/beta/organization/beta_analytics_actor.rbi +134 -0
  236. data/rbi/anthropic/models/beta/organization/beta_analytics_actor_type.rbi +54 -0
  237. data/rbi/anthropic/models/beta/organization/beta_analytics_api_actor.rbi +40 -0
  238. data/rbi/anthropic/models/beta/organization/beta_analytics_federated_actor.rbi +75 -0
  239. data/rbi/anthropic/models/beta/organization/beta_analytics_federated_actor_aws_provider.rbi +54 -0
  240. data/rbi/anthropic/models/beta/organization/beta_analytics_federated_actor_azure_provider.rbi +42 -0
  241. data/rbi/anthropic/models/beta/organization/beta_analytics_federated_actor_gcp_provider.rbi +42 -0
  242. data/rbi/anthropic/models/beta/organization/beta_analytics_federated_actor_oidc_provider.rbi +42 -0
  243. data/rbi/anthropic/models/beta/organization/beta_analytics_federated_actor_provider.rbi +107 -0
  244. data/rbi/anthropic/models/beta/organization/beta_analytics_grouped_cost_type.rbi +53 -0
  245. data/rbi/anthropic/models/beta/organization/beta_analytics_report_user_actor.rbi +94 -0
  246. data/rbi/anthropic/models/beta/organization/beta_analytics_service_account_actor.rbi +42 -0
  247. data/rbi/anthropic/models/beta/organization/beta_analytics_service_tier.rbi +63 -0
  248. data/rbi/anthropic/models/beta/organization/beta_analytics_speed.rbi +40 -0
  249. data/rbi/anthropic/models/beta/organization/beta_analytics_time_bucket_width.rbi +48 -0
  250. data/rbi/anthropic/models/beta/organization/beta_analytics_usage_cost_inference_geo.rbi +43 -0
  251. data/rbi/anthropic/models/beta/organization/beta_analytics_usage_cost_product_filter.rbi +98 -0
  252. data/rbi/anthropic/models/beta/organization/beta_analytics_usage_cost_sort_order.rbi +43 -0
  253. data/rbi/anthropic/models/beta/organization/beta_claude_tag_default_setting_source.rbi +31 -0
  254. data/rbi/anthropic/models/beta/organization/beta_claude_tag_guest_policy.rbi +87 -0
  255. data/rbi/anthropic/models/beta/organization/beta_claude_tag_guest_policy_allow.rbi +31 -0
  256. data/rbi/anthropic/models/beta/organization/beta_claude_tag_guest_policy_channel_only.rbi +31 -0
  257. data/rbi/anthropic/models/beta/organization/beta_claude_tag_guest_policy_restrict.rbi +31 -0
  258. data/rbi/anthropic/models/beta/organization/beta_claude_tag_setting_source.rbi +115 -0
  259. data/rbi/anthropic/models/beta/organization/beta_claude_tag_setting_sources.rbi +178 -0
  260. data/rbi/anthropic/models/beta/organization/beta_claude_tag_settings.rbi +108 -0
  261. data/rbi/anthropic/models/beta/organization/beta_claude_tag_settings_create.rbi +110 -0
  262. data/rbi/anthropic/models/beta/organization/beta_claude_tag_settings_update.rbi +110 -0
  263. data/rbi/anthropic/models/beta/organization/beta_claude_tag_slack_channel_identifiers.rbi +50 -0
  264. data/rbi/anthropic/models/beta/organization/beta_claude_tag_slack_channel_setting_source.rbi +43 -0
  265. data/rbi/anthropic/models/beta/organization/beta_claude_tag_slack_default_setting_source.rbi +32 -0
  266. data/rbi/anthropic/models/beta/organization/beta_claude_tag_slack_grid_channel_setting_source.rbi +67 -0
  267. data/rbi/anthropic/models/beta/organization/beta_claude_tag_slack_parent_channel_setting_source.rbi +44 -0
  268. data/rbi/anthropic/models/beta/organization/beta_claude_tag_slack_workspace_identifiers.rbi +36 -0
  269. data/rbi/anthropic/models/beta/organization/beta_claude_tag_slack_workspace_setting_source.rbi +43 -0
  270. data/rbi/anthropic/models/beta/organization/beta_external_key.rbi +4 -4
  271. data/rbi/anthropic/models/beta/organization/beta_organization_rate_limit.rbi +4 -2
  272. data/rbi/anthropic/models/beta/organization/beta_plugin.rbi +20 -8
  273. data/rbi/anthropic/models/beta/organization/beta_plugin_content_scan.rbi +15 -6
  274. data/rbi/anthropic/models/beta/organization/claude_tag/beta_claude_tag_bundle.rbi +87 -0
  275. data/rbi/anthropic/models/beta/organization/claude_tag/beta_claude_tag_deleted_slack_channel.rbi +41 -0
  276. data/rbi/anthropic/models/beta/organization/claude_tag/beta_claude_tag_slack_channel.rbi +154 -0
  277. data/rbi/anthropic/models/beta/organization/claude_tag/beta_claude_tag_slack_workspace.rbi +151 -0
  278. data/rbi/anthropic/models/beta/organization/claude_tag/bundle_list_params.rbi +92 -0
  279. data/rbi/anthropic/models/beta/organization/claude_tag/bundle_retrieve_params.rbi +78 -0
  280. data/rbi/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_bundle_target.rbi +102 -0
  281. data/rbi/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_bundle_target_create.rbi +92 -0
  282. data/rbi/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_deleted_bundle_target.rbi +43 -0
  283. data/rbi/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_slack_channel_bundle_target.rbi +78 -0
  284. data/rbi/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_slack_channel_bundle_target_create.rbi +51 -0
  285. data/rbi/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_slack_workspace_bundle_target.rbi +78 -0
  286. data/rbi/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_slack_workspace_bundle_target_create.rbi +51 -0
  287. data/rbi/anthropic/models/beta/organization/claude_tag/bundles/target_create_params.rbi +82 -0
  288. data/rbi/anthropic/models/beta/organization/claude_tag/bundles/target_delete_params.rbi +94 -0
  289. data/rbi/anthropic/models/beta/organization/claude_tag/bundles/target_list_params.rbi +104 -0
  290. data/rbi/anthropic/models/beta/organization/claude_tag/bundles/target_retrieve_params.rbi +94 -0
  291. data/rbi/anthropic/models/beta/organization/claude_tag/slack_channel_create_params.rbi +118 -0
  292. data/rbi/anthropic/models/beta/organization/claude_tag/slack_channel_delete_params.rbi +78 -0
  293. data/rbi/anthropic/models/beta/organization/claude_tag/slack_channel_list_params.rbi +134 -0
  294. data/rbi/anthropic/models/beta/organization/claude_tag/slack_channel_retrieve_params.rbi +95 -0
  295. data/rbi/anthropic/models/beta/organization/claude_tag/slack_channel_update_params.rbi +100 -0
  296. data/rbi/anthropic/models/beta/organization/claude_tag/slack_workspace_list_params.rbi +124 -0
  297. data/rbi/anthropic/models/beta/organization/claude_tag/slack_workspace_retrieve_params.rbi +95 -0
  298. data/rbi/anthropic/models/beta/organization/claude_tag/slack_workspace_update_params.rbi +100 -0
  299. data/rbi/anthropic/models/beta/organization/workspaces/beta_workspace_rate_limit.rbi +4 -2
  300. data/rbi/anthropic/models/code_execution_tool_20260120.rbi +10 -2
  301. data/rbi/anthropic/models/encrypted_code_execution_result_block.rbi +9 -1
  302. data/rbi/anthropic/models/encrypted_code_execution_result_block_param.rbi +2 -1
  303. data/rbi/anthropic/models/organization/external_key.rbi +4 -4
  304. data/rbi/anthropic/models/organization/organization_rate_limit.rbi +4 -2
  305. data/rbi/anthropic/models/organization/workspaces/workspace_rate_limit.rbi +4 -2
  306. data/rbi/anthropic/models/skill_params.rbi +1 -1
  307. data/rbi/anthropic/resources/beta/messages.rbi +191 -0
  308. data/rbi/anthropic/resources/beta/organization/analytics/cost.rbi +245 -0
  309. data/rbi/anthropic/resources/beta/organization/analytics/cost_report.rbi +12 -5
  310. data/rbi/anthropic/resources/beta/organization/analytics/usage.rbi +240 -0
  311. data/rbi/anthropic/resources/beta/organization/analytics/usage_report.rbi +9 -2
  312. data/rbi/anthropic/resources/beta/organization/analytics/user_cost_report.rbi +14 -7
  313. data/rbi/anthropic/resources/beta/organization/analytics/user_usage_report.rbi +14 -7
  314. data/rbi/anthropic/resources/beta/organization/analytics.rbi +10 -0
  315. data/rbi/anthropic/resources/beta/organization/claude_tag/bundles/targets.rbi +140 -0
  316. data/rbi/anthropic/resources/beta/organization/claude_tag/bundles.rbi +75 -0
  317. data/rbi/anthropic/resources/beta/organization/claude_tag/slack_channels.rbi +203 -0
  318. data/rbi/anthropic/resources/beta/organization/claude_tag/slack_workspaces.rbi +123 -0
  319. data/rbi/anthropic/resources/beta/organization/claude_tag.rbi +37 -0
  320. data/rbi/anthropic/resources/beta/organization/plugin_marketplaces.rbi +6 -6
  321. data/rbi/anthropic/resources/beta/organization/plugins.rbi +12 -9
  322. data/rbi/anthropic/resources/beta/organization.rbi +3 -0
  323. data/rbi/lib/anthropic/helpers/stainless_helper_header.rbi +2 -0
  324. data/sig/anthropic/client.rbs +2 -0
  325. data/sig/anthropic/helpers/bedrock/client.rbs +2 -0
  326. data/sig/anthropic/helpers/google_cloud/client.rbs +0 -2
  327. data/sig/anthropic/helpers/threads/beta_message_thread.rbs +40 -0
  328. data/sig/anthropic/helpers/tools/runner.rbs +40 -0
  329. data/sig/anthropic/helpers/vertex/client.rbs +2 -0
  330. data/sig/anthropic/internal/tracing.rbs +16 -0
  331. data/sig/anthropic/internal/transport/base_client.rbs +3 -0
  332. data/sig/anthropic/internal/type/request_parameters.rbs +2 -0
  333. data/sig/anthropic/models/anthropic_beta.rbs +6 -0
  334. data/sig/anthropic/models/beta/beta_message_thread_param.rbs +40 -0
  335. data/sig/anthropic/models/beta/beta_thread_continue_params.rbs +20 -0
  336. data/sig/anthropic/models/beta/beta_thread_create_params.rbs +17 -0
  337. data/sig/anthropic/models/beta/message_create_params.rbs +5 -0
  338. data/sig/anthropic/models/beta/messages/batch_create_params.rbs +5 -0
  339. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_cost_group.rbs +126 -0
  340. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_cost_group_by.rbs +60 -0
  341. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_cost_item.rbs +41 -0
  342. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_cost_metrics.rbs +41 -0
  343. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_cost_order_by.rbs +21 -0
  344. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_usage_group.rbs +116 -0
  345. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_usage_group_by.rbs +56 -0
  346. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_usage_item.rbs +41 -0
  347. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_usage_metrics.rbs +56 -0
  348. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_usage_order_by.rbs +28 -0
  349. data/sig/anthropic/models/beta/organization/analytics/cost_list_params.rbs +188 -0
  350. data/sig/anthropic/models/beta/organization/analytics/usage_list_params.rbs +188 -0
  351. data/sig/anthropic/models/beta/organization/beta_analytics_actor.rbs +67 -0
  352. data/sig/anthropic/models/beta/organization/beta_analytics_actor_type.rbs +21 -0
  353. data/sig/anthropic/models/beta/organization/beta_analytics_api_actor.rbs +19 -0
  354. data/sig/anthropic/models/beta/organization/beta_analytics_federated_actor.rbs +34 -0
  355. data/sig/anthropic/models/beta/organization/beta_analytics_federated_actor_aws_provider.rbs +30 -0
  356. data/sig/anthropic/models/beta/organization/beta_analytics_federated_actor_azure_provider.rbs +20 -0
  357. data/sig/anthropic/models/beta/organization/beta_analytics_federated_actor_gcp_provider.rbs +20 -0
  358. data/sig/anthropic/models/beta/organization/beta_analytics_federated_actor_oidc_provider.rbs +20 -0
  359. data/sig/anthropic/models/beta/organization/beta_analytics_federated_actor_provider.rbs +60 -0
  360. data/sig/anthropic/models/beta/organization/beta_analytics_grouped_cost_type.rbs +21 -0
  361. data/sig/anthropic/models/beta/organization/beta_analytics_report_user_actor.rbs +44 -0
  362. data/sig/anthropic/models/beta/organization/beta_analytics_service_account_actor.rbs +26 -0
  363. data/sig/anthropic/models/beta/organization/beta_analytics_service_tier.rbs +28 -0
  364. data/sig/anthropic/models/beta/organization/beta_analytics_speed.rbs +18 -0
  365. data/sig/anthropic/models/beta/organization/beta_analytics_time_bucket_width.rbs +19 -0
  366. data/sig/anthropic/models/beta/organization/beta_analytics_usage_cost_inference_geo.rbs +18 -0
  367. data/sig/anthropic/models/beta/organization/beta_analytics_usage_cost_product_filter.rbs +40 -0
  368. data/sig/anthropic/models/beta/organization/beta_analytics_usage_cost_sort_order.rbs +18 -0
  369. data/sig/anthropic/models/beta/organization/beta_claude_tag_default_setting_source.rbs +17 -0
  370. data/sig/anthropic/models/beta/organization/beta_claude_tag_guest_policy.rbs +45 -0
  371. data/sig/anthropic/models/beta/organization/beta_claude_tag_guest_policy_allow.rbs +17 -0
  372. data/sig/anthropic/models/beta/organization/beta_claude_tag_guest_policy_channel_only.rbs +17 -0
  373. data/sig/anthropic/models/beta/organization/beta_claude_tag_guest_policy_restrict.rbs +17 -0
  374. data/sig/anthropic/models/beta/organization/beta_claude_tag_setting_source.rbs +73 -0
  375. data/sig/anthropic/models/beta/organization/beta_claude_tag_setting_sources.rbs +44 -0
  376. data/sig/anthropic/models/beta/organization/beta_claude_tag_settings.rbs +44 -0
  377. data/sig/anthropic/models/beta/organization/beta_claude_tag_settings_create.rbs +44 -0
  378. data/sig/anthropic/models/beta/organization/beta_claude_tag_settings_update.rbs +44 -0
  379. data/sig/anthropic/models/beta/organization/beta_claude_tag_slack_channel_identifiers.rbs +20 -0
  380. data/sig/anthropic/models/beta/organization/beta_claude_tag_slack_channel_setting_source.rbs +23 -0
  381. data/sig/anthropic/models/beta/organization/beta_claude_tag_slack_default_setting_source.rbs +18 -0
  382. data/sig/anthropic/models/beta/organization/beta_claude_tag_slack_grid_channel_setting_source.rbs +29 -0
  383. data/sig/anthropic/models/beta/organization/beta_claude_tag_slack_parent_channel_setting_source.rbs +26 -0
  384. data/sig/anthropic/models/beta/organization/beta_claude_tag_slack_workspace_identifiers.rbs +18 -0
  385. data/sig/anthropic/models/beta/organization/beta_claude_tag_slack_workspace_setting_source.rbs +23 -0
  386. data/sig/anthropic/models/beta/organization/claude_tag/beta_claude_tag_bundle.rbs +51 -0
  387. data/sig/anthropic/models/beta/organization/claude_tag/beta_claude_tag_deleted_slack_channel.rbs +22 -0
  388. data/sig/anthropic/models/beta/organization/claude_tag/beta_claude_tag_slack_channel.rbs +56 -0
  389. data/sig/anthropic/models/beta/organization/claude_tag/beta_claude_tag_slack_workspace.rbs +56 -0
  390. data/sig/anthropic/models/beta/organization/claude_tag/bundle_list_params.rbs +50 -0
  391. data/sig/anthropic/models/beta/organization/claude_tag/bundle_retrieve_params.rbs +41 -0
  392. data/sig/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_bundle_target.rbs +54 -0
  393. data/sig/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_bundle_target_create.rbs +48 -0
  394. data/sig/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_deleted_bundle_target.rbs +27 -0
  395. data/sig/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_slack_channel_bundle_target.rbs +43 -0
  396. data/sig/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_slack_channel_bundle_target_create.rbs +27 -0
  397. data/sig/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_slack_workspace_bundle_target.rbs +43 -0
  398. data/sig/anthropic/models/beta/organization/claude_tag/bundles/beta_claude_tag_slack_workspace_bundle_target_create.rbs +30 -0
  399. data/sig/anthropic/models/beta/organization/claude_tag/bundles/target_create_params.rbs +43 -0
  400. data/sig/anthropic/models/beta/organization/claude_tag/bundles/target_delete_params.rbs +48 -0
  401. data/sig/anthropic/models/beta/organization/claude_tag/bundles/target_list_params.rbs +57 -0
  402. data/sig/anthropic/models/beta/organization/claude_tag/bundles/target_retrieve_params.rbs +48 -0
  403. data/sig/anthropic/models/beta/organization/claude_tag/slack_channel_create_params.rbs +50 -0
  404. data/sig/anthropic/models/beta/organization/claude_tag/slack_channel_delete_params.rbs +38 -0
  405. data/sig/anthropic/models/beta/organization/claude_tag/slack_channel_list_params.rbs +69 -0
  406. data/sig/anthropic/models/beta/organization/claude_tag/slack_channel_retrieve_params.rbs +48 -0
  407. data/sig/anthropic/models/beta/organization/claude_tag/slack_channel_update_params.rbs +46 -0
  408. data/sig/anthropic/models/beta/organization/claude_tag/slack_workspace_list_params.rbs +64 -0
  409. data/sig/anthropic/models/beta/organization/claude_tag/slack_workspace_retrieve_params.rbs +48 -0
  410. data/sig/anthropic/models/beta/organization/claude_tag/slack_workspace_update_params.rbs +46 -0
  411. data/sig/anthropic/resources/beta/messages.rbs +33 -0
  412. data/sig/anthropic/resources/beta/organization/analytics/cost.rbs +46 -0
  413. data/sig/anthropic/resources/beta/organization/analytics/usage.rbs +46 -0
  414. data/sig/anthropic/resources/beta/organization/analytics.rbs +4 -0
  415. data/sig/anthropic/resources/beta/organization/claude_tag/bundles/targets.rbs +44 -0
  416. data/sig/anthropic/resources/beta/organization/claude_tag/bundles.rbs +28 -0
  417. data/sig/anthropic/resources/beta/organization/claude_tag/slack_channels.rbs +50 -0
  418. data/sig/anthropic/resources/beta/organization/claude_tag/slack_workspaces.rbs +36 -0
  419. data/sig/anthropic/resources/beta/organization/claude_tag.rbs +17 -0
  420. data/sig/anthropic/resources/beta/organization.rbs +2 -0
  421. metadata +252 -2
@@ -33,12 +33,13 @@ module Anthropic
33
33
 
34
34
  # @param params [Anthropic::Models::Beta::MessageCreateParams]
35
35
  #
36
- # @raise [ArgumentError] if `compaction` is set, if the messages are replaced while the
36
+ # @raise [ArgumentError] if `compaction` or `thread` is set, if the messages are replaced while the
37
37
  # conversation is being compacted, or if a compaction edit is added while a compaction is due
38
38
  def params=(params)
39
39
  # The runner reads and writes its params as a symbol-keyed hash.
40
40
  params = params.to_h.transform_keys(&:to_sym)
41
41
  reject_compaction_param!(params)
42
+ reject_thread_param!(params)
42
43
  if @compaction_phase == :in_flight && !params[:messages].equal?(current_messages)
43
44
  raise ArgumentError.new(
44
45
  "Message params can't be changed while the conversation is being compacted, because the " \
@@ -125,8 +126,7 @@ module Anthropic
125
126
  def next_message
126
127
  message = nil
127
128
  fold do |params|
128
- message =
129
- @client.beta.messages.create(with_helper_header(params, StainlessHelperHeader::BETA_TOOL_RUNNER))
129
+ message = create_message(params)
130
130
  [true, message]
131
131
  end
132
132
  message
@@ -137,15 +137,14 @@ module Anthropic
137
137
  messages = []
138
138
  # Not `each_streaming`: an error from this block is the runner's, not the application's.
139
139
  fold do |params|
140
- stream =
141
- @client.beta.messages.stream(with_helper_header(params, StainlessHelperHeader::BETA_TOOL_RUNNER))
140
+ stream = stream_message(params)
142
141
  message = stream.accumulated_message
143
142
  messages << message
144
143
  [false, message]
145
144
  ensure
146
145
  stream&.close
147
146
  end
148
- messages
147
+ messages.compact
149
148
  end
150
149
 
151
150
  # @yieldparam [Anthropic::Models::BetaMessage]
@@ -155,8 +154,7 @@ module Anthropic
155
154
  end
156
155
 
157
156
  fold do |params|
158
- message =
159
- @client.beta.messages.create(with_helper_header(params, StainlessHelperHeader::BETA_TOOL_RUNNER))
157
+ message = create_message(params)
160
158
  in_app { blk.call(message) }
161
159
  [false, message]
162
160
  end
@@ -169,8 +167,7 @@ module Anthropic
169
167
  end
170
168
 
171
169
  fold do |params|
172
- stream =
173
- @client.beta.messages.stream(with_helper_header(params, StainlessHelperHeader::BETA_TOOL_RUNNER))
170
+ stream = stream_message(params)
174
171
  in_app { blk.call(stream) }
175
172
  [false, stream.accumulated_message]
176
173
  ensure
@@ -178,6 +175,43 @@ module Anthropic
178
175
  end
179
176
  end
180
177
 
178
+ # @api private
179
+ #
180
+ # @param params [Anthropic::Models::Beta::MessageCreateParams]
181
+ #
182
+ # @return [Anthropic::Models::BetaMessage]
183
+ private def create_message(params)
184
+ request = with_helper_header(params, StainlessHelperHeader::BETA_TOOL_RUNNER)
185
+ return @client.beta.messages.create(request) if @thread.nil?
186
+
187
+ @thread.send_message(**request.slice(:request_options))
188
+ end
189
+
190
+ # @api private
191
+ #
192
+ # @param params [Anthropic::Models::Beta::MessageCreateParams]
193
+ #
194
+ # @return [Anthropic::Streaming::MessageStream]
195
+ private def stream_message(params)
196
+ request = with_helper_header(params, StainlessHelperHeader::BETA_TOOL_RUNNER)
197
+ return @client.beta.messages.stream(request) if @thread.nil?
198
+
199
+ @thread.stream(**request.slice(:request_options))
200
+ end
201
+
202
+ # @api private
203
+ #
204
+ # The thread sends what `params` adds to the messages that the API holds. What was appended
205
+ # to the thread itself since it was last given the messages joins them first.
206
+ #
207
+ # @param params [Anthropic::Models::Beta::MessageCreateParams]
208
+ private def give_thread(params)
209
+ appended = @thread.appended_after(@given_count)
210
+ current_messages.concat(appended) unless appended.empty?
211
+ @thread.replace_params(params.to_h.except(:stream, :thread))
212
+ @given_count = current_messages.length
213
+ end
214
+
181
215
  # @api private
182
216
  #
183
217
  # Runs the runner's own code with the tool runner span current.
@@ -255,6 +289,7 @@ module Anthropic
255
289
  break if finished?
256
290
  return if @max_iterations && @iteration_count >= @max_iterations
257
291
 
292
+ reject_thread_param!(params)
258
293
  send_pending_tool_changes
259
294
 
260
295
  if @pending_compaction && !turn_paused?
@@ -265,8 +300,13 @@ module Anthropic
265
300
 
266
301
  reject_compaction_param!(params)
267
302
  tools = params[:tools].to_a.grep(Anthropic::Helpers::Tools::BaseTool)
303
+ # Checked first: messages that drop the last reply start a new thread, which takes any change.
304
+ @thread&.check_create_only_fields!(params.to_h)
305
+ give_thread(params) unless @thread.nil?
268
306
  messages = current_messages
269
307
  brk, response = blk.call(params)
308
+ # A stream that ended before `message_start` has no message.
309
+ return if @thread && response.nil?
270
310
 
271
311
  @last_response = response
272
312
 
@@ -281,6 +321,8 @@ module Anthropic
281
321
  end
282
322
 
283
323
  tool_uses = next_step == :run_tools ? client_tool_uses(response) : []
324
+ # No tool runs for a turn that the thread would refuse to send.
325
+ @thread&.check_create_only_fields!(params.to_h)
284
326
 
285
327
  # A `tool_removal` block only hints the model, so a call to a withdrawn tool can still
286
328
  # arrive; a name missing from this set routes down the same "not found" path as an
@@ -337,6 +379,8 @@ module Anthropic
337
379
  messages << assistant_turn(response)
338
380
  messages << {role: :user, content: mapped} unless mapped.empty?
339
381
  adopt_container(response)
382
+ # The run can end here, and the thread goes on from the results.
383
+ give_thread(params) unless @thread.nil?
340
384
 
341
385
  @iteration_count += 1
342
386
 
@@ -404,6 +448,19 @@ module Anthropic
404
448
  )
405
449
  end
406
450
 
451
+ # @api private
452
+ #
453
+ # @param params [Anthropic::Models::Beta::MessageCreateParams]
454
+ private def reject_thread_param!(params)
455
+ return if params[:thread].nil?
456
+
457
+ raise ArgumentError.new(
458
+ "`thread` cannot be set in the params of a tool runner, got #{params[:thread].inspect}. " \
459
+ "The runner sets `thread` for each request itself. To run without a message thread, " \
460
+ "create the runner with `thread: false`."
461
+ )
462
+ end
463
+
407
464
  # @api private
408
465
  #
409
466
  # @param params [Anthropic::Models::Beta::MessageCreateParams]
@@ -439,6 +496,10 @@ module Anthropic
439
496
  request = {**without_compaction_incompatible_params(params), compaction:}
440
497
  @pending_compaction = nil
441
498
  @compaction_phase = :in_flight
499
+ unless @thread.nil?
500
+ @thread.start_new_thread
501
+ give_thread(request)
502
+ end
442
503
 
443
504
  brk, response = blk.call(request)
444
505
 
@@ -455,6 +516,8 @@ module Anthropic
455
516
  brk
456
517
  ensure
457
518
  @compaction_phase = nil if @compaction_phase == :in_flight
519
+ # The thread goes on with the runner's params, not with those of the compaction request.
520
+ give_thread(params) unless @thread.nil?
458
521
  end
459
522
 
460
523
  # @api private
@@ -665,8 +728,13 @@ module Anthropic
665
728
  # @param params [Anthropic::Models::Beta::MessageCreateParams]
666
729
  #
667
730
  # @param max_iterations [Integer, nil]
668
- def initialize(client, params:, max_iterations: nil)
731
+ #
732
+ # @param thread [Anthropic::Helpers::Threads::BetaMessageThread, nil] sends the requests, each
733
+ # with the whole history when `nil`
734
+ def initialize(client, params:, max_iterations: nil, thread: nil)
669
735
  @client = client
736
+ @thread = thread
737
+ @given_count = thread&.messages.to_a.length
670
738
  @params = params.to_h
671
739
  reject_compaction_param!(@params)
672
740
  @finished = false
@@ -131,6 +131,11 @@ module Anthropic
131
131
  # @return [Boolean]
132
132
  private def resolve_default_credentials? = false
133
133
 
134
+ # @api private
135
+ #
136
+ # @return [Boolean]
137
+ def message_threads? = false
138
+
134
139
  def files
135
140
  raise NotImplementedError, "Files are not supported on Vertex."
136
141
  end
@@ -10,8 +10,8 @@ module Anthropic
10
10
  # end
11
11
  #
12
12
  # @example
13
- # report_page_cursor.auto_paging_each do |usage_report|
14
- # puts(usage_report)
13
+ # report_page_cursor.auto_paging_each do |usage|
14
+ # puts(usage)
15
15
  # end
16
16
  class ReportPageCursor
17
17
  include Anthropic::Internal::Type::BasePage
@@ -281,6 +281,8 @@ module Anthropic
281
281
  ORGANIZATION_ANALYTICS_PLUGINS_LIST = "anthropic.organization.analytics.plugins.list"
282
282
  ORGANIZATION_ANALYTICS_SKILLS_LIST = "anthropic.organization.analytics.skills.list"
283
283
  ORGANIZATION_ANALYTICS_ARTIFACTS_LIST = "anthropic.organization.analytics.artifacts.list"
284
+ ORGANIZATION_ANALYTICS_USAGE_LIST = "anthropic.organization.analytics.usage.list"
285
+ ORGANIZATION_ANALYTICS_COST_LIST = "anthropic.organization.analytics.cost.list"
284
286
  ORGANIZATION_ANALYTICS_USAGE_REPORT_LIST = "anthropic.organization.analytics.usage_report.list"
285
287
  ORGANIZATION_ANALYTICS_USER_USAGE_REPORT_LIST = "anthropic.organization.analytics.user_usage_report.list"
286
288
  ORGANIZATION_ANALYTICS_COST_REPORT_LIST = "anthropic.organization.analytics.cost_report.list"
@@ -351,6 +353,26 @@ module Anthropic
351
353
  ORGANIZATION_WEBHOOKS_DELETE = "anthropic.organization.webhooks.delete"
352
354
  ORGANIZATION_WEBHOOKS_REGENERATE_SIGNING_SECRET =
353
355
  "anthropic.organization.webhooks.regenerate_signing_secret"
356
+ ORGANIZATION_CLAUDE_TAG_SLACK_CHANNELS_CREATE = "anthropic.organization.claude_tag.slack_channels.create"
357
+ ORGANIZATION_CLAUDE_TAG_SLACK_CHANNELS_RETRIEVE =
358
+ "anthropic.organization.claude_tag.slack_channels.retrieve"
359
+ ORGANIZATION_CLAUDE_TAG_SLACK_CHANNELS_UPDATE = "anthropic.organization.claude_tag.slack_channels.update"
360
+ ORGANIZATION_CLAUDE_TAG_SLACK_CHANNELS_LIST = "anthropic.organization.claude_tag.slack_channels.list"
361
+ ORGANIZATION_CLAUDE_TAG_SLACK_CHANNELS_DELETE = "anthropic.organization.claude_tag.slack_channels.delete"
362
+ ORGANIZATION_CLAUDE_TAG_SLACK_WORKSPACES_RETRIEVE =
363
+ "anthropic.organization.claude_tag.slack_workspaces.retrieve"
364
+ ORGANIZATION_CLAUDE_TAG_SLACK_WORKSPACES_UPDATE =
365
+ "anthropic.organization.claude_tag.slack_workspaces.update"
366
+ ORGANIZATION_CLAUDE_TAG_SLACK_WORKSPACES_LIST = "anthropic.organization.claude_tag.slack_workspaces.list"
367
+ ORGANIZATION_CLAUDE_TAG_BUNDLES_RETRIEVE = "anthropic.organization.claude_tag.bundles.retrieve"
368
+ ORGANIZATION_CLAUDE_TAG_BUNDLES_LIST = "anthropic.organization.claude_tag.bundles.list"
369
+ ORGANIZATION_CLAUDE_TAG_BUNDLES_TARGETS_CREATE =
370
+ "anthropic.organization.claude_tag.bundles.targets.create"
371
+ ORGANIZATION_CLAUDE_TAG_BUNDLES_TARGETS_RETRIEVE =
372
+ "anthropic.organization.claude_tag.bundles.targets.retrieve"
373
+ ORGANIZATION_CLAUDE_TAG_BUNDLES_TARGETS_LIST = "anthropic.organization.claude_tag.bundles.targets.list"
374
+ ORGANIZATION_CLAUDE_TAG_BUNDLES_TARGETS_DELETE =
375
+ "anthropic.organization.claude_tag.bundles.targets.delete"
354
376
  end
355
377
 
356
378
  # @type [Hash{String=>String}]
@@ -41,6 +41,7 @@ module Anthropic
41
41
  :page,
42
42
  :stream,
43
43
  :model,
44
+ :qualifiers,
44
45
  :span_name,
45
46
  :span_attributes,
46
47
  :span_created_id,
@@ -100,6 +101,8 @@ module Anthropic
100
101
  #
101
102
  # @option request [Float] :timeout
102
103
  #
104
+ # @option request [Hash{Symbol=>String}, nil] :qualifiers
105
+ #
103
106
  # @option request [Array<String>, nil] :span_query
104
107
  #
105
108
  # @option request [Array<String>, nil] :span_content_query
@@ -335,6 +338,9 @@ module Anthropic
335
338
  #
336
339
  # @option req [Anthropic::Internal::Type::Converter, Class, nil] :model
337
340
  #
341
+ # @option req [Hash{Symbol=>String}, nil] :qualifiers internal: the query pairs that tell the operation apart from the others with its
342
+ # path in the OpenAPI document
343
+ #
338
344
  # @option req [String, nil] :span_name
339
345
  #
340
346
  # @option req [Hash{String=>Object}, nil] :span_attributes
@@ -428,6 +434,7 @@ module Anthropic
428
434
  body: body,
429
435
  max_retries: opts.fetch(:max_retries, @max_retries),
430
436
  timeout: timeout,
437
+ qualifiers: req[:qualifiers],
431
438
  user_header_keys: user_header_keys,
432
439
  # For paginated requests `model` is the page's *item* type, not the
433
440
  # response envelope's — middleware `parse` falls back to the raw
@@ -439,7 +446,7 @@ module Anthropic
439
446
  span_content_query: req[:span_content_query],
440
447
  options: opts.except(:middleware),
441
448
  middleware: request_middleware,
442
- metadata: {}
449
+ metadata: {qualifiers: req[:qualifiers]}.compact
443
450
  }
444
451
  end
445
452
 
@@ -540,6 +547,8 @@ module Anthropic
540
547
  #
541
548
  # @option request [Float] :timeout
542
549
  #
550
+ # @option request [Hash{Symbol=>String}, nil] :qualifiers
551
+ #
543
552
  # @option request [Array<String>, nil] :span_query
544
553
  #
545
554
  # @option request [Array<String>, nil] :span_content_query
@@ -738,7 +747,7 @@ module Anthropic
738
747
  # Execute the request specified by `req`. This is the method that all resource
739
748
  # methods call into.
740
749
  #
741
- # @overload request(method, path, query: {}, headers: {}, body: nil, unwrap: nil, page: nil, stream: nil, model: Anthropic::Internal::Type::Unknown, span_name: nil, span_attributes: nil, span_created_id: nil, span_route: nil, span_query: nil, span_content_query: nil, options: {})
750
+ # @overload request(method, path, query: {}, headers: {}, body: nil, unwrap: nil, page: nil, stream: nil, model: Anthropic::Internal::Type::Unknown, qualifiers: nil, span_name: nil, span_attributes: nil, span_created_id: nil, span_route: nil, span_query: nil, span_content_query: nil, options: {})
742
751
  #
743
752
  # @param method [Symbol]
744
753
  #
@@ -758,6 +767,9 @@ module Anthropic
758
767
  #
759
768
  # @param model [Anthropic::Internal::Type::Converter, Class, nil]
760
769
  #
770
+ # @param qualifiers [Hash{Symbol=>String}, nil] internal: the query pairs that tell the operation apart from the others with its
771
+ # path in the OpenAPI document
772
+ #
761
773
  # @param span_name [String, nil]
762
774
  #
763
775
  # @param span_attributes [Hash{String=>Object}, nil]
@@ -913,6 +925,7 @@ module Anthropic
913
925
  T::Class[Anthropic::Internal::Type::BaseStream[T.anything, Anthropic::Internal::Type::BaseModel]]
914
926
  ),
915
927
  model: T.nilable(Anthropic::Internal::Type::Converter::Input),
928
+ qualifiers: T.nilable(T::Hash[Symbol, String]),
916
929
  span_name: T.nilable(String),
917
930
  span_attributes: T.nilable(T::Hash[String, T.anything]),
918
931
  span_created_id: T.nilable(T.any(String, T::Hash[String, Symbol])),
@@ -932,6 +945,7 @@ module Anthropic
932
945
  body: T.anything,
933
946
  max_retries: Integer,
934
947
  timeout: Float,
948
+ qualifiers: T.nilable(T::Hash[Symbol, String]),
935
949
  user_header_keys: T::Array[String],
936
950
  cast_to: T.nilable(Anthropic::Internal::Type::Converter::Input),
937
951
  stream: T.nilable(T::Class[T.anything]),
@@ -109,6 +109,12 @@ module Anthropic
109
109
 
110
110
  variant const: -> { Anthropic::Models::AnthropicBeta::WEBHOOKS_2026_10_07 }
111
111
 
112
+ variant const: -> { Anthropic::Models::AnthropicBeta::MESSAGE_THREADS_2026_08_12 }
113
+
114
+ variant const: -> { Anthropic::Models::AnthropicBeta::ANALYTICS_USAGE_COST_2026_08_24 }
115
+
116
+ variant const: -> { Anthropic::Models::AnthropicBeta::EXPERIMENTAL_CLAUDE_TAG_2026_10_21 }
117
+
112
118
  variant String
113
119
 
114
120
  # @!method self.variants
@@ -172,6 +178,9 @@ module Anthropic
172
178
  SPEND_LIMIT_READS_2026_09_26 = :"spend-limit-reads-2026-09-26"
173
179
  TELEMETRY_DESTINATIONS_2026_08_11 = :"telemetry-destinations-2026-08-11"
174
180
  WEBHOOKS_2026_10_07 = :"webhooks-2026-10-07"
181
+ MESSAGE_THREADS_2026_08_12 = :"message-threads-2026-08-12"
182
+ ANALYTICS_USAGE_COST_2026_08_24 = :"analytics-usage-cost-2026-08-24"
183
+ EXPERIMENTAL_CLAUDE_TAG_2026_10_21 = :"experimental-claude-tag-2026-10-21"
175
184
 
176
185
  # @!endgroup
177
186
  end
@@ -43,8 +43,16 @@ module Anthropic
43
43
  optional :strict, Anthropic::Internal::Type::Boolean
44
44
 
45
45
  # @!method initialize(allowed_callers: nil, cache_control: nil, defer_loading: nil, strict: nil, name: :code_execution, type: :code_execution_20260120)
46
- # Code execution tool with REPL state persistence (daemon mode + gVisor
47
- # checkpoint).
46
+ # A `tools` entry for the code execution tool, version `code_execution_20260120`.
47
+ # It adds REPL state persistence to version `code_execution_20250825`.
48
+ #
49
+ # REPL state persistence applies with programmatic tool calling. With it, the
50
+ # Python interpreter state, such as variable bindings, persists across requests
51
+ # that reuse the container.
52
+ #
53
+ # See the
54
+ # [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool#tool-versions)
55
+ # to learn what each tool version adds.
48
56
  #
49
57
  # Some parameter documentations has been truncated, see
50
58
  # {Anthropic::Models::Beta::BetaCodeExecutionTool20260120} for more details.
@@ -10,7 +10,11 @@ module Anthropic
10
10
 
11
11
  variant -> { Anthropic::Beta::BetaCodeExecutionResultBlock }
12
12
 
13
- # Code execution result with encrypted stdout for PFC + web_search results.
13
+ # The output and exit code of Python code that Claude ran with the code execution tool, with standard output in encrypted form.
14
+ #
15
+ # The API returns this block in place of `code_execution_result` when the code called the web search tool.
16
+ #
17
+ # See the [programmatic tool calling guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/programmatic-tool-calling) to learn more about programmatic tool calling.
14
18
  variant -> { Anthropic::Beta::BetaEncryptedCodeExecutionResultBlock }
15
19
 
16
20
  # @!method self.variants
@@ -10,7 +10,7 @@ module Anthropic
10
10
 
11
11
  variant -> { Anthropic::Beta::BetaCodeExecutionResultBlockParam }
12
12
 
13
- # Code execution result with encrypted stdout for PFC + web_search results.
13
+ # The output and exit code of Python code that Claude ran with the code execution tool, with standard output in encrypted form, sent back in a later request.
14
14
  variant -> { Anthropic::Beta::BetaEncryptedCodeExecutionResultBlockParam }
15
15
 
16
16
  # @!method self.variants
@@ -31,7 +31,15 @@ module Anthropic
31
31
  required :type, const: :encrypted_code_execution_result
32
32
 
33
33
  # @!method initialize(content:, encrypted_stdout:, return_code:, stderr:, type: :encrypted_code_execution_result)
34
- # Code execution result with encrypted stdout for PFC + web_search results.
34
+ # The output and exit code of Python code that Claude ran with the code execution
35
+ # tool, with standard output in encrypted form.
36
+ #
37
+ # The API returns this block in place of `code_execution_result` when the code
38
+ # called the web search tool.
39
+ #
40
+ # See the
41
+ # [programmatic tool calling guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/programmatic-tool-calling)
42
+ # to learn more about programmatic tool calling.
35
43
  #
36
44
  # @param content [Array<Anthropic::Models::Beta::BetaCodeExecutionOutputBlock>]
37
45
  # @param encrypted_stdout [String]
@@ -31,7 +31,8 @@ module Anthropic
31
31
  required :type, const: :encrypted_code_execution_result
32
32
 
33
33
  # @!method initialize(content:, encrypted_stdout:, return_code:, stderr:, type: :encrypted_code_execution_result)
34
- # Code execution result with encrypted stdout for PFC + web_search results.
34
+ # The output and exit code of Python code that Claude ran with the code execution
35
+ # tool, with standard output in encrypted form, sent back in a later request.
35
36
  #
36
37
  # @param content [Array<Anthropic::Models::Beta::BetaCodeExecutionOutputBlockParam>]
37
38
  # @param encrypted_stdout [String]
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Anthropic
4
+ module Models
5
+ module Beta
6
+ # Server-held conversation state (a Thread). `{"type": "create"}` asks the server
7
+ # to hold this conversation's state under the response's `id`;
8
+ # `{"type": "continue", "previous_message_id": ...}` resumes from a previous
9
+ # response so only the new turn's messages are sent. The response shape is
10
+ # unchanged.
11
+ module BetaMessageThreadParam
12
+ extend Anthropic::Internal::Type::Union
13
+
14
+ discriminator :type
15
+
16
+ # Start holding conversation state under this response's ``id``.
17
+ variant :create, -> { Anthropic::Beta::BetaThreadCreateParams }
18
+
19
+ # Resume from the response named by ``previous_message_id``.
20
+ variant :continue, -> { Anthropic::Beta::BetaThreadContinueParams }
21
+
22
+ module Type
23
+ extend Anthropic::Internal::Type::Enum
24
+
25
+ CREATE = :create
26
+ CONTINUE = :continue
27
+
28
+ # @!method self.values
29
+ # @return [Array<Symbol>]
30
+ end
31
+
32
+ # @!method self.variants
33
+ # @return [Array(Anthropic::Models::Beta::BetaThreadCreateParams, Anthropic::Models::Beta::BetaThreadContinueParams)]
34
+
35
+ # Creates a new instance of the variant class whose `type` matches the given
36
+ # value, passing the remaining arguments to its constructor.
37
+ #
38
+ # @param type [Symbol, Anthropic::Models::Beta::BetaMessageThreadParam::Type, String]
39
+ #
40
+ # @param args [Hash{Symbol=>Object}] Attributes for the chosen variant.
41
+ #
42
+ # @option args [String] :previous_message_id The `id` of the previous response in this Thread.
43
+ #
44
+ # @raise [ArgumentError]
45
+ # @return [Anthropic::Models::Beta::BetaThreadCreateParams, Anthropic::Models::Beta::BetaThreadContinueParams]
46
+ def self.new(type:, **args)
47
+ case type.to_sym
48
+ when :create
49
+ Anthropic::Beta::BetaThreadCreateParams.new(**args)
50
+ when :continue
51
+ Anthropic::Beta::BetaThreadContinueParams.new(**args)
52
+ else
53
+ raise ArgumentError, "unknown type: #{type}"
54
+ end
55
+ end
56
+ end
57
+ end
58
+
59
+ BetaMessageThreadParam = Beta::BetaMessageThreadParam
60
+ end
61
+ end
@@ -17,7 +17,11 @@ module Anthropic
17
17
 
18
18
  variant -> { Anthropic::Beta::BetaCodeExecutionTool20250825 }
19
19
 
20
- # Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
20
+ # A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
21
+ #
22
+ # REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
23
+ #
24
+ # See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool#tool-versions) to learn what each tool version adds.
21
25
  variant -> { Anthropic::Beta::BetaCodeExecutionTool20260120 }
22
26
 
23
27
  # Code execution tool with REPL state persistence.
@@ -23,7 +23,7 @@ module Anthropic
23
23
  optional :version, String
24
24
 
25
25
  # @!method initialize(skill_id:, type:, version: nil)
26
- # Specification for a skill to be loaded in a container (request model).
26
+ # Specification for a skill to be loaded in a container.
27
27
  #
28
28
  # @param skill_id [String] Skill ID
29
29
  #
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Anthropic
4
+ module Models
5
+ module Beta
6
+ class BetaThreadContinueParams < Anthropic::Internal::Type::BaseModel
7
+ # @!attribute previous_message_id
8
+ # The `id` of the previous response in this Thread.
9
+ #
10
+ # @return [String]
11
+ required :previous_message_id, String
12
+
13
+ # @!attribute type
14
+ #
15
+ # @return [Symbol, :continue]
16
+ required :type, const: :continue
17
+
18
+ # @!method initialize(previous_message_id:, type: :continue)
19
+ # Resume from the response named by `previous_message_id`.
20
+ #
21
+ # @param previous_message_id [String] The `id` of the previous response in this Thread.
22
+ #
23
+ # @param type [Symbol, :continue]
24
+ end
25
+ end
26
+
27
+ BetaThreadContinueParams = Beta::BetaThreadContinueParams
28
+ end
29
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Anthropic
4
+ module Models
5
+ module Beta
6
+ class BetaThreadCreateParams < Anthropic::Internal::Type::BaseModel
7
+ # @!attribute type
8
+ #
9
+ # @return [Symbol, :create]
10
+ required :type, const: :create
11
+
12
+ # @!method initialize(type: :create)
13
+ # Start holding conversation state under this response's `id`.
14
+ #
15
+ # @param type [Symbol, :create]
16
+ end
17
+ end
18
+
19
+ BetaThreadCreateParams = Beta::BetaThreadCreateParams
20
+ end
21
+ end
@@ -16,7 +16,11 @@ module Anthropic
16
16
 
17
17
  variant -> { Anthropic::Beta::BetaCodeExecutionTool20250825 }
18
18
 
19
- # Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
19
+ # A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
20
+ #
21
+ # REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
22
+ #
23
+ # See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool#tool-versions) to learn what each tool version adds.
20
24
  variant -> { Anthropic::Beta::BetaCodeExecutionTool20260120 }
21
25
 
22
26
  # Code execution tool with REPL state persistence.
@@ -7,7 +7,8 @@ module Anthropic
7
7
  # @see Anthropic::Resources::Beta::Environments::Work#heartbeat
8
8
  class BetaSelfHostedWorkHeartbeatResponse < Anthropic::Internal::Type::BaseModel
9
9
  # @!attribute last_heartbeat
10
- # RFC 3339 timestamp of the actual heartbeat from DB
10
+ # RFC 3339 timestamp of the most recent heartbeat recorded for this work item, or
11
+ # an empty string if none has been recorded
11
12
  #
12
13
  # @return [String]
13
14
  required :last_heartbeat, String
@@ -39,7 +40,11 @@ module Anthropic
39
40
  # @!method initialize(last_heartbeat:, lease_extended:, state:, ttl_seconds:, type: :work_heartbeat)
40
41
  # Response after recording a heartbeat for a work item.
41
42
  #
42
- # @param last_heartbeat [String] RFC 3339 timestamp of the actual heartbeat from DB
43
+ # Some parameter documentations has been truncated, see
44
+ # {Anthropic::Models::Beta::Environments::BetaSelfHostedWorkHeartbeatResponse} for
45
+ # more details.
46
+ #
47
+ # @param last_heartbeat [String] RFC 3339 timestamp of the most recent heartbeat recorded for this work item, or
43
48
  #
44
49
  # @param lease_extended [Boolean] Whether the heartbeat succeeded in extending the lease
45
50
  #
@@ -7,7 +7,7 @@ module Anthropic
7
7
  # @see Anthropic::Resources::Beta::Environments::Work#stats
8
8
  class BetaSelfHostedWorkQueueStats < Anthropic::Internal::Type::BaseModel
9
9
  # @!attribute depth
10
- # Number of work items waiting to be picked up (lag from consumer group)
10
+ # Number of work items waiting to be picked up
11
11
  #
12
12
  # @return [Integer]
13
13
  required :depth, Integer
@@ -41,13 +41,11 @@ module Anthropic
41
41
  # @!method initialize(depth:, oldest_queued_at:, pending:, workers_polling:, type: :work_queue_stats)
42
42
  # Statistics about the work queue for an environment.
43
43
  #
44
- # Uses Redis Stream consumer group metrics for O(1) queries.
45
- #
46
44
  # Some parameter documentations has been truncated, see
47
45
  # {Anthropic::Models::Beta::Environments::BetaSelfHostedWorkQueueStats} for more
48
46
  # details.
49
47
  #
50
- # @param depth [Integer] Number of work items waiting to be picked up (lag from consumer group)
48
+ # @param depth [Integer] Number of work items waiting to be picked up
51
49
  #
52
50
  # @param oldest_queued_at [String, nil] RFC 3339 timestamp of oldest item in the work stream (includes both queued and p
53
51
  #
@@ -386,7 +386,11 @@ module Anthropic
386
386
 
387
387
  variant -> { Anthropic::Beta::BetaCodeExecutionTool20250825 }
388
388
 
389
- # Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
389
+ # A `tools` entry for the code execution tool, version `code_execution_20260120`. It adds REPL state persistence to version `code_execution_20250825`.
390
+ #
391
+ # REPL state persistence applies with programmatic tool calling. With it, the Python interpreter state, such as variable bindings, persists across requests that reuse the container.
392
+ #
393
+ # See the [code execution tool guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool#tool-versions) to learn what each tool version adds.
390
394
  variant -> { Anthropic::Beta::BetaCodeExecutionTool20260120 }
391
395
 
392
396
  # Code execution tool with REPL state persistence.