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,394 @@
1
+ # Managed Agents — Ruby
2
+
3
+ > **Bindings not shown here:** This README covers the most common managed-agents flows for Ruby. If you need a class, method, namespace, field, or behavior that isn't shown, WebFetch the Ruby SDK repo **or the relevant docs page** from `shared/live-sources.md` rather than guess. Do not extrapolate from cURL shapes or another language's SDK.
4
+
5
+ > **Agents are persistent — create once, reference by ID.** Store the agent ID returned by `client.beta.agents.create` and pass it to every subsequent `client.beta.sessions.create`; do not call `agents.create` in the request path. The Anthropic CLI is one convenient way to create agents and environments from version-controlled YAML — its URL is in `shared/live-sources.md`. The examples below show in-code creation for completeness; in production the create call belongs in setup, not in the request path.
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ gem install anthropic
11
+ ```
12
+
13
+ ## Client Initialization
14
+
15
+ ```ruby
16
+ require "anthropic"
17
+
18
+ # Default (uses ANTHROPIC_API_KEY env var)
19
+ client = Anthropic::Client.new
20
+
21
+ # Explicit API key
22
+ client = Anthropic::Client.new(api_key: "your-api-key")
23
+ ```
24
+
25
+ > ⚠️ **Trailing underscores:** The Ruby SDK uses `system_:` and `send_(` (trailing underscore) to avoid shadowing `Kernel#system` and `Kernel#send`. Use these forms throughout managed-agents code.
26
+
27
+ ---
28
+
29
+ ## Create an Environment
30
+
31
+ ```ruby
32
+ environment = client.beta.environments.create(
33
+ name: "my-dev-env",
34
+ config: {
35
+ type: "cloud",
36
+ networking: {type: "unrestricted"}
37
+ }
38
+ )
39
+ puts "Environment ID: #{environment.id}" # env_...
40
+ ```
41
+
42
+ ---
43
+
44
+ ## Create an Agent (required first step)
45
+
46
+ > ⚠️ **There is no inline agent config.** `model`/`system_`/`tools` live on the agent object, not the session. Always start with `client.beta.agents.create()` — the session takes either `agent: agent.id` or the typed hash form `agent: {type: "agent", id: agent.id, version: agent.version}`.
47
+
48
+ ### Minimal
49
+
50
+ ```ruby
51
+ # 1. Create the agent (reusable, versioned)
52
+ agent = client.beta.agents.create(
53
+ name: "Coding Assistant",
54
+ model: :"claude-opus-4-8",
55
+ system_: "You are a helpful coding assistant.",
56
+ tools: [{type: "agent_toolset_20260401"}]
57
+ )
58
+
59
+ # 2. Start a session
60
+ session = client.beta.sessions.create(
61
+ agent: {type: "agent", id: agent.id, version: agent.version},
62
+ environment_id: environment.id,
63
+ title: "Quickstart session"
64
+ )
65
+ puts "Session ID: #{session.id}"
66
+ puts "Trace: https://platform.claude.com/workspaces/default/sessions/#{session.id}"
67
+ ```
68
+
69
+ ### Updating an Agent
70
+
71
+ Updates create new versions; the agent object is immutable per version.
72
+
73
+ ```ruby
74
+ updated_agent = client.beta.agents.update(
75
+ agent.id,
76
+ version: agent.version,
77
+ system_: "You are a helpful coding agent. Always write tests."
78
+ )
79
+ puts "New version: #{updated_agent.version}"
80
+
81
+ # List all versions
82
+ client.beta.agents.versions.list(agent.id).auto_paging_each do |version|
83
+ puts "Version #{version.version}: #{version.updated_at.iso8601}"
84
+ end
85
+
86
+ # Archive the agent
87
+ archived = client.beta.agents.archive(agent.id)
88
+ puts "Archived at: #{archived.archived_at.iso8601}"
89
+ ```
90
+
91
+ ---
92
+
93
+ ## Send a User Message
94
+
95
+ ```ruby
96
+ client.beta.sessions.events.send_(
97
+ session.id,
98
+ events: [{
99
+ type: "user.message",
100
+ content: [{type: "text", text: "Review the auth module"}]
101
+ }]
102
+ )
103
+ ```
104
+
105
+ > 💡 **Stream-first:** Open the stream *before* (or concurrently with) sending the message. The stream only delivers events that occur after it opens — stream-after-send means early events arrive buffered in one batch. See [Steering Patterns](../../shared/managed-agents-events.md#steering-patterns).
106
+
107
+ ---
108
+
109
+ ## Stream Events (SSE)
110
+
111
+ ```ruby
112
+ # Open the stream first, then send the user message
113
+ stream = client.beta.sessions.events.stream_events(session.id)
114
+
115
+ client.beta.sessions.events.send_(
116
+ session.id,
117
+ events: [{
118
+ type: "user.message",
119
+ content: [{type: "text", text: "Summarize the repo README"}]
120
+ }]
121
+ )
122
+
123
+ stream.each do |event|
124
+ case event.type
125
+ in :"agent.message"
126
+ event.content.each { |block| print block.text }
127
+ in :"agent.tool_use"
128
+ puts "\n[Using tool: #{event.name}]"
129
+ in :"session.status_idle"
130
+ break
131
+ in :"session.error"
132
+ puts "\n[Error: #{event.error&.message || "unknown"}]"
133
+ break
134
+ else
135
+ # ignore other event types
136
+ end
137
+ end
138
+ ```
139
+
140
+ > ℹ️ Event `.type` is a Symbol (compare with `:"agent.message"`, not `"agent.message"`).
141
+
142
+ ### Reconnecting and Tailing
143
+
144
+ When reconnecting mid-session, list past events first to dedupe, then tail live events:
145
+
146
+ ```ruby
147
+ require "set"
148
+
149
+ stream = client.beta.sessions.events.stream_events(session.id)
150
+
151
+ # Stream is open and buffering. List history before tailing live.
152
+ seen_event_ids = Set.new
153
+ client.beta.sessions.events.list(session.id).auto_paging_each { |past| seen_event_ids << past.id }
154
+
155
+ # Tail live events, skipping anything already seen
156
+ stream.each do |event|
157
+ next if seen_event_ids.include?(event.id)
158
+ seen_event_ids << event.id
159
+ case event.type
160
+ in :"agent.message"
161
+ event.content.each { |block| print block.text }
162
+ in :"session.status_idle"
163
+ break
164
+ else
165
+ # ignore other event types
166
+ end
167
+ end
168
+ ```
169
+
170
+ ---
171
+
172
+ ## Provide Custom Tool Result
173
+
174
+ > ℹ️ The Ruby managed-agents bindings for `user.custom_tool_result` are not yet documented in this skill or in the apps source examples. Refer to `shared/managed-agents-events.md` for the wire format and the `anthropic` Ruby gem repository for the corresponding params.
175
+
176
+ ---
177
+
178
+ ## Poll Events
179
+
180
+ ```ruby
181
+ client.beta.sessions.events.list(session.id).auto_paging_each do |event|
182
+ puts "#{event.type}: #{event.id}"
183
+ end
184
+ ```
185
+
186
+ ---
187
+
188
+ ## Upload a File
189
+
190
+ ```ruby
191
+ require "pathname"
192
+
193
+ file = client.beta.files.upload(file: Pathname("data.csv"))
194
+ puts "File ID: #{file.id}"
195
+
196
+ # Mount in a session
197
+ session = client.beta.sessions.create(
198
+ agent: agent.id,
199
+ environment_id: environment.id,
200
+ resources: [
201
+ {
202
+ type: "file",
203
+ file_id: file.id,
204
+ mount_path: "/workspace/data.csv"
205
+ }
206
+ ]
207
+ )
208
+ ```
209
+
210
+ ### Add and Manage Resources on an Existing Session
211
+
212
+ ```ruby
213
+ # Attach an additional file to an open session
214
+ resource = client.beta.sessions.resources.add(
215
+ session.id,
216
+ type: "file",
217
+ file_id: file.id
218
+ )
219
+ puts resource.id # "sesrsc_01ABC..."
220
+
221
+ # List resources on the session
222
+ listed = client.beta.sessions.resources.list(session.id)
223
+ listed.data.each { |entry| puts "#{entry.id} #{entry.type}" }
224
+
225
+ # Detach a resource
226
+ client.beta.sessions.resources.delete(resource.id, session_id: session.id)
227
+ ```
228
+
229
+ ---
230
+
231
+ ## List and Download Session Files
232
+
233
+ ```ruby
234
+ files = client.beta.files.list(scope_id: "sesn_abc123", betas: ["managed-agents-2026-04-01"])
235
+ content = client.beta.files.download(files.data[0].id)
236
+ File.binwrite("output.txt", content.read)
237
+ ```
238
+
239
+ ---
240
+
241
+ ## Session Management
242
+
243
+ ```ruby
244
+ # List environments
245
+ environments = client.beta.environments.list
246
+
247
+ # Retrieve a specific environment
248
+ env = client.beta.environments.retrieve(environment.id)
249
+
250
+ # Archive an environment (read-only, existing sessions continue)
251
+ client.beta.environments.archive(environment.id)
252
+
253
+ # Delete an environment (only if no sessions reference it)
254
+ client.beta.environments.delete(environment.id)
255
+
256
+ # Delete a session
257
+ client.beta.sessions.delete(session.id)
258
+ ```
259
+
260
+ ---
261
+
262
+ ## MCP Server Integration
263
+
264
+ ```ruby
265
+ # Agent declares MCP server (no auth here — auth goes in a vault)
266
+ agent = client.beta.agents.create(
267
+ name: "GitHub Assistant",
268
+ model: :"claude-opus-4-8",
269
+ mcp_servers: [
270
+ {
271
+ type: "url",
272
+ name: "github",
273
+ url: "https://api.githubcopilot.com/mcp/"
274
+ }
275
+ ],
276
+ tools: [
277
+ {type: "agent_toolset_20260401"},
278
+ {type: "mcp_toolset", mcp_server_name: "github"}
279
+ ]
280
+ )
281
+
282
+ # Session attaches vault(s) containing credentials for those MCP server URLs
283
+ session = client.beta.sessions.create(
284
+ agent: {type: "agent", id: agent.id, version: agent.version},
285
+ environment_id: environment.id,
286
+ vault_ids: [vault.id]
287
+ )
288
+ ```
289
+
290
+ See `shared/managed-agents-tools.md` §Vaults for creating vaults and adding credentials.
291
+
292
+ ---
293
+
294
+ ## Vaults
295
+
296
+ ```ruby
297
+ # Create a vault
298
+ vault = client.beta.vaults.create(
299
+ display_name: "Alice",
300
+ metadata: {external_user_id: "usr_abc123"}
301
+ )
302
+ puts vault.id # "vlt_01ABC..."
303
+
304
+ # Add an OAuth credential
305
+ credential = client.beta.vaults.credentials.create(
306
+ vault.id,
307
+ display_name: "Alice's Slack",
308
+ auth: {
309
+ type: "mcp_oauth",
310
+ mcp_server_url: "https://mcp.slack.com/mcp",
311
+ access_token: "xoxp-...",
312
+ expires_at: "2026-04-15T00:00:00Z",
313
+ refresh: {
314
+ token_endpoint: "https://slack.com/api/oauth.v2.access",
315
+ client_id: "1234567890.0987654321",
316
+ scope: "channels:read chat:write",
317
+ refresh_token: "xoxe-1-...",
318
+ token_endpoint_auth: {
319
+ type: "client_secret_post",
320
+ client_secret: "abc123..."
321
+ }
322
+ }
323
+ }
324
+ )
325
+
326
+ # Rotate the credential (e.g., after a token refresh)
327
+ client.beta.vaults.credentials.update(
328
+ credential.id,
329
+ vault_id: vault.id,
330
+ auth: {
331
+ type: "mcp_oauth",
332
+ access_token: "xoxp-new-...",
333
+ expires_at: "2026-05-15T00:00:00Z",
334
+ refresh: {refresh_token: "xoxe-1-new-..."}
335
+ }
336
+ )
337
+
338
+ # Archive a vault
339
+ client.beta.vaults.archive(vault.id)
340
+ ```
341
+
342
+ ---
343
+
344
+ ## GitHub Repository Integration
345
+
346
+ Mount a GitHub repository as a session resource (a vault holds the GitHub MCP credential):
347
+
348
+ ```ruby
349
+ session = client.beta.sessions.create(
350
+ agent: agent.id,
351
+ environment_id: environment.id,
352
+ vault_ids: [vault.id],
353
+ resources: [
354
+ {
355
+ type: "github_repository",
356
+ url: "https://github.com/org/repo",
357
+ mount_path: "/workspace/repo",
358
+ authorization_token: "ghp_your_github_token"
359
+ }
360
+ ]
361
+ )
362
+ ```
363
+
364
+ Multiple repositories on the same session:
365
+
366
+ ```ruby
367
+ resources = [
368
+ {
369
+ type: "github_repository",
370
+ url: "https://github.com/org/frontend",
371
+ mount_path: "/workspace/frontend",
372
+ authorization_token: "ghp_your_github_token"
373
+ },
374
+ {
375
+ type: "github_repository",
376
+ url: "https://github.com/org/backend",
377
+ mount_path: "/workspace/backend",
378
+ authorization_token: "ghp_your_github_token"
379
+ }
380
+ ]
381
+ ```
382
+
383
+ Rotating a repository's authorization token:
384
+
385
+ ```ruby
386
+ listed = client.beta.sessions.resources.list(session.id)
387
+ repo_resource_id = listed.data.first.id
388
+
389
+ client.beta.sessions.resources.update(
390
+ repo_resource_id,
391
+ session_id: session.id,
392
+ authorization_token: "ghp_your_new_github_token"
393
+ )
394
+ ```
@@ -0,0 +1,255 @@
1
+ # Claude API — cURL / Raw HTTP
2
+
3
+ Use these examples when the user needs raw HTTP requests or is working in a language without an official SDK.
4
+
5
+ ## Setup
6
+
7
+ ```bash
8
+ export ANTHROPIC_API_KEY="your-api-key"
9
+ ```
10
+
11
+ ---
12
+
13
+ ## Basic Message Request
14
+
15
+ ```bash
16
+ curl https://api.anthropic.com/v1/messages \
17
+ -H "Content-Type: application/json" \
18
+ -H "x-api-key: $ANTHROPIC_API_KEY" \
19
+ -H "anthropic-version: 2023-06-01" \
20
+ -d '{
21
+ "model": "claude-opus-4-8",
22
+ "max_tokens": 16000,
23
+ "messages": [
24
+ {"role": "user", "content": "What is the capital of France?"}
25
+ ]
26
+ }'
27
+ ```
28
+
29
+ ### Parsing the response
30
+
31
+ Use `jq` to extract fields from the JSON response. Do not use `grep`/`sed` —
32
+ JSON strings can contain any character and regex parsing will break on quotes,
33
+ escapes, or multi-line content.
34
+
35
+ ```bash
36
+ # Capture the response, then extract fields
37
+ response=$(curl -s https://api.anthropic.com/v1/messages \
38
+ -H "Content-Type: application/json" \
39
+ -H "x-api-key: $ANTHROPIC_API_KEY" \
40
+ -H "anthropic-version: 2023-06-01" \
41
+ -d '{"model":"claude-opus-4-8","max_tokens":16000,"messages":[{"role":"user","content":"Hello"}]}')
42
+
43
+ # Print the first text block (-r strips the JSON quotes)
44
+ echo "$response" | jq -r '.content[0].text'
45
+
46
+ # Read usage fields
47
+ input_tokens=$(echo "$response" | jq -r '.usage.input_tokens')
48
+ output_tokens=$(echo "$response" | jq -r '.usage.output_tokens')
49
+
50
+ # Read stop reason (for tool-use loops)
51
+ stop_reason=$(echo "$response" | jq -r '.stop_reason')
52
+
53
+ # Extract all text blocks (content is an array; filter to type=="text")
54
+ echo "$response" | jq -r '.content[] | select(.type == "text") | .text'
55
+ ```
56
+
57
+
58
+ ---
59
+
60
+ ## Streaming (SSE)
61
+
62
+ ```bash
63
+ curl https://api.anthropic.com/v1/messages \
64
+ -H "Content-Type: application/json" \
65
+ -H "x-api-key: $ANTHROPIC_API_KEY" \
66
+ -H "anthropic-version: 2023-06-01" \
67
+ -d '{
68
+ "model": "claude-opus-4-8",
69
+ "max_tokens": 64000,
70
+ "stream": true,
71
+ "messages": [{"role": "user", "content": "Write a haiku"}]
72
+ }'
73
+ ```
74
+
75
+ The response is a stream of Server-Sent Events:
76
+
77
+ ```
78
+ event: message_start
79
+ data: {"type":"message_start","message":{"id":"msg_...","type":"message",...}}
80
+
81
+ event: content_block_start
82
+ data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
83
+
84
+ event: content_block_delta
85
+ data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Hello"}}
86
+
87
+ event: content_block_stop
88
+ data: {"type":"content_block_stop","index":0}
89
+
90
+ event: message_delta
91
+ data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":12}}
92
+
93
+ event: message_stop
94
+ data: {"type":"message_stop"}
95
+ ```
96
+
97
+ ---
98
+
99
+ ## Tool Use
100
+
101
+ ```bash
102
+ curl https://api.anthropic.com/v1/messages \
103
+ -H "Content-Type: application/json" \
104
+ -H "x-api-key: $ANTHROPIC_API_KEY" \
105
+ -H "anthropic-version: 2023-06-01" \
106
+ -d '{
107
+ "model": "claude-opus-4-8",
108
+ "max_tokens": 16000,
109
+ "tools": [{
110
+ "name": "get_weather",
111
+ "description": "Get current weather for a location",
112
+ "input_schema": {
113
+ "type": "object",
114
+ "properties": {
115
+ "location": {"type": "string", "description": "City name"}
116
+ },
117
+ "required": ["location"]
118
+ }
119
+ }],
120
+ "messages": [{"role": "user", "content": "What is the weather in Paris?"}]
121
+ }'
122
+ ```
123
+
124
+ When Claude responds with a `tool_use` block, send the result back:
125
+
126
+ ```bash
127
+ curl https://api.anthropic.com/v1/messages \
128
+ -H "Content-Type: application/json" \
129
+ -H "x-api-key: $ANTHROPIC_API_KEY" \
130
+ -H "anthropic-version: 2023-06-01" \
131
+ -d '{
132
+ "model": "claude-opus-4-8",
133
+ "max_tokens": 16000,
134
+ "tools": [{
135
+ "name": "get_weather",
136
+ "description": "Get current weather for a location",
137
+ "input_schema": {
138
+ "type": "object",
139
+ "properties": {
140
+ "location": {"type": "string", "description": "City name"}
141
+ },
142
+ "required": ["location"]
143
+ }
144
+ }],
145
+ "messages": [
146
+ {"role": "user", "content": "What is the weather in Paris?"},
147
+ {"role": "assistant", "content": [
148
+ {"type": "text", "text": "Let me check the weather."},
149
+ {"type": "tool_use", "id": "toolu_abc123", "name": "get_weather", "input": {"location": "Paris"}}
150
+ ]},
151
+ {"role": "user", "content": [
152
+ {"type": "tool_result", "tool_use_id": "toolu_abc123", "content": "72°F and sunny"}
153
+ ]}
154
+ ]
155
+ }'
156
+ ```
157
+
158
+ ---
159
+
160
+ ## Prompt Caching
161
+
162
+ Put `cache_control` on the last block of the stable prefix. See `shared/prompt-caching.md` for placement patterns and the silent-invalidator audit checklist.
163
+
164
+ ```bash
165
+ curl https://api.anthropic.com/v1/messages \
166
+ -H "Content-Type: application/json" \
167
+ -H "x-api-key: $ANTHROPIC_API_KEY" \
168
+ -H "anthropic-version: 2023-06-01" \
169
+ -d '{
170
+ "model": "claude-opus-4-8",
171
+ "max_tokens": 16000,
172
+ "system": [
173
+ {"type": "text", "text": "<large shared prompt...>", "cache_control": {"type": "ephemeral"}}
174
+ ],
175
+ "messages": [{"role": "user", "content": "Summarize the key points"}]
176
+ }'
177
+ ```
178
+
179
+ For 1-hour TTL: `"cache_control": {"type": "ephemeral", "ttl": "1h"}`. Top-level `"cache_control"` on the request body auto-places on the last cacheable block. Verify hits via the response `usage.cache_creation_input_tokens` / `usage.cache_read_input_tokens` fields.
180
+
181
+ ---
182
+
183
+ ## Extended Thinking
184
+
185
+ > **Fable 5, Opus 4.8, Opus 4.7, Opus 4.6, and Sonnet 4.6:** Use adaptive thinking. `budget_tokens` is removed on Fable 5, Opus 4.8, and 4.7 (400 if sent); deprecated on Opus 4.6 and Sonnet 4.6.
186
+ > **Older models:** Use `"type": "enabled"` with `"budget_tokens": N` (must be < `max_tokens`, min 1024).
187
+
188
+ ```bash
189
+ # Fable 5 / Opus 4.8 / 4.7 / 4.6: adaptive thinking (recommended)
190
+ curl https://api.anthropic.com/v1/messages \
191
+ -H "Content-Type: application/json" \
192
+ -H "x-api-key: $ANTHROPIC_API_KEY" \
193
+ -H "anthropic-version: 2023-06-01" \
194
+ -d '{
195
+ "model": "claude-opus-4-8",
196
+ "max_tokens": 16000,
197
+ "thinking": {
198
+ "type": "adaptive",
199
+ "display": "summarized"
200
+ },
201
+ "output_config": {
202
+ "effort": "high"
203
+ },
204
+ "messages": [{"role": "user", "content": "Solve this step by step..."}]
205
+ }'
206
+ ```
207
+
208
+ ---
209
+
210
+ ## Refusal Fallbacks (Claude Fable 5) — opt in by default
211
+
212
+ On `claude-fable-5`, safety classifiers may decline a request (HTTP 200 with `stop_reason: "refusal"`). Fallbacks are **opt-in**: without them the request simply stops. Include the `fallbacks` parameter and its beta header by default — on a policy decline the API re-runs the same request on the fallback model inside the same call. A decline before any output isn't billed (a mid-stream decline bills the streamed partial); the rescue bills at the fallback model's own rates.
213
+
214
+ ```bash
215
+ response=$(curl -s https://api.anthropic.com/v1/messages \
216
+ -H "Content-Type: application/json" \
217
+ -H "x-api-key: $ANTHROPIC_API_KEY" \
218
+ -H "anthropic-version: 2023-06-01" \
219
+ -H "anthropic-beta: server-side-fallback-2026-06-01" \
220
+ -d '{
221
+ "model": "claude-fable-5",
222
+ "max_tokens": 16000,
223
+ "fallbacks": [{"model": "claude-opus-4-8"}],
224
+ "messages": [{"role": "user", "content": "Hello"}]
225
+ }')
226
+
227
+ # Which model produced the message
228
+ echo "$response" | jq -r '.model'
229
+
230
+ # Refusal on the final response means the whole chain refused
231
+ echo "$response" | jq -r '.stop_reason'
232
+
233
+ # Switch points: one fallback block per model that ran and declined this turn
234
+ echo "$response" | jq -r '.content[] | select(.type == "fallback") | "\(.from.model) declined; \(.to.model) continued"'
235
+
236
+ # Served-by signal — covers sticky turns, which carry no fallback block.
237
+ # Pair with stop_reason: the fallback model can itself refuse.
238
+ if [ "$(echo "$response" | jq -r '.stop_reason')" != "refusal" ] && \
239
+ echo "$response" | jq -e '[.usage.iterations[]? | select(.type == "fallback_message")] | length > 0' > /dev/null; then
240
+ echo "fallback model served this turn"
241
+ fi
242
+ ```
243
+
244
+ The header must be exactly `server-side-fallback-2026-06-01`. The parameter is rejected on the Batches API and unavailable on Amazon Bedrock, Vertex AI, and Microsoft Foundry. Full semantics (sticky routing, billing, streaming, echoing fallback turns back): `shared/model-migration.md` → Migrating to Claude Fable 5 → `refusal` stop reason.
245
+
246
+ ---
247
+
248
+ ## Required Headers
249
+
250
+ | Header | Value | Description |
251
+ | ------------------- | ------------------ | -------------------------- |
252
+ | `Content-Type` | `application/json` | Required |
253
+ | `x-api-key` | Your API key | Authentication |
254
+ | `anthropic-version` | `2023-06-01` | API version |
255
+ | `anthropic-beta` | Beta feature IDs | Required for beta features |