hive-skills 0.1.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 (238) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +235 -0
  3. package/assets/LICENSE +32 -0
  4. package/assets/THIRD_PARTY_NOTICES.md +72 -0
  5. package/assets/manifest.json +1290 -0
  6. package/assets/skills/authored/code-review/composable/BUNDLE.md +192 -0
  7. package/assets/skills/authored/code-review/composable/INDEX.md +13 -0
  8. package/assets/skills/authored/code-review/composable/VERSION +1 -0
  9. package/assets/skills/authored/code-review/composable/mini/01-review-method.md +34 -0
  10. package/assets/skills/authored/code-review/composable/mini/02-security-review.md +20 -0
  11. package/assets/skills/authored/code-review/composable/mini/03-correctness-bugs.md +19 -0
  12. package/assets/skills/authored/code-review/composable/mini/04-concurrency.md +16 -0
  13. package/assets/skills/authored/code-review/composable/mini/05-error-handling.md +12 -0
  14. package/assets/skills/authored/code-review/composable/mini/06-performance.md +11 -0
  15. package/assets/skills/authored/code-review/composable/mini/07-api-design.md +20 -0
  16. package/assets/skills/authored/code-review/composable/mini/08-missing-tests.md +25 -0
  17. package/assets/skills/authored/code-review/composable/mini/09-refactoring-and-communication.md +32 -0
  18. package/assets/skills/authored/data-analysis/composable/BUNDLE.md +186 -0
  19. package/assets/skills/authored/data-analysis/composable/INDEX.md +13 -0
  20. package/assets/skills/authored/data-analysis/composable/VERSION +1 -0
  21. package/assets/skills/authored/data-analysis/composable/mini/01-data-quality-profiling.md +26 -0
  22. package/assets/skills/authored/data-analysis/composable/mini/02-aggregation-pitfalls.md +21 -0
  23. package/assets/skills/authored/data-analysis/composable/mini/03-time-series.md +19 -0
  24. package/assets/skills/authored/data-analysis/composable/mini/04-segmentation.md +23 -0
  25. package/assets/skills/authored/data-analysis/composable/mini/05-discount-pricing.md +17 -0
  26. package/assets/skills/authored/data-analysis/composable/mini/06-insight-generation.md +25 -0
  27. package/assets/skills/authored/data-analysis/composable/mini/07-executive-writing.md +26 -0
  28. package/assets/skills/authored/data-analysis/composable/mini/08-recommendations.md +20 -0
  29. package/assets/skills/authored/data-analysis/composable/mini/09-reproducibility-assumptions.md +20 -0
  30. package/assets/skills/authored/financial-analysis/composable/BUNDLE.md +1293 -0
  31. package/assets/skills/authored/financial-analysis/composable/INDEX.md +17 -0
  32. package/assets/skills/authored/financial-analysis/composable/VERSION +1 -0
  33. package/assets/skills/authored/financial-analysis/composable/mini/00-core.md +69 -0
  34. package/assets/skills/authored/financial-analysis/composable/mini/01-profitability-efficiency-ratios.md +173 -0
  35. package/assets/skills/authored/financial-analysis/composable/mini/02-liquidity-leverage-ratios.md +120 -0
  36. package/assets/skills/authored/financial-analysis/composable/mini/03-valuation-ratios-interpretation.md +107 -0
  37. package/assets/skills/authored/financial-analysis/composable/mini/04-dcf-projection-wacc.md +122 -0
  38. package/assets/skills/authored/financial-analysis/composable/mini/05-dcf-terminal-value-sensitivity.md +75 -0
  39. package/assets/skills/authored/financial-analysis/composable/mini/06-comparables-precedents.md +78 -0
  40. package/assets/skills/authored/financial-analysis/composable/mini/07-budget-variance-analysis.md +47 -0
  41. package/assets/skills/authored/financial-analysis/composable/mini/08-driver-based-forecasting-scenarios.md +111 -0
  42. package/assets/skills/authored/financial-analysis/composable/mini/09-rolling-forecasts-accuracy.md +114 -0
  43. package/assets/skills/authored/financial-analysis/composable/mini/10-reporting-exec-summary.md +58 -0
  44. package/assets/skills/authored/financial-analysis/composable/mini/11-industry-adaptations.md +130 -0
  45. package/assets/skills/authored/financial-analysis/composable/mini/12-toolkit-scripts-io.md +102 -0
  46. package/assets/skills/authored/python-api/composable/BUNDLE.md +389 -0
  47. package/assets/skills/authored/python-api/composable/INDEX.md +13 -0
  48. package/assets/skills/authored/python-api/composable/VERSION +1 -0
  49. package/assets/skills/authored/python-api/composable/mini/01-project-structure.md +44 -0
  50. package/assets/skills/authored/python-api/composable/mini/02-routing-and-app.md +38 -0
  51. package/assets/skills/authored/python-api/composable/mini/03-pydantic-models.md +45 -0
  52. package/assets/skills/authored/python-api/composable/mini/04-validation-and-errors.md +59 -0
  53. package/assets/skills/authored/python-api/composable/mini/05-dependencies-and-auth.md +60 -0
  54. package/assets/skills/authored/python-api/composable/mini/06-pagination-filtering.md +44 -0
  55. package/assets/skills/authored/python-api/composable/mini/07-async-performance.md +30 -0
  56. package/assets/skills/authored/python-api/composable/mini/08-testing.md +45 -0
  57. package/assets/skills/authored/python-api/composable/mini/09-middleware-observability.md +29 -0
  58. package/assets/skills/authored/tech-writing/composable/BUNDLE.md +220 -0
  59. package/assets/skills/authored/tech-writing/composable/INDEX.md +12 -0
  60. package/assets/skills/authored/tech-writing/composable/VERSION +1 -0
  61. package/assets/skills/authored/tech-writing/composable/mini/01-audience-analysis.md +26 -0
  62. package/assets/skills/authored/tech-writing/composable/mini/02-document-types.md +27 -0
  63. package/assets/skills/authored/tech-writing/composable/mini/03-readme-quickstart-changelog.md +22 -0
  64. package/assets/skills/authored/tech-writing/composable/mini/04-information-architecture.md +21 -0
  65. package/assets/skills/authored/tech-writing/composable/mini/05-style-clarity.md +29 -0
  66. package/assets/skills/authored/tech-writing/composable/mini/06-breaking-changes-migrations.md +33 -0
  67. package/assets/skills/authored/tech-writing/composable/mini/07-troubleshooting-security.md +30 -0
  68. package/assets/skills/authored/tech-writing/composable/mini/08-faq-voice-tone.md +32 -0
  69. package/assets/skills/converted/claude-api/composable/BUNDLE.md +14996 -0
  70. package/assets/skills/converted/claude-api/composable/INDEX.md +98 -0
  71. package/assets/skills/converted/claude-api/composable/VERSION +1 -0
  72. package/assets/skills/converted/claude-api/composable/mini/00-core.md +235 -0
  73. package/assets/skills/converted/claude-api/composable/mini/01-model-api-quick-reference.md +258 -0
  74. package/assets/skills/converted/claude-api/composable/mini/02-common-pitfalls.md +42 -0
  75. package/assets/skills/converted/claude-api/composable/mini/10-models.md +135 -0
  76. package/assets/skills/converted/claude-api/composable/mini/11-platform-availability.md +96 -0
  77. package/assets/skills/converted/claude-api/composable/mini/12-claude-platform-on-aws.md +59 -0
  78. package/assets/skills/converted/claude-api/composable/mini/13-live-sources.md +143 -0
  79. package/assets/skills/converted/claude-api/composable/mini/14-error-codes.md +256 -0
  80. package/assets/skills/converted/claude-api/composable/mini/15-prompt-caching.md +223 -0
  81. package/assets/skills/converted/claude-api/composable/mini/16-token-counting.md +56 -0
  82. package/assets/skills/converted/claude-api/composable/mini/17-tool-use-concepts.md +444 -0
  83. package/assets/skills/converted/claude-api/composable/mini/18-agent-design.md +101 -0
  84. package/assets/skills/converted/claude-api/composable/mini/19-anthropic-cli.md +246 -0
  85. package/assets/skills/converted/claude-api/composable/mini/20-model-migration.md +1301 -0
  86. package/assets/skills/converted/claude-api/composable/mini/30-managed-agents-overview.md +71 -0
  87. package/assets/skills/converted/claude-api/composable/mini/31-managed-agents-core.md +278 -0
  88. package/assets/skills/converted/claude-api/composable/mini/32-managed-agents-environments.md +219 -0
  89. package/assets/skills/converted/claude-api/composable/mini/33-managed-agents-tools.md +366 -0
  90. package/assets/skills/converted/claude-api/composable/mini/34-managed-agents-events.md +252 -0
  91. package/assets/skills/converted/claude-api/composable/mini/35-managed-agents-outcomes.md +106 -0
  92. package/assets/skills/converted/claude-api/composable/mini/36-managed-agents-multiagent.md +101 -0
  93. package/assets/skills/converted/claude-api/composable/mini/37-managed-agents-webhooks.md +123 -0
  94. package/assets/skills/converted/claude-api/composable/mini/38-managed-agents-memory.md +197 -0
  95. package/assets/skills/converted/claude-api/composable/mini/39-managed-agents-scheduled-deployments.md +146 -0
  96. package/assets/skills/converted/claude-api/composable/mini/40-managed-agents-client-patterns.md +211 -0
  97. package/assets/skills/converted/claude-api/composable/mini/41-managed-agents-onboarding.md +82 -0
  98. package/assets/skills/converted/claude-api/composable/mini/42-managed-agents-api-reference.md +441 -0
  99. package/assets/skills/converted/claude-api/composable/mini/43-managed-agents-self-hosted-sandboxes.md +174 -0
  100. package/assets/skills/converted/claude-api/composable/mini/50-python-readme.md +564 -0
  101. package/assets/skills/converted/claude-api/composable/mini/51-python-tool-use.md +590 -0
  102. package/assets/skills/converted/claude-api/composable/mini/52-python-streaming-batches-files.md +549 -0
  103. package/assets/skills/converted/claude-api/composable/mini/53-python-managed-agents.md +335 -0
  104. package/assets/skills/converted/claude-api/composable/mini/55-typescript-readme.md +404 -0
  105. package/assets/skills/converted/claude-api/composable/mini/56-typescript-tool-use.md +548 -0
  106. package/assets/skills/converted/claude-api/composable/mini/57-typescript-streaming-batches-files.md +384 -0
  107. package/assets/skills/converted/claude-api/composable/mini/58-typescript-managed-agents.md +358 -0
  108. package/assets/skills/converted/claude-api/composable/mini/60-csharp-readme.md +361 -0
  109. package/assets/skills/converted/claude-api/composable/mini/61-csharp-tool-use.md +163 -0
  110. package/assets/skills/converted/claude-api/composable/mini/62-csharp-streaming-batches-files.md +64 -0
  111. package/assets/skills/converted/claude-api/composable/mini/65-go-readme.md +185 -0
  112. package/assets/skills/converted/claude-api/composable/mini/66-go-tool-use.md +219 -0
  113. package/assets/skills/converted/claude-api/composable/mini/67-go-streaming-files.md +63 -0
  114. package/assets/skills/converted/claude-api/composable/mini/68-go-managed-agents.md +564 -0
  115. package/assets/skills/converted/claude-api/composable/mini/70-java-readme.md +237 -0
  116. package/assets/skills/converted/claude-api/composable/mini/71-java-tool-use.md +227 -0
  117. package/assets/skills/converted/claude-api/composable/mini/72-java-streaming-files.md +49 -0
  118. package/assets/skills/converted/claude-api/composable/mini/73-java-managed-agents.md +443 -0
  119. package/assets/skills/converted/claude-api/composable/mini/75-php-readme.md +173 -0
  120. package/assets/skills/converted/claude-api/composable/mini/76-php-tool-use.md +252 -0
  121. package/assets/skills/converted/claude-api/composable/mini/77-php-streaming-batches-files.md +53 -0
  122. package/assets/skills/converted/claude-api/composable/mini/78-php-managed-agents.md +443 -0
  123. package/assets/skills/converted/claude-api/composable/mini/80-ruby-readme.md +133 -0
  124. package/assets/skills/converted/claude-api/composable/mini/81-ruby-tool-use-streaming.md +56 -0
  125. package/assets/skills/converted/claude-api/composable/mini/82-ruby-managed-agents.md +394 -0
  126. package/assets/skills/converted/claude-api/composable/mini/85-curl-examples.md +255 -0
  127. package/assets/skills/converted/claude-api/composable/mini/86-curl-managed-agents.md +340 -0
  128. package/assets/skills/converted/claude-api/composable/presets/csharp.md +1151 -0
  129. package/assets/skills/converted/claude-api/composable/presets/curl.md +1154 -0
  130. package/assets/skills/converted/claude-api/composable/presets/go.md +1598 -0
  131. package/assets/skills/converted/claude-api/composable/presets/java.md +1523 -0
  132. package/assets/skills/converted/claude-api/composable/presets/php.md +1488 -0
  133. package/assets/skills/converted/claude-api/composable/presets/python.md +2605 -0
  134. package/assets/skills/converted/claude-api/composable/presets/ruby.md +1146 -0
  135. package/assets/skills/converted/claude-api/composable/presets/shared.md +6478 -0
  136. package/assets/skills/converted/claude-api/composable/presets/typescript.md +2261 -0
  137. package/assets/skills/converted/docx/composable/BUNDLE.md +617 -0
  138. package/assets/skills/converted/docx/composable/INDEX.md +12 -0
  139. package/assets/skills/converted/docx/composable/VERSION +1 -0
  140. package/assets/skills/converted/docx/composable/mini/00-core.md +26 -0
  141. package/assets/skills/converted/docx/composable/mini/01-reading-converting.md +36 -0
  142. package/assets/skills/converted/docx/composable/mini/02-creating-setup-layout.md +85 -0
  143. package/assets/skills/converted/docx/composable/mini/03-creating-elements.md +257 -0
  144. package/assets/skills/converted/docx/composable/mini/04-editing-existing.md +57 -0
  145. package/assets/skills/converted/docx/composable/mini/05-xml-reference.md +128 -0
  146. package/assets/skills/converted/internal-comms/composable/BUNDLE.md +220 -0
  147. package/assets/skills/converted/internal-comms/composable/INDEX.md +11 -0
  148. package/assets/skills/converted/internal-comms/composable/VERSION +1 -0
  149. package/assets/skills/converted/internal-comms/composable/mini/00-core.md +30 -0
  150. package/assets/skills/converted/internal-comms/composable/mini/01-3p-updates.md +49 -0
  151. package/assets/skills/converted/internal-comms/composable/mini/02-company-newsletter.md +67 -0
  152. package/assets/skills/converted/internal-comms/composable/mini/03-faq-answers.md +32 -0
  153. package/assets/skills/converted/internal-comms/composable/mini/04-general-comms.md +18 -0
  154. package/assets/skills/converted/mcp-builder/composable/BUNDLE.md +2460 -0
  155. package/assets/skills/converted/mcp-builder/composable/INDEX.md +23 -0
  156. package/assets/skills/converted/mcp-builder/composable/VERSION +1 -0
  157. package/assets/skills/converted/mcp-builder/composable/mini/00-core.md +43 -0
  158. package/assets/skills/converted/mcp-builder/composable/mini/01-workflow-research-planning.md +54 -0
  159. package/assets/skills/converted/mcp-builder/composable/mini/02-implementation-process.md +78 -0
  160. package/assets/skills/converted/mcp-builder/composable/mini/03-naming-conventions.md +33 -0
  161. package/assets/skills/converted/mcp-builder/composable/mini/04-response-formats.md +21 -0
  162. package/assets/skills/converted/mcp-builder/composable/mini/05-pagination.md +24 -0
  163. package/assets/skills/converted/mcp-builder/composable/mini/06-transport.md +47 -0
  164. package/assets/skills/converted/mcp-builder/composable/mini/07-annotations.md +20 -0
  165. package/assets/skills/converted/mcp-builder/composable/mini/08-security.md +35 -0
  166. package/assets/skills/converted/mcp-builder/composable/mini/09-error-handling.md +32 -0
  167. package/assets/skills/converted/mcp-builder/composable/mini/10-testing-and-documentation.md +21 -0
  168. package/assets/skills/converted/mcp-builder/composable/mini/11-python-implementation.md +432 -0
  169. package/assets/skills/converted/mcp-builder/composable/mini/12-python-advanced-and-checklist.md +233 -0
  170. package/assets/skills/converted/mcp-builder/composable/mini/13-node-implementation.md +717 -0
  171. package/assets/skills/converted/mcp-builder/composable/mini/14-node-advanced-and-checklist.md +200 -0
  172. package/assets/skills/converted/mcp-builder/composable/mini/15-evaluation-design.md +200 -0
  173. package/assets/skills/converted/mcp-builder/composable/mini/16-evaluation-running.md +198 -0
  174. package/assets/skills/converted/mcp-builder/composable/presets/node-server.md +1381 -0
  175. package/assets/skills/converted/mcp-builder/composable/presets/python-server.md +1129 -0
  176. package/assets/skills/converted/pdf/composable/BUNDLE.md +1284 -0
  177. package/assets/skills/converted/pdf/composable/INDEX.md +14 -0
  178. package/assets/skills/converted/pdf/composable/VERSION +1 -0
  179. package/assets/skills/converted/pdf/composable/mini/00-core.md +46 -0
  180. package/assets/skills/converted/pdf/composable/mini/01-creation.md +176 -0
  181. package/assets/skills/converted/pdf/composable/mini/02-extraction.md +178 -0
  182. package/assets/skills/converted/pdf/composable/mini/03-merge-split-manipulate.md +240 -0
  183. package/assets/skills/converted/pdf/composable/mini/04-images-ocr.md +168 -0
  184. package/assets/skills/converted/pdf/composable/mini/05-encryption.md +51 -0
  185. package/assets/skills/converted/pdf/composable/mini/06-forms.md +300 -0
  186. package/assets/skills/converted/pdf/composable/mini/07-libraries-reference.md +89 -0
  187. package/assets/skills/converted/pptx/composable/BUNDLE.md +911 -0
  188. package/assets/skills/converted/pptx/composable/INDEX.md +12 -0
  189. package/assets/skills/converted/pptx/composable/VERSION +1 -0
  190. package/assets/skills/converted/pptx/composable/mini/00-core.md +37 -0
  191. package/assets/skills/converted/pptx/composable/mini/01-reading.md +37 -0
  192. package/assets/skills/converted/pptx/composable/mini/02-creating-from-scratch.md +422 -0
  193. package/assets/skills/converted/pptx/composable/mini/03-editing-templates.md +207 -0
  194. package/assets/skills/converted/pptx/composable/mini/04-design.md +89 -0
  195. package/assets/skills/converted/pptx/composable/mini/05-qa-and-rendering.md +91 -0
  196. package/assets/skills/converted/pptx/composable/presets/creating.md +659 -0
  197. package/assets/skills/converted/pptx/composable/presets/editing.md +485 -0
  198. package/assets/skills/converted/skill-creator/composable/BUNDLE.md +1681 -0
  199. package/assets/skills/converted/skill-creator/composable/INDEX.md +21 -0
  200. package/assets/skills/converted/skill-creator/composable/VERSION +1 -0
  201. package/assets/skills/converted/skill-creator/composable/mini/00-core.md +59 -0
  202. package/assets/skills/converted/skill-creator/composable/mini/01-creating-a-skill.md +27 -0
  203. package/assets/skills/converted/skill-creator/composable/mini/02-skill-writing-guide.md +71 -0
  204. package/assets/skills/converted/skill-creator/composable/mini/03-test-cases.md +21 -0
  205. package/assets/skills/converted/skill-creator/composable/mini/04-running-and-evaluating.md +128 -0
  206. package/assets/skills/converted/skill-creator/composable/mini/05-improving-the-skill.md +30 -0
  207. package/assets/skills/converted/skill-creator/composable/mini/06-blind-comparison.md +5 -0
  208. package/assets/skills/converted/skill-creator/composable/mini/07-description-optimization.md +74 -0
  209. package/assets/skills/converted/skill-creator/composable/mini/08-packaging.md +11 -0
  210. package/assets/skills/converted/skill-creator/composable/mini/09-environment-specific.md +38 -0
  211. package/assets/skills/converted/skill-creator/composable/mini/10-scripts-and-references.md +34 -0
  212. package/assets/skills/converted/skill-creator/composable/mini/11-json-schemas.md +414 -0
  213. package/assets/skills/converted/skill-creator/composable/mini/12-agent-grader.md +225 -0
  214. package/assets/skills/converted/skill-creator/composable/mini/13-agent-comparator.md +204 -0
  215. package/assets/skills/converted/skill-creator/composable/mini/14-agent-analyzer.md +276 -0
  216. package/assets/skills/converted/skill-creator/composable/presets/authoring.md +198 -0
  217. package/assets/skills/converted/skill-creator/composable/presets/evaluating.md +1334 -0
  218. package/assets/skills/converted/skill-creator/composable/presets/optimizing.md +160 -0
  219. package/assets/skills/converted/skill-creator/composable/presets.json +5 -0
  220. package/assets/skills/meta/ccs-skill-creator/composable/BUNDLE.md +465 -0
  221. package/assets/skills/meta/ccs-skill-creator/composable/INDEX.md +8 -0
  222. package/assets/skills/meta/ccs-skill-creator/composable/VERSION +1 -0
  223. package/assets/skills/meta/ccs-skill-creator/composable/mini/00-core.md +46 -0
  224. package/assets/skills/meta/ccs-skill-creator/composable/mini/01-create-new-skill.md +167 -0
  225. package/assets/skills/meta/ccs-skill-creator/composable/mini/02-convert-existing-skill.md +120 -0
  226. package/assets/skills/meta/ccs-skill-creator/composable/mini/03-review-and-maintain.md +112 -0
  227. package/assets/skills/sources/anthropic/PROVENANCE.md +3 -0
  228. package/assets/skills/sources/anthropic/claude-api/LICENSE.txt +202 -0
  229. package/assets/skills/sources/anthropic/docx/LICENSE.txt +30 -0
  230. package/assets/skills/sources/anthropic/internal-comms/LICENSE.txt +202 -0
  231. package/assets/skills/sources/anthropic/mcp-builder/LICENSE.txt +202 -0
  232. package/assets/skills/sources/anthropic/pdf/LICENSE.txt +30 -0
  233. package/assets/skills/sources/anthropic/pptx/LICENSE.txt +30 -0
  234. package/assets/skills/sources/anthropic/skill-creator/LICENSE.txt +202 -0
  235. package/assets/skills/sources/financial-analyst/PROVENANCE.md +1 -0
  236. package/assets/tools/hive.py +728 -0
  237. package/dist/cli.js +7494 -0
  238. package/package.json +40 -0
@@ -0,0 +1,441 @@
1
+ # Managed Agents — Endpoint Reference
2
+
3
+ All endpoints require `x-api-key` and `anthropic-version: 2023-06-01` headers. Managed Agents endpoints additionally require the `anthropic-beta` header.
4
+
5
+ ## Beta Headers
6
+
7
+ ```
8
+ anthropic-beta: managed-agents-2026-04-01
9
+ ```
10
+
11
+ The SDK adds this header automatically for all `client.beta.{agents,environments,sessions,vaults,memory_stores,deployments,deployment_runs}.*` calls. Skills endpoints use `skills-2025-10-02`; Files endpoints use `files-api-2025-04-14`.
12
+
13
+ ---
14
+
15
+ ## SDK Method Reference
16
+
17
+ All resources are under the `beta` namespace. Python and TypeScript share identical method names.
18
+
19
+ | Resource | Python / TypeScript (`client.beta.*`) | Go (`client.Beta.*`) |
20
+ | --- | --- | --- |
21
+ | Agents | `agents.create` / `retrieve` / `update` / `list` / `archive` | `Agents.New` / `Get` / `Update` / `List` / `Archive` |
22
+ | Agent Versions | `agents.versions.list` | `Agents.Versions.List` |
23
+ | Environments | `environments.create` / `retrieve` / `update` / `list` / `delete` / `archive` | `Environments.New` / `Get` / `Update` / `List` / `Delete` / `Archive` |
24
+ | Environment Work (self-hosted) | `environments.work.poller` / `stats` / `stop` | See `shared/managed-agents-self-hosted-sandboxes.md` |
25
+ | Sessions | `sessions.create` / `retrieve` / `update` / `list` / `delete` / `archive` | `Sessions.New` / `Get` / `Update` / `List` / `Delete` / `Archive` |
26
+ | Session Events | `sessions.events.list` / `send` / `stream` | `Sessions.Events.List` / `Send` / `StreamEvents` |
27
+ | Session Threads | `sessions.threads.list` / `retrieve` / `archive`; `sessions.threads.events.list` / `stream` | `Sessions.Threads.List` / `Get` / `Archive`; `Sessions.Threads.Events.List` / `StreamEvents` |
28
+ | Session Resources | `sessions.resources.add` / `retrieve` / `update` / `list` / `delete` | `Sessions.Resources.Add` / `Get` / `Update` / `List` / `Delete` |
29
+ | Deployments | `deployments.create` / `pause` / `unpause` / `archive` / `run` | Not yet documented — WebFetch the SDK repo (`shared/live-sources.md`) |
30
+ | Deployment Runs | `deployment_runs.list` / `retrieve` (TS: `deploymentRuns.*`) | Not yet documented — WebFetch the SDK repo (`shared/live-sources.md`) |
31
+ | Vaults | `vaults.create` / `retrieve` / `update` / `list` / `delete` / `archive` | `Vaults.New` / `Get` / `Update` / `List` / `Delete` / `Archive` |
32
+ | Credentials | `vaults.credentials.create` / `retrieve` / `update` / `list` / `delete` / `archive` / `mcp_oauth_validate` | `Vaults.Credentials.New` / `Get` / `Update` / `List` / `Delete` / `Archive` / `McpOauthValidate` |
33
+ | Memory Stores | `memory_stores.create` / `retrieve` / `update` / `list` / `delete` / `archive` | `MemoryStores.New` / `Get` / `Update` / `List` / `Delete` / `Archive` |
34
+ | Memories | `memory_stores.memories.create` / `retrieve` / `update` / `list` / `delete` | `MemoryStores.Memories.New` / `Get` / `Update` / `List` / `Delete` |
35
+ | Memory Versions | `memory_stores.memory_versions.list` / `retrieve` / `redact` | `MemoryStores.MemoryVersions.List` / `Get` / `Redact` |
36
+
37
+ **Naming quirks to watch for:**
38
+ - Agents and Session Threads have **no delete** — only `archive`. Archive is **permanent**: the agent becomes read-only, new sessions cannot reference it, and there is no unarchive. Confirm with the user before archiving a production agent. Environments, Sessions, Vaults, Credentials, and Memory Stores have both `delete` and `archive`; Session Resources, Files, Skills, and Memories are `delete`-only; Memory Versions have neither — only `redact`.
39
+ - Session resources use `add` (not `create`).
40
+ - Go's event stream is `StreamEvents` (not `Stream`).
41
+ - The self-hosted worker is **not** under `client.beta.*` — it's `EnvironmentWorker` from `anthropic.lib.environments` / `@anthropic-ai/sdk/helpers/beta/environments`; only `environments.work.poller/stats/stop` are client methods.
42
+
43
+ **Agent shorthand:** `agent` on session create accepts three forms — a bare string (`agent="agent_abc123"`, latest version), a pinned reference `{type: "agent", id, version}`, or `{type: "agent_with_overrides", id, version?, model?, system?, tools?, mcp_servers?, skills?}` to override those fields for this session only (see `shared/managed-agents-core.md` → Override agent configuration for a session).
44
+
45
+ **Model shorthand:** `model` on agent create accepts either a bare string (`model="claude-opus-4-8"` — uses `standard` speed) or the full config object (`{id: "claude-opus-4-8", speed: "fast"}`). Note: `speed: "fast"` is supported only on Opus 4.8 and Opus 4.7. Opus 4.7 fast mode is deprecated; after removal, `speed: "fast"` on Opus 4.7 returns an error. Opus 4.8 is the durable fast-capable tier.
46
+
47
+ ---
48
+
49
+ ## Agents
50
+
51
+ **Step one of every flow.** Sessions require a pre-created agent — there is no inline agent config under `managed-agents-2026-04-01`.
52
+
53
+ | Method | Path | Operation | Description |
54
+ | -------- | ------------------------------------------------ | ---------------- | ---------------------------------------- |
55
+ | `GET` | `/v1/agents` | ListAgents | List agents |
56
+ | `POST` | `/v1/agents` | CreateAgent | Create a saved agent configuration |
57
+ | `GET` | `/v1/agents/{agent_id}` | GetAgent | Get agent details |
58
+ | `POST` | `/v1/agents/{agent_id}` | UpdateAgent | Update agent configuration |
59
+ | `POST` | `/v1/agents/{agent_id}/archive` | ArchiveAgent | Archive an agent. Makes it **read-only**; existing sessions continue, new sessions cannot reference it. No unarchive — this is the terminal state. |
60
+ | `GET` | `/v1/agents/{agent_id}/versions` | ListAgentVersions | List agent versions |
61
+
62
+ ## Sessions
63
+
64
+ | Method | Path | Operation | Description |
65
+ | -------- | ------------------------------------------------ | ---------------- | ---------------------------------------- |
66
+ | `GET` | `/v1/sessions` | ListSessions | List sessions (paginated) |
67
+ | `POST` | `/v1/sessions` | CreateSession | Create a new session |
68
+ | `GET` | `/v1/sessions/{session_id}` | GetSession | Get session details |
69
+ | `POST` | `/v1/sessions/{session_id}` | UpdateSession | Update session `metadata`/`title`, or `agent.tools`/`agent.mcp_servers`/`vault_ids` (session-local override; session must be `idle`). See `shared/managed-agents-core.md` → Updating the agent configuration mid-session. |
70
+ | `DELETE` | `/v1/sessions/{session_id}` | DeleteSession | Delete a session |
71
+ | `POST` | `/v1/sessions/{session_id}/archive` | ArchiveSession | Archive a session |
72
+
73
+ ## Events
74
+
75
+ | Method | Path | Operation | Description |
76
+ | -------- | ------------------------------------------------ | ---------------- | ---------------------------------------- |
77
+ | `GET` | `/v1/sessions/{session_id}/events` | ListEvents | List events (polling, paginated) |
78
+ | `POST` | `/v1/sessions/{session_id}/events` | SendEvents | Send events (user message, tool result) |
79
+ | `GET` | `/v1/sessions/{session_id}/events/stream` | StreamEvents | Stream events via SSE. Optional `event_deltas[]=agent.message` / `agent.thinking` opts in to live-preview `event_start`/`event_delta` events — see `shared/managed-agents-events.md` § Live previews. |
80
+
81
+ ## Session Threads
82
+
83
+ Per-subagent event streams in multiagent sessions. See `shared/managed-agents-multiagent.md`.
84
+
85
+ | Method | Path | Operation | Description |
86
+ | -------- | ------------------------------------------------ | ---------------- | ---------------------------------------- |
87
+ | `GET` | `/v1/sessions/{session_id}/threads` | ListThreads | List threads (paginated) |
88
+ | `GET` | `/v1/sessions/{session_id}/threads/{thread_id}` | GetThread | Retrieve one thread (carries `agent` snapshot, `status`, `parent_thread_id`, `stats`, `usage`) |
89
+ | `POST` | `/v1/sessions/{session_id}/threads/{thread_id}/archive` | ArchiveThread | Archive a thread |
90
+ | `GET` | `/v1/sessions/{session_id}/threads/{thread_id}/events` | ListThreadEvents | List past events for one thread (paginated) |
91
+ | `GET` | `/v1/sessions/{session_id}/threads/{thread_id}/stream` | StreamThreadEvents | Stream one thread via SSE (SDK: `threads.events.stream`) |
92
+
93
+ ## Session Resources
94
+
95
+ | Method | Path | Operation | Description |
96
+ | -------- | ------------------------------------------------------- | ---------------- | ---------------------------------------- |
97
+ | `GET` | `/v1/sessions/{session_id}/resources` | ListResources | List resources attached to session |
98
+ | `POST` | `/v1/sessions/{session_id}/resources` | AddResource | Attach `file` or `github_repository` resource (SDK method: `add`, not `create`). `memory_store` resources attach at session-create time only. |
99
+ | `GET` | `/v1/sessions/{session_id}/resources/{resource_id}` | GetResource | Get a single resource |
100
+ | `POST` | `/v1/sessions/{session_id}/resources/{resource_id}` | UpdateResource | Update resource |
101
+ | `DELETE` | `/v1/sessions/{session_id}/resources/{resource_id}` | DeleteResource | Remove resource from session |
102
+
103
+ ## Environments
104
+
105
+ | Method | Path | Operation | Description |
106
+ | -------- | ---------------------------------------------------------------- | -------------------- | ----------------------------------- |
107
+ | `POST` | `/v1/environments` | CreateEnvironment | Create environment |
108
+ | `GET` | `/v1/environments` | ListEnvironments | List environments |
109
+ | `GET` | `/v1/environments/{environment_id}` | GetEnvironment | Get environment details |
110
+ | `POST` | `/v1/environments/{environment_id}` | UpdateEnvironment | Update environment |
111
+ | `DELETE` | `/v1/environments/{environment_id}` | DeleteEnvironment | Delete environment. Returns 204. |
112
+ | `POST` | `/v1/environments/{environment_id}/archive` | ArchiveEnvironment | Archive environment. Makes it **read-only**; existing sessions continue, new sessions cannot reference it. No unarchive — this is the terminal state. |
113
+ | `GET` | `/v1/environments/{environment_id}/work/stats` | WorkQueueStats | Self-hosted work-queue depth/pending/workers. `x-api-key` auth. See `shared/managed-agents-self-hosted-sandboxes.md`. |
114
+ | `POST` | `/v1/environments/{environment_id}/work/{work_id}/stop` | StopWork | Self-hosted: stop a claimed work item. `x-api-key` auth. |
115
+
116
+ For `type: "self_hosted"`, `config` is the bare `{"type": "self_hosted"}` — `networking` and `packages` do not apply.
117
+
118
+ ## Deployments
119
+
120
+ Scheduled deployments (`depl_` IDs) run an agent on a recurring cron schedule — each firing creates a session. See `shared/managed-agents-scheduled-deployments.md` for the conceptual guide (cron/DST semantics, failure behavior, lifecycle).
121
+
122
+ | Method | Path | Operation | Description |
123
+ | -------- | ------------------------------------------------ | ---------------- | ---------------------------------------- |
124
+ | `POST` | `/v1/deployments` | CreateDeployment | Create a scheduled deployment |
125
+ | `POST` | `/v1/deployments/{deployment_id}/pause` | PauseDeployment | Suppress scheduled triggers (reversible; manual runs still allowed) |
126
+ | `POST` | `/v1/deployments/{deployment_id}/unpause` | UnpauseDeployment | Resume from the next occurrence (no backfill) |
127
+ | `POST` | `/v1/deployments/{deployment_id}/archive` | ArchiveDeployment | **Terminal** — schedule stops, deployment becomes immutable |
128
+ | `POST` | `/v1/deployments/{deployment_id}/run` | RunDeployment | Trigger a manual run immediately (`trigger_context.type: "manual"`); works while paused |
129
+
130
+ ## Deployment Runs
131
+
132
+ Each trigger attempt (scheduled or manual) writes a `deployment_run` record (`drun_` IDs) carrying either the created `session_id` or an `error.type` (`environment_archived`, `agent_archived`, `vault_not_found`, `session_rate_limited`, `service_unavailable`).
133
+
134
+ | Method | Path | Operation | Description |
135
+ | -------- | ------------------------------------------------ | ---------------- | ---------------------------------------- |
136
+ | `GET` | `/v1/deployment_runs?deployment_id=...` | ListDeploymentRuns | List runs for a deployment (paginated; filter failures with `has_error=true`) |
137
+ | `GET` | `/v1/deployment_runs/{deployment_run_id}` | GetDeploymentRun | Retrieve a single run by ID (a `deployment_run.*` webhook event carries this as `data.id`) |
138
+
139
+ ## Vaults
140
+
141
+ Vaults store credentials that Anthropic manages on your behalf — MCP credentials (OAuth with auto-refresh, or static bearer tokens) and `environment_variable` credentials substituted into outbound requests at egress. Attach to sessions via `vault_ids`. See `managed-agents-tools.md` §Vaults for the conceptual guide and credential shapes.
142
+
143
+ | Method | Path | Operation | Description |
144
+ | -------- | ------------------------------------------------ | ---------------- | ---------------------------------------- |
145
+ | `POST` | `/v1/vaults` | CreateVault | Create a vault |
146
+ | `GET` | `/v1/vaults` | ListVaults | List vaults |
147
+ | `GET` | `/v1/vaults/{vault_id}` | GetVault | Get vault details |
148
+ | `POST` | `/v1/vaults/{vault_id}` | UpdateVault | Update vault |
149
+ | `DELETE` | `/v1/vaults/{vault_id}` | DeleteVault | Delete vault |
150
+ | `POST` | `/v1/vaults/{vault_id}/archive` | ArchiveVault | Archive vault |
151
+
152
+ ## Credentials
153
+
154
+ Credentials are individual secrets stored inside a vault.
155
+
156
+ | Method | Path | Operation | Description |
157
+ | -------- | ----------------------------------------------------------------- | ------------------ | ---------------------------- |
158
+ | `POST` | `/v1/vaults/{vault_id}/credentials` | CreateCredential | Create a credential |
159
+ | `GET` | `/v1/vaults/{vault_id}/credentials` | ListCredentials | List credentials in vault |
160
+ | `GET` | `/v1/vaults/{vault_id}/credentials/{credential_id}` | GetCredential | Get credential metadata |
161
+ | `POST` | `/v1/vaults/{vault_id}/credentials/{credential_id}` | UpdateCredential | Update credential |
162
+ | `DELETE` | `/v1/vaults/{vault_id}/credentials/{credential_id}` | DeleteCredential | Delete credential |
163
+ | `POST` | `/v1/vaults/{vault_id}/credentials/{credential_id}/archive` | ArchiveCredential | Archive credential |
164
+ | `POST` | `/v1/vaults/{vault_id}/credentials/{credential_id}/mcp_oauth_validate` | McpOauthValidate | Validate an MCP OAuth credential |
165
+
166
+ ## Memory Stores
167
+
168
+ Workspace-scoped persistent memory that survives across sessions. Attach to a session via a `{"type": "memory_store", "memory_store_id": ...}` entry in `resources[]` (session-create time only). See `shared/managed-agents-memory.md` for the conceptual guide, the FUSE-mount agent interface, preconditions, and versioning.
169
+
170
+ | Method | Path | Operation | Description |
171
+ | -------- | ------------------------------------------------ | ------------------ | ---------------------------------------- |
172
+ | `POST` | `/v1/memory_stores` | CreateMemoryStore | Create a store (`name`, `description`, `metadata`) |
173
+ | `GET` | `/v1/memory_stores` | ListMemoryStores | List stores (`include_archived`, `created_at_{gte,lte}`) |
174
+ | `GET` | `/v1/memory_stores/{memory_store_id}` | GetMemoryStore | Get store details |
175
+ | `POST` | `/v1/memory_stores/{memory_store_id}` | UpdateMemoryStore | Update store |
176
+ | `DELETE` | `/v1/memory_stores/{memory_store_id}` | DeleteMemoryStore | Delete store |
177
+ | `POST` | `/v1/memory_stores/{memory_store_id}/archive` | ArchiveMemoryStore | Archive store. Makes it **read-only**; existing sessions continue, new sessions cannot reference it. No unarchive. |
178
+
179
+ ## Memories
180
+
181
+ Individual text documents inside a store (≤ 100KB each). `create` creates at a `path` and returns `409` (`memory_path_conflict_error`, with `conflicting_memory_id`) if the path is occupied; `update` mutates by `mem_...` ID (rename and/or content). Only `update` accepts a `precondition` (`{"type": "content_sha256", "content_sha256": ...}`) — on mismatch returns `409` (`memory_precondition_failed_error`). List endpoints accept `view: "basic"|"full"` (controls whether `content` is populated; `retrieve` defaults to `full`).
182
+
183
+ | Method | Path | Operation | Description |
184
+ | -------- | ----------------------------------------------------------------- | -------------- | ---------------------------------------- |
185
+ | `GET` | `/v1/memory_stores/{memory_store_id}/memories` | ListMemories | Returns `Memory \| MemoryPrefix`; filter by `path_prefix`, `depth`, `order_by`/`order` |
186
+ | `POST` | `/v1/memory_stores/{memory_store_id}/memories` | CreateMemory | Create at `path` (SDK: `memories.create`); `409 memory_path_conflict_error` if occupied |
187
+ | `GET` | `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` | GetMemory | Read one memory (defaults to `view="full"`) |
188
+ | `PATCH` | `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` | UpdateMemory | Change `content`, `path`, or both by ID; optional `precondition` |
189
+ | `DELETE` | `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` | DeleteMemory | Delete (optional `expected_content_sha256`) |
190
+
191
+ ## Memory Versions
192
+
193
+ Immutable per-mutation snapshots (`memver_...`) — the audit and rollback surface. `operation` ∈ `created` / `modified` / `deleted`.
194
+
195
+ | Method | Path | Operation | Description |
196
+ | -------- | ----------------------------------------------------------------------------- | --------------------- | ---------------------------------------- |
197
+ | `GET` | `/v1/memory_stores/{memory_store_id}/memory_versions` | ListMemoryVersions | Newest-first; filter by `memory_id`, `operation`, `session_id`, `api_key_id`, `created_at_{gte,lte}` |
198
+ | `GET` | `/v1/memory_stores/{memory_store_id}/memory_versions/{version_id}` | GetMemoryVersion | List fields + full `content` |
199
+ | `POST` | `/v1/memory_stores/{memory_store_id}/memory_versions/{version_id}/redact` | RedactMemoryVersion | Clear `content`/`content_sha256`/`content_size_bytes`/`path`; preserve actor + timestamps |
200
+
201
+ ## Files
202
+
203
+ | Method | Path | Operation | Description |
204
+ | -------- | ------------------------------------------------ | ---------------- | ---------------------------------------- |
205
+ | `POST` | `/v1/files` | UploadFile | Upload a file |
206
+ | `GET` | `/v1/files` | ListFiles | List files |
207
+ | `GET` | `/v1/files/{file_id}` | GetFile | Get file metadata (SDK method: `retrieve_metadata`) |
208
+ | `GET` | `/v1/files/{file_id}/content` | DownloadFile | Download file content |
209
+ | `DELETE` | `/v1/files/{file_id}` | DeleteFile | Delete a file |
210
+
211
+ ## Skills
212
+
213
+ | Method | Path | Operation | Description |
214
+ | -------- | --------------------------------------------------------------- | ------------------ | ---------------------------- |
215
+ | `POST` | `/v1/skills` | CreateSkill | Create a skill |
216
+ | `GET` | `/v1/skills` | ListSkills | List skills |
217
+ | `GET` | `/v1/skills/{skill_id}` | GetSkill | Get skill details |
218
+ | `DELETE` | `/v1/skills/{skill_id}` | DeleteSkill | Delete a skill |
219
+ | `POST` | `/v1/skills/{skill_id}/versions` | CreateVersion | Create skill version |
220
+ | `GET` | `/v1/skills/{skill_id}/versions` | ListVersions | List skill versions |
221
+ | `GET` | `/v1/skills/{skill_id}/versions/{version}` | GetVersion | Get skill version |
222
+ | `DELETE` | `/v1/skills/{skill_id}/versions/{version}` | DeleteVersion | Delete skill version |
223
+
224
+ ---
225
+
226
+ ## Request/Response Schema Quick Reference
227
+
228
+ ### CreateAgent Request Body
229
+
230
+ **Always start here.** `model`, `system`, `tools`, `mcp_servers`, `skills` are top-level fields on this object — they do NOT go on the session.
231
+
232
+ ```json
233
+ {
234
+ "name": "string (required, 1-256 chars)",
235
+ "model": "claude-opus-4-8 (required — bare string, or {id, speed} object)",
236
+ "description": "string (optional, up to 2048 chars)",
237
+ "system": "string (optional, up to 100,000 chars)",
238
+ "tools": [
239
+ { "type": "agent_toolset_20260401" }
240
+ ],
241
+ "skills": [
242
+ { "type": "anthropic", "skill_id": "xlsx" },
243
+ { "type": "custom", "skill_id": "skill_abc123", "version": "1" }
244
+ ],
245
+ "mcp_servers": [
246
+ {
247
+ "type": "url",
248
+ "name": "github",
249
+ "url": "https://api.githubcopilot.com/mcp/"
250
+ }
251
+ ],
252
+ "multiagent": {
253
+ "type": "coordinator",
254
+ "agents": [
255
+ "agent_abc123",
256
+ { "type": "agent", "id": "agent_def456", "version": 4 },
257
+ { "type": "self" }
258
+ ]
259
+ },
260
+ "metadata": {
261
+ "key": "value (max 16 pairs, keys ≤64 chars, values ≤512 chars)"
262
+ }
263
+ }
264
+ ```
265
+
266
+ > Limits: `tools` max 128, `skills` max 20, `mcp_servers` max 20 (unique names). `multiagent.agents` 1–20 entries (string ID | `{type:"agent",id,version?}` | `{type:"self"}`) — see `shared/managed-agents-multiagent.md`.
267
+
268
+ ### CreateSession Request Body
269
+
270
+ ```json
271
+ {
272
+ "agent": "agent_abc123 (required — string shorthand for latest version, or {type: \"agent\", id, version} object)",
273
+ "environment_id": "env_abc123 (required)",
274
+ "title": "string (optional)",
275
+ "resources": [
276
+ {
277
+ "type": "github_repository",
278
+ "url": "https://github.com/owner/repo (required)",
279
+ "authorization_token": "ghp_... (required)",
280
+ "mount_path": "/workspace/repo (optional — defaults to /workspace/<repo-name>)",
281
+ "checkout": { "type": "branch", "name": "main" }
282
+ }
283
+ ],
284
+ "vault_ids": ["vlt_abc123 (optional — vault credentials: MCP auth + environment variables)"],
285
+ "metadata": {
286
+ "key": "value"
287
+ }
288
+ }
289
+ ```
290
+
291
+ > The `agent` field accepts a string ID, `{type: "agent", id, version}`, or `{type: "agent_with_overrides", id, version?, ...}` for session-local overrides of `model`/`system`/`tools`/`mcp_servers`/`skills`. Outside the overrides form, those fields live on the agent, not here.
292
+ >
293
+ > **`checkout`** accepts `{type: "branch", name: "..."}` or `{type: "commit", sha: "..."}`. Omit for the repo's default branch.
294
+
295
+ ### CreateEnvironment Request Body
296
+
297
+ ```json
298
+ {
299
+ "name": "string (required)",
300
+ "description": "string (optional)",
301
+ "config": {
302
+ "type": "cloud | self_hosted",
303
+ "networking": {
304
+ "type": "unrestricted | limited (union — see SDK types)"
305
+ },
306
+ "packages": { }
307
+ },
308
+ "metadata": { "key": "value" }
309
+ }
310
+ ```
311
+
312
+ ### CreateDeployment Request Body
313
+
314
+ ```json
315
+ {
316
+ "name": "Weekly compliance scan",
317
+ "agent": "agent_abc123 (required — same shapes as CreateSession)",
318
+ "environment_id": "env_abc123 (required)",
319
+ "initial_events": [
320
+ { "type": "user.message", "content": [{ "type": "text", "text": "Run the weekly compliance scan." }] }
321
+ ],
322
+ "schedule": {
323
+ "type": "cron",
324
+ "expression": "0 20 * * 5",
325
+ "timezone": "America/New_York"
326
+ }
327
+ }
328
+ ```
329
+
330
+ > Optional session config (`resources`, `vault_ids`, etc.) is supported the same way as on CreateSession. Response includes `status`, `paused_reason`, and `schedule.upcoming_runs_at` (next fire times). See `shared/managed-agents-scheduled-deployments.md`.
331
+
332
+ ### SendEvents Request Body
333
+
334
+ ```json
335
+ {
336
+ "events": [
337
+ {
338
+ "type": "user.message",
339
+ "content": [
340
+ {
341
+ "type": "text",
342
+ "text": "Hello"
343
+ }
344
+ ]
345
+ }
346
+ ]
347
+ }
348
+ ```
349
+
350
+ > `system.message` events (update the system prompt between turns) use the same envelope with `type: "system.message"` — Claude Opus 4.8 only; see `shared/managed-agents-events.md` § Updating the system prompt mid-session.
351
+
352
+ ### Define Outcome Event
353
+
354
+ ```json
355
+ {
356
+ "type": "user.define_outcome",
357
+ "description": "Build a DCF model for Costco in .xlsx",
358
+ "rubric": { "type": "file", "file_id": "file_01..." },
359
+ "max_iterations": 5
360
+ }
361
+ ```
362
+
363
+ > `rubric` is required: `{type: "text", content}` or `{type: "file", file_id}`. `max_iterations` default 3, max 20. Echoed back with `outcome_id` + `processed_at`. See `shared/managed-agents-outcomes.md`.
364
+
365
+ ### Tool Result Event
366
+
367
+ ```json
368
+ {
369
+ "type": "user.custom_tool_result",
370
+ "custom_tool_use_id": "sevt_abc123",
371
+ "content": [{ "type": "text", "text": "Result data" }],
372
+ "is_error": false
373
+ }
374
+ ```
375
+
376
+ ---
377
+
378
+ ## Error Handling
379
+
380
+ Managed Agents endpoints use the standard Anthropic API error format. Errors are returned with an HTTP status code and a JSON body containing `type`, `error`, and `request_id`:
381
+
382
+ ```json
383
+ {
384
+ "type": "error",
385
+ "error": {
386
+ "type": "invalid_request_error",
387
+ "message": "Description of what went wrong"
388
+ },
389
+ "request_id": "req_011CRv1W3XQ8XpFikNYG7RnE"
390
+ }
391
+ ```
392
+
393
+ Include the `request_id` when reporting issues to Anthropic — it lets us trace the request end-to-end. The inner `error.type` is one of the following:
394
+
395
+ | Status | Error type | Description |
396
+ |---|---|---|
397
+ | 400 | `invalid_request_error` | The request was malformed or missing required parameters |
398
+ | 401 | `authentication_error` | Invalid or missing API key |
399
+ | 403 | `permission_error` | The API key doesn't have permission for this operation |
400
+ | 404 | `not_found_error` | The requested resource doesn't exist |
401
+ | 409 | `invalid_request_error` | The request conflicts with the resource's current state (e.g., sending to an archived session) |
402
+ | 413 | `request_too_large` | The request body exceeds the maximum allowed size |
403
+ | 429 | `rate_limit_error` | Too many requests — check rate limit headers for retry timing |
404
+ | 500 | `api_error` | An internal server error occurred |
405
+ | 529 | `overloaded_error` | The service is temporarily overloaded — retry with backoff |
406
+
407
+ Note that `409 Conflict` carries `error.type: "invalid_request_error"` (there is no separate `conflict_error` type); inspect both the HTTP status and the `message` to distinguish conflicts from other invalid requests.
408
+
409
+ ---
410
+
411
+ ## Pagination
412
+
413
+ Most Managed Agents list endpoints use the `page` / `next_page` cursor scheme:
414
+
415
+ | Field | Where | Notes |
416
+ |---|---|---|
417
+ | `limit` | query | Max items per page |
418
+ | `page` | query | Opaque cursor from a previous response — pass a `next_page` or `prev_page` value here |
419
+ | `order` | query | `asc` / `desc` on endpoints that support sorting. A cursor encodes the `order` of the request that produced it — reusing it with a different `order` returns 400. Other params (filters, `limit`) can change between paginated requests. |
420
+ | `next_page` | response | Cursor for the next page; `null` when there are no more results |
421
+ | `prev_page` | response | Cursor for the previous page on endpoints that support backward pagination — currently **only `GET /v1/sessions`**. `null` on the first page. On endpoints that don't support it, the field is **absent** (not `null`). |
422
+
423
+ Every SDK exposes an auto-paginating iterator that follows `next_page`. In Python and TypeScript, iterate the list result directly; the other SDKs expose the iterator via a separate method (iterating the plain list result returns one page). SDK auto-pagination is **forward-only** — to go back a page, read `prev_page` from the response and pass it back as the `page` parameter yourself.
424
+
425
+ > ⚠️ Some endpoints use a **different** cursor scheme: Message Batches, Files, Models, and several Admin API endpoints take `after_id`/`before_id` and return `has_more`/`first_id`/`last_id` instead of `page`/`next_page`. Some `page`-scheme endpoints (e.g. `GET /v1/skills`) also return a `has_more` boolean alongside `next_page`. Check the endpoint's reference page for its exact pagination fields.
426
+
427
+ ---
428
+
429
+ ## Rate Limits
430
+
431
+ Managed Agents endpoints have per-organization request-per-minute (RPM) limits, separate from your [Messages API token limits](https://platform.claude.com/docs/en/api/rate-limits). Model inference inside a session still draws from your organization's standard ITPM/OTPM limits.
432
+
433
+ | Endpoint group | Scope | RPM | Max concurrent |
434
+ |---|---|---|---|
435
+ | Create operations (Agents, Sessions, Vaults) | organization | 300 | — |
436
+ | All other operations (Agents, Sessions, Vaults) | organization | 600 | — |
437
+ | All operations (Environments) | organization | 60 | 5 |
438
+
439
+ Files and Skills endpoints use the standard tier-based [rate limits](https://platform.claude.com/docs/en/api/rate-limits).
440
+
441
+ When a limit is exceeded the API returns `429` with a `rate_limit_error` (see [Error Handling](#error-handling) for the response envelope) and a `retry-after` header indicating how many seconds to wait before retrying. The Anthropic SDK reads this header and retries automatically.
@@ -0,0 +1,174 @@
1
+ # Managed Agents — Self-Hosted Sandboxes
2
+
3
+ With `config.type: "self_hosted"`, the **agent loop stays on Anthropic's orchestration layer** but **tool execution moves to infrastructure you control** — bash, file ops, and code run inside your container, so filesystem contents and network egress never leave your environment. Contrast with `config.type: "cloud"`, where Anthropic runs the container. Connectivity is **outbound-only**: your worker long-polls Anthropic's work queue; Anthropic never dials into your network.
4
+
5
+ ## Flow
6
+
7
+ ```
8
+ 1. Create environment: config: {type: "self_hosted"} → env_...
9
+ 2. Generate environment key (Console, on the environment page) → sk-ant-oat01-... as ANTHROPIC_ENVIRONMENT_KEY
10
+ 3. Run a worker: EnvironmentWorker.run() or ant beta:worker poll
11
+ 4. Sessions reference environment_id=env_... exactly as for cloud
12
+ ```
13
+
14
+ ## Create the environment
15
+
16
+ ```python
17
+ client = anthropic.Anthropic()
18
+
19
+ environment = client.beta.environments.create(
20
+ name="self-hosted", config={"type": "self_hosted"}
21
+ )
22
+ ```
23
+
24
+ `{"type": "self_hosted"}` is the entire config — there are no pool, capacity, or networking sub-fields; you control those on your side.
25
+
26
+ ## Run a worker — SDK (primary path)
27
+
28
+ `EnvironmentWorker` wraps the poll → dispatch → tool-execute loop. `.run()` is the always-on loop; `.run_one()` / `.runOne()` handles one work item (for webhook-driven wake).
29
+
30
+ **Python — always-on:**
31
+
32
+ ```python
33
+ import asyncio
34
+ import os
35
+ from anthropic import AsyncAnthropic
36
+ from anthropic.lib.environments import EnvironmentWorker
37
+
38
+
39
+ async def main() -> None:
40
+ environment_key = os.environ["ANTHROPIC_ENVIRONMENT_KEY"]
41
+ environment_id = os.environ["ANTHROPIC_ENVIRONMENT_ID"]
42
+ async with AsyncAnthropic(auth_token=environment_key) as client:
43
+ await EnvironmentWorker(
44
+ client,
45
+ environment_id=environment_id,
46
+ environment_key=environment_key,
47
+ workdir="/workspace",
48
+ ).run()
49
+
50
+
51
+ asyncio.run(main())
52
+ ```
53
+
54
+ **TypeScript — always-on:**
55
+
56
+ ```typescript
57
+ import Anthropic from "@anthropic-ai/sdk";
58
+ import { EnvironmentWorker } from "@anthropic-ai/sdk/helpers/beta/environments";
59
+
60
+ const environmentKey = process.env.ANTHROPIC_ENVIRONMENT_KEY!;
61
+ const environmentId = process.env.ANTHROPIC_ENVIRONMENT_ID!;
62
+ const client = new Anthropic({ authToken: environmentKey });
63
+ const ctrl = new AbortController();
64
+ process.once("SIGTERM", () => ctrl.abort());
65
+
66
+ await new EnvironmentWorker({
67
+ client,
68
+ environmentId,
69
+ environmentKey,
70
+ workdir: "/workspace",
71
+ signal: ctrl.signal
72
+ }).run();
73
+ ```
74
+
75
+ **Customizing tools.** `EnvironmentWorker` runs the built-in toolset by default. To add or replace tools, use `AgentToolContext(workdir=, client=, session_id=)` with `beta_agent_toolset(env)` / `betaAgentToolset(env)` and pass the resulting tools to the lower-level `tool_runner()`. Skills attached to the agent are downloaded into `{workdir}/skills/<name>/` before tool calls begin (`AgentToolContext` handles this when given `client` and `session_id`). Downloaded skill files are marked executable automatically by the CLI and SDK; if you implement skills download yourself, you set permissions.
76
+
77
+ > **Runtime deps:** the SDK helpers require `/bin/bash` at that exact path. The TypeScript SDK additionally requires `unzip`, `tar`, and Node.js 22+. These are resolved at fixed paths and do **not** respect `PATH` overrides.
78
+
79
+ ## Run a worker — `ant` CLI (fixed tools)
80
+
81
+ The `ant` CLI ships a worker with the fixed built-in toolset (`bash`, `read`, `write`, `edit`, `glob`, `grep`). Install per `shared/anthropic-cli.md`, then:
82
+
83
+ ```sh
84
+ export ANTHROPIC_ENVIRONMENT_KEY=sk-ant-oat01-...
85
+ ant beta:worker poll --environment-id env_... --workdir /workspace
86
+ ```
87
+
88
+ - `--workdir` is the directory tools operate in (default `.`); tool calls are sandboxed to it.
89
+ - `--environment-key` overrides the env var.
90
+ - `--on-work <script>` runs your script per work item (e.g. to spin a fresh container per session — see Container orchestration below).
91
+ - `--unrestricted-paths`, `--max-idle` (default `60s`), `--log-format` — see `ant beta:worker poll --help`.
92
+ - Flags fall back to env vars (`ANTHROPIC_ENVIRONMENT_ID`, `ANTHROPIC_ENVIRONMENT_KEY`).
93
+ - Exits cleanly on SIGTERM/SIGINT after draining in-flight work.
94
+ - **Fixed toolset** — for custom tools, use the SDK worker above.
95
+
96
+ Inside an `--on-work` container, run `ant beta:worker run --workdir <dir>` as the entrypoint.
97
+
98
+ ## Webhook-driven wake (instead of always-on)
99
+
100
+ Register a webhook for `session.status_run_started` (see `shared/managed-agents-webhooks.md`), verify the delivery, then drain one work item with `.run_one()`:
101
+
102
+ ```python
103
+ import os
104
+ import anthropic
105
+ from anthropic.lib.environments import EnvironmentWorker
106
+
107
+ environment_key = os.environ["ANTHROPIC_ENVIRONMENT_KEY"]
108
+ environment_id = os.environ["ANTHROPIC_ENVIRONMENT_ID"]
109
+ client = anthropic.AsyncAnthropic(
110
+ auth_token=environment_key,
111
+ ) # reads ANTHROPIC_WEBHOOK_SIGNING_KEY from env for webhooks.unwrap()
112
+
113
+
114
+ async def handle(raw: bytes, headers: dict[str, str]) -> dict:
115
+ event = client.beta.webhooks.unwrap(raw.decode(), headers=headers)
116
+ if event.data.type != "session.status_run_started":
117
+ return {"status": "ignored"}
118
+ await EnvironmentWorker(
119
+ client,
120
+ environment_id=environment_id,
121
+ environment_key=environment_key,
122
+ workdir="/workspace",
123
+ ).run_one()
124
+ return {"status": "ok"}
125
+ ```
126
+
127
+ TypeScript: same shape with `client.beta.webhooks.unwrap(body, {headers})` and `new EnvironmentWorker({...}).runOne()`.
128
+
129
+ ## Container orchestration (mid-level)
130
+
131
+ `EnvironmentWorker.run()` polls and executes tools in the same process. To run each session in its **own** container, use the mid-level poller in a thin orchestrator — Python `client.beta.environments.work.poller(environment_id=, environment_key=, drain=, block_ms=, reclaim_older_than_ms=, auto_stop=)`; TypeScript `new WorkPoller({client, environmentId, environmentKey, autoStop})` from `@anthropic-ai/sdk/helpers/beta/environments` — and, for each yielded `work` item, start a fresh container with these env vars injected, whose entrypoint runs `ant beta:worker run` or an `EnvironmentWorker(...).run_one()`. `block_ms` is 1–999 (or `None` for non-blocking); `reclaim_older_than_ms` re-claims items leased to a dead worker; `drain` stops once the queue is empty; `auto_stop` posts a stop signal after the iterator exits (set `False` when the launched container owns the stop call). **Go's poller has no `auto_stop` opt-out** — it calls `work.Stop` when the handler returns, so block in the handler until the session completes rather than detaching.
132
+
133
+ | Env var | Value |
134
+ |---|---|
135
+ | `ANTHROPIC_SESSION_ID` | `work.data.id` |
136
+ | `ANTHROPIC_WORK_ID` | `work.id` |
137
+ | `ANTHROPIC_ENVIRONMENT_ID` | `work.environment_id` |
138
+ | `ANTHROPIC_ENVIRONMENT_KEY` | pass through |
139
+ | `ANTHROPIC_BASE_URL` | pass through |
140
+
141
+ Skip items where `work.data.type != "session"`.
142
+
143
+ ## Monitoring & control
144
+
145
+ These are **control-plane** calls — authenticate with `x-api-key` (not the environment key); `managed-agents-2026-04-01` beta header. **Call them from outside the worker host** — setting `ANTHROPIC_API_KEY` on the worker host exposes an organization-scoped credential to agent tool calls.
146
+
147
+ | SDK (`client.beta.environments.work.*`) | REST | CLI | Returns |
148
+ |---|---|---|---|
149
+ | `stats(environment_id)` | `GET /v1/environments/{id}/work/stats` | `ant beta:environments:work stats` | `{type:"work_queue_stats", depth, pending, oldest_queued_at, workers_polling}` |
150
+ | `stop(work_id, environment_id=)` | `POST /v1/environments/{id}/work/{work_id}/stop` | `ant beta:environments:work stop` | `work.state` |
151
+
152
+ ## What changes vs `cloud`
153
+
154
+ | Concern | `cloud` | `self_hosted` |
155
+ |---|---|---|
156
+ | Container lifecycle, hardening, networking | Anthropic | **You** — run non-root, read-only rootfs, drop caps; egress is whatever your VPC/firewall allows |
157
+ | `file` / `github_repository` resource mounting | Anthropic mounts into the container | **You** — pass pointers via `sessions.create(metadata={...})` and have your orchestrator fetch/clone before dispatch |
158
+ | `memory_store` resources | Supported | **Not yet supported** |
159
+ | Vault `environment_variable` credentials | Supported (substituted at Anthropic-managed egress) | **Not yet supported** — egress is yours, so there's nowhere to substitute the secret. Use MCP credentials or a host-side custom tool (`shared/managed-agents-client-patterns.md` Pattern 9) |
160
+ | Built-in tools | Via `agent_toolset_20260401` | Supplied by your worker (`EnvironmentWorker` default / `beta_agent_toolset(env)` / `ant` CLI fixed set) |
161
+ | Skills download | Automatic | `EnvironmentWorker` / `AgentToolContext` fetch into `{workdir}/skills/` (needs `client` + `session_id`) |
162
+ | Claude Platform on AWS | Supported | **Not available** |
163
+ | SDK worker helpers | All SDKs | **Python, TypeScript, Go only** (`EnvironmentWorker` / poller not in Java, Ruby, PHP, or C#) — use one of those three or the `ant` CLI |
164
+
165
+ ## Credentials
166
+
167
+ | Credential | Format | Scope |
168
+ |---|---|---|
169
+ | `ANTHROPIC_ENVIRONMENT_KEY` | `sk-ant-oat01-...` | One environment's work queue. Generate in Console ("Generate environment key"). Pass as `auth_token=` / `authToken` on the client **and** as `environment_key=` / `environmentKey` on `EnvironmentWorker`. Store in a secrets manager; rotate on exposure. |
170
+ | `ANTHROPIC_WEBHOOK_SIGNING_KEY` | `whsec_...` | Webhook signature verification (if using webhook-driven wake). The SDK reads this env var automatically for `client.beta.webhooks.unwrap()`. |
171
+
172
+ ## Security — what you own
173
+
174
+ Container hardening; egress restriction (there is no default); `ANTHROPIC_ENVIRONMENT_KEY` custody and rotation; one workspace + environment per trust boundary when running untrusted code; least-privilege for the tool process; log retention and redaction. **Anthropic cannot**: fast-revoke a leaked environment key, verify your image or supply chain, sandbox tool execution inside your container, or enforce retention after tool output reaches your infrastructure. See the Self-Hosted Sandboxes Security page in `shared/live-sources.md` for the full checklist.