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
package/dist/index.js CHANGED
@@ -750,7 +750,7 @@ var cac = (name = "") => new CAC(name);
750
750
  // package.json
751
751
  var package_default = {
752
752
  name: "opencodekit",
753
- version: "0.15.4",
753
+ version: "0.15.5",
754
754
  description: "CLI tool for bootstrapping and managing OpenCodeKit projects",
755
755
  keywords: ["agents", "cli", "mcp", "opencode", "opencodekit", "template"],
756
756
  license: "MIT",
@@ -0,0 +1,70 @@
1
+ ---
2
+ description: Load Cloudflare skill and get contextual guidance for your task
3
+ ---
4
+
5
+ Load the Cloudflare platform skill and help with any Cloudflare development task.
6
+
7
+ ## Workflow
8
+
9
+ ### Step 1: Check for --update-skill flag
10
+
11
+ If $ARGUMENTS contains `--update-skill`:
12
+
13
+ 1. Determine install location by checking which exists:
14
+ - Local: `.opencode/skill/cloudflare/`
15
+ - Global: `~/.config/opencode/skill/cloudflare/`
16
+
17
+ 2. Run the appropriate install command:
18
+ ```bash
19
+ # For local installation
20
+ curl -fsSL https://raw.githubusercontent.com/dmmulroy/cloudflare-skill/main/install.sh | bash
21
+
22
+ # For global installation
23
+ curl -fsSL https://raw.githubusercontent.com/dmmulroy/cloudflare-skill/main/install.sh | bash -s -- --global
24
+ ```
25
+
26
+ 3. Output success message and stop (do not continue to other steps).
27
+
28
+ ### Step 2: Load cloudflare skill
29
+
30
+ ```
31
+ skill({ name: 'cloudflare' })
32
+ ```
33
+
34
+ ### Step 3: Identify task type from user request
35
+
36
+ Analyze $ARGUMENTS to determine:
37
+ - **Product(s) needed** (Workers, D1, R2, Durable Objects, etc.)
38
+ - **Task type** (new project setup, feature implementation, debugging, config)
39
+
40
+ Use decision trees in SKILL.md to select correct product.
41
+
42
+ ### Step 4: Read relevant reference files
43
+
44
+ Based on task type, read from `references/<product>/`:
45
+
46
+ | Task | Files to Read |
47
+ |------|---------------|
48
+ | New project | `README.md` + `configuration.md` |
49
+ | Implement feature | `README.md` + `api.md` + `patterns.md` |
50
+ | Debug/troubleshoot | `gotchas.md` |
51
+ | All-in-one (monolithic) | `SKILL.md` |
52
+
53
+ ### Step 5: Execute task
54
+
55
+ Apply Cloudflare-specific patterns and APIs from references to complete the user's request.
56
+
57
+ ### Step 6: Summarize
58
+
59
+ ```
60
+ === Cloudflare Task Complete ===
61
+
62
+ Product(s): <products used>
63
+ Files referenced: <reference files consulted>
64
+
65
+ <brief summary of what was done>
66
+ ```
67
+
68
+ <user-request>
69
+ $ARGUMENTS
70
+ </user-request>
@@ -11,7 +11,7 @@
11
11
  "type-check": "tsc --noEmit"
12
12
  },
13
13
  "dependencies": {
14
- "@opencode-ai/plugin": "1.1.23"
14
+ "@opencode-ai/plugin": "1.1.25"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@types/node": "^25.0.3",
@@ -0,0 +1,233 @@
1
+ ---
2
+ name: cloudflare
3
+ description: Comprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), networking (Tunnel, Spectrum), security (WAF, DDoS), and infrastructure-as-code (Terraform, Pulumi). Use for any Cloudflare development task.
4
+ references:
5
+ - workers
6
+ - pages
7
+ - d1
8
+ - durable-objects
9
+ - workers-ai
10
+ ---
11
+
12
+ # Cloudflare Platform Skill
13
+
14
+ Consolidated skill for building on the Cloudflare platform. Use decision trees below to find the right product, then load detailed references.
15
+
16
+ ## How to Use This Skill
17
+
18
+ ### Reference File Structure
19
+
20
+ Each product in `./references/<product>/` contains a `README.md` as the entry point, which may be structured in one of two ways:
21
+
22
+ **Multi-file format (5 files):**
23
+ | File | Purpose | When to Read |
24
+ |------|---------|--------------|
25
+ | `README.md` | Overview, when to use, getting started | **Always read first** |
26
+ | `api.md` | Runtime API, types, method signatures | Writing code |
27
+ | `configuration.md` | wrangler.toml, bindings, setup | Configuring a project |
28
+ | `patterns.md` | Common patterns, best practices | Implementation guidance |
29
+ | `gotchas.md` | Pitfalls, limitations, edge cases | Debugging, avoiding mistakes |
30
+
31
+ **Single-file format:** All information consolidated in `README.md`.
32
+
33
+ ### Reading Order
34
+
35
+ 1. Start with `README.md`
36
+ 2. Then read additional files relevant to your task (if multi-file format):
37
+ - Building feature → `api.md` + `patterns.md`
38
+ - Setting up project → `configuration.md`
39
+ - Troubleshooting → `gotchas.md`
40
+
41
+ ### Example Paths
42
+
43
+ ```
44
+ ./references/workflows/README.md # Start here for Workflows
45
+ ./references/workflows/api.md # Workflow class, step methods
46
+ ./references/durable-objects/gotchas.md # DO limitations
47
+ ./references/workers-ai/README.md # Single-file - all Workers AI docs
48
+ ```
49
+
50
+ ## Quick Decision Trees
51
+
52
+ ### "I need to run code"
53
+
54
+ ```
55
+ Need to run code?
56
+ ├─ Serverless functions at the edge → workers/
57
+ ├─ Full-stack web app with Git deploys → pages/
58
+ ├─ Stateful coordination/real-time → durable-objects/
59
+ ├─ Long-running multi-step jobs → workflows/
60
+ ├─ Run containers → containers/
61
+ ├─ Multi-tenant (customers deploy code) → workers-for-platforms/
62
+ └─ Scheduled tasks (cron) → cron-triggers/
63
+ ```
64
+
65
+ ### "I need to store data"
66
+
67
+ ```
68
+ Need storage?
69
+ ├─ Key-value (config, sessions, cache) → kv/
70
+ ├─ Relational SQL → d1/ (SQLite) or hyperdrive/ (existing Postgres/MySQL)
71
+ ├─ Object/file storage (S3-compatible) → r2/
72
+ ├─ Message queue (async processing) → queues/
73
+ ├─ Vector embeddings (AI/semantic search) → vectorize/
74
+ ├─ Strongly-consistent per-entity state → durable-objects/ (DO storage)
75
+ ├─ Secrets management → secrets-store/
76
+ └─ Streaming ETL to R2 → pipelines/
77
+ ```
78
+
79
+ ### "I need AI/ML"
80
+
81
+ ```
82
+ Need AI?
83
+ ├─ Run inference (LLMs, embeddings, images) → workers-ai/
84
+ ├─ Vector database for RAG/search → vectorize/
85
+ ├─ Build stateful AI agents → agents-sdk/
86
+ ├─ Gateway for any AI provider (caching, routing) → ai-gateway/
87
+ └─ AI-powered search widget → ai-search/
88
+ ```
89
+
90
+ ### "I need networking/connectivity"
91
+
92
+ ```
93
+ Need networking?
94
+ ├─ Expose local service to internet → tunnel/
95
+ ├─ TCP/UDP proxy (non-HTTP) → spectrum/
96
+ ├─ WebRTC TURN server → turn/
97
+ ├─ Private network connectivity → network-interconnect/
98
+ ├─ Optimize routing → argo-smart-routing/
99
+ └─ Real-time video/audio → realtimekit/ or realtime-sfu/
100
+ ```
101
+
102
+ ### "I need security"
103
+
104
+ ```
105
+ Need security?
106
+ ├─ Web Application Firewall → waf/
107
+ ├─ DDoS protection → ddos/
108
+ ├─ Bot detection/management → bot-management/
109
+ ├─ API protection → api-shield/
110
+ ├─ CAPTCHA alternative → turnstile/
111
+ └─ Credential leak detection → waf/ (managed ruleset)
112
+ ```
113
+
114
+ ### "I need media/content"
115
+
116
+ ```
117
+ Need media?
118
+ ├─ Image optimization/transformation → images/
119
+ ├─ Video streaming/encoding → stream/
120
+ ├─ Browser automation/screenshots → browser-rendering/
121
+ └─ Third-party script management → zaraz/
122
+ ```
123
+
124
+ ### "I need infrastructure-as-code"
125
+
126
+ ```
127
+ Need IaC?
128
+ ├─ Pulumi → pulumi/
129
+ ├─ Terraform → terraform/
130
+ └─ Direct API → api/
131
+ ```
132
+
133
+ ## Product Index
134
+
135
+ ### Compute & Runtime
136
+ | Product | Entry File |
137
+ |---------|------------|
138
+ | Workers | `./references/workers/README.md` |
139
+ | Pages | `./references/pages/README.md` |
140
+ | Pages Functions | `./references/pages-functions/README.md` |
141
+ | Durable Objects | `./references/durable-objects/README.md` |
142
+ | Workflows | `./references/workflows/README.md` |
143
+ | Containers | `./references/containers/README.md` |
144
+ | Workers for Platforms | `./references/workers-for-platforms/README.md` |
145
+ | Cron Triggers | `./references/cron-triggers/README.md` |
146
+ | Tail Workers | `./references/tail-workers/README.md` |
147
+ | Snippets | `./references/snippets/README.md` |
148
+ | Smart Placement | `./references/smart-placement/README.md` |
149
+
150
+ ### Storage & Data
151
+ | Product | Entry File |
152
+ |---------|------------|
153
+ | KV | `./references/kv/README.md` |
154
+ | D1 | `./references/d1/README.md` |
155
+ | R2 | `./references/r2/README.md` |
156
+ | Queues | `./references/queues/README.md` |
157
+ | Hyperdrive | `./references/hyperdrive/README.md` |
158
+ | DO Storage | `./references/do-storage/README.md` |
159
+ | Secrets Store | `./references/secrets-store/README.md` |
160
+ | Pipelines | `./references/pipelines/README.md` |
161
+ | R2 Data Catalog | `./references/r2-data-catalog/README.md` |
162
+ | R2 SQL | `./references/r2-sql/README.md` |
163
+
164
+ ### AI & Machine Learning
165
+ | Product | Entry File |
166
+ |---------|------------|
167
+ | Workers AI | `./references/workers-ai/README.md` |
168
+ | Vectorize | `./references/vectorize/README.md` |
169
+ | Agents SDK | `./references/agents-sdk/README.md` |
170
+ | AI Gateway | `./references/ai-gateway/README.md` |
171
+ | AI Search | `./references/ai-search/README.md` |
172
+
173
+ ### Networking & Connectivity
174
+ | Product | Entry File |
175
+ |---------|------------|
176
+ | Tunnel | `./references/tunnel/README.md` |
177
+ | Spectrum | `./references/spectrum/README.md` |
178
+ | TURN | `./references/turn/README.md` |
179
+ | Network Interconnect | `./references/network-interconnect/README.md` |
180
+ | Argo Smart Routing | `./references/argo-smart-routing/README.md` |
181
+ | Workers VPC | `./references/workers-vpc/README.md` |
182
+
183
+ ### Security
184
+ | Product | Entry File |
185
+ |---------|------------|
186
+ | WAF | `./references/waf/README.md` |
187
+ | DDoS Protection | `./references/ddos/README.md` |
188
+ | Bot Management | `./references/bot-management/README.md` |
189
+ | API Shield | `./references/api-shield/README.md` |
190
+ | Turnstile | `./references/turnstile/README.md` |
191
+
192
+ ### Media & Content
193
+ | Product | Entry File |
194
+ |---------|------------|
195
+ | Images | `./references/images/README.md` |
196
+ | Stream | `./references/stream/README.md` |
197
+ | Browser Rendering | `./references/browser-rendering/README.md` |
198
+ | Zaraz | `./references/zaraz/README.md` |
199
+
200
+ ### Real-Time Communication
201
+ | Product | Entry File |
202
+ |---------|------------|
203
+ | RealtimeKit | `./references/realtimekit/README.md` |
204
+ | Realtime SFU | `./references/realtime-sfu/README.md` |
205
+
206
+ ### Developer Tools
207
+ | Product | Entry File |
208
+ |---------|------------|
209
+ | Wrangler | `./references/wrangler/README.md` |
210
+ | Miniflare | `./references/miniflare/README.md` |
211
+ | C3 | `./references/c3/README.md` |
212
+ | Observability | `./references/observability/README.md` |
213
+ | Analytics Engine | `./references/analytics-engine/README.md` |
214
+ | Web Analytics | `./references/web-analytics/README.md` |
215
+ | Sandbox | `./references/sandbox/README.md` |
216
+ | Workerd | `./references/workerd/README.md` |
217
+ | Workers Playground | `./references/workers-playground/README.md` |
218
+
219
+ ### Infrastructure as Code
220
+ | Product | Entry File |
221
+ |---------|------------|
222
+ | Pulumi | `./references/pulumi/README.md` |
223
+ | Terraform | `./references/terraform/README.md` |
224
+ | API | `./references/api/README.md` |
225
+
226
+ ### Other Services
227
+ | Product | Entry File |
228
+ |---------|------------|
229
+ | Email Routing | `./references/email-routing/README.md` |
230
+ | Email Workers | `./references/email-workers/README.md` |
231
+ | Static Assets | `./references/static-assets/README.md` |
232
+ | Bindings | `./references/bindings/README.md` |
233
+ | Cache Reserve | `./references/cache-reserve/README.md` |
@@ -0,0 +1,35 @@
1
+ # Cloudflare Agents SDK
2
+
3
+ Cloudflare Agents SDK enables building AI-powered agents on Durable Objects with state, WebSockets, SQL, scheduling, and AI integration.
4
+
5
+ ## Core Value
6
+ Build stateful, globally distributed AI agents with persistent memory, real-time connections, scheduled tasks, and async workflows.
7
+
8
+ ## When to Use
9
+ - Persistent state + memory required
10
+ - Real-time WebSocket connections
11
+ - Long-running workflows (minutes/hours)
12
+ - Chat interfaces with AI models
13
+ - Scheduled/recurring tasks with state
14
+ - DB queries with agent state
15
+
16
+ ## Quick Start
17
+ ```typescript
18
+ import { Agent } from "agents";
19
+
20
+ export class MyAgent extends Agent<Env> {
21
+ onStart() {
22
+ this.sql`CREATE TABLE IF NOT EXISTS users (id TEXT PRIMARY KEY)`;
23
+ }
24
+
25
+ async onRequest(request: Request) {
26
+ return Response.json({ state: this.state });
27
+ }
28
+ }
29
+ ```
30
+
31
+ ## See Also
32
+ - durable-objects - Agent infrastructure
33
+ - d1 - External database integration
34
+ - workers-ai - AI model integration
35
+ - vectorize - Vector search for RAG patterns
@@ -0,0 +1,100 @@
1
+ # API Reference
2
+
3
+ ## Lifecycle
4
+
5
+ **onStart()** - Init/hibernation restart:
6
+ ```ts
7
+ onStart() {
8
+ this.sql`CREATE TABLE IF NOT EXISTS users (id TEXT PRIMARY KEY, name TEXT)`;
9
+ if (!this.state.initialized) this.setState({initialized: true, messages: []});
10
+ }
11
+ ```
12
+
13
+ **onRequest(req)** - HTTP:
14
+ ```ts
15
+ async onRequest(req: Request) {
16
+ const {pathname} = new URL(req.url);
17
+ if (pathname === "/users") return Response.json(this.sql<{id,name}>`SELECT * FROM users`);
18
+ return new Response("Not found", {status: 404});
19
+ }
20
+ ```
21
+
22
+ **onConnect(conn, ctx)** - WebSocket:
23
+ ```ts
24
+ async onConnect(conn: Connection, ctx: ConnectionContext) {
25
+ conn.accept();
26
+ conn.setState({userId: ctx.request.headers.get("X-User-ID")});
27
+ conn.send(JSON.stringify({type: "connected", state: this.state}));
28
+ }
29
+ ```
30
+
31
+ **onMessage(conn, msg)** - WS messages:
32
+ ```ts
33
+ async onMessage(conn: Connection, msg: WSMessage) {
34
+ const m = JSON.parse(msg as string);
35
+ if (m.type === "chat") {
36
+ this.setState({messages: [...this.state.messages, m]});
37
+ this.connections.forEach(c => c.send(JSON.stringify(m)));
38
+ }
39
+ }
40
+ ```
41
+
42
+ **onEmail(email)** - Email routing:
43
+ ```ts
44
+ async onEmail(email: AgentEmail) {
45
+ const text = await email.text();
46
+ this.sql`INSERT INTO emails (from_addr,subject,body) VALUES (${email.from},${email.headers.get("subject")},${text})`;
47
+ }
48
+ ```
49
+
50
+ ## State
51
+
52
+ ```ts
53
+ this.setState({count: 42, users: []}); // Auto-syncs
54
+ this.setState({...this.state, count: this.state.count + 1});
55
+ const s = this.state;
56
+ ```
57
+
58
+ ## SQL
59
+
60
+ ```ts
61
+ this.sql`CREATE TABLE IF NOT EXISTS users (id TEXT PRIMARY KEY, name TEXT)`;
62
+ this.sql`INSERT INTO users (id,name) VALUES (${userId},${name})`;
63
+ const users = this.sql<{id,name}>`SELECT * FROM users`;
64
+ const user = this.sql<{name}>`SELECT name FROM users WHERE id = ${userId}`; // Prevents injection
65
+ ```
66
+
67
+ ## Scheduling
68
+
69
+ ```ts
70
+ await this.schedule(new Date("2026-12-25T00:00:00Z"), "sendGreeting", {msg:"Hi"}); // Time
71
+ await this.schedule(60, "checkStatus", {}); // Delay (sec)
72
+ await this.schedule("0 0 * * *", "dailyCleanup", {}); // Cron
73
+ await this.schedule("*/5 * * * *", "syncData", {}); // Every 5min
74
+ const schedules = await this.getSchedules();
75
+ await this.cancelSchedule(scheduleId);
76
+ ```
77
+
78
+ ## Connections
79
+
80
+ ```ts
81
+ this.connections.forEach(c => c.send(JSON.stringify(msg))); // Broadcast
82
+ conn.send(JSON.stringify({type:"update",data})); // Specific
83
+ conn.close(1000, "Goodbye");
84
+ conn.setState({userId:"123",role:"admin"});
85
+ const uid = conn.state.userId;
86
+ ```
87
+
88
+ ## AI
89
+
90
+ ```ts
91
+ const r = await this.env.AI.run("@cf/meta/llama-3.1-8b-instruct", {prompt});
92
+
93
+ const stream = await client.chat.completions.create({
94
+ model: "gpt-4", messages: [{role:"user",content:prompt}], stream: true
95
+ });
96
+ for await (const chunk of stream) {
97
+ const content = chunk.choices[0]?.delta?.content;
98
+ if (content) conn.send(JSON.stringify({type:"chunk",content}));
99
+ }
100
+ ```
@@ -0,0 +1,99 @@
1
+ # Configuration
2
+
3
+ ## Wrangler Setup
4
+
5
+ ```toml
6
+ name = "my-agents-app"
7
+
8
+ [[durable_objects.bindings]]
9
+ name = "MyAgent"
10
+ class_name = "MyAgent"
11
+
12
+ [[migrations]]
13
+ tag = "v1"
14
+ new_sqlite_classes = ["MyAgent"]
15
+
16
+ [ai]
17
+ binding = "AI"
18
+ ```
19
+
20
+ ```jsonc
21
+ {
22
+ "durable_objects": {
23
+ "bindings": [
24
+ {"name": "MyAgent", "class_name": "MyAgent"}
25
+ ]
26
+ },
27
+ "migrations": [
28
+ {"tag": "v1", "new_sqlite_classes": ["MyAgent"]}
29
+ ],
30
+ "ai": {
31
+ "binding": "AI"
32
+ }
33
+ }
34
+ ```
35
+
36
+ ## Environment Bindings
37
+
38
+ ```typescript
39
+ interface Env {
40
+ AI?: Ai; // Workers AI
41
+ MyAgent?: DurableObjectNamespace<MyAgent>;
42
+ DB?: D1Database; // D1 database
43
+ KV?: KVNamespace; // KV storage
44
+ R2?: R2Bucket; // R2 bucket
45
+ OPENAI_API_KEY?: string; // Secrets
46
+ QUEUE?: Queue; // Queues
47
+ }
48
+ ```
49
+
50
+ ## Deployment
51
+
52
+ ```bash
53
+ # Local dev
54
+ npx wrangler dev
55
+
56
+ # Deploy production
57
+ npx wrangler deploy
58
+
59
+ # Set secrets
60
+ npx wrangler secret put OPENAI_API_KEY
61
+ ```
62
+
63
+ ## Agent Routing
64
+
65
+ ```typescript
66
+ export default {
67
+ async fetch(request: Request, env: Env) {
68
+ const id = env.MyAgent.idFromName("user-123");
69
+ const stub = env.MyAgent.get(id);
70
+ return stub.fetch(request);
71
+ }
72
+ }
73
+ ```
74
+
75
+ ## Email Routing
76
+
77
+ Configure email routing in dashboard to deliver emails to agent:
78
+
79
+ ```
80
+ Destination: Workers with Durable Objects
81
+ Worker: my-agents-app
82
+ ```
83
+
84
+ ## AI Gateway (Optional)
85
+
86
+ ```typescript
87
+ // Enable caching/routing through AI Gateway
88
+ const response = await this.env.AI.run(
89
+ "@cf/meta/llama-3.1-8b-instruct",
90
+ { prompt },
91
+ {
92
+ gateway: {
93
+ id: "my-gateway-id",
94
+ skipCache: false,
95
+ cacheTtl: 3600
96
+ }
97
+ }
98
+ );
99
+ ```
@@ -0,0 +1,59 @@
1
+ # Gotchas & Best Practices
2
+
3
+ ## State
4
+ DO: `setState()` (auto-syncs), serializable, limit size | DON'T: Mutate directly, large objects (SQL), functions/circular
5
+ ```ts
6
+ // ❌ this.state.count++ | ✅ this.setState({...this.state, count: this.state.count + 1})
7
+ ```
8
+
9
+ ## SQL
10
+ DO: Parameterized, create in `onStart()`, types | DON'T: Direct interpolation, assume exists
11
+ ```ts
12
+ // ❌ this.sql`...WHERE id = '${userId}'` | ✅ this.sql`...WHERE id = ${userId}`
13
+ ```
14
+
15
+ ## WebSocket
16
+ DO: `conn.accept()`, errors, cleanup | DON'T: Forget accept (timeout), assume persist, sensitive in state
17
+ ```ts
18
+ async onConnect(conn: Connection, ctx: ConnectionContext) { conn.accept(); conn.setState({userId: "123"}); }
19
+ ```
20
+
21
+ ## Scheduling
22
+ 1000 tasks/agent, 1min min, persist. Clean old, descriptive names, handle failures
23
+ ```ts
24
+ async checkSchedules() { if ((await this.getSchedules()).length > 800) console.warn("Near limit!"); }
25
+ ```
26
+
27
+ ## AI
28
+ Optimize: AI Gateway cache, rate limit, stream | Error: try/catch, fallback, quota/timeout
29
+ ```ts
30
+ try { return await this.env.AI.run(model, {prompt}); } catch (e) { return {error: "Unavailable"}; }
31
+ ```
32
+
33
+ ## Perf
34
+ State: Batch `setState()`, low-freq, SQL for large | Conns: Limit broadcast, selective, backpressure
35
+
36
+ ## Debug
37
+ `npx wrangler dev` (local), `npx wrangler tail` (remote)
38
+ Issues: "Agent not found" (DO binding), State not sync (`setState()`), Timeout (`conn.accept()`), SQL (create in `onStart()`)
39
+
40
+ ## Security
41
+ DO: Validate, sanitize, auth WS, env secrets | DON'T: Trust headers, expose sensitive, unauth
42
+ ```ts
43
+ async onConnect(conn: Connection, ctx: ConnectionContext) {
44
+ const token = ctx.request.headers.get("Authorization");
45
+ if (!await this.validateToken(token)) { conn.close(4001, "Unauthorized"); return; }
46
+ conn.accept();
47
+ }
48
+ ```
49
+
50
+ ## Limits
51
+ CPU: 30s/req, Mem: 128MB/inst, Storage: SQL shares DO quota, Conns: no limit (watch mem), Schedules: 1000/agent
52
+
53
+ ## Migration
54
+ `new_sqlite_classes`, test staging, no downgrade w/SQL, careful state
55
+ ```toml
56
+ [[migrations]]
57
+ tag = "v1"
58
+ new_sqlite_classes = ["MyAgent"]
59
+ ```