claudecode-omc 5.6.7 → 5.9.1

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 (242) hide show
  1. package/.local/skills/THIRD_PARTY_LICENSES/AvdLee-SwiftUI-Agent-Skill.LICENSE +21 -0
  2. package/.local/skills/THIRD_PARTY_LICENSES/Dimillian-Skills.LICENSE +21 -0
  3. package/.local/skills/THIRD_PARTY_LICENSES/README.md +36 -0
  4. package/.local/skills/THIRD_PARTY_LICENSES/twostraws-swiftui-agent-skill.LICENSE +21 -0
  5. package/.local/skills/ios-debugger-agent/SKILL.md +51 -0
  6. package/.local/skills/ios-debugger-agent/agents/openai.yaml +4 -0
  7. package/.local/skills/prompt-optimizer/SKILL.md +262 -19
  8. package/.local/skills/swift-concurrency-expert/SKILL.md +105 -0
  9. package/.local/skills/swift-concurrency-expert/agents/openai.yaml +4 -0
  10. package/.local/skills/swift-concurrency-expert/references/approachable-concurrency.md +63 -0
  11. package/.local/skills/swift-concurrency-expert/references/swift-6-2-concurrency.md +272 -0
  12. package/.local/skills/swift-concurrency-expert/references/swiftui-concurrency-tour-wwdc.md +33 -0
  13. package/.local/skills/swiftui-expert-skill/SKILL.md +162 -0
  14. package/.local/skills/swiftui-expert-skill/references/accessibility-patterns.md +215 -0
  15. package/.local/skills/swiftui-expert-skill/references/animation-advanced.md +403 -0
  16. package/.local/skills/swiftui-expert-skill/references/animation-basics.md +284 -0
  17. package/.local/skills/swiftui-expert-skill/references/animation-transitions.md +326 -0
  18. package/.local/skills/swiftui-expert-skill/references/charts-accessibility.md +135 -0
  19. package/.local/skills/swiftui-expert-skill/references/charts.md +602 -0
  20. package/.local/skills/swiftui-expert-skill/references/focus-patterns.md +299 -0
  21. package/.local/skills/swiftui-expert-skill/references/image-optimization.md +203 -0
  22. package/.local/skills/swiftui-expert-skill/references/latest-apis.md +488 -0
  23. package/.local/skills/swiftui-expert-skill/references/layout-best-practices.md +266 -0
  24. package/.local/skills/swiftui-expert-skill/references/liquid-glass.md +423 -0
  25. package/.local/skills/swiftui-expert-skill/references/list-patterns.md +446 -0
  26. package/.local/skills/swiftui-expert-skill/references/macos-scenes.md +318 -0
  27. package/.local/skills/swiftui-expert-skill/references/macos-views.md +357 -0
  28. package/.local/skills/swiftui-expert-skill/references/macos-window-styling.md +303 -0
  29. package/.local/skills/swiftui-expert-skill/references/performance-patterns.md +403 -0
  30. package/.local/skills/swiftui-expert-skill/references/scroll-patterns.md +293 -0
  31. package/.local/skills/swiftui-expert-skill/references/sheet-navigation-patterns.md +363 -0
  32. package/.local/skills/swiftui-expert-skill/references/state-management.md +388 -0
  33. package/.local/skills/swiftui-expert-skill/references/text-patterns.md +32 -0
  34. package/.local/skills/swiftui-expert-skill/references/trace-analysis.md +295 -0
  35. package/.local/skills/swiftui-expert-skill/references/trace-recording.md +134 -0
  36. package/.local/skills/swiftui-expert-skill/references/view-structure.md +780 -0
  37. package/.local/skills/swiftui-expert-skill/scripts/__pycache__/analyze_trace.cpython-313.pyc +0 -0
  38. package/.local/skills/swiftui-expert-skill/scripts/__pycache__/record_trace.cpython-313.pyc +0 -0
  39. package/.local/skills/swiftui-expert-skill/scripts/analyze_trace.py +301 -0
  40. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/__init__.py +1 -0
  41. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/__pycache__/__init__.cpython-313.pyc +0 -0
  42. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/__pycache__/causes.cpython-313.pyc +0 -0
  43. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/__pycache__/correlate.cpython-313.pyc +0 -0
  44. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/__pycache__/events.cpython-313.pyc +0 -0
  45. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/__pycache__/hangs.cpython-313.pyc +0 -0
  46. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/__pycache__/hitches.cpython-313.pyc +0 -0
  47. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/__pycache__/summary.cpython-313.pyc +0 -0
  48. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/__pycache__/swiftui.cpython-313.pyc +0 -0
  49. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/__pycache__/time_profiler.cpython-313.pyc +0 -0
  50. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/__pycache__/xctrace.cpython-313.pyc +0 -0
  51. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/__pycache__/xml_utils.cpython-313.pyc +0 -0
  52. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/causes.py +187 -0
  53. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/correlate.py +179 -0
  54. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/events.py +291 -0
  55. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/hangs.py +108 -0
  56. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/hitches.py +145 -0
  57. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/summary.py +243 -0
  58. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/swiftui.py +195 -0
  59. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/time_profiler.py +135 -0
  60. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/xctrace.py +117 -0
  61. package/.local/skills/swiftui-expert-skill/scripts/instruments_parser/xml_utils.py +224 -0
  62. package/.local/skills/swiftui-expert-skill/scripts/record_trace.py +252 -0
  63. package/.local/skills/swiftui-liquid-glass/SKILL.md +90 -0
  64. package/.local/skills/swiftui-liquid-glass/agents/openai.yaml +4 -0
  65. package/.local/skills/swiftui-liquid-glass/references/liquid-glass.md +280 -0
  66. package/.local/skills/swiftui-performance-audit/SKILL.md +106 -0
  67. package/.local/skills/swiftui-performance-audit/agents/openai.yaml +4 -0
  68. package/.local/skills/swiftui-performance-audit/references/code-smells.md +150 -0
  69. package/.local/skills/swiftui-performance-audit/references/demystify-swiftui-performance-wwdc23.md +46 -0
  70. package/.local/skills/swiftui-performance-audit/references/optimizing-swiftui-performance-instruments.md +29 -0
  71. package/.local/skills/swiftui-performance-audit/references/profiling-intake.md +44 -0
  72. package/.local/skills/swiftui-performance-audit/references/report-template.md +47 -0
  73. package/.local/skills/swiftui-performance-audit/references/understanding-hangs-in-your-app.md +33 -0
  74. package/.local/skills/swiftui-performance-audit/references/understanding-improving-swiftui-performance.md +52 -0
  75. package/.local/skills/swiftui-pro/SKILL.md +108 -0
  76. package/.local/skills/swiftui-pro/agents/openai.yaml +10 -0
  77. package/.local/skills/swiftui-pro/assets/swiftui-pro-icon.png +0 -0
  78. package/.local/skills/swiftui-pro/assets/swiftui-pro-icon.svg +29 -0
  79. package/.local/skills/swiftui-pro/references/accessibility.md +13 -0
  80. package/.local/skills/swiftui-pro/references/api.md +39 -0
  81. package/.local/skills/swiftui-pro/references/data.md +43 -0
  82. package/.local/skills/swiftui-pro/references/design.md +32 -0
  83. package/.local/skills/swiftui-pro/references/hygiene.md +9 -0
  84. package/.local/skills/swiftui-pro/references/navigation.md +14 -0
  85. package/.local/skills/swiftui-pro/references/performance.md +46 -0
  86. package/.local/skills/swiftui-pro/references/swift.md +56 -0
  87. package/.local/skills/swiftui-pro/references/views.md +36 -0
  88. package/.local/skills/swiftui-ui-patterns/SKILL.md +95 -0
  89. package/.local/skills/swiftui-ui-patterns/agents/openai.yaml +4 -0
  90. package/.local/skills/swiftui-ui-patterns/references/app-wiring.md +201 -0
  91. package/.local/skills/swiftui-ui-patterns/references/async-state.md +96 -0
  92. package/.local/skills/swiftui-ui-patterns/references/components-index.md +50 -0
  93. package/.local/skills/swiftui-ui-patterns/references/controls.md +57 -0
  94. package/.local/skills/swiftui-ui-patterns/references/deeplinks.md +66 -0
  95. package/.local/skills/swiftui-ui-patterns/references/focus.md +90 -0
  96. package/.local/skills/swiftui-ui-patterns/references/form.md +97 -0
  97. package/.local/skills/swiftui-ui-patterns/references/grids.md +71 -0
  98. package/.local/skills/swiftui-ui-patterns/references/haptics.md +71 -0
  99. package/.local/skills/swiftui-ui-patterns/references/input-toolbar.md +51 -0
  100. package/.local/skills/swiftui-ui-patterns/references/lightweight-clients.md +93 -0
  101. package/.local/skills/swiftui-ui-patterns/references/list.md +86 -0
  102. package/.local/skills/swiftui-ui-patterns/references/loading-placeholders.md +38 -0
  103. package/.local/skills/swiftui-ui-patterns/references/macos-settings.md +71 -0
  104. package/.local/skills/swiftui-ui-patterns/references/matched-transitions.md +59 -0
  105. package/.local/skills/swiftui-ui-patterns/references/media.md +73 -0
  106. package/.local/skills/swiftui-ui-patterns/references/menu-bar.md +101 -0
  107. package/.local/skills/swiftui-ui-patterns/references/navigationstack.md +159 -0
  108. package/.local/skills/swiftui-ui-patterns/references/overlay.md +45 -0
  109. package/.local/skills/swiftui-ui-patterns/references/performance.md +62 -0
  110. package/.local/skills/swiftui-ui-patterns/references/previews.md +48 -0
  111. package/.local/skills/swiftui-ui-patterns/references/scroll-reveal.md +133 -0
  112. package/.local/skills/swiftui-ui-patterns/references/scrollview.md +87 -0
  113. package/.local/skills/swiftui-ui-patterns/references/searchable.md +71 -0
  114. package/.local/skills/swiftui-ui-patterns/references/sheets.md +155 -0
  115. package/.local/skills/swiftui-ui-patterns/references/split-views.md +72 -0
  116. package/.local/skills/swiftui-ui-patterns/references/tabview.md +114 -0
  117. package/.local/skills/swiftui-ui-patterns/references/theming.md +71 -0
  118. package/.local/skills/swiftui-ui-patterns/references/title-menus.md +93 -0
  119. package/.local/skills/swiftui-ui-patterns/references/top-bar.md +49 -0
  120. package/.local/skills/swiftui-view-refactor/SKILL.md +202 -0
  121. package/.local/skills/swiftui-view-refactor/agents/openai.yaml +4 -0
  122. package/.local/skills/swiftui-view-refactor/references/mv-patterns.md +161 -0
  123. package/.omc-curation/ecc-selection.json +80 -0
  124. package/.omc-curation/governance.json +113 -0
  125. package/.omc-curation/sources.lock.json +25 -0
  126. package/README.md +69 -4
  127. package/bundled/manifest.json +5 -5
  128. package/bundled/upstream/anthropic-skills/.omc-source/bundle.json +18 -0
  129. package/bundled/upstream/anthropic-skills/.omc-source/provenance.json +399 -0
  130. package/bundled/upstream/anthropic-skills/skills/claude-api/SKILL.md +18 -17
  131. package/bundled/upstream/anthropic-skills/skills/claude-api/curl/examples.md +9 -9
  132. package/bundled/upstream/anthropic-skills/skills/claude-api/curl/managed-agents.md +4 -4
  133. package/bundled/upstream/anthropic-skills/skills/claude-api/go/managed-agents/README.md +2 -2
  134. package/bundled/upstream/anthropic-skills/skills/claude-api/java/claude-api.md +2 -2
  135. package/bundled/upstream/anthropic-skills/skills/claude-api/java/managed-agents/README.md +2 -2
  136. package/bundled/upstream/anthropic-skills/skills/claude-api/php/claude-api.md +10 -10
  137. package/bundled/upstream/anthropic-skills/skills/claude-api/php/managed-agents/README.md +2 -2
  138. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/README.md +16 -16
  139. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/batches.md +3 -3
  140. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/files-api.md +3 -3
  141. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/streaming.md +7 -7
  142. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/tool-use.md +19 -19
  143. package/bundled/upstream/anthropic-skills/skills/claude-api/python/managed-agents/README.md +3 -3
  144. package/bundled/upstream/anthropic-skills/skills/claude-api/ruby/claude-api.md +4 -4
  145. package/bundled/upstream/anthropic-skills/skills/claude-api/ruby/managed-agents/README.md +2 -2
  146. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/error-codes.md +5 -5
  147. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/live-sources.md +3 -1
  148. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-api-reference.md +10 -4
  149. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-core.md +19 -1
  150. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-environments.md +6 -2
  151. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-multiagent.md +1 -1
  152. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-onboarding.md +3 -3
  153. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-overview.md +3 -2
  154. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-self-hosted-sandboxes.md +173 -0
  155. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-tools.md +10 -4
  156. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/model-migration.md +113 -13
  157. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/models.md +14 -11
  158. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/prompt-caching.md +2 -2
  159. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/tool-use-concepts.md +4 -4
  160. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/README.md +15 -15
  161. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/batches.md +2 -2
  162. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/files-api.md +1 -1
  163. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/streaming.md +5 -5
  164. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/tool-use.md +15 -15
  165. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/managed-agents/README.md +3 -3
  166. package/bundled/upstream/ecc/.omc-source/bundle.json +2 -1
  167. package/bundled/upstream/ecc/.omc-source/last-plan-apply.json +108 -24
  168. package/bundled/upstream/ecc/.omc-source/manifests/.claude-plugin/marketplace.json +3 -3
  169. package/bundled/upstream/ecc/.omc-source/provenance.json +563 -0
  170. package/bundled/upstream/ecc/agents/marketing-agent.md +159 -0
  171. package/bundled/upstream/ecc/agents/react-build-resolver.md +215 -0
  172. package/bundled/upstream/ecc/agents/react-reviewer.md +167 -0
  173. package/bundled/upstream/ecc/agents/typescript-reviewer.md +3 -0
  174. package/bundled/upstream/ecc/commands/harness-audit.md +17 -10
  175. package/bundled/upstream/ecc/commands/marketing-campaign.md +129 -0
  176. package/bundled/upstream/ecc/commands/react-build.md +187 -0
  177. package/bundled/upstream/ecc/commands/react-review.md +170 -0
  178. package/bundled/upstream/ecc/commands/react-test.md +265 -0
  179. package/bundled/upstream/ecc/skills/benchmark-optimization-loop/SKILL.md +69 -0
  180. package/bundled/upstream/ecc/skills/blender-motion-state-inspection/SKILL.md +164 -0
  181. package/bundled/upstream/ecc/skills/canary-watch/SKILL.md +9 -1
  182. package/bundled/upstream/ecc/skills/continuous-learning-v2/hooks/observe.sh +31 -9
  183. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/detect-project.sh +38 -4
  184. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +319 -12
  185. package/bundled/upstream/ecc/skills/data-throughput-accelerator/SKILL.md +72 -0
  186. package/bundled/upstream/ecc/skills/dynamic-workflow-mode/SKILL.md +123 -0
  187. package/bundled/upstream/ecc/skills/frontend-a11y/SKILL.md +446 -0
  188. package/bundled/upstream/ecc/skills/ito-basket-compare/SKILL.md +63 -0
  189. package/bundled/upstream/ecc/skills/ito-data-atlas-agent/SKILL.md +63 -0
  190. package/bundled/upstream/ecc/skills/ito-market-intelligence/SKILL.md +60 -0
  191. package/bundled/upstream/ecc/skills/ito-trade-planner/SKILL.md +67 -0
  192. package/bundled/upstream/ecc/skills/latency-critical-systems/SKILL.md +73 -0
  193. package/bundled/upstream/ecc/skills/marketing-campaign/SKILL.md +113 -0
  194. package/bundled/upstream/ecc/skills/nextjs-turbopack/SKILL.md +13 -0
  195. package/bundled/upstream/ecc/skills/parallel-execution-optimizer/SKILL.md +72 -0
  196. package/bundled/upstream/ecc/skills/prediction-market-oracle-research/SKILL.md +63 -0
  197. package/bundled/upstream/ecc/skills/prediction-market-risk-review/SKILL.md +60 -0
  198. package/bundled/upstream/ecc/skills/react-patterns/SKILL.md +341 -0
  199. package/bundled/upstream/ecc/skills/react-performance/SKILL.md +574 -0
  200. package/bundled/upstream/ecc/skills/react-testing/SKILL.md +423 -0
  201. package/bundled/upstream/ecc/skills/recsys-pipeline-architect/SKILL.md +114 -0
  202. package/bundled/upstream/ecc/skills/recursive-decision-ledger/SKILL.md +79 -0
  203. package/bundled/upstream/ecc/skills/social-publisher/SKILL.md +115 -0
  204. package/bundled/upstream/ecc/skills/team-agent-orchestration/SKILL.md +110 -0
  205. package/bundled/upstream/ecc/skills/uncloud/SKILL.md +343 -0
  206. package/bundled/upstream/ecc/skills/windows-desktop-e2e/SKILL.md +99 -0
  207. package/bundled/upstream/oh-my-claudecode/.omc-source/bundle.json +2 -1
  208. package/bundled/upstream/oh-my-claudecode/.omc-source/provenance.json +116 -0
  209. package/bundled/upstream/oh-my-claudecode/skills/autopilot/SKILL.md +7 -0
  210. package/bundled/upstream/oh-my-claudecode/skills/cancel/SKILL.md +1 -0
  211. package/bundled/upstream/oh-my-claudecode/skills/deep-interview/SKILL.md +39 -5
  212. package/bundled/upstream/oh-my-claudecode/skills/hud/SKILL.md +1 -0
  213. package/bundled/upstream/oh-my-claudecode/skills/local-build-reminder/SKILL.md +78 -0
  214. package/bundled/upstream/oh-my-claudecode/skills/omc-doctor/SKILL.md +1 -1
  215. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/SKILL.md +26 -10
  216. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/01-install-claude-md.md +3 -3
  217. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/02-configure.md +6 -4
  218. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/03-integrations.md +1 -1
  219. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/04-welcome.md +2 -2
  220. package/bundled/upstream/oh-my-claudecode/skills/omc-teams/SKILL.md +6 -6
  221. package/bundled/upstream/oh-my-claudecode/skills/plan/SKILL.md +44 -32
  222. package/bundled/upstream/oh-my-claudecode/skills/ralph/SKILL.md +45 -21
  223. package/bundled/upstream/oh-my-claudecode/skills/ralplan/SKILL.md +1 -1
  224. package/bundled/upstream/oh-my-claudecode/skills/self-improve/SKILL.md +7 -0
  225. package/bundled/upstream/oh-my-claudecode/skills/self-improve/scripts/resolve-paths.mjs +39 -15
  226. package/bundled/upstream/oh-my-claudecode/skills/team/SKILL.md +132 -90
  227. package/bundled/upstream/oh-my-claudecode/skills/ultragoal/SKILL.md +93 -0
  228. package/bundled/upstream/oh-my-claudecode/skills/ultraqa/SKILL.md +28 -13
  229. package/bundled/upstream/oh-my-claudecode/skills/ultrawork/SKILL.md +7 -0
  230. package/bundled/upstream/superpowers/.omc-source/bundle.json +2 -1
  231. package/bundled/upstream/superpowers/.omc-source/provenance.json +63 -0
  232. package/package.json +2 -1
  233. package/src/catalog/source-catalog.js +10 -4
  234. package/src/cli/index.js +4 -0
  235. package/src/cli/plan.js +14 -2
  236. package/src/cli/setup.js +52 -13
  237. package/src/cli/skill.js +1 -1
  238. package/src/cli/source.js +265 -14
  239. package/src/config/sources.js +67 -1
  240. package/src/merge/content-patch.js +84 -0
  241. package/templates/merge-config.json +1 -8
  242. package/bundled/upstream/ecc/skills/strategic-compact/suggest-compact.sh +0 -54
@@ -63,7 +63,7 @@ curl -X POST https://api.anthropic.com/v1/agents \
63
63
  "${HEADERS[@]}" \
64
64
  -d '{
65
65
  "name": "Coding Assistant",
66
- "model": "claude-opus-4-7",
66
+ "model": "claude-opus-4-8",
67
67
  "tools": [{ "type": "agent_toolset_20260401" }]
68
68
  }'
69
69
  # → { "id": "agent_abc123", ... }
@@ -85,7 +85,7 @@ curl -X POST https://api.anthropic.com/v1/agents \
85
85
  "${HEADERS[@]}" \
86
86
  -d '{
87
87
  "name": "Code Reviewer",
88
- "model": "claude-opus-4-7",
88
+ "model": "claude-opus-4-8",
89
89
  "system": "You are a senior code reviewer. Be thorough and constructive.",
90
90
  "tools": [
91
91
  { "type": "agent_toolset_20260401" },
@@ -291,7 +291,7 @@ curl -X POST https://api.anthropic.com/v1/agents \
291
291
  "${HEADERS[@]}" \
292
292
  -d '{
293
293
  "name": "MCP Agent",
294
- "model": "claude-opus-4-7",
294
+ "model": "claude-opus-4-8",
295
295
  "mcp_servers": [
296
296
  { "type": "url", "name": "my-tools", "url": "https://my-mcp-server.example.com/sse" }
297
297
  ],
@@ -322,7 +322,7 @@ curl -X POST https://api.anthropic.com/v1/agents \
322
322
  "${HEADERS[@]}" \
323
323
  -d '{
324
324
  "name": "Restricted Agent",
325
- "model": "claude-opus-4-7",
325
+ "model": "claude-opus-4-8",
326
326
  "tools": [
327
327
  {
328
328
  "type": "agent_toolset_20260401",
@@ -63,7 +63,7 @@ fmt.Println(environment.ID) // env_...
63
63
  agent, err := client.Beta.Agents.New(ctx, anthropic.BetaAgentNewParams{
64
64
  Name: "Coding Assistant",
65
65
  Model: anthropic.BetaManagedAgentsModelConfigParams{
66
- ID: "claude-opus-4-7",
66
+ ID: "claude-opus-4-8",
67
67
  Type: anthropic.BetaManagedAgentsModelConfigParamsTypeModelConfig,
68
68
  },
69
69
  System: anthropic.String("You are a helpful coding assistant."),
@@ -380,7 +380,7 @@ if err != nil {
380
380
  agent, err := client.Beta.Agents.New(ctx, anthropic.BetaAgentNewParams{
381
381
  Name: "GitHub Assistant",
382
382
  Model: anthropic.BetaManagedAgentsModelConfigParams{
383
- ID: "claude-opus-4-7",
383
+ ID: "claude-opus-4-8",
384
384
  Type: anthropic.BetaManagedAgentsModelConfigParamsTypeModelConfig,
385
385
  },
386
386
  MCPServers: []anthropic.BetaManagedAgentsUrlmcpServerParams{{
@@ -136,7 +136,7 @@ static class GetWeather implements Supplier<String> {
136
136
 
137
137
  BetaToolRunner toolRunner = client.beta().messages().toolRunner(
138
138
  MessageCreateParams.builder()
139
- .model("claude-opus-4-7")
139
+ .model("claude-opus-4-8")
140
140
  .maxTokens(16000L)
141
141
  .putAdditionalHeader("anthropic-beta", "structured-outputs-2025-11-13")
142
142
  .addTool(GetWeather.class)
@@ -164,7 +164,7 @@ import com.anthropic.models.beta.messages.ToolRunnerCreateParams;
164
164
  BetaMemoryToolHandler memoryHandler = new FileSystemMemoryToolHandler(sandboxRoot);
165
165
 
166
166
  MessageCreateParams createParams = MessageCreateParams.builder()
167
- .model("claude-opus-4-7")
167
+ .model("claude-opus-4-8")
168
168
  .maxTokens(4096L)
169
169
  .addTool(BetaMemoryTool20250818.builder().build())
170
170
  .addUserMessage("Remember that my favorite color is blue")
@@ -57,7 +57,7 @@ import com.anthropic.models.beta.sessions.SessionCreateParams;
57
57
  // 1. Create the agent (reusable, versioned)
58
58
  var agent = client.beta().agents().create(AgentCreateParams.builder()
59
59
  .name("Coding Assistant")
60
- .model("claude-opus-4-7")
60
+ .model("claude-opus-4-8")
61
61
  .system("You are a helpful coding assistant.")
62
62
  .addTool(BetaManagedAgentsAgentToolset20260401Params.builder()
63
63
  .type(BetaManagedAgentsAgentToolset20260401Params.Type.AGENT_TOOLSET_20260401)
@@ -295,7 +295,7 @@ import com.anthropic.models.beta.agents.BetaManagedAgentsUrlmcpServerParams;
295
295
  // Agent declares MCP server (no auth here — auth goes in a vault)
296
296
  var agent = client.beta().agents().create(AgentCreateParams.builder()
297
297
  .name("GitHub Assistant")
298
- .model("claude-opus-4-7")
298
+ .model("claude-opus-4-8")
299
299
  .addMcpServer(BetaManagedAgentsUrlmcpServerParams.builder()
300
300
  .type(BetaManagedAgentsUrlmcpServerParams.Type.URL)
301
301
  .name("github")
@@ -56,7 +56,7 @@ $client = Foundry\Client::withCredentials(
56
56
 
57
57
  ```php
58
58
  $message = $client->messages->create(
59
- model: 'claude-opus-4-7',
59
+ model: 'claude-opus-4-8',
60
60
  maxTokens: 16000,
61
61
  messages: [
62
62
  ['role' => 'user', 'content' => 'What is the capital of France?'],
@@ -96,7 +96,7 @@ use Anthropic\Messages\RawContentBlockDeltaEvent;
96
96
  use Anthropic\Messages\TextDelta;
97
97
 
98
98
  $stream = $client->messages->createStream(
99
- model: 'claude-opus-4-7',
99
+ model: 'claude-opus-4-8',
100
100
  maxTokens: 64000,
101
101
  messages: [
102
102
  ['role' => 'user', 'content' => 'Write a haiku'],
@@ -141,7 +141,7 @@ $weatherTool = new BetaRunnableTool(
141
141
  $runner = $client->beta->messages->toolRunner(
142
142
  maxTokens: 16000,
143
143
  messages: [['role' => 'user', 'content' => 'What is the weather in Paris?']],
144
- model: 'claude-opus-4-7',
144
+ model: 'claude-opus-4-8',
145
145
  tools: [$weatherTool],
146
146
  );
147
147
 
@@ -178,7 +178,7 @@ $tools = [
178
178
  $messages = [['role' => 'user', 'content' => 'What is the weather in SF?']];
179
179
 
180
180
  $response = $client->messages->create(
181
- model: 'claude-opus-4-7',
181
+ model: 'claude-opus-4-8',
182
182
  maxTokens: 16000,
183
183
  tools: $tools,
184
184
  messages: $messages,
@@ -205,7 +205,7 @@ while ($response->stopReason === 'tool_use') { // camelCase property
205
205
  $messages[] = ['role' => 'user', 'content' => $toolResults];
206
206
 
207
207
  $response = $client->messages->create(
208
- model: 'claude-opus-4-7',
208
+ model: 'claude-opus-4-8',
209
209
  maxTokens: 16000,
210
210
  tools: $tools,
211
211
  messages: $messages,
@@ -233,7 +233,7 @@ foreach ($response->content as $block) {
233
233
  use Anthropic\Messages\ThinkingBlock;
234
234
 
235
235
  $message = $client->messages->create(
236
- model: 'claude-opus-4-7',
236
+ model: 'claude-opus-4-8',
237
237
  maxTokens: 16000,
238
238
  thinking: ['type' => 'adaptive'],
239
239
  messages: [
@@ -265,7 +265,7 @@ foreach ($message->content as $block) {
265
265
 
266
266
  ```php
267
267
  $message = $client->messages->create(
268
- model: 'claude-opus-4-7',
268
+ model: 'claude-opus-4-8',
269
269
  maxTokens: 16000,
270
270
  system: [
271
271
  ['type' => 'text', 'text' => $longSystemPrompt, 'cacheControl' => ['type' => 'ephemeral']],
@@ -304,7 +304,7 @@ class Person implements StructuredOutputModel
304
304
  }
305
305
 
306
306
  $message = $client->messages->create(
307
- model: 'claude-opus-4-7',
307
+ model: 'claude-opus-4-8',
308
308
  maxTokens: 16000,
309
309
  messages: [['role' => 'user', 'content' => 'Generate a profile for Alice, age 30']],
310
310
  outputConfig: ['format' => Person::class],
@@ -320,7 +320,7 @@ Types are inferred from PHP type hints. Use `#[Constrained(description: '...')]`
320
320
 
321
321
  ```php
322
322
  $message = $client->messages->create(
323
- model: 'claude-opus-4-7',
323
+ model: 'claude-opus-4-8',
324
324
  maxTokens: 16000,
325
325
  messages: [['role' => 'user', 'content' => 'Extract: John (john@co.com), Enterprise plan']],
326
326
  outputConfig: [
@@ -359,7 +359,7 @@ foreach ($message->content as $block) {
359
359
  use Anthropic\Beta\Messages\BetaRequestMCPServerURLDefinition;
360
360
 
361
361
  $response = $client->beta->messages->create(
362
- model: 'claude-opus-4-7',
362
+ model: 'claude-opus-4-8',
363
363
  maxTokens: 16000,
364
364
  mcpServers: [
365
365
  BetaRequestMCPServerURLDefinition::with(
@@ -48,7 +48,7 @@ use Anthropic\Beta\Agents\BetaManagedAgentsAgentToolset20260401Params;
48
48
  // 1. Create the agent (reusable, versioned)
49
49
  $agent = $client->beta->agents->create(
50
50
  name: 'Coding Assistant',
51
- model: 'claude-opus-4-7',
51
+ model: 'claude-opus-4-8',
52
52
  system: 'You are a helpful coding assistant.',
53
53
  tools: [
54
54
  BetaManagedAgentsAgentToolset20260401Params::with(
@@ -299,7 +299,7 @@ use Anthropic\Beta\Sessions\BetaManagedAgentsAgentParams;
299
299
  // Agent declares MCP server (no auth here — auth goes in a vault)
300
300
  $agent = $client->beta->agents->create(
301
301
  name: 'GitHub Assistant',
302
- model: 'claude-opus-4-7',
302
+ model: 'claude-opus-4-8',
303
303
  mcpServers: [
304
304
  BetaManagedAgentsUrlmcpServerParams::with(
305
305
  type: 'url',
@@ -27,7 +27,7 @@ async_client = anthropic.AsyncAnthropic()
27
27
 
28
28
  ```python
29
29
  response = client.messages.create(
30
- model="claude-opus-4-7",
30
+ model="claude-opus-4-8",
31
31
  max_tokens=16000,
32
32
  messages=[
33
33
  {"role": "user", "content": "What is the capital of France?"}
@@ -46,7 +46,7 @@ for block in response.content:
46
46
 
47
47
  ```python
48
48
  response = client.messages.create(
49
- model="claude-opus-4-7",
49
+ model="claude-opus-4-8",
50
50
  max_tokens=16000,
51
51
  system="You are a helpful coding assistant. Always provide examples in Python.",
52
52
  messages=[{"role": "user", "content": "How do I read a JSON file?"}]
@@ -66,7 +66,7 @@ with open("image.png", "rb") as f:
66
66
  image_data = base64.standard_b64encode(f.read()).decode("utf-8")
67
67
 
68
68
  response = client.messages.create(
69
- model="claude-opus-4-7",
69
+ model="claude-opus-4-8",
70
70
  max_tokens=16000,
71
71
  messages=[{
72
72
  "role": "user",
@@ -89,7 +89,7 @@ response = client.messages.create(
89
89
 
90
90
  ```python
91
91
  response = client.messages.create(
92
- model="claude-opus-4-7",
92
+ model="claude-opus-4-8",
93
93
  max_tokens=16000,
94
94
  messages=[{
95
95
  "role": "user",
@@ -119,7 +119,7 @@ Use top-level `cache_control` to automatically cache the last cacheable block in
119
119
 
120
120
  ```python
121
121
  response = client.messages.create(
122
- model="claude-opus-4-7",
122
+ model="claude-opus-4-8",
123
123
  max_tokens=16000,
124
124
  cache_control={"type": "ephemeral"}, # auto-caches the last cacheable block
125
125
  system="You are an expert on this large document...",
@@ -133,7 +133,7 @@ For fine-grained control, add `cache_control` to specific content blocks:
133
133
 
134
134
  ```python
135
135
  response = client.messages.create(
136
- model="claude-opus-4-7",
136
+ model="claude-opus-4-8",
137
137
  max_tokens=16000,
138
138
  system=[{
139
139
  "type": "text",
@@ -145,7 +145,7 @@ response = client.messages.create(
145
145
 
146
146
  # With explicit TTL (time-to-live)
147
147
  response = client.messages.create(
148
- model="claude-opus-4-7",
148
+ model="claude-opus-4-8",
149
149
  max_tokens=16000,
150
150
  system=[{
151
151
  "type": "text",
@@ -170,13 +170,13 @@ If `cache_read_input_tokens` is zero across repeated identical-prefix requests,
170
170
 
171
171
  ## Extended Thinking
172
172
 
173
- > **Opus 4.7, Opus 4.6, and Sonnet 4.6:** Use adaptive thinking. `budget_tokens` is removed on Opus 4.7 (400 if sent); deprecated on Opus 4.6 and Sonnet 4.6.
173
+ > **Opus 4.8, Opus 4.7, Opus 4.6, and Sonnet 4.6:** Use adaptive thinking. `budget_tokens` is removed on Opus 4.8 and 4.7 (400 if sent); deprecated on Opus 4.6 and Sonnet 4.6.
174
174
  > **Older models:** Use `thinking: {type: "enabled", budget_tokens: N}` (must be < `max_tokens`, min 1024).
175
175
 
176
176
  ```python
177
- # Opus 4.7 / 4.6: adaptive thinking (recommended)
177
+ # Opus 4.8 / 4.7 / 4.6: adaptive thinking (recommended)
178
178
  response = client.messages.create(
179
- model="claude-opus-4-7",
179
+ model="claude-opus-4-8",
180
180
  max_tokens=16000,
181
181
  thinking={"type": "adaptive"},
182
182
  output_config={"effort": "high"}, # low | medium | high | max
@@ -258,7 +258,7 @@ class ConversationManager:
258
258
  # Usage
259
259
  conversation = ConversationManager(
260
260
  client=anthropic.Anthropic(),
261
- model="claude-opus-4-7",
261
+ model="claude-opus-4-8",
262
262
  system="You are a helpful assistant."
263
263
  )
264
264
 
@@ -275,7 +275,7 @@ response2 = conversation.send("What's my name?") # Claude remembers "Alice"
275
275
 
276
276
  ### Compaction (long conversations)
277
277
 
278
- > **Beta, Opus 4.7, Opus 4.6, and Sonnet 4.6.** When conversations approach the 200K context window, compaction automatically summarizes earlier context server-side. The API returns a `compaction` block; you must pass it back on subsequent requests — append `response.content`, not just the text.
278
+ > **Beta, Opus 4.8, Opus 4.7, Opus 4.6, and Sonnet 4.6.** When conversations approach the 200K context window, compaction automatically summarizes earlier context server-side. The API returns a `compaction` block; you must pass it back on subsequent requests — append `response.content`, not just the text.
279
279
 
280
280
  ```python
281
281
  import anthropic
@@ -288,7 +288,7 @@ def chat(user_message: str) -> str:
288
288
 
289
289
  response = client.beta.messages.create(
290
290
  betas=["compact-2026-01-12"],
291
- model="claude-opus-4-7",
291
+ model="claude-opus-4-8",
292
292
  max_tokens=16000,
293
293
  messages=messages,
294
294
  context_management={
@@ -331,7 +331,7 @@ The `stop_reason` field in the response indicates why the model stopped generati
331
331
  ```python
332
332
  # Automatic caching (simplest — caches the last cacheable block)
333
333
  response = client.messages.create(
334
- model="claude-opus-4-7",
334
+ model="claude-opus-4-8",
335
335
  max_tokens=16000,
336
336
  cache_control={"type": "ephemeral"},
337
337
  system=large_document_text, # e.g., 50KB of context
@@ -347,7 +347,7 @@ response = client.messages.create(
347
347
  ```python
348
348
  # Default to Opus for most tasks
349
349
  response = client.messages.create(
350
- model="claude-opus-4-7", # $5.00/$25.00 per 1M tokens
350
+ model="claude-opus-4-8", # $5.00/$25.00 per 1M tokens
351
351
  max_tokens=16000,
352
352
  messages=[{"role": "user", "content": "Explain quantum computing"}]
353
353
  )
@@ -371,7 +371,7 @@ simple_response = client.messages.create(
371
371
 
372
372
  ```python
373
373
  count_response = client.messages.count_tokens(
374
- model="claude-opus-4-7",
374
+ model="claude-opus-4-8",
375
375
  messages=messages,
376
376
  system=system
377
377
  )
@@ -26,7 +26,7 @@ message_batch = client.messages.batches.create(
26
26
  Request(
27
27
  custom_id="request-1",
28
28
  params=MessageCreateParamsNonStreaming(
29
- model="claude-opus-4-7",
29
+ model="claude-opus-4-8",
30
30
  max_tokens=16000,
31
31
  messages=[{"role": "user", "content": "Summarize climate change impacts"}]
32
32
  )
@@ -34,7 +34,7 @@ message_batch = client.messages.batches.create(
34
34
  Request(
35
35
  custom_id="request-2",
36
36
  params=MessageCreateParamsNonStreaming(
37
- model="claude-opus-4-7",
37
+ model="claude-opus-4-8",
38
38
  max_tokens=16000,
39
39
  messages=[{"role": "user", "content": "Explain quantum computing basics"}]
40
40
  )
@@ -117,7 +117,7 @@ message_batch = client.messages.batches.create(
117
117
  Request(
118
118
  custom_id=f"analysis-{i}",
119
119
  params=MessageCreateParamsNonStreaming(
120
- model="claude-opus-4-7",
120
+ model="claude-opus-4-8",
121
121
  max_tokens=16000,
122
122
  system=shared_system,
123
123
  messages=[{"role": "user", "content": question}]
@@ -36,7 +36,7 @@ print(f"Size: {uploaded.size_bytes} bytes")
36
36
 
37
37
  ```python
38
38
  response = client.beta.messages.create(
39
- model="claude-opus-4-7",
39
+ model="claude-opus-4-8",
40
40
  max_tokens=16000,
41
41
  messages=[{
42
42
  "role": "user",
@@ -65,7 +65,7 @@ image_file = client.beta.files.upload(
65
65
  )
66
66
 
67
67
  response = client.beta.messages.create(
68
- model="claude-opus-4-7",
68
+ model="claude-opus-4-8",
69
69
  max_tokens=16000,
70
70
  messages=[{
71
71
  "role": "user",
@@ -142,7 +142,7 @@ questions = [
142
142
 
143
143
  for question in questions:
144
144
  response = client.beta.messages.create(
145
- model="claude-opus-4-7",
145
+ model="claude-opus-4-8",
146
146
  max_tokens=16000,
147
147
  messages=[{
148
148
  "role": "user",
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```python
6
6
  with client.messages.stream(
7
- model="claude-opus-4-7",
7
+ model="claude-opus-4-8",
8
8
  max_tokens=64000,
9
9
  messages=[{"role": "user", "content": "Write a story"}]
10
10
  ) as stream:
@@ -16,7 +16,7 @@ with client.messages.stream(
16
16
 
17
17
  ```python
18
18
  async with async_client.messages.stream(
19
- model="claude-opus-4-7",
19
+ model="claude-opus-4-8",
20
20
  max_tokens=64000,
21
21
  messages=[{"role": "user", "content": "Write a story"}]
22
22
  ) as stream:
@@ -30,11 +30,11 @@ async with async_client.messages.stream(
30
30
 
31
31
  Claude may return text, thinking blocks, or tool use. Handle each appropriately:
32
32
 
33
- > **Opus 4.7 / Opus 4.6:** Use `thinking: {type: "adaptive"}`. On older models, use `thinking: {type: "enabled", budget_tokens: N}` instead.
33
+ > **Opus 4.8 / Opus 4.7 / Opus 4.6:** Use `thinking: {type: "adaptive"}`. On older models, use `thinking: {type: "enabled", budget_tokens: N}` instead.
34
34
 
35
35
  ```python
36
36
  with client.messages.stream(
37
- model="claude-opus-4-7",
37
+ model="claude-opus-4-8",
38
38
  max_tokens=64000,
39
39
  thinking={"type": "adaptive"},
40
40
  messages=[{"role": "user", "content": "Analyze this problem"}]
@@ -61,7 +61,7 @@ The Python tool runner currently returns complete messages. Use streaming for in
61
61
 
62
62
  ```python
63
63
  with client.messages.stream(
64
- model="claude-opus-4-7",
64
+ model="claude-opus-4-8",
65
65
  max_tokens=64000,
66
66
  tools=tools,
67
67
  messages=messages
@@ -79,7 +79,7 @@ with client.messages.stream(
79
79
 
80
80
  ```python
81
81
  with client.messages.stream(
82
- model="claude-opus-4-7",
82
+ model="claude-opus-4-8",
83
83
  max_tokens=64000,
84
84
  messages=[{"role": "user", "content": "Hello"}]
85
85
  ) as stream:
@@ -126,7 +126,7 @@ def stream_with_progress(client, **kwargs):
126
126
  ```python
127
127
  try:
128
128
  with client.messages.stream(
129
- model="claude-opus-4-7",
129
+ model="claude-opus-4-8",
130
130
  max_tokens=64000,
131
131
  messages=[{"role": "user", "content": "Write a story"}]
132
132
  ) as stream:
@@ -27,7 +27,7 @@ def get_weather(location: str, unit: str = "celsius") -> str:
27
27
 
28
28
  # The tool runner handles the agentic loop automatically
29
29
  runner = client.beta.messages.tool_runner(
30
- model="claude-opus-4-7",
30
+ model="claude-opus-4-8",
31
31
  max_tokens=16000,
32
32
  tools=[get_weather],
33
33
  messages=[{"role": "user", "content": "What's the weather in Paris?"}],
@@ -72,7 +72,7 @@ async with stdio_client(StdioServerParameters(command="mcp-server")) as (read, w
72
72
  tools_result = await mcp_client.list_tools()
73
73
  # tool_runner is sync — returns the runner, not a coroutine
74
74
  runner = client.beta.messages.tool_runner(
75
- model="claude-opus-4-7",
75
+ model="claude-opus-4-8",
76
76
  max_tokens=16000,
77
77
  messages=[{"role": "user", "content": "Use the available tools"}],
78
78
  tools=[async_mcp_tool(t, mcp_client) for t in tools_result.tools],
@@ -90,7 +90,7 @@ from anthropic.lib.tools.mcp import mcp_message
90
90
 
91
91
  prompt = await mcp_client.get_prompt(name="my-prompt")
92
92
  response = await client.beta.messages.create(
93
- model="claude-opus-4-7",
93
+ model="claude-opus-4-8",
94
94
  max_tokens=16000,
95
95
  messages=[mcp_message(m) for m in prompt.messages],
96
96
  )
@@ -103,7 +103,7 @@ from anthropic.lib.tools.mcp import mcp_resource_to_content
103
103
 
104
104
  resource = await mcp_client.read_resource(uri="file:///path/to/doc.txt")
105
105
  response = await client.beta.messages.create(
106
- model="claude-opus-4-7",
106
+ model="claude-opus-4-8",
107
107
  max_tokens=16000,
108
108
  messages=[{
109
109
  "role": "user",
@@ -142,7 +142,7 @@ messages = [{"role": "user", "content": user_input}]
142
142
  # Agentic loop: keep going until Claude stops calling tools
143
143
  while True:
144
144
  response = client.messages.create(
145
- model="claude-opus-4-7",
145
+ model="claude-opus-4-8",
146
146
  max_tokens=16000,
147
147
  tools=tools,
148
148
  messages=messages
@@ -189,7 +189,7 @@ final_text = next(b.text for b in response.content if b.type == "text")
189
189
 
190
190
  ```python
191
191
  response = client.messages.create(
192
- model="claude-opus-4-7",
192
+ model="claude-opus-4-8",
193
193
  max_tokens=16000,
194
194
  tools=tools,
195
195
  messages=[{"role": "user", "content": "What's the weather in Paris?"}]
@@ -204,7 +204,7 @@ for block in response.content:
204
204
  result = execute_tool(tool_name, tool_input)
205
205
 
206
206
  followup = client.messages.create(
207
- model="claude-opus-4-7",
207
+ model="claude-opus-4-8",
208
208
  max_tokens=16000,
209
209
  tools=tools,
210
210
  messages=[
@@ -241,7 +241,7 @@ for block in response.content:
241
241
  # Send all results back at once
242
242
  if tool_results:
243
243
  followup = client.messages.create(
244
- model="claude-opus-4-7",
244
+ model="claude-opus-4-8",
245
245
  max_tokens=16000,
246
246
  tools=tools,
247
247
  messages=[
@@ -271,7 +271,7 @@ tool_result = {
271
271
 
272
272
  ```python
273
273
  response = client.messages.create(
274
- model="claude-opus-4-7",
274
+ model="claude-opus-4-8",
275
275
  max_tokens=16000,
276
276
  tools=tools,
277
277
  tool_choice={"type": "tool", "name": "get_weather"}, # Force specific tool
@@ -291,7 +291,7 @@ import anthropic
291
291
  client = anthropic.Anthropic()
292
292
 
293
293
  response = client.messages.create(
294
- model="claude-opus-4-7",
294
+ model="claude-opus-4-8",
295
295
  max_tokens=16000,
296
296
  messages=[{
297
297
  "role": "user",
@@ -319,7 +319,7 @@ uploaded = client.beta.files.upload(file=open("sales_data.csv", "rb"))
319
319
  # 2. Pass to code execution via container_upload block
320
320
  # Code execution is GA; Files API is still beta (pass via extra_headers)
321
321
  response = client.messages.create(
322
- model="claude-opus-4-7",
322
+ model="claude-opus-4-8",
323
323
  max_tokens=16000,
324
324
  extra_headers={"anthropic-beta": "files-api-2025-04-14"},
325
325
  messages=[{
@@ -364,7 +364,7 @@ for block in response.content:
364
364
  ```python
365
365
  # First request: set up environment
366
366
  response1 = client.messages.create(
367
- model="claude-opus-4-7",
367
+ model="claude-opus-4-8",
368
368
  max_tokens=16000,
369
369
  messages=[{"role": "user", "content": "Install tabulate and create data.json with sample data"}],
370
370
  tools=[{"type": "code_execution_20260120", "name": "code_execution"}]
@@ -376,7 +376,7 @@ container_id = response1.container.id
376
376
  # Second request: reuse the same container
377
377
  response2 = client.messages.create(
378
378
  container=container_id,
379
- model="claude-opus-4-7",
379
+ model="claude-opus-4-8",
380
380
  max_tokens=16000,
381
381
  messages=[{"role": "user", "content": "Read data.json and display as a formatted table"}],
382
382
  tools=[{"type": "code_execution_20260120", "name": "code_execution"}]
@@ -416,7 +416,7 @@ import anthropic
416
416
  client = anthropic.Anthropic()
417
417
 
418
418
  response = client.messages.create(
419
- model="claude-opus-4-7",
419
+ model="claude-opus-4-8",
420
420
  max_tokens=16000,
421
421
  messages=[{"role": "user", "content": "Remember that my preferred language is Python."}],
422
422
  tools=[{"type": "memory_20250818", "name": "memory"}],
@@ -442,7 +442,7 @@ memory = MyMemoryTool()
442
442
 
443
443
  # Use with tool runner
444
444
  runner = client.beta.messages.tool_runner(
445
- model="claude-opus-4-7",
445
+ model="claude-opus-4-8",
446
446
  max_tokens=16000,
447
447
  tools=[memory],
448
448
  messages=[{"role": "user", "content": "Remember my preferences"}],
@@ -477,7 +477,7 @@ class ContactInfo(BaseModel):
477
477
  client = anthropic.Anthropic()
478
478
 
479
479
  response = client.messages.parse(
480
- model="claude-opus-4-7",
480
+ model="claude-opus-4-8",
481
481
  max_tokens=16000,
482
482
  messages=[{
483
483
  "role": "user",
@@ -496,7 +496,7 @@ print(contact.interests) # ["API", "SDKs"]
496
496
 
497
497
  ```python
498
498
  response = client.messages.create(
499
- model="claude-opus-4-7",
499
+ model="claude-opus-4-8",
500
500
  max_tokens=16000,
501
501
  messages=[{
502
502
  "role": "user",
@@ -530,7 +530,7 @@ data = json.loads(text)
530
530
 
531
531
  ```python
532
532
  response = client.messages.create(
533
- model="claude-opus-4-7",
533
+ model="claude-opus-4-8",
534
534
  max_tokens=16000,
535
535
  messages=[{"role": "user", "content": "Book a flight to Tokyo for 2 passengers on March 15"}],
536
536
  tools=[{
@@ -555,7 +555,7 @@ response = client.messages.create(
555
555
 
556
556
  ```python
557
557
  response = client.messages.create(
558
- model="claude-opus-4-7",
558
+ model="claude-opus-4-8",
559
559
  max_tokens=16000,
560
560
  messages=[{"role": "user", "content": "Plan a trip to Paris next month"}],
561
561
  output_config={
@@ -49,7 +49,7 @@ print(environment.id) # env_...
49
49
  # 1. Create the agent (reusable, versioned)
50
50
  agent = client.beta.agents.create(
51
51
  name="Coding Assistant",
52
- model="claude-opus-4-7",
52
+ model="claude-opus-4-8",
53
53
  tools=[{"type": "agent_toolset_20260401", "default_config": {"enabled": True}}],
54
54
  )
55
55
 
@@ -68,7 +68,7 @@ import os
68
68
 
69
69
  agent = client.beta.agents.create(
70
70
  name="Code Reviewer",
71
- model="claude-opus-4-7",
71
+ model="claude-opus-4-8",
72
72
  system="You are a senior code reviewer.",
73
73
  tools=[
74
74
  {"type": "agent_toolset_20260401"},
@@ -311,7 +311,7 @@ client.beta.sessions.archive(session_id="sesn_011CZxAbc123Def456")
311
311
  # Agent declares MCP server (no auth here — auth goes in a vault)
312
312
  agent = client.beta.agents.create(
313
313
  name="MCP Agent",
314
- model="claude-opus-4-7",
314
+ model="claude-opus-4-8",
315
315
  mcp_servers=[
316
316
  {"type": "url", "name": "my-tools", "url": "https://my-mcp-server.example.com/sse"},
317
317
  ],
@@ -26,7 +26,7 @@ client = Anthropic::Client.new(api_key: "your-api-key")
26
26
 
27
27
  ```ruby
28
28
  message = client.messages.create(
29
- model: :"claude-opus-4-7",
29
+ model: :"claude-opus-4-8",
30
30
  max_tokens: 16000,
31
31
  messages: [
32
32
  { role: "user", content: "What is the capital of France?" }
@@ -46,7 +46,7 @@ end
46
46
 
47
47
  ```ruby
48
48
  stream = client.messages.stream(
49
- model: :"claude-opus-4-7",
49
+ model: :"claude-opus-4-8",
50
50
  max_tokens: 64000,
51
51
  messages: [{ role: "user", content: "Write a haiku" }]
52
52
  )
@@ -78,7 +78,7 @@ class GetWeather < Anthropic::BaseTool
78
78
  end
79
79
 
80
80
  client.beta.messages.tool_runner(
81
- model: :"claude-opus-4-7",
81
+ model: :"claude-opus-4-8",
82
82
  max_tokens: 16000,
83
83
  tools: [GetWeather.new],
84
84
  messages: [{ role: "user", content: "What's the weather in San Francisco?" }]
@@ -99,7 +99,7 @@ See the [shared tool use concepts](../shared/tool-use-concepts.md) for the tool
99
99
 
100
100
  ```ruby
101
101
  message = client.messages.create(
102
- model: :"claude-opus-4-7",
102
+ model: :"claude-opus-4-8",
103
103
  max_tokens: 16000,
104
104
  system_: [
105
105
  { type: "text", text: long_system_prompt, cache_control: { type: "ephemeral" } }