railwise-darwin-x64 1.2.29

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 (380) hide show
  1. package/bin/agent/adjustment_computer.md +44 -0
  2. package/bin/agent/chief_manager.md +82 -0
  3. package/bin/agent/commercial_specialist.md +39 -0
  4. package/bin/agent/cpiii_specialist.md +42 -0
  5. package/bin/agent/data_analyst.md +55 -0
  6. package/bin/agent/knowledge_curator.md +41 -0
  7. package/bin/agent/norm_librarian.md +38 -0
  8. package/bin/agent/qa_inspector.md +58 -0
  9. package/bin/agent/qa_reviewer.md +49 -0
  10. package/bin/agent/solution_architect.md +44 -0
  11. package/bin/agent/source_ingestor.md +38 -0
  12. package/bin/agent/technical_writer.md +50 -0
  13. package/bin/command/bid-prepare.md +21 -0
  14. package/bin/command/daily-report.md +20 -0
  15. package/bin/command/data-check.md +19 -0
  16. package/bin/command/emergency-response.md +62 -0
  17. package/bin/command/monthly-report.md +32 -0
  18. package/bin/command/payment-reminder.md +22 -0
  19. package/bin/command/safety-check.md +18 -0
  20. package/bin/command/trend-analysis.md +35 -0
  21. package/bin/railwise +0 -0
  22. package/bin/railwise.json +4 -0
  23. package/bin/rw +2 -0
  24. package/bin/skill/THIRD_PARTY_NOTICES.md +405 -0
  25. package/bin/skill/algorithmic-art/LICENSE.txt +202 -0
  26. package/bin/skill/algorithmic-art/SKILL.md +405 -0
  27. package/bin/skill/algorithmic-art/templates/generator_template.js +223 -0
  28. package/bin/skill/algorithmic-art/templates/viewer.html +599 -0
  29. package/bin/skill/bidding-knowledge/SKILL.md +67 -0
  30. package/bin/skill/brand-guidelines/LICENSE.txt +202 -0
  31. package/bin/skill/brand-guidelines/SKILL.md +73 -0
  32. package/bin/skill/bun-file-io/SKILL.md +42 -0
  33. package/bin/skill/canvas-design/SKILL.md +141 -0
  34. package/bin/skill/claude-api/LICENSE.txt +202 -0
  35. package/bin/skill/claude-api/SKILL.md +325 -0
  36. package/bin/skill/claude-api/csharp/claude-api.md +402 -0
  37. package/bin/skill/claude-api/curl/examples.md +216 -0
  38. package/bin/skill/claude-api/curl/managed-agents.md +336 -0
  39. package/bin/skill/claude-api/go/claude-api.md +421 -0
  40. package/bin/skill/claude-api/go/managed-agents/README.md +561 -0
  41. package/bin/skill/claude-api/java/claude-api.md +432 -0
  42. package/bin/skill/claude-api/java/managed-agents/README.md +442 -0
  43. package/bin/skill/claude-api/php/claude-api.md +375 -0
  44. package/bin/skill/claude-api/php/managed-agents/README.md +435 -0
  45. package/bin/skill/claude-api/python/claude-api/README.md +420 -0
  46. package/bin/skill/claude-api/python/claude-api/batches.md +185 -0
  47. package/bin/skill/claude-api/python/claude-api/files-api.md +165 -0
  48. package/bin/skill/claude-api/python/claude-api/streaming.md +162 -0
  49. package/bin/skill/claude-api/python/claude-api/tool-use.md +590 -0
  50. package/bin/skill/claude-api/python/managed-agents/README.md +332 -0
  51. package/bin/skill/claude-api/ruby/claude-api.md +113 -0
  52. package/bin/skill/claude-api/ruby/managed-agents/README.md +389 -0
  53. package/bin/skill/claude-api/shared/agent-design.md +101 -0
  54. package/bin/skill/claude-api/shared/error-codes.md +213 -0
  55. package/bin/skill/claude-api/shared/live-sources.md +135 -0
  56. package/bin/skill/claude-api/shared/managed-agents-api-reference.md +378 -0
  57. package/bin/skill/claude-api/shared/managed-agents-client-patterns.md +209 -0
  58. package/bin/skill/claude-api/shared/managed-agents-core.md +238 -0
  59. package/bin/skill/claude-api/shared/managed-agents-environments.md +215 -0
  60. package/bin/skill/claude-api/shared/managed-agents-events.md +195 -0
  61. package/bin/skill/claude-api/shared/managed-agents-memory.md +197 -0
  62. package/bin/skill/claude-api/shared/managed-agents-multiagent.md +99 -0
  63. package/bin/skill/claude-api/shared/managed-agents-onboarding.md +114 -0
  64. package/bin/skill/claude-api/shared/managed-agents-outcomes.md +106 -0
  65. package/bin/skill/claude-api/shared/managed-agents-overview.md +68 -0
  66. package/bin/skill/claude-api/shared/managed-agents-self-hosted-sandboxes.md +173 -0
  67. package/bin/skill/claude-api/shared/managed-agents-tools.md +321 -0
  68. package/bin/skill/claude-api/shared/managed-agents-webhooks.md +110 -0
  69. package/bin/skill/claude-api/shared/model-migration.md +879 -0
  70. package/bin/skill/claude-api/shared/models.md +124 -0
  71. package/bin/skill/claude-api/shared/prompt-caching.md +171 -0
  72. package/bin/skill/claude-api/shared/tool-use-concepts.md +327 -0
  73. package/bin/skill/claude-api/typescript/claude-api/README.md +333 -0
  74. package/bin/skill/claude-api/typescript/claude-api/batches.md +106 -0
  75. package/bin/skill/claude-api/typescript/claude-api/files-api.md +98 -0
  76. package/bin/skill/claude-api/typescript/claude-api/streaming.md +178 -0
  77. package/bin/skill/claude-api/typescript/claude-api/tool-use.md +527 -0
  78. package/bin/skill/claude-api/typescript/managed-agents/README.md +359 -0
  79. package/bin/skill/data-analysis/SKILL.md +79 -0
  80. package/bin/skill/doc-coauthoring/SKILL.md +375 -0
  81. package/bin/skill/docx/LICENSE.txt +30 -0
  82. package/bin/skill/docx/SKILL.md +590 -0
  83. package/bin/skill/docx/scripts/__init__.py +1 -0
  84. package/bin/skill/docx/scripts/accept_changes.py +135 -0
  85. package/bin/skill/docx/scripts/comment.py +318 -0
  86. package/bin/skill/docx/scripts/office/helpers/__init__.py +0 -0
  87. package/bin/skill/docx/scripts/office/helpers/merge_runs.py +199 -0
  88. package/bin/skill/docx/scripts/office/helpers/simplify_redlines.py +197 -0
  89. package/bin/skill/docx/scripts/office/pack.py +159 -0
  90. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  91. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  92. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  93. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  94. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  95. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  96. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  97. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  98. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  99. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  100. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  101. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  102. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  103. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  104. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  105. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  106. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  107. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  108. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  109. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  110. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  111. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  112. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  113. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  114. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  115. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  116. package/bin/skill/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  117. package/bin/skill/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  118. package/bin/skill/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  119. package/bin/skill/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  120. package/bin/skill/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  121. package/bin/skill/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  122. package/bin/skill/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  123. package/bin/skill/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  124. package/bin/skill/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  125. package/bin/skill/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  126. package/bin/skill/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  127. package/bin/skill/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  128. package/bin/skill/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  129. package/bin/skill/docx/scripts/office/soffice.py +183 -0
  130. package/bin/skill/docx/scripts/office/unpack.py +132 -0
  131. package/bin/skill/docx/scripts/office/validate.py +111 -0
  132. package/bin/skill/docx/scripts/office/validators/__init__.py +15 -0
  133. package/bin/skill/docx/scripts/office/validators/base.py +847 -0
  134. package/bin/skill/docx/scripts/office/validators/docx.py +446 -0
  135. package/bin/skill/docx/scripts/office/validators/pptx.py +275 -0
  136. package/bin/skill/docx/scripts/office/validators/redlining.py +247 -0
  137. package/bin/skill/docx/scripts/templates/comments.xml +3 -0
  138. package/bin/skill/docx/scripts/templates/commentsExtended.xml +3 -0
  139. package/bin/skill/docx/scripts/templates/commentsExtensible.xml +3 -0
  140. package/bin/skill/docx/scripts/templates/commentsIds.xml +3 -0
  141. package/bin/skill/docx/scripts/templates/people.xml +3 -0
  142. package/bin/skill/docx-generation/SKILL.md +160 -0
  143. package/bin/skill/excel-operations/SKILL.md +121 -0
  144. package/bin/skill/frontend-design/SKILL.md +151 -0
  145. package/bin/skill/humanizer/SKILL.md +90 -0
  146. package/bin/skill/internal-comms/LICENSE.txt +202 -0
  147. package/bin/skill/internal-comms/SKILL.md +32 -0
  148. package/bin/skill/internal-comms/examples/3p-updates.md +47 -0
  149. package/bin/skill/internal-comms/examples/company-newsletter.md +65 -0
  150. package/bin/skill/internal-comms/examples/faq-answers.md +30 -0
  151. package/bin/skill/internal-comms/examples/general-comms.md +16 -0
  152. package/bin/skill/mcp-builder/LICENSE.txt +202 -0
  153. package/bin/skill/mcp-builder/SKILL.md +236 -0
  154. package/bin/skill/mcp-builder/reference/evaluation.md +602 -0
  155. package/bin/skill/mcp-builder/reference/mcp_best_practices.md +249 -0
  156. package/bin/skill/mcp-builder/reference/node_mcp_server.md +970 -0
  157. package/bin/skill/mcp-builder/reference/python_mcp_server.md +719 -0
  158. package/bin/skill/mcp-builder/scripts/connections.py +151 -0
  159. package/bin/skill/mcp-builder/scripts/evaluation.py +373 -0
  160. package/bin/skill/mcp-builder/scripts/example_evaluation.xml +22 -0
  161. package/bin/skill/mcp-builder/scripts/requirements.txt +2 -0
  162. package/bin/skill/monitoring-design/SKILL.md +79 -0
  163. package/bin/skill/operational-monitoring/SKILL.md +135 -0
  164. package/bin/skill/operational-monitoring/assets/checklists/archive-self-check.md +54 -0
  165. package/bin/skill/operational-monitoring/assets/schemas/convergence-result-table.csv +5 -0
  166. package/bin/skill/operational-monitoring/assets/schemas/horizontal-result-table.csv +3 -0
  167. package/bin/skill/operational-monitoring/assets/schemas/settlement-result-table.csv +7 -0
  168. package/bin/skill/operational-monitoring/assets/scripts/init-archive-tree.sh +65 -0
  169. package/bin/skill/operational-monitoring/assets/templates/control-network-report.md +102 -0
  170. package/bin/skill/operational-monitoring/assets/templates/daily-log.md +47 -0
  171. package/bin/skill/operational-monitoring/assets/templates/i-angle-check.md +38 -0
  172. package/bin/skill/operational-monitoring/assets/templates/monitoring-scheme.md +234 -0
  173. package/bin/skill/operational-monitoring/assets/templates/period-report.md +95 -0
  174. package/bin/skill/operational-monitoring/assets/templates/point-acceptance-record.md +51 -0
  175. package/bin/skill/operational-monitoring/assets/templates/point-installation-record.md +38 -0
  176. package/bin/skill/operational-monitoring/assets/templates/summary-report.md +89 -0
  177. package/bin/skill/operational-monitoring/assets/templates/warning-bulletin.md +61 -0
  178. package/bin/skill/operational-monitoring/assets/templates/weekly-monthly-report.md +46 -0
  179. package/bin/skill/operational-monitoring/references/archive-and-delivery.md +146 -0
  180. package/bin/skill/operational-monitoring/references/baseline-network.md +131 -0
  181. package/bin/skill/operational-monitoring/references/convergence-monitoring.md +134 -0
  182. package/bin/skill/operational-monitoring/references/data-processing.md +178 -0
  183. package/bin/skill/operational-monitoring/references/horizontal-displacement.md +128 -0
  184. package/bin/skill/operational-monitoring/references/monitoring-points.md +132 -0
  185. package/bin/skill/operational-monitoring/references/monitoring-scheme.md +178 -0
  186. package/bin/skill/operational-monitoring/references/period-report.md +108 -0
  187. package/bin/skill/operational-monitoring/references/regulations-and-frequency.md +127 -0
  188. package/bin/skill/operational-monitoring/references/settlement-monitoring.md +116 -0
  189. package/bin/skill/operational-monitoring/references/summary-report.md +128 -0
  190. package/bin/skill/operational-monitoring/references/warning-and-disposal.md +118 -0
  191. package/bin/skill/pdf/LICENSE.txt +30 -0
  192. package/bin/skill/pdf/SKILL.md +314 -0
  193. package/bin/skill/pdf/forms.md +294 -0
  194. package/bin/skill/pdf/reference.md +612 -0
  195. package/bin/skill/pdf/scripts/check_bounding_boxes.py +65 -0
  196. package/bin/skill/pdf/scripts/check_fillable_fields.py +11 -0
  197. package/bin/skill/pdf/scripts/convert_pdf_to_images.py +33 -0
  198. package/bin/skill/pdf/scripts/create_validation_image.py +37 -0
  199. package/bin/skill/pdf/scripts/extract_form_field_info.py +122 -0
  200. package/bin/skill/pdf/scripts/extract_form_structure.py +115 -0
  201. package/bin/skill/pdf/scripts/fill_fillable_fields.py +98 -0
  202. package/bin/skill/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
  203. package/bin/skill/pptx/LICENSE.txt +30 -0
  204. package/bin/skill/pptx/SKILL.md +232 -0
  205. package/bin/skill/pptx/editing.md +205 -0
  206. package/bin/skill/pptx/pptxgenjs.md +420 -0
  207. package/bin/skill/pptx/scripts/__init__.py +0 -0
  208. package/bin/skill/pptx/scripts/add_slide.py +195 -0
  209. package/bin/skill/pptx/scripts/clean.py +286 -0
  210. package/bin/skill/pptx/scripts/office/helpers/__init__.py +0 -0
  211. package/bin/skill/pptx/scripts/office/helpers/merge_runs.py +199 -0
  212. package/bin/skill/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
  213. package/bin/skill/pptx/scripts/office/pack.py +159 -0
  214. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  215. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  216. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  217. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  218. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  219. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  220. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  221. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  222. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  223. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  224. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  225. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  226. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  227. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  228. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  229. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  230. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  231. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  232. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  233. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  234. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  235. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  236. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  237. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  238. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  239. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  240. package/bin/skill/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  241. package/bin/skill/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  242. package/bin/skill/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  243. package/bin/skill/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  244. package/bin/skill/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  245. package/bin/skill/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
  246. package/bin/skill/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  247. package/bin/skill/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  248. package/bin/skill/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  249. package/bin/skill/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  250. package/bin/skill/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  251. package/bin/skill/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  252. package/bin/skill/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  253. package/bin/skill/pptx/scripts/office/soffice.py +183 -0
  254. package/bin/skill/pptx/scripts/office/unpack.py +132 -0
  255. package/bin/skill/pptx/scripts/office/validate.py +111 -0
  256. package/bin/skill/pptx/scripts/office/validators/__init__.py +15 -0
  257. package/bin/skill/pptx/scripts/office/validators/base.py +847 -0
  258. package/bin/skill/pptx/scripts/office/validators/docx.py +446 -0
  259. package/bin/skill/pptx/scripts/office/validators/pptx.py +275 -0
  260. package/bin/skill/pptx/scripts/office/validators/redlining.py +247 -0
  261. package/bin/skill/pptx/scripts/thumbnail.py +289 -0
  262. package/bin/skill/rail-monitoring-plan/SKILL.md +147 -0
  263. package/bin/skill/rail-monitoring-plan/assets/plan-template.md +673 -0
  264. package/bin/skill/rail-monitoring-plan/references/elevated-line.md +319 -0
  265. package/bin/skill/rail-monitoring-plan/references/key-difficulties.md +216 -0
  266. package/bin/skill/rail-monitoring-plan/references/phase0-intake.md +169 -0
  267. package/bin/skill/rail-monitoring-plan/references/phase1-drafting.md +185 -0
  268. package/bin/skill/rail-monitoring-plan/references/phase2-internal-review.md +166 -0
  269. package/bin/skill/rail-monitoring-plan/references/review-checklist.md +140 -0
  270. package/bin/skill/rail-monitoring-plan/references/review-response-template.md +87 -0
  271. package/bin/skill/rail-monitoring-plan/references/scoping-and-pricing.md +214 -0
  272. package/bin/skill/rail-monitoring-plan/references/technical-standards.md +188 -0
  273. package/bin/skill/rail-monitoring-plan/references/toc-template-A.md +142 -0
  274. package/bin/skill/rail-monitoring-plan/references/toc-template-B.md +100 -0
  275. package/bin/skill/report-writing/SKILL.md +103 -0
  276. package/bin/skill/skill-creator/LICENSE.txt +202 -0
  277. package/bin/skill/skill-creator/SKILL.md +485 -0
  278. package/bin/skill/skill-creator/agents/analyzer.md +274 -0
  279. package/bin/skill/skill-creator/agents/comparator.md +202 -0
  280. package/bin/skill/skill-creator/agents/grader.md +223 -0
  281. package/bin/skill/skill-creator/assets/eval_review.html +146 -0
  282. package/bin/skill/skill-creator/eval-viewer/generate_review.py +471 -0
  283. package/bin/skill/skill-creator/eval-viewer/viewer.html +1325 -0
  284. package/bin/skill/skill-creator/references/schemas.md +430 -0
  285. package/bin/skill/skill-creator/scripts/__init__.py +0 -0
  286. package/bin/skill/skill-creator/scripts/aggregate_benchmark.py +401 -0
  287. package/bin/skill/skill-creator/scripts/generate_report.py +326 -0
  288. package/bin/skill/skill-creator/scripts/improve_description.py +247 -0
  289. package/bin/skill/skill-creator/scripts/package_skill.py +136 -0
  290. package/bin/skill/skill-creator/scripts/quick_validate.py +103 -0
  291. package/bin/skill/skill-creator/scripts/run_eval.py +310 -0
  292. package/bin/skill/skill-creator/scripts/run_loop.py +328 -0
  293. package/bin/skill/skill-creator/scripts/utils.py +47 -0
  294. package/bin/skill/slack-gif-creator/LICENSE.txt +202 -0
  295. package/bin/skill/slack-gif-creator/SKILL.md +254 -0
  296. package/bin/skill/slack-gif-creator/core/easing.py +234 -0
  297. package/bin/skill/slack-gif-creator/core/frame_composer.py +176 -0
  298. package/bin/skill/slack-gif-creator/core/gif_builder.py +269 -0
  299. package/bin/skill/slack-gif-creator/core/validators.py +136 -0
  300. package/bin/skill/slack-gif-creator/requirements.txt +4 -0
  301. package/bin/skill/standard-reference/SKILL.md +89 -0
  302. package/bin/skill/theme-factory/LICENSE.txt +202 -0
  303. package/bin/skill/theme-factory/SKILL.md +59 -0
  304. package/bin/skill/theme-factory/theme-showcase.pdf +0 -0
  305. package/bin/skill/theme-factory/themes/arctic-frost.md +19 -0
  306. package/bin/skill/theme-factory/themes/botanical-garden.md +19 -0
  307. package/bin/skill/theme-factory/themes/desert-rose.md +19 -0
  308. package/bin/skill/theme-factory/themes/forest-canopy.md +19 -0
  309. package/bin/skill/theme-factory/themes/golden-hour.md +19 -0
  310. package/bin/skill/theme-factory/themes/midnight-galaxy.md +19 -0
  311. package/bin/skill/theme-factory/themes/modern-minimalist.md +19 -0
  312. package/bin/skill/theme-factory/themes/ocean-depths.md +19 -0
  313. package/bin/skill/theme-factory/themes/sunset-boulevard.md +19 -0
  314. package/bin/skill/theme-factory/themes/tech-innovation.md +19 -0
  315. package/bin/skill/web-artifacts-builder/LICENSE.txt +202 -0
  316. package/bin/skill/web-artifacts-builder/SKILL.md +74 -0
  317. package/bin/skill/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
  318. package/bin/skill/web-artifacts-builder/scripts/init-artifact.sh +322 -0
  319. package/bin/skill/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  320. package/bin/skill/webapp-testing/LICENSE.txt +202 -0
  321. package/bin/skill/webapp-testing/SKILL.md +96 -0
  322. package/bin/skill/webapp-testing/examples/console_logging.py +35 -0
  323. package/bin/skill/webapp-testing/examples/element_discovery.py +40 -0
  324. package/bin/skill/webapp-testing/examples/static_html_automation.py +33 -0
  325. package/bin/skill/webapp-testing/scripts/with_server.py +106 -0
  326. package/bin/skill/xlsx/LICENSE.txt +30 -0
  327. package/bin/skill/xlsx/SKILL.md +292 -0
  328. package/bin/skill/xlsx/scripts/office/helpers/__init__.py +0 -0
  329. package/bin/skill/xlsx/scripts/office/helpers/merge_runs.py +199 -0
  330. package/bin/skill/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
  331. package/bin/skill/xlsx/scripts/office/pack.py +159 -0
  332. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  333. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  334. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  335. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  336. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  337. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  338. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  339. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  340. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  341. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  342. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  343. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  344. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  345. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  346. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  347. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  348. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  349. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  350. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  351. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  352. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  353. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  354. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  355. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  356. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  357. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  358. package/bin/skill/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  359. package/bin/skill/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  360. package/bin/skill/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  361. package/bin/skill/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  362. package/bin/skill/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  363. package/bin/skill/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  364. package/bin/skill/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  365. package/bin/skill/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  366. package/bin/skill/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  367. package/bin/skill/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  368. package/bin/skill/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  369. package/bin/skill/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  370. package/bin/skill/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  371. package/bin/skill/xlsx/scripts/office/soffice.py +183 -0
  372. package/bin/skill/xlsx/scripts/office/unpack.py +132 -0
  373. package/bin/skill/xlsx/scripts/office/validate.py +111 -0
  374. package/bin/skill/xlsx/scripts/office/validators/__init__.py +15 -0
  375. package/bin/skill/xlsx/scripts/office/validators/base.py +847 -0
  376. package/bin/skill/xlsx/scripts/office/validators/docx.py +446 -0
  377. package/bin/skill/xlsx/scripts/office/validators/pptx.py +275 -0
  378. package/bin/skill/xlsx/scripts/office/validators/redlining.py +247 -0
  379. package/bin/skill/xlsx/scripts/recalc.py +184 -0
  380. package/package.json +14 -0
@@ -0,0 +1,332 @@
1
+ # Managed Agents — Python
2
+
3
+ > **Bindings not shown here:** This README covers the most common managed-agents flows for Python. If you need a class, method, namespace, field, or behavior that isn't shown, WebFetch the Python 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 `agents.create` and pass it to every subsequent `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
+ pip install anthropic
11
+ ```
12
+
13
+ ## Client Initialization
14
+
15
+ ```python
16
+ import anthropic
17
+
18
+ # Default (uses ANTHROPIC_API_KEY env var)
19
+ client = anthropic.Anthropic()
20
+
21
+ # Explicit API key
22
+ client = anthropic.Anthropic(api_key="your-api-key")
23
+ ```
24
+
25
+ ---
26
+
27
+ ## Create an Environment
28
+
29
+ ```python
30
+ environment = client.beta.environments.create(
31
+ name="my-dev-env",
32
+ config={
33
+ "type": "cloud",
34
+ "networking": {"type": "unrestricted"},
35
+ },
36
+ )
37
+ print(environment.id) # env_...
38
+ ```
39
+
40
+ ---
41
+
42
+ ## Create an Agent (required first step)
43
+
44
+ > ⚠️ **There is no inline agent config.** `model`/`system`/`tools` live on the agent object, not the session. Always start with `agents.create()` — the session only takes `agent={"type": "agent", "id": agent.id}`.
45
+
46
+ ### Minimal
47
+
48
+ ```python
49
+ # 1. Create the agent (reusable, versioned)
50
+ agent = client.beta.agents.create(
51
+ name="Coding Assistant",
52
+ model="claude-opus-4-8",
53
+ tools=[{"type": "agent_toolset_20260401", "default_config": {"enabled": True}}],
54
+ )
55
+
56
+ # 2. Start a session
57
+ session = client.beta.sessions.create(
58
+ agent={"type": "agent", "id": agent.id, "version": agent.version},
59
+ environment_id=environment.id,
60
+ )
61
+ print(session.id, session.status)
62
+ ```
63
+
64
+ ### With system prompt and custom tools
65
+
66
+ ```python
67
+ import os
68
+
69
+ agent = client.beta.agents.create(
70
+ name="Code Reviewer",
71
+ model="claude-opus-4-8",
72
+ system="You are a senior code reviewer.",
73
+ tools=[
74
+ {"type": "agent_toolset_20260401"},
75
+ {
76
+ "type": "custom",
77
+ "name": "run_tests",
78
+ "description": "Run the test suite",
79
+ "input_schema": {
80
+ "type": "object",
81
+ "properties": {
82
+ "test_path": {"type": "string", "description": "Path to test file"}
83
+ },
84
+ "required": ["test_path"],
85
+ },
86
+ },
87
+ ],
88
+ )
89
+
90
+ session = client.beta.sessions.create(
91
+ agent={"type": "agent", "id": agent.id, "version": agent.version},
92
+ environment_id=environment.id,
93
+ title="Code review session",
94
+ resources=[
95
+ {
96
+ "type": "github_repository",
97
+ "url": "https://github.com/owner/repo",
98
+ "mount_path": "/workspace/repo",
99
+ "authorization_token": os.environ["GITHUB_TOKEN"],
100
+ "branch": "main",
101
+ }
102
+ ],
103
+ )
104
+ ```
105
+
106
+ ---
107
+
108
+ ## Send a User Message
109
+
110
+ ```python
111
+ client.beta.sessions.events.send(
112
+ session_id=session.id,
113
+ events=[
114
+ {
115
+ "type": "user.message",
116
+ "content": [{"type": "text", "text": "Review the auth module"}],
117
+ }
118
+ ],
119
+ )
120
+ ```
121
+
122
+ > 💡 **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).
123
+
124
+ ---
125
+
126
+ ## Stream Events (SSE)
127
+
128
+ ```python
129
+ import json
130
+
131
+ # Stream-first: open stream, then send while stream is live
132
+ with client.beta.sessions.stream(
133
+ session_id=session.id,
134
+ ) as stream:
135
+ client.beta.sessions.events.send(
136
+ session_id=session.id,
137
+ events=[{"type": "user.message", "content": [{"type": "text", "text": "..."}]}],
138
+ )
139
+ for event in stream:
140
+ ... # process events
141
+
142
+ # Standalone stream iteration:
143
+ with client.beta.sessions.stream(
144
+ session_id=session.id,
145
+ ) as stream:
146
+ for event in stream:
147
+ if event.type == "agent.message":
148
+ for block in event.content:
149
+ if block.type == "text":
150
+ print(block.text, end="", flush=True)
151
+ elif event.type == "agent.custom_tool_use":
152
+ # Custom tool invocation — session is now idle
153
+ print(f"\nCustom tool call: {event.tool_name}")
154
+ print(f"Input: {json.dumps(event.input)}")
155
+ # Send result back (see below)
156
+ elif event.type == "session.status_idle":
157
+ print("\n--- Agent idle ---")
158
+ elif event.type == "session.status_terminated":
159
+ print("\n--- Session terminated ---")
160
+ break
161
+ ```
162
+
163
+ ---
164
+
165
+ ## Provide Custom Tool Result
166
+
167
+ ```python
168
+ client.beta.sessions.events.send(
169
+ session_id=session.id,
170
+ events=[
171
+ {
172
+ "type": "user.custom_tool_result",
173
+ "custom_tool_use_id": "sevt_abc123",
174
+ "content": [{"type": "text", "text": "All 42 tests passed."}],
175
+ }
176
+ ],
177
+ )
178
+ ```
179
+
180
+ ---
181
+
182
+ ## Poll Events
183
+
184
+ ```python
185
+ events = client.beta.sessions.events.list(
186
+ session_id=session.id,
187
+ )
188
+ for event in events.data:
189
+ print(f"{event.type}: {event.id}")
190
+ ```
191
+
192
+ > ⚠️ **Prefer the SDK over raw `requests`/`httpx`.** If you hand-roll a poll loop, don't assume `timeout=(5, 60)` or `httpx.Timeout(120)` caps total call duration — both are **per-chunk** read timeouts (reset on every byte), so a trickling response can block forever. For a hard wall-clock deadline, track `time.monotonic()` at the loop level and bail explicitly, or wrap with `asyncio.wait_for()`. See [Receiving Events](../../shared/managed-agents-events.md#receiving-events).
193
+
194
+ ---
195
+
196
+ ## Full Streaming Loop with Custom Tools
197
+
198
+ ```python
199
+ import json
200
+
201
+
202
+ def run_custom_tool(tool_name: str, tool_input: dict) -> str:
203
+ """Execute a custom tool and return the result."""
204
+ if tool_name == "run_tests":
205
+ # Your tool implementation here
206
+ return "All tests passed."
207
+ return f"Unknown tool: {tool_name}"
208
+
209
+
210
+ def run_session(client, session_id: str):
211
+ """Stream events and handle custom tool calls."""
212
+ while True:
213
+ with client.beta.sessions.stream(
214
+ session_id=session_id,
215
+ ) as stream:
216
+ tool_calls = []
217
+ for event in stream:
218
+ if event.type == "agent.message":
219
+ for block in event.content:
220
+ if block.type == "text":
221
+ print(block.text, end="", flush=True)
222
+ elif event.type == "agent.custom_tool_use":
223
+ tool_calls.append(event)
224
+ elif event.type == "session.status_idle":
225
+ break
226
+ elif event.type == "session.status_terminated":
227
+ return
228
+
229
+ if not tool_calls:
230
+ break
231
+
232
+ # Process custom tool calls
233
+ results = []
234
+ for call in tool_calls:
235
+ result = run_custom_tool(call.tool_name, call.input)
236
+ results.append({
237
+ "type": "user.custom_tool_result",
238
+ "custom_tool_use_id": call.id,
239
+ "content": [{"type": "text", "text": result}],
240
+ })
241
+
242
+ client.beta.sessions.events.send(
243
+ session_id=session_id,
244
+ events=results,
245
+ )
246
+ ```
247
+
248
+ ---
249
+
250
+ ## Upload a File
251
+
252
+ ```python
253
+ with open("data.csv", "rb") as f:
254
+ file = client.beta.files.upload(
255
+ file=f,
256
+ )
257
+
258
+ # Use in a session
259
+ session = client.beta.sessions.create(
260
+ agent={"type": "agent", "id": agent.id, "version": agent.version},
261
+ environment_id=environment.id,
262
+ resources=[{"type": "file", "file_id": file.id, "mount_path": "/workspace/data.csv"}],
263
+ )
264
+ ```
265
+
266
+ ---
267
+
268
+ ## List and Download Session Files
269
+
270
+ List files the agent wrote to `/mnt/session/outputs/` during a session, then download them.
271
+
272
+ ```python
273
+ # List files associated with a session
274
+ files = client.beta.files.list(
275
+ scope_id=session.id,
276
+ betas=["managed-agents-2026-04-01"],
277
+ )
278
+ for f in files.data:
279
+ print(f.filename, f.size_bytes)
280
+ # Download each file and save to disk
281
+ file_content = client.beta.files.download(f.id)
282
+ file_content.write_to_file(f.filename)
283
+ ```
284
+
285
+ > 💡 There's a brief indexing lag (~1–3s) between `session.status_idle` and output files appearing in `files.list`. Retry once or twice if the list is empty.
286
+
287
+ ---
288
+
289
+ ## Session Management
290
+
291
+ ```python
292
+ # Get session details
293
+ session = client.beta.sessions.retrieve(session_id="sesn_011CZxAbc123Def456")
294
+ print(session.status, session.usage)
295
+
296
+ # List sessions
297
+ sessions = client.beta.sessions.list()
298
+
299
+ # Delete a session
300
+ client.beta.sessions.delete(session_id="sesn_011CZxAbc123Def456")
301
+
302
+ # Archive a session
303
+ client.beta.sessions.archive(session_id="sesn_011CZxAbc123Def456")
304
+ ```
305
+
306
+ ---
307
+
308
+ ## MCP Server Integration
309
+
310
+ ```python
311
+ # Agent declares MCP server (no auth here — auth goes in a vault)
312
+ agent = client.beta.agents.create(
313
+ name="MCP Agent",
314
+ model="claude-opus-4-8",
315
+ mcp_servers=[
316
+ {"type": "url", "name": "my-tools", "url": "https://my-mcp-server.example.com/sse"},
317
+ ],
318
+ tools=[
319
+ {"type": "agent_toolset_20260401", "default_config": {"enabled": True}},
320
+ {"type": "mcp_toolset", "mcp_server_name": "my-tools"},
321
+ ],
322
+ )
323
+
324
+ # Session attaches vault(s) containing credentials for those MCP server URLs
325
+ session = client.beta.sessions.create(
326
+ agent=agent.id,
327
+ environment_id=environment.id,
328
+ vault_ids=[vault.id],
329
+ )
330
+ ```
331
+
332
+ See `shared/managed-agents-tools.md` §Vaults for creating vaults and adding credentials.
@@ -0,0 +1,113 @@
1
+ # Claude API — Ruby
2
+
3
+ > **Note:** The Ruby SDK supports the Claude API. A tool runner is available in beta via `client.beta.messages.tool_runner()`. Agent SDK is not yet available for Ruby.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ gem install anthropic
9
+ ```
10
+
11
+ ## Client Initialization
12
+
13
+ ```ruby
14
+ require "anthropic"
15
+
16
+ # Default (uses ANTHROPIC_API_KEY env var)
17
+ client = Anthropic::Client.new
18
+
19
+ # Explicit API key
20
+ client = Anthropic::Client.new(api_key: "your-api-key")
21
+ ```
22
+
23
+ ---
24
+
25
+ ## Basic Message Request
26
+
27
+ ```ruby
28
+ message = client.messages.create(
29
+ model: :"claude-opus-4-8",
30
+ max_tokens: 16000,
31
+ messages: [
32
+ { role: "user", content: "What is the capital of France?" }
33
+ ]
34
+ )
35
+ # content is an array of polymorphic block objects (TextBlock, ThinkingBlock,
36
+ # ToolUseBlock, ...). .type is a Symbol — compare with :text, not "text".
37
+ # .text raises NoMethodError on non-TextBlock entries.
38
+ message.content.each do |block|
39
+ puts block.text if block.type == :text
40
+ end
41
+ ```
42
+
43
+ ---
44
+
45
+ ## Streaming
46
+
47
+ ```ruby
48
+ stream = client.messages.stream(
49
+ model: :"claude-opus-4-8",
50
+ max_tokens: 64000,
51
+ messages: [{ role: "user", content: "Write a haiku" }]
52
+ )
53
+
54
+ stream.text.each { |text| print(text) }
55
+ ```
56
+
57
+ ---
58
+
59
+ ## Tool Use
60
+
61
+ The Ruby SDK supports tool use via raw JSON schema definitions and also provides a beta tool runner for automatic tool execution.
62
+
63
+ ### Tool Runner (Beta)
64
+
65
+ ```ruby
66
+ class GetWeatherInput < Anthropic::BaseModel
67
+ required :location, String, doc: "City and state, e.g. San Francisco, CA"
68
+ end
69
+
70
+ class GetWeather < Anthropic::BaseTool
71
+ doc "Get the current weather for a location"
72
+
73
+ input_schema GetWeatherInput
74
+
75
+ def call(input)
76
+ "The weather in #{input.location} is sunny and 72°F."
77
+ end
78
+ end
79
+
80
+ client.beta.messages.tool_runner(
81
+ model: :"claude-opus-4-8",
82
+ max_tokens: 16000,
83
+ tools: [GetWeather.new],
84
+ messages: [{ role: "user", content: "What's the weather in San Francisco?" }]
85
+ ).each_message do |message|
86
+ puts message.content
87
+ end
88
+ ```
89
+
90
+ ### Manual Loop
91
+
92
+ See the [shared tool use concepts](../shared/tool-use-concepts.md) for the tool definition format and agentic loop pattern.
93
+
94
+ ---
95
+
96
+ ## Prompt Caching
97
+
98
+ `system_:` (trailing underscore — avoids shadowing `Kernel#system`) takes an array of text blocks; set `cache_control` on the last block. Plain hashes work via the `OrHash` type alias. For placement patterns and the silent-invalidator audit checklist, see `shared/prompt-caching.md`.
99
+
100
+ ```ruby
101
+ message = client.messages.create(
102
+ model: :"claude-opus-4-8",
103
+ max_tokens: 16000,
104
+ system_: [
105
+ { type: "text", text: long_system_prompt, cache_control: { type: "ephemeral" } }
106
+ ],
107
+ messages: [{ role: "user", content: "Summarize the key points" }]
108
+ )
109
+ ```
110
+
111
+ For 1-hour TTL: `cache_control: { type: "ephemeral", ttl: "1h" }`. There's also a top-level `cache_control:` on `messages.create` that auto-places on the last cacheable block.
112
+
113
+ Verify hits via `message.usage.cache_creation_input_tokens` / `message.usage.cache_read_input_tokens`.