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,131 @@
1
+ # Configuration
2
+
3
+ ## getSandbox Options
4
+
5
+ ```typescript
6
+ const sandbox = getSandbox(env.Sandbox, 'sandbox-id', {
7
+ normalizeId: true, // lowercase ID (required for preview URLs)
8
+ sleepAfter: '30m', // sleep after inactivity: '5m', '1h', '2d'
9
+ keepAlive: false, // false = auto-timeout, true = never sleep
10
+
11
+ containerTimeouts: {
12
+ instanceGetTimeoutMS: 30000, // 30s for provisioning
13
+ portReadyTimeoutMS: 90000 // 90s for container startup
14
+ }
15
+ });
16
+ ```
17
+
18
+ **Sleep Config**:
19
+ - `sleepAfter`: Duration string (e.g., '5m', '30m', '1h')
20
+ - `keepAlive: false`: Auto-sleep (default, cost-optimized)
21
+ - `keepAlive: true`: Never sleep (higher cost, faster response)
22
+ - Sleeping sandboxes wake automatically (cold start)
23
+
24
+ ## Instance Types
25
+
26
+ wrangler.jsonc `instance_type`:
27
+ - `lite`: 256MB RAM, 0.5 vCPU (default)
28
+ - `standard`: 512MB RAM, 1 vCPU
29
+ - `heavy`: 1GB RAM, 2 vCPU
30
+
31
+ ## Dockerfile Patterns
32
+
33
+ **Basic**:
34
+ ```dockerfile
35
+ FROM docker.io/cloudflare/sandbox:latest
36
+ RUN pip3 install --no-cache-dir pandas numpy
37
+ EXPOSE 8080 # Required for wrangler dev
38
+ ```
39
+
40
+ **Scientific**:
41
+ ```dockerfile
42
+ FROM docker.io/cloudflare/sandbox:latest
43
+ RUN pip3 install --no-cache-dir \
44
+ jupyter-server ipykernel matplotlib \
45
+ pandas seaborn plotly scipy scikit-learn
46
+ ```
47
+
48
+ **Node.js**:
49
+ ```dockerfile
50
+ FROM docker.io/cloudflare/sandbox:latest
51
+ RUN npm install -g typescript ts-node
52
+ ```
53
+
54
+ **CRITICAL**: `EXPOSE` required for `wrangler dev` port access. Production auto-exposes all ports.
55
+
56
+ ## CLI Commands
57
+
58
+ ```bash
59
+ # Dev
60
+ wrangler dev # Start local dev server
61
+ wrangler deploy # Deploy to production
62
+ wrangler tail # Monitor logs
63
+ wrangler containers list # Check container status
64
+ wrangler secret put KEY # Set secret
65
+ ```
66
+
67
+ ## Environment & Secrets
68
+
69
+ **wrangler.jsonc**:
70
+ ```jsonc
71
+ {
72
+ "vars": {
73
+ "ENVIRONMENT": "production",
74
+ "API_URL": "https://api.example.com"
75
+ },
76
+ "r2_buckets": [{
77
+ "binding": "DATA_BUCKET",
78
+ "bucket_name": "my-data-bucket"
79
+ }]
80
+ }
81
+ ```
82
+
83
+ **Usage**:
84
+ ```typescript
85
+ const token = env.GITHUB_TOKEN; // From wrangler secret
86
+ await sandbox.exec('git clone ...', {
87
+ env: { GIT_TOKEN: token }
88
+ });
89
+ ```
90
+
91
+ ## Preview URL Setup
92
+
93
+ **Prerequisites**:
94
+ - Custom domain with wildcard DNS: `*.yourdomain.com → worker.yourdomain.com`
95
+ - `.workers.dev` domains NOT supported
96
+ - `normalizeId: true` in getSandbox
97
+ - `proxyToSandbox()` called first in fetch handler
98
+
99
+ ## Cron Triggers (Pre-warming)
100
+
101
+ ```jsonc
102
+ {
103
+ "triggers": {
104
+ "crons": ["*/5 * * * *"] // Every 5 minutes
105
+ }
106
+ }
107
+ ```
108
+
109
+ ```typescript
110
+ export default {
111
+ async scheduled(event: ScheduledEvent, env: Env) {
112
+ const sandbox = getSandbox(env.Sandbox, 'main');
113
+ await sandbox.exec('echo "keepalive"'); // Wake sandbox
114
+ }
115
+ };
116
+ ```
117
+
118
+ ## R2 Storage Integration
119
+
120
+ ```typescript
121
+ await sandbox.mountStorage({
122
+ type: 'r2',
123
+ bucket: env.DATA_BUCKET,
124
+ mountPoint: '/data',
125
+ readOnly: false
126
+ });
127
+
128
+ // Access mounted storage
129
+ await sandbox.exec('python3 process.py', { cwd: '/data/datasets' });
130
+ await sandbox.writeFile('/data/output/results.csv', csvData);
131
+ ```
@@ -0,0 +1,156 @@
1
+ # Gotchas & Best Practices
2
+
3
+ ## Common Issues
4
+
5
+ ### Container Not Ready
6
+ **Error**: `CONTAINER_NOT_READY`
7
+ **Cause**: Container still provisioning (first request or after sleep)
8
+ **Fix**: Retry after 2-3s
9
+
10
+ ```typescript
11
+ async function execWithRetry(sandbox, cmd) {
12
+ for (let i = 0; i < 3; i++) {
13
+ try {
14
+ return await sandbox.exec(cmd);
15
+ } catch (e) {
16
+ if (e.code === 'CONTAINER_NOT_READY') {
17
+ await new Promise(r => setTimeout(r, 2000));
18
+ continue;
19
+ }
20
+ throw e;
21
+ }
22
+ }
23
+ }
24
+ ```
25
+
26
+ ### Port Exposure Fails in Dev
27
+ **Error**: "Connection refused: container port not found"
28
+ **Cause**: Missing `EXPOSE` directive in Dockerfile
29
+ **Fix**: Add `EXPOSE <port>` to Dockerfile (only needed for `wrangler dev`, production auto-exposes)
30
+
31
+ ### Preview URLs Not Working
32
+ **Checklist**:
33
+ 1. Custom domain configured? (not `.workers.dev`)
34
+ 2. Wildcard DNS set up? (`*.domain.com → worker.domain.com`)
35
+ 3. `normalizeId: true` in getSandbox?
36
+ 4. `proxyToSandbox()` called first in fetch?
37
+
38
+ ### Slow First Request
39
+ **Cause**: Cold start (container provisioning)
40
+ **Solutions**:
41
+ - Use `sleepAfter` instead of creating new sandboxes
42
+ - Pre-warm with cron triggers
43
+ - Set `keepAlive: true` for critical sandboxes
44
+
45
+ ### File Not Persisting
46
+ **Cause**: Files in `/tmp` or other ephemeral paths
47
+ **Fix**: Use `/workspace` for persistent files
48
+
49
+ ## Performance Optimization
50
+
51
+ ### Sandbox ID Strategy
52
+
53
+ ```typescript
54
+ // ❌ BAD: Creates new sandbox every time (slow, expensive)
55
+ const sandbox = getSandbox(env.Sandbox, `user-${Date.now()}`);
56
+
57
+ // ✅ GOOD: Reuse sandbox per user
58
+ const sandbox = getSandbox(env.Sandbox, `user-${userId}`);
59
+
60
+ // ✅ GOOD: Reuse for temporary tasks
61
+ const sandbox = getSandbox(env.Sandbox, 'shared-runner');
62
+ ```
63
+
64
+ ### Sleep Configuration
65
+
66
+ ```typescript
67
+ // Cost-optimized: Sleep after 30min inactivity
68
+ const sandbox = getSandbox(env.Sandbox, 'id', {
69
+ sleepAfter: '30m',
70
+ keepAlive: false
71
+ });
72
+
73
+ // Always-on (higher cost, faster response)
74
+ const sandbox = getSandbox(env.Sandbox, 'id', {
75
+ keepAlive: true
76
+ });
77
+ ```
78
+
79
+ ### Increase max_instances for High Traffic
80
+
81
+ ```jsonc
82
+ {
83
+ "containers": [{
84
+ "class_name": "Sandbox",
85
+ "max_instances": 50 // Allow 50 concurrent sandboxes
86
+ }]
87
+ }
88
+ ```
89
+
90
+ ## Security Best Practices
91
+
92
+ ### Sandbox Isolation
93
+ - Each sandbox = isolated container (filesystem, network, processes)
94
+ - Use unique sandbox IDs per tenant for multi-tenant apps
95
+ - Sandboxes cannot communicate directly
96
+
97
+ ### Input Validation
98
+
99
+ ```typescript
100
+ // ❌ DANGEROUS: Command injection
101
+ const result = await sandbox.exec(`python3 -c "${userCode}"`);
102
+
103
+ // ✅ SAFE: Write to file, execute file
104
+ await sandbox.writeFile('/workspace/user_code.py', userCode);
105
+ const result = await sandbox.exec('python3 /workspace/user_code.py');
106
+ ```
107
+
108
+ ### Resource Limits
109
+
110
+ ```typescript
111
+ // Timeout long-running commands
112
+ const result = await sandbox.exec('python3 script.py', {
113
+ timeout: 30000 // 30 seconds
114
+ });
115
+ ```
116
+
117
+ ### Secrets Management
118
+
119
+ ```typescript
120
+ // ❌ NEVER hardcode secrets
121
+ const token = 'ghp_abc123';
122
+
123
+ // ✅ Use environment secrets
124
+ const token = env.GITHUB_TOKEN;
125
+
126
+ // Pass to sandbox via exec env
127
+ const result = await sandbox.exec('git clone ...', {
128
+ env: { GIT_TOKEN: token }
129
+ });
130
+ ```
131
+
132
+ ### Preview URL Security
133
+ Preview URLs include auto-generated tokens:
134
+ ```
135
+ https://8080-sandbox-abc123def456.yourdomain.com
136
+ ```
137
+ Token changes on each expose operation, preventing unauthorized access.
138
+
139
+ ## Limits
140
+
141
+ - **Instance types**: lite (256MB), standard (512MB), heavy (1GB)
142
+ - **Default timeout**: 120s for exec operations
143
+ - **First deploy**: 2-3 min for container provisioning
144
+ - **Cold start**: 2-3s when waking from sleep
145
+
146
+ ## Production Guide
147
+
148
+ See: https://developers.cloudflare.com/sandbox/guides/production-deployment/
149
+
150
+ ## Resources
151
+
152
+ - [Official Docs](https://developers.cloudflare.com/sandbox/)
153
+ - [API Reference](https://developers.cloudflare.com/sandbox/api/)
154
+ - [Examples](https://github.com/cloudflare/sandbox-sdk/tree/main/examples)
155
+ - [npm Package](https://www.npmjs.com/package/@cloudflare/sandbox)
156
+ - [Discord Support](https://discord.cloudflare.com)
@@ -0,0 +1,203 @@
1
+ # Common Patterns
2
+
3
+ ## AI Code Execution Agent
4
+
5
+ ```typescript
6
+ export default {
7
+ async fetch(request: Request, env: Env): Promise<Response> {
8
+ const { code } = await request.json();
9
+ const sandbox = getSandbox(env.Sandbox, 'ai-agent');
10
+
11
+ // Execute user code safely
12
+ await sandbox.writeFile('/workspace/user_code.py', code);
13
+ const result = await sandbox.exec('python3 /workspace/user_code.py');
14
+
15
+ return Response.json({
16
+ output: result.stdout,
17
+ error: result.stderr,
18
+ success: result.success
19
+ });
20
+ }
21
+ };
22
+ ```
23
+
24
+ ## Interactive Dev Environment
25
+
26
+ ```typescript
27
+ export default {
28
+ async fetch(request: Request, env: Env): Promise<Response> {
29
+ const proxyResponse = await proxyToSandbox(request, env);
30
+ if (proxyResponse) return proxyResponse;
31
+
32
+ const sandbox = getSandbox(env.Sandbox, 'ide', { normalizeId: true });
33
+
34
+ if (request.url.endsWith('/start')) {
35
+ await sandbox.exec('curl -fsSL https://code-server.dev/install.sh | sh');
36
+ await sandbox.startProcess('code-server --bind-addr 0.0.0.0:8080', {
37
+ processId: 'vscode'
38
+ });
39
+
40
+ const exposed = await sandbox.exposePort(8080);
41
+ return Response.json({ url: exposed.url });
42
+ }
43
+
44
+ return new Response('Try /start');
45
+ }
46
+ };
47
+ ```
48
+
49
+ ## CI/CD Pipeline
50
+
51
+ ```typescript
52
+ export default {
53
+ async fetch(request: Request, env: Env): Promise<Response> {
54
+ const { repo, branch } = await request.json();
55
+ const sandbox = getSandbox(env.Sandbox, `ci-${repo}-${Date.now()}`);
56
+
57
+ await sandbox.exec(`git clone -b ${branch} ${repo} /workspace/repo`);
58
+
59
+ const install = await sandbox.exec('npm install', {
60
+ cwd: '/workspace/repo',
61
+ stream: true,
62
+ onOutput: (stream, data) => console.log(data)
63
+ });
64
+
65
+ if (!install.success) {
66
+ return Response.json({ success: false, error: 'Install failed' });
67
+ }
68
+
69
+ const test = await sandbox.exec('npm test', { cwd: '/workspace/repo' });
70
+
71
+ return Response.json({
72
+ success: test.success,
73
+ output: test.stdout,
74
+ exitCode: test.exitCode
75
+ });
76
+ }
77
+ };
78
+ ```
79
+
80
+ ## Data Analysis Platform
81
+
82
+ ```typescript
83
+ export default {
84
+ async fetch(request: Request, env: Env): Promise<Response> {
85
+ const { notebook } = await request.json();
86
+ const sandbox = getSandbox(env.Sandbox, 'data-analysis');
87
+
88
+ await sandbox.writeFile('/workspace/analysis.ipynb', JSON.stringify(notebook));
89
+
90
+ const result = await sandbox.exec(
91
+ 'jupyter nbconvert --to notebook --execute analysis.ipynb --output results.ipynb',
92
+ { cwd: '/workspace' }
93
+ );
94
+
95
+ const output = await sandbox.readFile('/workspace/results.ipynb');
96
+
97
+ return Response.json({
98
+ success: result.success,
99
+ notebook: JSON.parse(output.content)
100
+ });
101
+ }
102
+ };
103
+ ```
104
+
105
+ ## Multi-Language Code Runner
106
+
107
+ ```typescript
108
+ const languageConfigs = {
109
+ python: { cmd: 'python3', ext: 'py' },
110
+ javascript: { cmd: 'node', ext: 'js' },
111
+ typescript: { cmd: 'ts-node', ext: 'ts' },
112
+ bash: { cmd: 'bash', ext: 'sh' }
113
+ };
114
+
115
+ export default {
116
+ async fetch(request: Request, env: Env): Promise<Response> {
117
+ const { language, code } = await request.json();
118
+ const config = languageConfigs[language];
119
+
120
+ if (!config) {
121
+ return Response.json({ error: 'Unsupported language' }, { status: 400 });
122
+ }
123
+
124
+ const sandbox = getSandbox(env.Sandbox, 'code-runner');
125
+ const filename = `/workspace/script.${config.ext}`;
126
+
127
+ await sandbox.writeFile(filename, code);
128
+ const result = await sandbox.exec(`${config.cmd} ${filename}`);
129
+
130
+ return Response.json({
131
+ output: result.stdout,
132
+ error: result.stderr,
133
+ exitCode: result.exitCode
134
+ });
135
+ }
136
+ };
137
+ ```
138
+
139
+ ## Multi-Tenant Pattern
140
+
141
+ ```typescript
142
+ export default {
143
+ async fetch(request: Request, env: Env): Promise<Response> {
144
+ const userId = request.headers.get('X-User-ID');
145
+ const sandbox = getSandbox(env.Sandbox, 'multi-tenant');
146
+
147
+ // Each user gets isolated session
148
+ let session;
149
+ try {
150
+ session = await sandbox.getSession(userId);
151
+ } catch {
152
+ session = await sandbox.createSession({
153
+ id: userId,
154
+ cwd: `/workspace/users/${userId}`,
155
+ env: { USER_ID: userId }
156
+ });
157
+ }
158
+
159
+ const code = await request.text();
160
+ const result = await session.exec(`python3 -c "${code}"`);
161
+
162
+ return Response.json({ output: result.stdout });
163
+ }
164
+ };
165
+ ```
166
+
167
+ ## Jupyter Integration
168
+
169
+ **Dockerfile**:
170
+ ```dockerfile
171
+ FROM docker.io/cloudflare/sandbox:latest
172
+ RUN pip3 install --no-cache-dir jupyter-server ipykernel matplotlib pandas
173
+ EXPOSE 8888
174
+ ```
175
+
176
+ **Worker**:
177
+ ```typescript
178
+ await sandbox.startProcess('jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser', {
179
+ processId: 'jupyter',
180
+ cwd: '/workspace'
181
+ });
182
+
183
+ const exposed = await sandbox.exposePort(8888, { name: 'jupyter' });
184
+ return Response.json({ url: exposed.url });
185
+ ```
186
+
187
+ ## Git Operations
188
+
189
+ ```typescript
190
+ // Clone
191
+ await sandbox.exec('git clone https://github.com/user/repo.git /workspace/repo');
192
+
193
+ // Clone specific branch
194
+ await sandbox.exec('git clone -b main --single-branch https://github.com/user/repo.git /workspace/repo');
195
+
196
+ // Authenticated clone
197
+ const token = env.GITHUB_TOKEN;
198
+ await sandbox.exec(`git clone https://${token}@github.com/user/private-repo.git`);
199
+
200
+ // Git ops
201
+ await sandbox.exec('git pull', { cwd: '/workspace/repo' });
202
+ await sandbox.exec('git checkout -b feature', { cwd: '/workspace/repo' });
203
+ ```
@@ -0,0 +1,58 @@
1
+ # Cloudflare Secrets Store
2
+
3
+ Account-level encrypted secret management for Workers and AI Gateway.
4
+
5
+ ## Overview
6
+
7
+ **Secrets Store**: Centralized, account-level secrets, reusable across Workers
8
+ **Worker Secrets**: Per-Worker secrets (`wrangler secret put`)
9
+
10
+ ### Architecture
11
+
12
+ - **Store**: Container (1/account in beta)
13
+ - **Secret**: String ≤1024 bytes
14
+ - **Scopes**: Permission boundaries (`workers`, `ai-gateway`)
15
+ - **Bindings**: Connect secrets via `env` object
16
+
17
+ ### Access Control
18
+
19
+ - **Super Admin**: Full access
20
+ - **Admin**: Create/edit/delete secrets, view metadata
21
+ - **Deployer**: View metadata + bindings
22
+ - **Reporter**: View metadata only
23
+
24
+ API Token permissions: `Account Secrets Store Edit/Read`
25
+
26
+ ### Limits (Beta)
27
+
28
+ - 100 secrets/account
29
+ - 1 store/account
30
+ - 1024 bytes max/secret
31
+ - Production secrets count toward limit
32
+
33
+ ## When to Use
34
+
35
+ **Use Secrets Store when:**
36
+ - Multiple Workers share same credential
37
+ - Centralized management needed
38
+ - Compliance requires audit trail
39
+ - Team collaboration on secrets
40
+
41
+ **Use Worker Secrets when:**
42
+ - Secret unique to one Worker
43
+ - Simple single-Worker project
44
+ - No cross-Worker sharing needed
45
+
46
+ ## Files
47
+
48
+ - [configuration.md](./configuration.md) - Wrangler commands, binding config
49
+ - [api.md](./api.md) - Binding API, get/put/delete operations
50
+ - [patterns.md](./patterns.md) - Rotation, encryption, access control
51
+ - [gotchas.md](./gotchas.md) - Security issues, limits, best practices
52
+
53
+ ## References
54
+
55
+ - [Docs](https://developers.cloudflare.com/secrets-store/)
56
+ - [Workers Integration](https://developers.cloudflare.com/secrets-store/integrations/workers/)
57
+ - [API Reference](https://developers.cloudflare.com/api/resources/secrets_store/)
58
+ - [Wrangler Commands](https://developers.cloudflare.com/workers/wrangler/commands/#secrets-store)