anymous 1.2.7 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/bin/anymous.cjs +1 -1
  2. package/package.json +1 -1
  3. package/script/postinstall.mjs +214 -0
  4. package/skills/algorithmic-art/LICENSE.txt +202 -0
  5. package/skills/algorithmic-art/SKILL.md +405 -0
  6. package/skills/algorithmic-art/templates/generator_template.js +223 -0
  7. package/skills/algorithmic-art/templates/viewer.html +599 -0
  8. package/skills/artifacts-builder/LICENSE.txt +202 -0
  9. package/skills/artifacts-builder/SKILL.md +74 -0
  10. package/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
  11. package/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
  12. package/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  13. package/skills/brainstorming/SKILL.md +151 -0
  14. package/skills/brainstorming/scripts/frame-template.html +213 -0
  15. package/skills/brainstorming/scripts/helper.js +167 -0
  16. package/skills/brainstorming/scripts/server.cjs +723 -0
  17. package/skills/brainstorming/scripts/start-server.sh +209 -0
  18. package/skills/brainstorming/scripts/stop-server.sh +120 -0
  19. package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  20. package/skills/brainstorming/visual-companion.md +298 -0
  21. package/skills/brand-guidelines/LICENSE.txt +202 -0
  22. package/skills/brand-guidelines/SKILL.md +73 -0
  23. package/skills/canvas-design/LICENSE.txt +202 -0
  24. package/skills/canvas-design/SKILL.md +130 -0
  25. package/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  26. package/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  27. package/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  28. package/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  29. package/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  30. package/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  31. package/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  32. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  33. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  34. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  35. package/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  36. package/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  37. package/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  38. package/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  39. package/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  40. package/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  41. package/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  42. package/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  43. package/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  44. package/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  45. package/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  46. package/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  47. package/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  48. package/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  49. package/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  50. package/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  51. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  52. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  53. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  54. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  55. package/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  56. package/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  57. package/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  58. package/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  59. package/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  60. package/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  61. package/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  62. package/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  63. package/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  64. package/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  65. package/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  66. package/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  67. package/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  68. package/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  69. package/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  70. package/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  71. package/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  72. package/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  73. package/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  74. package/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  75. package/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  76. package/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  77. package/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  78. package/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  79. package/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  80. package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  81. package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  82. package/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  83. package/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  84. package/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  85. package/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  86. package/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  87. package/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  88. package/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  89. package/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  90. package/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  91. package/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  92. package/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  93. package/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  94. package/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  95. package/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  96. package/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  97. package/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  98. package/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  99. package/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  100. package/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  101. package/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  102. package/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  103. package/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  104. package/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  105. package/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  106. package/skills/changelog-generator/SKILL.md +110 -0
  107. package/skills/claude-api/LICENSE.txt +202 -0
  108. package/skills/claude-api/SKILL.md +546 -0
  109. package/skills/claude-api/csharp/claude-api/README.md +362 -0
  110. package/skills/claude-api/csharp/claude-api/batches.md +14 -0
  111. package/skills/claude-api/csharp/claude-api/files-api.md +23 -0
  112. package/skills/claude-api/csharp/claude-api/streaming.md +28 -0
  113. package/skills/claude-api/csharp/claude-api/tool-use.md +164 -0
  114. package/skills/claude-api/curl/examples.md +256 -0
  115. package/skills/claude-api/curl/managed-agents.md +340 -0
  116. package/skills/claude-api/go/claude-api/README.md +188 -0
  117. package/skills/claude-api/go/claude-api/files-api.md +21 -0
  118. package/skills/claude-api/go/claude-api/streaming.md +43 -0
  119. package/skills/claude-api/go/claude-api/tool-use.md +220 -0
  120. package/skills/claude-api/go/managed-agents/README.md +564 -0
  121. package/skills/claude-api/java/claude-api/README.md +238 -0
  122. package/skills/claude-api/java/claude-api/files-api.md +25 -0
  123. package/skills/claude-api/java/claude-api/streaming.md +24 -0
  124. package/skills/claude-api/java/claude-api/tool-use.md +228 -0
  125. package/skills/claude-api/java/managed-agents/README.md +443 -0
  126. package/skills/claude-api/php/claude-api/README.md +174 -0
  127. package/skills/claude-api/php/claude-api/batches.md +15 -0
  128. package/skills/claude-api/php/claude-api/files-api.md +11 -0
  129. package/skills/claude-api/php/claude-api/streaming.md +27 -0
  130. package/skills/claude-api/php/claude-api/tool-use.md +253 -0
  131. package/skills/claude-api/php/managed-agents/README.md +443 -0
  132. package/skills/claude-api/python/claude-api/README.md +565 -0
  133. package/skills/claude-api/python/claude-api/batches.md +198 -0
  134. package/skills/claude-api/python/claude-api/files-api.md +170 -0
  135. package/skills/claude-api/python/claude-api/streaming.md +179 -0
  136. package/skills/claude-api/python/claude-api/tool-use.md +629 -0
  137. package/skills/claude-api/python/managed-agents/README.md +335 -0
  138. package/skills/claude-api/ruby/claude-api/README.md +134 -0
  139. package/skills/claude-api/ruby/claude-api/streaming.md +16 -0
  140. package/skills/claude-api/ruby/claude-api/tool-use.md +41 -0
  141. package/skills/claude-api/ruby/managed-agents/README.md +394 -0
  142. package/skills/claude-api/shared/agent-design.md +101 -0
  143. package/skills/claude-api/shared/anthropic-cli.md +246 -0
  144. package/skills/claude-api/shared/claude-platform-on-aws.md +59 -0
  145. package/skills/claude-api/shared/error-codes.md +257 -0
  146. package/skills/claude-api/shared/live-sources.md +143 -0
  147. package/skills/claude-api/shared/managed-agents-api-reference.md +448 -0
  148. package/skills/claude-api/shared/managed-agents-client-patterns.md +217 -0
  149. package/skills/claude-api/shared/managed-agents-core.md +319 -0
  150. package/skills/claude-api/shared/managed-agents-environments.md +219 -0
  151. package/skills/claude-api/shared/managed-agents-events.md +270 -0
  152. package/skills/claude-api/shared/managed-agents-memory.md +199 -0
  153. package/skills/claude-api/shared/managed-agents-multiagent.md +125 -0
  154. package/skills/claude-api/shared/managed-agents-onboarding.md +82 -0
  155. package/skills/claude-api/shared/managed-agents-outcomes.md +108 -0
  156. package/skills/claude-api/shared/managed-agents-overview.md +71 -0
  157. package/skills/claude-api/shared/managed-agents-scheduled-deployments.md +146 -0
  158. package/skills/claude-api/shared/managed-agents-self-hosted-sandboxes.md +174 -0
  159. package/skills/claude-api/shared/managed-agents-tools.md +371 -0
  160. package/skills/claude-api/shared/managed-agents-webhooks.md +143 -0
  161. package/skills/claude-api/shared/model-migration.md +1548 -0
  162. package/skills/claude-api/shared/models.md +138 -0
  163. package/skills/claude-api/shared/platform-availability.md +97 -0
  164. package/skills/claude-api/shared/prompt-caching.md +235 -0
  165. package/skills/claude-api/shared/token-counting.md +56 -0
  166. package/skills/claude-api/shared/tool-use-concepts.md +514 -0
  167. package/skills/claude-api/typescript/claude-api/README.md +405 -0
  168. package/skills/claude-api/typescript/claude-api/batches.md +106 -0
  169. package/skills/claude-api/typescript/claude-api/files-api.md +98 -0
  170. package/skills/claude-api/typescript/claude-api/streaming.md +178 -0
  171. package/skills/claude-api/typescript/claude-api/tool-use.md +589 -0
  172. package/skills/claude-api/typescript/managed-agents/README.md +358 -0
  173. package/skills/code-security-auditor/SKILL.md +164 -0
  174. package/skills/code-security-auditor/references/package_checks.md +59 -0
  175. package/skills/competitive-ads-extractor/SKILL.md +298 -0
  176. package/skills/content-research-writer/SKILL.md +538 -0
  177. package/skills/developer-growth-analysis/SKILL.md +322 -0
  178. package/skills/dispatching-parallel-agents/SKILL.md +167 -0
  179. package/skills/doc-coauthoring/SKILL.md +375 -0
  180. package/skills/docx/LICENSE.txt +30 -0
  181. package/skills/docx/SKILL.md +91 -0
  182. package/skills/docx/scripts/__init__.py +1 -0
  183. package/skills/docx/scripts/accept_changes.py +135 -0
  184. package/skills/docx/scripts/comment.py +368 -0
  185. package/skills/docx/scripts/merge_runs.py +310 -0
  186. package/skills/docx/scripts/office/helpers/__init__.py +111 -0
  187. package/skills/docx/scripts/office/helpers/pptx_chart.py +170 -0
  188. package/skills/docx/scripts/office/helpers/pptx_slide.py +60 -0
  189. package/skills/docx/scripts/office/helpers/pptx_theme.py +114 -0
  190. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  191. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  192. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  193. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  194. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  195. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  196. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  197. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  198. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  199. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  200. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  201. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  202. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  203. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  204. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  205. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  206. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  207. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  208. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  209. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  210. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  211. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  212. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  213. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  214. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  215. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  216. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  217. package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  218. package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  219. package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  220. package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  221. package/skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  222. package/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  223. package/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  224. package/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  225. package/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  226. package/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  227. package/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  228. package/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  229. package/skills/docx/scripts/office/soffice.py +192 -0
  230. package/skills/docx/scripts/office/validate.py +173 -0
  231. package/skills/docx/scripts/office/validators/__init__.py +15 -0
  232. package/skills/docx/scripts/office/validators/base.py +875 -0
  233. package/skills/docx/scripts/office/validators/docx.py +466 -0
  234. package/skills/docx/scripts/office/validators/pptx.py +441 -0
  235. package/skills/docx/scripts/office/validators/redlining.py +299 -0
  236. package/skills/docx/scripts/templates/comments.xml +3 -0
  237. package/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  238. package/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  239. package/skills/docx/scripts/templates/commentsIds.xml +3 -0
  240. package/skills/docx/scripts/templates/people.xml +3 -0
  241. package/skills/domain-name-brainstormer/SKILL.md +217 -0
  242. package/skills/executing-plans/SKILL.md +64 -0
  243. package/skills/file-organizer/SKILL.md +433 -0
  244. package/skills/finishing-a-development-branch/SKILL.md +201 -0
  245. package/skills/frontend-design/LICENSE.txt +177 -0
  246. package/skills/frontend-design/SKILL.md +55 -0
  247. package/skills/image-enhancer/SKILL.md +106 -0
  248. package/skills/internal-comms/LICENSE.txt +202 -0
  249. package/skills/internal-comms/SKILL.md +32 -0
  250. package/skills/internal-comms/examples/3p-updates.md +47 -0
  251. package/skills/internal-comms/examples/company-newsletter.md +65 -0
  252. package/skills/internal-comms/examples/faq-answers.md +30 -0
  253. package/skills/internal-comms/examples/general-comms.md +16 -0
  254. package/skills/invoice-organizer/SKILL.md +452 -0
  255. package/skills/lead-research-assistant/SKILL.md +205 -0
  256. package/skills/mcp-builder/LICENSE.txt +202 -0
  257. package/skills/mcp-builder/SKILL.md +236 -0
  258. package/skills/mcp-builder/reference/evaluation.md +602 -0
  259. package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  260. package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  261. package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  262. package/skills/mcp-builder/scripts/connections.py +151 -0
  263. package/skills/mcp-builder/scripts/evaluation.py +373 -0
  264. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  265. package/skills/mcp-builder/scripts/requirements.txt +2 -0
  266. package/skills/meeting-insights-analyzer/SKILL.md +327 -0
  267. package/skills/pdf/LICENSE.txt +30 -0
  268. package/skills/pdf/SKILL.md +314 -0
  269. package/skills/pdf/forms.md +294 -0
  270. package/skills/pdf/reference.md +612 -0
  271. package/skills/pdf/scripts/check_bounding_boxes.py +65 -0
  272. package/skills/pdf/scripts/check_fillable_fields.py +11 -0
  273. package/skills/pdf/scripts/convert_pdf_to_images.py +33 -0
  274. package/skills/pdf/scripts/create_validation_image.py +37 -0
  275. package/skills/pdf/scripts/extract_form_field_info.py +122 -0
  276. package/skills/pdf/scripts/extract_form_structure.py +115 -0
  277. package/skills/pdf/scripts/fill_fillable_fields.py +98 -0
  278. package/skills/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
  279. package/skills/pptx/LICENSE.txt +30 -0
  280. package/skills/pptx/SKILL.md +238 -0
  281. package/skills/pptx/scripts/__init__.py +0 -0
  282. package/skills/pptx/scripts/add_slide.py +367 -0
  283. package/skills/pptx/scripts/clean.py +309 -0
  284. package/skills/pptx/scripts/office/helpers/__init__.py +111 -0
  285. package/skills/pptx/scripts/office/helpers/pptx_chart.py +170 -0
  286. package/skills/pptx/scripts/office/helpers/pptx_slide.py +60 -0
  287. package/skills/pptx/scripts/office/helpers/pptx_theme.py +114 -0
  288. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  289. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  290. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  291. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  292. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  293. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  294. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  295. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  296. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  297. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  298. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  299. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  300. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  301. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  302. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  303. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  304. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  305. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  306. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  307. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  308. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  309. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  310. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  311. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  312. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  313. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  314. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  315. package/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  316. package/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  317. package/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  318. package/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  319. package/skills/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
  320. package/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  321. package/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  322. package/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  323. package/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  324. package/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  325. package/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  326. package/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  327. package/skills/pptx/scripts/office/soffice.py +192 -0
  328. package/skills/pptx/scripts/office/validate.py +173 -0
  329. package/skills/pptx/scripts/office/validators/__init__.py +15 -0
  330. package/skills/pptx/scripts/office/validators/base.py +875 -0
  331. package/skills/pptx/scripts/office/validators/docx.py +466 -0
  332. package/skills/pptx/scripts/office/validators/pptx.py +441 -0
  333. package/skills/pptx/scripts/office/validators/redlining.py +299 -0
  334. package/skills/pptx/scripts/thumbnail.py +311 -0
  335. package/skills/raffle-winner-picker/SKILL.md +165 -0
  336. package/skills/receiving-code-review/SKILL.md +205 -0
  337. package/skills/requesting-code-review/SKILL.md +95 -0
  338. package/skills/requesting-code-review/code-reviewer.md +172 -0
  339. package/skills/skill-creator/LICENSE.txt +202 -0
  340. package/skills/skill-creator/SKILL.md +485 -0
  341. package/skills/skill-creator/agents/analyzer.md +274 -0
  342. package/skills/skill-creator/agents/comparator.md +202 -0
  343. package/skills/skill-creator/agents/grader.md +223 -0
  344. package/skills/skill-creator/assets/eval_review.html +146 -0
  345. package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  346. package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  347. package/skills/skill-creator/references/schemas.md +430 -0
  348. package/skills/skill-creator/scripts/__init__.py +0 -0
  349. package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  350. package/skills/skill-creator/scripts/generate_report.py +326 -0
  351. package/skills/skill-creator/scripts/improve_description.py +247 -0
  352. package/skills/skill-creator/scripts/package_skill.py +136 -0
  353. package/skills/skill-creator/scripts/quick_validate.py +103 -0
  354. package/skills/skill-creator/scripts/run_eval.py +310 -0
  355. package/skills/skill-creator/scripts/run_loop.py +328 -0
  356. package/skills/skill-creator/scripts/utils.py +47 -0
  357. package/skills/skill-share/SKILL.md +80 -0
  358. package/skills/slack-gif-creator/LICENSE.txt +202 -0
  359. package/skills/slack-gif-creator/SKILL.md +254 -0
  360. package/skills/slack-gif-creator/core/easing.py +234 -0
  361. package/skills/slack-gif-creator/core/frame_composer.py +176 -0
  362. package/skills/slack-gif-creator/core/gif_builder.py +269 -0
  363. package/skills/slack-gif-creator/core/validators.py +136 -0
  364. package/skills/slack-gif-creator/requirements.txt +4 -0
  365. package/skills/staff-engineer-review/SKILL.md +172 -0
  366. package/skills/subagent-driven-development/SKILL.md +503 -0
  367. package/skills/subagent-driven-development/implementer-prompt.md +142 -0
  368. package/skills/subagent-driven-development/re-review-prompt.md +106 -0
  369. package/skills/subagent-driven-development/scripts/review-package +46 -0
  370. package/skills/subagent-driven-development/scripts/sdd-workspace +40 -0
  371. package/skills/subagent-driven-development/scripts/task-brief +41 -0
  372. package/skills/subagent-driven-development/task-reviewer-prompt.md +185 -0
  373. package/skills/systematic-debugging/CREATION-LOG.md +119 -0
  374. package/skills/systematic-debugging/SKILL.md +283 -0
  375. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  376. package/skills/systematic-debugging/condition-based-waiting.md +115 -0
  377. package/skills/systematic-debugging/defense-in-depth.md +122 -0
  378. package/skills/systematic-debugging/find-polluter.sh +72 -0
  379. package/skills/systematic-debugging/root-cause-tracing.md +169 -0
  380. package/skills/systematic-debugging/test-academic.md +14 -0
  381. package/skills/systematic-debugging/test-pressure-1.md +58 -0
  382. package/skills/systematic-debugging/test-pressure-2.md +68 -0
  383. package/skills/systematic-debugging/test-pressure-3.md +69 -0
  384. package/skills/test-driven-development/SKILL.md +320 -0
  385. package/skills/test-driven-development/writing-good-tests.md +198 -0
  386. package/skills/theme-factory/LICENSE.txt +202 -0
  387. package/skills/theme-factory/SKILL.md +59 -0
  388. package/skills/theme-factory/theme-showcase.pdf +0 -0
  389. package/skills/theme-factory/themes/arctic-frost.md +19 -0
  390. package/skills/theme-factory/themes/botanical-garden.md +19 -0
  391. package/skills/theme-factory/themes/desert-rose.md +19 -0
  392. package/skills/theme-factory/themes/forest-canopy.md +19 -0
  393. package/skills/theme-factory/themes/golden-hour.md +19 -0
  394. package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
  395. package/skills/theme-factory/themes/modern-minimalist.md +19 -0
  396. package/skills/theme-factory/themes/ocean-depths.md +19 -0
  397. package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
  398. package/skills/theme-factory/themes/tech-innovation.md +19 -0
  399. package/skills/using-git-worktrees/SKILL.md +167 -0
  400. package/skills/using-superpowers/SKILL.md +62 -0
  401. package/skills/using-superpowers/references/antigravity-tools.md +23 -0
  402. package/skills/using-superpowers/references/codex-tools.md +39 -0
  403. package/skills/using-superpowers/references/gemini-tools.md +63 -0
  404. package/skills/using-superpowers/references/pi-tools.md +16 -0
  405. package/skills/verification-before-completion/SKILL.md +120 -0
  406. package/skills/video-downloader/SKILL.md +112 -0
  407. package/skills/web-artifacts-builder/LICENSE.txt +202 -0
  408. package/skills/web-artifacts-builder/SKILL.md +74 -0
  409. package/skills/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
  410. package/skills/web-artifacts-builder/scripts/init-artifact.sh +322 -0
  411. package/skills/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  412. package/skills/webapp-testing/LICENSE.txt +202 -0
  413. package/skills/webapp-testing/SKILL.md +96 -0
  414. package/skills/webapp-testing/examples/console_logging.py +35 -0
  415. package/skills/webapp-testing/examples/element_discovery.py +40 -0
  416. package/skills/webapp-testing/examples/static_html_automation.py +33 -0
  417. package/skills/webapp-testing/scripts/with_server.py +106 -0
  418. package/skills/writing-plans/SKILL.md +168 -0
  419. package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -0
  420. package/skills/writing-skills/SKILL.md +679 -0
  421. package/skills/writing-skills/anthropic-best-practices.md +1150 -0
  422. package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  423. package/skills/writing-skills/graphviz-conventions.dot +172 -0
  424. package/skills/writing-skills/persuasion-principles.md +187 -0
  425. package/skills/writing-skills/render-graphs.js +168 -0
  426. package/skills/writing-skills/testing-skills-with-subagents.md +384 -0
  427. package/skills/xlsx/LICENSE.txt +30 -0
  428. package/skills/xlsx/SKILL.md +99 -0
  429. package/skills/xlsx/scripts/office/helpers/__init__.py +111 -0
  430. package/skills/xlsx/scripts/office/helpers/pptx_chart.py +170 -0
  431. package/skills/xlsx/scripts/office/helpers/pptx_slide.py +60 -0
  432. package/skills/xlsx/scripts/office/helpers/pptx_theme.py +114 -0
  433. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  434. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  435. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  436. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  437. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  438. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  439. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  440. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  441. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  442. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  443. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  444. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  445. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  446. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  447. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  448. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  449. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  450. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  451. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  452. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  453. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  454. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  455. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  456. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  457. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  458. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  459. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  460. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  461. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  462. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  463. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  464. package/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  465. package/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  466. package/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  467. package/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  468. package/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  469. package/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  470. package/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  471. package/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  472. package/skills/xlsx/scripts/office/soffice.py +192 -0
  473. package/skills/xlsx/scripts/office/validate.py +173 -0
  474. package/skills/xlsx/scripts/office/validators/__init__.py +15 -0
  475. package/skills/xlsx/scripts/office/validators/base.py +875 -0
  476. package/skills/xlsx/scripts/office/validators/docx.py +466 -0
  477. package/skills/xlsx/scripts/office/validators/pptx.py +441 -0
  478. package/skills/xlsx/scripts/office/validators/redlining.py +299 -0
  479. package/skills/xlsx/scripts/recalc.py +308 -0
  480. package/src/account/account.ts +1 -2
  481. package/src/account/repo.ts +2 -1
  482. package/src/acp/content.ts +1 -1
  483. package/src/acp/directory.ts +2 -2
  484. package/src/acp/event.ts +1 -1
  485. package/src/acp/session.ts +2 -2
  486. package/src/agent/agent.ts +62 -31
  487. package/src/agent/subagent-permissions.ts +1 -1
  488. package/src/cli/cmd/account.ts +2 -1
  489. package/src/cli/cmd/debug/agent.handler.ts +1 -1
  490. package/src/cli/cmd/export.ts +1 -1
  491. package/src/cli/cmd/github.handler.ts +4 -2
  492. package/src/cli/cmd/mcp.ts +2 -2
  493. package/src/cli/cmd/run/footer.prompt.tsx +7 -2
  494. package/src/cli/cmd/stats.ts +1 -1
  495. package/src/cli/network.ts +1 -1
  496. package/src/config/config.ts +3 -5
  497. package/src/config/plugin.ts +1 -1
  498. package/src/control-plane/workspace.ts +3 -2
  499. package/src/effect/app-node-builder-v1.ts +1 -1
  500. package/src/effect/instance-state.ts +2 -1
  501. package/src/effect/runner.ts +2 -1
  502. package/src/effect/runtime-flags.ts +2 -1
  503. package/src/image/image.ts +1 -1
  504. package/src/installation/index.ts +4 -8
  505. package/src/lsp/diagnostic.ts +1 -1
  506. package/src/mcp/catalog.ts +1 -1
  507. package/src/mcp/index.ts +2 -2
  508. package/src/mcp/oauth-provider.ts +1 -1
  509. package/src/permission/index.ts +7 -3
  510. package/src/plugin/index.ts +7 -3
  511. package/src/plugin/loader.ts +1 -1
  512. package/src/plugin/tui/runtime.ts +1 -1
  513. package/src/project/bootstrap-service.ts +2 -1
  514. package/src/project/project.ts +3 -2
  515. package/src/project/vcs.ts +1 -1
  516. package/src/provider/error.ts +1 -1
  517. package/src/provider/provider.ts +3 -2
  518. package/src/question/index.ts +1 -1
  519. package/src/server/auth.ts +2 -1
  520. package/src/server/routes/instance/httpapi/groups/metadata.ts +1 -1
  521. package/src/server/routes/instance/httpapi/handlers/control-plane.ts +2 -1
  522. package/src/server/routes/instance/httpapi/handlers/control.ts +2 -2
  523. package/src/server/routes/instance/httpapi/handlers/experimental.ts +2 -1
  524. package/src/server/routes/instance/httpapi/handlers/global.ts +2 -1
  525. package/src/server/routes/instance/httpapi/handlers/mcp.ts +2 -1
  526. package/src/server/routes/instance/httpapi/handlers/permission.ts +1 -1
  527. package/src/server/routes/instance/httpapi/handlers/project-copy.ts +1 -1
  528. package/src/server/routes/instance/httpapi/handlers/provider.ts +3 -2
  529. package/src/server/routes/instance/httpapi/handlers/pty.ts +1 -1
  530. package/src/server/routes/instance/httpapi/handlers/question.ts +1 -1
  531. package/src/server/routes/instance/httpapi/handlers/session.ts +5 -5
  532. package/src/server/routes/instance/httpapi/handlers/sync.ts +2 -2
  533. package/src/server/routes/instance/httpapi/handlers/tui.ts +1 -1
  534. package/src/server/routes/instance/httpapi/handlers/workspace.ts +2 -1
  535. package/src/server/routes/instance/httpapi/lifecycle.ts +2 -1
  536. package/src/server/routes/instance/httpapi/middleware/instance-context.ts +1 -1
  537. package/src/server/routes/instance/httpapi/middleware/proxy.ts +2 -1
  538. package/src/server/routes/instance/httpapi/server.ts +2 -1
  539. package/src/server/shared/fence.ts +1 -1
  540. package/src/server/shared/ui.ts +2 -1
  541. package/src/session/compaction.ts +5 -4
  542. package/src/session/instruction.ts +1 -1
  543. package/src/session/llm/native-runtime.ts +2 -1
  544. package/src/session/llm/request.ts +2 -2
  545. package/src/session/llm.ts +2 -2
  546. package/src/session/message-v2.ts +5 -16
  547. package/src/session/overflow.ts +2 -2
  548. package/src/session/prompt.ts +4 -3
  549. package/src/session/reminders.ts +2 -2
  550. package/src/session/revert.ts +1 -1
  551. package/src/session/run-state.ts +4 -3
  552. package/src/session/session.ts +2 -1
  553. package/src/session/status.ts +1 -1
  554. package/src/session/summary.ts +1 -1
  555. package/src/session/system.ts +1 -1
  556. package/src/session/todo.ts +1 -1
  557. package/src/session/tools.ts +6 -6
  558. package/src/share/session.ts +1 -1
  559. package/src/share/share-next.ts +1 -1
  560. package/src/tool/computer.ts +195 -136
  561. package/src/tool/edit.ts +1 -1
  562. package/src/tool/mcp-websearch.ts +2 -1
  563. package/src/tool/plan.ts +1 -1
  564. package/src/tool/registry.ts +2 -2
  565. package/src/tool/task.ts +1 -1
  566. package/src/tool/tool.ts +2 -2
  567. package/src/util/bom.ts +1 -1
@@ -0,0 +1,217 @@
1
+ # Managed Agents — Common Client Patterns
2
+
3
+ Patterns you'll write on the client side when driving a Managed Agent session, grounded in working SDK examples.
4
+
5
+ Code samples are TypeScript — other languages follow the same shape; see `{lang}/managed-agents/README.md` (cURL and C#: `curl/managed-agents.md`) for equivalents.
6
+
7
+ ---
8
+
9
+ ## 1. Lossless stream reconnect
10
+
11
+ **Problem:** SSE has no replay. If the connection drops mid-session, a naive reconnect re-opens the stream from "now" and you silently miss every event emitted in between.
12
+
13
+ **Solution:** on reconnect, fetch the full event history via `events.list()` *before* consuming the live stream, and dedupe on event ID as the live stream catches up.
14
+
15
+ ```ts
16
+ const seenEventIds = new Set<string>()
17
+ const stream = await client.beta.sessions.events.stream(session.id)
18
+
19
+ // Stream is now open and buffering server-side. Read history first.
20
+ for await (const event of client.beta.sessions.events.list(session.id)) {
21
+ seenEventIds.add(event.id)
22
+ handle(event)
23
+ }
24
+
25
+ // Tail the live stream. Dedupe only gates handle() — terminal checks must run
26
+ // even for already-seen events, or a terminal event that was in the history
27
+ // response gets skipped by `continue` and the loop never exits.
28
+ for await (const event of stream) {
29
+ if (!seenEventIds.has(event.id)) {
30
+ seenEventIds.add(event.id)
31
+ handle(event)
32
+ }
33
+ if (event.type === 'session.status_terminated') break
34
+ if (event.type === 'session.status_idle' && event.stop_reason.type !== 'requires_action') break
35
+ }
36
+ ```
37
+
38
+ ---
39
+
40
+ ## 2. `processed_at` — queued vs processed
41
+
42
+ Every event on the stream carries `processed_at` (ISO 8601), set when the event finishes processing. For client-sent events (`user.message`, `user.interrupt`, `user.tool_confirmation`) it's `null` while the event is queued behind earlier ones, and populated once the agent processes it — so the same event appears on the stream twice, once with `null` and once with a timestamp.
43
+
44
+ **Three event types skip the queued phase:** `user.define_outcome`, `user.custom_tool_result`, and `user.tool_result` are processed on receipt and echoed back with `processed_at` already populated. A pending → acknowledged UI that assumes "first sighting is always `null`" will never clear for these — treat a populated `processed_at` on first sighting as immediately acknowledged.
45
+
46
+ ```ts
47
+ for await (const event of stream) {
48
+ if (event.type === 'user.message') {
49
+ if (event.processed_at == null) onQueued(event.id)
50
+ else onProcessed(event.id, event.processed_at)
51
+ }
52
+ }
53
+ ```
54
+
55
+ Use this to drive pending → acknowledged UI state for anything you send. How you map a locally-rendered optimistic message to the server-assigned `event.id` is application-specific (typically via the return value of `events.send()` or FIFO ordering).
56
+
57
+ ---
58
+
59
+ ## 3. Interrupt a running session
60
+
61
+ Send `user.interrupt` as a normal event. The session keeps running until it reaches a safe boundary, then goes idle.
62
+
63
+ ```ts
64
+ await client.beta.sessions.events.send(session.id, {
65
+ events: [{ type: 'user.interrupt' }],
66
+ })
67
+
68
+ // Drain until the session is truly done — see Pattern 5 for the full gate.
69
+ for await (const event of stream) {
70
+ if (event.type === 'session.status_terminated') break
71
+ if (
72
+ event.type === 'session.status_idle' &&
73
+ event.stop_reason.type !== 'requires_action'
74
+ ) break
75
+ }
76
+ ```
77
+
78
+ Reference: `interrupt.ts` — sends the interrupt the moment it sees `span.model_request_start`, drains to idle, then verifies via `sessions.retrieve()`.
79
+
80
+ ---
81
+
82
+ ## 4. `tool_confirmation` round-trip
83
+
84
+ When the agent has `permission_policy: { type: 'always_ask' }`, any call to that tool fires an `agent.tool_use` event with `evaluated_permission === 'ask'` and the session goes idle waiting for a decision. Respond with `user.tool_confirmation`.
85
+
86
+ ```ts
87
+ for await (const event of stream) {
88
+ if (event.type === 'agent.tool_use' && event.evaluated_permission === 'ask') {
89
+ await client.beta.sessions.events.send(session.id, {
90
+ events: [{
91
+ type: 'user.tool_confirmation',
92
+ tool_use_id: event.id, // not a toolu_ id — use event.id
93
+ result: 'allow', // or 'deny'
94
+ // deny_message: '...', // optional, only with result: 'deny'
95
+ }],
96
+ })
97
+ }
98
+ }
99
+ ```
100
+
101
+ Key points:
102
+ - `tool_use_id` is `event.id` (typically `sevt_...`), **not** a `toolu_...` ID.
103
+ - `result` is `'allow' | 'deny'`. Use `deny_message` to tell the model *why* you denied — it gets surfaced back to the agent.
104
+ - Multiple pending tools: respond once per `agent.tool_use` event with `evaluated_permission === 'ask'`.
105
+
106
+ Reference: `tool-permissions.ts`.
107
+
108
+ ---
109
+
110
+ ## 5. Correct idle-break gate
111
+
112
+ Do not break on `session.status_idle` alone. The session goes idle transiently — e.g. between parallel tool executions, while waiting for a `user.tool_confirmation`, or while awaiting a `user.custom_tool_result`. Break when idle with a terminal `stop_reason`, or on `session.status_terminated`.
113
+
114
+ ```ts
115
+ for await (const event of stream) {
116
+ handle(event)
117
+ if (event.type === 'session.status_terminated') break
118
+ if (event.type === 'session.status_idle') {
119
+ if (event.stop_reason.type === 'requires_action') continue // waiting on you — handle it
120
+ break // end_turn or retries_exhausted — both terminal
121
+ }
122
+ }
123
+ ```
124
+
125
+ `stop_reason.type` values on `session.status_idle`:
126
+ - `requires_action` — agent is waiting on a client-side event (tool confirmation, custom tool result). Handle it, don't break.
127
+ - `retries_exhausted` — terminal failure. Break, then check `sessions.retrieve()` for the error state.
128
+ - `end_turn` — normal completion.
129
+
130
+ ---
131
+
132
+ ## 6. Post-idle status-write race
133
+
134
+ The SSE stream emits `session.status_idle` slightly before the session's queryable status reflects it. Clients that break on idle and immediately call `sessions.delete()` or `sessions.archive()` will intermittently 400 with "cannot delete/archive while running."
135
+
136
+ Poll before cleanup:
137
+
138
+ ```ts
139
+ let s
140
+ for (let i = 0; i < 10; i++) {
141
+ s = await client.beta.sessions.retrieve(session.id)
142
+ if (s.status !== 'running') break
143
+ await new Promise(r => setTimeout(r, 200))
144
+ }
145
+ if (s?.status !== 'running') {
146
+ await client.beta.sessions.archive(session.id)
147
+ } // else: still running after 2s — don't archive, let it settle or escalate
148
+ ```
149
+
150
+ ---
151
+
152
+ ## 7. Stream-first, then send
153
+
154
+ Always open the stream **before** sending the kickoff event. Otherwise the agent may process the event and emit the first events before your consumer is attached, and you'll miss them.
155
+
156
+ ```ts
157
+ const stream = await client.beta.sessions.events.stream(session.id)
158
+ await client.beta.sessions.events.send(session.id, {
159
+ events: [{ type: 'user.message', content: [{ type: 'text', text: 'Hello' }] }],
160
+ })
161
+ for await (const event of stream) { /* ... */ }
162
+ ```
163
+
164
+ The `Promise.all([stream, send])` shape works too, but stream-first is simpler and has the same effect — the stream starts buffering the moment it's opened.
165
+
166
+ ---
167
+
168
+ ## 8. File-mount gotchas
169
+
170
+ **The mounted resource has a different `file_id` than the file you uploaded.** Session creation makes a session-scoped copy.
171
+
172
+ ```ts
173
+ const uploaded = await client.beta.files.upload({ file })
174
+ // uploaded.id → the original file
175
+ const session = await client.beta.sessions.create({
176
+ /* ... */
177
+ resources: [{ type: 'file', file_id: uploaded.id, mount_path: '/workspace/data.csv' }],
178
+ })
179
+ // session.resources[0].file_id !== uploaded.id ← different IDs
180
+ ```
181
+
182
+ Delete the original via `files.delete(uploaded.id)`; the session-scoped copy is garbage-collected with the session. `mount_path` must be absolute — see `shared/managed-agents-environments.md`.
183
+
184
+ ---
185
+
186
+ ## 9. Secrets for non-MCP APIs and CLIs — keep them host-side via custom tools
187
+
188
+ **Problem:** you want the agent to call a third-party API or run a CLI that needs a secret (API key, token, service-account credential), but you can't or don't want to hand the secret to a vault.
189
+
190
+ **First check:** for cloud environments, the first-class answer is now a vault `environment_variable` credential — the agent's shell sees an opaque placeholder and the real secret is substituted at egress. See `shared/managed-agents-tools.md` → Vaults. Use this pattern instead when that doesn't fit: **self-hosted sandboxes** (env-var credentials not yet supported there), clients that reject the placeholder via local format validation, secrets that must never leave your infrastructure, or calls that need host-side binaries.
191
+
192
+ **Solution:** move the authenticated call to your side. Declare a custom tool on the agent; when the agent emits `agent.custom_tool_use`, your orchestrator (the process reading the SSE stream) executes the call with its own credentials and responds with `user.custom_tool_result`. The container never sees the key.
193
+
194
+ ```ts
195
+ // Agent template: declare the tool, no credentials
196
+ tools: [{ type: 'custom', name: 'linear_graphql', input_schema: { /* query, vars */ } }]
197
+
198
+ // Orchestrator: handle the call with host-side creds
199
+ for await (const event of stream) {
200
+ if (event.type === 'agent.custom_tool_use' && event.name === 'linear_graphql') {
201
+ const result = await linear.request(event.input.query, event.input.vars) // host's key
202
+ await client.beta.sessions.events.send(session.id, {
203
+ events: [{
204
+ type: 'user.custom_tool_result',
205
+ custom_tool_use_id: event.id,
206
+ content: [{ type: 'text', text: JSON.stringify(result) }],
207
+ }],
208
+ })
209
+ }
210
+ }
211
+ ```
212
+
213
+ Same shape works for `gh` CLI, local eval scripts, or anything else that needs host-side auth or binaries.
214
+
215
+ **Security note:** this does not expose a public endpoint. `agent.custom_tool_use` arrives on the SSE stream your orchestrator already holds open with your Anthropic API key, and `user.custom_tool_result` goes back via `events.send()` under the same key. Your orchestrator is a client, not a server — nothing unauthenticated is listening.
216
+
217
+ **Do not embed API keys in the system prompt or user messages as a workaround.** Prompts and messages are stored in the session's event history, returned by `events.list()`, and included in compaction summaries — a secret placed there is durably persisted and readable via the API for the life of the session.
@@ -0,0 +1,319 @@
1
+ # Managed Agents — Core Concepts
2
+
3
+ ## Architecture
4
+
5
+ Managed Agents is built around four core concepts:
6
+
7
+ | Concept | Endpoint | What it is |
8
+ |---|---|---|
9
+ | **Agent** | `/v1/agents` | A persisted, versioned object defining the agent's capabilities and persona: model, system prompt, tools, MCP servers, skills. **Must be created before starting a session.** See the Agents section below. |
10
+ | **Session** | `/v1/sessions` | A stateful interaction with an agent. References a pre-created agent by ID + an environment + initial instructions. Produces an event stream. |
11
+ | **Environment** | `/v1/environments` | A template defining the configuration for container provisioning. |
12
+ | **Container** | N/A | An isolated compute instance where the agent's **tools** execute (bash, file ops, code). The agent loop does not run here — it runs on Anthropic's orchestration layer and acts on the container via tool calls. |
13
+
14
+ ```
15
+ ┌─────────────────────────────────────┐
16
+ │ Anthropic orchestration layer │
17
+ Agent (config) ───────▶│ (agent loop: Claude + tool calls) │
18
+ └──────────────┬──────────────────────┘
19
+ │ tool calls
20
+
21
+ Environment (template) ──▶ Container (tool execution workspace)
22
+
23
+ Session ─┤
24
+ ├── Resources (files, repos, memory stores — attached at startup)
25
+ ├── Vault IDs (MCP credential references)
26
+ └── Conversation (event stream in/out)
27
+ ```
28
+
29
+ > **Agent creation is a prerequisite.** Sessions reference a pre-created agent by ID — `model`/`system`/`tools` live on the agent object, never on the session. Every flow starts with `POST /v1/agents`.
30
+
31
+ ---
32
+
33
+ ## Session Lifecycle
34
+
35
+ ```
36
+ rescheduling → running ↔ idle → terminated
37
+ ```
38
+
39
+ | Status | Description |
40
+ | -------------- | ------------------------------------------------------------------ |
41
+ | `idle` | Agent has finished the current task, and is awaiting input. It's either waiting for input to continue working via a `user.message` or blocked awaiting a `user.custom_tool_result` or `user.tool_confirmation`. The `stop_reason` attached contains more information about why the Agent has stopped working. |
42
+ | `running` | Session has starting running, and the Agent is actively doing work. |
43
+ | `rescheduling` | Session is (re)scheduling after a retryable error has occurred, ready to be picked up by the orchestration system. |
44
+ | `terminated` | Session has ended and is in an irreversible, unusable state — **either on completion or because of an unrecoverable error**. Terminated does not by itself mean failure; fetch the session to tell the two apart. |
45
+
46
+ - Events can be sent when the session is `running` or `idle`. Messages are queued and processed in order.
47
+ - The agent transitions `idle → running` when it receives a new event, then back to `idle` when done.
48
+ - Errors surface as `session.error` events in the stream, not as a status value.
49
+
50
+ Every session has a live trace view in the Anthropic Console at `https://platform.claude.com/workspaces/{workspace}/sessions/{session_id}`. Print this URL immediately after creating a session so the user can watch tool calls and messages stream in real time. **`{workspace}` is the workspace the API key belongs to** — use `default` only when that's the org's Default workspace. The session response does **not** include a workspace field and the Console has no workspace-agnostic session route, so for non-default workspaces substitute the workspace's ID (visible in the Console URL bar, or expose it as a config value alongside the API key). A `default` link to a session that lives in another workspace lands on a **"Session not found"** page — the **Search workspaces** button there will locate it, but it is not an automatic redirect.
51
+
52
+ ### Built-in session features
53
+
54
+ - **Context compaction** — if you approach max context, the API automatically condenses session history to keep the interaction going
55
+ - **Prompt caching** — historical repeated tokens are cached, reducing processing time and cost
56
+ - **Extended thinking** — on by default; `agent.thinking` events signal thinking progress and carry no thinking content
57
+
58
+ ### Session operations
59
+
60
+ | Operation | Notes |
61
+ |---|---|
62
+ | List / fetch | Paginated list or single resource by ID |
63
+ | Update | Only `title` is updatable |
64
+ | Archive | Session becomes **read-only**. Not reversible. |
65
+ | Delete | Permanently deletes session, event history, container, and checkpoints. |
66
+
67
+ These are ops/inspection calls — typically made from a terminal, not application code. From the shell (see `shared/anthropic-cli.md`):
68
+
69
+ ```sh
70
+ ant beta:sessions list --transform '{id,title,status,created_at}' --format jsonl
71
+ ant beta:sessions retrieve --session-id "$SID"
72
+ ant beta:sessions:events stream --session-id "$SID" # watch events live
73
+ ant beta:sessions archive --session-id "$SID"
74
+ ant beta:sessions delete --session-id "$SID"
75
+ ```
76
+
77
+ ---
78
+
79
+ ## Sessions
80
+
81
+ A session is a running agent instance inside an environment.
82
+
83
+ ### Session Object
84
+
85
+ Key fields returned by the API:
86
+
87
+ | Field | Type | Description |
88
+ | --------------- | -------- | --------------------------------------------------- |
89
+ | `type` | string | Always `"session"` |
90
+ | `id` | string | Unique session ID |
91
+ | `title` | string | Human-readable title |
92
+ | `status` | string | `idle`, `running`, `rescheduling`, `terminated` |
93
+ | `created_at` | string | ISO 8601 timestamp |
94
+ | `updated_at` | string | ISO 8601 timestamp |
95
+ | `archived_at` | string | ISO 8601 timestamp (nullable) |
96
+ | `environment_id` | string | Environment ID |
97
+ | `agent` | object | Agent configuration |
98
+ | `resources` | array | Attached files, repos, and memory stores |
99
+ | `metadata` | object | User-provided key-value pairs (max 8 keys) |
100
+ | `usage` | object | Token usage statistics |
101
+
102
+ ### Creating a session
103
+
104
+ **A session is meaningless without an agent.** Sessions reference a pre-created agent by ID. Create the agent first via `agents.create()`, then reference it:
105
+
106
+ ```ts
107
+ // 1. Create the agent (reusable, versioned)
108
+ const agent = await client.beta.agents.create(
109
+ {
110
+ name: "Coding Assistant",
111
+ model: "claude-opus-5",
112
+ system: "You are a helpful coding agent.",
113
+ tools: [{ type: "agent_toolset_20260401"}],
114
+ },
115
+ );
116
+
117
+ // 2. Start a session that references it
118
+ const session = await client.beta.sessions.create(
119
+ {
120
+ agent: agent.id, // string shorthand → latest version. Or: { type: "agent", id: agent.id, version: agent.version }
121
+ environment_id: environmentId,
122
+ title: "Hello World Session",
123
+ },
124
+ );
125
+ ```
126
+
127
+ > 💡 **Watch it live in Console.** While developing, print a link so you can click through to the session UI instead of parsing the event stream: `https://platform.claude.com/workspaces/{workspace}/sessions/{session.id}`. Use `default` for `{workspace}` only when the API key belongs to the org's Default workspace; otherwise substitute the workspace's ID (the session response does not carry it — read it from the Console URL bar or make it a config value). Include this `print`/`console.log` in code you generate for users who are iterating locally.
128
+
129
+ **Session creation parameters:**
130
+
131
+ | Field | Type | Required | Description |
132
+ | --------------- | -------- | -------- | ---------------------------------------------- |
133
+ | `agent` | string or object | **Yes** | Three forms: string shorthand `"agent_abc123"` (latest version); pinned `{type: "agent", id, version}`; or `{type: "agent_with_overrides", id, version?, ...}` to override `model`/`system`/`tools`/`mcp_servers`/`skills` for this session only — see § Override agent configuration for a session |
134
+ | `environment_id`| string | **Yes** | Environment ID |
135
+ | `title` | string | No | Human-readable name (appears in logs/dashboards) |
136
+ | `resources` | array | No | Files, GitHub repos, or memory stores, attached to the container at startup. Memory stores are session-create-only (not addable via `resources.add()`). |
137
+ | `initial_events`| array | No | Events to send at creation, processed in order — collapses create + first send into one call. See § Seeding a session with `initial_events` below. |
138
+ | `vault_ids` | array | No | Vault IDs (`vlt_*`) — MCP credentials with auto-refresh + `environment_variable` secrets substituted at egress. See `shared/managed-agents-tools.md` → Vaults. |
139
+ | `metadata` | object | No | User-provided key-value pairs |
140
+
141
+ #### Seeding a session with `initial_events`
142
+
143
+ Creating a session without `initial_events` registers the session in `idle` and starts no work; the sandbox is provisioned when the session first needs it. Passing a **non-empty** `initial_events` array starts the agent loop in the same call — the session is **created directly in `running`**, never passing through `idle`. A client that waits for an `idle → running` transition to know work began will wait forever; check `status` on the create response instead.
144
+
145
+ ```python
146
+ session = client.beta.sessions.create(
147
+ agent=AGENT_ID,
148
+ environment_id=ENVIRONMENT_ID,
149
+ initial_events=[
150
+ {"type": "user.message", "content": [{"type": "text", "text": "Review the auth module."}]},
151
+ ],
152
+ )
153
+ ```
154
+
155
+ - **Only `user.message` and `user.define_outcome` are accepted**, max **50** events. The tool-result kinds (`user.tool_confirmation`, `user.tool_result`, `user.custom_tool_result`) are rejected because no agent turn exists yet, and `user.interrupt` because there is no turn to stop. Unlike a scheduled deployment's `initial_events`, a session's does **not** accept `system.message`.
156
+ - Each event is validated and persisted before the create response returns, in list order, with a server-assigned ID — exactly as if you had posted it to the send-events endpoint immediately after creation. Per-event content rules are the same as on that endpoint.
157
+ - **The events are not echoed on the create response.** Read them back with `sessions.events.list(session.id)` if you need their server-assigned IDs.
158
+ - **Validation is all-or-nothing:** if any event fails, the whole request is rejected and no session is created. An empty list is equivalent to omitting the field.
159
+ - Rejections: more than one `user.define_outcome` → 400; a `user.define_outcome` without a `rubric` → 400; more than 100 file-sourced `document` content blocks across the whole list → 400; a request body over 32 MB → 413.
160
+
161
+ An outcome-driven session is therefore a single call — pass one `user.define_outcome` in `initial_events` instead of creating the session and then sending the event (see `shared/managed-agents-outcomes.md`).
162
+
163
+ **Agent configuration fields** (passed to `agents.create()`, not `sessions.create()`):
164
+
165
+ | Field | Type | Required | Description |
166
+ | ------------- | -------- | -------- | ---------------------------------------------- |
167
+ | `name` | string | **Yes** | Human-readable name (1-256 chars) |
168
+ | `model` | string or object | **Yes** | Claude model ID (bare string, or an object taking `id`, `speed`, and `effort`). All Claude 4.5+ models supported. See § Effort on the agent model below. |
169
+ | `system` | string | No | System prompt — defines the agent's behavior (up to 100K chars) |
170
+ | `tools` | array | No | Encompasses three kinds: (1) pre-built Claude Agent tools (`agent_toolset_20260401`), (2) MCP tools (`mcp_toolset`), and (3) custom client-side tools. Max 128. |
171
+ | `mcp_servers` | array | No | MCP server connections — standardized third-party capabilities (e.g. GitHub, Asana). Max 20, unique names. See `shared/managed-agents-tools.md` → MCP Servers. |
172
+ | `skills` | array | No | Customized "best-practices" context with progressive disclosure. Max 20. See `shared/managed-agents-tools.md` → Skills. |
173
+ | `description` | string | No | Description of the agent (up to 2048 chars) |
174
+ | `multiagent` | object | No | `{type: "coordinator", agents: [...]}` — roster this agent may delegate to. See `shared/managed-agents-multiagent.md`. |
175
+ | `metadata` | object | No | Arbitrary key-value pairs (max 16, keys ≤64 chars, values ≤512 chars) |
176
+
177
+ ---
178
+
179
+ ## Agents
180
+
181
+ **This is where every Managed Agents flow begins.** The agent object is a persisted, versioned configuration — you create it once, then reference it by ID every time you start a session. No agent → no session.
182
+
183
+ ### Agent Object
184
+
185
+ The API is **flat** — `model`, `system`, `tools` etc. are top-level fields, not wrapped in an `agent:{}` sub-object.
186
+
187
+ | Field | Type | Required | Description |
188
+ | ------------------ | -------- | -------- | -------------------------------------------------- |
189
+ | `name` | string | Yes | Human-readable name |
190
+ | `model` | string or object | Yes | Claude model ID — bare string, or `{id, speed?, effort?}` |
191
+ | `system` | string | No | System prompt |
192
+ | `tools` | array | No | Agent toolset / MCP toolset / custom tools |
193
+ | `mcp_servers` | array | No | MCP server connections |
194
+ | `skills` | array | No | Skill references (max 20) |
195
+ | `description` | string | No | Description of the agent |
196
+ | `multiagent` | object | No | Coordinator roster — see `shared/managed-agents-multiagent.md` |
197
+ | `metadata` | object | No | Arbitrary key-value pairs |
198
+
199
+ ### Lifecycle: create once, run many, update in place
200
+
201
+ The agent is a **persistent resource**, not a per-run parameter. The intended pattern:
202
+
203
+ ```
204
+ ┌─ setup (once) ─────────┐ ┌─ runtime (every invocation) ─┐
205
+ │ agents.create() │ │ sessions.create( │
206
+ │ → store agent_id │ ──→ │ agent={type:..., id: ID} │
207
+ │ in config/env/db │ │ ) │
208
+ └────────────────────────┘ └──────────────────────────────┘
209
+ ```
210
+
211
+ **Anti-pattern:** calling `agents.create()` at the top of every script run. This accumulates orphaned agent objects, pays create latency on every invocation, and defeats the versioning model. If you see `agents.create()` in a function that's called per-request or per-cron-tick, that's wrong — hoist it to one-time setup and persist the ID.
212
+
213
+ > **Recommended — define agents and environments as YAML + apply via the `ant` CLI.** The split is **CLI for the control plane, SDK for the data plane**: agents and environments are relatively static resources you manage with `ant` (version-controlled YAML, applied from CI); sessions are dynamic and driven by your application through the SDK. See `shared/anthropic-cli.md` → *Version-controlled Managed Agents resources* for the `ant beta:agents create < agent.yaml` / `update --version N` flow. The SDK `agents.create()` call shown elsewhere in this doc is the in-code equivalent — use it when you need to provision programmatically, but prefer the YAML flow for anything a human maintains.
214
+
215
+ ### Effort on the agent model
216
+
217
+ Pass `model` as an object to set the effort level: `{"id": "claude-opus-5", "effort": "high"}`. `effort` accepts a level string (`low`, `medium`, `high`, `xhigh`, `max`) or an object such as `{"type": "high"}`. The create/update response echoes it in object form and fills in omitted `model` fields with their defaults.
218
+
219
+ > ⚠️ **Effort is agent configuration only.** An `effort` set inside a per-session `model` override is **not applied** — the session runs at the agent's effort. To change effort you must update the agent (or point the session at a different agent). This is the one field where the override form silently does nothing rather than erroring.
220
+
221
+ The same object form carries `speed` for fast mode: `{"id": "claude-opus-5", "speed": "fast"}`.
222
+
223
+ ### Versioning
224
+
225
+ Each `POST /v1/agents/{id}` (update) creates a new immutable version (numeric timestamp, e.g. `1772585501101368014`). The agent's history is append-only — you can't edit a past version.
226
+
227
+ **`version` on update is optional.** Supply it for optimistic concurrency, or omit it to apply the update unconditionally:
228
+
229
+ | `version` | Behavior | Fits |
230
+ |---|---|---|
231
+ | Supplied (must be ≥ 1) | 409 if it doesn't match the agent's current version — **even when the fields you send already equal the stored values**. Re-read and retry. | Interactive callers; the recommended default |
232
+ | Omitted | Applies unconditionally. The most recent update silently replaces any concurrent one, with no error to either caller. | Declarative apply loops — e.g. a CI job syncing checked-in agent definitions, where the loop owns the agent |
233
+
234
+ **Update semantics.** Omitted fields are preserved. Scalar fields (`model`, `system`, `name`, `description`) are replaced; `system` and `description` can be cleared with `null`, while `model` and `name` cannot. Array fields (`tools`, `mcp_servers`, `skills`) are replaced wholesale — `null` or `[]` clears them. **`effort` is the exception inside a `model` object you supply:** if the model `id` is unchanged, omitting `effort` leaves the stored level alone; if you change the `id`, an omitted `effort` resets to the new model's default.
235
+
236
+ **Why version:**
237
+ - **Reproducibility** — pin a session to a known-good config: `{type: "agent", id, version: 3}`
238
+ - **Safe iteration** — update the agent without breaking sessions already running on the old version
239
+ - **Rollback** — if a new system prompt regresses, pin new sessions back to the prior version while you debug
240
+
241
+ **`version` is optional.** Omit it (or use the string shorthand `agent="agent_abc123"`) to get the latest version at session-creation time. Pass it explicitly (`{type: "agent", id, version: N}`) to pin for reproducibility.
242
+
243
+ **Getting the version to pin:** `agents.create()` and `agents.update()` both return `version` in the response. Store it alongside `agent_id`. To fetch the current latest for an existing agent: `GET /v1/agents/{id}` → `.version`.
244
+
245
+ **When to update vs create new:** Update (`POST /v1/agents/{id}`) when it's conceptually the same agent with tweaked behavior (better prompt, extra tool). Create a new agent when it's a different persona/purpose. Rule of thumb: if you'd give it the same `name`, update.
246
+
247
+ ### Agent Endpoints
248
+
249
+ | Operation | Method | Path |
250
+ | ---------------- | -------- | ------------------------------------- |
251
+ | Create | `POST` | `/v1/agents` |
252
+ | List | `GET` | `/v1/agents` |
253
+ | Get | `GET` | `/v1/agents/{id}` |
254
+ | Update | `POST` | `/v1/agents/{id}` |
255
+ | Archive | `POST` | `/v1/agents/{id}/archive` |
256
+
257
+ > ⚠️ **Archive is permanent.** Archiving makes the agent read-only: existing sessions continue to run, but **new sessions cannot reference it**, and there is no unarchive. Since agents have no `delete`, this is the terminal lifecycle state. Never archive a production agent as routine cleanup — confirm with the user first.
258
+
259
+ ### Using an Agent in a Session
260
+
261
+ Reference the agent by string ID (latest version) or by object with an explicit version:
262
+
263
+ ```python
264
+ # String shorthand — uses the agent's latest version
265
+ session = client.beta.sessions.create(
266
+ agent=agent.id,
267
+ environment_id=environment_id,
268
+ )
269
+
270
+ # Or pin to a specific version (int)
271
+ session = client.beta.sessions.create(
272
+ agent={"type": "agent", "id": agent.id, "version": agent.version},
273
+ environment_id=environment_id,
274
+ )
275
+ ```
276
+
277
+ ### Override agent configuration for a session
278
+
279
+ The third `agent` form, `agent_with_overrides`, replaces parts of the agent's configuration for **a single session** — try a different model or grant an extra tool without versioning the agent. Pass `id` (and optionally `version`; omitted = latest, same default as the other two forms) plus any of `model`, `system`, `tools`, `mcp_servers`, `skills`:
280
+
281
+ ```python
282
+ session = client.beta.sessions.create(
283
+ agent={
284
+ "type": "agent_with_overrides",
285
+ "id": agent.id,
286
+ "model": "claude-opus-5", # replace the agent's model for this session
287
+ "system": None, # clear the system prompt for this session
288
+ },
289
+ environment_id=environment_id,
290
+ )
291
+ ```
292
+
293
+ Each overridable field follows tri-state rules:
294
+ - **Omit** → the session inherits the value from the referenced agent version.
295
+ - **`null` (or `[]` for list fields)** → the session runs with that field cleared. Applies in full to `system` and `skills`. Three exceptions: `model` is never clearable (`model: null` → 400 `agent_model_required`); clearing `tools` returns 400 when the session's effective `skills` is non-empty (skills require the `read` tool); and clearing `mcp_servers` returns 400 when the effective `tools` still contains an `mcp_toolset` referencing one of the agent's servers — override `tools` in the same request to drop those entries, then clear `mcp_servers`.
296
+ - **A value** → replaces the agent's value **in full**. Overrides never merge — a `tools` override must list every tool the session should have. One exception: an `effort` level inside a `model` override is **not applied** (set it on the agent instead — see § Effort on the agent model).
297
+
298
+ Overrides are session-local: they do **not** modify the agent resource or create a new agent version. The response's `agent` object reflects the post-override configuration, while its `id` and `version` still identify the base agent — so you can trace a session back to its base. In multiagent sessions, overrides apply to the coordinator and its `{type: "self"}` copies; roster agents referenced by ID always use their own as-created configuration (see `shared/managed-agents-multiagent.md`).
299
+
300
+ ### Updating the agent configuration mid-session
301
+
302
+ `sessions.update()` can change `agent.tools`, `agent.mcp_servers` (including permission policies), and `vault_ids` on an **existing** session. This is a **session-local override** — it does not create a new agent version and does not propagate back to the agent object. The provided arrays are **full replacements**; to append one tool, `GET` the session, modify, and `POST` back. The session must be `idle` — interrupt first if running.
303
+
304
+ Only `tools` and `mcp_servers` can change after a session is created — to run with a `model`, `system`, or `skills` other than the agent's values, use `agent_with_overrides` at create time (above). The agent's configured `system` field is fixed for the session's lifetime; you can still **append system-level context between turns** by sending a `system.message` event (see `shared/managed-agents-events.md` § Adding system context mid-session).
305
+
306
+ ```python
307
+ client.beta.sessions.update(
308
+ session.id,
309
+ agent={
310
+ "tools": [
311
+ {"type": "agent_toolset_20260401"},
312
+ {"type": "mcp_toolset", "mcp_server_name": "linear"},
313
+ ],
314
+ "mcp_servers": [{"type": "url", "name": "linear", "url": "https://mcp.linear.app/sse"}],
315
+ },
316
+ vault_ids=["vlt_..."],
317
+ )
318
+ ```
319
+