@khalidsaidi/skillrunner 0.1.2 → 0.1.3

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 (1112) hide show
  1. package/README.md +6 -4
  2. package/dist/cli.js +1904 -89
  3. package/dist/cli.js.map +1 -1
  4. package/dist/registry/dist/index.json +1858 -0
  5. package/dist/registry/skills/anthropic-algorithmic-art/SKILL.md +420 -0
  6. package/dist/registry/skills/anthropic-algorithmic-art/upstream/LICENSE.txt +202 -0
  7. package/dist/registry/skills/anthropic-algorithmic-art/upstream/SKILL.md +405 -0
  8. package/dist/registry/skills/anthropic-algorithmic-art/upstream/templates/generator_template.js +223 -0
  9. package/dist/registry/skills/anthropic-algorithmic-art/upstream/templates/viewer.html +599 -0
  10. package/dist/registry/skills/anthropic-brand-guidelines/SKILL.md +88 -0
  11. package/dist/registry/skills/anthropic-brand-guidelines/upstream/LICENSE.txt +202 -0
  12. package/dist/registry/skills/anthropic-brand-guidelines/upstream/SKILL.md +73 -0
  13. package/dist/registry/skills/anthropic-canvas-design/SKILL.md +145 -0
  14. package/dist/registry/skills/anthropic-canvas-design/upstream/LICENSE.txt +202 -0
  15. package/dist/registry/skills/anthropic-canvas-design/upstream/SKILL.md +130 -0
  16. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  17. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  18. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  19. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/BigShoulders-OFL.txt +93 -0
  20. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  21. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Boldonse-OFL.txt +93 -0
  22. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Boldonse-Regular.ttf +0 -0
  23. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  24. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  25. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  26. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  27. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  28. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  29. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  30. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/DMMono-OFL.txt +93 -0
  31. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/DMMono-Regular.ttf +0 -0
  32. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/EricaOne-OFL.txt +94 -0
  33. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/EricaOne-Regular.ttf +0 -0
  34. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/GeistMono-Bold.ttf +0 -0
  35. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/GeistMono-OFL.txt +93 -0
  36. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/GeistMono-Regular.ttf +0 -0
  37. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Gloock-OFL.txt +93 -0
  38. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Gloock-Regular.ttf +0 -0
  39. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  40. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  41. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  42. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  43. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  44. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  45. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  46. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  47. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  48. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  49. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  50. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  51. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  52. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  53. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Italiana-OFL.txt +93 -0
  54. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Italiana-Regular.ttf +0 -0
  55. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  56. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  57. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  58. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Jura-Light.ttf +0 -0
  59. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Jura-Medium.ttf +0 -0
  60. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Jura-OFL.txt +93 -0
  61. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  62. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  63. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Lora-Bold.ttf +0 -0
  64. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  65. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Lora-Italic.ttf +0 -0
  66. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Lora-OFL.txt +93 -0
  67. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Lora-Regular.ttf +0 -0
  68. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/NationalPark-Bold.ttf +0 -0
  69. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/NationalPark-OFL.txt +93 -0
  70. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/NationalPark-Regular.ttf +0 -0
  71. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  72. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  73. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Outfit-Bold.ttf +0 -0
  74. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Outfit-OFL.txt +93 -0
  75. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Outfit-Regular.ttf +0 -0
  76. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  77. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/PixelifySans-OFL.txt +93 -0
  78. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/PoiretOne-OFL.txt +93 -0
  79. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  80. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  81. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/RedHatMono-OFL.txt +93 -0
  82. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  83. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Silkscreen-OFL.txt +93 -0
  84. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  85. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  86. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/SmoochSans-OFL.txt +93 -0
  87. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Tektur-Medium.ttf +0 -0
  88. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Tektur-OFL.txt +93 -0
  89. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Tektur-Regular.ttf +0 -0
  90. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/WorkSans-Bold.ttf +0 -0
  91. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  92. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/WorkSans-Italic.ttf +0 -0
  93. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/WorkSans-OFL.txt +93 -0
  94. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/WorkSans-Regular.ttf +0 -0
  95. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/YoungSerif-OFL.txt +93 -0
  96. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  97. package/dist/registry/skills/anthropic-doc-coauthoring/SKILL.md +391 -0
  98. package/dist/registry/skills/anthropic-doc-coauthoring/upstream/SKILL.md +375 -0
  99. package/dist/registry/skills/anthropic-docx/SKILL.md +496 -0
  100. package/dist/registry/skills/anthropic-docx/upstream/LICENSE.txt +30 -0
  101. package/dist/registry/skills/anthropic-docx/upstream/SKILL.md +481 -0
  102. package/dist/registry/skills/anthropic-docx/upstream/scripts/__init__.py +1 -0
  103. package/dist/registry/skills/anthropic-docx/upstream/scripts/accept_changes.py +135 -0
  104. package/dist/registry/skills/anthropic-docx/upstream/scripts/comment.py +318 -0
  105. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/helpers/__init__.py +0 -0
  106. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/helpers/merge_runs.py +199 -0
  107. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/helpers/simplify_redlines.py +197 -0
  108. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/pack.py +159 -0
  109. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  110. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  111. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  112. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  113. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  114. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  115. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  116. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  117. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  118. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  119. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  120. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  121. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  122. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  123. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  124. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  125. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  126. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  127. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  128. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  129. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  130. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  131. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  132. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  133. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  134. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  135. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  136. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  137. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  138. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  139. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  140. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/mce/mc.xsd +75 -0
  141. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  142. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  143. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  144. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  145. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  146. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  147. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  148. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/soffice.py +183 -0
  149. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/unpack.py +132 -0
  150. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/validate.py +111 -0
  151. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/validators/__init__.py +15 -0
  152. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/validators/base.py +847 -0
  153. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/validators/docx.py +446 -0
  154. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/validators/pptx.py +275 -0
  155. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/validators/redlining.py +247 -0
  156. package/dist/registry/skills/anthropic-docx/upstream/scripts/templates/comments.xml +3 -0
  157. package/dist/registry/skills/anthropic-docx/upstream/scripts/templates/commentsExtended.xml +3 -0
  158. package/dist/registry/skills/anthropic-docx/upstream/scripts/templates/commentsExtensible.xml +3 -0
  159. package/dist/registry/skills/anthropic-docx/upstream/scripts/templates/commentsIds.xml +3 -0
  160. package/dist/registry/skills/anthropic-docx/upstream/scripts/templates/people.xml +3 -0
  161. package/dist/registry/skills/anthropic-frontend-design/SKILL.md +57 -0
  162. package/dist/registry/skills/anthropic-frontend-design/upstream/LICENSE.txt +177 -0
  163. package/dist/registry/skills/anthropic-frontend-design/upstream/SKILL.md +42 -0
  164. package/dist/registry/skills/anthropic-internal-comms/SKILL.md +47 -0
  165. package/dist/registry/skills/anthropic-internal-comms/upstream/LICENSE.txt +202 -0
  166. package/dist/registry/skills/anthropic-internal-comms/upstream/SKILL.md +32 -0
  167. package/dist/registry/skills/anthropic-internal-comms/upstream/examples/3p-updates.md +47 -0
  168. package/dist/registry/skills/anthropic-internal-comms/upstream/examples/company-newsletter.md +65 -0
  169. package/dist/registry/skills/anthropic-internal-comms/upstream/examples/faq-answers.md +30 -0
  170. package/dist/registry/skills/anthropic-internal-comms/upstream/examples/general-comms.md +16 -0
  171. package/dist/registry/skills/anthropic-mcp-builder/SKILL.md +251 -0
  172. package/dist/registry/skills/anthropic-mcp-builder/upstream/LICENSE.txt +202 -0
  173. package/dist/registry/skills/anthropic-mcp-builder/upstream/SKILL.md +236 -0
  174. package/dist/registry/skills/anthropic-mcp-builder/upstream/reference/evaluation.md +602 -0
  175. package/dist/registry/skills/anthropic-mcp-builder/upstream/reference/mcp_best_practices.md +249 -0
  176. package/dist/registry/skills/anthropic-mcp-builder/upstream/reference/node_mcp_server.md +970 -0
  177. package/dist/registry/skills/anthropic-mcp-builder/upstream/reference/python_mcp_server.md +719 -0
  178. package/dist/registry/skills/anthropic-mcp-builder/upstream/scripts/connections.py +151 -0
  179. package/dist/registry/skills/anthropic-mcp-builder/upstream/scripts/evaluation.py +373 -0
  180. package/dist/registry/skills/anthropic-mcp-builder/upstream/scripts/example_evaluation.xml +22 -0
  181. package/dist/registry/skills/anthropic-mcp-builder/upstream/scripts/requirements.txt +2 -0
  182. package/dist/registry/skills/anthropic-pdf/SKILL.md +329 -0
  183. package/dist/registry/skills/anthropic-pdf/upstream/LICENSE.txt +30 -0
  184. package/dist/registry/skills/anthropic-pdf/upstream/SKILL.md +314 -0
  185. package/dist/registry/skills/anthropic-pdf/upstream/forms.md +294 -0
  186. package/dist/registry/skills/anthropic-pdf/upstream/reference.md +612 -0
  187. package/dist/registry/skills/anthropic-pdf/upstream/scripts/check_bounding_boxes.py +65 -0
  188. package/dist/registry/skills/anthropic-pdf/upstream/scripts/check_fillable_fields.py +11 -0
  189. package/dist/registry/skills/anthropic-pdf/upstream/scripts/convert_pdf_to_images.py +33 -0
  190. package/dist/registry/skills/anthropic-pdf/upstream/scripts/create_validation_image.py +37 -0
  191. package/dist/registry/skills/anthropic-pdf/upstream/scripts/extract_form_field_info.py +122 -0
  192. package/dist/registry/skills/anthropic-pdf/upstream/scripts/extract_form_structure.py +115 -0
  193. package/dist/registry/skills/anthropic-pdf/upstream/scripts/fill_fillable_fields.py +98 -0
  194. package/dist/registry/skills/anthropic-pdf/upstream/scripts/fill_pdf_form_with_annotations.py +107 -0
  195. package/dist/registry/skills/anthropic-pptx/SKILL.md +247 -0
  196. package/dist/registry/skills/anthropic-pptx/upstream/LICENSE.txt +30 -0
  197. package/dist/registry/skills/anthropic-pptx/upstream/SKILL.md +232 -0
  198. package/dist/registry/skills/anthropic-pptx/upstream/editing.md +205 -0
  199. package/dist/registry/skills/anthropic-pptx/upstream/pptxgenjs.md +420 -0
  200. package/dist/registry/skills/anthropic-pptx/upstream/scripts/__init__.py +0 -0
  201. package/dist/registry/skills/anthropic-pptx/upstream/scripts/add_slide.py +195 -0
  202. package/dist/registry/skills/anthropic-pptx/upstream/scripts/clean.py +286 -0
  203. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/helpers/__init__.py +0 -0
  204. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/helpers/merge_runs.py +199 -0
  205. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/helpers/simplify_redlines.py +197 -0
  206. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/pack.py +159 -0
  207. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  208. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  209. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  210. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  211. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  212. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  213. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  214. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  215. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  216. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  217. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  218. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  219. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  220. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  221. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  222. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  223. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  224. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  225. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  226. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  227. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  228. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  229. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  230. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  231. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  232. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  233. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  234. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  235. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  236. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  237. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  238. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/mce/mc.xsd +75 -0
  239. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  240. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  241. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  242. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  243. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  244. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  245. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  246. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/soffice.py +183 -0
  247. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/unpack.py +132 -0
  248. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/validate.py +111 -0
  249. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/validators/__init__.py +15 -0
  250. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/validators/base.py +847 -0
  251. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/validators/docx.py +446 -0
  252. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/validators/pptx.py +275 -0
  253. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/validators/redlining.py +247 -0
  254. package/dist/registry/skills/anthropic-pptx/upstream/scripts/thumbnail.py +289 -0
  255. package/dist/registry/skills/anthropic-skill-creator/SKILL.md +372 -0
  256. package/dist/registry/skills/anthropic-skill-creator/upstream/LICENSE.txt +202 -0
  257. package/dist/registry/skills/anthropic-skill-creator/upstream/SKILL.md +357 -0
  258. package/dist/registry/skills/anthropic-skill-creator/upstream/references/output-patterns.md +82 -0
  259. package/dist/registry/skills/anthropic-skill-creator/upstream/references/workflows.md +28 -0
  260. package/dist/registry/skills/anthropic-skill-creator/upstream/scripts/init_skill.py +303 -0
  261. package/dist/registry/skills/anthropic-skill-creator/upstream/scripts/package_skill.py +110 -0
  262. package/dist/registry/skills/anthropic-skill-creator/upstream/scripts/quick_validate.py +103 -0
  263. package/dist/registry/skills/anthropic-slack-gif-creator/SKILL.md +269 -0
  264. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/LICENSE.txt +202 -0
  265. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/SKILL.md +254 -0
  266. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/core/easing.py +234 -0
  267. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/core/frame_composer.py +176 -0
  268. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/core/gif_builder.py +269 -0
  269. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/core/validators.py +136 -0
  270. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/requirements.txt +4 -0
  271. package/dist/registry/skills/anthropic-theme-factory/SKILL.md +73 -0
  272. package/dist/registry/skills/anthropic-theme-factory/upstream/LICENSE.txt +202 -0
  273. package/dist/registry/skills/anthropic-theme-factory/upstream/SKILL.md +59 -0
  274. package/dist/registry/skills/anthropic-theme-factory/upstream/theme-showcase.pdf +0 -0
  275. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/arctic-frost.md +19 -0
  276. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/botanical-garden.md +19 -0
  277. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/desert-rose.md +19 -0
  278. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/forest-canopy.md +19 -0
  279. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/golden-hour.md +19 -0
  280. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/midnight-galaxy.md +19 -0
  281. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/modern-minimalist.md +19 -0
  282. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/ocean-depths.md +19 -0
  283. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/sunset-boulevard.md +19 -0
  284. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/tech-innovation.md +19 -0
  285. package/dist/registry/skills/anthropic-web-artifacts-builder/SKILL.md +89 -0
  286. package/dist/registry/skills/anthropic-web-artifacts-builder/upstream/LICENSE.txt +202 -0
  287. package/dist/registry/skills/anthropic-web-artifacts-builder/upstream/SKILL.md +74 -0
  288. package/dist/registry/skills/anthropic-web-artifacts-builder/upstream/scripts/bundle-artifact.sh +54 -0
  289. package/dist/registry/skills/anthropic-web-artifacts-builder/upstream/scripts/init-artifact.sh +322 -0
  290. package/dist/registry/skills/anthropic-web-artifacts-builder/upstream/scripts/shadcn-components.tar.gz +0 -0
  291. package/dist/registry/skills/anthropic-webapp-testing/SKILL.md +111 -0
  292. package/dist/registry/skills/anthropic-webapp-testing/upstream/LICENSE.txt +202 -0
  293. package/dist/registry/skills/anthropic-webapp-testing/upstream/SKILL.md +96 -0
  294. package/dist/registry/skills/anthropic-webapp-testing/upstream/examples/console_logging.py +35 -0
  295. package/dist/registry/skills/anthropic-webapp-testing/upstream/examples/element_discovery.py +40 -0
  296. package/dist/registry/skills/anthropic-webapp-testing/upstream/examples/static_html_automation.py +33 -0
  297. package/dist/registry/skills/anthropic-webapp-testing/upstream/scripts/with_server.py +106 -0
  298. package/dist/registry/skills/anthropic-xlsx/SKILL.md +307 -0
  299. package/dist/registry/skills/anthropic-xlsx/upstream/LICENSE.txt +30 -0
  300. package/dist/registry/skills/anthropic-xlsx/upstream/SKILL.md +292 -0
  301. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/helpers/__init__.py +0 -0
  302. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/helpers/merge_runs.py +199 -0
  303. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/helpers/simplify_redlines.py +197 -0
  304. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/pack.py +159 -0
  305. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  306. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  307. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  308. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  309. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  310. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  311. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  312. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  313. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  314. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  315. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  316. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  317. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  318. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  319. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  320. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  321. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  322. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  323. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  324. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  325. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  326. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  327. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  328. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  329. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  330. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  331. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  332. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  333. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  334. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  335. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  336. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/mce/mc.xsd +75 -0
  337. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  338. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  339. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  340. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  341. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  342. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  343. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  344. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/soffice.py +183 -0
  345. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/unpack.py +132 -0
  346. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/validate.py +111 -0
  347. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/validators/__init__.py +15 -0
  348. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/validators/base.py +847 -0
  349. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/validators/docx.py +446 -0
  350. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/validators/pptx.py +275 -0
  351. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/validators/redlining.py +247 -0
  352. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/recalc.py +184 -0
  353. package/dist/registry/skills/changelog-from-commits/SKILL.md +17 -0
  354. package/dist/registry/skills/changelog-from-commits/scripts/check.sh +5 -0
  355. package/dist/registry/skills/changelog-from-commits/scripts/run.sh +25 -0
  356. package/dist/registry/skills/code-review-checklist/SKILL.md +19 -0
  357. package/dist/registry/skills/debugging-playbook/SKILL.md +17 -0
  358. package/dist/registry/skills/dependency-audit-report/SKILL.md +18 -0
  359. package/dist/registry/skills/dependency-audit-report/scripts/check.sh +5 -0
  360. package/dist/registry/skills/dependency-audit-report/scripts/run.sh +9 -0
  361. package/dist/registry/skills/dependency-security-fix/SKILL.md +19 -0
  362. package/dist/registry/skills/dependency-security-fix/scripts/check.sh +8 -0
  363. package/dist/registry/skills/dependency-security-fix/scripts/run.sh +28 -0
  364. package/dist/registry/skills/deployment-checklist/SKILL.md +18 -0
  365. package/dist/registry/skills/docs-styleguide/SKILL.md +16 -0
  366. package/dist/registry/skills/git-commit-style/SKILL.md +16 -0
  367. package/dist/registry/skills/git-status-report/SKILL.md +17 -0
  368. package/dist/registry/skills/git-status-report/scripts/check.sh +5 -0
  369. package/dist/registry/skills/git-status-report/scripts/run.sh +16 -0
  370. package/dist/registry/skills/node-doctor/SKILL.md +31 -0
  371. package/dist/registry/skills/node-doctor/scripts/check.sh +5 -0
  372. package/dist/registry/skills/node-doctor/scripts/run.sh +12 -0
  373. package/dist/registry/skills/openai-cloudflare-deploy/SKILL.md +240 -0
  374. package/dist/registry/skills/openai-cloudflare-deploy/upstream/LICENSE.txt +201 -0
  375. package/dist/registry/skills/openai-cloudflare-deploy/upstream/SKILL.md +224 -0
  376. package/dist/registry/skills/openai-cloudflare-deploy/upstream/agents/openai.yaml +6 -0
  377. package/dist/registry/skills/openai-cloudflare-deploy/upstream/assets/cloudflare-small.svg +3 -0
  378. package/dist/registry/skills/openai-cloudflare-deploy/upstream/assets/cloudflare.png +0 -0
  379. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/agents-sdk/README.md +89 -0
  380. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/agents-sdk/api.md +190 -0
  381. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/agents-sdk/configuration.md +182 -0
  382. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/agents-sdk/gotchas.md +158 -0
  383. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/agents-sdk/patterns.md +192 -0
  384. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-gateway/README.md +175 -0
  385. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-gateway/configuration.md +111 -0
  386. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-gateway/dynamic-routing.md +82 -0
  387. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-gateway/features.md +96 -0
  388. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-gateway/sdk-integration.md +114 -0
  389. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-gateway/troubleshooting.md +88 -0
  390. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-search/README.md +138 -0
  391. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-search/api.md +87 -0
  392. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-search/configuration.md +88 -0
  393. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-search/gotchas.md +81 -0
  394. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-search/patterns.md +85 -0
  395. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/analytics-engine/README.md +92 -0
  396. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/analytics-engine/api.md +112 -0
  397. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/analytics-engine/configuration.md +112 -0
  398. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/analytics-engine/gotchas.md +85 -0
  399. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/analytics-engine/patterns.md +83 -0
  400. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api/README.md +65 -0
  401. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api/api.md +204 -0
  402. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api/configuration.md +160 -0
  403. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api/gotchas.md +225 -0
  404. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api/patterns.md +204 -0
  405. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api-shield/README.md +44 -0
  406. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api-shield/api.md +141 -0
  407. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api-shield/configuration.md +192 -0
  408. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api-shield/gotchas.md +125 -0
  409. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api-shield/patterns.md +180 -0
  410. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/argo-smart-routing/README.md +90 -0
  411. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/argo-smart-routing/api.md +240 -0
  412. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/argo-smart-routing/configuration.md +197 -0
  413. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/argo-smart-routing/gotchas.md +111 -0
  414. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/argo-smart-routing/patterns.md +104 -0
  415. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bindings/README.md +122 -0
  416. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bindings/api.md +203 -0
  417. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bindings/configuration.md +188 -0
  418. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bindings/gotchas.md +208 -0
  419. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bindings/patterns.md +200 -0
  420. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bot-management/README.md +94 -0
  421. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bot-management/api.md +169 -0
  422. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bot-management/configuration.md +163 -0
  423. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bot-management/gotchas.md +114 -0
  424. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bot-management/patterns.md +182 -0
  425. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/browser-rendering/README.md +78 -0
  426. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/browser-rendering/api.md +108 -0
  427. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/browser-rendering/configuration.md +78 -0
  428. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/browser-rendering/gotchas.md +88 -0
  429. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/browser-rendering/patterns.md +91 -0
  430. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/c3/README.md +111 -0
  431. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/c3/api.md +71 -0
  432. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/c3/configuration.md +81 -0
  433. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/c3/gotchas.md +92 -0
  434. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/c3/patterns.md +82 -0
  435. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cache-reserve/README.md +147 -0
  436. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cache-reserve/api.md +194 -0
  437. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cache-reserve/configuration.md +169 -0
  438. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cache-reserve/gotchas.md +132 -0
  439. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cache-reserve/patterns.md +197 -0
  440. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/containers/README.md +85 -0
  441. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/containers/api.md +187 -0
  442. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/containers/configuration.md +188 -0
  443. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/containers/gotchas.md +178 -0
  444. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/containers/patterns.md +202 -0
  445. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cron-triggers/README.md +99 -0
  446. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cron-triggers/api.md +196 -0
  447. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cron-triggers/configuration.md +180 -0
  448. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cron-triggers/gotchas.md +199 -0
  449. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cron-triggers/patterns.md +190 -0
  450. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/d1/README.md +133 -0
  451. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/d1/api.md +196 -0
  452. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/d1/configuration.md +188 -0
  453. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/d1/gotchas.md +98 -0
  454. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/d1/patterns.md +189 -0
  455. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ddos/README.md +41 -0
  456. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ddos/api.md +164 -0
  457. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ddos/configuration.md +93 -0
  458. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ddos/gotchas.md +107 -0
  459. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ddos/patterns.md +174 -0
  460. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/do-storage/README.md +75 -0
  461. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/do-storage/api.md +102 -0
  462. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/do-storage/configuration.md +112 -0
  463. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/do-storage/gotchas.md +150 -0
  464. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/do-storage/patterns.md +182 -0
  465. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/do-storage/testing.md +183 -0
  466. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/durable-objects/README.md +185 -0
  467. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/durable-objects/api.md +187 -0
  468. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/durable-objects/configuration.md +160 -0
  469. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/durable-objects/gotchas.md +197 -0
  470. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/durable-objects/patterns.md +201 -0
  471. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-routing/README.md +89 -0
  472. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-routing/api.md +195 -0
  473. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-routing/configuration.md +186 -0
  474. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-routing/gotchas.md +196 -0
  475. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-routing/patterns.md +229 -0
  476. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-workers/README.md +151 -0
  477. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-workers/api.md +237 -0
  478. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-workers/configuration.md +112 -0
  479. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-workers/gotchas.md +125 -0
  480. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-workers/patterns.md +102 -0
  481. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/hyperdrive/README.md +82 -0
  482. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/hyperdrive/api.md +143 -0
  483. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/hyperdrive/configuration.md +159 -0
  484. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/hyperdrive/gotchas.md +77 -0
  485. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/hyperdrive/patterns.md +190 -0
  486. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/images/README.md +61 -0
  487. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/images/api.md +96 -0
  488. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/images/configuration.md +211 -0
  489. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/images/gotchas.md +99 -0
  490. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/images/patterns.md +115 -0
  491. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/kv/README.md +89 -0
  492. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/kv/api.md +160 -0
  493. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/kv/configuration.md +144 -0
  494. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/kv/gotchas.md +131 -0
  495. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/kv/patterns.md +196 -0
  496. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/miniflare/README.md +105 -0
  497. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/miniflare/api.md +187 -0
  498. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/miniflare/configuration.md +173 -0
  499. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/miniflare/gotchas.md +160 -0
  500. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/miniflare/patterns.md +181 -0
  501. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/network-interconnect/README.md +99 -0
  502. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/network-interconnect/api.md +199 -0
  503. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/network-interconnect/configuration.md +114 -0
  504. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/network-interconnect/gotchas.md +165 -0
  505. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/network-interconnect/patterns.md +166 -0
  506. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/observability/README.md +87 -0
  507. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/observability/api.md +164 -0
  508. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/observability/configuration.md +169 -0
  509. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/observability/gotchas.md +115 -0
  510. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/observability/patterns.md +105 -0
  511. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages/README.md +88 -0
  512. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages/api.md +204 -0
  513. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages/configuration.md +201 -0
  514. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages/gotchas.md +203 -0
  515. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages/patterns.md +204 -0
  516. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages-functions/README.md +98 -0
  517. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages-functions/api.md +143 -0
  518. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages-functions/configuration.md +122 -0
  519. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages-functions/gotchas.md +94 -0
  520. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages-functions/patterns.md +137 -0
  521. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pipelines/README.md +105 -0
  522. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pipelines/api.md +208 -0
  523. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pipelines/configuration.md +98 -0
  524. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pipelines/gotchas.md +80 -0
  525. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pipelines/patterns.md +87 -0
  526. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pulumi/README.md +100 -0
  527. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pulumi/api.md +200 -0
  528. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pulumi/configuration.md +198 -0
  529. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pulumi/gotchas.md +181 -0
  530. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pulumi/patterns.md +191 -0
  531. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/queues/README.md +96 -0
  532. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/queues/api.md +206 -0
  533. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/queues/configuration.md +144 -0
  534. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/queues/gotchas.md +206 -0
  535. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/queues/patterns.md +220 -0
  536. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2/README.md +95 -0
  537. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2/api.md +200 -0
  538. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2/configuration.md +165 -0
  539. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2/gotchas.md +190 -0
  540. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2/patterns.md +193 -0
  541. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-data-catalog/README.md +149 -0
  542. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-data-catalog/api.md +199 -0
  543. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-data-catalog/configuration.md +198 -0
  544. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-data-catalog/gotchas.md +170 -0
  545. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-data-catalog/patterns.md +191 -0
  546. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-sql/README.md +128 -0
  547. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-sql/api.md +158 -0
  548. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-sql/configuration.md +147 -0
  549. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-sql/gotchas.md +212 -0
  550. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-sql/patterns.md +222 -0
  551. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtime-sfu/README.md +65 -0
  552. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtime-sfu/api.md +158 -0
  553. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtime-sfu/configuration.md +137 -0
  554. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtime-sfu/gotchas.md +133 -0
  555. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtime-sfu/patterns.md +174 -0
  556. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtimekit/README.md +113 -0
  557. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtimekit/api.md +212 -0
  558. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtimekit/configuration.md +203 -0
  559. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtimekit/gotchas.md +169 -0
  560. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtimekit/patterns.md +223 -0
  561. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/sandbox/README.md +96 -0
  562. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/sandbox/api.md +198 -0
  563. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/sandbox/configuration.md +143 -0
  564. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/sandbox/gotchas.md +194 -0
  565. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/sandbox/patterns.md +201 -0
  566. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/secrets-store/README.md +74 -0
  567. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/secrets-store/api.md +200 -0
  568. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/secrets-store/configuration.md +185 -0
  569. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/secrets-store/gotchas.md +97 -0
  570. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/secrets-store/patterns.md +207 -0
  571. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/smart-placement/README.md +138 -0
  572. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/smart-placement/api.md +183 -0
  573. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/smart-placement/configuration.md +196 -0
  574. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/smart-placement/gotchas.md +174 -0
  575. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/smart-placement/patterns.md +183 -0
  576. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/snippets/README.md +68 -0
  577. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/snippets/api.md +198 -0
  578. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/snippets/configuration.md +227 -0
  579. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/snippets/gotchas.md +86 -0
  580. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/snippets/patterns.md +135 -0
  581. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/spectrum/README.md +52 -0
  582. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/spectrum/api.md +181 -0
  583. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/spectrum/configuration.md +194 -0
  584. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/spectrum/gotchas.md +145 -0
  585. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/spectrum/patterns.md +196 -0
  586. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/static-assets/README.md +65 -0
  587. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/static-assets/api.md +199 -0
  588. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/static-assets/configuration.md +186 -0
  589. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/static-assets/gotchas.md +162 -0
  590. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/static-assets/patterns.md +189 -0
  591. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/stream/README.md +114 -0
  592. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/stream/api-live.md +195 -0
  593. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/stream/api.md +199 -0
  594. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/stream/configuration.md +141 -0
  595. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/stream/gotchas.md +130 -0
  596. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/stream/patterns.md +184 -0
  597. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tail-workers/README.md +89 -0
  598. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tail-workers/api.md +200 -0
  599. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tail-workers/configuration.md +176 -0
  600. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tail-workers/gotchas.md +192 -0
  601. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tail-workers/patterns.md +180 -0
  602. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/terraform/README.md +102 -0
  603. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/terraform/api.md +178 -0
  604. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/terraform/configuration.md +197 -0
  605. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/terraform/gotchas.md +150 -0
  606. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/terraform/patterns.md +174 -0
  607. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tunnel/README.md +129 -0
  608. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tunnel/api.md +193 -0
  609. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tunnel/configuration.md +157 -0
  610. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tunnel/gotchas.md +147 -0
  611. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tunnel/networking.md +168 -0
  612. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tunnel/patterns.md +192 -0
  613. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turn/README.md +82 -0
  614. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turn/api.md +239 -0
  615. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turn/configuration.md +179 -0
  616. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turn/gotchas.md +231 -0
  617. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turn/patterns.md +213 -0
  618. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turnstile/README.md +99 -0
  619. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turnstile/api.md +240 -0
  620. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turnstile/configuration.md +222 -0
  621. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turnstile/gotchas.md +218 -0
  622. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turnstile/patterns.md +193 -0
  623. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/vectorize/README.md +133 -0
  624. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/vectorize/api.md +88 -0
  625. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/vectorize/configuration.md +88 -0
  626. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/vectorize/gotchas.md +76 -0
  627. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/vectorize/patterns.md +90 -0
  628. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/waf/README.md +113 -0
  629. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/waf/api.md +202 -0
  630. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/waf/configuration.md +203 -0
  631. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/waf/gotchas.md +204 -0
  632. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/waf/patterns.md +197 -0
  633. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/web-analytics/README.md +140 -0
  634. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/web-analytics/configuration.md +76 -0
  635. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/web-analytics/gotchas.md +82 -0
  636. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/web-analytics/integration.md +60 -0
  637. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/web-analytics/patterns.md +91 -0
  638. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workerd/README.md +78 -0
  639. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workerd/api.md +185 -0
  640. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workerd/configuration.md +183 -0
  641. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workerd/gotchas.md +139 -0
  642. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workerd/patterns.md +192 -0
  643. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers/README.md +108 -0
  644. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers/api.md +195 -0
  645. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers/configuration.md +185 -0
  646. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers/frameworks.md +197 -0
  647. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers/gotchas.md +136 -0
  648. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers/patterns.md +198 -0
  649. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-ai/README.md +197 -0
  650. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-ai/api.md +112 -0
  651. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-ai/configuration.md +97 -0
  652. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-ai/gotchas.md +114 -0
  653. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-ai/patterns.md +120 -0
  654. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-for-platforms/README.md +89 -0
  655. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-for-platforms/api.md +196 -0
  656. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-for-platforms/configuration.md +167 -0
  657. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-for-platforms/gotchas.md +134 -0
  658. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-for-platforms/patterns.md +188 -0
  659. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-playground/README.md +127 -0
  660. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-playground/api.md +101 -0
  661. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-playground/configuration.md +163 -0
  662. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-playground/gotchas.md +88 -0
  663. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-playground/patterns.md +132 -0
  664. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-vpc/README.md +127 -0
  665. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-vpc/api.md +202 -0
  666. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-vpc/configuration.md +147 -0
  667. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-vpc/gotchas.md +167 -0
  668. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-vpc/patterns.md +209 -0
  669. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workflows/README.md +69 -0
  670. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workflows/api.md +185 -0
  671. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workflows/configuration.md +151 -0
  672. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workflows/gotchas.md +97 -0
  673. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workflows/patterns.md +175 -0
  674. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/wrangler/README.md +141 -0
  675. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/wrangler/api.md +188 -0
  676. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/wrangler/auth.md +73 -0
  677. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/wrangler/configuration.md +197 -0
  678. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/wrangler/gotchas.md +197 -0
  679. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/wrangler/patterns.md +209 -0
  680. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/zaraz/IMPLEMENTATION_SUMMARY.md +121 -0
  681. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/zaraz/README.md +111 -0
  682. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/zaraz/api.md +112 -0
  683. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/zaraz/configuration.md +90 -0
  684. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/zaraz/gotchas.md +81 -0
  685. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/zaraz/patterns.md +74 -0
  686. package/dist/registry/skills/openai-develop-web-game/SKILL.md +164 -0
  687. package/dist/registry/skills/openai-develop-web-game/upstream/LICENSE.txt +201 -0
  688. package/dist/registry/skills/openai-develop-web-game/upstream/SKILL.md +149 -0
  689. package/dist/registry/skills/openai-develop-web-game/upstream/agents/openai.yaml +6 -0
  690. package/dist/registry/skills/openai-develop-web-game/upstream/assets/game-small.svg +4 -0
  691. package/dist/registry/skills/openai-develop-web-game/upstream/assets/game.png +0 -0
  692. package/dist/registry/skills/openai-develop-web-game/upstream/references/action_payloads.json +7 -0
  693. package/dist/registry/skills/openai-develop-web-game/upstream/scripts/web_game_playwright_client.js +356 -0
  694. package/dist/registry/skills/openai-doc/SKILL.md +95 -0
  695. package/dist/registry/skills/openai-doc/upstream/LICENSE.txt +201 -0
  696. package/dist/registry/skills/openai-doc/upstream/SKILL.md +80 -0
  697. package/dist/registry/skills/openai-doc/upstream/agents/openai.yaml +6 -0
  698. package/dist/registry/skills/openai-doc/upstream/assets/doc-small.svg +3 -0
  699. package/dist/registry/skills/openai-doc/upstream/assets/doc.png +0 -0
  700. package/dist/registry/skills/openai-doc/upstream/scripts/render_docx.py +296 -0
  701. package/dist/registry/skills/openai-figma/SKILL.md +58 -0
  702. package/dist/registry/skills/openai-figma/upstream/LICENSE.txt +202 -0
  703. package/dist/registry/skills/openai-figma/upstream/SKILL.md +42 -0
  704. package/dist/registry/skills/openai-figma/upstream/agents/openai.yaml +14 -0
  705. package/dist/registry/skills/openai-figma/upstream/assets/figma-small.svg +3 -0
  706. package/dist/registry/skills/openai-figma/upstream/assets/figma.png +0 -0
  707. package/dist/registry/skills/openai-figma/upstream/assets/icon.svg +28 -0
  708. package/dist/registry/skills/openai-figma/upstream/references/figma-mcp-config.md +35 -0
  709. package/dist/registry/skills/openai-figma/upstream/references/figma-tools-and-prompts.md +34 -0
  710. package/dist/registry/skills/openai-figma-implement-design/SKILL.md +279 -0
  711. package/dist/registry/skills/openai-figma-implement-design/upstream/LICENSE.txt +202 -0
  712. package/dist/registry/skills/openai-figma-implement-design/upstream/SKILL.md +264 -0
  713. package/dist/registry/skills/openai-figma-implement-design/upstream/agents/openai.yaml +14 -0
  714. package/dist/registry/skills/openai-figma-implement-design/upstream/assets/figma-small.svg +3 -0
  715. package/dist/registry/skills/openai-figma-implement-design/upstream/assets/figma.png +0 -0
  716. package/dist/registry/skills/openai-figma-implement-design/upstream/assets/icon.svg +28 -0
  717. package/dist/registry/skills/openai-gh-address-comments/SKILL.md +39 -0
  718. package/dist/registry/skills/openai-gh-address-comments/upstream/LICENSE.txt +202 -0
  719. package/dist/registry/skills/openai-gh-address-comments/upstream/SKILL.md +25 -0
  720. package/dist/registry/skills/openai-gh-address-comments/upstream/agents/openai.yaml +6 -0
  721. package/dist/registry/skills/openai-gh-address-comments/upstream/assets/github-small.svg +3 -0
  722. package/dist/registry/skills/openai-gh-address-comments/upstream/assets/github.png +0 -0
  723. package/dist/registry/skills/openai-gh-address-comments/upstream/scripts/fetch_comments.py +237 -0
  724. package/dist/registry/skills/openai-gh-fix-ci/SKILL.md +84 -0
  725. package/dist/registry/skills/openai-gh-fix-ci/upstream/LICENSE.txt +201 -0
  726. package/dist/registry/skills/openai-gh-fix-ci/upstream/SKILL.md +69 -0
  727. package/dist/registry/skills/openai-gh-fix-ci/upstream/agents/openai.yaml +6 -0
  728. package/dist/registry/skills/openai-gh-fix-ci/upstream/assets/github-small.svg +3 -0
  729. package/dist/registry/skills/openai-gh-fix-ci/upstream/assets/github.png +0 -0
  730. package/dist/registry/skills/openai-gh-fix-ci/upstream/scripts/inspect_pr_checks.py +509 -0
  731. package/dist/registry/skills/openai-imagegen/SKILL.md +189 -0
  732. package/dist/registry/skills/openai-imagegen/upstream/LICENSE.txt +201 -0
  733. package/dist/registry/skills/openai-imagegen/upstream/SKILL.md +174 -0
  734. package/dist/registry/skills/openai-imagegen/upstream/agents/openai.yaml +6 -0
  735. package/dist/registry/skills/openai-imagegen/upstream/assets/imagegen-small.svg +5 -0
  736. package/dist/registry/skills/openai-imagegen/upstream/assets/imagegen.png +0 -0
  737. package/dist/registry/skills/openai-imagegen/upstream/references/cli.md +132 -0
  738. package/dist/registry/skills/openai-imagegen/upstream/references/codex-network.md +28 -0
  739. package/dist/registry/skills/openai-imagegen/upstream/references/image-api.md +36 -0
  740. package/dist/registry/skills/openai-imagegen/upstream/references/prompting.md +81 -0
  741. package/dist/registry/skills/openai-imagegen/upstream/references/sample-prompts.md +384 -0
  742. package/dist/registry/skills/openai-imagegen/upstream/scripts/image_gen.py +876 -0
  743. package/dist/registry/skills/openai-jupyter-notebook/SKILL.md +122 -0
  744. package/dist/registry/skills/openai-jupyter-notebook/upstream/LICENSE.txt +201 -0
  745. package/dist/registry/skills/openai-jupyter-notebook/upstream/SKILL.md +107 -0
  746. package/dist/registry/skills/openai-jupyter-notebook/upstream/agents/openai.yaml +6 -0
  747. package/dist/registry/skills/openai-jupyter-notebook/upstream/assets/experiment-template.ipynb +110 -0
  748. package/dist/registry/skills/openai-jupyter-notebook/upstream/assets/jupyter-small.svg +3 -0
  749. package/dist/registry/skills/openai-jupyter-notebook/upstream/assets/jupyter.png +0 -0
  750. package/dist/registry/skills/openai-jupyter-notebook/upstream/assets/tutorial-template.ipynb +107 -0
  751. package/dist/registry/skills/openai-jupyter-notebook/upstream/references/experiment-patterns.md +10 -0
  752. package/dist/registry/skills/openai-jupyter-notebook/upstream/references/notebook-structure.md +17 -0
  753. package/dist/registry/skills/openai-jupyter-notebook/upstream/references/quality-checklist.md +11 -0
  754. package/dist/registry/skills/openai-jupyter-notebook/upstream/references/tutorial-patterns.md +9 -0
  755. package/dist/registry/skills/openai-jupyter-notebook/upstream/scripts/new_notebook.py +130 -0
  756. package/dist/registry/skills/openai-linear/SKILL.md +101 -0
  757. package/dist/registry/skills/openai-linear/upstream/LICENSE.txt +202 -0
  758. package/dist/registry/skills/openai-linear/upstream/SKILL.md +87 -0
  759. package/dist/registry/skills/openai-linear/upstream/agents/openai.yaml +14 -0
  760. package/dist/registry/skills/openai-linear/upstream/assets/linear-small.svg +5 -0
  761. package/dist/registry/skills/openai-linear/upstream/assets/linear.png +0 -0
  762. package/dist/registry/skills/openai-netlify-deploy/SKILL.md +263 -0
  763. package/dist/registry/skills/openai-netlify-deploy/upstream/LICENSE.txt +201 -0
  764. package/dist/registry/skills/openai-netlify-deploy/upstream/SKILL.md +247 -0
  765. package/dist/registry/skills/openai-netlify-deploy/upstream/agents/openai.yaml +6 -0
  766. package/dist/registry/skills/openai-netlify-deploy/upstream/assets/netlify-small.svg +11 -0
  767. package/dist/registry/skills/openai-netlify-deploy/upstream/assets/netlify.png +0 -0
  768. package/dist/registry/skills/openai-netlify-deploy/upstream/references/cli-commands.md +162 -0
  769. package/dist/registry/skills/openai-netlify-deploy/upstream/references/deployment-patterns.md +303 -0
  770. package/dist/registry/skills/openai-netlify-deploy/upstream/references/netlify-toml.md +259 -0
  771. package/dist/registry/skills/openai-notion-knowledge-capture/SKILL.md +70 -0
  772. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/LICENSE.txt +7 -0
  773. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/SKILL.md +56 -0
  774. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/agents/openai.yaml +14 -0
  775. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/assets/notion-small.svg +11 -0
  776. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/assets/notion.png +0 -0
  777. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/evaluations/README.md +95 -0
  778. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/evaluations/conversation-to-wiki.json +31 -0
  779. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/evaluations/decision-record.json +31 -0
  780. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/examples/conversation-to-faq.md +226 -0
  781. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/examples/decision-capture.md +126 -0
  782. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/examples/how-to-guide.md +118 -0
  783. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/database-best-practices.md +112 -0
  784. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/decision-log-database.md +58 -0
  785. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/documentation-database.md +93 -0
  786. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/faq-database.md +57 -0
  787. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/how-to-guide-database.md +38 -0
  788. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/learning-database.md +35 -0
  789. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/team-wiki-database.md +27 -0
  790. package/dist/registry/skills/openai-notion-meeting-intelligence/SKILL.md +74 -0
  791. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/LICENSE.txt +7 -0
  792. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/SKILL.md +60 -0
  793. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/agents/openai.yaml +14 -0
  794. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/assets/notion-small.svg +11 -0
  795. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/assets/notion.png +0 -0
  796. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/evaluations/README.md +101 -0
  797. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/evaluations/decision-meeting-prep.json +35 -0
  798. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/evaluations/status-meeting-prep.json +35 -0
  799. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/examples/customer-meeting.md +125 -0
  800. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/examples/executive-review.md +78 -0
  801. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/examples/project-decision.md +431 -0
  802. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/examples/sprint-planning.md +80 -0
  803. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/brainstorming-template.md +81 -0
  804. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/decision-meeting-template.md +94 -0
  805. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/one-on-one-template.md +58 -0
  806. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/retrospective-template.md +58 -0
  807. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/sprint-planning-template.md +68 -0
  808. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/status-update-template.md +74 -0
  809. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/template-selection-guide.md +56 -0
  810. package/dist/registry/skills/openai-notion-research-documentation/SKILL.md +73 -0
  811. package/dist/registry/skills/openai-notion-research-documentation/upstream/LICENSE.txt +7 -0
  812. package/dist/registry/skills/openai-notion-research-documentation/upstream/SKILL.md +59 -0
  813. package/dist/registry/skills/openai-notion-research-documentation/upstream/agents/openai.yaml +14 -0
  814. package/dist/registry/skills/openai-notion-research-documentation/upstream/assets/notion-small.svg +11 -0
  815. package/dist/registry/skills/openai-notion-research-documentation/upstream/assets/notion.png +0 -0
  816. package/dist/registry/skills/openai-notion-research-documentation/upstream/evaluations/README.md +109 -0
  817. package/dist/registry/skills/openai-notion-research-documentation/upstream/evaluations/basic-research.json +28 -0
  818. package/dist/registry/skills/openai-notion-research-documentation/upstream/evaluations/research-to-database.json +29 -0
  819. package/dist/registry/skills/openai-notion-research-documentation/upstream/examples/competitor-analysis.md +283 -0
  820. package/dist/registry/skills/openai-notion-research-documentation/upstream/examples/market-research.md +62 -0
  821. package/dist/registry/skills/openai-notion-research-documentation/upstream/examples/technical-investigation.md +233 -0
  822. package/dist/registry/skills/openai-notion-research-documentation/upstream/examples/trip-planning.md +128 -0
  823. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/advanced-search.md +212 -0
  824. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/citations.md +190 -0
  825. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/comparison-format.md +37 -0
  826. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/comparison-template.md +44 -0
  827. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/comprehensive-report-format.md +41 -0
  828. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/comprehensive-report-template.md +64 -0
  829. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/format-selection-guide.md +95 -0
  830. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/quick-brief-format.md +37 -0
  831. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/quick-brief-template.md +25 -0
  832. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/research-summary-format.md +33 -0
  833. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/research-summary-template.md +49 -0
  834. package/dist/registry/skills/openai-notion-spec-to-implementation/SKILL.md +72 -0
  835. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/LICENSE.txt +7 -0
  836. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/SKILL.md +58 -0
  837. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/agents/openai.yaml +14 -0
  838. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/assets/notion-small.svg +11 -0
  839. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/assets/notion.png +0 -0
  840. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/evaluations/README.md +120 -0
  841. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/evaluations/basic-spec-implementation.json +32 -0
  842. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/evaluations/spec-to-tasks.json +35 -0
  843. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/examples/api-feature.md +461 -0
  844. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/examples/database-migration.md +81 -0
  845. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/examples/ui-component.md +68 -0
  846. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/milestone-summary-template.md +27 -0
  847. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/progress-tracking.md +458 -0
  848. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/progress-update-template.md +25 -0
  849. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/quick-implementation-plan.md +26 -0
  850. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/spec-parsing.md +383 -0
  851. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/standard-implementation-plan.md +146 -0
  852. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/task-creation-template.md +34 -0
  853. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/task-creation.md +441 -0
  854. package/dist/registry/skills/openai-openai-docs/SKILL.md +71 -0
  855. package/dist/registry/skills/openai-openai-docs/upstream/LICENSE.txt +201 -0
  856. package/dist/registry/skills/openai-openai-docs/upstream/SKILL.md +56 -0
  857. package/dist/registry/skills/openai-openai-docs/upstream/agents/openai.yaml +14 -0
  858. package/dist/registry/skills/openai-openai-docs/upstream/assets/openai-small.svg +3 -0
  859. package/dist/registry/skills/openai-openai-docs/upstream/assets/openai.png +0 -0
  860. package/dist/registry/skills/openai-pdf/SKILL.md +82 -0
  861. package/dist/registry/skills/openai-pdf/upstream/LICENSE.txt +201 -0
  862. package/dist/registry/skills/openai-pdf/upstream/SKILL.md +67 -0
  863. package/dist/registry/skills/openai-pdf/upstream/agents/openai.yaml +5 -0
  864. package/dist/registry/skills/openai-pdf/upstream/assets/pdf.png +0 -0
  865. package/dist/registry/skills/openai-playwright/SKILL.md +162 -0
  866. package/dist/registry/skills/openai-playwright/upstream/LICENSE.txt +201 -0
  867. package/dist/registry/skills/openai-playwright/upstream/NOTICE.txt +14 -0
  868. package/dist/registry/skills/openai-playwright/upstream/SKILL.md +147 -0
  869. package/dist/registry/skills/openai-playwright/upstream/agents/openai.yaml +6 -0
  870. package/dist/registry/skills/openai-playwright/upstream/assets/playwright-small.svg +3 -0
  871. package/dist/registry/skills/openai-playwright/upstream/assets/playwright.png +0 -0
  872. package/dist/registry/skills/openai-playwright/upstream/references/cli.md +116 -0
  873. package/dist/registry/skills/openai-playwright/upstream/references/workflows.md +95 -0
  874. package/dist/registry/skills/openai-playwright/upstream/scripts/playwright_cli.sh +25 -0
  875. package/dist/registry/skills/openai-render-deploy/SKILL.md +495 -0
  876. package/dist/registry/skills/openai-render-deploy/upstream/LICENSE.txt +201 -0
  877. package/dist/registry/skills/openai-render-deploy/upstream/SKILL.md +479 -0
  878. package/dist/registry/skills/openai-render-deploy/upstream/agents/openai.yaml +14 -0
  879. package/dist/registry/skills/openai-render-deploy/upstream/assets/docker.yaml +62 -0
  880. package/dist/registry/skills/openai-render-deploy/upstream/assets/go-api.yaml +35 -0
  881. package/dist/registry/skills/openai-render-deploy/upstream/assets/nextjs-postgres.yaml +35 -0
  882. package/dist/registry/skills/openai-render-deploy/upstream/assets/node-express.yaml +25 -0
  883. package/dist/registry/skills/openai-render-deploy/upstream/assets/python-django.yaml +89 -0
  884. package/dist/registry/skills/openai-render-deploy/upstream/assets/render-small.svg +3 -0
  885. package/dist/registry/skills/openai-render-deploy/upstream/assets/render.png +0 -0
  886. package/dist/registry/skills/openai-render-deploy/upstream/assets/static-site.yaml +54 -0
  887. package/dist/registry/skills/openai-render-deploy/upstream/references/blueprint-spec.md +718 -0
  888. package/dist/registry/skills/openai-render-deploy/upstream/references/codebase-analysis.md +49 -0
  889. package/dist/registry/skills/openai-render-deploy/upstream/references/configuration-guide.md +603 -0
  890. package/dist/registry/skills/openai-render-deploy/upstream/references/deployment-details.md +224 -0
  891. package/dist/registry/skills/openai-render-deploy/upstream/references/direct-creation.md +113 -0
  892. package/dist/registry/skills/openai-render-deploy/upstream/references/error-patterns.md +13 -0
  893. package/dist/registry/skills/openai-render-deploy/upstream/references/post-deploy-checks.md +36 -0
  894. package/dist/registry/skills/openai-render-deploy/upstream/references/runtimes.md +473 -0
  895. package/dist/registry/skills/openai-render-deploy/upstream/references/service-types.md +450 -0
  896. package/dist/registry/skills/openai-render-deploy/upstream/references/troubleshooting-basics.md +36 -0
  897. package/dist/registry/skills/openai-screenshot/SKILL.md +282 -0
  898. package/dist/registry/skills/openai-screenshot/upstream/LICENSE.txt +201 -0
  899. package/dist/registry/skills/openai-screenshot/upstream/SKILL.md +267 -0
  900. package/dist/registry/skills/openai-screenshot/upstream/agents/openai.yaml +6 -0
  901. package/dist/registry/skills/openai-screenshot/upstream/assets/screenshot-small.svg +5 -0
  902. package/dist/registry/skills/openai-screenshot/upstream/assets/screenshot.png +0 -0
  903. package/dist/registry/skills/openai-screenshot/upstream/scripts/ensure_macos_permissions.sh +54 -0
  904. package/dist/registry/skills/openai-screenshot/upstream/scripts/macos_display_info.swift +22 -0
  905. package/dist/registry/skills/openai-screenshot/upstream/scripts/macos_permissions.swift +40 -0
  906. package/dist/registry/skills/openai-screenshot/upstream/scripts/macos_window_info.swift +126 -0
  907. package/dist/registry/skills/openai-screenshot/upstream/scripts/take_screenshot.ps1 +163 -0
  908. package/dist/registry/skills/openai-screenshot/upstream/scripts/take_screenshot.py +585 -0
  909. package/dist/registry/skills/openai-security-best-practices/SKILL.md +102 -0
  910. package/dist/registry/skills/openai-security-best-practices/upstream/LICENSE.txt +201 -0
  911. package/dist/registry/skills/openai-security-best-practices/upstream/SKILL.md +86 -0
  912. package/dist/registry/skills/openai-security-best-practices/upstream/agents/openai.yaml +4 -0
  913. package/dist/registry/skills/openai-security-best-practices/upstream/references/golang-general-backend-security.md +826 -0
  914. package/dist/registry/skills/openai-security-best-practices/upstream/references/javascript-express-web-server-security.md +1158 -0
  915. package/dist/registry/skills/openai-security-best-practices/upstream/references/javascript-general-web-frontend-security.md +747 -0
  916. package/dist/registry/skills/openai-security-best-practices/upstream/references/javascript-jquery-web-frontend-security.md +678 -0
  917. package/dist/registry/skills/openai-security-best-practices/upstream/references/javascript-typescript-nextjs-web-server-security.md +1144 -0
  918. package/dist/registry/skills/openai-security-best-practices/upstream/references/javascript-typescript-react-web-frontend-security.md +990 -0
  919. package/dist/registry/skills/openai-security-best-practices/upstream/references/javascript-typescript-vue-web-frontend-security.md +791 -0
  920. package/dist/registry/skills/openai-security-best-practices/upstream/references/python-django-web-server-security.md +882 -0
  921. package/dist/registry/skills/openai-security-best-practices/upstream/references/python-fastapi-web-server-security.md +1036 -0
  922. package/dist/registry/skills/openai-security-best-practices/upstream/references/python-flask-web-server-security.md +705 -0
  923. package/dist/registry/skills/openai-security-ownership-map/SKILL.md +222 -0
  924. package/dist/registry/skills/openai-security-ownership-map/upstream/LICENSE.txt +201 -0
  925. package/dist/registry/skills/openai-security-ownership-map/upstream/SKILL.md +206 -0
  926. package/dist/registry/skills/openai-security-ownership-map/upstream/agents/openai.yaml +4 -0
  927. package/dist/registry/skills/openai-security-ownership-map/upstream/references/neo4j-import.md +60 -0
  928. package/dist/registry/skills/openai-security-ownership-map/upstream/scripts/build_ownership_map.py +956 -0
  929. package/dist/registry/skills/openai-security-ownership-map/upstream/scripts/community_maintainers.py +544 -0
  930. package/dist/registry/skills/openai-security-ownership-map/upstream/scripts/query_ownership.py +483 -0
  931. package/dist/registry/skills/openai-security-ownership-map/upstream/scripts/run_ownership_map.py +200 -0
  932. package/dist/registry/skills/openai-security-threat-model/SKILL.md +97 -0
  933. package/dist/registry/skills/openai-security-threat-model/upstream/LICENSE.txt +201 -0
  934. package/dist/registry/skills/openai-security-threat-model/upstream/SKILL.md +81 -0
  935. package/dist/registry/skills/openai-security-threat-model/upstream/agents/openai.yaml +4 -0
  936. package/dist/registry/skills/openai-security-threat-model/upstream/references/prompt-template.md +255 -0
  937. package/dist/registry/skills/openai-security-threat-model/upstream/references/security-controls-and-assets.md +32 -0
  938. package/dist/registry/skills/openai-sentry/SKILL.md +138 -0
  939. package/dist/registry/skills/openai-sentry/upstream/LICENSE.txt +201 -0
  940. package/dist/registry/skills/openai-sentry/upstream/SKILL.md +123 -0
  941. package/dist/registry/skills/openai-sentry/upstream/agents/openai.yaml +6 -0
  942. package/dist/registry/skills/openai-sentry/upstream/assets/sentry-small.svg +3 -0
  943. package/dist/registry/skills/openai-sentry/upstream/assets/sentry.png +0 -0
  944. package/dist/registry/skills/openai-sentry/upstream/scripts/sentry_api.py +238 -0
  945. package/dist/registry/skills/openai-skill-creator/SKILL.md +382 -0
  946. package/dist/registry/skills/openai-skill-creator/upstream/LICENSE.txt +202 -0
  947. package/dist/registry/skills/openai-skill-creator/upstream/SKILL.md +368 -0
  948. package/dist/registry/skills/openai-skill-creator/upstream/agents/openai.yaml +4 -0
  949. package/dist/registry/skills/openai-skill-creator/upstream/references/openai_yaml.md +43 -0
  950. package/dist/registry/skills/openai-skill-creator/upstream/scripts/generate_openai_yaml.py +225 -0
  951. package/dist/registry/skills/openai-skill-creator/upstream/scripts/init_skill.py +397 -0
  952. package/dist/registry/skills/openai-skill-creator/upstream/scripts/quick_validate.py +101 -0
  953. package/dist/registry/skills/openai-skill-installer/SKILL.md +72 -0
  954. package/dist/registry/skills/openai-skill-installer/upstream/LICENSE.txt +202 -0
  955. package/dist/registry/skills/openai-skill-installer/upstream/SKILL.md +58 -0
  956. package/dist/registry/skills/openai-skill-installer/upstream/agents/openai.yaml +5 -0
  957. package/dist/registry/skills/openai-skill-installer/upstream/assets/skill-installer-small.svg +3 -0
  958. package/dist/registry/skills/openai-skill-installer/upstream/assets/skill-installer.png +0 -0
  959. package/dist/registry/skills/openai-skill-installer/upstream/scripts/github_utils.py +21 -0
  960. package/dist/registry/skills/openai-skill-installer/upstream/scripts/install-skill-from-github.py +308 -0
  961. package/dist/registry/skills/openai-skill-installer/upstream/scripts/list-skills.py +107 -0
  962. package/dist/registry/skills/openai-sora/SKILL.md +168 -0
  963. package/dist/registry/skills/openai-sora/upstream/LICENSE.txt +201 -0
  964. package/dist/registry/skills/openai-sora/upstream/SKILL.md +153 -0
  965. package/dist/registry/skills/openai-sora/upstream/agents/openai.yaml +6 -0
  966. package/dist/registry/skills/openai-sora/upstream/assets/sora-small.svg +4 -0
  967. package/dist/registry/skills/openai-sora/upstream/assets/sora.png +0 -0
  968. package/dist/registry/skills/openai-sora/upstream/references/cinematic-shots.md +53 -0
  969. package/dist/registry/skills/openai-sora/upstream/references/cli.md +248 -0
  970. package/dist/registry/skills/openai-sora/upstream/references/codex-network.md +28 -0
  971. package/dist/registry/skills/openai-sora/upstream/references/prompting.md +137 -0
  972. package/dist/registry/skills/openai-sora/upstream/references/sample-prompts.md +95 -0
  973. package/dist/registry/skills/openai-sora/upstream/references/social-ads.md +42 -0
  974. package/dist/registry/skills/openai-sora/upstream/references/troubleshooting.md +58 -0
  975. package/dist/registry/skills/openai-sora/upstream/references/video-api.md +45 -0
  976. package/dist/registry/skills/openai-sora/upstream/scripts/sora.py +970 -0
  977. package/dist/registry/skills/openai-speech/SKILL.md +159 -0
  978. package/dist/registry/skills/openai-speech/upstream/LICENSE.txt +201 -0
  979. package/dist/registry/skills/openai-speech/upstream/SKILL.md +144 -0
  980. package/dist/registry/skills/openai-speech/upstream/agents/openai.yaml +6 -0
  981. package/dist/registry/skills/openai-speech/upstream/assets/speech-small.svg +3 -0
  982. package/dist/registry/skills/openai-speech/upstream/assets/speech.png +0 -0
  983. package/dist/registry/skills/openai-speech/upstream/references/accessibility.md +32 -0
  984. package/dist/registry/skills/openai-speech/upstream/references/audio-api.md +31 -0
  985. package/dist/registry/skills/openai-speech/upstream/references/cli.md +99 -0
  986. package/dist/registry/skills/openai-speech/upstream/references/codex-network.md +28 -0
  987. package/dist/registry/skills/openai-speech/upstream/references/ivr.md +32 -0
  988. package/dist/registry/skills/openai-speech/upstream/references/narration.md +31 -0
  989. package/dist/registry/skills/openai-speech/upstream/references/prompting.md +38 -0
  990. package/dist/registry/skills/openai-speech/upstream/references/sample-prompts.md +44 -0
  991. package/dist/registry/skills/openai-speech/upstream/references/voice-directions.md +80 -0
  992. package/dist/registry/skills/openai-speech/upstream/references/voiceover.md +31 -0
  993. package/dist/registry/skills/openai-speech/upstream/scripts/text_to_speech.py +528 -0
  994. package/dist/registry/skills/openai-spreadsheet/SKILL.md +137 -0
  995. package/dist/registry/skills/openai-spreadsheet/upstream/LICENSE.txt +201 -0
  996. package/dist/registry/skills/openai-spreadsheet/upstream/SKILL.md +122 -0
  997. package/dist/registry/skills/openai-spreadsheet/upstream/agents/openai.yaml +6 -0
  998. package/dist/registry/skills/openai-spreadsheet/upstream/assets/spreadsheet-small.svg +3 -0
  999. package/dist/registry/skills/openai-spreadsheet/upstream/assets/spreadsheet.png +0 -0
  1000. package/dist/registry/skills/openai-spreadsheet/upstream/references/examples/openpyxl/create_basic_spreadsheet.py +51 -0
  1001. package/dist/registry/skills/openai-spreadsheet/upstream/references/examples/openpyxl/create_spreadsheet_with_styling.py +96 -0
  1002. package/dist/registry/skills/openai-spreadsheet/upstream/references/examples/openpyxl/read_existing_spreadsheet.py +59 -0
  1003. package/dist/registry/skills/openai-spreadsheet/upstream/references/examples/openpyxl/styling_spreadsheet.py +79 -0
  1004. package/dist/registry/skills/openai-transcribe/SKILL.md +96 -0
  1005. package/dist/registry/skills/openai-transcribe/upstream/LICENSE.txt +201 -0
  1006. package/dist/registry/skills/openai-transcribe/upstream/SKILL.md +81 -0
  1007. package/dist/registry/skills/openai-transcribe/upstream/agents/openai.yaml +6 -0
  1008. package/dist/registry/skills/openai-transcribe/upstream/assets/transcribe-small.svg +3 -0
  1009. package/dist/registry/skills/openai-transcribe/upstream/assets/transcribe.png +0 -0
  1010. package/dist/registry/skills/openai-transcribe/upstream/references/api.md +8 -0
  1011. package/dist/registry/skills/openai-transcribe/upstream/scripts/transcribe_diarize.py +276 -0
  1012. package/dist/registry/skills/openai-vercel-deploy/SKILL.md +84 -0
  1013. package/{LICENSE → dist/registry/skills/openai-vercel-deploy/upstream/LICENSE.txt} +1 -1
  1014. package/dist/registry/skills/openai-vercel-deploy/upstream/SKILL.md +68 -0
  1015. package/dist/registry/skills/openai-vercel-deploy/upstream/agents/openai.yaml +6 -0
  1016. package/dist/registry/skills/openai-vercel-deploy/upstream/assets/vercel-small.svg +5 -0
  1017. package/dist/registry/skills/openai-vercel-deploy/upstream/assets/vercel.png +0 -0
  1018. package/dist/registry/skills/openai-vercel-deploy/upstream/scripts/deploy.sh +301 -0
  1019. package/dist/registry/skills/openai-yeet/SKILL.md +44 -0
  1020. package/dist/registry/skills/openai-yeet/upstream/LICENSE.txt +201 -0
  1021. package/dist/registry/skills/openai-yeet/upstream/SKILL.md +28 -0
  1022. package/dist/registry/skills/openai-yeet/upstream/agents/openai.yaml +6 -0
  1023. package/dist/registry/skills/openai-yeet/upstream/assets/yeet-small.svg +3 -0
  1024. package/dist/registry/skills/openai-yeet/upstream/assets/yeet.png +0 -0
  1025. package/dist/registry/skills/pr-description-style/SKILL.md +16 -0
  1026. package/dist/registry/skills/react-maintenance-upgrade/SKILL.md +19 -0
  1027. package/dist/registry/skills/react-maintenance-upgrade/scripts/check.sh +8 -0
  1028. package/dist/registry/skills/react-maintenance-upgrade/scripts/run.sh +28 -0
  1029. package/dist/registry/skills/react-patterns/SKILL.md +16 -0
  1030. package/dist/registry/skills/release-notes-style/SKILL.md +16 -0
  1031. package/dist/registry/skills/repo-bootstrap/SKILL.md +33 -0
  1032. package/dist/registry/skills/repo-bootstrap/scripts/check.sh +8 -0
  1033. package/dist/registry/skills/repo-bootstrap/scripts/run.sh +44 -0
  1034. package/dist/registry/skills/run-build/SKILL.md +17 -0
  1035. package/dist/registry/skills/run-build/scripts/check.sh +5 -0
  1036. package/dist/registry/skills/run-build/scripts/run.sh +19 -0
  1037. package/dist/registry/skills/run-format/SKILL.md +17 -0
  1038. package/dist/registry/skills/run-format/scripts/check.sh +5 -0
  1039. package/dist/registry/skills/run-format/scripts/run.sh +8 -0
  1040. package/dist/registry/skills/run-lint/SKILL.md +17 -0
  1041. package/dist/registry/skills/run-lint/scripts/check.sh +5 -0
  1042. package/dist/registry/skills/run-lint/scripts/run.sh +19 -0
  1043. package/dist/registry/skills/run-tests/SKILL.md +17 -0
  1044. package/dist/registry/skills/run-tests/scripts/check.sh +5 -0
  1045. package/dist/registry/skills/run-tests/scripts/run.sh +20 -0
  1046. package/dist/registry/skills/run-typecheck/SKILL.md +17 -0
  1047. package/dist/registry/skills/run-typecheck/scripts/check.sh +8 -0
  1048. package/dist/registry/skills/run-typecheck/scripts/run.sh +23 -0
  1049. package/dist/registry/skills/security-hygiene/SKILL.md +17 -0
  1050. package/dist/registry/skills/terraform-drift-audit/SKILL.md +18 -0
  1051. package/dist/registry/skills/terraform-drift-audit/scripts/check.sh +3 -0
  1052. package/dist/registry/skills/terraform-drift-audit/scripts/run.sh +4 -0
  1053. package/dist/registry/skills/terraform-fmt-validate/SKILL.md +17 -0
  1054. package/dist/registry/skills/terraform-fmt-validate/scripts/check.sh +3 -0
  1055. package/dist/registry/skills/terraform-fmt-validate/scripts/run.sh +5 -0
  1056. package/dist/registry/skills/terraform-structure/SKILL.md +16 -0
  1057. package/dist/registry/skills/testing-playbook/SKILL.md +16 -0
  1058. package/package.json +10 -7
  1059. package/dist/cli.d.ts +0 -3
  1060. package/dist/cli.d.ts.map +0 -1
  1061. package/dist/commands/cursor.d.ts +0 -27
  1062. package/dist/commands/cursor.d.ts.map +0 -1
  1063. package/dist/commands/cursor.js +0 -80
  1064. package/dist/commands/cursor.js.map +0 -1
  1065. package/dist/commands/doctor.d.ts +0 -13
  1066. package/dist/commands/doctor.d.ts.map +0 -1
  1067. package/dist/commands/doctor.js +0 -59
  1068. package/dist/commands/doctor.js.map +0 -1
  1069. package/dist/commands/info.d.ts +0 -13
  1070. package/dist/commands/info.d.ts.map +0 -1
  1071. package/dist/commands/info.js +0 -102
  1072. package/dist/commands/info.js.map +0 -1
  1073. package/dist/commands/install.d.ts +0 -13
  1074. package/dist/commands/install.d.ts.map +0 -1
  1075. package/dist/commands/install.js +0 -167
  1076. package/dist/commands/install.js.map +0 -1
  1077. package/dist/commands/list.d.ts +0 -13
  1078. package/dist/commands/list.d.ts.map +0 -1
  1079. package/dist/commands/list.js +0 -51
  1080. package/dist/commands/list.js.map +0 -1
  1081. package/dist/commands/logs.d.ts +0 -15
  1082. package/dist/commands/logs.d.ts.map +0 -1
  1083. package/dist/commands/logs.js +0 -99
  1084. package/dist/commands/logs.js.map +0 -1
  1085. package/dist/commands/open.d.ts +0 -13
  1086. package/dist/commands/open.d.ts.map +0 -1
  1087. package/dist/commands/open.js +0 -30
  1088. package/dist/commands/open.js.map +0 -1
  1089. package/dist/commands/plan.d.ts +0 -14
  1090. package/dist/commands/plan.d.ts.map +0 -1
  1091. package/dist/commands/plan.js +0 -75
  1092. package/dist/commands/plan.js.map +0 -1
  1093. package/dist/commands/run.d.ts +0 -17
  1094. package/dist/commands/run.d.ts.map +0 -1
  1095. package/dist/commands/run.js +0 -143
  1096. package/dist/commands/run.js.map +0 -1
  1097. package/dist/commands/search.d.ts +0 -13
  1098. package/dist/commands/search.d.ts.map +0 -1
  1099. package/dist/commands/search.js +0 -32
  1100. package/dist/commands/search.js.map +0 -1
  1101. package/dist/commands/uninstall.d.ts +0 -13
  1102. package/dist/commands/uninstall.d.ts.map +0 -1
  1103. package/dist/commands/uninstall.js +0 -35
  1104. package/dist/commands/uninstall.js.map +0 -1
  1105. package/dist/util.d.ts +0 -7
  1106. package/dist/util.d.ts.map +0 -1
  1107. package/dist/util.js +0 -9
  1108. package/dist/util.js.map +0 -1
  1109. package/dist/utils/json.d.ts +0 -11
  1110. package/dist/utils/json.d.ts.map +0 -1
  1111. package/dist/utils/json.js +0 -10
  1112. package/dist/utils/json.js.map +0 -1
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../src/cli.ts","../src/commands/doctor.ts","../../engine/src/parser.ts","../../engine/src/registry.ts","../../engine/src/paths.ts","../../engine/src/guard.ts","../../engine/src/preflight.ts","../../engine/src/planner.ts","../../engine/src/runner.ts","../../engine/src/artifacts.ts","../src/utils/json.ts","../src/commands/list.ts","../src/commands/search.ts","../src/commands/info.ts","../src/commands/install.ts","../src/commands/uninstall.ts","../src/commands/plan.ts","../src/commands/run.ts","../src/commands/logs.ts","../src/commands/open.ts","../src/commands/cursor.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { Command } from \"commander\";\nimport { createRequire } from \"module\";\nimport { doctorCmd } from \"./commands/doctor.js\";\nimport { listCmd } from \"./commands/list.js\";\nimport { searchCmd } from \"./commands/search.js\";\nimport { infoCmd } from \"./commands/info.js\";\nimport { installCmd } from \"./commands/install.js\";\nimport { uninstallCmd } from \"./commands/uninstall.js\";\nimport { planCmd } from \"./commands/plan.js\";\nimport { runCmd } from \"./commands/run.js\";\nimport { logsCmd } from \"./commands/logs.js\";\nimport { openCmd } from \"./commands/open.js\";\nimport { cursorInstallCmd, cursorListCmd } from \"./commands/cursor.js\";\n\nconst program = new Command();\nconst require = createRequire(import.meta.url);\nconst pkg = require(\"../package.json\") as { version?: string };\nconst cliVersion =\n typeof pkg.version === \"string\" && pkg.version.trim() ? pkg.version : \"0.0.0\";\n\nprogram\n .name(\"skill\")\n .description(\"SkillRunner — browse, install, and run skills\")\n .version(cliVersion)\n .option(\"-j, --json\", \"Output JSON for extension integration\");\n\nprogram\n .command(\"doctor\")\n .option(\"--json\")\n .description(\"Check env, providers, registry\")\n .action(doctorCmd);\nprogram\n .command(\"list\")\n .option(\"--json\")\n .description(\"List installed skills\")\n .action(listCmd);\nprogram\n .command(\"search <query>\")\n .option(\"--json\")\n .description(\"Search registry\")\n .action(searchCmd);\nprogram\n .command(\"info <name>\")\n .option(\"--json\")\n .description(\"Show skill details\")\n .action(infoCmd);\nprogram\n .command(\"install <name>\")\n .option(\"--json\")\n .description(\"Install skill\")\n .action(installCmd);\nprogram\n .command(\"uninstall <name>\")\n .option(\"--json\")\n .description(\"Uninstall skill\")\n .action(uninstallCmd);\nprogram\n .command(\"plan <name>\")\n .option(\"--json\")\n .description(\"Show plan only\")\n .option(\"--inputs <pairs...>\", \"input k=v\")\n .action(planCmd);\nprogram\n .command(\"run <name>\")\n .option(\"--json\")\n .description(\"Run skill\")\n .option(\"--yes\", \"Skip confirmation\")\n .option(\"--inputs <pairs...>\", \"input k=v\")\n .option(\"--cwd <dir>\", \"Working directory\")\n .option(\"--allow-dirty\", \"Allow dirty repo\")\n .option(\"--no-branch\", \"Do not create branch\")\n .action(runCmd);\nprogram\n .command(\"logs\")\n .option(\"--json\")\n .description(\"Show run logs\")\n .option(\"--last\", \"Last run\")\n .option(\"--id <runId>\", \"Run ID\")\n .action(logsCmd);\nprogram\n .command(\"open\")\n .option(\"--json\")\n .description(\"Open dashboard\")\n .action(openCmd);\nconst cursorCmd = new Command(\"cursor\").description(\"Cursor integration\");\ncursorCmd\n .command(\"install <name>\")\n .option(\"--json\")\n .option(\"--scope <scope>\", \"project|global\", \"project\")\n .action(cursorInstallCmd);\ncursorCmd\n .command(\"list\")\n .option(\"--json\")\n .option(\"--scope <scope>\", \"project|global|both\", \"both\")\n .action(cursorListCmd);\nprogram.addCommand(cursorCmd);\n\nprogram.parse();\n","import chalk from \"chalk\";\nimport { execSync } from \"child_process\";\nimport {\n resolveRegistryIndex,\n getSkillsDir,\n getRunsDir,\n} from \"@khalidsaidi/skillrunner-engine\";\nimport { shouldUseJson } from \"../utils/json.js\";\n\nexport async function doctorCmd(\n opts: { json?: boolean },\n cmd: {\n opts?: () => { json?: boolean };\n parent?: { opts?: () => { json?: boolean } };\n },\n): Promise<void> {\n const json = shouldUseJson(opts, cmd);\n\n const results: Record<string, unknown> = {\n node: null as string | null,\n pnpm: null as string | null,\n git: null as string | null,\n registry: null as string | null,\n paths: { skills: getSkillsDir(), runs: getRunsDir() },\n };\n\n try {\n results.node = execSync(\"node -v\", { encoding: \"utf-8\" }).trim();\n } catch {\n results.node = null;\n }\n try {\n results.pnpm = execSync(\"pnpm -v 2>/dev/null || npm -v 2>/dev/null\", {\n encoding: \"utf-8\",\n shell: \"/bin/bash\",\n }).trim();\n } catch {\n results.pnpm = null;\n }\n try {\n results.git = execSync(\"git --version\", { encoding: \"utf-8\" }).trim();\n } catch {\n results.git = null;\n }\n\n try {\n const index = await resolveRegistryIndex();\n results.registry = index ? \"ok\" : null;\n } catch (e) {\n results.registry = (e as Error).message;\n }\n\n if (json) {\n console.log(JSON.stringify(results, null, 2));\n return;\n }\n\n console.log(chalk.bold(\"SkillRunner Doctor\\n\"));\n console.log(\n \"Node: \",\n results.node ? chalk.green(results.node as string) : chalk.red(\"not found\"),\n );\n console.log(\n \"pnpm: \",\n results.pnpm\n ? chalk.green(results.pnpm as string)\n : chalk.yellow(\"optional\"),\n );\n console.log(\n \"Git: \",\n results.git ? chalk.green(results.git as string) : chalk.red(\"not found\"),\n );\n console.log(\n \"Registry:\",\n results.registry === \"ok\"\n ? chalk.green(\"reachable\")\n : chalk.red(String(results.registry)),\n );\n console.log(\"\\nPaths:\");\n console.log(\" skills:\", getSkillsDir());\n console.log(\" runs: \", getRunsDir());\n}\n","import { existsSync, readFileSync, readdirSync } from \"fs\";\nimport matter from \"gray-matter\";\nimport { basename, extname, join } from \"path\";\nimport YAML from \"yaml\";\nimport type {\n SkillMeta,\n InputDef,\n SkillAvailability,\n SkillPrerequisites,\n SkillContractRef,\n SkillContractType,\n} from \"./types.js\";\n\nconst REQUIRED_KEYS = [\"name\", \"description\"] as const;\nconst AVAILABILITY_VALUES: SkillAvailability[] = [\n \"default\",\n \"advanced\",\n \"conditional\",\n];\n\nconst CONTRACT_CANDIDATES: SkillContractRef[] = [\n { file: \"SKILL.md\", type: \"skill_md\" },\n { file: \"skill.md\", type: \"skill_md\" },\n { file: \"skill.yaml\", type: \"skill_yaml\" },\n { file: \"skill.yml\", type: \"skill_yaml\" },\n { file: \"skill.json\", type: \"skill_json\" },\n { file: \"AGENTS.md\", type: \"agent_markdown\" },\n { file: \"AGENT.md\", type: \"agent_markdown\" },\n { file: \"CLAUDE.md\", type: \"agent_markdown\" },\n { file: \"README.md\", type: \"readme_markdown\" },\n];\n\nconst ADAPTER_FALLBACK_PATTERNS = /(skill|agent|claude|instruction|contract)/i;\n\nexport const SUPPORTED_SKILL_CONTRACT_FILES = CONTRACT_CANDIDATES.map(\n (v) => v.file,\n);\n\nexport interface ParseSkillContractOptions {\n contractType?: SkillContractType;\n sourcePath?: string;\n fallbackName?: string;\n}\n\nexport interface LoadedSkillMeta {\n meta: SkillMeta;\n contract: SkillContractRef;\n contractPath: string;\n}\n\nexport function parseSkillMd(content: string): SkillMeta {\n const { data } = matter(content);\n const meta = asRecord(data);\n if (!meta) {\n throw new Error(\"SKILL.md must have YAML frontmatter\");\n }\n\n for (const key of REQUIRED_KEYS) {\n if (!isNonEmptyString(meta[key])) {\n throw new Error(`SKILL.md frontmatter must have \"${key}\" (string)`);\n }\n }\n\n return normalizeSkillMeta(meta, { sourceLabel: \"SKILL.md\" });\n}\n\nexport function parseSkillContract(\n content: string,\n opts: ParseSkillContractOptions = {},\n): SkillMeta {\n const sourcePath = opts.sourcePath || \"\";\n const sourceLabel = sourcePath || \"skill contract\";\n const contractType =\n opts.contractType || inferSkillContractType(sourcePath || \"SKILL.md\");\n\n if (contractType === \"skill_json\") {\n return parseSkillJson(content, sourceLabel, opts.fallbackName);\n }\n\n if (contractType === \"skill_yaml\") {\n return parseSkillYaml(content, sourceLabel, opts.fallbackName);\n }\n\n if (contractType === \"skill_md\") {\n try {\n return parseSkillMd(content);\n } catch {\n return parseMarkdownContract(content, sourceLabel, opts.fallbackName);\n }\n }\n\n return parseMarkdownContract(content, sourceLabel, opts.fallbackName);\n}\n\nexport function inferSkillContractType(pathOrFile: string): SkillContractType {\n const normalized = pathOrFile.trim().toLowerCase();\n const file = normalized.split(\"/\").filter(Boolean).pop() || normalized;\n\n if (file === \"skill.md\") return \"skill_md\";\n if (file === \"skill.yaml\" || file === \"skill.yml\") return \"skill_yaml\";\n if (file === \"skill.json\") return \"skill_json\";\n if (file === \"agent.md\" || file === \"agents.md\" || file === \"claude.md\") {\n return \"agent_markdown\";\n }\n if (file === \"readme.md\") return \"readme_markdown\";\n\n const ext = extname(file);\n if (ext === \".json\") return \"skill_json\";\n if (ext === \".yaml\" || ext === \".yml\") return \"skill_yaml\";\n if (ext === \".md\") return \"agent_markdown\";\n return \"skill_md\";\n}\n\nexport function findSkillContractFile(\n skillDir: string,\n): SkillContractRef | null {\n for (const candidate of CONTRACT_CANDIDATES) {\n if (existsSync(join(skillDir, candidate.file))) {\n return { ...candidate };\n }\n }\n\n try {\n const files = readdirSync(skillDir, { withFileTypes: true })\n .filter((entry) => entry.isFile())\n .map((entry) => entry.name)\n .filter((name) => {\n const ext = extname(name).toLowerCase();\n return (\n ext === \".md\" || ext === \".json\" || ext === \".yaml\" || ext === \".yml\"\n );\n });\n\n const fallback = files.find((name) => ADAPTER_FALLBACK_PATTERNS.test(name));\n if (fallback) {\n return {\n file: fallback,\n type: inferSkillContractType(fallback),\n };\n }\n } catch {\n return null;\n }\n\n return null;\n}\n\nexport function loadSkillMetaFromDir(skillDir: string): LoadedSkillMeta {\n const contract = findSkillContractFile(skillDir);\n if (!contract) {\n throw new Error(\n `No supported skill contract found in ${skillDir}. Supported files: ${SUPPORTED_SKILL_CONTRACT_FILES.join(\", \")}`,\n );\n }\n\n const contractPath = join(skillDir, contract.file);\n const content = readFileSync(contractPath, \"utf-8\");\n const fallbackName = inferFallbackNameFromDir(skillDir);\n const meta = parseSkillContract(content, {\n contractType: contract.type,\n sourcePath: contract.file,\n fallbackName,\n });\n\n return {\n meta,\n contract,\n contractPath,\n };\n}\n\nfunction parseSkillYaml(\n content: string,\n sourceLabel: string,\n fallbackName?: string,\n): SkillMeta {\n let data: unknown;\n try {\n data = YAML.parse(content);\n } catch (e) {\n throw new Error(`Invalid YAML in ${sourceLabel}: ${(e as Error).message}`);\n }\n const meta = asRecord(data);\n if (!meta) {\n throw new Error(`Expected YAML object in ${sourceLabel}`);\n }\n\n return normalizeSkillMeta(meta, {\n sourceLabel,\n fallbackName,\n });\n}\n\nfunction parseSkillJson(\n content: string,\n sourceLabel: string,\n fallbackName?: string,\n): SkillMeta {\n let data: unknown;\n try {\n data = JSON.parse(content);\n } catch (e) {\n throw new Error(`Invalid JSON in ${sourceLabel}: ${(e as Error).message}`);\n }\n const meta = asRecord(data);\n if (!meta) {\n throw new Error(`Expected JSON object in ${sourceLabel}`);\n }\n\n return normalizeSkillMeta(meta, {\n sourceLabel,\n fallbackName,\n });\n}\n\nfunction parseMarkdownContract(\n content: string,\n sourceLabel: string,\n fallbackName?: string,\n): SkillMeta {\n const parsed = matter(content);\n const frontmatter = asRecord(parsed.data);\n const nameFromHeading = extractFirstHeading(parsed.content);\n const descFromBody = extractFirstParagraph(parsed.content);\n\n if (frontmatter && Object.keys(frontmatter).length > 0) {\n return normalizeSkillMeta(frontmatter, {\n sourceLabel,\n fallbackName: fallbackName || nameFromHeading,\n fallbackDescription: descFromBody,\n });\n }\n\n return normalizeSkillMeta(\n {},\n {\n sourceLabel,\n fallbackName: fallbackName || nameFromHeading,\n fallbackDescription:\n descFromBody || `Skill instructions in ${sourceLabel}`,\n },\n );\n}\n\nfunction normalizeSkillMeta(\n meta: Record<string, unknown>,\n opts: {\n sourceLabel: string;\n fallbackName?: string;\n fallbackDescription?: string;\n },\n): SkillMeta {\n const name =\n pickString(meta, [[\"name\"], [\"title\"], [\"id\"], [\"slug\"]]) ||\n opts.fallbackName;\n const description =\n pickString(meta, [\n [\"description\"],\n [\"summary\"],\n [\"short_description\"],\n [\"shortDescription\"],\n [\"metadata\", \"short-description\"],\n [\"metadata\", \"short_description\"],\n [\"metadata\", \"description\"],\n ]) || opts.fallbackDescription;\n\n if (!isNonEmptyString(name)) {\n throw new Error(`${opts.sourceLabel} must define a name`);\n }\n if (!isNonEmptyString(description)) {\n throw new Error(`${opts.sourceLabel} must define a description`);\n }\n\n const prerequisites = normalizePrerequisites(\n pick(meta, [\"prerequisites\"]) || pick(meta, [\"requirements\"]),\n );\n const capabilities = normalizeCapabilities(\n pick(meta, [\"capabilities\"]) || pick(meta, [\"permissions\"]),\n );\n const scripts = normalizeScripts(\n pick(meta, [\"scripts\"]),\n pickString(meta, [[\"check_script\"], [\"checkScript\"]]),\n pickString(meta, [[\"run_script\"], [\"runScript\"]]),\n );\n const docs = normalizeDocs(\n pick(meta, [\"docs\"]),\n pickString(meta, [[\"homepage\"]]),\n pickString(meta, [[\"source\"], [\"repo\"], [\"repository\"]]),\n );\n\n return {\n name: String(name).trim(),\n description: String(description).trim(),\n version: normalizeString(pick(meta, [\"version\"])),\n tags: normalizeStringArray(\n pick(meta, [\"tags\"]) || pick(meta, [\"keywords\"]),\n \"comma\",\n ),\n kind: normalizeKind(pick(meta, [\"kind\"]) || pick(meta, [\"type\"])),\n risk: normalizeRisk(pick(meta, [\"risk\"])),\n availability: normalizeAvailability(\n pick(meta, [\"availability\"]) || pick(meta, [\"tier\"]),\n ),\n prerequisites,\n capabilities,\n scripts,\n inputs: normalizeInputs(\n pick(meta, [\"inputs\"]) || pick(meta, [\"parameters\"]),\n ),\n docs,\n };\n}\n\nfunction normalizeKind(v: unknown): \"automation\" | \"knowledge\" | undefined {\n if (!isNonEmptyString(v)) return undefined;\n if (v === \"automation\" || v === \"knowledge\") return v;\n return undefined;\n}\n\nfunction normalizeRisk(v: unknown): \"low\" | \"moderate\" | \"high\" | undefined {\n if (!isNonEmptyString(v)) return undefined;\n if (v === \"low\" || v === \"moderate\" || v === \"high\") return v;\n return undefined;\n}\n\nfunction normalizeAvailability(v: unknown): SkillAvailability | undefined {\n if (!isNonEmptyString(v)) return undefined;\n return AVAILABILITY_VALUES.includes(v as SkillAvailability)\n ? (v as SkillAvailability)\n : undefined;\n}\n\nfunction normalizePrerequisites(v: unknown): SkillPrerequisites | undefined {\n const obj = asRecord(v);\n if (!obj) return undefined;\n\n const out: SkillPrerequisites = {};\n out.tools = normalizeStringArray(\n obj.tools || obj.tooling || obj.commands || obj.bins,\n );\n out.files = normalizeStringArray(obj.files || obj.paths || obj.filePaths);\n out.env = normalizeStringArray(obj.env || obj.environment || obj.envVars);\n out.packageJsonDeps = normalizeStringArray(\n obj.packageJsonDeps || obj.dependencies || obj.npmDeps,\n );\n\n if (\n !out.tools?.length &&\n !out.files?.length &&\n !out.env?.length &&\n !out.packageJsonDeps?.length\n ) {\n return undefined;\n }\n return out;\n}\n\nfunction normalizeCapabilities(\n v: unknown,\n): SkillMeta[\"capabilities\"] | undefined {\n const obj = asRecord(v);\n if (!obj && !Array.isArray(v)) return undefined;\n\n const out: NonNullable<SkillMeta[\"capabilities\"]> = {};\n if (obj) {\n out.shell = toBoolean(obj.shell);\n out.network = toBoolean(obj.network);\n out.fs_read = toBoolean(obj.fs_read ?? obj.fsRead ?? obj.read);\n out.fs_write = toBoolean(obj.fs_write ?? obj.fsWrite ?? obj.write);\n }\n\n if (Array.isArray(v)) {\n for (const value of v.map(String)) {\n const item = value.trim().toLowerCase();\n if (!item) continue;\n if (item === \"shell\") out.shell = true;\n if (item === \"network\") out.network = true;\n if (item === \"fs_read\" || item === \"fs-read\" || item === \"read\") {\n out.fs_read = true;\n }\n if (item === \"fs_write\" || item === \"fs-write\" || item === \"write\") {\n out.fs_write = true;\n }\n }\n }\n\n if (\n out.shell === undefined &&\n out.network === undefined &&\n out.fs_read === undefined &&\n out.fs_write === undefined\n ) {\n return undefined;\n }\n return out;\n}\n\nfunction normalizeScripts(\n scriptsValue: unknown,\n checkFallback?: string,\n runFallback?: string,\n): SkillMeta[\"scripts\"] | undefined {\n const scripts = asRecord(scriptsValue);\n const check =\n normalizeString(scripts?.check || scripts?.validate || checkFallback) ||\n undefined;\n const run =\n normalizeString(scripts?.run || scripts?.execute || runFallback) ||\n undefined;\n\n if (!check && !run) return undefined;\n return { check, run };\n}\n\nfunction normalizeInputs(v: unknown): Record<string, InputDef> | undefined {\n const obj = asRecord(v);\n if (!obj) return undefined;\n return obj as Record<string, InputDef>;\n}\n\nfunction normalizeDocs(\n docsValue: unknown,\n homepageFallback?: string,\n sourceFallback?: string,\n): SkillMeta[\"docs\"] | undefined {\n const docs = asRecord(docsValue);\n const homepage = normalizeString(docs?.homepage || homepageFallback);\n const source = normalizeString(docs?.source || sourceFallback);\n if (!homepage && !source) return undefined;\n return { homepage, source };\n}\n\nfunction normalizeString(v: unknown): string | undefined {\n if (!isNonEmptyString(v)) return undefined;\n const value = String(v).trim();\n return value || undefined;\n}\n\nfunction normalizeStringArray(\n value: unknown,\n splitMode: \"none\" | \"comma\" = \"none\",\n): string[] | undefined {\n if (Array.isArray(value)) {\n const out = value\n .map(String)\n .map((v) => v.trim())\n .filter(Boolean);\n return out.length ? out : undefined;\n }\n if (!isNonEmptyString(value)) return undefined;\n const source = value.trim();\n const out =\n splitMode === \"comma\"\n ? source\n .split(\",\")\n .map((v) => v.trim())\n .filter(Boolean)\n : [source];\n return out.length ? out : undefined;\n}\n\nfunction extractFirstHeading(markdown: string): string | undefined {\n const lines = markdown.split(/\\r?\\n/);\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed) continue;\n if (/^#{1,6}\\s+/.test(trimmed)) {\n const heading = trimmed.replace(/^#{1,6}\\s+/, \"\").trim();\n return heading || undefined;\n }\n }\n return undefined;\n}\n\nfunction extractFirstParagraph(markdown: string): string | undefined {\n const lines = markdown.split(/\\r?\\n/);\n const parts: string[] = [];\n let inFence = false;\n\n for (const line of lines) {\n const trimmed = line.trim();\n if (trimmed.startsWith(\"```\")) {\n inFence = !inFence;\n continue;\n }\n if (inFence) continue;\n if (!trimmed) {\n if (parts.length > 0) break;\n continue;\n }\n if (/^#{1,6}\\s+/.test(trimmed)) continue;\n if (/^[-*]\\s+/.test(trimmed) && parts.length === 0) continue;\n if (/^\\d+\\.\\s+/.test(trimmed) && parts.length === 0) continue;\n parts.push(trimmed);\n }\n\n if (!parts.length) return undefined;\n return parts.join(\" \");\n}\n\nfunction inferFallbackNameFromDir(skillDir: string): string {\n const value = basename(skillDir);\n const at = value.lastIndexOf(\"@\");\n if (at > 0) {\n const suffix = value.slice(at + 1);\n if (suffix === \"latest\" || /^\\d+\\.\\d+\\.\\d+/.test(suffix)) {\n return value.slice(0, at);\n }\n }\n return value;\n}\n\nfunction pickString(\n obj: Record<string, unknown>,\n paths: string[][],\n): string | undefined {\n for (const path of paths) {\n const value = pick(obj, path);\n if (isNonEmptyString(value)) {\n return String(value).trim();\n }\n }\n return undefined;\n}\n\nfunction pick(obj: Record<string, unknown>, path: string[]): unknown {\n let current: unknown = obj;\n for (const segment of path) {\n const record = asRecord(current);\n if (!record || !(segment in record)) return undefined;\n current = record[segment];\n }\n return current;\n}\n\nfunction asRecord(v: unknown): Record<string, unknown> | null {\n if (!v || typeof v !== \"object\" || Array.isArray(v)) return null;\n return v as Record<string, unknown>;\n}\n\nfunction toBoolean(v: unknown): boolean | undefined {\n if (typeof v === \"boolean\") return v;\n if (typeof v === \"string\") {\n const normalized = v.trim().toLowerCase();\n if (normalized === \"true\") return true;\n if (normalized === \"false\") return false;\n }\n return undefined;\n}\n\nfunction isNonEmptyString(v: unknown): v is string {\n return typeof v === \"string\" && v.trim().length > 0;\n}\n","import { readFileSync, existsSync } from \"fs\";\nimport { dirname, join } from \"path\";\nimport { fileURLToPath } from \"url\";\nimport { findRegistryRoot } from \"./paths.js\";\nimport type { RegistryIndex, RegistrySkill } from \"./types.js\";\n\nconst DEFAULT_REGISTRY_URLS = [\n \"https://khalidsaidi.github.io/skillrunner/index.json\",\n \"https://khalidsaidi.github.io/skillrunner/registry/dist/index.json\",\n \"https://raw.githubusercontent.com/khalidsaidi/skillrunner/main/registry/dist/index.json\",\n \"https://raw.githubusercontent.com/khalidsaidi/skillrunner/master/registry/dist/index.json\",\n];\n\nconst CACHE_DIR = join(process.env.HOME || \"\", \".skillrunner\");\nexport const REGISTRY_CACHE_DIR = join(CACHE_DIR, \"registry-cache\");\nexport const SKILLS_DIR = join(CACHE_DIR, \"skills\");\nexport const RUNS_DIR = join(CACHE_DIR, \"runs\");\n\nexport function getSkillsDir(): string {\n return SKILLS_DIR;\n}\n\nexport function getRunsDir(): string {\n return RUNS_DIR;\n}\n\nfunction getRegistryCandidates(baseUrl?: string): string[] {\n const urls = [\n baseUrl,\n process.env.SKILLRUNNER_REGISTRY_URL,\n ...DEFAULT_REGISTRY_URLS,\n ].filter((v): v is string => Boolean(v));\n\n const deduped: string[] = [];\n const seen = new Set<string>();\n for (const u of urls) {\n if (seen.has(u)) continue;\n seen.add(u);\n deduped.push(u);\n }\n return deduped;\n}\n\nfunction normalizeLookup(value: string): string {\n return value.trim().toLowerCase();\n}\n\nfunction stripVersionSpecifier(value: string): string {\n const trimmed = value.trim();\n const at = trimmed.lastIndexOf(\"@\");\n if (at > 0) return trimmed.slice(0, at);\n return trimmed;\n}\n\nfunction pathBasename(value: string): string {\n const normalized = value.replace(/\\\\/g, \"/\").replace(/\\/+$/, \"\");\n const parts = normalized.split(\"/\").filter(Boolean);\n return parts.length > 0 ? parts[parts.length - 1] : \"\";\n}\n\nfunction extractSkillSlugFromPaths(skill: RegistrySkill): string {\n const contractPath = skill.paths?.contract || \"\";\n if (contractPath) {\n const normalized = contractPath.replace(/\\\\/g, \"/\");\n const parts = normalized.split(\"/\").filter(Boolean);\n if (parts.length > 1) return parts[parts.length - 2];\n }\n\n const fromDir = pathBasename(skill.paths?.dir || \"\");\n if (fromDir) return fromDir;\n\n const skillMd = skill.paths?.skill_md || \"\";\n const normalized = skillMd.replace(/\\\\/g, \"/\");\n const parts = normalized.split(\"/\").filter(Boolean);\n if (\n parts.length >= 2 &&\n parts[parts.length - 1].toLowerCase() === \"skill.md\"\n ) {\n return parts[parts.length - 2];\n }\n\n return \"\";\n}\n\nfunction parseRegistryPayload(payload: unknown): RegistryIndex | null {\n if (!payload || typeof payload !== \"object\") return null;\n const maybe = payload as {\n skills?: unknown[];\n packs?: unknown[];\n index?: unknown;\n };\n if (Array.isArray(maybe.skills)) {\n return {\n ...(payload as RegistryIndex),\n skills: maybe.skills as RegistrySkill[],\n packs: Array.isArray(maybe.packs)\n ? (maybe.packs as RegistryIndex[\"packs\"])\n : [],\n };\n }\n\n const nestedIndex = maybe.index as\n | { skills?: unknown[]; packs?: unknown[] }\n | undefined;\n if (nestedIndex && Array.isArray(nestedIndex.skills)) {\n return {\n ...(nestedIndex as RegistryIndex),\n skills: nestedIndex.skills as RegistrySkill[],\n packs: Array.isArray(nestedIndex.packs)\n ? (nestedIndex.packs as RegistryIndex[\"packs\"])\n : [],\n };\n }\n\n return null;\n}\n\nexport function getRegistrySkillSlug(skill: RegistrySkill): string {\n return extractSkillSlugFromPaths(skill) || skill.name;\n}\n\nexport async function fetchRemoteRegistry(\n baseUrl?: string,\n): Promise<RegistryIndex> {\n const candidates = getRegistryCandidates(baseUrl);\n if (candidates.length === 0) {\n throw new Error(\"No registry URL configured\");\n }\n\n const errors: string[] = [];\n for (const url of candidates) {\n try {\n const res = await fetch(url);\n if (!res.ok) {\n errors.push(`${url} -> ${res.status} ${res.statusText}`);\n continue;\n }\n const payload = await res.json();\n const parsed = parseRegistryPayload(payload);\n if (!parsed) {\n errors.push(`${url} -> invalid registry payload`);\n continue;\n }\n return parsed;\n } catch (e) {\n errors.push(`${url} -> ${(e as Error).message}`);\n }\n }\n\n throw new Error(\n `Failed to fetch registry from all sources: ${errors.join(\"; \")}`,\n );\n}\n\nexport function loadLocalRegistry(repoRoot: string): RegistryIndex | null {\n const path = join(repoRoot, \"registry\", \"dist\", \"index.json\");\n if (!existsSync(path)) return null;\n const content = readFileSync(path, \"utf-8\");\n return JSON.parse(content) as RegistryIndex;\n}\n\nexport function resolveRegistryRoot(startCwd = process.cwd()): string {\n const cwdRoot = findRegistryRoot(startCwd);\n if (cwdRoot) return cwdRoot;\n\n const moduleDir = dirname(fileURLToPath(import.meta.url));\n const moduleRoot = findRegistryRoot(moduleDir);\n if (moduleRoot) return moduleRoot;\n return \"\";\n}\n\nexport function loadBundledRegistry(): RegistryIndex | null {\n const moduleDir = dirname(fileURLToPath(import.meta.url));\n const candidates = [\n join(moduleDir, \"registry\", \"dist\", \"index.json\"),\n join(moduleDir, \"..\", \"registry\", \"dist\", \"index.json\"),\n ];\n\n const moduleRoot = findRegistryRoot(moduleDir);\n if (moduleRoot) {\n candidates.push(join(moduleRoot, \"registry\", \"dist\", \"index.json\"));\n }\n\n for (const path of candidates) {\n if (!existsSync(path)) continue;\n try {\n const content = readFileSync(path, \"utf-8\");\n return JSON.parse(content) as RegistryIndex;\n } catch {\n // try next candidate\n }\n }\n\n return null;\n}\n\nexport async function resolveRegistryIndex(\n startCwd = process.cwd(),\n): Promise<RegistryIndex> {\n const root = resolveRegistryRoot(startCwd);\n const local = root ? loadLocalRegistry(root) : null;\n if (local) return local;\n\n try {\n return await fetchRemoteRegistry();\n } catch (remoteError) {\n const bundled = loadBundledRegistry();\n if (bundled) return bundled;\n throw remoteError;\n }\n}\n\nexport function searchRegistry(\n index: RegistryIndex,\n query: string,\n): RegistrySkill[] {\n const q = normalizeLookup(query);\n return index.skills.filter(\n (s) =>\n normalizeLookup(s.name).includes(q) ||\n normalizeLookup(getRegistrySkillSlug(s)).includes(q) ||\n normalizeLookup(s.description).includes(q) ||\n (s.tags && s.tags.some((t) => t.toLowerCase().includes(q))),\n );\n}\n\nexport function getSkillFromIndex(\n index: RegistryIndex,\n name: string,\n): RegistrySkill | undefined {\n const lookup = normalizeLookup(stripVersionSpecifier(name));\n if (!lookup) return undefined;\n\n return index.skills.find((s) => {\n if (normalizeLookup(s.name) === lookup) return true;\n return normalizeLookup(getRegistrySkillSlug(s)) === lookup;\n });\n}\n","import { existsSync } from \"fs\";\nimport { join } from \"path\";\n\nexport function findRegistryRoot(startCwd = process.cwd()): string {\n let d = startCwd;\n for (let i = 0; i < 10; i++) {\n if (existsSync(join(d, \"registry\", \"skills\"))) return d;\n const parent = join(d, \"..\");\n if (parent === d) break;\n d = parent;\n }\n return \"\";\n}\n","import { readFileSync } from \"fs\";\n\n// Match lines that are NOT comments (avoid blocking shebangs)\nconst isComment = (line: string) => /^\\s*#/.test(line);\n\nconst HARD_BLOCK_PATTERNS: RegExp[] = [\n /\\bsudo\\b/,\n /\\bsu\\s+/,\n /\\brm\\s+(-rf|-\\s*rf|-r\\s*f)\\b/,\n /\\brm\\s+-r\\s+-f\\b/,\n /\\bcurl\\s+[^|]+\\|\\s*(sh|bash)\\b/,\n /~\\/(\\.ssh|\\.aws)\\b/,\n /\\bchmod\\s+777\\b/,\n /\\bchown\\s+-R\\b/,\n];\n\n// Paths that indicate dangerous writes (avoid matching shebangs like #!/usr/bin/env)\nconst DANGEROUS_PATH_PATTERN = /(^|[^#])\\s*\\/(etc|usr\\/bin|bin)\\b/;\n\nexport interface GuardResult {\n passed: boolean;\n violations: string[];\n}\n\nexport function scanScriptForBannedPatterns(scriptPath: string): GuardResult {\n const violations: string[] = [];\n let content: string;\n try {\n content = readFileSync(scriptPath, \"utf-8\");\n } catch {\n return { passed: true, violations: [] };\n }\n\n const lines = content.split(\"\\n\");\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n if (isComment(line)) continue;\n for (const pat of HARD_BLOCK_PATTERNS) {\n if (pat.test(line)) {\n violations.push(`Line ${i + 1}: banned pattern: ${line.trim()}`);\n }\n }\n if (DANGEROUS_PATH_PATTERN.test(line)) {\n violations.push(`Line ${i + 1}: writes to system path: ${line.trim()}`);\n }\n }\n\n return {\n passed: violations.length === 0,\n violations,\n };\n}\n\nexport function blockMessage(violations: string[]): string {\n return [\n \"Skill blocked by guard. Hard-block patterns detected:\",\n ...violations.map((v) => ` - ${v}`),\n \"Fix the script and try again.\",\n ].join(\"\\n\");\n}\n","import { existsSync, readFileSync, statSync } from \"fs\";\nimport { isAbsolute, join } from \"path\";\nimport type { SkillMeta } from \"./types.js\";\n\nexport interface SkillPreflightResult {\n passed: boolean;\n missingTools: string[];\n missingFiles: string[];\n missingEnv: string[];\n missingPackageJsonDeps: string[];\n}\n\nfunction normalizeArray(values: unknown): string[] {\n if (!Array.isArray(values)) return [];\n return values.map((v) => String(v).trim()).filter(Boolean);\n}\n\nfunction isExecutableFile(path: string): boolean {\n if (!existsSync(path)) return false;\n try {\n const st = statSync(path);\n if (!st.isFile()) return false;\n if (process.platform === \"win32\") return true;\n return (st.mode & 0o111) !== 0;\n } catch {\n return false;\n }\n}\n\nfunction isToolAvailable(tool: string): boolean {\n const trimmed = tool.trim();\n if (!trimmed) return false;\n\n if (trimmed.includes(\"/\") || trimmed.includes(\"\\\\\")) {\n return isExecutableFile(trimmed);\n }\n\n const pathEnv = process.env.PATH || \"\";\n const delimiter = process.platform === \"win32\" ? \";\" : \":\";\n const dirs = pathEnv.split(delimiter).filter(Boolean);\n const extensions =\n process.platform === \"win32\"\n ? (process.env.PATHEXT || \".EXE;.CMD;.BAT;.COM\")\n .split(\";\")\n .map((e) => e.toLowerCase())\n .filter(Boolean)\n : [\"\"];\n\n for (const dir of dirs) {\n if (process.platform === \"win32\") {\n const hasExt = /\\.[a-z0-9]+$/i.test(trimmed);\n const candidates = hasExt\n ? [join(dir, trimmed)]\n : extensions.map((ext) => join(dir, `${trimmed}${ext}`));\n if (candidates.some((candidate) => isExecutableFile(candidate))) {\n return true;\n }\n continue;\n }\n\n if (isExecutableFile(join(dir, trimmed))) return true;\n }\n\n return false;\n}\n\nfunction readPackageJsonDependencyNames(cwd: string): Set<string> | null {\n const packageJsonPath = join(cwd, \"package.json\");\n if (!existsSync(packageJsonPath)) return null;\n\n try {\n const parsed = JSON.parse(readFileSync(packageJsonPath, \"utf-8\")) as {\n dependencies?: Record<string, unknown>;\n devDependencies?: Record<string, unknown>;\n peerDependencies?: Record<string, unknown>;\n optionalDependencies?: Record<string, unknown>;\n };\n\n const names = new Set<string>();\n for (const section of [\n parsed.dependencies,\n parsed.devDependencies,\n parsed.peerDependencies,\n parsed.optionalDependencies,\n ]) {\n if (!section || typeof section !== \"object\") continue;\n for (const key of Object.keys(section)) {\n const normalized = key.trim();\n if (normalized) names.add(normalized);\n }\n }\n return names;\n } catch {\n return null;\n }\n}\n\nexport function checkSkillPrerequisites(\n meta: SkillMeta,\n cwd: string,\n): SkillPreflightResult {\n const prerequisites = meta.prerequisites || {};\n const tools = normalizeArray(prerequisites.tools);\n const files = normalizeArray(prerequisites.files);\n const env = normalizeArray(prerequisites.env);\n const packageJsonDeps = normalizeArray(prerequisites.packageJsonDeps);\n\n const missingTools = tools.filter((tool) => !isToolAvailable(tool));\n const missingFiles = files.filter((file) => {\n const path = isAbsolute(file) ? file : join(cwd, file);\n return !existsSync(path);\n });\n const missingEnv = env.filter((name) => {\n const value = process.env[name];\n return typeof value !== \"string\" || value.trim() === \"\";\n });\n\n const packageJsonDepNames =\n packageJsonDeps.length > 0 ? readPackageJsonDependencyNames(cwd) : null;\n const missingPackageJsonDeps = packageJsonDeps.filter((name) => {\n return !packageJsonDepNames?.has(name);\n });\n\n return {\n passed:\n missingTools.length === 0 &&\n missingFiles.length === 0 &&\n missingEnv.length === 0 &&\n missingPackageJsonDeps.length === 0,\n missingTools,\n missingFiles,\n missingEnv,\n missingPackageJsonDeps,\n };\n}\n","import { existsSync } from \"fs\";\nimport { join } from \"path\";\nimport type { Plan, PlanStep, SkillMeta } from \"./types.js\";\n\nexport function buildPlan(skillDir: string, meta: SkillMeta): Plan {\n const steps: PlanStep[] = [];\n const requires: Plan[\"requires\"] = {};\n\n if (meta.capabilities?.shell) requires.shell = true;\n if (meta.capabilities?.network) requires.network = true;\n if (meta.capabilities?.fs_read) requires.fs_read = true;\n if (meta.capabilities?.fs_write) requires.fs_write = true;\n\n const checkPath = meta.scripts?.check\n ? join(skillDir, meta.scripts.check)\n : join(skillDir, \"scripts\", \"check.sh\");\n if (existsSync(checkPath)) {\n steps.push({\n type: \"shell\",\n cmd: `./${meta.scripts?.check || \"scripts/check.sh\"}`,\n });\n }\n\n const runPath = meta.scripts?.run\n ? join(skillDir, meta.scripts.run)\n : join(skillDir, \"scripts\", \"run.sh\");\n if (existsSync(runPath)) {\n steps.push({\n type: \"shell\",\n cmd: `./${meta.scripts?.run || \"scripts/run.sh\"}`,\n });\n }\n\n return {\n steps,\n requires,\n risk: meta.risk || \"low\",\n };\n}\n","import { spawn } from \"child_process\";\nimport { mkdirSync, writeFileSync, existsSync } from \"fs\";\nimport { join } from \"path\";\nimport { randomUUID } from \"crypto\";\nimport type { Plan } from \"./types.js\";\nimport { getRunsDir } from \"./registry.js\";\n\nexport interface RunResult {\n runId: string;\n success: boolean;\n exitCode: number;\n stdout: string;\n stderr: string;\n}\n\nexport async function runScript(\n cwd: string,\n scriptPath: string,\n runId?: string,\n): Promise<RunResult> {\n const rid = runId || randomUUID();\n const runsDir = join(getRunsDir(), rid);\n mkdirSync(runsDir, { recursive: true });\n\n return new Promise((resolve) => {\n const proc = spawn(\"bash\", [scriptPath], {\n cwd,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n\n let stdout = \"\";\n let stderr = \"\";\n proc.stdout?.on(\"data\", (d) => (stdout += d.toString()));\n proc.stderr?.on(\"data\", (d) => (stderr += d.toString()));\n\n proc.on(\"close\", (code, signal) => {\n const exitCode = code ?? (signal ? 1 : 0);\n const success = exitCode === 0;\n writeFileSync(join(runsDir, \"stdout.log\"), stdout);\n writeFileSync(join(runsDir, \"stderr.log\"), stderr);\n resolve({\n runId: rid,\n success,\n exitCode,\n stdout,\n stderr,\n });\n });\n });\n}\n\nexport async function executePlan(\n cwd: string,\n skillDir: string,\n plan: Plan,\n): Promise<RunResult[]> {\n const results: RunResult[] = [];\n for (const step of plan.steps) {\n if (step.type === \"shell\") {\n const parts = step.cmd.split(/\\s+/);\n const script = parts[0].startsWith(\"./\")\n ? join(skillDir, parts[0].slice(2))\n : join(skillDir, step.cmd);\n if (existsSync(script)) {\n const r = await runScript(\n cwd,\n script,\n results.length === 0 ? undefined : undefined,\n );\n results.push(r);\n if (!r.success) break;\n }\n }\n }\n return results;\n}\n","import { writeFileSync, mkdirSync } from \"fs\";\nimport { join } from \"path\";\nimport type { Plan } from \"./types.js\";\nimport { getRunsDir } from \"./registry.js\";\n\nexport interface RunMeta {\n runId: string;\n skillName: string;\n cwd: string;\n startedAt: string;\n finishedAt?: string;\n success?: boolean;\n}\n\nexport function writeRunArtifacts(\n runId: string,\n skillName: string,\n cwd: string,\n plan: Plan,\n guardResult: { passed: boolean; violations: string[] },\n runResult?: {\n success: boolean;\n stdout: string;\n stderr: string;\n exitCode: number;\n },\n): void {\n const runsDir = join(getRunsDir(), runId);\n mkdirSync(runsDir, { recursive: true });\n\n const meta: RunMeta = {\n runId,\n skillName,\n cwd,\n startedAt: new Date().toISOString(),\n };\n if (runResult) {\n meta.finishedAt = new Date().toISOString();\n meta.success = runResult.success;\n }\n\n writeFileSync(join(runsDir, \"meta.json\"), JSON.stringify(meta, null, 2));\n writeFileSync(join(runsDir, \"plan.json\"), JSON.stringify(plan, null, 2));\n writeFileSync(\n join(runsDir, \"guard.json\"),\n JSON.stringify(guardResult, null, 2),\n );\n\n if (runResult) {\n writeFileSync(join(runsDir, \"stdout.log\"), runResult.stdout);\n writeFileSync(join(runsDir, \"stderr.log\"), runResult.stderr);\n writeFileSync(\n join(runsDir, \"summary.json\"),\n JSON.stringify(\n {\n success: runResult.success,\n exitCode: runResult.exitCode,\n },\n null,\n 2,\n ),\n );\n }\n}\n","type JsonFlagHolder = { json?: boolean } | undefined;\n\ntype CommandLike =\n | {\n opts?: () => { json?: boolean };\n parent?: { opts?: () => { json?: boolean } };\n }\n | undefined;\n\nfunction readJsonFlag(value: JsonFlagHolder): boolean {\n return Boolean(value?.json);\n}\n\nexport function shouldUseJson(\n opts?: JsonFlagHolder,\n cmd?: CommandLike,\n): boolean {\n if (readJsonFlag(opts)) return true;\n if (readJsonFlag(cmd?.opts?.())) return true;\n if (readJsonFlag(cmd?.parent?.opts?.())) return true;\n return false;\n}\n","import chalk from \"chalk\";\nimport { readdirSync, existsSync } from \"fs\";\nimport { join } from \"path\";\nimport {\n loadSkillMetaFromDir,\n getSkillsDir,\n} from \"@khalidsaidi/skillrunner-engine\";\nimport { shouldUseJson } from \"../utils/json.js\";\n\nexport async function listCmd(\n opts: { json?: boolean },\n cmd: {\n opts?: () => { json?: boolean };\n parent?: { opts?: () => { json?: boolean } };\n },\n): Promise<void> {\n const json = shouldUseJson(opts, cmd);\n const skillsDir = getSkillsDir();\n\n const skills: {\n name: string;\n version?: string;\n description?: string;\n availability?: \"default\" | \"advanced\" | \"conditional\";\n }[] = [];\n if (existsSync(skillsDir)) {\n for (const entry of readdirSync(skillsDir, { withFileTypes: true })) {\n if (entry.isDirectory()) {\n const skillDir = join(skillsDir, entry.name);\n try {\n const loaded = loadSkillMetaFromDir(skillDir);\n skills.push({\n name: loaded.meta.name,\n version: loaded.meta.version,\n description: loaded.meta.description,\n availability: loaded.meta.availability,\n });\n } catch {\n skills.push({\n name: entry.name,\n version: undefined,\n description: undefined,\n });\n }\n }\n }\n }\n\n if (json) {\n console.log(JSON.stringify({ skills }, null, 2));\n return;\n }\n\n console.log(chalk.bold(\"Installed skills:\\n\"));\n if (skills.length === 0) {\n console.log(chalk.dim(' (none) — use \"skill install <name>\" to install'));\n return;\n }\n for (const s of skills) {\n console.log(\n ` ${chalk.cyan(s.name)}${s.version ? chalk.dim(`@${s.version}`) : \"\"}${chalk.dim(` [${s.availability || \"default\"}]`)}`,\n );\n if (s.description) console.log(` ${chalk.dim(s.description)}`);\n }\n}\n","import chalk from \"chalk\";\nimport {\n resolveRegistryIndex,\n searchRegistry,\n} from \"@khalidsaidi/skillrunner-engine\";\nimport { shouldUseJson } from \"../utils/json.js\";\n\nexport async function searchCmd(\n query: string,\n opts: { json?: boolean },\n cmd: {\n opts?: () => { json?: boolean };\n parent?: { opts?: () => { json?: boolean } };\n },\n): Promise<void> {\n const json = shouldUseJson(opts, cmd);\n\n let index;\n try {\n index = await resolveRegistryIndex();\n } catch (e) {\n if (json) {\n console.log(\n JSON.stringify({ error: (e as Error).message, skills: [] }, null, 2),\n );\n } else {\n console.error(chalk.red(\"Registry unreachable:\"), (e as Error).message);\n }\n process.exit(1);\n }\n\n const hits = searchRegistry(index, query || \"\");\n\n if (json) {\n console.log(JSON.stringify({ query: query || \"\", skills: hits }, null, 2));\n return;\n }\n\n console.log(chalk.bold(`Search: \"${query || \"\"}\"\\n`));\n for (const s of hits) {\n const risk = s.risk || \"low\";\n const availability = s.availability || \"default\";\n console.log(\n ` ${chalk.cyan(s.name)}${chalk.dim(` [${risk}|${availability}]`)}`,\n );\n console.log(` ${s.description}`);\n }\n}\n","import chalk from \"chalk\";\nimport {\n resolveRegistryIndex,\n getSkillFromIndex,\n loadSkillMetaFromDir,\n getSkillsDir,\n} from \"@khalidsaidi/skillrunner-engine\";\nimport { existsSync, readdirSync } from \"fs\";\nimport { join } from \"path\";\nimport { shouldUseJson } from \"../utils/json.js\";\n\nfunction findInstalledSkillDir(name: string): string | null {\n const skillsDir = getSkillsDir();\n if (!existsSync(skillsDir)) return null;\n\n const entries = readdirSync(skillsDir, { withFileTypes: true });\n const match = entries.find(\n (e) =>\n e.isDirectory() && (e.name === name || e.name.startsWith(`${name}@`)),\n );\n\n return match ? join(skillsDir, match.name) : null;\n}\n\nexport async function infoCmd(\n name: string,\n opts: { json?: boolean },\n cmd: {\n opts?: () => { json?: boolean };\n parent?: { opts?: () => { json?: boolean } };\n },\n): Promise<void> {\n const json = shouldUseJson(opts, cmd);\n let skill;\n const localPath = findInstalledSkillDir(name);\n if (localPath) {\n try {\n const loaded = loadSkillMetaFromDir(localPath);\n skill = {\n name: loaded.meta.name,\n description: loaded.meta.description,\n version: loaded.meta.version,\n tags: loaded.meta.tags,\n kind: loaded.meta.kind,\n risk: loaded.meta.risk,\n availability: loaded.meta.availability,\n prerequisites: loaded.meta.prerequisites,\n capabilities: loaded.meta.capabilities,\n scripts: loaded.meta.scripts,\n inputs: loaded.meta.inputs,\n contract: loaded.contract,\n paths: {\n dir: localPath,\n skill_md: join(localPath, loaded.contract.file),\n raw_skill_md: \"\",\n contract: join(localPath, loaded.contract.file),\n raw_contract: \"\",\n },\n };\n } catch {\n // fall through to registry lookup\n }\n }\n\n if (!skill) {\n try {\n const idx = await resolveRegistryIndex();\n skill = getSkillFromIndex(idx, name);\n } catch (e) {\n if (json) {\n console.log(JSON.stringify({ error: (e as Error).message }, null, 2));\n } else {\n console.error(chalk.red(\"Registry unreachable:\"), (e as Error).message);\n }\n process.exit(1);\n }\n }\n\n if (!skill) {\n if (json)\n console.log(JSON.stringify({ error: \"Skill not found\" }, null, 2));\n else console.error(chalk.red(\"Skill not found:\"), name);\n process.exit(1);\n }\n\n if (json) {\n console.log(JSON.stringify(skill, null, 2));\n return;\n }\n\n console.log(chalk.bold(skill.name));\n if (skill.version) console.log(chalk.dim(`Version: ${skill.version}`));\n console.log(chalk.dim(`Kind: ${skill.kind || \"unknown\"}`));\n console.log(chalk.dim(`Risk: ${skill.risk || \"low\"}`));\n console.log(chalk.dim(`Availability: ${skill.availability || \"default\"}`));\n console.log();\n console.log(skill.description);\n if (skill.prerequisites) {\n const tools = Array.isArray(skill.prerequisites.tools)\n ? skill.prerequisites.tools\n : [];\n const files = Array.isArray(skill.prerequisites.files)\n ? skill.prerequisites.files\n : [];\n const env = Array.isArray(skill.prerequisites.env)\n ? skill.prerequisites.env\n : [];\n const packageJsonDeps = Array.isArray(skill.prerequisites.packageJsonDeps)\n ? skill.prerequisites.packageJsonDeps\n : [];\n if (tools.length || files.length || env.length || packageJsonDeps.length) {\n console.log(chalk.dim(\"\\nPrerequisites:\"));\n if (tools.length) console.log(chalk.dim(` tools: ${tools.join(\", \")}`));\n if (files.length) console.log(chalk.dim(` files: ${files.join(\", \")}`));\n if (env.length)\n console.log(chalk.dim(` env: ${env.map((v) => `$${v}`).join(\", \")}`));\n if (packageJsonDeps.length) {\n console.log(\n chalk.dim(` packageJsonDeps: ${packageJsonDeps.join(\", \")}`),\n );\n }\n }\n }\n if (skill.tags?.length)\n console.log(chalk.dim(\"\\nTags: \" + skill.tags.join(\", \")));\n}\n","import chalk from \"chalk\";\nimport {\n cpSync,\n mkdirSync,\n existsSync,\n rmSync,\n writeFileSync,\n chmodSync,\n} from \"fs\";\nimport { dirname, join } from \"path\";\nimport {\n getSkillFromIndex,\n getRegistrySkillSlug,\n getSkillsDir,\n inferSkillContractType,\n parseSkillContract,\n resolveRegistryIndex,\n resolveRegistryRoot,\n type RegistryIndex,\n type RegistrySkill,\n} from \"@khalidsaidi/skillrunner-engine\";\nimport { shouldUseJson } from \"../utils/json.js\";\n\nfunction normalizeRelativePath(path: string): string {\n return path.replace(/^\\.\\/+/, \"\");\n}\n\nfunction toSkillRelativePath(path: string, skillSlug: string): string {\n const normalized = normalizeRelativePath(path);\n const canonicalPrefix = `registry/skills/${skillSlug}/`;\n if (normalized.startsWith(canonicalPrefix)) {\n return normalized.slice(canonicalPrefix.length);\n }\n const slugMarker = `/${skillSlug}/`;\n const markerIndex = normalized.lastIndexOf(slugMarker);\n if (markerIndex >= 0) {\n return normalized.slice(markerIndex + slugMarker.length);\n }\n return normalized;\n}\n\nfunction dedupe(values: string[]): string[] {\n const out: string[] = [];\n const seen = new Set<string>();\n for (const v of values) {\n if (seen.has(v)) continue;\n seen.add(v);\n out.push(v);\n }\n return out;\n}\n\nfunction isHttpUrl(value: string | undefined): value is string {\n return typeof value === \"string\" && /^https?:\\/\\//i.test(value);\n}\n\nfunction stripTrailingSlashes(value: string): string {\n return value.replace(/\\/+$/, \"\");\n}\n\nfunction buildSkillFileUrls(\n index: RegistryIndex,\n skill: RegistrySkill,\n relativePath: string,\n): string[] {\n const skillSlug = getRegistrySkillSlug(skill) || skill.name;\n const normalizedPath = toSkillRelativePath(relativePath, skillSlug);\n const contractPath = toSkillRelativePath(\n skill.paths?.contract || skill.paths?.skill_md || \"SKILL.md\",\n skillSlug,\n );\n const candidates: string[] = [];\n const rawSkillMd = skill.paths?.raw_skill_md;\n const rawContract = skill.paths?.raw_contract || rawSkillMd;\n\n if (normalizedPath === contractPath && isHttpUrl(rawContract)) {\n candidates.push(rawContract);\n }\n if (normalizedPath === \"SKILL.md\" && isHttpUrl(rawSkillMd)) {\n candidates.push(rawSkillMd);\n }\n\n const skillBases: string[] = [];\n if (\n isHttpUrl(rawContract) &&\n rawContract.endsWith(`/${normalizeRelativePath(contractPath)}`)\n ) {\n skillBases.push(\n rawContract.slice(0, -`/${normalizeRelativePath(contractPath)}`.length),\n );\n }\n if (isHttpUrl(rawSkillMd) && rawSkillMd.endsWith(\"/SKILL.md\")) {\n skillBases.push(rawSkillMd.slice(0, -\"/SKILL.md\".length));\n }\n if (isHttpUrl(index.source?.base_url)) {\n skillBases.push(\n `${stripTrailingSlashes(index.source.base_url)}/${skillSlug}`,\n );\n }\n\n for (const base of dedupe(skillBases)) {\n candidates.push(`${stripTrailingSlashes(base)}/${normalizedPath}`);\n }\n\n return dedupe(candidates);\n}\n\nasync function fetchFirstText(\n urls: string[],\n): Promise<{ url: string; body: string } | null> {\n for (const url of urls) {\n try {\n const res = await fetch(url);\n if (!res.ok) continue;\n return { url, body: await res.text() };\n } catch {\n // try next URL\n }\n }\n return null;\n}\n\nfunction writeDownloadedFile(\n destDir: string,\n relativePath: string,\n content: string,\n): void {\n const normalizedPath = normalizeRelativePath(relativePath);\n const target = join(destDir, normalizedPath);\n mkdirSync(dirname(target), { recursive: true });\n writeFileSync(target, content);\n if (normalizedPath.endsWith(\".sh\")) {\n chmodSync(target, 0o755);\n }\n}\n\nasync function installSkillFromRemote(\n index: RegistryIndex,\n skill: RegistrySkill,\n destDir: string,\n): Promise<void> {\n const skillSlug = getRegistrySkillSlug(skill) || skill.name;\n const contractRelativePath = toSkillRelativePath(\n skill.paths?.contract || skill.paths?.skill_md || \"SKILL.md\",\n skillSlug,\n );\n const contractUrls = buildSkillFileUrls(index, skill, contractRelativePath);\n const contractFile = await fetchFirstText(contractUrls);\n if (!contractFile) {\n throw new Error(\n `Could not download contract \"${contractRelativePath}\" for ${skillSlug}`,\n );\n }\n\n writeDownloadedFile(destDir, contractRelativePath, contractFile.body);\n const meta = parseSkillContract(contractFile.body, {\n contractType: inferSkillContractType(contractRelativePath),\n sourcePath: contractRelativePath,\n fallbackName: skill.name,\n });\n\n const requiredScripts = new Set<string>();\n if (meta.scripts?.check) {\n requiredScripts.add(normalizeRelativePath(meta.scripts.check));\n }\n if (meta.scripts?.run) {\n requiredScripts.add(normalizeRelativePath(meta.scripts.run));\n }\n\n const optionalScripts = [\"scripts/check.sh\", \"scripts/run.sh\"].filter(\n (p) => !requiredScripts.has(p),\n );\n\n const scriptPaths = [...requiredScripts, ...optionalScripts];\n for (const scriptPath of scriptPaths) {\n const scriptUrls = buildSkillFileUrls(index, skill, scriptPath);\n const script = await fetchFirstText(scriptUrls);\n if (!script) {\n if (requiredScripts.has(scriptPath)) {\n throw new Error(\n `Could not download required script \"${scriptPath}\" for ${skillSlug}`,\n );\n }\n continue;\n }\n\n writeDownloadedFile(destDir, scriptPath, script.body);\n }\n}\n\nexport async function installCmd(\n name: string,\n opts: { json?: boolean },\n cmd: {\n opts?: () => { json?: boolean };\n parent?: { opts?: () => { json?: boolean } };\n },\n): Promise<void> {\n const json = shouldUseJson(opts, cmd);\n\n let index;\n try {\n index = await resolveRegistryIndex();\n } catch (e) {\n if (json) {\n console.log(\n JSON.stringify(\n { success: false, error: (e as Error).message },\n null,\n 2,\n ),\n );\n } else {\n console.error(chalk.red(\"Registry unreachable:\"), (e as Error).message);\n }\n process.exit(1);\n }\n\n const skill = getSkillFromIndex(index, name);\n if (!skill) {\n if (json) {\n console.log(\n JSON.stringify(\n { success: false, error: `Skill not found: ${name}` },\n null,\n 2,\n ),\n );\n } else {\n console.error(chalk.red(\"Skill not found:\"), name);\n }\n process.exit(1);\n }\n\n const skillsDir = getSkillsDir();\n mkdirSync(skillsDir, { recursive: true });\n const skillSlug = getRegistrySkillSlug(skill) || skill.name;\n const destDir = join(skillsDir, `${skillSlug}@${skill.version || \"latest\"}`);\n rmSync(destDir, { recursive: true, force: true });\n\n try {\n const repoRoot = resolveRegistryRoot();\n const sourceDir = repoRoot\n ? join(repoRoot, \"registry\", \"skills\", skillSlug)\n : \"\";\n\n if (sourceDir && existsSync(sourceDir)) {\n cpSync(sourceDir, destDir, { recursive: true });\n } else {\n await installSkillFromRemote(index, skill, destDir);\n }\n } catch (e) {\n rmSync(destDir, { recursive: true, force: true });\n if (json) {\n console.log(\n JSON.stringify(\n {\n success: false,\n error: `Install failed: ${(e as Error).message}`,\n },\n null,\n 2,\n ),\n );\n } else {\n console.error(chalk.red(\"Install failed:\"), (e as Error).message);\n }\n process.exit(1);\n }\n\n if (json) {\n console.log(\n JSON.stringify(\n {\n success: true,\n name: skill.name,\n slug: skillSlug,\n path: destDir,\n },\n null,\n 2,\n ),\n );\n } else {\n const label =\n skillSlug === skill.name ? skill.name : `${skill.name} (${skillSlug})`;\n console.log(chalk.green(\"Installed:\"), label, chalk.dim(`→ ${destDir}`));\n }\n}\n","import chalk from \"chalk\";\nimport { rmSync, existsSync, readdirSync } from \"fs\";\nimport { join } from \"path\";\nimport { getSkillsDir } from \"@khalidsaidi/skillrunner-engine\";\nimport { shouldUseJson } from \"../utils/json.js\";\n\nexport async function uninstallCmd(\n name: string,\n opts: { json?: boolean },\n cmd: {\n opts?: () => { json?: boolean };\n parent?: { opts?: () => { json?: boolean } };\n },\n): Promise<void> {\n const json = shouldUseJson(opts, cmd);\n const skillsDir = getSkillsDir();\n\n if (!existsSync(skillsDir)) {\n if (json)\n console.log(\n JSON.stringify(\n { success: false, error: \"No skills installed\" },\n null,\n 2,\n ),\n );\n else console.log(chalk.dim(\"No skills installed.\"));\n return;\n }\n\n const entries = readdirSync(skillsDir, { withFileTypes: true });\n const match = entries.find(\n (e) =>\n e.isDirectory() && (e.name === name || e.name.startsWith(name + \"@\")),\n );\n if (!match) {\n if (json) {\n console.log(\n JSON.stringify(\n { success: false, error: `Skill not found: ${name}` },\n null,\n 2,\n ),\n );\n } else {\n console.error(chalk.red(\"Skill not found:\"), name);\n }\n process.exit(1);\n }\n\n rmSync(join(skillsDir, match.name), { recursive: true });\n if (json) {\n console.log(JSON.stringify({ success: true }, null, 2));\n } else {\n console.log(chalk.green(\"Uninstalled:\"), match.name);\n }\n}\n","import chalk from \"chalk\";\nimport { existsSync, readdirSync } from \"fs\";\nimport { join } from \"path\";\nimport {\n loadSkillMetaFromDir,\n buildPlan,\n getSkillsDir,\n} from \"@khalidsaidi/skillrunner-engine\";\nimport { shouldUseJson } from \"../utils/json.js\";\n\nfunction findSkillDir(name: string): string | null {\n const skillsDir = getSkillsDir();\n if (!existsSync(skillsDir)) return null;\n const entries = readdirSync(skillsDir, { withFileTypes: true });\n const match = entries.find(\n (e: { name: string; isDirectory: () => boolean }) =>\n e.isDirectory() && (e.name === name || e.name.startsWith(name + \"@\")),\n );\n return match ? join(skillsDir, match.name) : null;\n}\n\nexport async function planCmd(\n name: string,\n opts: { inputs?: string[]; json?: boolean },\n cmd: {\n opts?: () => { json?: boolean };\n parent?: { opts?: () => { json?: boolean } };\n },\n): Promise<void> {\n const json = shouldUseJson(opts, cmd);\n const skillDir = findSkillDir(name);\n\n if (!skillDir) {\n if (json) {\n console.log(\n JSON.stringify(\n { success: false, error: `Skill not installed: ${name}` },\n null,\n 2,\n ),\n );\n } else {\n console.error(chalk.red(\"Skill not installed:\"), name);\n }\n process.exit(1);\n }\n\n let loaded: ReturnType<typeof loadSkillMetaFromDir> | null = null;\n try {\n loaded = loadSkillMetaFromDir(skillDir);\n } catch (e) {\n if (json) {\n console.log(\n JSON.stringify(\n { success: false, error: (e as Error).message },\n null,\n 2,\n ),\n );\n } else {\n console.error(chalk.red((e as Error).message));\n }\n process.exit(1);\n }\n if (!loaded) process.exit(1);\n\n const meta = loaded.meta;\n const plan = buildPlan(skillDir, meta);\n\n if (json) {\n console.log(\n JSON.stringify(\n {\n success: true,\n skill: meta.name,\n availability: meta.availability || \"default\",\n prerequisites: meta.prerequisites || {},\n plan,\n },\n null,\n 2,\n ),\n );\n return;\n }\n\n console.log(chalk.bold(meta.name));\n console.log(chalk.dim(meta.description));\n console.log(chalk.dim(`Risk: ${plan.risk}\\n`));\n if (meta.availability) {\n console.log(chalk.dim(`Availability: ${meta.availability}`));\n }\n if (meta.prerequisites) {\n const tools = meta.prerequisites.tools || [];\n const files = meta.prerequisites.files || [];\n const env = meta.prerequisites.env || [];\n const packageJsonDeps = meta.prerequisites.packageJsonDeps || [];\n if (tools.length || files.length || env.length || packageJsonDeps.length) {\n console.log(chalk.dim(\"Prerequisites:\"));\n if (tools.length) console.log(chalk.dim(` tools: ${tools.join(\", \")}`));\n if (files.length) console.log(chalk.dim(` files: ${files.join(\", \")}`));\n if (env.length) {\n console.log(chalk.dim(` env: ${env.map((v) => `$${v}`).join(\", \")}`));\n }\n if (packageJsonDeps.length) {\n console.log(\n chalk.dim(` packageJsonDeps: ${packageJsonDeps.join(\", \")}`),\n );\n }\n }\n }\n console.log(\"Steps:\");\n plan.steps.forEach((s, i) => console.log(` ${i + 1}. ${s.cmd}`));\n}\n","import chalk from \"chalk\";\nimport { existsSync, readdirSync } from \"fs\";\nimport { join } from \"path\";\nimport prompts from \"prompts\";\nimport {\n loadSkillMetaFromDir,\n buildPlan,\n scanScriptForBannedPatterns,\n blockMessage,\n executePlan,\n writeRunArtifacts,\n checkSkillPrerequisites,\n getSkillsDir,\n} from \"@khalidsaidi/skillrunner-engine\";\nimport { randomUUID } from \"crypto\";\nimport { shouldUseJson } from \"../utils/json.js\";\n\nfunction findSkillDir(name: string): string | null {\n const skillsDir = getSkillsDir();\n if (!existsSync(skillsDir)) return null;\n const entries = readdirSync(skillsDir, { withFileTypes: true });\n const match = entries.find(\n (e: { name: string; isDirectory: () => boolean }) =>\n e.isDirectory() && (e.name === name || e.name.startsWith(name + \"@\")),\n );\n return match ? join(skillsDir, match.name) : null;\n}\n\nexport async function runCmd(\n name: string,\n opts: {\n yes?: boolean;\n cwd?: string;\n allowDirty?: boolean;\n noBranch?: boolean;\n json?: boolean;\n },\n cmd: {\n opts?: () => { json?: boolean };\n parent?: { opts?: () => { json?: boolean } };\n },\n): Promise<void> {\n const json = shouldUseJson(opts, cmd);\n const cwd = opts.cwd || process.cwd();\n const skillDir = findSkillDir(name);\n\n if (!skillDir) {\n if (json) {\n console.log(\n JSON.stringify(\n { success: false, error: `Skill not installed: ${name}` },\n null,\n 2,\n ),\n );\n } else {\n console.error(chalk.red(\"Skill not installed:\"), name);\n }\n process.exit(1);\n }\n\n let metaResult: ReturnType<typeof loadSkillMetaFromDir> | null = null;\n try {\n metaResult = loadSkillMetaFromDir(skillDir);\n } catch (e) {\n if (json) {\n console.log(\n JSON.stringify(\n { success: false, error: (e as Error).message },\n null,\n 2,\n ),\n );\n } else {\n console.error(chalk.red((e as Error).message));\n }\n process.exit(1);\n }\n if (!metaResult) process.exit(1);\n const meta = metaResult.meta;\n const plan = buildPlan(skillDir, meta);\n const preflight = checkSkillPrerequisites(meta, cwd);\n\n if (!preflight.passed) {\n if (json) {\n console.log(\n JSON.stringify(\n {\n success: false,\n error: \"Preflight check failed\",\n preflight,\n },\n null,\n 2,\n ),\n );\n } else {\n console.error(chalk.red(\"Preflight check failed.\"));\n if (preflight.missingTools.length) {\n console.error(\n chalk.dim(` Missing tools: ${preflight.missingTools.join(\", \")}`),\n );\n }\n if (preflight.missingFiles.length) {\n console.error(\n chalk.dim(` Missing files: ${preflight.missingFiles.join(\", \")}`),\n );\n }\n if (preflight.missingEnv.length) {\n console.error(\n chalk.dim(\n ` Missing env vars: ${preflight.missingEnv\n .map((v) => `$${v}`)\n .join(\", \")}`,\n ),\n );\n }\n if (preflight.missingPackageJsonDeps.length) {\n console.error(\n chalk.dim(\n ` Missing package.json deps: ${preflight.missingPackageJsonDeps.join(\", \")}`,\n ),\n );\n }\n console.error(chalk.dim(` Skill: ${meta.name}`));\n }\n process.exit(1);\n }\n\n const checkPath = meta.scripts?.check\n ? join(skillDir, meta.scripts.check)\n : join(skillDir, \"scripts\", \"check.sh\");\n const runPath = meta.scripts?.run\n ? join(skillDir, meta.scripts.run)\n : join(skillDir, \"scripts\", \"run.sh\");\n const guardCheck = scanScriptForBannedPatterns(checkPath);\n const guardRun = scanScriptForBannedPatterns(runPath);\n const guardResult = {\n passed: guardCheck.passed && guardRun.passed,\n violations: [...guardCheck.violations, ...guardRun.violations],\n };\n\n if (!guardResult.passed) {\n if (json) {\n console.log(\n JSON.stringify(\n {\n success: false,\n error: \"Guard block\",\n violations: guardResult.violations,\n },\n null,\n 2,\n ),\n );\n } else {\n console.error(chalk.red(blockMessage(guardResult.violations)));\n }\n process.exit(1);\n }\n\n if (!opts.yes && !json) {\n const { confirm } = await prompts({\n type: \"confirm\",\n name: \"confirm\",\n message: `Run ${meta.name}? (${plan.steps.length} step(s), risk: ${plan.risk})`,\n initial: false,\n });\n if (!confirm) {\n console.log(chalk.dim(\"Cancelled.\"));\n return;\n }\n }\n\n const runId = randomUUID();\n writeRunArtifacts(runId, meta.name, cwd, plan, guardResult);\n\n const results = await executePlan(cwd, skillDir, plan);\n const last = results[results.length - 1];\n const success = last ? last.success : true;\n const exitCode = last ? last.exitCode : 0;\n const failureMessage = !success\n ? (last?.stderr?.trim() || last?.stdout?.trim() || \"Skill script failed\")\n : undefined;\n\n writeRunArtifacts(\n runId,\n meta.name,\n cwd,\n plan,\n guardResult,\n last\n ? {\n success,\n stdout: last.stdout,\n stderr: last.stderr,\n exitCode,\n }\n : undefined,\n );\n\n if (json) {\n console.log(\n JSON.stringify(\n {\n success,\n runId,\n exitCode,\n error: failureMessage,\n stdout: last?.stdout,\n stderr: last?.stderr,\n },\n null,\n 2,\n ),\n );\n if (!success) {\n process.exit(exitCode || 1);\n }\n } else {\n if (success) {\n console.log(chalk.green(\"Done.\"), chalk.dim(`Run ID: ${runId}`));\n } else {\n console.error(chalk.red(\"Failed.\"), chalk.dim(`Run ID: ${runId}`));\n if (failureMessage) console.error(chalk.dim(failureMessage));\n process.exit(exitCode || 1);\n }\n }\n}\n","import chalk from \"chalk\";\nimport { readdirSync, readFileSync, existsSync, statSync } from \"fs\";\nimport { join } from \"path\";\nimport { getRunsDir } from \"@khalidsaidi/skillrunner-engine\";\nimport { shouldUseJson } from \"../utils/json.js\";\n\ninterface RunListEntry {\n id: string;\n skillName?: string;\n startedAt?: string;\n [key: string]: unknown;\n}\n\nfunction getRunIdsByRecent(runsDir: string): string[] {\n const entries = readdirSync(runsDir, { withFileTypes: true })\n .filter(\n (e) => e.isDirectory() && existsSync(join(runsDir, e.name, \"meta.json\")),\n )\n .map((e) => ({\n name: e.name,\n mtime: statSync(join(runsDir, e.name)).mtimeMs,\n }));\n return entries.sort((a, b) => b.mtime - a.mtime).map((e) => e.name);\n}\n\nexport async function logsCmd(\n opts: { last?: boolean; id?: string; json?: boolean },\n cmd?: {\n opts?: () => { json?: boolean };\n parent?: { opts?: () => { json?: boolean } };\n },\n): Promise<void> {\n const json = shouldUseJson(opts, cmd);\n const runsDir = getRunsDir();\n\n if (!existsSync(runsDir)) {\n if (json) console.log(JSON.stringify({ runs: [] }, null, 2));\n else console.log(chalk.dim(\"No runs yet.\"));\n return;\n }\n\n const ids = getRunIdsByRecent(runsDir);\n if (ids.length === 0) {\n if (json) console.log(JSON.stringify({ runs: [] }, null, 2));\n else console.log(chalk.dim(\"No runs yet.\"));\n return;\n }\n\n let targetId = opts.id;\n if (opts.last && ids.length) targetId = ids[0];\n if (!targetId) {\n const runs = ids\n .slice(0, 20)\n .map((id) => {\n try {\n const metaPath = join(runsDir, id, \"meta.json\");\n const meta = JSON.parse(readFileSync(metaPath, \"utf-8\"));\n return { id, ...meta } as RunListEntry;\n } catch {\n return null;\n }\n })\n .filter((v): v is RunListEntry => Boolean(v));\n if (json) {\n console.log(JSON.stringify({ runs }, null, 2));\n } else {\n console.log(chalk.bold(\"Recent runs:\\n\"));\n for (const r of runs) {\n console.log(` ${r.id} ${r.skillName || \"?\"} ${r.startedAt || \"\"}`);\n }\n }\n return;\n }\n\n const runPath = join(runsDir, targetId);\n if (!existsSync(runPath)) {\n if (json) console.log(JSON.stringify({ error: \"Run not found\" }, null, 2));\n else console.error(chalk.red(\"Run not found:\"), targetId);\n process.exit(1);\n }\n\n const metaPath = join(runPath, \"meta.json\");\n const stdoutPath = join(runPath, \"stdout.log\");\n const stderrPath = join(runPath, \"stderr.log\");\n\n const meta = existsSync(metaPath)\n ? JSON.parse(readFileSync(metaPath, \"utf-8\"))\n : {};\n const stdout = existsSync(stdoutPath)\n ? readFileSync(stdoutPath, \"utf-8\")\n : \"\";\n const stderr = existsSync(stderrPath)\n ? readFileSync(stderrPath, \"utf-8\")\n : \"\";\n\n if (json) {\n console.log(JSON.stringify({ ...meta, stdout, stderr }, null, 2));\n return;\n }\n\n console.log(chalk.bold(`Run ${targetId}\\n`));\n console.log(\"Skill:\", meta.skillName ?? \"(unknown)\");\n console.log(\"CWD: \", meta.cwd ?? \"(unknown)\");\n console.log(\"Started:\", meta.startedAt ?? \"(unknown)\");\n console.log(\"Success:\", meta.success ?? \"(unknown)\");\n if (stdout) {\n console.log(chalk.bold(\"\\n--- stdout ---\"));\n console.log(stdout);\n }\n if (stderr) {\n console.log(chalk.bold(\"\\n--- stderr ---\"));\n console.log(chalk.red(stderr));\n }\n}\n","import chalk from \"chalk\";\nimport { spawn } from \"child_process\";\nimport { platform } from \"os\";\nimport { shouldUseJson } from \"../utils/json.js\";\n\nexport async function openCmd(\n opts: { json?: boolean },\n cmd: {\n opts?: () => { json?: boolean };\n parent?: { opts?: () => { json?: boolean } };\n },\n): Promise<void> {\n const json = shouldUseJson(opts, cmd);\n const url = \"http://localhost:5173\";\n\n if (json) {\n console.log(\n JSON.stringify(\n {\n url,\n message: \"Start dashboard server with: pnpm --filter dashboard dev\",\n },\n null,\n 2,\n ),\n );\n return;\n }\n\n spawn(\"pnpm\", [\"--filter\", \"dashboard\", \"dev\"], {\n stdio: \"inherit\",\n shell: true,\n });\n\n const openUrl = () => {\n const cmd =\n platform() === \"darwin\"\n ? \"open\"\n : platform() === \"win32\"\n ? \"start\"\n : \"xdg-open\";\n spawn(cmd, [url], { stdio: \"ignore\", detached: true });\n };\n\n setTimeout(openUrl, 3000);\n console.log(chalk.green(\"Dashboard starting at\"), url);\n}\n","import chalk from \"chalk\";\nimport { cpSync, existsSync, mkdirSync, readdirSync } from \"fs\";\nimport { join } from \"path\";\nimport { getSkillsDir } from \"@khalidsaidi/skillrunner-engine\";\nimport { shouldUseJson } from \"../utils/json.js\";\n\nfunction getCursorSkillsDir(scope: \"project\" | \"global\"): string {\n if (scope === \"global\") {\n return join(process.env.HOME || \"\", \".cursor\", \"skills\");\n }\n return join(process.cwd(), \".cursor\", \"skills\");\n}\n\nexport async function cursorInstallCmd(\n name: string,\n opts: { scope?: string; json?: boolean },\n cmd?: {\n opts?: () => { json?: boolean };\n parent?: { opts?: () => { json?: boolean } };\n },\n): Promise<void> {\n const json = shouldUseJson(opts, cmd);\n const scope = (opts.scope || \"project\") as \"project\" | \"global\";\n const skillsDir = getSkillsDir();\n\n if (!existsSync(skillsDir)) {\n if (json)\n console.log(\n JSON.stringify(\n { success: false, error: \"No skills installed\" },\n null,\n 2,\n ),\n );\n else\n console.error(\n chalk.red('No skills installed. Run \"skill install <name>\" first.'),\n );\n process.exit(1);\n }\n\n const entries = readdirSync(skillsDir, { withFileTypes: true });\n const match = entries.find(\n (e) =>\n e.isDirectory() && (e.name === name || e.name.startsWith(name + \"@\")),\n );\n if (!match) {\n if (json) {\n console.log(\n JSON.stringify(\n { success: false, error: `Skill not installed: ${name}` },\n null,\n 2,\n ),\n );\n } else {\n console.error(chalk.red(\"Skill not installed:\"), name);\n }\n process.exit(1);\n }\n\n const srcDir = join(skillsDir, match.name);\n const destDir = getCursorSkillsDir(scope);\n mkdirSync(destDir, { recursive: true });\n const dest = join(destDir, match.name.split(\"@\")[0]);\n cpSync(srcDir, dest, { recursive: true });\n\n if (json) {\n console.log(JSON.stringify({ success: true, path: dest, scope }, null, 2));\n } else {\n console.log(\n chalk.green(\"Installed to Cursor:\"),\n dest,\n chalk.dim(`(${scope})`),\n );\n }\n}\n\nexport async function cursorListCmd(\n opts: { scope?: string; json?: boolean },\n cmd?: {\n opts?: () => { json?: boolean };\n parent?: { opts?: () => { json?: boolean } };\n },\n): Promise<void> {\n const json = shouldUseJson(opts, cmd);\n const scope = (opts.scope || \"both\") as \"project\" | \"global\" | \"both\";\n\n const dirs: { scope: string; path: string }[] = [];\n if (scope === \"project\" || scope === \"both\") {\n dirs.push({ scope: \"project\", path: getCursorSkillsDir(\"project\") });\n }\n if (scope === \"global\" || scope === \"both\") {\n dirs.push({ scope: \"global\", path: getCursorSkillsDir(\"global\") });\n }\n\n const result: Record<string, string[]> = {};\n for (const { scope: s, path: p } of dirs) {\n if (existsSync(p)) {\n result[s] = readdirSync(p, { withFileTypes: true })\n .filter((e) => e.isDirectory())\n .map((e) => e.name);\n } else {\n result[s] = [];\n }\n }\n\n if (json) {\n console.log(JSON.stringify(result, null, 2));\n return;\n }\n\n for (const [s, skills] of Object.entries(result)) {\n console.log(chalk.bold(`${s} skills:`));\n if (skills.length) skills.forEach((n) => console.log(` ${n}`));\n else console.log(chalk.dim(\" (none)\"));\n console.log();\n }\n}\n"],"mappings":"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","names":["out","readFileSync","existsSync","join","existsSync","join","join","normalized","parts","existsSync","readFileSync","readFileSync","existsSync","readFileSync","join","existsSync","join","existsSync","join","join","existsSync","writeFileSync","mkdirSync","join","join","mkdirSync","writeFileSync","chalk","readdirSync","existsSync","join","existsSync","readdirSync","join","chalk","chalk","chalk","chalk","existsSync","readdirSync","join","existsSync","readdirSync","join","chalk","chalk","mkdirSync","existsSync","writeFileSync","dirname","join","join","mkdirSync","dirname","writeFileSync","chalk","existsSync","chalk","rmSync","existsSync","readdirSync","join","existsSync","chalk","readdirSync","rmSync","join","chalk","existsSync","readdirSync","join","existsSync","readdirSync","join","chalk","chalk","existsSync","readdirSync","join","randomUUID","findSkillDir","existsSync","readdirSync","join","chalk","randomUUID","chalk","readdirSync","readFileSync","existsSync","statSync","join","readdirSync","existsSync","join","statSync","chalk","metaPath","meta","readFileSync","chalk","spawn","spawn","cmd","chalk","chalk","cpSync","existsSync","mkdirSync","readdirSync","join","join","existsSync","chalk","readdirSync","mkdirSync","cpSync","require"]}