opencodekit 0.15.4 → 0.15.5

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 (319) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/template/.opencode/command/cloudflare.md +70 -0
  3. package/dist/template/.opencode/package.json +1 -1
  4. package/dist/template/.opencode/skill/cloudflare/SKILL.md +233 -0
  5. package/dist/template/.opencode/skill/cloudflare/references/agents-sdk/README.md +35 -0
  6. package/dist/template/.opencode/skill/cloudflare/references/agents-sdk/api.md +100 -0
  7. package/dist/template/.opencode/skill/cloudflare/references/agents-sdk/configuration.md +99 -0
  8. package/dist/template/.opencode/skill/cloudflare/references/agents-sdk/gotchas.md +59 -0
  9. package/dist/template/.opencode/skill/cloudflare/references/agents-sdk/patterns.md +89 -0
  10. package/dist/template/.opencode/skill/cloudflare/references/ai-gateway/README.md +695 -0
  11. package/dist/template/.opencode/skill/cloudflare/references/ai-search/README.md +14 -0
  12. package/dist/template/.opencode/skill/cloudflare/references/ai-search/api.md +38 -0
  13. package/dist/template/.opencode/skill/cloudflare/references/ai-search/configuration.md +52 -0
  14. package/dist/template/.opencode/skill/cloudflare/references/ai-search/gotchas.md +41 -0
  15. package/dist/template/.opencode/skill/cloudflare/references/ai-search/patterns.md +45 -0
  16. package/dist/template/.opencode/skill/cloudflare/references/analytics-engine/README.md +14 -0
  17. package/dist/template/.opencode/skill/cloudflare/references/analytics-engine/api.md +27 -0
  18. package/dist/template/.opencode/skill/cloudflare/references/analytics-engine/configuration.md +45 -0
  19. package/dist/template/.opencode/skill/cloudflare/references/analytics-engine/gotchas.md +3 -0
  20. package/dist/template/.opencode/skill/cloudflare/references/analytics-engine/patterns.md +36 -0
  21. package/dist/template/.opencode/skill/cloudflare/references/api/README.md +21 -0
  22. package/dist/template/.opencode/skill/cloudflare/references/api/api.md +31 -0
  23. package/dist/template/.opencode/skill/cloudflare/references/api/configuration.md +20 -0
  24. package/dist/template/.opencode/skill/cloudflare/references/api/gotchas.md +28 -0
  25. package/dist/template/.opencode/skill/cloudflare/references/api/patterns.md +47 -0
  26. package/dist/template/.opencode/skill/cloudflare/references/api-shield/README.md +20 -0
  27. package/dist/template/.opencode/skill/cloudflare/references/api-shield/api.md +78 -0
  28. package/dist/template/.opencode/skill/cloudflare/references/api-shield/configuration.md +128 -0
  29. package/dist/template/.opencode/skill/cloudflare/references/api-shield/gotchas.md +51 -0
  30. package/dist/template/.opencode/skill/cloudflare/references/api-shield/patterns.md +145 -0
  31. package/dist/template/.opencode/skill/cloudflare/references/argo-smart-routing/README.md +16 -0
  32. package/dist/template/.opencode/skill/cloudflare/references/argo-smart-routing/api.md +50 -0
  33. package/dist/template/.opencode/skill/cloudflare/references/argo-smart-routing/configuration.md +53 -0
  34. package/dist/template/.opencode/skill/cloudflare/references/argo-smart-routing/gotchas.md +16 -0
  35. package/dist/template/.opencode/skill/cloudflare/references/argo-smart-routing/patterns.md +45 -0
  36. package/dist/template/.opencode/skill/cloudflare/references/bindings/README.md +14 -0
  37. package/dist/template/.opencode/skill/cloudflare/references/bindings/api.md +3 -0
  38. package/dist/template/.opencode/skill/cloudflare/references/bindings/configuration.md +58 -0
  39. package/dist/template/.opencode/skill/cloudflare/references/bindings/gotchas.md +35 -0
  40. package/dist/template/.opencode/skill/cloudflare/references/bindings/patterns.md +37 -0
  41. package/dist/template/.opencode/skill/cloudflare/references/bot-management/README.md +71 -0
  42. package/dist/template/.opencode/skill/cloudflare/references/bot-management/api.md +168 -0
  43. package/dist/template/.opencode/skill/cloudflare/references/bot-management/configuration.md +114 -0
  44. package/dist/template/.opencode/skill/cloudflare/references/bot-management/gotchas.md +99 -0
  45. package/dist/template/.opencode/skill/cloudflare/references/bot-management/patterns.md +125 -0
  46. package/dist/template/.opencode/skill/cloudflare/references/browser-rendering/README.md +16 -0
  47. package/dist/template/.opencode/skill/cloudflare/references/browser-rendering/api.md +54 -0
  48. package/dist/template/.opencode/skill/cloudflare/references/browser-rendering/configuration.md +47 -0
  49. package/dist/template/.opencode/skill/cloudflare/references/browser-rendering/gotchas.md +29 -0
  50. package/dist/template/.opencode/skill/cloudflare/references/browser-rendering/patterns.md +29 -0
  51. package/dist/template/.opencode/skill/cloudflare/references/c3/README.md +264 -0
  52. package/dist/template/.opencode/skill/cloudflare/references/cache-reserve/README.md +93 -0
  53. package/dist/template/.opencode/skill/cloudflare/references/cache-reserve/api.md +176 -0
  54. package/dist/template/.opencode/skill/cloudflare/references/cache-reserve/configuration.md +164 -0
  55. package/dist/template/.opencode/skill/cloudflare/references/cache-reserve/gotchas.md +203 -0
  56. package/dist/template/.opencode/skill/cloudflare/references/cache-reserve/patterns.md +180 -0
  57. package/dist/template/.opencode/skill/cloudflare/references/containers/README.md +16 -0
  58. package/dist/template/.opencode/skill/cloudflare/references/containers/api.md +43 -0
  59. package/dist/template/.opencode/skill/cloudflare/references/containers/configuration.md +56 -0
  60. package/dist/template/.opencode/skill/cloudflare/references/containers/gotchas.md +21 -0
  61. package/dist/template/.opencode/skill/cloudflare/references/containers/patterns.md +40 -0
  62. package/dist/template/.opencode/skill/cloudflare/references/cron-triggers/README.md +85 -0
  63. package/dist/template/.opencode/skill/cloudflare/references/cron-triggers/api.md +198 -0
  64. package/dist/template/.opencode/skill/cloudflare/references/cron-triggers/configuration.md +151 -0
  65. package/dist/template/.opencode/skill/cloudflare/references/cron-triggers/gotchas.md +129 -0
  66. package/dist/template/.opencode/skill/cloudflare/references/cron-triggers/patterns.md +122 -0
  67. package/dist/template/.opencode/skill/cloudflare/references/d1/README.md +92 -0
  68. package/dist/template/.opencode/skill/cloudflare/references/d1/api.md +141 -0
  69. package/dist/template/.opencode/skill/cloudflare/references/d1/configuration.md +127 -0
  70. package/dist/template/.opencode/skill/cloudflare/references/d1/gotchas.md +70 -0
  71. package/dist/template/.opencode/skill/cloudflare/references/d1/patterns.md +144 -0
  72. package/dist/template/.opencode/skill/cloudflare/references/ddos/README.md +34 -0
  73. package/dist/template/.opencode/skill/cloudflare/references/ddos/api.md +136 -0
  74. package/dist/template/.opencode/skill/cloudflare/references/ddos/configuration.md +67 -0
  75. package/dist/template/.opencode/skill/cloudflare/references/ddos/gotchas.md +114 -0
  76. package/dist/template/.opencode/skill/cloudflare/references/ddos/patterns.md +158 -0
  77. package/dist/template/.opencode/skill/cloudflare/references/do-storage/README.md +62 -0
  78. package/dist/template/.opencode/skill/cloudflare/references/do-storage/api.md +89 -0
  79. package/dist/template/.opencode/skill/cloudflare/references/do-storage/configuration.md +116 -0
  80. package/dist/template/.opencode/skill/cloudflare/references/do-storage/gotchas.md +93 -0
  81. package/dist/template/.opencode/skill/cloudflare/references/do-storage/patterns.md +112 -0
  82. package/dist/template/.opencode/skill/cloudflare/references/durable-objects/README.md +125 -0
  83. package/dist/template/.opencode/skill/cloudflare/references/durable-objects/api.md +152 -0
  84. package/dist/template/.opencode/skill/cloudflare/references/durable-objects/configuration.md +148 -0
  85. package/dist/template/.opencode/skill/cloudflare/references/durable-objects/gotchas.md +158 -0
  86. package/dist/template/.opencode/skill/cloudflare/references/durable-objects/patterns.md +255 -0
  87. package/dist/template/.opencode/skill/cloudflare/references/email-routing/README.md +18 -0
  88. package/dist/template/.opencode/skill/cloudflare/references/email-routing/api.md +46 -0
  89. package/dist/template/.opencode/skill/cloudflare/references/email-routing/configuration.md +63 -0
  90. package/dist/template/.opencode/skill/cloudflare/references/email-routing/gotchas.md +16 -0
  91. package/dist/template/.opencode/skill/cloudflare/references/email-routing/patterns.md +46 -0
  92. package/dist/template/.opencode/skill/cloudflare/references/email-workers/README.md +598 -0
  93. package/dist/template/.opencode/skill/cloudflare/references/hyperdrive/README.md +62 -0
  94. package/dist/template/.opencode/skill/cloudflare/references/hyperdrive/api.md +137 -0
  95. package/dist/template/.opencode/skill/cloudflare/references/hyperdrive/configuration.md +133 -0
  96. package/dist/template/.opencode/skill/cloudflare/references/hyperdrive/gotchas.md +184 -0
  97. package/dist/template/.opencode/skill/cloudflare/references/hyperdrive/patterns.md +176 -0
  98. package/dist/template/.opencode/skill/cloudflare/references/images/README.md +14 -0
  99. package/dist/template/.opencode/skill/cloudflare/references/images/api.md +3 -0
  100. package/dist/template/.opencode/skill/cloudflare/references/images/configuration.md +45 -0
  101. package/dist/template/.opencode/skill/cloudflare/references/images/gotchas.md +23 -0
  102. package/dist/template/.opencode/skill/cloudflare/references/images/patterns.md +31 -0
  103. package/dist/template/.opencode/skill/cloudflare/references/kv/README.md +60 -0
  104. package/dist/template/.opencode/skill/cloudflare/references/kv/api.md +114 -0
  105. package/dist/template/.opencode/skill/cloudflare/references/kv/configuration.md +92 -0
  106. package/dist/template/.opencode/skill/cloudflare/references/kv/gotchas.md +117 -0
  107. package/dist/template/.opencode/skill/cloudflare/references/kv/patterns.md +139 -0
  108. package/dist/template/.opencode/skill/cloudflare/references/miniflare/README.md +64 -0
  109. package/dist/template/.opencode/skill/cloudflare/references/miniflare/api.md +144 -0
  110. package/dist/template/.opencode/skill/cloudflare/references/miniflare/configuration.md +203 -0
  111. package/dist/template/.opencode/skill/cloudflare/references/miniflare/gotchas.md +187 -0
  112. package/dist/template/.opencode/skill/cloudflare/references/miniflare/patterns.md +211 -0
  113. package/dist/template/.opencode/skill/cloudflare/references/network-interconnect/README.md +60 -0
  114. package/dist/template/.opencode/skill/cloudflare/references/network-interconnect/api.md +240 -0
  115. package/dist/template/.opencode/skill/cloudflare/references/network-interconnect/configuration.md +127 -0
  116. package/dist/template/.opencode/skill/cloudflare/references/network-interconnect/gotchas.md +171 -0
  117. package/dist/template/.opencode/skill/cloudflare/references/network-interconnect/patterns.md +171 -0
  118. package/dist/template/.opencode/skill/cloudflare/references/observability/README.md +18 -0
  119. package/dist/template/.opencode/skill/cloudflare/references/observability/api.md +51 -0
  120. package/dist/template/.opencode/skill/cloudflare/references/observability/configuration.md +60 -0
  121. package/dist/template/.opencode/skill/cloudflare/references/observability/gotchas.md +36 -0
  122. package/dist/template/.opencode/skill/cloudflare/references/observability/patterns.md +42 -0
  123. package/dist/template/.opencode/skill/cloudflare/references/pages/README.md +76 -0
  124. package/dist/template/.opencode/skill/cloudflare/references/pages/api.md +200 -0
  125. package/dist/template/.opencode/skill/cloudflare/references/pages/configuration.md +228 -0
  126. package/dist/template/.opencode/skill/cloudflare/references/pages/gotchas.md +161 -0
  127. package/dist/template/.opencode/skill/cloudflare/references/pages/patterns.md +145 -0
  128. package/dist/template/.opencode/skill/cloudflare/references/pages-functions/README.md +57 -0
  129. package/dist/template/.opencode/skill/cloudflare/references/pages-functions/api.md +201 -0
  130. package/dist/template/.opencode/skill/cloudflare/references/pages-functions/configuration.md +159 -0
  131. package/dist/template/.opencode/skill/cloudflare/references/pages-functions/gotchas.md +151 -0
  132. package/dist/template/.opencode/skill/cloudflare/references/pages-functions/patterns.md +190 -0
  133. package/dist/template/.opencode/skill/cloudflare/references/pipelines/README.md +664 -0
  134. package/dist/template/.opencode/skill/cloudflare/references/pulumi/README.md +107 -0
  135. package/dist/template/.opencode/skill/cloudflare/references/pulumi/api.md +194 -0
  136. package/dist/template/.opencode/skill/cloudflare/references/pulumi/configuration.md +216 -0
  137. package/dist/template/.opencode/skill/cloudflare/references/pulumi/gotchas.md +223 -0
  138. package/dist/template/.opencode/skill/cloudflare/references/pulumi/patterns.md +139 -0
  139. package/dist/template/.opencode/skill/cloudflare/references/queues/README.md +69 -0
  140. package/dist/template/.opencode/skill/cloudflare/references/queues/api.md +138 -0
  141. package/dist/template/.opencode/skill/cloudflare/references/queues/configuration.md +125 -0
  142. package/dist/template/.opencode/skill/cloudflare/references/queues/gotchas.md +112 -0
  143. package/dist/template/.opencode/skill/cloudflare/references/queues/patterns.md +155 -0
  144. package/dist/template/.opencode/skill/cloudflare/references/r2/README.md +61 -0
  145. package/dist/template/.opencode/skill/cloudflare/references/r2/api.md +127 -0
  146. package/dist/template/.opencode/skill/cloudflare/references/r2/configuration.md +76 -0
  147. package/dist/template/.opencode/skill/cloudflare/references/r2/gotchas.md +94 -0
  148. package/dist/template/.opencode/skill/cloudflare/references/r2/patterns.md +127 -0
  149. package/dist/template/.opencode/skill/cloudflare/references/r2-data-catalog/README.md +18 -0
  150. package/dist/template/.opencode/skill/cloudflare/references/r2-data-catalog/api.md +29 -0
  151. package/dist/template/.opencode/skill/cloudflare/references/r2-data-catalog/configuration.md +39 -0
  152. package/dist/template/.opencode/skill/cloudflare/references/r2-data-catalog/gotchas.md +20 -0
  153. package/dist/template/.opencode/skill/cloudflare/references/r2-data-catalog/patterns.md +46 -0
  154. package/dist/template/.opencode/skill/cloudflare/references/r2-sql/README.md +512 -0
  155. package/dist/template/.opencode/skill/cloudflare/references/realtime-sfu/README.md +21 -0
  156. package/dist/template/.opencode/skill/cloudflare/references/realtime-sfu/api.md +135 -0
  157. package/dist/template/.opencode/skill/cloudflare/references/realtime-sfu/configuration.md +63 -0
  158. package/dist/template/.opencode/skill/cloudflare/references/realtime-sfu/gotchas.md +75 -0
  159. package/dist/template/.opencode/skill/cloudflare/references/realtime-sfu/patterns.md +102 -0
  160. package/dist/template/.opencode/skill/cloudflare/references/realtimekit/README.md +81 -0
  161. package/dist/template/.opencode/skill/cloudflare/references/realtimekit/api.md +164 -0
  162. package/dist/template/.opencode/skill/cloudflare/references/realtimekit/configuration.md +147 -0
  163. package/dist/template/.opencode/skill/cloudflare/references/realtimekit/gotchas.md +172 -0
  164. package/dist/template/.opencode/skill/cloudflare/references/realtimekit/patterns.md +155 -0
  165. package/dist/template/.opencode/skill/cloudflare/references/sandbox/README.md +90 -0
  166. package/dist/template/.opencode/skill/cloudflare/references/sandbox/api.md +178 -0
  167. package/dist/template/.opencode/skill/cloudflare/references/sandbox/configuration.md +131 -0
  168. package/dist/template/.opencode/skill/cloudflare/references/sandbox/gotchas.md +156 -0
  169. package/dist/template/.opencode/skill/cloudflare/references/sandbox/patterns.md +203 -0
  170. package/dist/template/.opencode/skill/cloudflare/references/secrets-store/README.md +58 -0
  171. package/dist/template/.opencode/skill/cloudflare/references/secrets-store/api.md +182 -0
  172. package/dist/template/.opencode/skill/cloudflare/references/secrets-store/configuration.md +140 -0
  173. package/dist/template/.opencode/skill/cloudflare/references/secrets-store/gotchas.md +129 -0
  174. package/dist/template/.opencode/skill/cloudflare/references/secrets-store/patterns.md +218 -0
  175. package/dist/template/.opencode/skill/cloudflare/references/smart-placement/README.md +91 -0
  176. package/dist/template/.opencode/skill/cloudflare/references/smart-placement/api.md +139 -0
  177. package/dist/template/.opencode/skill/cloudflare/references/smart-placement/configuration.md +129 -0
  178. package/dist/template/.opencode/skill/cloudflare/references/smart-placement/gotchas.md +87 -0
  179. package/dist/template/.opencode/skill/cloudflare/references/smart-placement/patterns.md +135 -0
  180. package/dist/template/.opencode/skill/cloudflare/references/snippets/README.md +15 -0
  181. package/dist/template/.opencode/skill/cloudflare/references/snippets/api.md +47 -0
  182. package/dist/template/.opencode/skill/cloudflare/references/snippets/configuration.md +33 -0
  183. package/dist/template/.opencode/skill/cloudflare/references/snippets/gotchas.md +21 -0
  184. package/dist/template/.opencode/skill/cloudflare/references/snippets/patterns.md +34 -0
  185. package/dist/template/.opencode/skill/cloudflare/references/spectrum/README.md +16 -0
  186. package/dist/template/.opencode/skill/cloudflare/references/spectrum/api.md +24 -0
  187. package/dist/template/.opencode/skill/cloudflare/references/spectrum/configuration.md +43 -0
  188. package/dist/template/.opencode/skill/cloudflare/references/spectrum/gotchas.md +42 -0
  189. package/dist/template/.opencode/skill/cloudflare/references/spectrum/patterns.md +40 -0
  190. package/dist/template/.opencode/skill/cloudflare/references/static-assets/README.md +14 -0
  191. package/dist/template/.opencode/skill/cloudflare/references/static-assets/api.md +3 -0
  192. package/dist/template/.opencode/skill/cloudflare/references/static-assets/configuration.md +47 -0
  193. package/dist/template/.opencode/skill/cloudflare/references/static-assets/gotchas.md +44 -0
  194. package/dist/template/.opencode/skill/cloudflare/references/static-assets/patterns.md +42 -0
  195. package/dist/template/.opencode/skill/cloudflare/references/stream/README.md +103 -0
  196. package/dist/template/.opencode/skill/cloudflare/references/stream/api.md +204 -0
  197. package/dist/template/.opencode/skill/cloudflare/references/stream/configuration.md +127 -0
  198. package/dist/template/.opencode/skill/cloudflare/references/stream/gotchas.md +131 -0
  199. package/dist/template/.opencode/skill/cloudflare/references/stream/patterns.md +152 -0
  200. package/dist/template/.opencode/skill/cloudflare/references/tail-workers/README.md +640 -0
  201. package/dist/template/.opencode/skill/cloudflare/references/terraform/README.md +76 -0
  202. package/dist/template/.opencode/skill/cloudflare/references/terraform/api.md +159 -0
  203. package/dist/template/.opencode/skill/cloudflare/references/terraform/configuration.md +156 -0
  204. package/dist/template/.opencode/skill/cloudflare/references/terraform/gotchas.md +207 -0
  205. package/dist/template/.opencode/skill/cloudflare/references/terraform/patterns.md +135 -0
  206. package/dist/template/.opencode/skill/cloudflare/references/tunnel/README.md +82 -0
  207. package/dist/template/.opencode/skill/cloudflare/references/tunnel/api.md +105 -0
  208. package/dist/template/.opencode/skill/cloudflare/references/tunnel/configuration.md +113 -0
  209. package/dist/template/.opencode/skill/cloudflare/references/tunnel/gotchas.md +115 -0
  210. package/dist/template/.opencode/skill/cloudflare/references/tunnel/patterns.md +157 -0
  211. package/dist/template/.opencode/skill/cloudflare/references/turn/README.md +699 -0
  212. package/dist/template/.opencode/skill/cloudflare/references/turnstile/README.md +14 -0
  213. package/dist/template/.opencode/skill/cloudflare/references/turnstile/api.md +3 -0
  214. package/dist/template/.opencode/skill/cloudflare/references/turnstile/configuration.md +19 -0
  215. package/dist/template/.opencode/skill/cloudflare/references/turnstile/gotchas.md +27 -0
  216. package/dist/template/.opencode/skill/cloudflare/references/turnstile/patterns.md +41 -0
  217. package/dist/template/.opencode/skill/cloudflare/references/vectorize/README.md +682 -0
  218. package/dist/template/.opencode/skill/cloudflare/references/waf/README.md +14 -0
  219. package/dist/template/.opencode/skill/cloudflare/references/waf/api.md +3 -0
  220. package/dist/template/.opencode/skill/cloudflare/references/waf/configuration.md +44 -0
  221. package/dist/template/.opencode/skill/cloudflare/references/waf/gotchas.md +24 -0
  222. package/dist/template/.opencode/skill/cloudflare/references/waf/patterns.md +29 -0
  223. package/dist/template/.opencode/skill/cloudflare/references/web-analytics/README.md +19 -0
  224. package/dist/template/.opencode/skill/cloudflare/references/web-analytics/api.md +52 -0
  225. package/dist/template/.opencode/skill/cloudflare/references/web-analytics/configuration.md +31 -0
  226. package/dist/template/.opencode/skill/cloudflare/references/web-analytics/gotchas.md +28 -0
  227. package/dist/template/.opencode/skill/cloudflare/references/web-analytics/patterns.md +52 -0
  228. package/dist/template/.opencode/skill/cloudflare/references/workerd/README.md +47 -0
  229. package/dist/template/.opencode/skill/cloudflare/references/workerd/api.md +199 -0
  230. package/dist/template/.opencode/skill/cloudflare/references/workerd/configuration.md +185 -0
  231. package/dist/template/.opencode/skill/cloudflare/references/workerd/gotchas.md +203 -0
  232. package/dist/template/.opencode/skill/cloudflare/references/workerd/patterns.md +216 -0
  233. package/dist/template/.opencode/skill/cloudflare/references/workers/README.md +96 -0
  234. package/dist/template/.opencode/skill/cloudflare/references/workers/api.md +137 -0
  235. package/dist/template/.opencode/skill/cloudflare/references/workers/configuration.md +147 -0
  236. package/dist/template/.opencode/skill/cloudflare/references/workers/gotchas.md +99 -0
  237. package/dist/template/.opencode/skill/cloudflare/references/workers/patterns.md +149 -0
  238. package/dist/template/.opencode/skill/cloudflare/references/workers-ai/README.md +116 -0
  239. package/dist/template/.opencode/skill/cloudflare/references/workers-for-platforms/README.md +48 -0
  240. package/dist/template/.opencode/skill/cloudflare/references/workers-for-platforms/api.md +169 -0
  241. package/dist/template/.opencode/skill/cloudflare/references/workers-for-platforms/configuration.md +136 -0
  242. package/dist/template/.opencode/skill/cloudflare/references/workers-for-platforms/gotchas.md +130 -0
  243. package/dist/template/.opencode/skill/cloudflare/references/workers-for-platforms/patterns.md +170 -0
  244. package/dist/template/.opencode/skill/cloudflare/references/workers-playground/README.md +16 -0
  245. package/dist/template/.opencode/skill/cloudflare/references/workers-playground/api.md +20 -0
  246. package/dist/template/.opencode/skill/cloudflare/references/workers-playground/configuration.md +3 -0
  247. package/dist/template/.opencode/skill/cloudflare/references/workers-playground/gotchas.md +35 -0
  248. package/dist/template/.opencode/skill/cloudflare/references/workers-playground/patterns.md +42 -0
  249. package/dist/template/.opencode/skill/cloudflare/references/workers-vpc/README.md +579 -0
  250. package/dist/template/.opencode/skill/cloudflare/references/workflows/README.md +62 -0
  251. package/dist/template/.opencode/skill/cloudflare/references/workflows/api.md +125 -0
  252. package/dist/template/.opencode/skill/cloudflare/references/workflows/configuration.md +177 -0
  253. package/dist/template/.opencode/skill/cloudflare/references/workflows/gotchas.md +136 -0
  254. package/dist/template/.opencode/skill/cloudflare/references/workflows/patterns.md +132 -0
  255. package/dist/template/.opencode/skill/cloudflare/references/wrangler/README.md +90 -0
  256. package/dist/template/.opencode/skill/cloudflare/references/wrangler/api.md +140 -0
  257. package/dist/template/.opencode/skill/cloudflare/references/wrangler/configuration.md +128 -0
  258. package/dist/template/.opencode/skill/cloudflare/references/wrangler/gotchas.md +93 -0
  259. package/dist/template/.opencode/skill/cloudflare/references/wrangler/patterns.md +150 -0
  260. package/dist/template/.opencode/skill/cloudflare/references/zaraz/README.md +360 -0
  261. package/dist/template/.opencode/skill/react-best-practices/AGENTS.md +2410 -0
  262. package/dist/template/.opencode/skill/react-best-practices/README.md +123 -0
  263. package/dist/template/.opencode/skill/react-best-practices/SKILL.md +125 -0
  264. package/dist/template/.opencode/skill/react-best-practices/metadata.json +15 -0
  265. package/dist/template/.opencode/skill/react-best-practices/rules/_sections.md +46 -0
  266. package/dist/template/.opencode/skill/react-best-practices/rules/_template.md +28 -0
  267. package/dist/template/.opencode/skill/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  268. package/dist/template/.opencode/skill/react-best-practices/rules/advanced-use-latest.md +49 -0
  269. package/dist/template/.opencode/skill/react-best-practices/rules/async-api-routes.md +38 -0
  270. package/dist/template/.opencode/skill/react-best-practices/rules/async-defer-await.md +80 -0
  271. package/dist/template/.opencode/skill/react-best-practices/rules/async-dependencies.md +36 -0
  272. package/dist/template/.opencode/skill/react-best-practices/rules/async-parallel.md +28 -0
  273. package/dist/template/.opencode/skill/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  274. package/dist/template/.opencode/skill/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  275. package/dist/template/.opencode/skill/react-best-practices/rules/bundle-conditional.md +31 -0
  276. package/dist/template/.opencode/skill/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  277. package/dist/template/.opencode/skill/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  278. package/dist/template/.opencode/skill/react-best-practices/rules/bundle-preload.md +50 -0
  279. package/dist/template/.opencode/skill/react-best-practices/rules/client-event-listeners.md +74 -0
  280. package/dist/template/.opencode/skill/react-best-practices/rules/client-localstorage-schema.md +71 -0
  281. package/dist/template/.opencode/skill/react-best-practices/rules/client-passive-event-listeners.md +48 -0
  282. package/dist/template/.opencode/skill/react-best-practices/rules/client-swr-dedup.md +56 -0
  283. package/dist/template/.opencode/skill/react-best-practices/rules/js-batch-dom-css.md +82 -0
  284. package/dist/template/.opencode/skill/react-best-practices/rules/js-cache-function-results.md +80 -0
  285. package/dist/template/.opencode/skill/react-best-practices/rules/js-cache-property-access.md +28 -0
  286. package/dist/template/.opencode/skill/react-best-practices/rules/js-cache-storage.md +70 -0
  287. package/dist/template/.opencode/skill/react-best-practices/rules/js-combine-iterations.md +32 -0
  288. package/dist/template/.opencode/skill/react-best-practices/rules/js-early-exit.md +50 -0
  289. package/dist/template/.opencode/skill/react-best-practices/rules/js-hoist-regexp.md +45 -0
  290. package/dist/template/.opencode/skill/react-best-practices/rules/js-index-maps.md +37 -0
  291. package/dist/template/.opencode/skill/react-best-practices/rules/js-length-check-first.md +49 -0
  292. package/dist/template/.opencode/skill/react-best-practices/rules/js-min-max-loop.md +82 -0
  293. package/dist/template/.opencode/skill/react-best-practices/rules/js-set-map-lookups.md +24 -0
  294. package/dist/template/.opencode/skill/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  295. package/dist/template/.opencode/skill/react-best-practices/rules/rendering-activity.md +26 -0
  296. package/dist/template/.opencode/skill/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  297. package/dist/template/.opencode/skill/react-best-practices/rules/rendering-conditional-render.md +40 -0
  298. package/dist/template/.opencode/skill/react-best-practices/rules/rendering-content-visibility.md +38 -0
  299. package/dist/template/.opencode/skill/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  300. package/dist/template/.opencode/skill/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  301. package/dist/template/.opencode/skill/react-best-practices/rules/rendering-svg-precision.md +28 -0
  302. package/dist/template/.opencode/skill/react-best-practices/rules/rerender-defer-reads.md +39 -0
  303. package/dist/template/.opencode/skill/react-best-practices/rules/rerender-dependencies.md +45 -0
  304. package/dist/template/.opencode/skill/react-best-practices/rules/rerender-derived-state.md +29 -0
  305. package/dist/template/.opencode/skill/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  306. package/dist/template/.opencode/skill/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  307. package/dist/template/.opencode/skill/react-best-practices/rules/rerender-memo.md +44 -0
  308. package/dist/template/.opencode/skill/react-best-practices/rules/rerender-transitions.md +40 -0
  309. package/dist/template/.opencode/skill/react-best-practices/rules/server-after-nonblocking.md +73 -0
  310. package/dist/template/.opencode/skill/react-best-practices/rules/server-cache-lru.md +41 -0
  311. package/dist/template/.opencode/skill/react-best-practices/rules/server-cache-react.md +76 -0
  312. package/dist/template/.opencode/skill/react-best-practices/rules/server-parallel-fetching.md +83 -0
  313. package/dist/template/.opencode/skill/react-best-practices/rules/server-serialization.md +38 -0
  314. package/dist/template/.opencode/skill/supabase/SKILL.md +120 -0
  315. package/dist/template/.opencode/skill/supabase/mcp.json +27 -0
  316. package/dist/template/.opencode/skill/vercel-deploy-claimable/SKILL.md +112 -0
  317. package/dist/template/.opencode/skill/vercel-deploy-claimable/scripts/deploy.sh +249 -0
  318. package/dist/template/.opencode/skill/web-design-guidelines/SKILL.md +39 -0
  319. package/package.json +1 -1
@@ -0,0 +1,34 @@
1
+ ## Common Use Cases
2
+
3
+ ### 1. Header Manipulation
4
+ **Use for**: Adding/removing/modifying request or response headers
5
+ ```javascript
6
+ // Add timestamp header
7
+ const timestamp = Date.now().toString(16);
8
+ modifiedRequest.headers.set("X-Hex-Timestamp", timestamp);
9
+
10
+ // Remove sensitive headers
11
+ newResponse.headers.delete("X-Powered-By");
12
+ newResponse.headers.delete("Server");
13
+
14
+ // Set security headers
15
+ newResponse.headers.set("X-Frame-Options", "DENY");
16
+ newResponse.headers.set("X-Content-Type-Options", "nosniff");
17
+ ```
18
+
19
+ ### 2. Cookie Modification
20
+ **Use for**: Setting dynamic cookies, expiry times, A/B testing
21
+ ```javascript
22
+ const expiry = new Date(Date.now() + 7 * 86400000).toUTCString();
23
+ const group = request.headers.get("userGroup") == "premium" ? "A" : "B";
24
+ response.headers.append(
25
+ "Set-Cookie",
26
+ `testGroup=${group}; Expires=${expiry}; path=/`
27
+ );
28
+ ```
29
+
30
+ ### 3. Bot Management
31
+ **Use for**: Routing bots, honeypots, rate limiting
32
+ ```javascript
33
+ // Access bot score from request.cf
34
+ const botScore = reques
@@ -0,0 +1,16 @@
1
+ # Cloudflare Spectrum Skill Reference
2
+
3
+ ## Overview
4
+
5
+ Cloudflare Spectrum provides security and acceleration for ANY TCP or UDP-based application. It's a global Layer 4 (L4) reverse proxy running on Cloudflare's edge nodes that routes MQTT, email, file transfer, version control, games, and more through Cloudflare to mask origins and protec...
6
+
7
+ ## In This Reference
8
+
9
+ - **[configuration.md](./configuration.md)** - Setup, deployment, configuration
10
+ - **[api.md](./api.md)** - API endpoints, methods, interfaces
11
+ - **[patterns.md](./patterns.md)** - Common patterns, use cases, examples
12
+ - **[gotchas.md](./gotchas.md)** - Troubleshooting, best practices, limitations
13
+
14
+ ## See Also
15
+
16
+ - [Cloudflare Docs](https://developers.cloudflare.com/)
@@ -0,0 +1,24 @@
1
+ ### API Endpoints
2
+
3
+ ```
4
+ GET /zones/{zone_id}/spectrum/apps # List apps
5
+ POST /zones/{zone_id}/spectrum/apps # Create app
6
+ GET /zones/{zone_id}/spectrum/apps/{app_id} # Get app
7
+ PUT /zones/{zone_id}/spectrum/apps/{app_id} # Update app
8
+ DELETE /zones/{zone_id}/spectrum/apps/{app_id} # Delete app
9
+
10
+ GET /zones/{zone_id}/spectrum/analytics/aggregate/current
11
+ GET /zones/{zone_id}/spectrum/analytics/events/bytime
12
+ GET /zones/{zone_id}/spectrum/analytics/events/summary
13
+ ```
14
+
15
+ ### Supported Protocols
16
+
17
+ **Pro/Business Plans:**
18
+ - Selected protocols only (check Cloudflare docs for current list)
19
+
20
+ **Enterprise Plans:**
21
+ - All TCP ports (1-65535)
22
+ - All UDP ports (1-65535)
23
+ - Port ranges
24
+ - Custom protocols
@@ -0,0 +1,43 @@
1
+ ## Configuration Patterns
2
+
3
+ ### Basic TCP Application with Direct IP Origin
4
+
5
+ ```bash
6
+ curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/spectrum/apps" \
7
+ --request POST \
8
+ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
9
+ --json '{
10
+ "protocol": "tcp/22",
11
+ "dns": {
12
+ "type": "CNAME",
13
+ "name": "ssh.example.com"
14
+ },
15
+ "origin_direct": ["tcp://192.0.2.1:22"],
16
+ "proxy_protocol": "off",
17
+ "ip_firewall": true,
18
+ "tls": "off",
19
+ "edge_ips": {
20
+ "type": "dynamic",
21
+ "connectivity": "all"
22
+ },
23
+ "traffic_type": "direct",
24
+ "argo_smart_routing": true
25
+ }'
26
+ ```
27
+
28
+ ### TCP Application with CNAME Origin
29
+
30
+ ```bash
31
+ curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/spectrum/apps" \
32
+ --request POST \
33
+ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
34
+ --json '{
35
+ "dns": {
36
+ "type": "CNAME",
37
+ "name": "game.example.com"
38
+ },
39
+ "protocol": "tcp/27015",
40
+ "proxy_protocol": "v1",
41
+ "tls": "off",
42
+ "origin_dns": {
43
+
@@ -0,0 +1,42 @@
1
+ ## Troubleshooting
2
+
3
+ ### Issue: Connection timeouts
4
+
5
+ **Diagnosis:**
6
+ ```bash
7
+ # Test connectivity to Spectrum app
8
+ nc -zv app.example.com 22
9
+
10
+ # Check DNS resolution
11
+ dig app.example.com
12
+
13
+ # Verify origin accepts Cloudflare IPs
14
+ curl -v telnet://origin-ip:port
15
+ ```
16
+
17
+ **Solutions:**
18
+ - Verify origin firewall allows Cloudflare IPs
19
+ - Check origin service is running and listening on correct port
20
+ - Ensure DNS record is CNAME (not A/AAAA unless using BYOIP)
21
+
22
+ ### Issue: Client IP showing Cloudflare IP
23
+
24
+ **Solution:** Enable Proxy Protocol
25
+
26
+ ```json
27
+ {
28
+ "proxy_protocol": "v1" // TCP: v1 or v2; UDP: simple
29
+ }
30
+ ```
31
+
32
+ Ensure origin application parses proxy protocol headers.
33
+
34
+ ### Issue: TLS errors
35
+
36
+ **Diagnosis:**
37
+ ```bash
38
+ openssl s_client -connect app.example.com:443 -showcerts
39
+ ```
40
+
41
+ **Solutions:**
42
+ - `tls: "flexible"`
@@ -0,0 +1,40 @@
1
+ ## Common Use Cases
2
+
3
+ ### 1. SSH Server Protection
4
+
5
+ ```bash
6
+ curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/spectrum/apps" \
7
+ --request POST \
8
+ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
9
+ --json '{
10
+ "protocol": "tcp/22",
11
+ "dns": {"type": "CNAME", "name": "ssh.example.com"},
12
+ "origin_direct": ["tcp://10.0.1.5:22"],
13
+ "ip_firewall": true,
14
+ "argo_smart_routing": true
15
+ }'
16
+ ```
17
+
18
+ **Benefits:**
19
+ - Hide origin IP from attackers
20
+ - DDoS protection at L3/L4
21
+ - Argo reduces latency
22
+ - IP firewall for additional access control
23
+
24
+ ### 2. Game Server (e.g., Minecraft)
25
+
26
+ ```bash
27
+ curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/spectrum/apps" \
28
+ --request POST \
29
+ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
30
+ --json '{
31
+ "protocol": "tcp/25565",
32
+ "dns": {"type": "CNAME", "name": "mc.example.com"},
33
+ "origin_direct": ["tcp://192.168.1.10:25565"],
34
+ "proxy_protocol": "v1",
35
+ "argo_smart_routing": true
36
+ }'
37
+ ```
38
+
39
+ **Benefits:**
40
+ - Protection
@@ -0,0 +1,14 @@
1
+ # Cloudflare Static Assets Skill Reference
2
+
3
+ Expert guidance for deploying and configuring static assets with Cloudflare Workers. This skill covers configuration patterns, routing architectures, asset binding usage, and best practices for SPAs, SSG sites, and full-stack applications....
4
+
5
+ ## In This Reference
6
+
7
+ - **[configuration.md](./configuration.md)** - Setup, deployment, configuration
8
+ - **[api.md](./api.md)** - API endpoints, methods, interfaces
9
+ - **[patterns.md](./patterns.md)** - Common patterns, use cases, examples
10
+ - **[gotchas.md](./gotchas.md)** - Troubleshooting, best practices, limitations
11
+
12
+ ## See Also
13
+
14
+ - [Cloudflare Docs](https://developers.cloudflare.com/)
@@ -0,0 +1,3 @@
1
+ # API Reference
2
+
3
+ See main documentation.
@@ -0,0 +1,47 @@
1
+ ## Configuration
2
+
3
+ ### Basic Setup
4
+
5
+ Minimal configuration requires only `assets.directory`:
6
+
7
+ ```jsonc
8
+ {
9
+ "name": "my-worker",
10
+ "compatibility_date": "2025-01-01",
11
+ "assets": {
12
+ "directory": "./dist"
13
+ }
14
+ }
15
+ ```
16
+
17
+ ```toml
18
+ name = "my-worker"
19
+ compatibility_date = "2025-01-01"
20
+
21
+ [assets]
22
+ directory = "./dist"
23
+ ```
24
+
25
+ ### Full Configuration Options
26
+
27
+ ```jsonc
28
+ {
29
+ "name": "my-worker",
30
+ "main": "src/index.ts",
31
+ "compatibility_date": "2025-01-01",
32
+ "assets": {
33
+ "directory": "./dist",
34
+ "binding": "ASSETS",
35
+ "not_found_handling": "single-page-application",
36
+ "html_handling": "auto-trailing-slash",
37
+ "run_worker_first": ["/api/*", "!/api/docs/*"]
38
+ }
39
+ }
40
+ ```
41
+
42
+ **Configuration keys:**
43
+
44
+ - `directory` (string, required): Path to assets folder (e.g. `./dist`, `./public`, `./build`)
45
+ - `binding` (string, optional): Name to access assets in Worker code (e.g. `env.ASSETS`)
46
+ - `not_found_handling` (string, optional): Behavior when asset not found
47
+ - `"single-page-application"`: Serve `/index.html
@@ -0,0 +1,44 @@
1
+ ## Best Practices
2
+
3
+ ### 1. Use Selective Worker-First Routing
4
+
5
+ Instead of `run_worker_first = true`, use array patterns:
6
+
7
+ ```jsonc
8
+ {
9
+ "assets": {
10
+ "run_worker_first": [
11
+ "/api/*", // API routes
12
+ "/admin/*", // Admin area
13
+ "!/admin/assets/*" // Except admin assets
14
+ ]
15
+ }
16
+ }
17
+ ```
18
+
19
+ **Benefits:**
20
+ - Reduces Worker invocations
21
+ - Lowers costs
22
+ - Improves asset delivery performance
23
+
24
+ ### 2. Leverage Navigation Request Optimization
25
+
26
+ For SPAs, use `compatibility_date = "2025-04-01"` or later:
27
+
28
+ ```jsonc
29
+ {
30
+ "compatibility_date": "2025-04-01",
31
+ "assets": {
32
+ "not_found_handling": "single-page-application"
33
+ }
34
+ }
35
+ ```
36
+
37
+ Navigation requests skip Worker invocation, reducing costs.
38
+
39
+ ### 3. Type Safety with Bindings
40
+
41
+ Always type your environment:
42
+
43
+ ```typescript
44
+ interface
@@ -0,0 +1,42 @@
1
+ ### Common Patterns
2
+
3
+ **1. Forward request to assets:**
4
+
5
+ ```typescript
6
+ export default {
7
+ async fetch(request: Request, env: Env): Promise<Response> {
8
+ return env.ASSETS.fetch(request);
9
+ }
10
+ };
11
+ ```
12
+
13
+ **2. Fetch specific asset by path:**
14
+
15
+ ```typescript
16
+ const response = await env.ASSETS.fetch("https://assets.local/logo.png");
17
+ ```
18
+
19
+ **3. Modify request before fetching asset:**
20
+
21
+ ```typescript
22
+ const url = new URL(request.url);
23
+ url.pathname = "/index.html";
24
+ return env.ASSETS.fetch(new Request(url, request));
25
+ ```
26
+
27
+ **4. Transform asset response:**
28
+
29
+ ```typescript
30
+ const response = await env.ASSETS.fetch(request);
31
+ const modifiedResponse = new Response(response.body, response);
32
+ modifiedResponse.headers.set("X-Custom-Header", "value");
33
+ modifiedResponse.headers.set("Cache-Control", "public, max-age=3600");
34
+ return modifiedResponse;
35
+ ```
36
+
37
+ **5. Conditional asset serving:**
38
+
39
+ ```typescript
40
+ export default {
41
+ async fetch(request: Request, env: Env): Promise<Response> {
42
+ const url = new URL(request.url);
@@ -0,0 +1,103 @@
1
+ # Cloudflare Stream
2
+
3
+ Serverless live and on-demand video streaming platform with one API.
4
+
5
+ ## Overview
6
+
7
+ Cloudflare Stream provides video upload, storage, encoding, and delivery without managing infrastructure. Runs on Cloudflare's global network.
8
+
9
+ ### Key Features
10
+ - **On-demand video**: Upload, encode, store, deliver
11
+ - **Live streaming**: RTMPS/SRT ingestion with ABR
12
+ - **Direct creator uploads**: End users upload without API keys
13
+ - **Signed URLs**: Token-based access control
14
+ - **Analytics**: Server-side metrics via GraphQL
15
+ - **Webhooks**: Processing notifications
16
+ - **Captions**: Upload or AI-generate subtitles
17
+ - **Watermarks**: Apply branding to videos
18
+ - **Downloads**: Enable MP4 offline viewing
19
+
20
+ ## Core Concepts
21
+
22
+ ### Video Upload Methods
23
+ 1. **API Upload (TUS protocol)**: Direct server upload
24
+ 2. **Upload from URL**: Import from external source
25
+ 3. **Direct Creator Uploads**: User-generated content (recommended)
26
+
27
+ ### Playback Options
28
+ 1. **Stream Player (iframe)**: Built-in, optimized player
29
+ 2. **Custom Player (HLS/DASH)**: Video.js, HLS.js integration
30
+ 3. **Thumbnails**: Static or animated previews
31
+
32
+ ### Access Control
33
+ - **Public**: No restrictions
34
+ - **requireSignedURLs**: Token-based access
35
+ - **allowedOrigins**: Domain restrictions
36
+ - **Access Rules**: Geo/IP restrictions in tokens
37
+
38
+ ### Live Streaming
39
+ - RTMPS/SRT ingest from OBS, FFmpeg
40
+ - Automatic recording to on-demand
41
+ - Simulcast to YouTube, Twitch, etc.
42
+ - WebRTC support for browser streaming
43
+
44
+ ## Quick Start
45
+
46
+ **Upload video via API**
47
+ ```bash
48
+ curl -X POST \
49
+ "https://api.cloudflare.com/client/v4/accounts/{account_id}/stream/copy" \
50
+ -H "Authorization: Bearer <TOKEN>" \
51
+ -H "Content-Type: application/json" \
52
+ -d '{"url": "https://example.com/video.mp4"}'
53
+ ```
54
+
55
+ **Embed player**
56
+ ```html
57
+ <iframe
58
+ src="https://customer-<CODE>.cloudflarestream.com/<VIDEO_ID>/iframe"
59
+ style="border: none;"
60
+ height="720" width="1280"
61
+ allow="accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;"
62
+ allowfullscreen="true"
63
+ ></iframe>
64
+ ```
65
+
66
+ **Create live input**
67
+ ```bash
68
+ curl -X POST \
69
+ "https://api.cloudflare.com/client/v4/accounts/{account_id}/stream/live_inputs" \
70
+ -H "Authorization: Bearer <TOKEN>" \
71
+ -H "Content-Type: application/json" \
72
+ -d '{"recording": {"mode": "automatic"}}'
73
+ ```
74
+
75
+ ## Limits
76
+
77
+ - Max file size: 30 GB
78
+ - Max frame rate: 60 fps (recommended)
79
+ - Supported formats: MP4, MKV, MOV, AVI, FLV, MPEG-2 TS/PS, MXF, LXF, GXF, 3GP, WebM, MPG, QuickTime
80
+
81
+ ## Pricing
82
+
83
+ - $5/1000 min stored
84
+ - $1/1000 min delivered
85
+
86
+ ## Resources
87
+
88
+ - Dashboard: https://dash.cloudflare.com/?to=/:account/stream
89
+ - API Docs: https://developers.cloudflare.com/api/resources/stream/
90
+ - Stream Docs: https://developers.cloudflare.com/stream/
91
+
92
+ ## In This Reference
93
+
94
+ - [configuration.md](./configuration.md) - Setup, environment variables, wrangler config
95
+ - [api.md](./api.md) - Upload, playback, live streaming, management APIs
96
+ - [patterns.md](./patterns.md) - Full-stack flows, state management, best practices
97
+ - [gotchas.md](./gotchas.md) - Error codes, troubleshooting, limits
98
+
99
+ ## See Also
100
+
101
+ - [workers](../workers/) - Deploy Stream APIs in Workers
102
+ - [pages](../pages/) - Integrate Stream with Pages
103
+ - [workers-ai](../workers-ai/) - AI-generate captions
@@ -0,0 +1,204 @@
1
+ # Stream API Reference
2
+
3
+ Upload, playback, live streaming, and management APIs.
4
+
5
+ ## Upload APIs
6
+
7
+ ### Direct Creator Upload (Recommended)
8
+
9
+ **Backend: Create upload URL**
10
+ ```typescript
11
+ async function createUploadURL(accountId: string, apiToken: string) {
12
+ const response = await fetch(
13
+ `https://api.cloudflare.com/client/v4/accounts/${accountId}/stream/direct_upload`,
14
+ {
15
+ method: 'POST',
16
+ headers: {
17
+ 'Authorization': `Bearer ${apiToken}`,
18
+ 'Content-Type': 'application/json',
19
+ },
20
+ body: JSON.stringify({
21
+ maxDurationSeconds: 3600,
22
+ expiry: new Date(Date.now() + 3600000).toISOString(),
23
+ requireSignedURLs: true,
24
+ meta: { creator: 'user-123' }
25
+ })
26
+ }
27
+ );
28
+ const data = await response.json();
29
+ return { uploadURL: data.result.uploadURL, uid: data.result.uid };
30
+ }
31
+ ```
32
+
33
+ **Frontend: Upload to Stream**
34
+ ```typescript
35
+ async function uploadVideo(file: File, uploadURL: string) {
36
+ const formData = new FormData();
37
+ formData.append('file', file);
38
+ return fetch(uploadURL, { method: 'POST', body: formData }).then(r => r.json());
39
+ }
40
+ ```
41
+
42
+ ### Upload from URL
43
+
44
+ ```bash
45
+ curl -X POST \
46
+ "https://api.cloudflare.com/client/v4/accounts/{account_id}/stream/copy" \
47
+ -H "Authorization: Bearer <TOKEN>" \
48
+ -H "Content-Type: application/json" \
49
+ -d '{
50
+ "url": "https://example.com/video.mp4",
51
+ "meta": {"name": "My Video"},
52
+ "requireSignedURLs": false
53
+ }'
54
+ ```
55
+
56
+ ## Playback APIs
57
+
58
+ ### Embed Player (iframe)
59
+
60
+ ```html
61
+ <iframe
62
+ src="https://customer-<CODE>.cloudflarestream.com/<VIDEO_ID>/iframe?autoplay=true&muted=true"
63
+ style="border: none;" height="720" width="1280"
64
+ allow="accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;"
65
+ allowfullscreen="true"
66
+ ></iframe>
67
+ ```
68
+
69
+ ### HLS/DASH Manifest URLs
70
+
71
+ ```typescript
72
+ // HLS
73
+ const hlsUrl = `https://customer-<CODE>.cloudflarestream.com/${videoId}/manifest/video.m3u8`;
74
+
75
+ // DASH
76
+ const dashUrl = `https://customer-<CODE>.cloudflarestream.com/${videoId}/manifest/video.mpd`;
77
+ ```
78
+
79
+ ### Thumbnails
80
+
81
+ ```typescript
82
+ // At specific time (seconds)
83
+ const thumb = `https://customer-<CODE>.cloudflarestream.com/${videoId}/thumbnails/thumbnail.jpg?time=10s`;
84
+
85
+ // By percentage
86
+ const thumbPct = `https://customer-<CODE>.cloudflarestream.com/${videoId}/thumbnails/thumbnail.jpg?time=50%`;
87
+
88
+ // Animated GIF
89
+ const gif = `https://customer-<CODE>.cloudflarestream.com/${videoId}/thumbnails/thumbnail.gif`;
90
+ ```
91
+
92
+ ## Signed URLs
93
+
94
+ ```typescript
95
+ // Low volume (<1k/day): Use API
96
+ async function getSignedToken(accountId: string, videoId: string, apiToken: string) {
97
+ const response = await fetch(
98
+ `https://api.cloudflare.com/client/v4/accounts/${accountId}/stream/${videoId}/token`,
99
+ {
100
+ method: 'POST',
101
+ headers: { 'Authorization': `Bearer ${apiToken}`, 'Content-Type': 'application/json' },
102
+ body: JSON.stringify({
103
+ exp: Math.floor(Date.now() / 1000) + 3600,
104
+ accessRules: [{ type: 'ip.geoip.country', action: 'allow', country: ['US'] }]
105
+ })
106
+ }
107
+ );
108
+ return (await response.json()).result.token;
109
+ }
110
+
111
+ // High volume: Self-sign with RS256 JWT using crypto.subtle (see patterns.md)
112
+ ```
113
+
114
+ ## Live Streaming APIs
115
+
116
+ ### Create Live Input
117
+
118
+ ```typescript
119
+ async function createLiveInput(accountId: string, apiToken: string) {
120
+ const response = await fetch(
121
+ `https://api.cloudflare.com/client/v4/accounts/${accountId}/stream/live_inputs`,
122
+ {
123
+ method: 'POST',
124
+ headers: { 'Authorization': `Bearer ${apiToken}`, 'Content-Type': 'application/json' },
125
+ body: JSON.stringify({
126
+ recording: { mode: 'automatic', timeoutSeconds: 30 },
127
+ deleteRecordingAfterDays: 30
128
+ })
129
+ }
130
+ );
131
+ const { result } = await response.json();
132
+ return {
133
+ uid: result.uid,
134
+ rtmps: { url: result.rtmps.url, streamKey: result.rtmps.streamKey },
135
+ srt: { url: result.srt.url, streamId: result.srt.streamId, passphrase: result.srt.passphrase }
136
+ };
137
+ }
138
+ ```
139
+
140
+ ### Check Live Status
141
+
142
+ ```typescript
143
+ async function getLiveStatus(accountId: string, liveInputId: string, apiToken: string) {
144
+ const response = await fetch(
145
+ `https://api.cloudflare.com/client/v4/accounts/${accountId}/stream/live_inputs/${liveInputId}`,
146
+ { headers: { 'Authorization': `Bearer ${apiToken}` } }
147
+ );
148
+ const { result } = await response.json();
149
+ return { isLive: result.status?.current?.state === 'connected', recording: result.recording };
150
+ }
151
+ ```
152
+
153
+ ### Create Live Output (Simulcast)
154
+
155
+ ```typescript
156
+ async function createLiveOutput(
157
+ accountId: string, liveInputId: string, apiToken: string,
158
+ outputUrl: string, streamKey: string
159
+ ) {
160
+ return fetch(
161
+ `https://api.cloudflare.com/client/v4/accounts/${accountId}/stream/live_inputs/${liveInputId}/outputs`,
162
+ {
163
+ method: 'POST',
164
+ headers: { 'Authorization': `Bearer ${apiToken}`, 'Content-Type': 'application/json' },
165
+ body: JSON.stringify({ url: `${outputUrl}/${streamKey}`, enabled: true })
166
+ }
167
+ ).then(r => r.json());
168
+ }
169
+ ```
170
+
171
+ ## Video Management APIs
172
+
173
+ ```typescript
174
+ // List videos
175
+ async function listVideos(accountId: string, apiToken: string, search?: string) {
176
+ const params = new URLSearchParams(search ? { search } : {});
177
+ return fetch(
178
+ `https://api.cloudflare.com/client/v4/accounts/${accountId}/stream?${params}`,
179
+ { headers: { 'Authorization': `Bearer ${apiToken}` } }
180
+ ).then(r => r.json());
181
+ }
182
+
183
+ // Update video
184
+ async function updateVideo(accountId: string, videoId: string, apiToken: string, updates: unknown) {
185
+ return fetch(`https://api.cloudflare.com/client/v4/accounts/${accountId}/stream/${videoId}`, {
186
+ method: 'POST',
187
+ headers: { 'Authorization': `Bearer ${apiToken}`, 'Content-Type': 'application/json' },
188
+ body: JSON.stringify(updates)
189
+ }).then(r => r.json());
190
+ }
191
+
192
+ // Delete, clip: similar pattern with DELETE/POST
193
+ ```
194
+
195
+ ## In This Reference
196
+
197
+ - [README.md](./README.md) - Overview and quick start
198
+ - [configuration.md](./configuration.md) - Setup and config
199
+ - [patterns.md](./patterns.md) - Full-stack flows, best practices
200
+ - [gotchas.md](./gotchas.md) - Error codes, troubleshooting
201
+
202
+ ## See Also
203
+
204
+ - [workers](../workers/) - Deploy Stream APIs in Workers